# Alfresco Tag Component for Angular 2

travis
    Status travis
    Status Coverage Status npm downloads license alfresco component angular 2 typescript node version

### 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 ``` 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 ``` #### 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 ``` ```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: `
`, 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.| ![Custom columns](docs/assets/tag3.png) ## alfresco-tag-node-list ```html ``` ```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: `
`, 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.| ![Custom columns](docs/assets/tag1.png) ## alfresco-tag-list ```html ``` ```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: `
`, 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 ]); ``` ![Custom columns](docs/assets/tag2.png) ## 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 ```