diff --git a/app/components/arts/BaseApplication.ts b/app/components/arts/BaseApplication.ts index 66c6780..302d293 100644 --- a/app/components/arts/BaseApplication.ts +++ b/app/components/arts/BaseApplication.ts @@ -3,12 +3,14 @@ /// /// /// +/// /// /// /// /// /// /// +/// /// /// /// @@ -21,6 +23,7 @@ /// /// /// +/// import IApplication = require('./interface/IApplication'); import IConfiguration = require('./interface/IConfiguration'); @@ -46,10 +49,27 @@ class BaseApplication extends BaseModule implements IApplication 'ngRoute', 'ngSanitize', 'ngTouch', + 'hljs', 'pascalprecht.translate', + 'angularFileUpload', 'angularMoment', - 'LocalStorageModule', - 'hljs' + 'nvd3ChartDirectives', + 'ui.grid', + 'ui.grid.pagination', + 'ui.grid.selection', + 'ui.grid.expandable', + 'ui.grid.pinning', + 'ui.grid.resizeColumns', + 'ui.grid.moveColumns', + 'ui.grid.edit', + 'ui.grid.rowEdit', + 'ui.grid.cellNav', + 'ui.grid.exporter', + 'ui.grid.importer', + 'ui.grid.saveState', + 'ui.grid.infiniteScroll', + 'ui.grid.autoResize', + 'LocalStorageModule' ]; static dependencies(deps:Array):Array diff --git a/app/config.ts b/app/config.ts index 1f5dd09..0c8a207 100644 --- a/app/config.ts +++ b/app/config.ts @@ -8,12 +8,14 @@ requirejs.config( 'angular-animate': 'vendor/js/angular-animate', 'angular-aria': 'vendor/js/angular-aria', 'angular-cookies': 'vendor/js/angular-cookies', + 'angular-file-upload': 'vendor/js/angular-file-upload', 'angular-highlightjs': 'vendor/js/angular-highlightjs', 'angular-loader': 'vendor/js/angular-loader', 'angular-local-storage': 'vendor/js/angular-local-storage', 'angular-material': 'vendor/js/angular-material', 'angular-messages': 'vendor/js/angular-messages', 'angular-moment': 'vendor/js/angular-moment', + 'angular-nvd3-directives': 'vendor/js/angularjs-nvd3-directives', 'angular-resource': 'vendor/js/angular-resource', 'angular-route': 'vendor/js/angular-route', 'angular-sanitize': 'vendor/js/angular-sanitize', @@ -26,9 +28,12 @@ requirejs.config( 'angular-translate-loader-url': 'vendor/js/angular-translate-loader-url', 'angular-translate-storage-cookie': 'vendor/js/angular-translate-storage-cookie', 'angular-translate-storage-local': 'vendor/js/angular-translate-storage-local', + 'angular-ui-grid': 'vendor/js/ui-grid', + 'd3': 'vendor/js/d3', 'highlight': 'vendor/js/highlight.pack', 'jquery': 'vendor/js/jquery', 'moment': 'vendor/js/moment', + 'nv.d3': 'vendor/js/nv.d3', 'text': 'vendor/js/text' }, @@ -51,6 +56,11 @@ requirejs.config( 'angular' ] }, + 'angular-file-upload': { + deps: [ + 'angular' + ] + }, 'angular-highlightjs': { deps: [ 'angular', @@ -79,6 +89,12 @@ requirejs.config( 'angular' ] }, + 'angular-nvd3-directives': { + deps: [ + 'angular', + 'nv.d3' + ] + }, 'angular-resource': { deps: [ 'angular' @@ -140,6 +156,16 @@ requirejs.config( 'angular-translate', 'angular-cookies' ] + }, + 'angular-ui-grid': { + deps: [ + 'angular' + ] + }, + 'nv.d3': { + deps: [ + 'd3' + ] } }, deps: [ diff --git a/app/index.html b/app/index.html index 00cdae7..d2a4af1 100644 --- a/app/index.html +++ b/app/index.html @@ -9,6 +9,8 @@ + + @@ -18,6 +20,7 @@ display: none; } + diff --git a/app/test-config.ts b/app/test-config.ts index 71e7857..bae60a8 100644 --- a/app/test-config.ts +++ b/app/test-config.ts @@ -31,6 +31,7 @@ requirejs.config({ 'angular-animate': 'vendor/js/angular-animate', 'angular-aria': 'vendor/js/angular-aria', 'angular-cookies': 'vendor/js/angular-cookies', + 'angular-file-upload': 'vendor/js/angular-file-upload', 'angular-highlightjs': 'vendor/js/angular-highlightjs', 'angular-loader': 'vendor/js/angular-loader', 'angular-local-storage': 'vendor/js/angular-local-storage', @@ -38,6 +39,7 @@ requirejs.config({ 'angular-messages': 'vendor/js/angular-messages', 'angular-mocks': 'vendor/js/angular-mocks', 'angular-moment': 'vendor/js/angular-moment', + 'angular-nvd3-directives': 'vendor/js/angularjs-nvd3-directives', 'angular-resource': 'vendor/js/angular-resource', 'angular-route': 'vendor/js/angular-route', 'angular-sanitize': 'vendor/js/angular-sanitize', @@ -50,9 +52,12 @@ requirejs.config({ 'angular-translate-loader-url': 'vendor/js/angular-translate-loader-url', 'angular-translate-storage-cookie': 'vendor/js/angular-translate-storage-cookie', 'angular-translate-storage-local': 'vendor/js/angular-translate-storage-local', + 'angular-ui-grid': 'vendor/js/ui-grid', + 'd3': 'vendor/js/d3', 'highlight': 'vendor/js/highlight.pack', 'jquery': 'vendor/js/jquery', 'moment': 'vendor/js/moment', + 'nv.d3': 'vendor/js/nv.d3', 'text': 'vendor/js/text' }, @@ -75,6 +80,11 @@ requirejs.config({ 'angular' ] }, + 'angular-file-upload': { + deps: [ + 'angular' + ] + }, 'angular-highlightjs': { deps: [ 'angular', @@ -103,11 +113,23 @@ requirejs.config({ 'angular' ] }, + 'angular-moment': { + deps: [ + 'angular', + 'moment' + ] + }, 'angular-mocks': { deps: [ 'angular' ] }, + 'angular-nvd3-directives': { + deps: [ + 'angular', + 'nv.d3' + ] + }, 'angular-resource': { deps: [ 'angular' @@ -168,6 +190,16 @@ requirejs.config({ deps: [ 'angular-translate' ] + }, + 'angular-ui-grid': { + deps: [ + 'angular' + ] + }, + 'nv.d3': { + deps: [ + 'd3' + ] } }, diff --git a/bower.json b/bower.json index 0406bd3..da861d0 100644 --- a/bower.json +++ b/bower.json @@ -52,9 +52,12 @@ "angular-translate-storage-local": "^2.6.1", "angular-translate": "^2.6.1", "angular-translate": "^2.6.1", + "angular-ui-grid": "^3.0.0-rc.20", + "angularjs-nvd3-directives": "^0.0.7", "font-awesome": "^4.3.0 ", "jquery": "^2.1.3", "moment": "^2.9.0", + "ng-file-upload": "^3.2.4", "requirejs": "2.1.17", "requirejs-text": "2.0.14" }, @@ -72,6 +75,7 @@ "angular-sanitize": "^1.4.0", "angular-touch": "^1.4.0", "angular-translate": "^2.6.1", - "font-awesome": "^4.3.0" + "font-awesome": "^4.3.0", + "d3": "~3.4.1" } } diff --git a/conf/gulpfunc.ts b/conf/gulpfunc.ts index db56df4..40127ca 100644 --- a/conf/gulpfunc.ts +++ b/conf/gulpfunc.ts @@ -2,177 +2,209 @@ 'use strict'; var amd = require('amd-optimize'), - bower = require('main-bower-files'), - through = require('through2'), - filter = require('gulp-filter'), - gulp = require('gulp'), - karma = require('gulp-karma'), - connect = require('gulp-connect'), - concat = require('gulp-concat'), - gulpif = require('gulp-if'), - maps = require('gulp-sourcemaps'), - merge = require('merge2'), - minCSS = require('gulp-minify-css'), - rename = require('gulp-rename'), - replace = require('gulp-replace'), - uglify = require('gulp-uglify'), - sass = require('gulp-sass'), - os = require('os'), - protrac = require('gulp-protractor').protractor, - push = require('connect-pushstate'), - ts = require('gulp-typescript'), - typedoc = require('gulp-typedoc'), - tsExtends = /^var __extends =/, - istanbulIgnoreTypeScriptExtend = function () { - return through.obj(function (file:any, enc:any, done:any) { - if (file.isBuffer() && tsExtends.test(file.contents)) { - file.contents = Buffer.concat([ - new Buffer('/* istanbul ignore next: TypeScript extend */' + os.EOL), - file.contents - ]); - } - this.push(file); - done(); - }); - }; + bower = require('main-bower-files'), + through = require('through2'), + filter = require('gulp-filter'), + gulp = require('gulp'), + karma = require('gulp-karma'), + connect = require('gulp-connect'), + concat = require('gulp-concat'), + gulpif = require('gulp-if'), + compression = require('compression'), + maps = require('gulp-sourcemaps'), + merge = require('merge2'), + minCSS = require('gulp-minify-css'), + rename = require('gulp-rename'), + replace = require('gulp-replace'), + uglify = require('gulp-uglify'), + sass = require('gulp-sass'), + os = require('os'), + protrac = require('gulp-protractor').protractor, + push = require('connect-pushstate'), + ts = require('gulp-typescript'), + typedoc = require('gulp-typedoc'), + tsExtends = /^var __extends =/, + istanbulIgnoreTypeScriptExtend = function () + { + return through.obj(function (file:any, enc:any, done:any) + { + if (file.isBuffer() && tsExtends.test(file.contents)) + { + file.contents = Buffer.concat([ + new Buffer('/* istanbul ignore next: TypeScript extend */' + os.EOL), + file.contents + ]); + } + this.push(file); + done(); + }); + }; exports.func = { build: { - requirejs: function (out:string, destination:any, source:any, mod:string, exclude:string[], compress:any, sourceMaps:any) { - return gulp.src([source + '/*.js', source + '/**/*.js']) - .pipe(gulpif(compress && sourceMaps, maps.init())) - .pipe(amd(mod, { - baseUrl: source, - configFile: source + '/config.js', - findNestedDependencies: true, - exclude: exclude - })) - .pipe(concat(out)) - .pipe(gulpif(compress, uglify())) - .pipe(gulpif(compress && sourceMaps, maps.write())) - .pipe(gulp.dest(destination)); + requirejs: function (out:string, destination:any, source:any, mod:string, exclude:string[], compress:any, sourceMaps:any) + { + return gulp.src([ + source + '/*.js', + source + '/**/*.js' + ]) + .pipe(gulpif(compress && sourceMaps, maps.init())) + .pipe(amd(mod, { + baseUrl: source, + configFile: source + '/config.js', + findNestedDependencies: true, + exclude: exclude + })) + .pipe(concat(out)) + .pipe(gulpif(compress, uglify())) + .pipe(gulpif(compress && sourceMaps, maps.write())) + .pipe(gulp.dest(destination)); }, - bower: function (destination:any, filters:any, compress:any, sourceMaps:any) { + bower: function (destination:any, filters:any, compress:any, sourceMaps:any) + { var jsFilter = filter(filters.js), - cssFilter = filter(filters.css), - fontFilter = filter(filters.font), - imagesFilter = filter(filters.images); + cssFilter = filter(filters.css), + fontFilter = filter(filters.font), + imagesFilter = filter(filters.images); return gulp.src(bower({filter: filters.exclude})) - .pipe(gulpif(compress && sourceMaps, maps.init())) - .pipe(jsFilter) - .pipe(gulpif(compress, uglify())) - .pipe(rename(function (path:any) { - path.dirname = '/js'; - })) - .pipe(jsFilter.restore()) - .pipe(cssFilter) - .pipe(replace(/url\('ui-grid/g, "url('../fonts/ui-grid")) // fix font path in ui-grid - .pipe(gulpif(compress, minCSS())) - .pipe(rename(function (path:any) { - path.dirname = '/css'; - })) - .pipe(cssFilter.restore()) - .pipe(fontFilter) - .pipe(rename(function (path:any) { - path.dirname = '/fonts'; - })) - .pipe(fontFilter.restore()) - .pipe(gulpif(compress && sourceMaps, maps.write())) - .pipe(imagesFilter) - .pipe(rename(function (path:any) { - path.dirname = '/images'; - })) - .pipe(imagesFilter.restore()) - .pipe(gulp.dest(destination)); + .pipe(gulpif(compress && sourceMaps, maps.init())) + .pipe(jsFilter) + .pipe(gulpif(compress, uglify())) + .pipe(rename(function (path:any) + { + path.dirname = '/js'; + })) + .pipe(jsFilter.restore()) + .pipe(cssFilter) + .pipe(replace(/url\('ui-grid/g, "url('../fonts/ui-grid")) // fix font path in ui-grid + .pipe(gulpif(compress, minCSS())) + .pipe(rename(function (path:any) + { + path.dirname = '/css'; + })) + .pipe(cssFilter.restore()) + .pipe(fontFilter) + .pipe(rename(function (path:any) + { + path.dirname = '/fonts'; + })) + .pipe(fontFilter.restore()) + .pipe(gulpif(compress && sourceMaps, maps.write())) + .pipe(imagesFilter) + .pipe(rename(function (path:any) + { + path.dirname = '/images'; + })) + .pipe(imagesFilter.restore()) + .pipe(gulp.dest(destination)); }, - typescript: function (destination:any, source:any, config:any, compress:any, sourceMaps:any) { + typescript: function (destination:any, source:any, config:any, compress:any, sourceMaps:any) + { var result = gulp.src(source) - .pipe(gulpif(compress && sourceMaps, maps.init())) - .pipe(ts(ts.createProject(config))); + .pipe(gulpif(compress && sourceMaps, maps.init())) + .pipe(ts(ts.createProject(config))); return merge([ result.js - .pipe(istanbulIgnoreTypeScriptExtend()) - .pipe(gulpif(compress, uglify())) - .pipe(gulpif(compress && sourceMaps, maps.write())) - .pipe(gulp.dest(destination)), + .pipe(istanbulIgnoreTypeScriptExtend()) + .pipe(gulpif(compress, uglify())) + .pipe(gulpif(compress && sourceMaps, maps.write())) + .pipe(gulp.dest(destination)), result.dts - .pipe(gulp.dest(destination + '/ts-api')) + .pipe(gulp.dest(destination + '/ts-api')) ]); }, - typedoc: function(destination: string, source: string[], config: any) { + typedoc: function (destination:string, source:string[], config:any) + { return gulp.src(source).pipe(typedoc(config)); }, - scss: function (destination:any, source:any, compress:any, sourceMaps:any) { + scss: function (destination:any, source:any, compress:any, sourceMaps:any) + { return gulp.src(source) - .pipe(gulpif(compress && sourceMaps, maps.init())) - .pipe(sass()) - .pipe(gulpif(compress, minCSS())) - .pipe(gulpif(compress && sourceMaps, maps.write())) - .pipe(gulp.dest(destination)); + .pipe(gulpif(compress && sourceMaps, maps.init())) + .pipe(sass()) + .pipe(gulpif(compress, minCSS())) + .pipe(gulpif(compress && sourceMaps, maps.write())) + .pipe(gulp.dest(destination)); }, - copy: function (destination:any, source:any) { + copy: function (destination:any, source:any) + { return gulp.src(source) - .pipe(gulp.dest(destination)); + .pipe(gulp.dest(destination)); }, - copyJS: function (destination:any, source:any, compress:any, sourceMaps:any) { + copyJS: function (destination:any, source:any, compress:any, sourceMaps:any) + { return gulp.src(source) - .pipe(gulpif(compress && sourceMaps, maps.init())) - .pipe(gulpif(compress, uglify())) - .pipe(gulpif(compress && sourceMaps, maps.write())) - .pipe(gulp.dest(destination)); + .pipe(gulpif(compress && sourceMaps, maps.init())) + .pipe(gulpif(compress, uglify())) + .pipe(gulpif(compress && sourceMaps, maps.write())) + .pipe(gulp.dest(destination)); }, - copyCSS: function (destination:any, source:any, compress:any, sourceMaps:any) { + copyCSS: function (destination:any, source:any, compress:any, sourceMaps:any) + { return gulp.src(source) - .pipe(gulpif(compress && sourceMaps, maps.init())) - .pipe(gulpif(compress, minCSS())) - .pipe(gulpif(compress && sourceMaps, maps.write())) - .pipe(gulp.dest(destination)); + .pipe(gulpif(compress && sourceMaps, maps.init())) + .pipe(gulpif(compress, minCSS())) + .pipe(gulpif(compress && sourceMaps, maps.write())) + .pipe(gulp.dest(destination)); }, - copyJSON: function (destination:any, source:any, compress:any, sourceMaps:any) { + copyJSON: function (destination:any, source:any, compress:any, sourceMaps:any) + { return gulp.src(source) - .pipe(gulpif(compress && sourceMaps, maps.init())) - .pipe(gulpif(compress, uglify())) - .pipe(gulpif(compress && sourceMaps, maps.write())) - .pipe(gulp.dest(destination)); + .pipe(gulpif(compress && sourceMaps, maps.init())) + .pipe(gulpif(compress, uglify())) + .pipe(gulpif(compress && sourceMaps, maps.write())) + .pipe(gulp.dest(destination)); } }, test: { - unit: function (config:any, watch:any) { + unit: function (config:any, watch:any) + { return gulp.src([]) - .pipe(karma({ - configFile: config, - action: watch ? 'watch' : 'run' - })) - .on('error', function (err:any) { - throw err; - }); + .pipe(karma({ + configFile: config, + action: watch ? 'watch' : 'run' + })) + .on('error', function (err:any) + { + throw err; + }); }, - e2e: function (config:any) { + e2e: function (config:any) + { return gulp.src([]) - .pipe(protrac({ - configFile: config - })) - .on('error', function (err:any) { - throw err; - }); + .pipe(protrac({ + configFile: config + })) + .on('error', function (err:any) + { + throw err; + }); } }, - server: function (path:any, port:any) { - + server: function (path:any, port:any) + { return connect.server({ - root: [path, 'tmp'], + root: [ + path, + 'tmp' + ], port: port, - base: ['.tmp', ''], + base: [ + '.tmp', + '' + ], hostname: '*', livereload: true, - middleware: function (connect:any, options:any) { + middleware: function (connect:any, options:any) + { return [ push({ root: '/index.html' - }) + }), + compression() ]; } }); diff --git a/package.json b/package.json index 1cf9e9c..78825e8 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "connect-pushstate": "^1.0.0", "gulp-concat": "^2.5.2 ", "gulp-filter": "^2.0.2", + "compression": "^1.4.3", "gulp-rename": "^1.2.0", "gulp-replace": "^0.5.3", "gulp-if": "^1.2.5",