mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
commit
15c2e51a8f
@ -27,6 +27,7 @@ env:
|
|||||||
- MODULE=ng2-alfresco-upload
|
- MODULE=ng2-alfresco-upload
|
||||||
- MODULE=ng2-alfresco-viewer
|
- MODULE=ng2-alfresco-viewer
|
||||||
- MODULE=ng2-alfresco-webscript
|
- MODULE=ng2-alfresco-webscript
|
||||||
|
- MODULE=ng2-alfresco-tag
|
||||||
- MODULE=ng2-activiti-form
|
- MODULE=ng2-activiti-form
|
||||||
- MODULE=ng2-activiti-tasklist
|
- MODULE=ng2-activiti-tasklist
|
||||||
- MODULE=ng2-activiti-processlist
|
- MODULE=ng2-activiti-processlist
|
||||||
@ -79,3 +80,4 @@ cache:
|
|||||||
- ng2-components/ng2-alfresco-upload/node_modules
|
- ng2-components/ng2-alfresco-upload/node_modules
|
||||||
- ng2-components/ng2-alfresco-viewer/node_modules
|
- ng2-components/ng2-alfresco-viewer/node_modules
|
||||||
- ng2-components/ng2-alfresco-webscript/node_modules
|
- ng2-components/ng2-alfresco-webscript/node_modules
|
||||||
|
- ng2-components/ng2-alfresco-tag/node_modules
|
||||||
|
@ -58,6 +58,7 @@ The following is a list of some of the components that you can use when building
|
|||||||
- [Login](ng2-components/ng2-alfresco-login/README.md)
|
- [Login](ng2-components/ng2-alfresco-login/README.md)
|
||||||
- [Upload](ng2-components/ng2-alfresco-upload/README.md)
|
- [Upload](ng2-components/ng2-alfresco-upload/README.md)
|
||||||
- [Webscript viewer](ng2-components/ng2-alfresco-webscript/README.md)
|
- [Webscript viewer](ng2-components/ng2-alfresco-webscript/README.md)
|
||||||
|
- [Tag list and controls](ng2-components/ng2-alfresco-tag/README.md)
|
||||||
|
|
||||||
You can browse all the components at the following [page](http://devproducts.alfresco.com/).
|
You can browse all the components at the following [page](http://devproducts.alfresco.com/).
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ environment:
|
|||||||
- COMPONENT_NAME: ng2-alfresco-search
|
- COMPONENT_NAME: ng2-alfresco-search
|
||||||
- COMPONENT_NAME: ng2-alfresco-upload
|
- COMPONENT_NAME: ng2-alfresco-upload
|
||||||
- COMPONENT_NAME: ng2-alfresco-viewer
|
- COMPONENT_NAME: ng2-alfresco-viewer
|
||||||
|
- COMPONENT_NAME: ng2-alfresco-tag
|
||||||
- COMPONENT_NAME: ng2-alfresco-webscript
|
- COMPONENT_NAME: ng2-alfresco-webscript
|
||||||
- COMPONENT_NAME: ng2-activiti-form
|
- COMPONENT_NAME: ng2-activiti-form
|
||||||
- COMPONENT_NAME: ng2-activiti-tasklist
|
- COMPONENT_NAME: ng2-activiti-tasklist
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
- [Login](ng2-alfresco-login/README.md)
|
- [Login](ng2-alfresco-login/README.md)
|
||||||
- [Upload](ng2-alfresco-upload/README.md)
|
- [Upload](ng2-alfresco-upload/README.md)
|
||||||
- [Webscript Viewer](ng2-components/ng2-alfresco-webscript/README.md)
|
- [Webscript Viewer](ng2-components/ng2-alfresco-webscript/README.md)
|
||||||
|
- [Tag list and controls](ng2-components/ng2-alfresco-tag/README.md)
|
||||||
|
|
||||||
## BPM components
|
## BPM components
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ describe('AlfrescoSearchComponent', () => {
|
|||||||
entry: {
|
entry: {
|
||||||
id: '123',
|
id: '123',
|
||||||
name: 'MyDoc',
|
name: 'MyDoc',
|
||||||
isFile : true,
|
isFile: true,
|
||||||
content: {
|
content: {
|
||||||
mimetype: 'text/plain'
|
mimetype: 'text/plain'
|
||||||
},
|
},
|
||||||
@ -128,8 +128,8 @@ describe('AlfrescoSearchComponent', () => {
|
|||||||
|
|
||||||
component.resultsEmitter.subscribe(x => {
|
component.resultsEmitter.subscribe(x => {
|
||||||
alfrescoSearchComponentFixture.detectChanges();
|
alfrescoSearchComponentFixture.detectChanges();
|
||||||
expect( element.querySelector('#result_user_0').innerHTML).toBe('John Doe');
|
expect(element.querySelector('#result_user_0').innerHTML).toBe('John Doe');
|
||||||
expect( element.querySelector('#result_name_0').innerHTML).toBe('MyDoc');
|
expect(element.querySelector('#result_name_0').innerHTML).toBe('MyDoc');
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ describe('AlfrescoSearchComponent', () => {
|
|||||||
it('should display no result if no result are returned', (done) => {
|
it('should display no result if no result are returned', (done) => {
|
||||||
component.resultsEmitter.subscribe(x => {
|
component.resultsEmitter.subscribe(x => {
|
||||||
alfrescoSearchComponentFixture.detectChanges();
|
alfrescoSearchComponentFixture.detectChanges();
|
||||||
expect( element.querySelector('#search_no_result')).not.toBe(null);
|
expect(element.querySelector('#search_no_result')).not.toBe(null);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
23
ng2-components/ng2-alfresco-tag/.editorconfig
Normal file
23
ng2-components/ng2-alfresco-tag/.editorconfig
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# http://editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[package.json]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[karma.conf.js]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
insert_final_newline = false
|
||||||
|
trim_trailing_whitespace = false
|
13
ng2-components/ng2-alfresco-tag/.gitignore
vendored
Normal file
13
ng2-components/ng2-alfresco-tag/.gitignore
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
npm-debug.log
|
||||||
|
node_modules
|
||||||
|
jspm_packages
|
||||||
|
.idea
|
||||||
|
typings
|
||||||
|
coverage
|
||||||
|
src/**/*.js
|
||||||
|
src/**/*.js.map
|
||||||
|
src/**/*.d.ts
|
||||||
|
demo/**/*.js
|
||||||
|
demo/**/*.js.map
|
||||||
|
demo/**/*.d.ts
|
||||||
|
!systemjs.config.js
|
12
ng2-components/ng2-alfresco-tag/.travis.yml
Normal file
12
ng2-components/ng2-alfresco-tag/.travis.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
language: node_js
|
||||||
|
node_js:
|
||||||
|
- v5
|
||||||
|
- v4
|
||||||
|
- '0.12'
|
||||||
|
- '0.10'
|
||||||
|
install: npm install
|
||||||
|
sudo: false
|
||||||
|
after_success:
|
||||||
|
npm run coverage
|
||||||
|
# Send coverage data to Coveralls
|
||||||
|
after_script: "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
|
13
ng2-components/ng2-alfresco-tag/LICENSE
Normal file
13
ng2-components/ng2-alfresco-tag/LICENSE
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Copyright 2016 Alfresco <alfresco@alfresco.com>
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
369
ng2-components/ng2-alfresco-tag/README.md
Normal file
369
ng2-components/ng2-alfresco-tag/README.md
Normal file
@ -0,0 +1,369 @@
|
|||||||
|
# Alfresco Tag Component for Angular 2
|
||||||
|
<p>
|
||||||
|
<a title='Build Status Travis' href="https://travis-ci.org/Alfresco/alfresco-ng2-components">
|
||||||
|
<img src='https://travis-ci.org/Alfresco/alfresco-ng2-components.svg?branch=master' alt='travis
|
||||||
|
Status' />
|
||||||
|
</a>
|
||||||
|
<a title='Build Status AppVeyor' href="https://ci.appveyor.com/project/alfresco/alfresco-ng2-components">
|
||||||
|
<img src='https://ci.appveyor.com/api/projects/status/github/Alfresco/alfresco-ng2-components' alt='travis
|
||||||
|
Status' />
|
||||||
|
</a>
|
||||||
|
<a href='https://codecov.io/gh/Alfresco/alfresco-ng2-components'>
|
||||||
|
<img src='https://img.shields.io/codecov/c/github/Alfresco/alfresco-ng2-components/master.svg?maxAge=2592000' alt='Coverage Status' />
|
||||||
|
</a>
|
||||||
|
<a href='https://www.npmjs.com/package/ng2-alfresco-tag'>
|
||||||
|
<img src='https://img.shields.io/npm/dt/ng2-alfresco-tag.svg' alt='npm downloads' />
|
||||||
|
</a>
|
||||||
|
<a href='https://github.com/Alfresco/alfresco-ng2-components/blob/master/LICENSE'>
|
||||||
|
<img src='https://img.shields.io/hexpm/l/plug.svg' alt='license' />
|
||||||
|
</a>
|
||||||
|
<a href='https://www.alfresco.com/'>
|
||||||
|
<img src='https://img.shields.io/badge/style-component-green.svg?label=alfresco' alt='alfresco component' />
|
||||||
|
</a>
|
||||||
|
<a href='https://angular.io/'>
|
||||||
|
<img src='https://img.shields.io/badge/style-2-red.svg?label=angular' alt='angular 2' />
|
||||||
|
</a>
|
||||||
|
<a href='https://www.typescriptlang.org/docs/tutorial.html'>
|
||||||
|
<img src='https://img.shields.io/badge/style-lang-blue.svg?label=typescript' alt='typescript' />
|
||||||
|
</a>
|
||||||
|
<a href='https://www.alfresco.com/'>
|
||||||
|
<img src='https://img.shields.io/badge/style-%3E5.0.0-blue.svg?label=node%20version' alt='node version' />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
### Node
|
||||||
|
To correctly use this component check that on your machine is running Node version 5.0.0 or higher.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install --save ng2-alfresco-tag
|
||||||
|
```
|
||||||
|
|
||||||
|
Components included:
|
||||||
|
|
||||||
|
* Alfresco Tag Component
|
||||||
|
|
||||||
|
#### Dependencies
|
||||||
|
|
||||||
|
Add the following dependency to your index.html:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="node_modules/alfresco-js-api/dist/alfresco-js-api.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
The following component needs to be added to your systemjs.config:
|
||||||
|
|
||||||
|
- ng2-translate
|
||||||
|
- ng2-alfresco-core
|
||||||
|
|
||||||
|
Please refer to the following example to have an idea of how your systemjs.config should look like :
|
||||||
|
|
||||||
|
https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-alfresco-tag/demo/systemjs.config.js
|
||||||
|
|
||||||
|
#### Style
|
||||||
|
The style of this component is based on material design, so if you want to visualize it correctly you have to add the material
|
||||||
|
design dependency to your project:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install --save material-design-icons material-design-lite
|
||||||
|
```
|
||||||
|
|
||||||
|
Also make sure you include these dependencies in your .html page:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!-- Google Material Design Lite -->
|
||||||
|
<link rel="stylesheet" href="node_modules/material-design-lite/material.min.css">
|
||||||
|
<script src="node_modules/material-design-lite/material.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="node_modules/material-design-icons/iconfont/material-icons.css">
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Basic usage
|
||||||
|
|
||||||
|
In this component are present three different tags :
|
||||||
|
|
||||||
|
* alfresco-tag-node-actions-list
|
||||||
|
* alfresco-tag-list
|
||||||
|
* alfresco-tag-node-list
|
||||||
|
|
||||||
|
## alfresco-tag-node-actions-list
|
||||||
|
|
||||||
|
```html
|
||||||
|
<alfresco-tag-node-actions-list [nodeId]="nodeId"></alfresco-tag-node-actions-list>
|
||||||
|
```
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Component, OnInit, Input } from '@angular/core';
|
||||||
|
import { bootstrap } from '@angular/platform-browser-dynamic';
|
||||||
|
import { HTTP_PROVIDERS } from '@angular/http';
|
||||||
|
import {
|
||||||
|
ALFRESCO_CORE_PROVIDERS,
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService
|
||||||
|
} from 'ng2-alfresco-core';
|
||||||
|
import { TAGCOMPONENT, TAGSERVICES } from 'ng2-alfresco-tag';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'alfresco-tag-demo',
|
||||||
|
template: `
|
||||||
|
<div class="container" *ngIf="authenticated">
|
||||||
|
<alfresco-tag-node-actions-list [nodeId]="nodeId"></alfresco-tag-node-actions-list>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
directives: [TAGCOMPONENT],
|
||||||
|
providers: [TAGSERVICES]
|
||||||
|
})
|
||||||
|
class TagDemo implements OnInit {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
nodeId: string = '74cd8a96-8a21-47e5-9b3b-a1b3e296787d';
|
||||||
|
|
||||||
|
authenticated: boolean;
|
||||||
|
|
||||||
|
ecmHost: string = 'http://127.0.0.1:8080';
|
||||||
|
|
||||||
|
ticket: string;
|
||||||
|
|
||||||
|
constructor(private authService: AlfrescoAuthenticationService,
|
||||||
|
private settingsService: AlfrescoSettingsService) {
|
||||||
|
settingsService.ecmHost = this.ecmHost;
|
||||||
|
settingsService.setProviders('ECM');
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
login() {
|
||||||
|
this.authService.login('admin', 'admin').subscribe(
|
||||||
|
ticket => {
|
||||||
|
this.authenticated = true;
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.authenticated = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateHost(): void {
|
||||||
|
this.settingsService.ecmHost = this.ecmHost;
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
logData(data) {
|
||||||
|
console.log(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bootstrap(TagDemo, [
|
||||||
|
HTTP_PROVIDERS,
|
||||||
|
ALFRESCO_CORE_PROVIDERS
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
Attribute | Options | Default | Description | Mandatory
|
||||||
|
--- | --- | --- | --- | ---
|
||||||
|
`nodeId` | *string* | | The identifier of a node.|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## alfresco-tag-node-list
|
||||||
|
|
||||||
|
```html
|
||||||
|
<alfresco-tag-node-list [nodeId]="nodeId"></alfresco-tag-node-list>
|
||||||
|
```
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Component, OnInit, Input } from '@angular/core';
|
||||||
|
import { bootstrap } from '@angular/platform-browser-dynamic';
|
||||||
|
import { HTTP_PROVIDERS } from '@angular/http';
|
||||||
|
import {
|
||||||
|
ALFRESCO_CORE_PROVIDERS,
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService
|
||||||
|
} from 'ng2-alfresco-core';
|
||||||
|
|
||||||
|
import { TAGCOMPONENT, TAGSERVICES } from 'ng2-alfresco-tag';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'alfresco-tag-demo',
|
||||||
|
template: `
|
||||||
|
<div class="container" *ngIf="authenticated">
|
||||||
|
<alfresco-tag-node-list [nodeId]="nodeId"></alfresco-tag-node-list>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
directives: [TAGCOMPONENT],
|
||||||
|
providers: [TAGSERVICES]
|
||||||
|
})
|
||||||
|
class TagDemo implements OnInit {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
nodeId: string = '74cd8a96-8a21-47e5-9b3b-a1b3e296787d';
|
||||||
|
|
||||||
|
authenticated: boolean;
|
||||||
|
|
||||||
|
ecmHost: string = 'http://127.0.0.1:8080';
|
||||||
|
|
||||||
|
ticket: string;
|
||||||
|
|
||||||
|
constructor(private authService: AlfrescoAuthenticationService,
|
||||||
|
private settingsService: AlfrescoSettingsService) {
|
||||||
|
settingsService.ecmHost = this.ecmHost;
|
||||||
|
settingsService.setProviders('ECM');
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
login() {
|
||||||
|
this.authService.login('admin', 'admin').subscribe(
|
||||||
|
ticket => {
|
||||||
|
this.authenticated = true;
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.authenticated = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateHost(): void {
|
||||||
|
this.settingsService.ecmHost = this.ecmHost;
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
logData(data) {
|
||||||
|
console.log(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bootstrap(TagDemo, [
|
||||||
|
HTTP_PROVIDERS,
|
||||||
|
ALFRESCO_CORE_PROVIDERS
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
Attribute | Options | Default | Description | Mandatory
|
||||||
|
--- | --- | --- | --- | ---
|
||||||
|
`nodeId` | *string* | | The identifier of a node.|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## alfresco-tag-list
|
||||||
|
|
||||||
|
```html
|
||||||
|
<alfresco-tag-list></alfresco-tag-list>
|
||||||
|
```
|
||||||
|
|
||||||
|
```ts
|
||||||
|
import { Component, OnInit, Input } from '@angular/core';
|
||||||
|
import { bootstrap } from '@angular/platform-browser-dynamic';
|
||||||
|
import { HTTP_PROVIDERS } from '@angular/http';
|
||||||
|
import {
|
||||||
|
ALFRESCO_CORE_PROVIDERS,
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService
|
||||||
|
} from 'ng2-alfresco-core';
|
||||||
|
|
||||||
|
import { TAGCOMPONENT, TAGSERVICES } from 'ng2-alfresco-tag';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'alfresco-tag-demo',
|
||||||
|
template: `
|
||||||
|
<div class="container" *ngIf="authenticated">
|
||||||
|
<alfresco-tag-list></alfresco-tag-list>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
directives: [TAGCOMPONENT],
|
||||||
|
providers: [TAGSERVICES]
|
||||||
|
})
|
||||||
|
class TagDemo implements OnInit {
|
||||||
|
|
||||||
|
authenticated: boolean;
|
||||||
|
|
||||||
|
ecmHost: string = 'http://127.0.0.1:8080';
|
||||||
|
|
||||||
|
constructor(private authService: AlfrescoAuthenticationService,
|
||||||
|
private settingsService: AlfrescoSettingsService) {
|
||||||
|
settingsService.ecmHost = this.ecmHost;
|
||||||
|
settingsService.setProviders('ECM');
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
login() {
|
||||||
|
this.authService.login('admin', 'admin').subscribe(
|
||||||
|
ticket => {
|
||||||
|
this.authenticated = true;
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
this.authenticated = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateHost(): void {
|
||||||
|
this.settingsService.ecmHost = this.ecmHost;
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
logData(data) {
|
||||||
|
console.log(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bootstrap(TagDemo, [
|
||||||
|
HTTP_PROVIDERS,
|
||||||
|
ALFRESCO_CORE_PROVIDERS
|
||||||
|
]);
|
||||||
|
```
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## Build from sources
|
||||||
|
Alternatively you can build component from sources with the following commands:
|
||||||
|
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
##Build the files and keep watching for changes
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run build:w
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running unit tests
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running unit tests in browser
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm test-browser
|
||||||
|
```
|
||||||
|
|
||||||
|
This task rebuilds all the code, runs tslint, license checks and other quality check tools
|
||||||
|
before performing unit testing.
|
||||||
|
|
||||||
|
## Code coverage
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run coverage
|
||||||
|
```
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
If you want have a demo of how the component works, please check the demo folder :
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd demo
|
||||||
|
npm install
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
16
ng2-components/ng2-alfresco-tag/assets/license_header.txt
Normal file
16
ng2-components/ng2-alfresco-tag/assets/license_header.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
10
ng2-components/ng2-alfresco-tag/demo/.editorconfig
Normal file
10
ng2-components/ng2-alfresco-tag/demo/.editorconfig
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[{src,scripts}/**.{ts,json,js}]
|
||||||
|
end_of_line = crlf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
6
ng2-components/ng2-alfresco-tag/demo/.gitignore
vendored
Normal file
6
ng2-components/ng2-alfresco-tag/demo/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
typings/
|
||||||
|
node_modules/
|
||||||
|
.idea
|
||||||
|
dist/
|
||||||
|
!systemjs.config.js
|
||||||
|
!browser-sync-config.js
|
19
ng2-components/ng2-alfresco-tag/demo/README.md
Normal file
19
ng2-components/ng2-alfresco-tag/demo/README.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# ng2-alfresco-tag - Demo
|
||||||
|
|
||||||
|
* To install dependencies
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
* To provide a live demo
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm run start
|
||||||
|
```
|
||||||
|
|
||||||
|
* To clean npm_modules and typings folder
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm run clean
|
||||||
|
```
|
39
ng2-components/ng2-alfresco-tag/demo/index.html
Normal file
39
ng2-components/ng2-alfresco-tag/demo/index.html
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Alfresco Angular 2 Tag - Demo</title>
|
||||||
|
<base href="./">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<!-- Google Material Design Lite -->
|
||||||
|
<link rel="stylesheet" href="node_modules/material-design-lite/material.min.css">
|
||||||
|
<script src="node_modules/material-design-lite/material.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="node_modules/material-design-icons/iconfont/material-icons.css">
|
||||||
|
|
||||||
|
<!-- 1. Load libraries -->
|
||||||
|
<!-- Polyfill(s) for older browsers -->
|
||||||
|
<script src="node_modules/core-js/client/shim.min.js"></script>
|
||||||
|
|
||||||
|
<script src="node_modules/zone.js/dist/zone.js"></script>
|
||||||
|
<script src="node_modules/reflect-metadata/Reflect.js"></script>
|
||||||
|
<script src="node_modules/systemjs/dist/system.src.js"></script>
|
||||||
|
|
||||||
|
<!-- Additional Alfresco libraries -->
|
||||||
|
<script src="node_modules/alfresco-js-api/dist/alfresco-js-api.js"></script>
|
||||||
|
|
||||||
|
<script src="systemjs.config.js"></script>
|
||||||
|
<script>
|
||||||
|
System.import('app').catch(
|
||||||
|
function (err) {
|
||||||
|
console.error(err);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<alfresco-tag-demo></alfresco-tag-demo>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
64
ng2-components/ng2-alfresco-tag/demo/package.json
Normal file
64
ng2-components/ng2-alfresco-tag/demo/package.json
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"name": "ng2-alfresco-tag-demo",
|
||||||
|
"description": "Alfresco Angular2 Tag - Demo",
|
||||||
|
"version": "0.3.0",
|
||||||
|
"author": "Alfresco Software, Ltd.",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"clean": "rimraf dist node_modules typings",
|
||||||
|
"typings": "typings install",
|
||||||
|
"postinstall": "npm run typings && npm run build",
|
||||||
|
"start": "concurrently \"npm run build:w\" \"npm run server\" ",
|
||||||
|
"server": "wsrv -o -s -l",
|
||||||
|
"build": "npm run tslint && rimraf dist && tsc",
|
||||||
|
"build:w": "npm run tslint && rimraf dist && tsc -w",
|
||||||
|
"tslint": "npm run tslint-src && npm run tslint-root",
|
||||||
|
"tslint-src": "tslint -c tslint.json 'src/{,**/}**.ts'",
|
||||||
|
"tslint-root": "tslint -c tslint.json *.ts"
|
||||||
|
},
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/common": "2.0.0-rc.3",
|
||||||
|
"@angular/compiler": "2.0.0-rc.3",
|
||||||
|
"@angular/core": "2.0.0-rc.3",
|
||||||
|
"@angular/forms": "0.1.1",
|
||||||
|
"@angular/http": "2.0.0-rc.3",
|
||||||
|
"@angular/platform-browser": "2.0.0-rc.3",
|
||||||
|
"@angular/platform-browser-dynamic": "2.0.0-rc.3",
|
||||||
|
"@angular/router": "3.0.0-alpha.7",
|
||||||
|
"@angular/router-deprecated": "2.0.0-rc.2",
|
||||||
|
"@angular/upgrade": "2.0.0-rc.3",
|
||||||
|
"systemjs": "0.19.27",
|
||||||
|
"core-js": "2.4.0",
|
||||||
|
"reflect-metadata": "0.1.3",
|
||||||
|
"rxjs": "5.0.0-beta.6",
|
||||||
|
"zone.js": "0.6.12",
|
||||||
|
|
||||||
|
"material-design-icons": "2.2.3",
|
||||||
|
"material-design-lite": "1.1.3",
|
||||||
|
|
||||||
|
"alfresco-js-api": "^0.3.0",
|
||||||
|
|
||||||
|
"ng2-translate": "2.2.2",
|
||||||
|
"ng2-alfresco-core": "^0.3.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"concurrently": "2.0.0",
|
||||||
|
"rimraf": "2.5.2",
|
||||||
|
"tslint": "3.8.1",
|
||||||
|
"typescript": "1.8.10",
|
||||||
|
"typings": "1.0.4",
|
||||||
|
"wsrv": "0.1.3"
|
||||||
|
},
|
||||||
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "Eugenio Romano",
|
||||||
|
"email": "eugenio.romano@alfresco.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"keywords": [
|
||||||
|
"angular2",
|
||||||
|
"typescript",
|
||||||
|
"alfresco"
|
||||||
|
]
|
||||||
|
}
|
113
ng2-components/ng2-alfresco-tag/demo/src/main.ts
Normal file
113
ng2-components/ng2-alfresco-tag/demo/src/main.ts
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Component, OnInit, Input } from '@angular/core';
|
||||||
|
import { bootstrap } from '@angular/platform-browser-dynamic';
|
||||||
|
import { HTTP_PROVIDERS } from '@angular/http';
|
||||||
|
|
||||||
|
import {
|
||||||
|
ALFRESCO_CORE_PROVIDERS,
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService
|
||||||
|
} from 'ng2-alfresco-core';
|
||||||
|
|
||||||
|
import { TAGCOMPONENT, TAGSERVICES } from 'ng2-alfresco-tag';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'alfresco-tag-demo',
|
||||||
|
template: `
|
||||||
|
<label for="ticket"><b>Insert a valid access ticket / ticket:</b></label><br>
|
||||||
|
<input id="ticket" type="text" size="48" (change)="updateTicket()" [(ngModel)]="ticket"><br>
|
||||||
|
<label for="host"><b>Insert the ip of your Alfresco instance:</b></label><br>
|
||||||
|
<input id="host" type="text" size="48" (change)="updateHost()" [(ngModel)]="ecmHost"><br><br>
|
||||||
|
<div *ngIf="!authenticated" style="color:#FF2323">
|
||||||
|
Authentication failed to ip {{ ecmHost }} with user: admin, admin, you can still try to add a valid ticket to perform
|
||||||
|
operations.
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<label for="nodeId"><b>Insert Node Id</b></label><br>
|
||||||
|
<input id="nodeId" type="text" size="48" [(ngModel)]="nodeId"><br>
|
||||||
|
<div class="container" *ngIf="authenticated">
|
||||||
|
<div class="mdl-grid">
|
||||||
|
<div class="mdl-cell mdl-cell--4-col"><alfresco-tag-node-actions-list [nodeId]="nodeId"></alfresco-tag-node-actions-list></div>
|
||||||
|
<div class="mdl-cell mdl-cell--4-col">List Tags ECM <alfresco-tag-list></alfresco-tag-list></div>
|
||||||
|
<div class="mdl-cell mdl-cell--4-col">
|
||||||
|
Tag list By Node ID
|
||||||
|
<alfresco-tag-node-list [nodeId]="nodeId"></alfresco-tag-node-list>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`,
|
||||||
|
directives: [TAGCOMPONENT],
|
||||||
|
providers: [TAGSERVICES]
|
||||||
|
})
|
||||||
|
class TagDemo implements OnInit {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
nodeId: string = '74cd8a96-8a21-47e5-9b3b-a1b3e296787d';
|
||||||
|
|
||||||
|
authenticated: boolean;
|
||||||
|
|
||||||
|
ecmHost: string = 'http://127.0.0.1:8080';
|
||||||
|
|
||||||
|
ticket: string;
|
||||||
|
|
||||||
|
constructor(private authService: AlfrescoAuthenticationService,
|
||||||
|
private settingsService: AlfrescoSettingsService) {
|
||||||
|
|
||||||
|
settingsService.ecmHost = this.ecmHost;
|
||||||
|
settingsService.setProviders('ECM');
|
||||||
|
|
||||||
|
if (this.authService.getTicketEcm()) {
|
||||||
|
this.ticket = this.authService.getTicketEcm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
login() {
|
||||||
|
this.authService.login('admin', 'admin').subscribe(
|
||||||
|
ticket => {
|
||||||
|
console.log(ticket);
|
||||||
|
this.ticket = this.authService.getTicketEcm();
|
||||||
|
this.authenticated = true;
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
console.log(error);
|
||||||
|
this.authenticated = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateTicket(): void {
|
||||||
|
localStorage.setItem('ticket-ECM', this.ticket);
|
||||||
|
}
|
||||||
|
|
||||||
|
public updateHost(): void {
|
||||||
|
this.settingsService.ecmHost = this.ecmHost;
|
||||||
|
this.login();
|
||||||
|
}
|
||||||
|
|
||||||
|
logData(data) {
|
||||||
|
console.log(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bootstrap(TagDemo, [
|
||||||
|
HTTP_PROVIDERS,
|
||||||
|
ALFRESCO_CORE_PROVIDERS
|
||||||
|
]);
|
55
ng2-components/ng2-alfresco-tag/demo/systemjs.config.js
Normal file
55
ng2-components/ng2-alfresco-tag/demo/systemjs.config.js
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/**
|
||||||
|
* System configuration for Angular 2 samples
|
||||||
|
* Adjust as necessary for your application needs.
|
||||||
|
*/
|
||||||
|
(function(global) {
|
||||||
|
// map tells the System loader where to look for things
|
||||||
|
var map = {
|
||||||
|
'app': 'dist', // 'dist',
|
||||||
|
'@angular': 'node_modules/@angular',
|
||||||
|
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
|
||||||
|
'rxjs': 'node_modules/rxjs',
|
||||||
|
|
||||||
|
'ng2-translate': 'node_modules/ng2-translate',
|
||||||
|
'ng2-alfresco-core': 'node_modules/ng2-alfresco-core/dist',
|
||||||
|
'ng2-alfresco-tag': 'node_modules/ng2-alfresco-tag/dist'
|
||||||
|
};
|
||||||
|
// packages tells the System loader how to load when no filename and/or no extension
|
||||||
|
var packages = {
|
||||||
|
'app': { main: 'main.js', defaultExtension: 'js' },
|
||||||
|
'rxjs': { defaultExtension: 'js' },
|
||||||
|
'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
|
||||||
|
|
||||||
|
'ng2-translate': { defaultExtension: 'js' },
|
||||||
|
'ng2-alfresco-core': { main: 'index.js', defaultExtension: 'js' },
|
||||||
|
'ng2-alfresco-tag': { main: 'index.js', defaultExtension: 'js' }
|
||||||
|
};
|
||||||
|
var ngPackageNames = [
|
||||||
|
'common',
|
||||||
|
'compiler',
|
||||||
|
'core',
|
||||||
|
'http',
|
||||||
|
'platform-browser',
|
||||||
|
'platform-browser-dynamic',
|
||||||
|
'router',
|
||||||
|
'router-deprecated',
|
||||||
|
'upgrade'
|
||||||
|
];
|
||||||
|
// Individual files (~300 requests):
|
||||||
|
function packIndex(pkgName) {
|
||||||
|
packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
|
||||||
|
}
|
||||||
|
// Bundled (~40 requests):
|
||||||
|
function packUmd(pkgName) {
|
||||||
|
packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
|
||||||
|
}
|
||||||
|
// Most environments should use UMD; some (Karma) need the individual index files
|
||||||
|
var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
|
||||||
|
// Add package entries for angular packages
|
||||||
|
ngPackageNames.forEach(setPackageConfig);
|
||||||
|
var config = {
|
||||||
|
map: map,
|
||||||
|
packages: packages
|
||||||
|
};
|
||||||
|
System.config(config);
|
||||||
|
})(this);
|
19
ng2-components/ng2-alfresco-tag/demo/tsconfig.json
Normal file
19
ng2-components/ng2-alfresco-tag/demo/tsconfig.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"module": "system",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"emitDecoratorMetadata": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"removeComments": true,
|
||||||
|
"declaration": true,
|
||||||
|
"outDir": "dist"
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"dist",
|
||||||
|
"node_modules",
|
||||||
|
"typings/main",
|
||||||
|
"typings/main.d.ts"
|
||||||
|
]
|
||||||
|
}
|
124
ng2-components/ng2-alfresco-tag/demo/tslint.json
Normal file
124
ng2-components/ng2-alfresco-tag/demo/tslint.json
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"align": [
|
||||||
|
true,
|
||||||
|
"parameters",
|
||||||
|
"arguments",
|
||||||
|
"statements"
|
||||||
|
],
|
||||||
|
"ban": false,
|
||||||
|
"class-name": true,
|
||||||
|
"comment-format": [
|
||||||
|
true,
|
||||||
|
"check-space",
|
||||||
|
"check-lowercase"
|
||||||
|
],
|
||||||
|
"curly": true,
|
||||||
|
"eofline": true,
|
||||||
|
"forin": true,
|
||||||
|
"indent": [
|
||||||
|
true,
|
||||||
|
"spaces"
|
||||||
|
],
|
||||||
|
"interface-name": false,
|
||||||
|
"jsdoc-format": true,
|
||||||
|
"label-position": true,
|
||||||
|
"label-undefined": true,
|
||||||
|
"max-line-length": [
|
||||||
|
true,
|
||||||
|
180
|
||||||
|
],
|
||||||
|
"member-ordering": [
|
||||||
|
true,
|
||||||
|
"public-before-private",
|
||||||
|
"static-before-instance",
|
||||||
|
"variables-before-functions"
|
||||||
|
],
|
||||||
|
"no-any": false,
|
||||||
|
"no-arg": true,
|
||||||
|
"no-bitwise": true,
|
||||||
|
"no-conditional-assignment": true,
|
||||||
|
"no-consecutive-blank-lines": false,
|
||||||
|
"no-console": [
|
||||||
|
true,
|
||||||
|
"debug",
|
||||||
|
"info",
|
||||||
|
"time",
|
||||||
|
"timeEnd",
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"no-construct": true,
|
||||||
|
"no-constructor-vars": false,
|
||||||
|
"no-debugger": true,
|
||||||
|
"no-duplicate-key": true,
|
||||||
|
"no-duplicate-variable": true,
|
||||||
|
"no-empty": true,
|
||||||
|
"no-eval": true,
|
||||||
|
"no-inferrable-types": false,
|
||||||
|
"no-internal-module": true,
|
||||||
|
"no-require-imports": true,
|
||||||
|
"no-shadowed-variable": true,
|
||||||
|
"no-switch-case-fall-through": true,
|
||||||
|
"no-trailing-whitespace": true,
|
||||||
|
"no-unreachable": true,
|
||||||
|
"no-unused-expression": true,
|
||||||
|
"no-unused-variable": true,
|
||||||
|
"no-use-before-declare": true,
|
||||||
|
"no-var-keyword": true,
|
||||||
|
"no-var-requires": true,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"one-line": [
|
||||||
|
true,
|
||||||
|
"check-open-brace",
|
||||||
|
"check-catch",
|
||||||
|
"check-else",
|
||||||
|
"check-whitespace"
|
||||||
|
],
|
||||||
|
"quotemark": [
|
||||||
|
true,
|
||||||
|
"single",
|
||||||
|
"avoid-escape"
|
||||||
|
],
|
||||||
|
"radix": true,
|
||||||
|
"semicolon": true,
|
||||||
|
"switch-default": true,
|
||||||
|
"trailing-comma": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"multiline": "never",
|
||||||
|
"singleline": "never"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"triple-equals": [
|
||||||
|
true,
|
||||||
|
"allow-null-check"
|
||||||
|
],
|
||||||
|
"typedef": false,
|
||||||
|
"typedef-whitespace": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"call-signature": "nospace",
|
||||||
|
"index-signature": "nospace",
|
||||||
|
"parameter": "nospace",
|
||||||
|
"property-declaration": "nospace",
|
||||||
|
"variable-declaration": "nospace"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"use-strict": false,
|
||||||
|
"variable-name": [
|
||||||
|
true,
|
||||||
|
"check-format",
|
||||||
|
"allow-leading-underscore",
|
||||||
|
"ban-keywords"
|
||||||
|
],
|
||||||
|
"whitespace": [
|
||||||
|
true,
|
||||||
|
"check-branch",
|
||||||
|
"check-operator",
|
||||||
|
"check-separator",
|
||||||
|
"check-type",
|
||||||
|
"check-module",
|
||||||
|
"check-decl"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
7
ng2-components/ng2-alfresco-tag/demo/typings.json
Normal file
7
ng2-components/ng2-alfresco-tag/demo/typings.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"globalDependencies": {
|
||||||
|
"core-js": "registry:dt/core-js#0.0.0+20160317120654",
|
||||||
|
"jasmine": "registry:dt/jasmine#2.2.0+20160505161446",
|
||||||
|
"node": "registry:dt/node#4.0.0+20160509154515"
|
||||||
|
}
|
||||||
|
}
|
5
ng2-components/ng2-alfresco-tag/demo/wsrv-config.json
Normal file
5
ng2-components/ng2-alfresco-tag/demo/wsrv-config.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"watch": [
|
||||||
|
"node_modules/ng2-alfresco-tag/dist/**/*.{html,htm,css,js}"
|
||||||
|
]
|
||||||
|
}
|
BIN
ng2-components/ng2-alfresco-tag/docs/assets/tag1.png
Normal file
BIN
ng2-components/ng2-alfresco-tag/docs/assets/tag1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
ng2-components/ng2-alfresco-tag/docs/assets/tag2.png
Normal file
BIN
ng2-components/ng2-alfresco-tag/docs/assets/tag2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
ng2-components/ng2-alfresco-tag/docs/assets/tag3.png
Normal file
BIN
ng2-components/ng2-alfresco-tag/docs/assets/tag3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
41
ng2-components/ng2-alfresco-tag/index.ts
Normal file
41
ng2-components/ng2-alfresco-tag/index.ts
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { TagActionsComponent } from './src/components/tag-actions.component';
|
||||||
|
import { TagList } from './src/components/tag-list.component';
|
||||||
|
import { TagNodeList } from './src/components/tag-node-list.component';
|
||||||
|
import { TagService } from './src/services/tag.service';
|
||||||
|
|
||||||
|
export * from './src/components/tag-actions.component';
|
||||||
|
export * from './src/components/tag-list.component';
|
||||||
|
export * from './src/components/tag-node-list.component';
|
||||||
|
export * from './src/services/tag.service';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: [TagActionsComponent, TagList, TagNodeList]
|
||||||
|
};
|
||||||
|
|
||||||
|
export const TAGCOMPONENT: [any] = [
|
||||||
|
TagActionsComponent,
|
||||||
|
TagList,
|
||||||
|
TagNodeList
|
||||||
|
];
|
||||||
|
|
||||||
|
export const TAGSERVICES: [any] = [
|
||||||
|
TagService
|
||||||
|
];
|
||||||
|
|
107
ng2-components/ng2-alfresco-tag/karma-test-shim.js
Normal file
107
ng2-components/ng2-alfresco-tag/karma-test-shim.js
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
// Tun on full stack traces in errors to help debugging
|
||||||
|
Error.stackTraceLimit = Infinity;
|
||||||
|
|
||||||
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 1000;
|
||||||
|
|
||||||
|
__karma__.loaded = function() {};
|
||||||
|
|
||||||
|
var map = {
|
||||||
|
'app': 'base/dist',
|
||||||
|
'rxjs': 'base/node_modules/rxjs',
|
||||||
|
'@angular': 'base/node_modules/@angular',
|
||||||
|
'ng2-translate' : '/base/node_modules/ng2-translate',
|
||||||
|
'ng2-alfresco-core': '/base/node_modules/ng2-alfresco-core/dist'
|
||||||
|
};
|
||||||
|
|
||||||
|
var packages = {
|
||||||
|
'app': { main: 'main.js', defaultExtension: 'js' },
|
||||||
|
'rxjs': { defaultExtension: 'js' },
|
||||||
|
'ng2-translate': { defaultExtension: 'js' },
|
||||||
|
'ng2-alfresco-core': { main: 'index.js', defaultExtension: 'js' }
|
||||||
|
};
|
||||||
|
|
||||||
|
var packageNames = [
|
||||||
|
'@angular/common',
|
||||||
|
'@angular/compiler',
|
||||||
|
'@angular/core',
|
||||||
|
'@angular/http',
|
||||||
|
'@angular/platform-browser',
|
||||||
|
'@angular/platform-browser-dynamic',
|
||||||
|
'@angular/router',
|
||||||
|
'@angular/router-deprecated',
|
||||||
|
'@angular/testing',
|
||||||
|
'@angular/upgrade'
|
||||||
|
];
|
||||||
|
|
||||||
|
packageNames.forEach(function(pkgName) {
|
||||||
|
packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
|
||||||
|
});
|
||||||
|
|
||||||
|
packages['base/dist'] = {
|
||||||
|
defaultExtension: 'js',
|
||||||
|
format: 'register',
|
||||||
|
map: Object.keys(window.__karma__.files).filter(onlyAppFiles).reduce(createPathRecords, {})
|
||||||
|
};
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
map: map,
|
||||||
|
packages: packages
|
||||||
|
};
|
||||||
|
|
||||||
|
System.config(config);
|
||||||
|
|
||||||
|
System.import('@angular/platform-browser/src/browser/browser_adapter')
|
||||||
|
.then(function(browser_adapter) { browser_adapter.BrowserDomAdapter.makeCurrent(); })
|
||||||
|
.then(function () {
|
||||||
|
return Promise.all([
|
||||||
|
System.import('@angular/core/testing'),
|
||||||
|
System.import('@angular/platform-browser-dynamic/testing')
|
||||||
|
])
|
||||||
|
})
|
||||||
|
.then(function (providers) {
|
||||||
|
var testing = providers[0];
|
||||||
|
var testingBrowser = providers[1];
|
||||||
|
|
||||||
|
testing.setBaseTestProviders(
|
||||||
|
testingBrowser.TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
|
||||||
|
testingBrowser.TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);
|
||||||
|
|
||||||
|
})
|
||||||
|
.then(function() { return Promise.all(resolveTestFiles()); })
|
||||||
|
.then(
|
||||||
|
function() {
|
||||||
|
__karma__.start();
|
||||||
|
},
|
||||||
|
function(error) {
|
||||||
|
if(typeof __karma__.error == 'function') {
|
||||||
|
__karma__.error(error.stack || error);
|
||||||
|
}else{
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
function createPathRecords(pathsMapping, appPath) {
|
||||||
|
var pathParts = appPath.split('/');
|
||||||
|
var moduleName = './' + pathParts.slice(Math.max(pathParts.length - 2, 1)).join('/');
|
||||||
|
moduleName = moduleName.replace(/\.js$/, '');
|
||||||
|
pathsMapping[moduleName] = appPath + '?' + window.__karma__.files[appPath];
|
||||||
|
return pathsMapping;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onlyAppFiles(filePath) {
|
||||||
|
return /\/base\/dist\/(?!.*\.spec\.js$).*\.js$/.test(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onlySpecFiles(path) {
|
||||||
|
return /\.spec\.js$/.test(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveTestFiles() {
|
||||||
|
return Object.keys(window.__karma__.files) // All files served by Karma.
|
||||||
|
.filter(onlySpecFiles)
|
||||||
|
.map(function(moduleName) {
|
||||||
|
// loads all spec files via their global module names (e.g.
|
||||||
|
// 'base/dist/vg-player/vg-player.spec')
|
||||||
|
return System.import(moduleName);
|
||||||
|
});
|
||||||
|
}
|
92
ng2-components/ng2-alfresco-tag/karma.conf.js
Normal file
92
ng2-components/ng2-alfresco-tag/karma.conf.js
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports = function (config) {
|
||||||
|
config.set({
|
||||||
|
|
||||||
|
basePath: '.',
|
||||||
|
|
||||||
|
frameworks: ['jasmine-ajax', 'jasmine'],
|
||||||
|
|
||||||
|
files: [
|
||||||
|
// paths loaded by Karma
|
||||||
|
{pattern: 'node_modules/reflect-metadata/Reflect.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/systemjs/dist/system.src.js', included: true, watched: false},
|
||||||
|
{pattern: 'node_modules/zone.js/dist/zone.js', included: true, watched: true},
|
||||||
|
{pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false},
|
||||||
|
{pattern: 'node_modules/rxjs/**/*.map', included: false, watched: false},
|
||||||
|
{pattern: 'node_modules/@angular/**/*.js', included: false, watched: false},
|
||||||
|
{pattern: 'node_modules/@angular/**/*.map', included: false, watched: false},
|
||||||
|
{pattern: 'node_modules/ng2-alfresco-core/dist/**/*.js', included: false, served: true, watched: false},
|
||||||
|
{pattern: 'node_modules/ng2-alfresco-datatable/dist/**/*.js', included: false, served: true, watched: false},
|
||||||
|
{pattern: 'node_modules/ng2-alfresco-datatable/dist/**/*.html', included: false, served: true, watched: false},
|
||||||
|
{pattern: 'node_modules/ng2-alfresco-datatable/dist/**/*.css', included: false, served: true, watched: false},
|
||||||
|
{pattern: 'node_modules/ng2-translate/**/*.js', included: false, served: true, watched: false},
|
||||||
|
{pattern: 'node_modules/alfresco-js-api/dist/alfresco-js-api.js', included: true, watched: false},
|
||||||
|
|
||||||
|
{pattern: 'node_modules/material-design-lite/material.min.js', included: true, watched: false},
|
||||||
|
{pattern: 'karma-test-shim.js', included: true, watched: true},
|
||||||
|
|
||||||
|
// paths loaded via module imports
|
||||||
|
{pattern: 'dist/**/*.js', included: false, watched: true},
|
||||||
|
{pattern: 'dist/**/*.html', included: true, served: true, watched: true},
|
||||||
|
{pattern: 'dist/**/*.css', included: true, served: true, watched: true},
|
||||||
|
|
||||||
|
// paths to support debugging with source maps in dev tools
|
||||||
|
{pattern: 'src/**/*.ts', included: false, watched: false},
|
||||||
|
{pattern: 'dist/**/*.js.map', included: false, watched: false}
|
||||||
|
],
|
||||||
|
|
||||||
|
// proxied base paths
|
||||||
|
proxies: {
|
||||||
|
// required for component assets fetched by Angular's compiler
|
||||||
|
'/src/': '/base/src/'
|
||||||
|
},
|
||||||
|
|
||||||
|
// list of files to exclude
|
||||||
|
exclude: [
|
||||||
|
'node_modules/**/*spec.js'
|
||||||
|
],
|
||||||
|
|
||||||
|
port: 9876,
|
||||||
|
|
||||||
|
// level of logging
|
||||||
|
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||||
|
logLevel: config.LOG_INFO,
|
||||||
|
|
||||||
|
colors: true,
|
||||||
|
|
||||||
|
autoWatch: true,
|
||||||
|
|
||||||
|
browsers: ['Chrome'],
|
||||||
|
|
||||||
|
// Karma plugins loaded
|
||||||
|
plugins: [
|
||||||
|
'karma-jasmine',
|
||||||
|
'karma-coverage',
|
||||||
|
'karma-jasmine-ajax',
|
||||||
|
'karma-chrome-launcher',
|
||||||
|
'karma-mocha-reporter',
|
||||||
|
'karma-jasmine-html-reporter'
|
||||||
|
],
|
||||||
|
|
||||||
|
// Coverage reporter generates the coverage
|
||||||
|
reporters: ['mocha', 'coverage', 'kjhtml'],
|
||||||
|
|
||||||
|
// Source files that you wanna generate coverage for.
|
||||||
|
// Do not include tests or libraries (these files will be instrumented by Istanbul)
|
||||||
|
preprocessors: {
|
||||||
|
'dist/**/!(*spec).js': ['coverage']
|
||||||
|
},
|
||||||
|
|
||||||
|
coverageReporter: {
|
||||||
|
dir: 'coverage/',
|
||||||
|
subdir: 'report',
|
||||||
|
reporters: [
|
||||||
|
{type: 'text'},
|
||||||
|
{type: 'text-summary'},
|
||||||
|
{type: 'json', file: 'coverage-final.json'},
|
||||||
|
{type: 'html'}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
};
|
92
ng2-components/ng2-alfresco-tag/package.json
Normal file
92
ng2-components/ng2-alfresco-tag/package.json
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"name": "ng2-alfresco-tag",
|
||||||
|
"description": "Alfresco tag component",
|
||||||
|
"version": "0.3.0",
|
||||||
|
"author": "Alfresco Software, Ltd.",
|
||||||
|
"main": "./dist/index.js",
|
||||||
|
"typings": "./dist/index.d.ts",
|
||||||
|
"scripts": {
|
||||||
|
"postinstall": "typings install",
|
||||||
|
"clean": "rimraf dist node_modules typings",
|
||||||
|
"typings": "typings install",
|
||||||
|
"build": "npm run tslint && rimraf dist && tsc && npm run copy-dist && license-check",
|
||||||
|
"build:w": "npm run tslint && rimraf dist && npm run watch-task",
|
||||||
|
"watch-task": "concurrently \"npm run tsc:w\" \"npm run copy-dist:w\" \"license-check\"",
|
||||||
|
"tslint": "tslint -c tslint.json *.ts && tslint -c tslint.json 'src/{,**/}**.ts'",
|
||||||
|
"copy-dist": "cpx \"./src/**/*.{html,css,json,png,jpg,gif,svg}\" ./dist/src",
|
||||||
|
"copy-dist:w": "cpx \"./src/**/*.{html,css,json,png,jpg,gif,svg}\" ./dist/src -w",
|
||||||
|
"tsc": "tsc",
|
||||||
|
"tsc:w": "tsc -w",
|
||||||
|
"pretest": "npm run build",
|
||||||
|
"test": "karma start karma.conf.js --reporters mocha,coverage --single-run",
|
||||||
|
"test-browser": "npm run build && concurrently \"karma start karma.conf.js --reporters kjhtml\" \"npm run watch-task\"",
|
||||||
|
"posttest": "remap-istanbul -i coverage/report/coverage-final.json -o coverage/report -t html && remap-istanbul -i coverage/report/coverage-final.json -o coverage/report/coverage-final.json",
|
||||||
|
"coverage": "npm run test && wsrv -o -p 9875 ./coverage/report",
|
||||||
|
"prepublish": "npm run build",
|
||||||
|
"travis": "echo 'placeholder'"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Alfresco/alfresco-ng2-components.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/Alfresco/alfresco-ng2-components/issues"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/common": "2.0.0-rc.3",
|
||||||
|
"@angular/compiler": "2.0.0-rc.3",
|
||||||
|
"@angular/core": "2.0.0-rc.3",
|
||||||
|
"@angular/http": "2.0.0-rc.3",
|
||||||
|
"@angular/platform-browser": "2.0.0-rc.3",
|
||||||
|
"@angular/platform-browser-dynamic": "2.0.0-rc.3",
|
||||||
|
"@angular/router": "3.0.0-alpha.7",
|
||||||
|
"@angular/router-deprecated": "2.0.0-rc.2",
|
||||||
|
"@angular/upgrade": "2.0.0-rc.3",
|
||||||
|
"systemjs": "0.19.27",
|
||||||
|
"core-js": "^2.4.0",
|
||||||
|
"alfresco-js-api": "^0.3.0",
|
||||||
|
|
||||||
|
"ng2-translate": "2.2.2",
|
||||||
|
"ng2-alfresco-core": "^0.3.0",
|
||||||
|
"reflect-metadata": "^0.1.3",
|
||||||
|
"rxjs": "5.0.0-beta.6",
|
||||||
|
"zone.js": "^0.6.12"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"concurrently": "^2.1.0",
|
||||||
|
"coveralls": "^2.11.9",
|
||||||
|
"cpx": "^1.3.1",
|
||||||
|
"jasmine-ajax": "^3.2.0",
|
||||||
|
"jasmine-core": "2.4.1",
|
||||||
|
"karma": "~0.13.22",
|
||||||
|
"karma-chrome-launcher": "~1.0.1",
|
||||||
|
"karma-coverage": "^1.0.0",
|
||||||
|
"karma-jasmine": "~1.0.2",
|
||||||
|
"karma-jasmine-ajax": "^0.1.13",
|
||||||
|
"karma-jasmine-html-reporter": "^0.2.0",
|
||||||
|
"karma-mocha-reporter": "^2.0.3",
|
||||||
|
"license-check": "^1.0.4",
|
||||||
|
"material-design-lite": "^1.1.3",
|
||||||
|
"remap-istanbul": "^0.6.3",
|
||||||
|
"rimraf": "2.5.2",
|
||||||
|
"traceur": "^0.0.91",
|
||||||
|
"tslint": "^3.8.1",
|
||||||
|
"typescript": "^1.8.10",
|
||||||
|
"typings": "^1.0.4",
|
||||||
|
"wsrv": "0.1.3"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"tag",
|
||||||
|
"alfresco-component"
|
||||||
|
],
|
||||||
|
"license-check-config": {
|
||||||
|
"src": [
|
||||||
|
"./dist/**/*.js"
|
||||||
|
],
|
||||||
|
"path": "assets/license_header.txt",
|
||||||
|
"blocking": false,
|
||||||
|
"logInfo": false,
|
||||||
|
"logError": true
|
||||||
|
},
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
.tag-container {
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-element {
|
||||||
|
padding: 0px 0px 0px 9px!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-input {
|
||||||
|
float: left;
|
||||||
|
margin-left: 11px!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-container-input{
|
||||||
|
padding-top: 11px;
|
||||||
|
width: 190px;
|
||||||
|
float: left;
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-button{
|
||||||
|
float:left
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
<!--isContextMenu-->
|
||||||
|
<div *ngIf="isContextMenu">
|
||||||
|
<li class="mdl-menu__item" *ngFor="let currentEntry of tagsEntries; let idx = index">
|
||||||
|
<span id="tag_name_{{idx}}" class="mdl-list__item-primary-content">
|
||||||
|
{{currentEntry.entry.tag}}
|
||||||
|
</span>
|
||||||
|
<div id="tag_delete_{{idx}}" class="mdl-list__item-secondary-action" (click)="removeTag(currentEntry.entry.id)">
|
||||||
|
<i class="material-icons">delete</i>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="mdl-textfield mdl-js-textfield tag-container-input">
|
||||||
|
<input class="mdl-textfield__input tag-input" type="tag" id="new-tag-text" [(ngModel)]="newTagName"/>
|
||||||
|
</div>
|
||||||
|
<button id="add-tag" class="mdl-button mdl-js-button mdl-button--raised button" (click)="addTag()">
|
||||||
|
Add tag
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--not ContextMenu-->
|
||||||
|
<ul *ngIf="!isContextMenu" class="tag-list-control mdl-list">
|
||||||
|
<li class="mdl-list__item tag-element" *ngFor="let currentEntry of tagsEntries; let idx = index">
|
||||||
|
<span id="tag_name_{{idx}}" class="mdl-list__item-primary-content">{{currentEntry.entry.tag}}</span>
|
||||||
|
<div id="tag_delete_{{idx}}" class="mdl-list__item-secondary-action" (click)="removeTag(currentEntry.entry.id)">
|
||||||
|
<i class="material-icons">delete</i>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="mdl-textfield mdl-js-textfield tag-container-input">
|
||||||
|
<input class="mdl-textfield__input tag-input" type="tag" id="new-tag-text" [(ngModel)]="newTagName"/>
|
||||||
|
</div>
|
||||||
|
<button id="add-tag" class="mdl-button mdl-js-button mdl-button--raised button" (click)="addTag()">
|
||||||
|
Add tag
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
@ -0,0 +1,143 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
import { it, describe, inject, beforeEachProviders, beforeEach, afterEach } from '@angular/core/testing';
|
||||||
|
import { TestComponentBuilder } from '@angular/compiler/testing';
|
||||||
|
import { AlfrescoAuthenticationService, AlfrescoSettingsService, AlfrescoApiService } from 'ng2-alfresco-core';
|
||||||
|
import { TagService } from '../services/tag.service';
|
||||||
|
import { TagActionsComponent } from './tag-actions.component';
|
||||||
|
|
||||||
|
declare let jasmine: any;
|
||||||
|
|
||||||
|
describe('Tag actions list', () => {
|
||||||
|
|
||||||
|
let tagActionsListFixture, element, component;
|
||||||
|
|
||||||
|
let dataTag = {
|
||||||
|
'list': {
|
||||||
|
'pagination': {
|
||||||
|
'count': 3,
|
||||||
|
'hasMoreItems': false,
|
||||||
|
'totalItems': 3,
|
||||||
|
'skipCount': 0,
|
||||||
|
'maxItems': 100
|
||||||
|
},
|
||||||
|
'entries': [{
|
||||||
|
'entry': {'tag': 'test1', 'id': '0ee933fa-57fc-4587-8a77-b787e814f1d2'}
|
||||||
|
}, {'entry': {'tag': 'test2', 'id': 'fcb92659-1f10-41b4-9b17-851b72a3b597'}}, {
|
||||||
|
'entry': {'tag': 'test3', 'id': 'fb4213c0-729d-466c-9a6c-ee2e937273bf'}
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
beforeEachProviders(() => {
|
||||||
|
return [
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService,
|
||||||
|
AlfrescoApiService,
|
||||||
|
TagService
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
|
||||||
|
return tcb
|
||||||
|
.createAsync(TagActionsComponent)
|
||||||
|
.then(fixture => {
|
||||||
|
tagActionsListFixture = fixture;
|
||||||
|
element = tagActionsListFixture.nativeElement;
|
||||||
|
component = tagActionsListFixture.componentInstance;
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('Rendering tests', () => {
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
jasmine.Ajax.install();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
jasmine.Ajax.uninstall();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Tag list relative a single node should be rendered', (done) => {
|
||||||
|
component.nodeId = 'fake-node-id';
|
||||||
|
|
||||||
|
component.resultsEmitter.subscribe(() => {
|
||||||
|
tagActionsListFixture.detectChanges();
|
||||||
|
|
||||||
|
expect(element.querySelector('#tag_name_0').innerHTML).toBe('test1');
|
||||||
|
expect(element.querySelector('#tag_name_1').innerHTML).toBe('test2');
|
||||||
|
expect(element.querySelector('#tag_name_2').innerHTML).toBe('test3');
|
||||||
|
|
||||||
|
expect(element.querySelector('#tag_delete_0')).not.toBe(null);
|
||||||
|
expect(element.querySelector('#tag_delete_1')).not.toBe(null);
|
||||||
|
expect(element.querySelector('#tag_delete_2')).not.toBe(null);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
component.ngOnChanges();
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200,
|
||||||
|
contentType: 'json',
|
||||||
|
responseText: dataTag
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Tag list click on delete button should delete the tag', (done) => {
|
||||||
|
component.nodeId = 'fake-node-id';
|
||||||
|
|
||||||
|
component.resultsEmitter.subscribe(() => {
|
||||||
|
tagActionsListFixture.detectChanges();
|
||||||
|
element.querySelector('#tag_delete_0').click();
|
||||||
|
tagActionsListFixture.detectChanges();
|
||||||
|
|
||||||
|
expect(jasmine.Ajax.requests.at(1).url).
|
||||||
|
toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/fake-node-id/tags/0ee933fa-57fc-4587-8a77-b787e814f1d2');
|
||||||
|
expect(jasmine.Ajax.requests.at(1).method).toBe('DELETE');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
component.ngOnChanges();
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200,
|
||||||
|
contentType: 'json',
|
||||||
|
responseText: dataTag
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Add tag', (done) => {
|
||||||
|
component.nodeId = 'fake-node-id';
|
||||||
|
component.newTagName = 'fake-tag-name';
|
||||||
|
|
||||||
|
tagActionsListFixture.detectChanges();
|
||||||
|
|
||||||
|
component.addEmitter.subscribe(() => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
element.querySelector('#add-tag').click();
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,85 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
||||||
|
import { AlfrescoAuthenticationService } from 'ng2-alfresco-core';
|
||||||
|
import { TagService } from '../services/tag.service';
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* This component, provide a list of the tags relative a node with actions button to add or remove new tag
|
||||||
|
*
|
||||||
|
* @returns {TagComponent} .
|
||||||
|
*/
|
||||||
|
declare let __moduleName: string;
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
moduleId: __moduleName,
|
||||||
|
selector: 'alfresco-tag-node-actions-list',
|
||||||
|
templateUrl: './tag-actions.component.html',
|
||||||
|
styleUrls: ['./tag-actions.component.css']
|
||||||
|
})
|
||||||
|
export class TagActionsComponent {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
nodeId: string;
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
isContextMenu: boolean = false;
|
||||||
|
|
||||||
|
@Output()
|
||||||
|
addEmitter: EventEmitter<any> = new EventEmitter();
|
||||||
|
|
||||||
|
@Output()
|
||||||
|
resultsEmitter = new EventEmitter();
|
||||||
|
|
||||||
|
newTagName: string;
|
||||||
|
|
||||||
|
tagsEntries: any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
* @param authService
|
||||||
|
*/
|
||||||
|
constructor(public authService: AlfrescoAuthenticationService, private tagService: TagService) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnChanges(changes) {
|
||||||
|
return this.refreshTag();
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshTag() {
|
||||||
|
this.tagService.getTagsByNodeId(this.nodeId).subscribe((data) => {
|
||||||
|
this.tagsEntries = data.list.entries;
|
||||||
|
this.resultsEmitter.emit(this.tagsEntries);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
addTag() {
|
||||||
|
this.tagService.addTag(this.nodeId, this.newTagName).subscribe((res) => {
|
||||||
|
this.refreshTag();
|
||||||
|
this.addEmitter.emit(this.nodeId);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
removeTag(tag: string) {
|
||||||
|
this.tagService.removeTag(this.nodeId, tag).subscribe(() => {
|
||||||
|
this.refreshTag();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
<div class="tag-container">
|
||||||
|
<div id="table-cards-container">
|
||||||
|
<ul class="tag-list-control mdl-list">
|
||||||
|
<li class="mdl-list__item tag-element" *ngFor="let currentEntry of tagsEntries; let idx = index">
|
||||||
|
<span id="tag_name_{{idx}}" class="mdl-list__item-primary-content">{{currentEntry.entry.tag}}</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -0,0 +1,98 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
import { it, describe, inject, beforeEachProviders, beforeEach, afterEach } from '@angular/core/testing';
|
||||||
|
import { TestComponentBuilder } from '@angular/compiler/testing';
|
||||||
|
import { AlfrescoAuthenticationService, AlfrescoSettingsService, AlfrescoApiService } from 'ng2-alfresco-core';
|
||||||
|
import { TagService } from '../services/tag.service';
|
||||||
|
import { TagList } from './tag-list.component';
|
||||||
|
|
||||||
|
declare let jasmine: any;
|
||||||
|
|
||||||
|
describe('Tag list All ECM', () => {
|
||||||
|
|
||||||
|
let tagListFixture, element, component;
|
||||||
|
|
||||||
|
let dataTag = {
|
||||||
|
'list': {
|
||||||
|
'pagination': {
|
||||||
|
'count': 3,
|
||||||
|
'hasMoreItems': false,
|
||||||
|
'totalItems': 3,
|
||||||
|
'skipCount': 0,
|
||||||
|
'maxItems': 100
|
||||||
|
},
|
||||||
|
'entries': [{
|
||||||
|
'entry': {'tag': 'test1', 'id': '0ee933fa-57fc-4587-8a77-b787e814f1d2'}
|
||||||
|
}, {'entry': {'tag': 'test2', 'id': 'fcb92659-1f10-41b4-9b17-851b72a3b597'}}, {
|
||||||
|
'entry': {'tag': 'test3', 'id': 'fb4213c0-729d-466c-9a6c-ee2e937273bf'}}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
beforeEachProviders(() => {
|
||||||
|
return [
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService,
|
||||||
|
AlfrescoApiService,
|
||||||
|
TagService
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
|
||||||
|
return tcb
|
||||||
|
.createAsync(TagList)
|
||||||
|
.then(fixture => {
|
||||||
|
tagListFixture = fixture;
|
||||||
|
element = tagListFixture.nativeElement;
|
||||||
|
component = tagListFixture.componentInstance;
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('Rendering tests', () => {
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
jasmine.Ajax.install();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
jasmine.Ajax.uninstall();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Tag list relative a single node should be rendered', (done) => {
|
||||||
|
component.nodeId = 'fake-node-id';
|
||||||
|
|
||||||
|
component.resultsEmitter.subscribe(() => {
|
||||||
|
tagListFixture.detectChanges();
|
||||||
|
|
||||||
|
expect(element.querySelector('#tag_name_0').innerHTML).toBe('test1');
|
||||||
|
expect(element.querySelector('#tag_name_1').innerHTML).toBe('test2');
|
||||||
|
expect(element.querySelector('#tag_name_2').innerHTML).toBe('test3');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
component.ngOnInit();
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200,
|
||||||
|
contentType: 'json',
|
||||||
|
responseText: dataTag
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,60 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Component, Output, EventEmitter } from '@angular/core';
|
||||||
|
import { AlfrescoAuthenticationService } from 'ng2-alfresco-core';
|
||||||
|
import { TagService } from '../services/tag.service';
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* This component provide a list of all the tag inside the ECM
|
||||||
|
*
|
||||||
|
* @returns {TagList} .
|
||||||
|
*/
|
||||||
|
declare let __moduleName: string;
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
moduleId: __moduleName,
|
||||||
|
selector: 'alfresco-tag-list',
|
||||||
|
templateUrl: './tag-list.component.html'
|
||||||
|
})
|
||||||
|
export class TagList {
|
||||||
|
|
||||||
|
tagsEntries: any;
|
||||||
|
|
||||||
|
@Output()
|
||||||
|
resultsEmitter = new EventEmitter();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
* @param authService
|
||||||
|
*/
|
||||||
|
constructor(public authService: AlfrescoAuthenticationService, private tagService: TagService) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit(changes) {
|
||||||
|
return this.refreshTagEcm();
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshTagEcm() {
|
||||||
|
this.tagService.getAllTheTags().subscribe((data) => {
|
||||||
|
this.tagsEntries = data.list.entries;
|
||||||
|
this.resultsEmitter.emit(this.tagsEntries);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,65 @@
|
|||||||
|
.tags {
|
||||||
|
padding-left: 7px;
|
||||||
|
padding-right: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags li {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-name {
|
||||||
|
cursor: default;
|
||||||
|
float:left;
|
||||||
|
max-height: 22px;
|
||||||
|
max-width: 100px;
|
||||||
|
background-color: #8EC44B;
|
||||||
|
-webkit-border-radius: 4px 0px 0px 4px;
|
||||||
|
-moz-border-radius: 4px 0px 0px 4px;
|
||||||
|
border-radius: 4px 0px 0px 4px;
|
||||||
|
position: relative;
|
||||||
|
color: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: none;
|
||||||
|
font-family: arial, helvetica, sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
zoom: 1;
|
||||||
|
line-height: 22px;
|
||||||
|
padding: 0 0px 0 10px;
|
||||||
|
margin: 4px 0px 4px 8px;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-delete {
|
||||||
|
cursor: pointer;
|
||||||
|
float:left;
|
||||||
|
max-height: 22px;
|
||||||
|
max-width: 30px;
|
||||||
|
background-color: #8EC44B;
|
||||||
|
-webkit-border-radius: 0px 4px 4px 0px;
|
||||||
|
-moz-border-radius: 0px 4px 4px 0px;
|
||||||
|
border-radius: 0px 4px 4px 0px;
|
||||||
|
position: relative;
|
||||||
|
color: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: none;
|
||||||
|
font-family: arial, helvetica, sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
zoom: 1;
|
||||||
|
line-height: 22px;
|
||||||
|
padding: 0 4px 0 6px;
|
||||||
|
margin: 4px 4px 4px 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.tag-delete:hover{
|
||||||
|
color: lightgray;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.delete-icon{
|
||||||
|
font-size: 22px!important;
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
<div class="tag-list-container">
|
||||||
|
<ul class="tags">
|
||||||
|
<li *ngFor="let currentEntry of tagsEntries; let idx = index">
|
||||||
|
<div id="tag_name_{{idx}}" class="tag-name">{{currentEntry.entry.tag}}</div>
|
||||||
|
<div id="tag_delete_{{idx}}" class="tag-delete" (click)="removeTag(currentEntry.entry.id)" ><i class="material-icons delete-icon">close</i></div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
@ -0,0 +1,124 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
import { it, describe, inject, beforeEachProviders, beforeEach, afterEach } from '@angular/core/testing';
|
||||||
|
import { TestComponentBuilder } from '@angular/compiler/testing';
|
||||||
|
import { AlfrescoAuthenticationService, AlfrescoSettingsService, AlfrescoApiService } from 'ng2-alfresco-core';
|
||||||
|
import { TagService } from '../services/tag.service';
|
||||||
|
import { TagNodeList } from './tag-node-list.component';
|
||||||
|
|
||||||
|
declare let jasmine: any;
|
||||||
|
|
||||||
|
describe('Tag relative node list', () => {
|
||||||
|
|
||||||
|
let tagNodeListFixture, element, component;
|
||||||
|
|
||||||
|
let dataTag = {
|
||||||
|
'list': {
|
||||||
|
'pagination': {
|
||||||
|
'count': 3,
|
||||||
|
'hasMoreItems': false,
|
||||||
|
'totalItems': 3,
|
||||||
|
'skipCount': 0,
|
||||||
|
'maxItems': 100
|
||||||
|
},
|
||||||
|
'entries': [{
|
||||||
|
'entry': {'tag': 'test1', 'id': '0ee933fa-57fc-4587-8a77-b787e814f1d2'}
|
||||||
|
}, {'entry': {'tag': 'test2', 'id': 'fcb92659-1f10-41b4-9b17-851b72a3b597'}}, {
|
||||||
|
'entry': {'tag': 'test3', 'id': 'fb4213c0-729d-466c-9a6c-ee2e937273bf'}}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
beforeEachProviders(() => {
|
||||||
|
return [
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService,
|
||||||
|
AlfrescoApiService,
|
||||||
|
TagService
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
|
||||||
|
return tcb
|
||||||
|
.createAsync(TagNodeList)
|
||||||
|
.then(fixture => {
|
||||||
|
tagNodeListFixture = fixture;
|
||||||
|
element = tagNodeListFixture.nativeElement;
|
||||||
|
component = tagNodeListFixture.componentInstance;
|
||||||
|
});
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('Rendering tests', () => {
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
jasmine.Ajax.install();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
jasmine.Ajax.uninstall();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Tag list relative a single node should be rendered', (done) => {
|
||||||
|
component.nodeId = 'fake-node-id';
|
||||||
|
|
||||||
|
component.resultsEmitter.subscribe(() => {
|
||||||
|
tagNodeListFixture.detectChanges();
|
||||||
|
|
||||||
|
expect(element.querySelector('#tag_name_0').innerHTML).toBe('test1');
|
||||||
|
expect(element.querySelector('#tag_name_1').innerHTML).toBe('test2');
|
||||||
|
expect(element.querySelector('#tag_name_2').innerHTML).toBe('test3');
|
||||||
|
|
||||||
|
expect(element.querySelector('#tag_delete_0')).not.toBe(null);
|
||||||
|
expect(element.querySelector('#tag_delete_1')).not.toBe(null);
|
||||||
|
expect(element.querySelector('#tag_delete_2')).not.toBe(null);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
component.ngOnChanges();
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200,
|
||||||
|
contentType: 'json',
|
||||||
|
responseText: dataTag
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Tag list click on delete button should delete the tag', (done) => {
|
||||||
|
component.nodeId = 'fake-node-id';
|
||||||
|
|
||||||
|
component.resultsEmitter.subscribe(() => {
|
||||||
|
tagNodeListFixture.detectChanges();
|
||||||
|
element.querySelector('#tag_delete_0').click();
|
||||||
|
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().url).
|
||||||
|
toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/fake-node-id/tags/0ee933fa-57fc-4587-8a77-b787e814f1d2');
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().method).toBe('DELETE');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
component.ngOnChanges();
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200,
|
||||||
|
contentType: 'json',
|
||||||
|
responseText: dataTag
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,69 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
||||||
|
import { AlfrescoAuthenticationService } from 'ng2-alfresco-core';
|
||||||
|
import { TagService } from '../services/tag.service';
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* This component, ShowNodeTag a list of the tag on relative a node
|
||||||
|
*
|
||||||
|
* @returns {TagNodeList} .
|
||||||
|
*/
|
||||||
|
declare let __moduleName: string;
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
moduleId: __moduleName,
|
||||||
|
selector: 'alfresco-tag-node-list',
|
||||||
|
templateUrl: './tag-node-list.component.html',
|
||||||
|
styleUrls: ['./tag-node-list.component.css']
|
||||||
|
})
|
||||||
|
export class TagNodeList {
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
nodeId: string;
|
||||||
|
|
||||||
|
tagsEntries: any;
|
||||||
|
|
||||||
|
@Output()
|
||||||
|
resultsEmitter = new EventEmitter();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
* @param authService
|
||||||
|
*/
|
||||||
|
constructor(public authService: AlfrescoAuthenticationService, private tagService: TagService) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnChanges(changes) {
|
||||||
|
return this.refreshTag();
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshTag() {
|
||||||
|
this.tagService.getTagsByNodeId(this.nodeId).subscribe((data) => {
|
||||||
|
this.tagsEntries = data.list.entries;
|
||||||
|
this.resultsEmitter.emit(this.tagsEntries);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
removeTag(tag: string) {
|
||||||
|
this.tagService.removeTag(this.nodeId, tag).subscribe(() => {
|
||||||
|
this.refreshTag();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
115
ng2-components/ng2-alfresco-tag/src/services/tag.service.spec.ts
Normal file
115
ng2-components/ng2-alfresco-tag/src/services/tag.service.spec.ts
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { describe, expect, it, inject, beforeEachProviders, beforeEach, afterEach } from '@angular/core/testing';
|
||||||
|
import { AlfrescoAuthenticationService, AlfrescoSettingsService, AlfrescoApiService } from 'ng2-alfresco-core';
|
||||||
|
import { TagService } from './tag.service';
|
||||||
|
|
||||||
|
declare let jasmine: any;
|
||||||
|
|
||||||
|
describe('Tag service', () => {
|
||||||
|
|
||||||
|
let service;
|
||||||
|
|
||||||
|
beforeEachProviders(() => {
|
||||||
|
|
||||||
|
return [
|
||||||
|
AlfrescoSettingsService,
|
||||||
|
AlfrescoAuthenticationService,
|
||||||
|
AlfrescoApiService,
|
||||||
|
TagService
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(inject([TagService], (tagService: TagService) => {
|
||||||
|
service = tagService;
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('Content tests', () => {
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
jasmine.Ajax.install();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
jasmine.Ajax.uninstall();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('removeTag should perform a call against the server', (done) => {
|
||||||
|
service.removeTag('fake-node-id', 'fake-tag').subscribe(() => {
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().method).toBe('DELETE');
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().url)
|
||||||
|
.toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/fake-node-id/tags/fake-tag');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('addTag should perform a call against the server', (done) => {
|
||||||
|
service.addTag('fake-node-id', 'fake-tag').subscribe(() => {
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().method).toBe('POST');
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().url)
|
||||||
|
.toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/fake-node-id/tags');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getAllTheTags should perform a call against the server', (done) => {
|
||||||
|
service.getAllTheTags('fake-node-id', 'fake-tag').subscribe(() => {
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().method).toBe('GET');
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().url)
|
||||||
|
.toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/tags');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getTagsByNodeId should perform a call against the server', (done) => {
|
||||||
|
service.getTagsByNodeId('fake-node-id', 'fake-tag').subscribe(() => {
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().method).toBe('GET');
|
||||||
|
expect(jasmine.Ajax.requests.mostRecent().url)
|
||||||
|
.toBe('http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/fake-node-id/tags');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 200
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('getTagsByNodeId catch errors call', (done) => {
|
||||||
|
service.getTagsByNodeId('fake-node-id', 'fake-tag').subscribe(() => {
|
||||||
|
}, () => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
jasmine.Ajax.requests.mostRecent().respondWith({
|
||||||
|
status: 403
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
65
ng2-components/ng2-alfresco-tag/src/services/tag.service.ts
Normal file
65
ng2-components/ng2-alfresco-tag/src/services/tag.service.ts
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { AlfrescoAuthenticationService } from 'ng2-alfresco-core';
|
||||||
|
import { Observable } from 'rxjs/Rx';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {TagService} .
|
||||||
|
*/
|
||||||
|
declare let __moduleName: string;
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class TagService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
* @param authService
|
||||||
|
*/
|
||||||
|
constructor(public authService: AlfrescoAuthenticationService) {
|
||||||
|
}
|
||||||
|
|
||||||
|
getTagsByNodeId(nodeId: string): any {
|
||||||
|
return Observable.fromPromise(this.authService.getAlfrescoApi().core.tagsApi.getNodeTags(nodeId))
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
getAllTheTags() {
|
||||||
|
return Observable.fromPromise(this.authService.getAlfrescoApi().core.tagsApi.getTags())
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
addTag(nodeId: string, tagName: string): any {
|
||||||
|
let alfrescoApi: any = this.authService.getAlfrescoApi();
|
||||||
|
let tagBody = new alfrescoApi.core.TagBody();
|
||||||
|
tagBody.tag = tagName;
|
||||||
|
|
||||||
|
return Observable.fromPromise(this.authService.getAlfrescoApi().core.tagsApi.addTag(nodeId, tagBody))
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
removeTag(nodeId: string, tag: string): any {
|
||||||
|
return Observable.fromPromise(this.authService.getAlfrescoApi().core.tagsApi.removeTag(nodeId, tag))
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private handleError(error: any) {
|
||||||
|
console.error(error);
|
||||||
|
return Observable.throw(error || 'Server error');
|
||||||
|
}
|
||||||
|
}
|
27
ng2-components/ng2-alfresco-tag/tsconfig.json
Normal file
27
ng2-components/ng2-alfresco-tag/tsconfig.json
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "es5",
|
||||||
|
"module": "system",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"emitDecoratorMetadata": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"removeComments": true,
|
||||||
|
"declaration": true,
|
||||||
|
"noLib": false,
|
||||||
|
"allowUnreachableCode": false,
|
||||||
|
"allowUnusedLabels": false,
|
||||||
|
"noImplicitAny": false,
|
||||||
|
"noImplicitReturns": false,
|
||||||
|
"noImplicitUseStrict": false,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"outDir": "dist"
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"demo",
|
||||||
|
"node_modules",
|
||||||
|
"typings/main",
|
||||||
|
"typings/main.d.ts",
|
||||||
|
"dist"
|
||||||
|
]
|
||||||
|
}
|
121
ng2-components/ng2-alfresco-tag/tslint.json
Normal file
121
ng2-components/ng2-alfresco-tag/tslint.json
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
{
|
||||||
|
"rules": {
|
||||||
|
"align": [
|
||||||
|
true,
|
||||||
|
"parameters",
|
||||||
|
"statements"
|
||||||
|
],
|
||||||
|
"ban": false,
|
||||||
|
"class-name": true,
|
||||||
|
"comment-format": [
|
||||||
|
true,
|
||||||
|
"check-space"
|
||||||
|
],
|
||||||
|
"curly": true,
|
||||||
|
"eofline": true,
|
||||||
|
"forin": true,
|
||||||
|
"indent": [
|
||||||
|
true,
|
||||||
|
"spaces"
|
||||||
|
],
|
||||||
|
"interface-name": false,
|
||||||
|
"jsdoc-format": true,
|
||||||
|
"label-position": true,
|
||||||
|
"label-undefined": true,
|
||||||
|
"max-line-length": [
|
||||||
|
true,
|
||||||
|
180
|
||||||
|
],
|
||||||
|
"member-ordering": [
|
||||||
|
true,
|
||||||
|
"static-before-instance",
|
||||||
|
"variables-before-functions"
|
||||||
|
],
|
||||||
|
"no-any": false,
|
||||||
|
"no-arg": true,
|
||||||
|
"no-bitwise": false,
|
||||||
|
"no-conditional-assignment": true,
|
||||||
|
"no-consecutive-blank-lines": false,
|
||||||
|
"no-console": [
|
||||||
|
true,
|
||||||
|
"debug",
|
||||||
|
"info",
|
||||||
|
"time",
|
||||||
|
"timeEnd",
|
||||||
|
"trace"
|
||||||
|
],
|
||||||
|
"no-construct": true,
|
||||||
|
"no-constructor-vars": false,
|
||||||
|
"no-debugger": true,
|
||||||
|
"no-duplicate-key": true,
|
||||||
|
"no-duplicate-variable": true,
|
||||||
|
"no-empty": false,
|
||||||
|
"no-eval": true,
|
||||||
|
"no-inferrable-types": false,
|
||||||
|
"no-internal-module": true,
|
||||||
|
"no-require-imports": true,
|
||||||
|
"no-shadowed-variable": true,
|
||||||
|
"no-switch-case-fall-through": true,
|
||||||
|
"no-trailing-whitespace": true,
|
||||||
|
"no-unreachable": true,
|
||||||
|
"no-unused-expression": true,
|
||||||
|
"no-unused-variable": true,
|
||||||
|
"no-use-before-declare": true,
|
||||||
|
"no-var-keyword": true,
|
||||||
|
"no-var-requires": true,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"one-line": [
|
||||||
|
true,
|
||||||
|
"check-open-brace",
|
||||||
|
"check-catch",
|
||||||
|
"check-else",
|
||||||
|
"check-whitespace"
|
||||||
|
],
|
||||||
|
"quotemark": [
|
||||||
|
true,
|
||||||
|
"single",
|
||||||
|
"avoid-escape"
|
||||||
|
],
|
||||||
|
"radix": true,
|
||||||
|
"semicolon": true,
|
||||||
|
"switch-default": true,
|
||||||
|
"trailing-comma": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"multiline": "never",
|
||||||
|
"singleline": "never"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"triple-equals": [
|
||||||
|
true,
|
||||||
|
"allow-null-check"
|
||||||
|
],
|
||||||
|
"typedef": false,
|
||||||
|
"typedef-whitespace": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
"call-signature": "nospace",
|
||||||
|
"index-signature": "nospace",
|
||||||
|
"parameter": "nospace",
|
||||||
|
"property-declaration": "nospace",
|
||||||
|
"variable-declaration": "nospace"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"use-strict": false,
|
||||||
|
"variable-name": [
|
||||||
|
true,
|
||||||
|
"check-format",
|
||||||
|
"allow-leading-underscore",
|
||||||
|
"ban-keywords"
|
||||||
|
],
|
||||||
|
"whitespace": [
|
||||||
|
true,
|
||||||
|
"check-branch",
|
||||||
|
"check-operator",
|
||||||
|
"check-separator",
|
||||||
|
"check-type",
|
||||||
|
"check-module",
|
||||||
|
"check-decl"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
7
ng2-components/ng2-alfresco-tag/typings.json
Normal file
7
ng2-components/ng2-alfresco-tag/typings.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"globalDependencies": {
|
||||||
|
"core-js": "registry:dt/core-js#0.0.0+20160317120654",
|
||||||
|
"jasmine": "registry:dt/jasmine#2.2.0+20160505161446",
|
||||||
|
"node": "registry:dt/node#4.0.0+20160509154515"
|
||||||
|
}
|
||||||
|
}
|
@ -18,7 +18,6 @@
|
|||||||
import { describe, expect, it, inject, beforeEachProviders, beforeEach, afterEach, xit } from '@angular/core/testing';
|
import { describe, expect, it, inject, beforeEachProviders, beforeEach, afterEach, xit } from '@angular/core/testing';
|
||||||
import { TestComponentBuilder } from '@angular/compiler/testing';
|
import { TestComponentBuilder } from '@angular/compiler/testing';
|
||||||
import { WebscriptComponent } from '../src/webscript.component';
|
import { WebscriptComponent } from '../src/webscript.component';
|
||||||
|
|
||||||
import { AlfrescoAuthenticationService, AlfrescoSettingsService, AlfrescoApiService } from 'ng2-alfresco-core';
|
import { AlfrescoAuthenticationService, AlfrescoSettingsService, AlfrescoApiService } from 'ng2-alfresco-core';
|
||||||
|
|
||||||
declare let jasmine: any;
|
declare let jasmine: any;
|
||||||
@ -30,8 +29,8 @@ describe('Test ng2-alfresco-webscript', () => {
|
|||||||
beforeEachProviders(() => {
|
beforeEachProviders(() => {
|
||||||
return [
|
return [
|
||||||
AlfrescoSettingsService,
|
AlfrescoSettingsService,
|
||||||
AlfrescoApiService,
|
AlfrescoAuthenticationService,
|
||||||
AlfrescoAuthenticationService
|
AlfrescoApiService
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -85,8 +84,7 @@ describe('Test ng2-alfresco-webscript', () => {
|
|||||||
|
|
||||||
component.ngOnChanges().then(() => {
|
component.ngOnChanges().then(() => {
|
||||||
webscriptComponentFixture.detectChanges();
|
webscriptComponentFixture.detectChanges();
|
||||||
let request = jasmine.Ajax.requests.mostRecent();
|
expect(jasmine.Ajax.requests.mostRecent().url).toBe('http://localhost:8080/alfresco/service/sample/folder/Company%20Home');
|
||||||
expect(request.url).toBe('http://localhost:8080/alfresco/service/sample/folder/Company%20Home');
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -98,7 +96,6 @@ describe('Test ng2-alfresco-webscript', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('webscript TEXT response should be displayed', (done) => {
|
it('webscript TEXT response should be displayed', (done) => {
|
||||||
|
|
||||||
component.scriptPath = 'sample/folder/Company%20Home';
|
component.scriptPath = 'sample/folder/Company%20Home';
|
||||||
component.contentType = 'TEXT';
|
component.contentType = 'TEXT';
|
||||||
|
|
||||||
@ -117,7 +114,6 @@ describe('Test ng2-alfresco-webscript', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('webscript JSON response should be displayed', (done) => {
|
it('webscript JSON response should be displayed', (done) => {
|
||||||
|
|
||||||
component.scriptPath = 'sample/folder/Company%20Home';
|
component.scriptPath = 'sample/folder/Company%20Home';
|
||||||
component.contentType = 'JSON';
|
component.contentType = 'JSON';
|
||||||
|
|
||||||
@ -137,7 +133,6 @@ describe('Test ng2-alfresco-webscript', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
xit('webscript HTML response should be displayed', (done) => {
|
xit('webscript HTML response should be displayed', (done) => {
|
||||||
|
|
||||||
component.scriptPath = 'sample/folder/Company%20Home';
|
component.scriptPath = 'sample/folder/Company%20Home';
|
||||||
component.contentType = 'HTML';
|
component.contentType = 'HTML';
|
||||||
|
|
||||||
@ -156,7 +151,6 @@ describe('Test ng2-alfresco-webscript', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('webscript Datatable response should be displayed', (done) => {
|
it('webscript Datatable response should be displayed', (done) => {
|
||||||
|
|
||||||
component.scriptPath = 'sample/folder/Company%20Home';
|
component.scriptPath = 'sample/folder/Company%20Home';
|
||||||
component.contentType = 'DATATABLE';
|
component.contentType = 'DATATABLE';
|
||||||
|
|
||||||
@ -192,7 +186,6 @@ describe('Test ng2-alfresco-webscript', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('webscript Datatable response should be displayed also if no schema is provided', (done) => {
|
it('webscript Datatable response should be displayed also if no schema is provided', (done) => {
|
||||||
|
|
||||||
component.scriptPath = 'sample/folder/Company%20Home';
|
component.scriptPath = 'sample/folder/Company%20Home';
|
||||||
component.contentType = 'DATATABLE';
|
component.contentType = 'DATATABLE';
|
||||||
|
|
||||||
|
@ -31,3 +31,6 @@
|
|||||||
|
|
||||||
(cd ng2-alfresco-webscript; npm update;)
|
(cd ng2-alfresco-webscript; npm update;)
|
||||||
(cd ng2-alfresco-webscript/demo; npm update;)
|
(cd ng2-alfresco-webscript/demo; npm update;)
|
||||||
|
|
||||||
|
(cd ng2-alfresco-tag; npm update;)
|
||||||
|
(cd ng2-alfresco-tag/demo; npm update;)
|
||||||
|
@ -13,7 +13,8 @@ for PACKAGE in \
|
|||||||
ng2-alfresco-search \
|
ng2-alfresco-search \
|
||||||
ng2-alfresco-upload \
|
ng2-alfresco-upload \
|
||||||
ng2-alfresco-viewer \
|
ng2-alfresco-viewer \
|
||||||
ng2-alfresco-webscript
|
ng2-alfresco-webscript \
|
||||||
|
ng2-alfresco-tag
|
||||||
do
|
do
|
||||||
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
||||||
echo "====== build components : ${PACKAGE} ====="
|
echo "====== build components : ${PACKAGE} ====="
|
||||||
|
@ -17,7 +17,8 @@ for PACKAGE in \
|
|||||||
ng2-alfresco-search \
|
ng2-alfresco-search \
|
||||||
ng2-alfresco-upload \
|
ng2-alfresco-upload \
|
||||||
ng2-alfresco-viewer \
|
ng2-alfresco-viewer \
|
||||||
ng2-alfresco-webscript
|
ng2-alfresco-webscript \
|
||||||
|
ng2-alfresco-tag
|
||||||
do
|
do
|
||||||
echo "====== Check component: ${PACKAGE} ====="
|
echo "====== Check component: ${PACKAGE} ====="
|
||||||
cd "$DIR/../ng2-components/${PACKAGE}"
|
cd "$DIR/../ng2-components/${PACKAGE}"
|
||||||
|
@ -13,7 +13,8 @@ for PACKAGE in \
|
|||||||
ng2-alfresco-search \
|
ng2-alfresco-search \
|
||||||
ng2-alfresco-upload \
|
ng2-alfresco-upload \
|
||||||
ng2-alfresco-viewer \
|
ng2-alfresco-viewer \
|
||||||
ng2-alfresco-webscript
|
ng2-alfresco-webscript \
|
||||||
|
ng2-alfresco-tag
|
||||||
do
|
do
|
||||||
echo "====== clean component: ${PACKAGE} ====="
|
echo "====== clean component: ${PACKAGE} ====="
|
||||||
cd "$DIR/../ng2-components/${PACKAGE}"
|
cd "$DIR/../ng2-components/${PACKAGE}"
|
||||||
|
@ -73,6 +73,14 @@ npm link
|
|||||||
npm run typings
|
npm run typings
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
#LINK TAG
|
||||||
|
echo "====== linking component: ng2-alfresco-tag ====="
|
||||||
|
cd "$DIR/../ng2-components/ng2-alfresco-tag"
|
||||||
|
npm link ng2-alfresco-core
|
||||||
|
npm link
|
||||||
|
npm run typings
|
||||||
|
npm run build
|
||||||
|
|
||||||
#LINK ALL THE OTHERS COMPONENTS
|
#LINK ALL THE OTHERS COMPONENTS
|
||||||
for PACKAGE in \
|
for PACKAGE in \
|
||||||
ng2-alfresco-login \
|
ng2-alfresco-login \
|
||||||
@ -102,7 +110,8 @@ for PACKAGE in \
|
|||||||
ng2-alfresco-search \
|
ng2-alfresco-search \
|
||||||
ng2-alfresco-upload \
|
ng2-alfresco-upload \
|
||||||
ng2-alfresco-viewer \
|
ng2-alfresco-viewer \
|
||||||
ng2-alfresco-webscript
|
ng2-alfresco-webscript \
|
||||||
|
ng2-alfresco-tag
|
||||||
do
|
do
|
||||||
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
||||||
echo "====== demo shell linking: ${PACKAGE} ====="
|
echo "====== demo shell linking: ${PACKAGE} ====="
|
||||||
|
@ -15,7 +15,8 @@ for PACKAGE in \
|
|||||||
ng2-alfresco-search \
|
ng2-alfresco-search \
|
||||||
ng2-alfresco-upload \
|
ng2-alfresco-upload \
|
||||||
ng2-alfresco-viewer \
|
ng2-alfresco-viewer \
|
||||||
ng2-alfresco-webscript
|
ng2-alfresco-webscript \
|
||||||
|
ng2-alfresco-tag
|
||||||
do
|
do
|
||||||
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
||||||
echo "====== PUBLISHING: ${DESTDIR} ====="
|
echo "====== PUBLISHING: ${DESTDIR} ====="
|
||||||
|
@ -25,7 +25,8 @@ for PACKAGE in \
|
|||||||
ng2-alfresco-search \
|
ng2-alfresco-search \
|
||||||
ng2-alfresco-upload \
|
ng2-alfresco-upload \
|
||||||
ng2-alfresco-viewer \
|
ng2-alfresco-viewer \
|
||||||
ng2-alfresco-webscript
|
ng2-alfresco-webscript \
|
||||||
|
ng2-alfresco-tag
|
||||||
do
|
do
|
||||||
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
||||||
echo "====== UPDATE VERSION of ${PACKAGE} to ${VERSION} version in all the package.json ======"
|
echo "====== UPDATE VERSION of ${PACKAGE} to ${VERSION} version in all the package.json ======"
|
||||||
@ -43,7 +44,8 @@ for PACKAGE in \
|
|||||||
ng2-alfresco-search \
|
ng2-alfresco-search \
|
||||||
ng2-alfresco-upload \
|
ng2-alfresco-upload \
|
||||||
ng2-alfresco-viewer \
|
ng2-alfresco-viewer \
|
||||||
ng2-alfresco-webscript
|
ng2-alfresco-webscript \
|
||||||
|
ng2-alfresco-tag
|
||||||
do
|
do
|
||||||
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
DESTDIR="$DIR/../ng2-components/${PACKAGE}"
|
||||||
echo "====== UPDATE VERSION OF ${PACKAGE} to ${VERSION} version ======"
|
echo "====== UPDATE VERSION OF ${PACKAGE} to ${VERSION} version ======"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user