From d5b67fc7184c841ae314763483d5aa1f73b579b6 Mon Sep 17 00:00:00 2001 From: Tiago Melo Date: Tue, 5 Jun 2018 16:42:55 +0100 Subject: [PATCH] mgr/dashboard: Update Angular to version 6 Signed-off-by: Tiago Melo --- .../mgr/dashboard/frontend/.angular-cli.json | 66 -------- .../mgr/dashboard/frontend/angular.json | 144 ++++++++++++++++++ .../mgr/dashboard/frontend/karma.conf.js | 7 +- .../mgr/dashboard/frontend/package.json | 86 +++++------ .../dashboard/frontend/src/tsconfig.spec.json | 3 +- 5 files changed, 193 insertions(+), 113 deletions(-) delete mode 100644 src/pybind/mgr/dashboard/frontend/.angular-cli.json create mode 100644 src/pybind/mgr/dashboard/frontend/angular.json diff --git a/src/pybind/mgr/dashboard/frontend/.angular-cli.json b/src/pybind/mgr/dashboard/frontend/.angular-cli.json deleted file mode 100644 index f268010bdde..00000000000 --- a/src/pybind/mgr/dashboard/frontend/.angular-cli.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "./node_modules/@angular/cli/lib/config/schema.json", - "project": { - "name": "ceph-dashboard" - }, - "apps": [ - { - "root": "src", - "outDir": "dist", - "assets": [ - "assets", - "favicon.ico" - ], - "index": "index.html", - "main": "main.ts", - "polyfills": "polyfills.ts", - "test": "test.ts", - "tsconfig": "tsconfig.app.json", - "testTsconfig": "tsconfig.spec.json", - "prefix": "cd", - "styles": [ - "../node_modules/bootstrap/dist/css/bootstrap.css", - "../node_modules/ng2-toastr/bundles/ng2-toastr.min.css", - "../node_modules/fork-awesome/css/fork-awesome.css", - "../node_modules/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css", - "styles.scss" - ], - "scripts": [ - "../node_modules/chart.js/dist/Chart.bundle.js" - ], - "environmentSource": "environments/environment.ts", - "environments": { - "dev": "environments/environment.ts", - "prod": "environments/environment.prod.ts" - } - } - ], - "e2e": { - "protractor": { - "config": "./protractor.conf.js" - } - }, - "lint": [ - { - "project": "src/tsconfig.app.json", - "exclude": "**/node_modules/**" - }, - { - "project": "src/tsconfig.spec.json", - "exclude": "**/node_modules/**" - }, - { - "project": "e2e/tsconfig.e2e.json", - "exclude": "**/node_modules/**" - } - ], - "test": { - "karma": { - "config": "./karma.conf.js" - } - }, - "defaults": { - "styleExt": "scss", - "component": {} - } -} diff --git a/src/pybind/mgr/dashboard/frontend/angular.json b/src/pybind/mgr/dashboard/frontend/angular.json new file mode 100644 index 00000000000..037d517620a --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/angular.json @@ -0,0 +1,144 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "ceph-dashboard": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist", + "index": "src/index.html", + "main": "src/main.ts", + "tsConfig": "src/tsconfig.app.json", + "polyfills": "src/polyfills.ts", + "assets": [ + "src/assets", + "src/favicon.ico" + ], + "styles": [ + "node_modules/bootstrap/dist/css/bootstrap.css", + "node_modules/ng2-toastr/bundles/ng2-toastr.min.css", + "node_modules/fork-awesome/css/fork-awesome.css", + "node_modules/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css", + "src/styles.scss" + ], + "scripts": [ + "node_modules/chart.js/dist/Chart.bundle.js" + ] + }, + "configurations": { + "production": { + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "ceph-dashboard:build" + }, + "configurations": { + "production": { + "browserTarget": "ceph-dashboard:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "ceph-dashboard:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "karmaConfig": "./karma.conf.js", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.spec.json", + "scripts": [ + "node_modules/chart.js/dist/Chart.bundle.js" + ], + "styles": [ + "node_modules/bootstrap/dist/css/bootstrap.css", + "node_modules/ng2-toastr/bundles/ng2-toastr.min.css", + "node_modules/fork-awesome/css/fork-awesome.css", + "node_modules/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css", + "src/styles.scss" + ], + "assets": [ + "src/assets", + "src/favicon.ico" + ] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "src/tsconfig.app.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "ceph-dashboard-e2e": { + "root": "", + "sourceRoot": "", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "./protractor.conf.js", + "devServerTarget": "ceph-dashboard:serve" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "e2e/tsconfig.e2e.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + } + }, + "defaultProject": "ceph-dashboard", + "schematics": { + "@schematics/angular:component": { + "prefix": "cd", + "styleext": "scss" + }, + "@schematics/angular:directive": { + "prefix": "cd" + } + } +} \ No newline at end of file diff --git a/src/pybind/mgr/dashboard/frontend/karma.conf.js b/src/pybind/mgr/dashboard/frontend/karma.conf.js index f86ab20aa5f..81e6bb5ec09 100644 --- a/src/pybind/mgr/dashboard/frontend/karma.conf.js +++ b/src/pybind/mgr/dashboard/frontend/karma.conf.js @@ -4,13 +4,13 @@ module.exports = function (config) { config.set({ basePath: '', - frameworks: ['jasmine', '@angular/cli'], + frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), - require('@angular/cli/plugins/karma'), + require('@angular-devkit/build-angular/plugins/karma'), require('karma-phantomjs-launcher'), require('karma-junit-reporter') ], @@ -18,7 +18,8 @@ module.exports = function (config) { clearContext: false // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { - reports: [ 'html', 'lcovonly', 'cobertura' ], + dir: require('path').join(__dirname, 'coverage'), + reports: ['html', 'lcovonly', 'cobertura'], fixWebpackSourcePaths: true }, angularCli: { diff --git a/src/pybind/mgr/dashboard/frontend/package.json b/src/pybind/mgr/dashboard/frontend/package.json index e83367bdeef..32332b82ba0 100644 --- a/src/pybind/mgr/dashboard/frontend/package.json +++ b/src/pybind/mgr/dashboard/frontend/package.json @@ -4,7 +4,7 @@ "license": "MIT", "scripts": { "ng": "ng", - "start": "ng serve --delete-output-path false --proxy-config proxy.conf.json --host 0.0.0.0", + "start": "ng serve --proxy-config proxy.conf.json --host 0.0.0.0", "build": "ng build", "test": "jest --watch", "test:ci": "jest --coverage", @@ -35,61 +35,61 @@ ] }, "dependencies": { - "@angular/animations": "^5.0.0", - "@angular/common": "^5.0.0", - "@angular/compiler": "^5.0.0", - "@angular/core": "^5.0.0", - "@angular/forms": "^5.0.0", - "@angular/http": "^5.0.0", - "@angular/platform-browser": "^5.0.0", - "@angular/platform-browser-dynamic": "^5.0.0", - "@angular/router": "^5.0.0", + "@angular/animations": "^6.0.4", + "@angular/common": "^6.0.4", + "@angular/compiler": "^6.0.4", + "@angular/core": "^6.0.4", + "@angular/forms": "^6.0.4", + "@angular/http": "^6.0.4", + "@angular/platform-browser": "^6.0.4", + "@angular/platform-browser-dynamic": "^6.0.4", + "@angular/router": "^6.0.4", "@swimlane/ngx-datatable": "^13.0.1", - "@types/lodash": "^4.14.95", + "@types/lodash": "^4.14.109", "awesome-bootstrap-checkbox": "0.3.7", "bootstrap": "^3.3.7", - "chart.js": "^2.7.1", - "core-js": "^2.4.1", - "fork-awesome": "1.0.11", - "lodash": "^4.17.4", - "moment": "2.20.1", + "chart.js": "^2.7.2", + "core-js": "^2.5.7", + "fork-awesome": "^1.1.0", + "lodash": "^4.17.10", + "moment": "^2.22.2", "ng2-charts": "^1.6.0", - "ng2-toastr": "4.1.2", - "ngx-bootstrap": "^2.0.1", + "ng2-toastr": "github:zzakir/ng2-toastr#master", + "ngx-bootstrap": "^2.0.5", "rxjs": "^6.2.0", "rxjs-compat": "^6.2.0", - "zone.js": "^0.8.14" + "zone.js": "^0.8.26" }, "devDependencies": { - "@angular/cli": "^1.6.5", - "@angular/compiler-cli": "^5.0.0", - "@angular/language-service": "^5.0.0", - "@types/jasmine": "~2.5.53", - "@types/jasminewd2": "~2.0.2", - "@types/jest": "^22.2.3", - "@types/node": "~6.0.60", + "@angular-devkit/build-angular": "~0.6.8", + "@angular/cli": "^6.0.8", + "@angular/compiler-cli": "^6.0.4", + "@angular/language-service": "^6.0.4", + "@types/jasmine": "~2.8.8", + "@types/jasminewd2": "~2.0.3", + "@types/jest": "^23.0.0", + "@types/node": "^8.10.19", "babel-preset-env": "^1.7.0", - "codelyzer": "^4.0.1", - "copy-webpack-plugin": "4.3.0", - "jasmine-core": "~2.6.2", - "jasmine-spec-reporter": "~4.1.0", - "jest": "^22.4.3", + "codelyzer": "^4.3.0", + "jasmine-core": "~3.1.0", + "jasmine-spec-reporter": "~4.2.1", + "jest": "^23.1.0", "jest-canvas-mock": "^1.0.2", "jest-preset-angular": "^5.2.2", - "karma": "~1.7.0", - "karma-chrome-launcher": "~2.1.1", + "karma": "~2.0.2", + "karma-chrome-launcher": "~2.2.0", "karma-cli": "~1.0.1", - "karma-coverage-istanbul-reporter": "^1.2.1", - "karma-jasmine": "~1.1.0", - "karma-jasmine-html-reporter": "^0.2.2", + "karma-coverage-istanbul-reporter": "^2.0.1", + "karma-jasmine": "~1.1.2", + "karma-jasmine-html-reporter": "^1.1.0", "karma-junit-reporter": "^1.2.0", "karma-phantomjs-launcher": "^1.0.4", - "prettier": "1.12.1", - "pretty-quick": "^1.4.1", - "protractor": "~5.3.0", - "ts-node": "~3.2.0", - "tslint": "~5.9.1", - "tslint-eslint-rules": "^4.1.1", - "typescript": "~2.4.2" + "prettier": "^1.13.5", + "pretty-quick": "^1.6.0", + "protractor": "~5.3.2", + "ts-node": "~5.0.1", + "tslint": "~5.10.0", + "tslint-eslint-rules": "^5.3.1", + "typescript": "2.7.2" } } diff --git a/src/pybind/mgr/dashboard/frontend/src/tsconfig.spec.json b/src/pybind/mgr/dashboard/frontend/src/tsconfig.spec.json index 63d89ff283f..18bad40ed42 100644 --- a/src/pybind/mgr/dashboard/frontend/src/tsconfig.spec.json +++ b/src/pybind/mgr/dashboard/frontend/src/tsconfig.spec.json @@ -11,7 +11,8 @@ ] }, "files": [ - "test.ts" + "test.ts", + "polyfills.ts" ], "include": [ "**/*.spec.ts", -- 2.47.3