From 5fc8ea17738a63108cfb69b81913cda27decbfbc Mon Sep 17 00:00:00 2001 From: mauriziovitale84 Date: Fri, 22 Apr 2016 11:10:32 +0100 Subject: [PATCH] #17 Alfresco Login component library --- ng2-components/ng2-alfresco-login/.gitignore | 5 + ng2-components/ng2-alfresco-login/README.md | 9 ++ .../ng2-alfresco-login.d.ts | 11 +++ .../ng2-alfresco-login/ng2-alfresco-login.js | 37 +++++++ .../ng2-alfresco-login.js.map | 1 + .../ng2-alfresco-login/ng2-alfresco-login.ts | 13 +++ .../ng2-alfresco-login/package.json | 23 +++++ .../src/authentication.service.d.ts | 16 +++ .../src/authentication.service.js | 99 +++++++++++++++++++ .../src/authentication.service.js.map | 1 + .../src/authentication.service.ts | 80 +++++++++++++++ .../src/login.component.css | 92 +++++++++++++++++ .../src/login.component.d.ts | 12 +++ .../src/login.component.html | 34 +++++++ .../ng2-alfresco-login/src/login.component.js | 75 ++++++++++++++ .../src/login.component.js.map | 1 + .../ng2-alfresco-login/src/login.component.ts | 47 +++++++++ .../ng2-alfresco-login/tsconfig.json | 18 ++++ .../ng2-alfresco-login/typings.json | 6 ++ 19 files changed, 580 insertions(+) create mode 100644 ng2-components/ng2-alfresco-login/.gitignore create mode 100644 ng2-components/ng2-alfresco-login/README.md create mode 100644 ng2-components/ng2-alfresco-login/ng2-alfresco-login.d.ts create mode 100644 ng2-components/ng2-alfresco-login/ng2-alfresco-login.js create mode 100644 ng2-components/ng2-alfresco-login/ng2-alfresco-login.js.map create mode 100644 ng2-components/ng2-alfresco-login/ng2-alfresco-login.ts create mode 100644 ng2-components/ng2-alfresco-login/package.json create mode 100644 ng2-components/ng2-alfresco-login/src/authentication.service.d.ts create mode 100644 ng2-components/ng2-alfresco-login/src/authentication.service.js create mode 100644 ng2-components/ng2-alfresco-login/src/authentication.service.js.map create mode 100644 ng2-components/ng2-alfresco-login/src/authentication.service.ts create mode 100644 ng2-components/ng2-alfresco-login/src/login.component.css create mode 100644 ng2-components/ng2-alfresco-login/src/login.component.d.ts create mode 100644 ng2-components/ng2-alfresco-login/src/login.component.html create mode 100644 ng2-components/ng2-alfresco-login/src/login.component.js create mode 100644 ng2-components/ng2-alfresco-login/src/login.component.js.map create mode 100644 ng2-components/ng2-alfresco-login/src/login.component.ts create mode 100644 ng2-components/ng2-alfresco-login/tsconfig.json create mode 100644 ng2-components/ng2-alfresco-login/typings.json diff --git a/ng2-components/ng2-alfresco-login/.gitignore b/ng2-components/ng2-alfresco-login/.gitignore new file mode 100644 index 0000000000..5b9865affb --- /dev/null +++ b/ng2-components/ng2-alfresco-login/.gitignore @@ -0,0 +1,5 @@ +npm-debug.log +node_modules +jspm_packages +.idea +typings diff --git a/ng2-components/ng2-alfresco-login/README.md b/ng2-components/ng2-alfresco-login/README.md new file mode 100644 index 0000000000..6b8d8fd0ca --- /dev/null +++ b/ng2-components/ng2-alfresco-login/README.md @@ -0,0 +1,9 @@ +# Alfresco Components for Angular 2 + +Components included: +TBD + +### Build + +npm install +npm run build diff --git a/ng2-components/ng2-alfresco-login/ng2-alfresco-login.d.ts b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.d.ts new file mode 100644 index 0000000000..f1ca33296e --- /dev/null +++ b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.d.ts @@ -0,0 +1,11 @@ +import { Login } from './src/login.component'; +import { Authentication } from './src/authentication.service'; +export * from './src/login.component'; +export * from './src/authentication.service'; +declare var _default: { + directives: typeof Login[]; + providers: typeof Authentication[]; +}; +export default _default; +export declare const ALFRESCO_LOGIN_DIRECTIVES: [any]; +export declare const ALFRESCO_AUTHENTICATION: [any]; diff --git a/ng2-components/ng2-alfresco-login/ng2-alfresco-login.js b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.js new file mode 100644 index 0000000000..8e0592e520 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.js @@ -0,0 +1,37 @@ +System.register(['./src/login.component', './src/authentication.service'], function(exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + var login_component_1, authentication_service_1; + var ALFRESCO_LOGIN_DIRECTIVES, ALFRESCO_AUTHENTICATION; + var exportedNames_1 = { + 'ALFRESCO_LOGIN_DIRECTIVES': true, + 'ALFRESCO_AUTHENTICATION': true + }; + function exportStar_1(m) { + var exports = {}; + for(var n in m) { + if (n !== "default"&& !exportedNames_1.hasOwnProperty(n)) exports[n] = m[n]; + } + exports_1(exports); + } + return { + setters:[ + function (login_component_1_1) { + login_component_1 = login_component_1_1; + exportStar_1(login_component_1_1); + }, + function (authentication_service_1_1) { + authentication_service_1 = authentication_service_1_1; + exportStar_1(authentication_service_1_1); + }], + execute: function() { + exports_1("default",{ + directives: [login_component_1.Login], + providers: [authentication_service_1.Authentication] + }); + exports_1("ALFRESCO_LOGIN_DIRECTIVES", ALFRESCO_LOGIN_DIRECTIVES = [login_component_1.Login]); + exports_1("ALFRESCO_AUTHENTICATION", ALFRESCO_AUTHENTICATION = [authentication_service_1.Authentication]); + } + } +}); +//# sourceMappingURL=ng2-alfresco-login.js.map \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/ng2-alfresco-login.js.map b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.js.map new file mode 100644 index 0000000000..11074bbaec --- /dev/null +++ b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ng2-alfresco-login.js","sourceRoot":"","sources":["ng2-alfresco-login.ts"],"names":[],"mappings":";;;;QAWa,yBAAyB,EACzB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;YANpC,oBAAe;gBACX,UAAU,EAAE,CAAC,uBAAK,CAAC;gBACnB,SAAS,EAAE,CAAC,uCAAc,CAAC;aAC9B,EAAA;YAEY,uCAAA,yBAAyB,GAAU,CAAC,uBAAK,CAAC,CAAA,CAAC;YAC3C,qCAAA,uBAAuB,GAAU,CAAC,uCAAc,CAAC,CAAA,CAAC"} \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/ng2-alfresco-login.ts b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.ts new file mode 100644 index 0000000000..ad66cce6db --- /dev/null +++ b/ng2-components/ng2-alfresco-login/ng2-alfresco-login.ts @@ -0,0 +1,13 @@ +import {Login} from './src/login.component'; +import {Authentication} from './src/authentication.service'; + +export * from './src/login.component'; +export * from './src/authentication.service'; + +export default { + directives: [Login], + providers: [Authentication] +} + +export const ALFRESCO_LOGIN_DIRECTIVES: [any] = [Login]; +export const ALFRESCO_AUTHENTICATION: [any] = [Authentication]; diff --git a/ng2-components/ng2-alfresco-login/package.json b/ng2-components/ng2-alfresco-login/package.json new file mode 100644 index 0000000000..4539ee4d8d --- /dev/null +++ b/ng2-components/ng2-alfresco-login/package.json @@ -0,0 +1,23 @@ +{ + "name": "ng2-alfresco-login", + "version": "0.1.0", + "scripts": { + "build": "typings install && tsc", + "tsc": "tsc", + "tsc:w": "tsc -w", + "typings": "typings" + }, + "license": "ISC", + "dependencies": { + "angular2": "2.0.0-beta.15", + "systemjs": "0.19.26", + "es6-shim": "^0.35.0", + "reflect-metadata": "0.1.2", + "rxjs": "5.0.0-beta.2", + "zone.js": "0.6.10" + }, + "devDependencies": { + "typescript": "^1.8.10", + "typings":"^0.7.12" + } +} diff --git a/ng2-components/ng2-alfresco-login/src/authentication.service.d.ts b/ng2-components/ng2-alfresco-login/src/authentication.service.d.ts new file mode 100644 index 0000000000..5ab310a645 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/authentication.service.d.ts @@ -0,0 +1,16 @@ +import { Observable } from 'rxjs/Rx'; +import { Http } from 'angular2/http'; +export declare class Authentication { + http: Http; + token: string; + private _host; + private _baseUrl; + constructor(http: Http); + isLoggedIn(): boolean; + login(method: string, username: string, password: string): Observable; + loginGet(username: string, password: string): Observable; + loginPost(username: string, password: string): Observable; + saveJwt(jwt: any): void; + logout(): Observable; + private handleError(error); +} diff --git a/ng2-components/ng2-alfresco-login/src/authentication.service.js b/ng2-components/ng2-alfresco-login/src/authentication.service.js new file mode 100644 index 0000000000..d68b6df5cc --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/authentication.service.js @@ -0,0 +1,99 @@ +System.register(['angular2/core', 'rxjs/Rx', 'angular2/http'], function(exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var core_1, Rx_1, http_1; + var Authentication; + return { + setters:[ + function (core_1_1) { + core_1 = core_1_1; + }, + function (Rx_1_1) { + Rx_1 = Rx_1_1; + }, + function (http_1_1) { + http_1 = http_1_1; + }], + execute: function() { + Authentication = (function () { + function Authentication(http) { + this.http = http; + this._host = 'http://192.168.99.100:8080'; + this._baseUrl = this._host + '/alfresco/service/api/'; + this.token = localStorage.getItem('token'); + } + Authentication.prototype.isLoggedIn = function () { + return !!localStorage.getItem('token'); + }; + Authentication.prototype.login = function (method, username, password) { + if (method === 'GET') { + return this.loginGet(username, password); + } + else { + return this.loginPost(username, password); + } + }; + Authentication.prototype.loginGet = function (username, password) { + var _this = this; + var searchParams = new http_1.URLSearchParams(); + searchParams.set('u', username); + searchParams.set('pw', password); + return this.http.get(this._baseUrl + 'login', { search: searchParams }) + .map(function (res) { + var data = JSON.parse(xml2json(res.text(), ' ')); + _this.token = data.ticket; + _this.saveJwt(_this.token); + }) + .catch(this.handleError); + }; + Authentication.prototype.loginPost = function (username, password) { + var _this = this; + var credentials = '{ username: ' + username + ', password: ' + password + ' }'; + var headers = new http_1.Headers(); + headers.append('Content-Type', 'application/json'); + return this.http.post(this._baseUrl + 'login', credentials, { + headers: headers + }) + .map(function (res) { + var response = res.json(); + _this.token = response.data.ticket; + _this.saveJwt(_this.token); + }) + .catch(this.handleError); + }; + Authentication.prototype.saveJwt = function (jwt) { + if (jwt) { + localStorage.setItem('token', jwt); + } + }; + Authentication.prototype.logout = function () { + this.token = undefined; + localStorage.removeItem('token'); + return Rx_1.Observable.of(true); + }; + Authentication.prototype.handleError = function (error) { + // in a real world app, we may send the error to some remote logging infrastructure + // instead of just logging it to the console + console.error(error); + return Rx_1.Observable.throw(error.json().error || 'Server error'); + }; + Authentication = __decorate([ + core_1.Injectable(), + __metadata('design:paramtypes', [http_1.Http]) + ], Authentication); + return Authentication; + }()); + exports_1("Authentication", Authentication); + } + } +}); +//# sourceMappingURL=authentication.service.js.map \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/src/authentication.service.js.map b/ng2-components/ng2-alfresco-login/src/authentication.service.js.map new file mode 100644 index 0000000000..53d3fd64b0 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/authentication.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"authentication.service.js","sourceRoot":"","sources":["authentication.service.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/src/authentication.service.ts b/ng2-components/ng2-alfresco-login/src/authentication.service.ts new file mode 100644 index 0000000000..6fa8776a1f --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/authentication.service.ts @@ -0,0 +1,80 @@ +import {Injectable} from 'angular2/core'; +import {Observable} from 'rxjs/Rx'; +import {Http, Headers, URLSearchParams, Response} from 'angular2/http'; + +declare let xml2json:any; + +@Injectable() +export class Authentication { + token:string; + + private _host:string = 'http://192.168.99.100:8080'; + private _baseUrl:string = this._host + '/alfresco/service/api/'; + + constructor(public http:Http) { + this.token = localStorage.getItem('token'); + } + + isLoggedIn() { + return !!localStorage.getItem('token'); + } + + login(method:string, username:string, password:string) { + if (method === 'GET') { + return this.loginGet(username, password); + } else { + return this.loginPost(username, password); + } + } + + loginGet(username:string, password:string) { + const searchParams = new URLSearchParams(); + searchParams.set('u', username); + searchParams.set('pw', password); + + return this.http.get(this._baseUrl + 'login', {search: searchParams}) + .map((res:any) => { + let data = JSON.parse(xml2json(res.text(), ' ')); + this.token = data.ticket; + this.saveJwt(this.token); + }) + .catch(this.handleError); + } + + loginPost(username:string, password:string) { + let credentials = '{ username: ' + username + ', password: ' + password + ' }'; + + let headers = new Headers(); + headers.append('Content-Type', 'application/json'); + + return this.http.post(this._baseUrl + 'login', credentials, { + headers: headers + }) + .map((res:any) => { + let response = res.json(); + this.token = response.data.ticket; + this.saveJwt(this.token); + }) + .catch(this.handleError); + } + + saveJwt(jwt) { + if (jwt) { + localStorage.setItem('token', jwt); + } + } + + logout() { + this.token = undefined; + localStorage.removeItem('token'); + + return Observable.of(true); + } + + private handleError(error:Response) { + // in a real world app, we may send the error to some remote logging infrastructure + // instead of just logging it to the console + console.error(error); + return Observable.throw(error.json().error || 'Server error'); + } +} diff --git a/ng2-components/ng2-alfresco-login/src/login.component.css b/ng2-components/ng2-alfresco-login/src/login.component.css new file mode 100644 index 0000000000..30d931a564 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/login.component.css @@ -0,0 +1,92 @@ +.login-card-wide.mdl-card { + width: 512px; + margin: auto; +} +.login-card-wide > .mdl-card__menu { + color: #000; +} + + + +.ng-invalid.ng-invalid.ng-touched { + border-color: rgb(222, 50, 38); + box-shadow: none; +} + +.ng-invalid.ng-invalid.ng-touched + label { + color: rgb(222, 50, 38); + font-size: 12px; +} + +.ng-invalid.ng-invalid.ng-touched + label:after { + background-color: rgb(222, 50, 38); +} + +.ng-invalid.ng-invalid.ng-touched ~ .mdl-tooltip--validation { + background-color: rgb(222, 50, 38); +} + + +.ng-invalid.ng-touched:not(:focus) + label::before { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + /* Preferred icon size */ + + display: inline-block; + width: 1em; + height: 1em; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + /* Support for all WebKit browsers. */ + + -webkit-font-smoothing: antialiased; + /* Support for Safari and Chrome. */ + + text-rendering: optimizeLegibility; + /* Support for Firefox. */ + + -moz-osx-font-smoothing: grayscale; + /* Support for IE. */ + + font-feature-settings: 'liga'; + content: "warning"; + position: absolute; + right: 0; + bottom: 20px; +} + +.ng-valid.ng-touched:not(:focus) + label::before { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + /* Preferred icon size */ + + display: inline-block; + width: 1em; + height: 1em; + line-height: 1; + text-transform: none; + letter-spacing: normal; + word-wrap: normal; + /* Support for all WebKit browsers. */ + + -webkit-font-smoothing: antialiased; + /* Support for Safari and Chrome. */ + + text-rendering: optimizeLegibility; + /* Support for Firefox. */ + + -moz-osx-font-smoothing: grayscale; + /* Support for IE. */ + + font-feature-settings: 'liga'; + content: "done"; + position: absolute; + right: 0; + bottom: 20px; +} \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/src/login.component.d.ts b/ng2-components/ng2-alfresco-login/src/login.component.d.ts new file mode 100644 index 0000000000..25613d1e0d --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/login.component.d.ts @@ -0,0 +1,12 @@ +import { Router } from 'angular2/router'; +import { ControlGroup, FormBuilder } from 'angular2/common'; +import { Authentication } from './authentication.service'; +export declare class Login { + auth: Authentication; + router: Router; + form: ControlGroup; + error: boolean; + isErrorStyle(field: ControlGroup): boolean; + constructor(fb: FormBuilder, auth: Authentication, router: Router); + onSubmit(value: any, event: any): void; +} diff --git a/ng2-components/ng2-alfresco-login/src/login.component.html b/ng2-components/ng2-alfresco-login/src/login.component.html new file mode 100644 index 0000000000..da49f7d982 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/login.component.html @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/src/login.component.js b/ng2-components/ng2-alfresco-login/src/login.component.js new file mode 100644 index 0000000000..afcfd93000 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/login.component.js @@ -0,0 +1,75 @@ +System.register(['angular2/core', 'angular2/router', 'angular2/common', './authentication.service'], function(exports_1, context_1) { + "use strict"; + var __moduleName = context_1 && context_1.id; + var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + }; + var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); + }; + var core_1, router_1, common_1, authentication_service_1; + var Login; + return { + setters:[ + function (core_1_1) { + core_1 = core_1_1; + }, + function (router_1_1) { + router_1 = router_1_1; + }, + function (common_1_1) { + common_1 = common_1_1; + }, + function (authentication_service_1_1) { + authentication_service_1 = authentication_service_1_1; + }], + execute: function() { + Login = (function () { + function Login(fb, auth, router) { + this.auth = auth; + this.router = router; + this.error = false; + this.form = fb.group({ + username: ['', common_1.Validators.compose([common_1.Validators.required, common_1.Validators.minLength(4)])], + password: ['', common_1.Validators.required] + }); + } + Login.prototype.isErrorStyle = function (field) { + componentHandler.upgradeAllRegistered(); + if (field.valid) { + return false; + } + else { + return true; + } + }; + Login.prototype.onSubmit = function (value, event) { + var _this = this; + if (event) { + event.preventDefault(); + } + this.auth.login('POST', value.username, value.password) + .subscribe(function (token) { return _this.router.navigate(['Home']); }, function () { + _this.error = true; + }); + }; + Login = __decorate([ + core_1.Component({ + selector: 'login', + moduleId: 'node_modules/ng2-alfresco-login/src/', + directives: [router_1.ROUTER_DIRECTIVES, common_1.FORM_DIRECTIVES], + templateUrl: 'login.component.html', + styleUrls: ['login.component.css'], + }), + __metadata('design:paramtypes', [common_1.FormBuilder, authentication_service_1.Authentication, router_1.Router]) + ], Login); + return Login; + }()); + exports_1("Login", Login); + } + } +}); +//# sourceMappingURL=login.component.js.map \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/src/login.component.js.map b/ng2-components/ng2-alfresco-login/src/login.component.js.map new file mode 100644 index 0000000000..7e1849cd7d --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/login.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"login.component.js","sourceRoot":"","sources":["login.component.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAcA;gBAaI,eAAY,EAAc,EAAS,IAAmB,EAAS,MAAa;oBAAzC,SAAI,GAAJ,IAAI,CAAe;oBAAS,WAAM,GAAN,MAAM,CAAO;oBAX5E,UAAK,GAAW,KAAK,CAAC;oBAYlB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC;wBACjB,QAAQ,EAAE,CAAC,EAAE,EAAE,mBAAU,CAAC,OAAO,CAAC,CAAC,mBAAU,CAAC,QAAQ,EAAE,mBAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClF,QAAQ,EAAE,CAAC,EAAE,EAAE,mBAAU,CAAC,QAAQ,CAAC;qBACtC,CAAC,CAAC;gBACP,CAAC;gBAdD,4BAAY,GAAZ,UAAa,KAAkB;oBAC3B,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;oBACxC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;wBACd,MAAM,CAAC,KAAK,CAAC;oBACjB,CAAC;oBAAC,IAAI,CAAC,CAAC;wBACJ,MAAM,CAAC,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;gBASD,wBAAQ,GAAR,UAAS,KAAS,EAAE,KAAK;oBAAzB,iBAWC;oBAVG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBACR,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC3B,CAAC;oBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;yBAClD,SAAS,CACN,UAAC,KAAS,IAAK,OAAA,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAA9B,CAA8B,EAC7C;wBACI,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBACtB,CAAC,CACJ,CAAC;gBACV,CAAC;gBAvCL;oBAAC,gBAAS,CAAC;wBACP,QAAQ,EAAE,OAAO;wBACjB,QAAQ,EAAE,sCAAsC;wBAChD,UAAU,EAAE,CAAC,0BAAiB,EAAE,wBAAe,CAAC;wBAChD,WAAW,EAAE,sBAAsB;wBACnC,SAAS,EAAE,CAAC,qBAAqB,CAAC;qBAErC,CAAC;;yBAAA;gBAiCF,YAAC;YAAD,CAAC,AAhCD,IAgCC;YAhCD,yBAgCC,CAAA"} \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-login/src/login.component.ts b/ng2-components/ng2-alfresco-login/src/login.component.ts new file mode 100644 index 0000000000..d20c8a0144 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/src/login.component.ts @@ -0,0 +1,47 @@ +import {Component} from 'angular2/core'; +import {Router, ROUTER_DIRECTIVES} from 'angular2/router'; +import {FORM_DIRECTIVES, ControlGroup, FormBuilder, Validators} from 'angular2/common'; +import {Authentication} from './authentication.service'; +declare let componentHandler; + +@Component({ + selector: 'login', + moduleId: 'node_modules/ng2-alfresco-login/src/', + directives: [ROUTER_DIRECTIVES, FORM_DIRECTIVES], + templateUrl: 'login.component.html', + styleUrls: ['login.component.css'], + +}) +export class Login { + form:ControlGroup; + error:boolean = false; + + isErrorStyle(field:ControlGroup) { + componentHandler.upgradeAllRegistered(); + if (field.valid) { + return false; + } else { + return true; + } + } + + constructor(fb:FormBuilder, public auth:Authentication, public router:Router) { + this.form = fb.group({ + username: ['', Validators.compose([Validators.required, Validators.minLength(4)])], + password: ['', Validators.required] + }); + } + + onSubmit(value:any, event) { + if (event) { + event.preventDefault(); + } + this.auth.login('POST', value.username, value.password) + .subscribe( + (token:any) => this.router.navigate(['Home']), + () => { + this.error = true; + } + ); + } +} diff --git a/ng2-components/ng2-alfresco-login/tsconfig.json b/ng2-components/ng2-alfresco-login/tsconfig.json new file mode 100644 index 0000000000..2f3531e7b9 --- /dev/null +++ b/ng2-components/ng2-alfresco-login/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "system", + "moduleResolution": "node", + "sourceMap": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "removeComments": false, + "noImplicitAny": false, + "declaration": true + }, + "exclude": [ + "node_modules", + "typings/main", + "typings/main.d.ts" + ] +} diff --git a/ng2-components/ng2-alfresco-login/typings.json b/ng2-components/ng2-alfresco-login/typings.json new file mode 100644 index 0000000000..8d5672dbcf --- /dev/null +++ b/ng2-components/ng2-alfresco-login/typings.json @@ -0,0 +1,6 @@ +{ + "ambientDependencies": { + "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd", + "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#5c182b9af717f73146399c2485f70f1e2ac0ff2b" + } +}