diff --git a/ng2-components/ng2-alfresco-webscript/README.md b/ng2-components/ng2-alfresco-webscript/README.md
index 02b5d608b5..b5285e2e89 100644
--- a/ng2-components/ng2-alfresco-webscript/README.md
+++ b/ng2-components/ng2-alfresco-webscript/README.md
@@ -87,6 +87,7 @@ Also make sure you include these dependencies in your .html page:
[scriptArgs]="Object"
[contextRoot]="string"
[servicePath]="string"
+ [showData]="boolean"
[contentType]="JSON | HTML | DATATABLE | TEXT"
(onSuccess)= "logData($event)">
@@ -143,11 +144,20 @@ bootstrap(AppComponent, [
#### Options
-**scriptPath** {string} path to Web Script (as defined by Web Script)
-**scriptArgs** {Object} arguments to pass to Web Script
-**contextRoot** {string} path where application is deployed default value 'alfresco'
-**servicePath** {string} path where Web Script service is mapped default value 'service'
-**contentType** {string} how to handle the data received from te web script JSON | HTML | DATATABLE | TEXT
+
+Attribute | Options | Default | Description | Mandatory
+--- | --- | --- | --- | ---
+`scriptPath` | *string* | | path to Web Script (as defined by Web Script) | mandatory
+`scriptArgs` | *Object* | | arguments to pass to Web Script |
+`contextRoot` | *string* | | path where application is deployed |
+`scriptPath` | *string* | | path to Web Script (as defined by Web Script) | alfresco
+`contentType` | *string* | | path where Web Script service is mapped default value | service
+`contentType` | *string* | | how to handle the data received from te web script JSON , HTML , DATATABLE or TEXT | TEXT
+`onSuccess` | *event* | | You can get the plain data from the webscript through the **onSuccess** event parameter and use it as you need in your application |
+`showData` | *booleann* | | render the webscript data |true
+
+
+**contentType** {string}
***data*** {string} data contain the plain value get from the webscipt is an output parameter
## Webscript View HTML example
@@ -236,6 +246,7 @@ http://localhost:8080/alfresco/service/sample/folder/JSON%EXAMPLE
[servicePath]= "'service'";
[scriptPath]= "'Sample/folder/JSON_EXAMPLE'"
[contentType]= "'HTML'"
+ [showData] = "false"
(onSuccess)= "logDataExample($event)">
```
diff --git a/ng2-components/ng2-alfresco-webscript/demo/package.json b/ng2-components/ng2-alfresco-webscript/demo/package.json
index 640456a54d..b6f2d299c1 100644
--- a/ng2-components/ng2-alfresco-webscript/demo/package.json
+++ b/ng2-components/ng2-alfresco-webscript/demo/package.json
@@ -41,7 +41,8 @@
"ng2-translate": "2.2.2",
"ng2-alfresco-core": "^0.2.0",
- "ng2-alfresco-datatable": "^0.2.0"
+ "ng2-alfresco-datatable": "^0.2.0",
+ "ng2-alfresco-webscript": "^0.2.0"
},
"devDependencies": {
"concurrently": "2.0.0",
diff --git a/ng2-components/ng2-alfresco-webscript/demo/src/main.ts b/ng2-components/ng2-alfresco-webscript/demo/src/main.ts
index 822fada650..d7dbd363d9 100644
--- a/ng2-components/ng2-alfresco-webscript/demo/src/main.ts
+++ b/ng2-components/ng2-alfresco-webscript/demo/src/main.ts
@@ -63,7 +63,7 @@ class WebscriptDemo implements OnInit {
authenticated: boolean;
- ecmHost: string = 'http://127.0.0.1:8080';
+ ecmHost: string = 'http://127.0.0.1:8080';
scriptPath: string = 'sample/folder/Company%20Home';
@@ -78,7 +78,7 @@ class WebscriptDemo implements OnInit {
constructor(private authService: AlfrescoAuthenticationService,
private alfrescoSettingsService: AlfrescoSettingsService) {
- alfrescoSettingsService.ecmHost = this.ecmHost;
+ alfrescoSettingsService.ecmHost = this.ecmHost;
if (this.authService.getTicket()) {
this.token = this.authService.getTicket();
}
@@ -89,7 +89,7 @@ class WebscriptDemo implements OnInit {
}
public updateHost(): void {
- this.alfrescoSettingsService.ecmHost = this.ecmHost;
+ this.alfrescoSettingsService.ecmHost = this.ecmHost;
this.login();
}
diff --git a/ng2-components/ng2-alfresco-webscript/src/webscript.component.spec.ts b/ng2-components/ng2-alfresco-webscript/src/webscript.component.spec.ts
index e516ae4783..c9ca176f3c 100644
--- a/ng2-components/ng2-alfresco-webscript/src/webscript.component.spec.ts
+++ b/ng2-components/ng2-alfresco-webscript/src/webscript.component.spec.ts
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-import { describe, expect, it, inject, beforeEachProviders, beforeEach, afterEach } from '@angular/core/testing';
+import { describe, expect, it, inject, beforeEachProviders, beforeEach, afterEach, xit } from '@angular/core/testing';
import { TestComponentBuilder } from '@angular/compiler/testing';
import { WebscriptComponent } from '../src/webscript.component';
import { AlfrescoSettingsServiceMock } from '../src/assets/AlfrescoSettingsService.service.mock';
@@ -27,7 +27,7 @@ declare let jasmine: any;
describe('Test ng2-alfresco-webscript', () => {
- let webscriptComponentFixture;
+ let webscriptComponentFixture, element, component;
beforeEachProviders(() => {
return [
@@ -40,22 +40,34 @@ describe('Test ng2-alfresco-webscript', () => {
beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(WebscriptComponent)
- .then(fixture => webscriptComponentFixture = fixture);
+ .then(fixture => {
+ webscriptComponentFixture = fixture;
+ element = webscriptComponentFixture.nativeElement;
+ component = webscriptComponentFixture.componentInstance;
+ component.scriptPath = 'fakePath';
+ component.showData = true;
+ });
}));
describe('View', () => {
it('webscript html wrapper should be present', () => {
- let element = webscriptComponentFixture.nativeElement;
expect(element.querySelector('#webscript-html-wrapper')).toBeDefined();
});
+ it('webscript wrapper should be hide if showData is false', () => {
+ webscriptComponentFixture.detectChanges();
+ expect(element.querySelector('#webscript-html-wrapper')).toBe.undefined;
+ });
+
it('webscript JSON datatable wrapper should be present', () => {
- let element = webscriptComponentFixture.nativeElement;
+ webscriptComponentFixture.detectChanges();
+
expect(element.querySelector('#webscript-json-wrapper')).toBeDefined();
});
it('webscript plain text datatable wrapper should be present', () => {
- let element = webscriptComponentFixture.nativeElement;
+ webscriptComponentFixture.detectChanges();
+
expect(element.querySelector('#webscript-plaintext-wrapper')).toBeDefined();
});
});
@@ -71,7 +83,6 @@ describe('Test ng2-alfresco-webscript', () => {
});
it('webscript url should be the one configured by the input param', (done) => {
- let component = webscriptComponentFixture.componentInstance;
component.scriptPath = 'sample/folder/Company%20Home';
component.ngOnChanges().then(() => {
@@ -89,15 +100,13 @@ describe('Test ng2-alfresco-webscript', () => {
});
it('webscript TEXT response should be displayed', (done) => {
- let component = webscriptComponentFixture.componentInstance;
- let element = webscriptComponentFixture.nativeElement;
component.scriptPath = 'sample/folder/Company%20Home';
component.contentType = 'TEXT';
component.ngOnChanges().then(() => {
webscriptComponentFixture.detectChanges();
- expect(element.querySelector('#webscript-data').innerHTML)
+ expect(element.querySelector('#webscript-data-TEXT').innerHTML)
.toBe('text test');
done();
});
@@ -110,16 +119,14 @@ describe('Test ng2-alfresco-webscript', () => {
});
it('webscript JSON response should be displayed', (done) => {
- let component = webscriptComponentFixture.componentInstance;
- let element = webscriptComponentFixture.nativeElement;
component.scriptPath = 'sample/folder/Company%20Home';
component.contentType = 'JSON';
component.ngOnChanges().then(() => {
webscriptComponentFixture.detectChanges();
- expect(element.querySelector('#webscript-data').innerHTML)
- .toBe('{"0":{"id":1,"name":"Name 1"},"1":{"id":2,"name":"Name 2"}}');
+ expect(JSON.parse(element.querySelector('#webscript-data-JSON').innerHTML)[0].name).toBe('Name 1');
+ expect(JSON.parse(element.querySelector('#webscript-data-JSON').innerHTML)[1].name).toBe('Name 2');
done();
});
@@ -131,17 +138,15 @@ describe('Test ng2-alfresco-webscript', () => {
});
});
- it('webscript HTML response should be displayed', (done) => {
- let component = webscriptComponentFixture.componentInstance;
- let element = webscriptComponentFixture.nativeElement;
+ xit('webscript HTML response should be displayed', (done) => {
component.scriptPath = 'sample/folder/Company%20Home';
component.contentType = 'HTML';
component.ngOnChanges().then(() => {
webscriptComponentFixture.detectChanges();
- expect(element.querySelector('#webscript-data').innerHTML)
- .toBe('