From 4f86f04a290c1bf556de2a7f862d1b473fff2d11 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Fri, 22 Jul 2016 11:14:36 +0100 Subject: [PATCH 1/2] #455 migrate to wsrv, versions server extension --- demo-shell-ng2/browser-sync-config.js | 25 ----------------- demo-shell-ng2/package.json | 7 +++-- demo-shell-ng2/server/versions.js | 39 +++++++++++++++++++++++++++ demo-shell-ng2/wsrv-config.json | 13 +++++++++ 4 files changed, 55 insertions(+), 29 deletions(-) delete mode 100644 demo-shell-ng2/browser-sync-config.js create mode 100644 demo-shell-ng2/server/versions.js create mode 100644 demo-shell-ng2/wsrv-config.json diff --git a/demo-shell-ng2/browser-sync-config.js b/demo-shell-ng2/browser-sync-config.js deleted file mode 100644 index af6440b202..0000000000 --- a/demo-shell-ng2/browser-sync-config.js +++ /dev/null @@ -1,25 +0,0 @@ -var browserSync = require("browser-sync").create(); -var historyApiFallback = require('connect-history-api-fallback'); - -browserSync.init({ - - server: { - baseDir: './', - middleware: [ historyApiFallback() ] - }, - - files: [ - 'index.html', - 'app/**/*.{html,htm,css,js}', - 'dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-core/dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-datatable/dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-documentlist/dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-login/dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-search/dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-upload/dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-viewer/dist/**/*.{html,htm,css,js}', - 'node_modules/ng2-alfresco-webscript/dist/**/*.{html,htm,css,js}'], - -reloadDelay: 1000 -}); diff --git a/demo-shell-ng2/package.json b/demo-shell-ng2/package.json index 0fa4b6e32c..6e5456d8b9 100644 --- a/demo-shell-ng2/package.json +++ b/demo-shell-ng2/package.json @@ -9,7 +9,7 @@ "start": "npm run tslint && concurrently \"npm run tsc:w\" \"license-check\" \"npm run serve\" ", "tsc": "tsc", "tsc:w": "tsc -w", - "serve": "node browser-sync-config.js", + "serve": "wsrv -o -s -l -p 3000 -x ./server/versions.js", "typings": "typings install", "tslint": "tslint -c tslint.json *.ts && tslint -c tslint.json app/{,**/}**.ts", "licensecheck": "license-check" @@ -86,13 +86,12 @@ "ng2-alfresco-webscript": "file:../ng2-components/ng2-alfresco-webscript" }, "devDependencies": { - "browser-sync": "2.10.0", "concurrently": "2.0.0", - "connect-history-api-fallback": "1.2.0", "license-check": "1.1.5", "tslint": "3.8.1", "typescript": "1.8.10", - "typings": "1.0.4" + "typings": "1.0.4", + "wsrv": "0.1.4" }, "license-check-config": { "src": [ diff --git a/demo-shell-ng2/server/versions.js b/demo-shell-ng2/server/versions.js new file mode 100644 index 0000000000..478bc86fe0 --- /dev/null +++ b/demo-shell-ng2/server/versions.js @@ -0,0 +1,39 @@ +'use strict'; + +// wsrv extension that provides dynamic '/versions' route + +exports.register = function (server, options, next) { + + var packages = [ + 'ng2-activiti-form', + 'ng2-alfresco-core', + 'ng2-alfresco-datatable', + 'ng2-alfresco-documentlist', + 'ng2-alfresco-login', + 'ng2-alfresco-search', + 'ng2-alfresco-upload', + 'ng2-alfresco-viewer', + 'ng2-alfresco-webscript' + ]; + + server.route({ + method: 'GET', + path: '/versions', + handler: function (request, reply) { + + var result = {}; + packages.map(function (packageName) { + result[packageName] = require('./../node_modules/' + packageName + '/package.json').version + }); + + reply(result); + } + }); + + next(); +}; + +exports.register.attributes = { + name: 'ng2-module-versions', + version: '1.0.0' +}; diff --git a/demo-shell-ng2/wsrv-config.json b/demo-shell-ng2/wsrv-config.json new file mode 100644 index 0000000000..69fa7707ea --- /dev/null +++ b/demo-shell-ng2/wsrv-config.json @@ -0,0 +1,13 @@ +{ + "watch": [ + "node_modules/ng2-alfresco-core/dist/**/*.{html,css,js}", + "node_modules/ng2-alfresco-datatable/dist/**/*.{html,css,js}", + "node_modules/ng2-alfresco-documentlist/dist/**/*.{html,css,js}", + "node_modules/ng2-alfresco-login/dist/**/*.{html,css,js}", + "node_modules/ng2-alfresco-search/dist/**/*.{html,css,js}", + "node_modules/ng2-alfresco-upload/dist/**/*.{html,css,js}", + "node_modules/ng2-alfresco-viewer/dist/**/*.{html,css,js}", + "node_modules/ng2-alfresco-webscript/dist/**/*.{html,css,js}", + "node_modules/ng2-activiti-form/dist/**/*.{html,css,js}" + ] +} From e370d7feee8c24788eae70c4e5ac2c8500225db0 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Fri, 22 Jul 2016 11:52:17 +0100 Subject: [PATCH 2/2] #455 about page with alfresco packages versions --- demo-shell-ng2/app/app.component.html | 4 +- demo-shell-ng2/app/app.component.ts | 22 ++++---- .../app/components/about/about.component.html | 4 ++ .../app/components/about/about.component.ts | 55 +++++++++++++++++++ demo-shell-ng2/server/versions.js | 15 +++-- 5 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 demo-shell-ng2/app/components/about/about.component.html create mode 100644 demo-shell-ng2/app/components/about/about.component.ts diff --git a/demo-shell-ng2/app/app.component.html b/demo-shell-ng2/app/app.component.html index 2b7147dd8e..6735d56cce 100644 --- a/demo-shell-ng2/app/app.component.html +++ b/demo-shell-ng2/app/app.component.html @@ -15,10 +15,11 @@ DocumentList DataTable Uploader - Activiti + Activiti Tasks Webscript Login + About @@ -48,6 +49,7 @@ Activiti Components Demo Activiti Tasks Demo Webscript + About
diff --git a/demo-shell-ng2/app/app.component.ts b/demo-shell-ng2/app/app.component.ts index df88fc576d..c2f07c5b4e 100644 --- a/demo-shell-ng2/app/app.component.ts +++ b/demo-shell-ng2/app/app.component.ts @@ -34,6 +34,7 @@ import { LoginDemoComponent } from './components/login/login-demo.component'; import { TasksDemoComponent } from './components/tasks/tasks-demo.component'; import { ActivitiDemoComponent } from './components/activiti/activiti-demo.component'; import { WebscriptComponent } from './components/webscript/webscript.component'; +import { AboutComponent } from './components/about/about.component'; declare var document: any; @@ -45,16 +46,17 @@ declare var document: any; pipes: [AlfrescoPipeTranslate] }) @RouteConfig([ - {path: '/home', name: 'Home', component: FilesComponent}, - {path: '/files', name: 'Files', component: FilesComponent}, - {path: '/datatable', name: 'DataTable', component: DataTableDemoComponent}, - {path: '/', name: 'Login', component: LoginDemoComponent, useAsDefault: true}, - {path: '/uploader', name: 'Uploader', component: UploadButtonComponent}, - {path: '/login', name: 'Login', component: LoginDemoComponent}, - {path: '/search', name: 'Search', component: SearchComponent}, - {path: '/tasks', name: 'Tasks', component: TasksDemoComponent}, - {path: '/activiti', name: 'Activiti', component: ActivitiDemoComponent}, - {path: '/webscript', name: 'Webscript', component: WebscriptComponent} + { path: '/home', name: 'Home', component: FilesComponent }, + { path: '/files', name: 'Files', component: FilesComponent }, + { path: '/datatable', name: 'DataTable', component: DataTableDemoComponent }, + { path: '/', name: 'Login', component: LoginDemoComponent, useAsDefault: true }, + { path: '/uploader', name: 'Uploader', component: UploadButtonComponent }, + { path: '/login', name: 'Login', component: LoginDemoComponent }, + { path: '/search', name: 'Search', component: SearchComponent }, + { path: '/tasks', name: 'Tasks', component: TasksDemoComponent }, + { path: '/activiti', name: 'Activiti', component: ActivitiDemoComponent }, + { path: '/webscript', name: 'Webscript', component: WebscriptComponent }, + { path: '/about', name: 'About', component: AboutComponent } ]) export class AppComponent { translate: AlfrescoTranslationService; diff --git a/demo-shell-ng2/app/components/about/about.component.html b/demo-shell-ng2/app/components/about/about.component.html new file mode 100644 index 0000000000..c0922f8141 --- /dev/null +++ b/demo-shell-ng2/app/components/about/about.component.html @@ -0,0 +1,4 @@ +
+

Packages

+ +
diff --git a/demo-shell-ng2/app/components/about/about.component.ts b/demo-shell-ng2/app/components/about/about.component.ts new file mode 100644 index 0000000000..30b667a14a --- /dev/null +++ b/demo-shell-ng2/app/components/about/about.component.ts @@ -0,0 +1,55 @@ +/*! + * @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 } from '@angular/core'; +import { Http } from '@angular/http'; +import { + ALFRESCO_DATATABLE_DIRECTIVES, + ObjectDataTableAdapter /*, + DataSorting, + ObjectDataRow, + ObjectDataColumn*/ +} from 'ng2-alfresco-datatable'; + +declare let __moduleName: string; + +@Component({ + moduleId: __moduleName, + selector: 'about-page', + templateUrl: './about.component.html', + directives: [ALFRESCO_DATATABLE_DIRECTIVES] +}) +export class AboutComponent implements OnInit { + + data: ObjectDataTableAdapter; + + constructor(private http: Http) {} + + ngOnInit() { + // this.data = new ObjectDataTableAdapter(); + this.http.get('/versions').subscribe(response => { + let data = response.json() || {}; + let packages = data.packages || []; + + this.data = new ObjectDataTableAdapter(packages, [ + { type: 'text', key: 'name', title: 'Name', sortable: true }, + { type: 'text', key: 'version', title: 'Version', sortable: true } + ]); + }); + + } +} diff --git a/demo-shell-ng2/server/versions.js b/demo-shell-ng2/server/versions.js index 478bc86fe0..020843cf53 100644 --- a/demo-shell-ng2/server/versions.js +++ b/demo-shell-ng2/server/versions.js @@ -20,13 +20,16 @@ exports.register = function (server, options, next) { method: 'GET', path: '/versions', handler: function (request, reply) { + var result = { + packages: packages.map(function (packageName) { + return { + name: packageName, + version: require('./../node_modules/' + packageName + '/package.json').version + } + }) + }; - var result = {}; - packages.map(function (packageName) { - result[packageName] = require('./../node_modules/' + packageName + '/package.json').version - }); - - reply(result); + return reply(result).type('application/json'); } });