[Admin | Trunk]: Update to Angular 11
git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-admin-portal/trunk@61384 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
7673c8d53b
commit
62ce7ee7df
|
@ -0,0 +1,11 @@
|
||||||
|
# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
|
||||||
|
# For additional information regarding the format and rule options, please see:
|
||||||
|
# https://github.com/browserslist/browserslist#queries
|
||||||
|
#
|
||||||
|
# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed
|
||||||
|
|
||||||
|
> 0.5%
|
||||||
|
last 2 versions
|
||||||
|
Firefox ESR
|
||||||
|
not dead
|
||||||
|
not IE 9-11
|
21
LICENSE
21
LICENSE
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2017 Stefanos Gatsios
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
25
README.md
25
README.md
|
@ -1,18 +1,24 @@
|
||||||
# AdminPortal
|
# Connect Admin
|
||||||
|
|
||||||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.3.0.
|
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.3.10 and has been updated to 11.2.14.
|
||||||
|
|
||||||
|
## Install packages
|
||||||
|
|
||||||
|
Run npm install (maybe needs sudo), a script that will delete unused files from library will be run.
|
||||||
|
|
||||||
## Development server
|
## Development server
|
||||||
|
|
||||||
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
Run `npm start` for a dev server. Navigate to `http://localhost:5000`. The app will automatically reload if you change any of the source files.
|
||||||
|
|
||||||
## Code scaffolding
|
## Build - CSR
|
||||||
|
|
||||||
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
Use the `npm run build-dev` for a development build.<br>
|
||||||
|
Use the `npm run build-beta` for a beta build.<br>
|
||||||
|
Use the `npm run build-prod` for a production build.
|
||||||
|
|
||||||
## Build
|
## Webpack Analyzer
|
||||||
|
|
||||||
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
|
In order to analyze bundle size you can run `npm run webpack-bundle-analyzer`
|
||||||
|
|
||||||
## Running unit tests
|
## Running unit tests
|
||||||
|
|
||||||
|
@ -21,8 +27,3 @@ Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.
|
||||||
## Running end-to-end tests
|
## Running end-to-end tests
|
||||||
|
|
||||||
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
||||||
Before running the tests make sure you are serving the app via `ng serve`.
|
|
||||||
|
|
||||||
## Further help
|
|
||||||
|
|
||||||
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
|
||||||
|
|
14
README.txt
14
README.txt
|
@ -1,14 +0,0 @@
|
||||||
*******Useful project infrmation***********
|
|
||||||
Project has 2 external folders. Check them using
|
|
||||||
svn propget svn:externals ./
|
|
||||||
|
|
||||||
Above command should show the following:
|
|
||||||
./src/app/openaireLibrary https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app
|
|
||||||
./src/assets/common-assets https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/assets
|
|
||||||
|
|
||||||
After initial checkout, you may have to exlude ./src/app/openaireLibrary/app.* files in order the project to run properly.
|
|
||||||
Exclude the files from your local copy, but keep them in the repository.
|
|
||||||
|
|
||||||
Use the following command, to exclude the files:
|
|
||||||
cd ./src/app/openaireLibrary
|
|
||||||
svn update --set-depth exclude ./app.*
|
|
153
angular.json
153
angular.json
|
@ -1,71 +1,134 @@
|
||||||
{
|
{
|
||||||
"$schema": "./node_modules/@angular-devkit/core/src/workspace/workspace-schema.json",
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"newProjectRoot": "projects",
|
"newProjectRoot": "projects",
|
||||||
"projects": {
|
"projects": {
|
||||||
"admin-portal": {
|
"connect-admin": {
|
||||||
"root": "",
|
"root": "",
|
||||||
"sourceRoot": "src",
|
"sourceRoot": "src",
|
||||||
"projectType": "application",
|
"projectType": "application",
|
||||||
|
"prefix": "app",
|
||||||
|
"schematics": {
|
||||||
|
"@schematics/angular:class": {
|
||||||
|
"skipTests": true
|
||||||
|
},
|
||||||
|
"@schematics/angular:component": {
|
||||||
|
"skipTests": true
|
||||||
|
},
|
||||||
|
"@schematics/angular:directive": {
|
||||||
|
"skipTests": true
|
||||||
|
},
|
||||||
|
"@schematics/angular:guard": {
|
||||||
|
"skipTests": true
|
||||||
|
},
|
||||||
|
"@schematics/angular:module": {
|
||||||
|
"skipTests": true
|
||||||
|
},
|
||||||
|
"@schematics/angular:pipe": {
|
||||||
|
"skipTests": true
|
||||||
|
},
|
||||||
|
"@schematics/angular:service": {
|
||||||
|
"skipTests": true
|
||||||
|
}
|
||||||
|
},
|
||||||
"architect": {
|
"architect": {
|
||||||
"build": {
|
"build": {
|
||||||
"builder": "@angular-devkit/build-angular:browser",
|
"builder": "@angular-devkit/build-angular:browser",
|
||||||
"options": {
|
"options": {
|
||||||
"outputPath": "dist",
|
"aot": true,
|
||||||
|
"outputPath": "dist/connect-admin",
|
||||||
"index": "src/index.html",
|
"index": "src/index.html",
|
||||||
"main": "src/main.ts",
|
"main": "src/main.ts",
|
||||||
"tsConfig": "src/tsconfig.app.json",
|
|
||||||
"polyfills": "src/polyfills.ts",
|
"polyfills": "src/polyfills.ts",
|
||||||
|
"tsConfig": "src/tsconfig.app.json",
|
||||||
"assets": [
|
"assets": [
|
||||||
"src/assets",
|
"src/assets",
|
||||||
"src/robots.txt"
|
"src/robots.txt"
|
||||||
],
|
],
|
||||||
"styles": [
|
"styles": [
|
||||||
"src/material.scss",
|
"src/material.scss",
|
||||||
"node_modules/datatables.net-dt/css/jquery.dataTables.css",
|
"src/mining.scss",
|
||||||
"node_modules/interactiveminingv3/assets/css/interactive-mining.css",
|
|
||||||
"node_modules/interactiveminingv3/assets/css/animations.css",
|
|
||||||
"src/styles.css"
|
"src/styles.css"
|
||||||
],
|
],
|
||||||
"scripts": [
|
"scripts": [
|
||||||
"node_modules/jquery/dist/jquery.js",
|
"node_modules/jquery/dist/jquery.js",
|
||||||
"node_modules/datatables.net/js/jquery.dataTables.js",
|
|
||||||
"node_modules/interactiveminingv3/assets/js/ResizeSensor.js",
|
"node_modules/interactiveminingv3/assets/js/ResizeSensor.js",
|
||||||
"node_modules/interactiveminingv3/assets/js/jquery.sticky-sidebar.js"
|
"node_modules/interactiveminingv3/assets/js/jquery.sticky-sidebar.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"production": {
|
"development": {
|
||||||
"optimization": true,
|
"optimization": true,
|
||||||
"outputHashing": "all",
|
"outputHashing": "all",
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"extractCss": true,
|
|
||||||
"namedChunks": false,
|
"namedChunks": false,
|
||||||
"aot": true,
|
"aot": true,
|
||||||
"extractLicenses": true,
|
"extractLicenses": true,
|
||||||
"vendorChunk": false,
|
"vendorChunk": false,
|
||||||
"buildOptimizer": true,
|
"buildOptimizer": true,
|
||||||
|
"budgets": [
|
||||||
|
{
|
||||||
|
"type": "initial",
|
||||||
|
"maximumWarning": "2mb",
|
||||||
|
"maximumError": "5mb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "anyComponentStyle",
|
||||||
|
"maximumWarning": "6kb"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"beta": {
|
||||||
|
"fileReplacements": [
|
||||||
|
{
|
||||||
|
"replace": "src/environments/environment.ts",
|
||||||
|
"with": "src/environments/environment.beta.ts"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"optimization": true,
|
||||||
|
"outputHashing": "all",
|
||||||
|
"sourceMap": false,
|
||||||
|
"namedChunks": false,
|
||||||
|
"aot": true,
|
||||||
|
"extractLicenses": true,
|
||||||
|
"vendorChunk": false,
|
||||||
|
"buildOptimizer": true,
|
||||||
|
"budgets": [
|
||||||
|
{
|
||||||
|
"type": "initial",
|
||||||
|
"maximumWarning": "2mb",
|
||||||
|
"maximumError": "5mb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "anyComponentStyle",
|
||||||
|
"maximumWarning": "6kb"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"production": {
|
||||||
"fileReplacements": [
|
"fileReplacements": [
|
||||||
{
|
{
|
||||||
"replace": "src/environments/environment.ts",
|
"replace": "src/environments/environment.ts",
|
||||||
"with": "src/environments/environment.prod.ts"
|
"with": "src/environments/environment.prod.ts"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
},
|
|
||||||
"beta": {
|
|
||||||
"optimization": true,
|
"optimization": true,
|
||||||
"outputHashing": "all",
|
"outputHashing": "all",
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"extractCss": true,
|
|
||||||
"namedChunks": false,
|
"namedChunks": false,
|
||||||
"aot": true,
|
"aot": true,
|
||||||
"extractLicenses": true,
|
"extractLicenses": true,
|
||||||
"vendorChunk": false,
|
"vendorChunk": false,
|
||||||
"buildOptimizer": true,
|
"buildOptimizer": true,
|
||||||
"fileReplacements": [
|
"budgets": [
|
||||||
{
|
{
|
||||||
"replace": "src/environments/environment.ts",
|
"type": "initial",
|
||||||
"with": "src/environments/environment.beta.ts"
|
"maximumWarning": "2mb",
|
||||||
|
"maximumError": "5mb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "anyComponentStyle",
|
||||||
|
"maximumWarning": "6kb"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -74,45 +137,33 @@
|
||||||
"serve": {
|
"serve": {
|
||||||
"builder": "@angular-devkit/build-angular:dev-server",
|
"builder": "@angular-devkit/build-angular:dev-server",
|
||||||
"options": {
|
"options": {
|
||||||
"browserTarget": "admin-portal:build"
|
"browserTarget": "connect-admin:build"
|
||||||
},
|
},
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"production": {
|
"production": {
|
||||||
"browserTarget": "admin-portal:build:production"
|
"browserTarget": "connect-admin:build:production"
|
||||||
},
|
|
||||||
"beta": {
|
|
||||||
"browserTarget": "admin-portal:build:beta"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"extract-i18n": {
|
"extract-i18n": {
|
||||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||||
"options": {
|
"options": {
|
||||||
"browserTarget": "admin-portal:build"
|
"browserTarget": "connect-admin:build"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"builder": "@angular-devkit/build-angular:karma",
|
"builder": "@angular-devkit/build-angular:karma",
|
||||||
"options": {
|
"options": {
|
||||||
"main": "src/test.ts",
|
"main": "src/test.ts",
|
||||||
"karmaConfig": "./karma.conf.js",
|
|
||||||
"polyfills": "src/polyfills.ts",
|
"polyfills": "src/polyfills.ts",
|
||||||
"tsConfig": "src/tsconfig.spec.json",
|
"tsConfig": "src/tsconfig.spec.json",
|
||||||
"scripts": [
|
"karmaConfig": "src/karma.conf.js",
|
||||||
"node_modules/jquery/dist/jquery.js",
|
|
||||||
"node_modules/datatables.net/js/jquery.dataTables.js",
|
|
||||||
"node_modules/interactiveminingv3/assets/js/ResizeSensor.js",
|
|
||||||
"node_modules/interactiveminingv3/assets/js/jquery.sticky-sidebar.js"
|
|
||||||
],
|
|
||||||
"styles": [
|
"styles": [
|
||||||
"src/styles.css",
|
"src/styles.css"
|
||||||
"node_modules/datatables.net-dt/css/jquery.dataTables.css",
|
|
||||||
"node_modules/interactiveminingv3/assets/css/interactive-mining.css",
|
|
||||||
"node_modules/interactiveminingv3/assets/css/animations.css"
|
|
||||||
],
|
],
|
||||||
|
"scripts": [],
|
||||||
"assets": [
|
"assets": [
|
||||||
"src/assets",
|
"src/assets"
|
||||||
"src/robots.txt"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -130,24 +181,27 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"admin-portal-e2e": {
|
"connect-admin-e2e": {
|
||||||
"root": "e2e",
|
"root": "e2e/",
|
||||||
"sourceRoot": "e2e",
|
|
||||||
"projectType": "application",
|
"projectType": "application",
|
||||||
|
"prefix": "",
|
||||||
"architect": {
|
"architect": {
|
||||||
"e2e": {
|
"e2e": {
|
||||||
"builder": "@angular-devkit/build-angular:protractor",
|
"builder": "@angular-devkit/build-angular:protractor",
|
||||||
"options": {
|
"options": {
|
||||||
"protractorConfig": "./protractor.conf.js",
|
"protractorConfig": "e2e/protractor.conf.js",
|
||||||
"devServerTarget": "admin-portal:serve"
|
"devServerTarget": "connect-admin:serve"
|
||||||
|
},
|
||||||
|
"configurations": {
|
||||||
|
"production": {
|
||||||
|
"devServerTarget": "connect-admin:serve:production"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lint": {
|
"lint": {
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
"builder": "@angular-devkit/build-angular:tslint",
|
||||||
"options": {
|
"options": {
|
||||||
"tsConfig": [
|
"tsConfig": "e2e/tsconfig.e2e.json",
|
||||||
"e2e/tsconfig.e2e.json"
|
|
||||||
],
|
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"**/node_modules/**"
|
"**/node_modules/**"
|
||||||
]
|
]
|
||||||
|
@ -156,14 +210,5 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"defaultProject": "admin-portal",
|
"defaultProject": "connect-admin"
|
||||||
"schematics": {
|
|
||||||
"@schematics/angular:component": {
|
|
||||||
"prefix": "app",
|
|
||||||
"styleext": "css"
|
|
||||||
},
|
|
||||||
"@schematics/angular:directive": {
|
|
||||||
"prefix": "app"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
cd src/app/openaireLibrary
|
||||||
|
cd ../../../
|
||||||
|
echo "Done"
|
|
@ -1,14 +0,0 @@
|
||||||
import { AppPage } from './app.po';
|
|
||||||
|
|
||||||
describe('admin-portal App', () => {
|
|
||||||
let page: AppPage;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
page = new AppPage();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should display welcome message', () => {
|
|
||||||
page.navigateTo();
|
|
||||||
expect(page.getParagraphText()).toEqual('Welcome to app!');
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -1,11 +0,0 @@
|
||||||
import { browser, by, element } from 'protractor';
|
|
||||||
|
|
||||||
export class AppPage {
|
|
||||||
navigateTo() {
|
|
||||||
return browser.get('/');
|
|
||||||
}
|
|
||||||
|
|
||||||
getParagraphText() {
|
|
||||||
return element(by.css('app-root h1')).getText();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -6,7 +6,7 @@ const { SpecReporter } = require('jasmine-spec-reporter');
|
||||||
exports.config = {
|
exports.config = {
|
||||||
allScriptsTimeout: 11000,
|
allScriptsTimeout: 11000,
|
||||||
specs: [
|
specs: [
|
||||||
'./e2e/**/*.e2e-spec.ts'
|
'./src/**/*.e2e-spec.ts'
|
||||||
],
|
],
|
||||||
capabilities: {
|
capabilities: {
|
||||||
'browserName': 'chrome'
|
'browserName': 'chrome'
|
||||||
|
@ -21,7 +21,7 @@ exports.config = {
|
||||||
},
|
},
|
||||||
onPrepare() {
|
onPrepare() {
|
||||||
require('ts-node').register({
|
require('ts-node').register({
|
||||||
project: 'e2e/tsconfig.e2e.json'
|
project: require('path').join(__dirname, './tsconfig.e2e.json')
|
||||||
});
|
});
|
||||||
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
|
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
|
||||||
}
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { AppPage } from './app.po';
|
||||||
|
import { browser, logging } from 'protractor';
|
||||||
|
|
||||||
|
describe('workspace-project App', () => {
|
||||||
|
let page: AppPage;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
page = new AppPage();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should display welcome message', () => {
|
||||||
|
page.navigateTo();
|
||||||
|
expect(page.getTitleText()).toEqual('Welcome to connect-admin!');
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async () => {
|
||||||
|
// Assert that there are no errors emitted from the browser
|
||||||
|
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
|
||||||
|
expect(logs).not.toContain(jasmine.objectContaining({
|
||||||
|
level: logging.Level.SEVERE,
|
||||||
|
} as logging.Entry));
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,11 @@
|
||||||
|
import { browser, by, element } from 'protractor';
|
||||||
|
|
||||||
|
export class AppPage {
|
||||||
|
navigateTo() {
|
||||||
|
return browser.get(browser.baseUrl) as Promise<any>;
|
||||||
|
}
|
||||||
|
|
||||||
|
getTitleText() {
|
||||||
|
return element(by.css('app-root h1')).getText() as Promise<string>;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,7 @@
|
||||||
{
|
{
|
||||||
"extends": "../tsconfig.json",
|
"extends": "../tsconfig.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "../out-tsc/e2e",
|
"outDir": "../out-tsc/app",
|
||||||
"baseUrl": "./",
|
|
||||||
"module": "commonjs",
|
"module": "commonjs",
|
||||||
"target": "es5",
|
"target": "es5",
|
||||||
"types": [
|
"types": [
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
rm -f interactiveminingv3.tgz
|
rm -f interactiveminingv3.tgz
|
||||||
git clone https://github.com/tasosgig/interactive-mining.git
|
git clone https://github.com/tasosgig/interactive-mining.git
|
||||||
cd interactive-mining/
|
cd interactive-mining/
|
||||||
git checkout angular7
|
git checkout angular11
|
||||||
cd interactive-mining-angular-frontend/
|
cd interactive-mining-angular-frontend/
|
||||||
npm install
|
npm install
|
||||||
npm run packagr
|
npm run packagr
|
||||||
|
|
Binary file not shown.
103
package.json
103
package.json
|
@ -1,76 +1,65 @@
|
||||||
{
|
{
|
||||||
"name": "admin-portal",
|
"name": "connect-admin",
|
||||||
"version": "0.0.0",
|
"version": "1.0.0",
|
||||||
"license": "MIT",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
"clean-install": "rm -rf node_modules; npm install; npm run mining",
|
|
||||||
"mining": "./interactivemining-install.sh",
|
|
||||||
"start": "ng serve --host 0.0.0.0 --disable-host-check --port=5000",
|
"start": "ng serve --host 0.0.0.0 --disable-host-check --port=5000",
|
||||||
"build": "ng build --prod; npm run after-build-clean",
|
"build": "ng build",
|
||||||
"build-beta": "ng build --configuration=beta; npm run after-build-clean",
|
"build-dev": "ng build --configuration=development",
|
||||||
|
"build-beta": "ng build --configuration=beta",
|
||||||
|
"build-prod": "ng build --prod",
|
||||||
|
"webpack-bundle-analyzer": "ng build --stats-json && webpack-bundle-analyzer dist/monitor-dashboard/browser/stats.json --host 0.0.0.0",
|
||||||
"test": "ng test",
|
"test": "ng test",
|
||||||
"lint": "ng lint",
|
|
||||||
"e2e": "ng e2e",
|
"e2e": "ng e2e",
|
||||||
"after-build-clean": "rm -rf dist/assets/common-assets/.svn/ dist/assets/connect-assets/.svn/ dist/assets/dashboard-theme/.svn/"
|
"mining": "chmod +x interactivemining-install.sh && ./interactivemining-install.sh",
|
||||||
|
"postinstall": "chmod +x clean-library.sh && ./clean-library.sh && npm run mining",
|
||||||
|
"after-build-clean": "rm -rf dist/connect-admin/assets/common-assets/.svn/ dist/connect-admin/assets/dashboard-theme/.svn/"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "7.2.14",
|
"@angular/animations": "~11.2.14",
|
||||||
"@angular/cdk": "^7.3.7",
|
"@angular/cdk": "^11.2.13",
|
||||||
"@angular/common": "7.2.14",
|
"@angular/common": "~11.2.14",
|
||||||
"@angular/compiler": "7.2.14",
|
"@angular/compiler": "~11.2.14",
|
||||||
"@angular/core": "7.2.14",
|
"@angular/core": "~11.2.14",
|
||||||
"@angular/forms": "7.2.14",
|
"@angular/forms": "~11.2.14",
|
||||||
"@angular/http": "7.2.14",
|
"@angular/localize": "^11.2.14",
|
||||||
"@angular/material": "^7.3.7",
|
"@angular/material": "^11.2.13",
|
||||||
"@angular/platform-browser": "7.2.14",
|
"@angular/platform-browser": "~11.2.14",
|
||||||
"@angular/platform-browser-dynamic": "7.2.14",
|
"@angular/platform-browser-dynamic": "~11.2.14",
|
||||||
"@angular/router": "7.2.14",
|
"@angular/router": "~11.2.14",
|
||||||
"@nguniversal/express-engine": "^6.0.0",
|
|
||||||
"@types/express": "^4.16.1",
|
|
||||||
"angular-datatables": "^4.4.1",
|
|
||||||
"citation-js": "^0.3.4",
|
|
||||||
"ng2-ckeditor": "1.1.9",
|
|
||||||
"clipboard": "^1.5.16",
|
"clipboard": "^1.5.16",
|
||||||
"core-js": "2.6.8",
|
"core-js": "^2.5.4",
|
||||||
"datatables.net": "^1.10.19",
|
"express": "^4.15.2",
|
||||||
"datatables.net-dt": "^1.10.19",
|
|
||||||
"interactiveminingv3": "file:interactiveminingv3.tgz",
|
|
||||||
"jquery": "^3.4.1",
|
"jquery": "^3.4.1",
|
||||||
"ng-recaptcha": "^3.0.5",
|
"ng-recaptcha": "^7.0.1",
|
||||||
"ngx-bootstrap": "^1.6.6",
|
"ng2-ckeditor": "1.3.1",
|
||||||
"ngx-color-picker": "^8.1.0",
|
"ngx-color-picker": "^8.1.0",
|
||||||
"ngx-json-ld": "0.1.6",
|
"rxjs": "^6.5.1",
|
||||||
"ts-md5": "^1.2.0",
|
"ts-md5": "^1.2.0",
|
||||||
"tslib": "^1.9.0",
|
"tslib": "^2.0.0",
|
||||||
"zone.js": "0.8.29"
|
"zone.js": "~0.10.2",
|
||||||
|
"sass-loader": "7.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "~0.13.0",
|
"@angular-devkit/build-angular": "~0.1102.14",
|
||||||
"@angular/cli": "7.3.9",
|
"@angular/cli": "~11.2.14",
|
||||||
"@angular/compiler-cli": "7.2.14",
|
"@angular/compiler-cli": "~11.2.14",
|
||||||
"@angular/language-service": "7.2.14",
|
"@angular/language-service": "~11.2.14",
|
||||||
"@types/datatables.net": "^1.10.17",
|
"@types/express": "^4.17.0",
|
||||||
"@types/jasmine": "~2.8.8",
|
"@types/node": "^12.11.1",
|
||||||
|
"@types/jasmine": "~3.6.0",
|
||||||
"@types/jasminewd2": "~2.0.3",
|
"@types/jasminewd2": "~2.0.3",
|
||||||
"@types/jquery": "^3.3.29",
|
"codelyzer": "^6.0.0",
|
||||||
"@types/node": "^8.0.30",
|
"jasmine-core": "~3.8.0",
|
||||||
"codelyzer": "~4.5.0",
|
"jasmine-spec-reporter": "~5.0.0",
|
||||||
"jasmine-core": "~2.99.1",
|
"karma": "~6.3.4",
|
||||||
"jasmine-spec-reporter": "~4.2.1",
|
"karma-chrome-launcher": "~3.1.0",
|
||||||
"karma": "~3.0.0",
|
"karma-coverage-istanbul-reporter": "~3.0.2",
|
||||||
"karma-chrome-launcher": "~2.1.1",
|
"karma-jasmine": "~4.0.0",
|
||||||
"karma-cli": "~1.0.1",
|
"karma-jasmine-html-reporter": "^1.6.0",
|
||||||
"karma-coverage-istanbul-reporter": "~2.0.1",
|
"protractor": "~7.0.0",
|
||||||
"karma-jasmine": "~1.1.2",
|
|
||||||
"karma-jasmine-html-reporter": "^0.2.2",
|
|
||||||
"protractor": "~5.4.0",
|
|
||||||
"ts-node": "~7.0.0",
|
"ts-node": "~7.0.0",
|
||||||
"tslint": "^5.7.0",
|
"typescript": "~4.0.7"
|
||||||
"typescript": "3.2.4",
|
|
||||||
"rxjs": "6.5.1",
|
|
||||||
"rxjs-compat": "^6.5.1",
|
|
||||||
"rxjs-tslint": "^0.1.7"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {ChangeDetectorRef, Component, HostListener, OnInit} from '@angular/core';
|
import {ChangeDetectorRef, Component, HostListener, OnInit} from '@angular/core';
|
||||||
import {MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu';
|
import {MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu';
|
||||||
import {ActivatedRoute, NavigationEnd, Params, Router} from '@angular/router';
|
import {ActivatedRoute, Data, NavigationEnd, Params, Router} from '@angular/router';
|
||||||
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
|
import {EnvProperties} from './openaireLibrary/utils/properties/env-properties';
|
||||||
import {Session, User} from './openaireLibrary/login/utils/helper.class';
|
import {Session, User} from './openaireLibrary/login/utils/helper.class';
|
||||||
import {UserManagementService} from './openaireLibrary/services/user-management.service';
|
import {UserManagementService} from './openaireLibrary/services/user-management.service';
|
||||||
|
@ -12,6 +12,8 @@ import {CommunityInfo} from "./openaireLibrary/connect/community/communityInfo";
|
||||||
import {CommunityService} from "./openaireLibrary/connect/community/community.service";
|
import {CommunityService} from "./openaireLibrary/connect/community/community.service";
|
||||||
import {arrow_left} from "./openaireLibrary/utils/icons/icons";
|
import {arrow_left} from "./openaireLibrary/utils/icons/icons";
|
||||||
import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
|
import {SmoothScroll} from "./openaireLibrary/utils/smooth-scroll";
|
||||||
|
import {ConnectHelper} from './openaireLibrary/connect/connectHelper';
|
||||||
|
import {ConfigurationService} from './openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-root',
|
selector: 'app-root',
|
||||||
|
@ -22,6 +24,7 @@ export class AppComponent implements OnInit {
|
||||||
properties: EnvProperties = properties;
|
properties: EnvProperties = properties;
|
||||||
user: User;
|
user: User;
|
||||||
params: BehaviorSubject<Params> = new BehaviorSubject<Params>(null);
|
params: BehaviorSubject<Params> = new BehaviorSubject<Params>(null);
|
||||||
|
data: BehaviorSubject<Data> = new BehaviorSubject<Data>(null);
|
||||||
hasSidebar: boolean = false;
|
hasSidebar: boolean = false;
|
||||||
hasHeader: boolean = false;
|
hasHeader: boolean = false;
|
||||||
hasAdminMenu: boolean = false;
|
hasAdminMenu: boolean = false;
|
||||||
|
@ -55,17 +58,17 @@ export class AppComponent implements OnInit {
|
||||||
private cdr: ChangeDetectorRef,
|
private cdr: ChangeDetectorRef,
|
||||||
private smoothScroll: SmoothScroll,
|
private smoothScroll: SmoothScroll,
|
||||||
private layoutService: LayoutService,
|
private layoutService: LayoutService,
|
||||||
private userManagementService: UserManagementService) {
|
private userManagementService: UserManagementService,
|
||||||
|
private configurationService: ConfigurationService) {
|
||||||
this.subscriptions.push(this.router.events.subscribe(event => {
|
this.subscriptions.push(this.router.events.subscribe(event => {
|
||||||
if (event instanceof NavigationEnd) {
|
if (event instanceof NavigationEnd) {
|
||||||
let r = this.route;
|
let r = this.route;
|
||||||
let params = r.snapshot.params;
|
while (r.firstChild) {
|
||||||
while (r.firstChild && !params['community']) {
|
|
||||||
r = r.firstChild;
|
r = r.firstChild;
|
||||||
params = r.snapshot.params
|
|
||||||
}
|
}
|
||||||
this.paramsResolved = true;
|
this.paramsResolved = true;
|
||||||
this.params.next(params);
|
this.params.next(r.snapshot.params);
|
||||||
|
this.data.next(r.snapshot.data);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
@ -104,6 +107,7 @@ export class AppComponent implements OnInit {
|
||||||
this.subscriptions.push(this.communityService.getCommunity(params['community']).subscribe(community => {
|
this.subscriptions.push(this.communityService.getCommunity(params['community']).subscribe(community => {
|
||||||
if (community) {
|
if (community) {
|
||||||
this.community = community;
|
this.community = community;
|
||||||
|
this.setProperties(community.communityId);
|
||||||
this.buildMenu();
|
this.buildMenu();
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
} else {
|
} else {
|
||||||
|
@ -125,6 +129,12 @@ export class AppComponent implements OnInit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
this.subscriptions.push(this.data.subscribe(data => {
|
||||||
|
if(data && data.portal) {
|
||||||
|
this.setProperties(data.portal);
|
||||||
|
this.configurationService.initCommunityInformation(this.properties, this.properties.adminToolsCommunity);
|
||||||
|
}
|
||||||
|
}));
|
||||||
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
|
this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => {
|
||||||
this.user = user;
|
this.user = user;
|
||||||
if (this.user) {
|
if (this.user) {
|
||||||
|
@ -158,6 +168,16 @@ export class AppComponent implements OnInit {
|
||||||
this.smoothScroll.clearSubscriptions();
|
this.smoothScroll.clearSubscriptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setProperties(id, type = null){
|
||||||
|
this.properties.adminToolsCommunity = id;
|
||||||
|
if(type) {
|
||||||
|
this.properties.adminToolsPortalType = type;
|
||||||
|
} else {
|
||||||
|
ConnectHelper.setPortalTypeFromPid(id);
|
||||||
|
}
|
||||||
|
this.configurationService.initCommunityInformation(this.properties, this.properties.adminToolsCommunity);
|
||||||
|
}
|
||||||
|
|
||||||
public get open() {
|
public get open() {
|
||||||
return this.layoutService.open;
|
return this.layoutService.open;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ import {IsCommunity} from './openaireLibrary/connect/communityGuard/isCommunity.
|
||||||
import {AdminErrorPageComponent} from './pages/error/errorPage.component';
|
import {AdminErrorPageComponent} from './pages/error/errorPage.component';
|
||||||
import {ErrorModule} from './openaireLibrary/error/error.module';
|
import {ErrorModule} from './openaireLibrary/error/error.module';
|
||||||
import {TitleCasePipe} from '@angular/common';
|
import {TitleCasePipe} from '@angular/common';
|
||||||
import {InteractiveMiningModule} from 'interactiveminingv3';
|
|
||||||
import {CommunityService} from './openaireLibrary/connect/community/community.service';
|
import {CommunityService} from './openaireLibrary/connect/community/community.service';
|
||||||
import {SubscribeService} from './openaireLibrary/utils/subscribe/subscribe.service';
|
import {SubscribeService} from './openaireLibrary/utils/subscribe/subscribe.service';
|
||||||
import {ConnectRIGuard} from './openaireLibrary/connect/communityGuard/connectRIGuard.guard';
|
import {ConnectRIGuard} from './openaireLibrary/connect/communityGuard/connectRIGuard.guard';
|
||||||
|
@ -23,6 +22,7 @@ import {ErrorInterceptorService} from "./openaireLibrary/error-interceptor.servi
|
||||||
import {DEFAULT_TIMEOUT, TimeoutInterceptor} from "./openaireLibrary/timeout-interceptor.service";
|
import {DEFAULT_TIMEOUT, TimeoutInterceptor} from "./openaireLibrary/timeout-interceptor.service";
|
||||||
import {AdminLoginGuard} from "./openaireLibrary/login/adminLoginGuard.guard";
|
import {AdminLoginGuard} from "./openaireLibrary/login/adminLoginGuard.guard";
|
||||||
import {LoginGuard} from "./openaireLibrary/login/loginGuard.guard";
|
import {LoginGuard} from "./openaireLibrary/login/loginGuard.guard";
|
||||||
|
import {InteractiveMiningModule} from 'interactiveminingv3';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
|
|
|
@ -9,17 +9,17 @@ import {LoginGuard} from "./openaireLibrary/login/loginGuard.guard";
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
loadChildren: './pages/manage-communities/manage-communities.module#ManageCommunitiesModule',
|
loadChildren: () => import('./pages/manage-communities/manage-communities.module').then(m => m.ManageCommunitiesModule),
|
||||||
canActivateChild: [LoginGuard]
|
canActivateChild: [LoginGuard]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'reload',
|
path: 'reload',
|
||||||
loadChildren: './reload/libReload.module#LibReloadModule',
|
loadChildren: () => import('./reload/libReload.module').then(m => m.LibReloadModule),
|
||||||
data: {hasSidebar: false, hasHeader: false}
|
data: {hasSidebar: false, hasHeader: false}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'user-info',
|
path: 'user-info',
|
||||||
loadChildren: './login/libUser.module#LibUserModule',
|
loadChildren: () => import('./login/libUser.module').then(m => m.LibUserModule),
|
||||||
data: {hasSidebar: false}
|
data: {hasSidebar: false}
|
||||||
},
|
},
|
||||||
{ path: 'error',
|
{ path: 'error',
|
||||||
|
@ -29,19 +29,19 @@ const routes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'connect/admin-tools',
|
path: 'connect/admin-tools',
|
||||||
loadChildren: './pages/admin-tools/admin-tools-routing.module#AdminToolsRoutingModule',
|
loadChildren: () => import('./pages/admin-tools/admin-tools-routing.module').then(m => m.AdminToolsRoutingModule),
|
||||||
canActivateChild: [AdminLoginGuard],
|
canActivateChild: [AdminLoginGuard],
|
||||||
data: {portal: 'connect'}
|
data: {portal: 'connect'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'openaire/admin-tools',
|
path: 'openaire/admin-tools',
|
||||||
loadChildren: './pages/admin-tools/admin-tools-routing.module#AdminToolsRoutingModule',
|
loadChildren: () => import('./pages/admin-tools/admin-tools-routing.module').then(m => m.AdminToolsRoutingModule),
|
||||||
canActivateChild: [AdminLoginGuard],
|
canActivateChild: [AdminLoginGuard],
|
||||||
data: {portal: 'openaire'}
|
data: {portal: 'openaire'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'admin-tools',
|
path: 'admin-tools',
|
||||||
loadChildren: './pages/admin-tools/portal-admin-tools-routing.module#PortalAdminToolsRoutingModule',
|
loadChildren: () => import('./pages/admin-tools/portal-admin-tools-routing.module').then(m => m.PortalAdminToolsRoutingModule),
|
||||||
canActivateChild: [AdminLoginGuard]
|
canActivateChild: [AdminLoginGuard]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -49,7 +49,7 @@ const routes: Routes = [
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ':community',
|
path: ':community',
|
||||||
loadChildren: './pages/community-routing.module#CommunityRoutingModule',
|
loadChildren: () => import('./pages/community-routing.module').then(m => m.CommunityRoutingModule),
|
||||||
canActivateChild: [IsCommunity, ConnectAdminLoginGuard]
|
canActivateChild: [IsCommunity, ConnectAdminLoginGuard]
|
||||||
},
|
},
|
||||||
{ path: '**',
|
{ path: '**',
|
||||||
|
@ -62,8 +62,7 @@ const routes: Routes = [
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [RouterModule.forRoot(routes, {
|
imports: [RouterModule.forRoot(routes, {
|
||||||
preloadingStrategy: PreloadAllModules,
|
preloadingStrategy: PreloadAllModules,
|
||||||
onSameUrlNavigation: "reload",
|
onSameUrlNavigation: "reload"
|
||||||
relativeLinkResolution: 'corrected'
|
|
||||||
})],
|
})],
|
||||||
exports: [ RouterModule ]
|
exports: [ RouterModule ]
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
/**
|
|
||||||
* Created by stefania on 10/3/16.
|
|
||||||
*/
|
|
||||||
import './polyfills.ts';
|
|
||||||
//import './vendors.ts';
|
|
||||||
|
|
||||||
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
||||||
import { AppModule } from './app.module';
|
|
||||||
import {enableProdMode} from "@angular/core";
|
|
||||||
|
|
||||||
const platform = platformBrowserDynamic();
|
|
||||||
if(process.env.PRODUCTION) {enableProdMode();}
|
|
||||||
platform.bootstrapModule(AppModule);
|
|
|
@ -6,32 +6,32 @@ import {RouterModule} from '@angular/router';
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{
|
{
|
||||||
path: 'entities',
|
path: 'entities',
|
||||||
loadChildren: '../../openaireLibrary/dashboard/entity/entities.module#EntitiesModule',
|
loadChildren: () => import('../../openaireLibrary/dashboard/entity/entities.module').then(m => m.EntitiesModule),
|
||||||
pathMatch: 'full'
|
pathMatch: 'full'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'classContents',
|
path: 'classContents',
|
||||||
loadChildren: '../../openaireLibrary/dashboard/divhelpcontent/class-help-contents.module#ClassHelpContentsModule',
|
loadChildren: () => import('../../openaireLibrary/dashboard/divhelpcontent/class-help-contents.module').then(m => m.ClassHelpContentsModule),
|
||||||
pathMatch: 'full'
|
pathMatch: 'full'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'classContents/edit',
|
path: 'classContents/edit',
|
||||||
loadChildren: '../../openaireLibrary/dashboard/divhelpcontent/class-help-content-form.module#ClassHelpContentFormModule',
|
loadChildren: () => import('../../openaireLibrary/dashboard/divhelpcontent/class-help-content-form.module').then(m => m.ClassHelpContentFormModule),
|
||||||
pathMatch: 'full'
|
pathMatch: 'full'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'helptexts',
|
path: 'helptexts',
|
||||||
loadChildren: '../../openaireLibrary/dashboard/helpTexts/page-help-contents.module#PageHelpContentsModule',
|
loadChildren: () => import('../../openaireLibrary/dashboard/helpTexts/page-help-contents.module').then(m => m.PageHelpContentsModule),
|
||||||
pathMatch: 'full'
|
pathMatch: 'full'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'helptexts/edit',
|
path: 'helptexts/edit',
|
||||||
loadChildren: '../../openaireLibrary/dashboard/helpTexts/page-help-content-form.module#PageHelpContentFormModule',
|
loadChildren: () => import('../../openaireLibrary/dashboard/helpTexts/page-help-content-form.module').then(m => m.PageHelpContentFormModule),
|
||||||
pathMatch: 'full'
|
pathMatch: 'full'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'pages',
|
path: 'pages',
|
||||||
loadChildren: '../../openaireLibrary/dashboard/page/pages.module#PagesModule',
|
loadChildren: () => import('../../openaireLibrary/dashboard/page/pages.module').then(m => m.PagesModule),
|
||||||
pathMatch: 'full'
|
pathMatch: 'full'
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
|
@ -3,9 +3,9 @@ import {RouterModule} from "@angular/router";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [RouterModule.forChild([
|
imports: [RouterModule.forChild([
|
||||||
{path: '', loadChildren: './admin-tools-routing.module#AdminToolsRoutingModule'},
|
{path: '', loadChildren: () => import('./admin-tools-routing.module').then(m => m.AdminToolsRoutingModule)},
|
||||||
{path: 'portals', loadChildren: '../../openaireLibrary/dashboard/portal/portals.module#PortalsModule'},
|
{path: 'portals', loadChildren: () => import('../../openaireLibrary/dashboard/portal/portals.module').then(m => m.PortalsModule)},
|
||||||
{path: 'classes', loadChildren: '../../openaireLibrary/dashboard/divId/divIds.module#DivIdsModule'}
|
{path: 'classes', loadChildren: () => import('../../openaireLibrary/dashboard/divId/divIds.module').then(m => m.DivIdsModule)}
|
||||||
])]
|
])]
|
||||||
})
|
})
|
||||||
export class PortalAdminToolsRoutingModule {
|
export class PortalAdminToolsRoutingModule {
|
||||||
|
|
|
@ -6,13 +6,13 @@ import {ConnectCommunityGuard} from "../../openaireLibrary/connect/communityGuar
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{path: '', redirectTo: 'profile', pathMatch: 'full'},
|
{path: '', redirectTo: 'profile', pathMatch: 'full'},
|
||||||
{path: 'profile', loadChildren: './profile/profile.module#ProfileModule'},
|
{path: 'profile', loadChildren: () => import('./profile/profile.module').then(m => m.ProfileModule)},
|
||||||
{path: 'organizations', loadChildren: '../affiliations/affiliations.module#AffiliationsModule'},
|
{path: 'organizations', loadChildren: () => import('../affiliations/affiliations.module').then(m => m.AffiliationsModule)},
|
||||||
{path: 'projects', loadChildren: '../projects/communityProjects.module#CommunityProjectsModule'},
|
{path: 'projects', loadChildren: () => import('../projects/communityProjects.module').then(m => m.CommunityProjectsModule)},
|
||||||
{path: 'content-providers', loadChildren: '../content-providers/communityContentProviders.module#CommunityContentProvidersModule'},
|
{path: 'content-providers', loadChildren: () => import('../content-providers/communityContentProviders.module').then(m => m.CommunityContentProvidersModule)},
|
||||||
{path: 'content-providers/:provider', loadChildren: '../content-providers/criteria/criteria.module#CriteriaModule'},
|
{path: 'content-providers/:provider', loadChildren: () => import('../content-providers/criteria/criteria.module').then(m => m.CriteriaModule)},
|
||||||
{path: 'zenodo-communities', loadChildren: '../zenodo-communities/zenodo-communities.module#ZenodoCommunitiesModule'},
|
{path: 'zenodo-communities', loadChildren: () => import('../zenodo-communities/zenodo-communities.module').then(m => m.ZenodoCommunitiesModule)},
|
||||||
{path: 'subjects', canActivateChild: [ConnectCommunityGuard], loadChildren: '../subjects/subjects-edit-form/subjects-edit-form.module#SubjectsEditFormModule'},
|
{path: 'subjects', canActivateChild: [ConnectCommunityGuard], loadChildren: () => import('../subjects/subjects-edit-form/subjects-edit-form.module').then(m => m.SubjectsEditFormModule)},
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
providers: [ConnectCommunityGuard]
|
providers: [ConnectCommunityGuard]
|
||||||
|
|
|
@ -56,7 +56,7 @@ export class ProfileComponent implements OnInit, OnDestroy {
|
||||||
public properties: EnvProperties = properties;
|
public properties: EnvProperties = properties;
|
||||||
public loading: boolean = false;
|
public loading: boolean = false;
|
||||||
private subscriptions: any[] = [];
|
private subscriptions: any[] = [];
|
||||||
@ViewChild('editCommunityComponent') editCommunityComponent: EditCommunityComponent;
|
@ViewChild('editCommunityComponent', { static: true }) editCommunityComponent: EditCommunityComponent;
|
||||||
|
|
||||||
constructor(private communityService: CommunityService,
|
constructor(private communityService: CommunityService,
|
||||||
private title: Title) {
|
private title: Title) {
|
||||||
|
|
|
@ -6,31 +6,31 @@ import {ConnectRIGuard} from "../openaireLibrary/connect/communityGuard/connectR
|
||||||
imports: [RouterModule.forChild([
|
imports: [RouterModule.forChild([
|
||||||
{
|
{
|
||||||
path: 'info',
|
path: 'info',
|
||||||
loadChildren: './community-info/community-info-routing.module#CommunityInfoRoutingModule',
|
loadChildren: () => import('./community-info/community-info-routing.module').then(m => m.CommunityInfoRoutingModule),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'users',
|
path: 'users',
|
||||||
loadChildren: './users/users-routing.module#UsersRoutingModule'
|
loadChildren: () => import('./users/users-routing.module').then(m => m.UsersRoutingModule)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'mining',
|
path: 'mining',
|
||||||
loadChildren: './mining/mining.module#MiningModule',
|
loadChildren: () => import('./mining/mining.module').then(m => m.MiningModule),
|
||||||
canActivateChild: [ConnectRIGuard]
|
canActivateChild: [ConnectRIGuard]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'admin-tools',
|
path: 'admin-tools',
|
||||||
loadChildren: './admin-tools/admin-tools-routing.module#AdminToolsRoutingModule',
|
loadChildren: () => import('./admin-tools/admin-tools-routing.module').then(m => m.AdminToolsRoutingModule),
|
||||||
data: {
|
data: {
|
||||||
param: 'community'
|
param: 'community'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'stats',
|
path: 'stats',
|
||||||
loadChildren: './stats/stats.module#StatsModule'
|
loadChildren: () => import('./stats/stats.module').then(m => m.StatsModule)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'customize-layout',
|
path: 'customize-layout',
|
||||||
loadChildren: './customization/customization.module#CustomizationModule',
|
loadChildren: () => import('./customization/customization.module').then(m => m.CustomizationModule),
|
||||||
}
|
}
|
||||||
])]
|
])]
|
||||||
})
|
})
|
||||||
|
|
|
@ -44,7 +44,7 @@ import {Subscriber} from "rxjs";
|
||||||
export class ManageContentProvidersComponent implements OnInit {
|
export class ManageContentProvidersComponent implements OnInit {
|
||||||
@Input() communityContentProviders = [];
|
@Input() communityContentProviders = [];
|
||||||
@ViewChild(RemoveContentProvidersComponent) removeContentProvidersComponent: RemoveContentProvidersComponent;
|
@ViewChild(RemoveContentProvidersComponent) removeContentProvidersComponent: RemoveContentProvidersComponent;
|
||||||
@ViewChild('fsModal') fullscreen: FullScreenModalComponent;
|
@ViewChild('fsModal', { static: true }) fullscreen: FullScreenModalComponent;
|
||||||
|
|
||||||
public toggle: boolean = false;
|
public toggle: boolean = false;
|
||||||
|
|
||||||
|
|
|
@ -9,14 +9,14 @@ import {Component, EventEmitter, Input, OnInit, Output,} from '@angular/core';
|
||||||
<div class="uk-text-bold uk-form-label uk-margin-small-bottom"> Border radius (px)</div>
|
<div class="uk-text-bold uk-form-label uk-margin-small-bottom"> Border radius (px)</div>
|
||||||
<!-- <div class="uk-margin-bottom uk-form-hint ">hint</div>-->
|
<!-- <div class="uk-margin-bottom uk-form-hint ">hint</div>-->
|
||||||
<div class="input-box">
|
<div class="input-box">
|
||||||
<input class="uk-input " [(ngModel)]="radius" (ngModelChange)="borderChanged()" type="number" min="0" />
|
<input class="uk-input" [(ngModel)]="radius" (input)="borderChanged()" type="number" min="0"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="uk-margin-remove">
|
<div class="uk-margin-remove">
|
||||||
<div class="uk-text-bold uk-form-label uk-margin-small-bottom"> Border width (px)</div>
|
<div class="uk-text-bold uk-form-label uk-margin-small-bottom"> Border width (px)</div>
|
||||||
<!-- <div class="uk-margin-bottom uk-form-hint "> hint</div>-->
|
<!-- <div class="uk-margin-bottom uk-form-hint "> hint</div>-->
|
||||||
<div class="input-box">
|
<div class="input-box">
|
||||||
<input class="uk-input " [(ngModel)]="width" (ngModelChange)="borderChanged()" type="number" min="0" />
|
<input class="uk-input" [(ngModel)]="width" (input)="borderChanged()" type="number" min="0"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="uk-margin-small-top">
|
<div class="uk-margin-small-top">
|
||||||
|
@ -37,8 +37,6 @@ import {Component, EventEmitter, Input, OnInit, Output,} from '@angular/core';
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
`
|
`
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -58,6 +56,7 @@ export class BorderComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
borderChanged() {
|
borderChanged() {
|
||||||
|
console.log(this.radius);
|
||||||
this.borderChange.emit({radius: this.radius, width: this.width, style: this.style});
|
this.borderChange.emit({radius: this.radius, width: this.width, style: this.style});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {CustomizationOptions} from '../../openaireLibrary/connect/community/Cust
|
||||||
<div [class]="(addMargin?'uk-margin-small-top':'') + ' colorPicker uk-flex uk-flex-middle'">
|
<div [class]="(addMargin?'uk-margin-small-top':'') + ' colorPicker uk-flex uk-flex-middle'">
|
||||||
<div class=" uk-flex">
|
<div class=" uk-flex">
|
||||||
<div class="">
|
<div class="">
|
||||||
<input id="colorPickerInput" class="uk-margin-small-left uk-width-small " color-picker [colorPicker]="color" [style.background]="color"
|
<input class="uk-margin-small-left uk-width-small" color-picker [colorPicker]="color" [style.background]="color"
|
||||||
(colorPickerChange)="color=$event; colorChanged();"/>
|
(colorPickerChange)="color=$event; colorChanged();"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="uk-margin-small-left"> {{label}}</div>
|
<div class="uk-margin-small-left"> {{label}}</div>
|
||||||
|
|
|
@ -16,7 +16,9 @@ import {PageContentModule} from '../../openaireLibrary/dashboard/sharedComponent
|
||||||
import {QuickLookComponent} from './quickLook.component';
|
import {QuickLookComponent} from './quickLook.component';
|
||||||
import {QuickLookBackgroundsComponent} from './quickLook-backgrounds.component';
|
import {QuickLookBackgroundsComponent} from './quickLook-backgrounds.component';
|
||||||
import {QuickLookButtonsComponent} from './quickLook-buttons.component';
|
import {QuickLookButtonsComponent} from './quickLook-buttons.component';
|
||||||
import {MatFormFieldModule, MatSelectModule, MatSlideToggleModule} from '@angular/material';
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
||||||
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
||||||
import {CustomizeButtonsComponent} from './customize-buttons.component';
|
import {CustomizeButtonsComponent} from './customize-buttons.component';
|
||||||
import {IconsModule} from '../../openaireLibrary/utils/icons/icons.module';
|
import {IconsModule} from '../../openaireLibrary/utils/icons/icons.module';
|
||||||
import {IconsService} from '../../openaireLibrary/utils/icons/icons.service';
|
import {IconsService} from '../../openaireLibrary/utils/icons/icons.service';
|
||||||
|
|
|
@ -8,9 +8,11 @@ import {Subscription} from "rxjs";
|
||||||
template: `
|
template: `
|
||||||
<div page-content>
|
<div page-content>
|
||||||
<div inner>
|
<div inner>
|
||||||
|
<div class="mining">
|
||||||
<router-outlet></router-outlet>
|
<router-outlet></router-outlet>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
`
|
`
|
||||||
})
|
})
|
||||||
export class MiningComponent implements OnInit, OnDestroy{
|
export class MiningComponent implements OnInit, OnDestroy{
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {PageContentModule} from "../../openaireLibrary/dashboard/sharedComponent
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{
|
{
|
||||||
path: '', component: MiningComponent, children: [
|
path: '', component: MiningComponent, children: [
|
||||||
{path: '', loadChildren: './mining-routing.module#MiningRoutingModule'}
|
{path: '', loadChildren: () => import('./mining-routing.module').then(m => m.MiningRoutingModule)}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]),
|
]),
|
||||||
|
|
|
@ -43,7 +43,7 @@ import {Subscriber} from "rxjs";
|
||||||
export class ManageProjectsComponent implements OnInit {
|
export class ManageProjectsComponent implements OnInit {
|
||||||
@Input() communityProjects = [];
|
@Input() communityProjects = [];
|
||||||
@ViewChild(RemoveProjectsComponent) removeProjectsComponent: RemoveProjectsComponent;
|
@ViewChild(RemoveProjectsComponent) removeProjectsComponent: RemoveProjectsComponent;
|
||||||
@ViewChild('fsModal') fullscreen: FullScreenModalComponent;
|
@ViewChild('fsModal', { static: true }) fullscreen: FullScreenModalComponent;
|
||||||
|
|
||||||
public toggle: boolean = false;
|
public toggle: boolean = false;
|
||||||
|
|
||||||
|
@ -69,11 +69,10 @@ export class ManageProjectsComponent implements OnInit {
|
||||||
this.body = "[Please write your message here]";
|
this.body = "[Please write your message here]";
|
||||||
this.body = StringUtils.URIEncode(this.body);
|
this.body = StringUtils.URIEncode(this.body);
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
|
|
||||||
this.fullscreen.title = "Search and Add Projects";
|
this.fullscreen.title = "Search and Add Projects";
|
||||||
this.fullscreen.okButtonText = "Done";
|
this.fullscreen.okButtonText = "Done";
|
||||||
this.fullscreen.okButton = true;
|
this.fullscreen.okButton = true;
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ngOnDestroy() {
|
public ngOnDestroy() {
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {RouterModule} from '@angular/router';
|
||||||
import {CommonModule} from '@angular/common';
|
import {CommonModule} from '@angular/common';
|
||||||
import {StatsComponent} from './stats.component';
|
import {StatsComponent} from './stats.component';
|
||||||
import {StatsRoutingModule} from './stats-routing.module';
|
import {StatsRoutingModule} from './stats-routing.module';
|
||||||
import {MatSlideToggleModule} from '@angular/material';
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
|
|
|
@ -6,14 +6,13 @@ import {SubjectsService} from '../subjects.service';
|
||||||
import {EnvProperties} from '../../../openaireLibrary/utils/properties/env-properties';
|
import {EnvProperties} from '../../../openaireLibrary/utils/properties/env-properties';
|
||||||
import {Session} from '../../../openaireLibrary/login/utils/helper.class';
|
import {Session} from '../../../openaireLibrary/login/utils/helper.class';
|
||||||
import {LoginErrorCodes} from '../../../openaireLibrary/login/utils/guardHelper.class';
|
import {LoginErrorCodes} from '../../../openaireLibrary/login/utils/guardHelper.class';
|
||||||
|
|
||||||
import {concat} from 'rxjs/observable/concat';
|
|
||||||
import {Title} from '@angular/platform-browser';
|
import {Title} from '@angular/platform-browser';
|
||||||
import {properties} from '../../../../environments/environment';
|
import {properties} from '../../../../environments/environment';
|
||||||
import {AlertModal} from '../../../openaireLibrary/utils/modal/alert';
|
import {AlertModal} from '../../../openaireLibrary/utils/modal/alert';
|
||||||
import {SearchInputComponent} from '../../../openaireLibrary/sharedComponents/search-input/search-input.component';
|
import {SearchInputComponent} from '../../../openaireLibrary/sharedComponents/search-input/search-input.component';
|
||||||
import {Subscription} from 'rxjs';
|
import {Subscription, zip} from 'rxjs';
|
||||||
import {CommunityInfo} from '../../../openaireLibrary/connect/community/communityInfo';
|
import {CommunityInfo} from '../../../openaireLibrary/connect/community/communityInfo';
|
||||||
|
import {concat} from 'rxjs/operators';
|
||||||
|
|
||||||
declare var UIkit;
|
declare var UIkit;
|
||||||
|
|
||||||
|
@ -156,17 +155,13 @@ export class SubjectsEditFormComponent implements OnInit {
|
||||||
const subjectsToDelete = this.getNonEmptyItems(subjectsToDeleteAr);
|
const subjectsToDelete = this.getNonEmptyItems(subjectsToDeleteAr);
|
||||||
const subjectsToAdd = this.getNonEmptyItems(subjectsToAddAr);
|
const subjectsToAdd = this.getNonEmptyItems(subjectsToAddAr);
|
||||||
if (subjectsToAdd.length > 0 && subjectsToDelete.length > 0) {
|
if (subjectsToAdd.length > 0 && subjectsToDelete.length > 0) {
|
||||||
const obs = concat(this._subjectsService.addSubjects(
|
this.subscriptions.push(this._subjectsService.removeSubjects(
|
||||||
this.properties.communityAPI + this.communityId + '/subjects', subjectsToAdd),
|
this.properties.communityAPI + this.communityId + '/subjects', subjectsToDelete).subscribe(res =>{
|
||||||
this._subjectsService.removeSubjects(
|
this.subscriptions.push(this._subjectsService.addSubjects(
|
||||||
this.properties.communityAPI + this.communityId + '/subjects', subjectsToDelete));
|
this.properties.communityAPI + this.communityId + '/subjects', subjectsToAdd).subscribe(res => {
|
||||||
this.subscriptions.push(obs.subscribe(res => {
|
this.afterUpdateActions(res, "added");
|
||||||
if (res['method'] === 'delete') {
|
}));
|
||||||
this.afterUpdateActions(res, "updated");
|
}));
|
||||||
}
|
|
||||||
},
|
|
||||||
error => this.handleUpdateError('System error updating subjects', error)
|
|
||||||
));
|
|
||||||
} else if (subjectsToAdd.length > 0) {
|
} else if (subjectsToAdd.length > 0) {
|
||||||
this.subscriptions.push(this._subjectsService.addSubjects(
|
this.subscriptions.push(this._subjectsService.addSubjects(
|
||||||
this.properties.communityAPI + this.communityId + '/subjects', subjectsToAdd).subscribe(res => {
|
this.properties.communityAPI + this.communityId + '/subjects', subjectsToAdd).subscribe(res => {
|
||||||
|
|
|
@ -9,7 +9,8 @@ import {MailPrefsModule} from '../../openaireLibrary/connect/userEmailPreference
|
||||||
import {ManageUserNotificationsRoutingModule} from './manage-user-notifications-routing.module';
|
import {ManageUserNotificationsRoutingModule} from './manage-user-notifications-routing.module';
|
||||||
import {UsersTabsModule} from '../users/users-tabs.module';
|
import {UsersTabsModule} from '../users/users-tabs.module';
|
||||||
import {PageContentModule} from '../../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module';
|
import {PageContentModule} from '../../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module';
|
||||||
import {MatSelectModule, MatSlideToggleModule} from '@angular/material';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
||||||
import {LoadingModule} from '../../openaireLibrary/utils/loading/loading.module';
|
import {LoadingModule} from '../../openaireLibrary/utils/loading/loading.module';
|
||||||
import {SharedModule} from '../../openaireLibrary/shared/shared.module';
|
import {SharedModule} from '../../openaireLibrary/shared/shared.module';
|
||||||
|
|
||||||
|
|
|
@ -5,14 +5,14 @@ import {RouterModule} from '@angular/router';
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{path: '', redirectTo: 'managers', pathMatch: 'full'},
|
{path: '', redirectTo: 'managers', pathMatch: 'full'},
|
||||||
{path: 'managers', loadChildren: './users-managers/users-managers.module#UsersManagersModule'},
|
{path: 'managers', loadChildren: () => import('./users-managers/users-managers.module').then(m => m.UsersManagersModule)},
|
||||||
{path: 'subscribers', loadChildren: './users-subscribers/users-subscribers.module#UsersSubscribersModule'},
|
{path: 'subscribers', loadChildren: () => import('./users-subscribers/users-subscribers.module').then(m => m.UsersSubscribersModule)},
|
||||||
{
|
{
|
||||||
path: 'notifications',
|
path: 'notifications',
|
||||||
loadChildren: '../usernotifications/manage-user-notifications.module#ManageUserNotificationsModule'
|
loadChildren: () => import('../usernotifications/manage-user-notifications.module').then(m => m.ManageUserNotificationsModule)
|
||||||
},
|
},
|
||||||
{path: 'claims', loadChildren: '../claims/claims.module#ClaimsModule'},
|
{path: 'claims', loadChildren: () => import('../claims/claims.module').then(m => m.ClaimsModule)},
|
||||||
{path: 'personal', loadChildren: './personal-info/personal-info.module#PersonalInfoModule'}
|
{path: 'personal', loadChildren: () => import('./personal-info/personal-info.module').then(m => m.PersonalInfoModule)}
|
||||||
])
|
])
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
|
@ -58,7 +58,7 @@ export class ZenodoCommunitiesComponent implements OnInit, OnDestroy {
|
||||||
zenodoSearchUtils: SearchUtilsClass = new SearchUtilsClass();
|
zenodoSearchUtils: SearchUtilsClass = new SearchUtilsClass();
|
||||||
public errorCodes: ErrorCodes = new ErrorCodes();
|
public errorCodes: ErrorCodes = new ErrorCodes();
|
||||||
subscriptions = [];
|
subscriptions = [];
|
||||||
@ViewChild('fsModal') fullscreen: FullScreenModalComponent;
|
@ViewChild('fsModal', { static: true }) fullscreen: FullScreenModalComponent;
|
||||||
@ViewChild('manage') manage: ManageZenodoCommunitiesComponent;
|
@ViewChild('manage') manage: ManageZenodoCommunitiesComponent;
|
||||||
|
|
||||||
constructor(private element: ElementRef, private route: ActivatedRoute, private _router: Router,
|
constructor(private element: ElementRef, private route: ActivatedRoute, private _router: Router,
|
||||||
|
@ -122,8 +122,6 @@ export class ZenodoCommunitiesComponent implements OnInit, OnDestroy {
|
||||||
this.fullscreen.title = "Search and Add Zenodo Communities";
|
this.fullscreen.title = "Search and Add Zenodo Communities";
|
||||||
this.fullscreen.okButtonText = "Done";
|
this.fullscreen.okButtonText = "Done";
|
||||||
this.fullscreen.okButton = true;
|
this.fullscreen.okButton = true;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
/**
|
|
||||||
* Created by stefanos on 25/4/2017.
|
|
||||||
*/
|
|
||||||
// Polyfills
|
|
||||||
|
|
||||||
// import 'ie-shim'; // Internet Explorer 9 support
|
|
||||||
import 'reflect-metadata';
|
|
||||||
// import 'core-js/es6';
|
|
||||||
// Added parts of es6 which are necessary for your project or your browser support requirements.
|
|
||||||
import 'core-js/es6/symbol';
|
|
||||||
import 'core-js/es6/object';
|
|
||||||
import 'core-js/es6/function';
|
|
||||||
import 'core-js/es6/parse-int';
|
|
||||||
import 'core-js/es6/parse-float';
|
|
||||||
import 'core-js/es6/number';
|
|
||||||
import 'core-js/es6/math';
|
|
||||||
import 'core-js/es6/string';
|
|
||||||
import 'core-js/es6/date';
|
|
||||||
import 'core-js/es6/array';
|
|
||||||
import 'core-js/es6/regexp';
|
|
||||||
import 'core-js/es6/map';
|
|
||||||
import 'core-js/es6/set';
|
|
||||||
import 'core-js/es6/weak-map';
|
|
||||||
import 'core-js/es6/weak-set';
|
|
||||||
import 'core-js/es6/typed';
|
|
||||||
import 'core-js/es6/reflect';
|
|
||||||
// see issue https://github.com/AngularClass/angular2-webpack-starter/issues/709
|
|
||||||
// import 'core-js/es6/promise';
|
|
||||||
|
|
||||||
import 'intl';
|
|
||||||
import 'intl/locale-data/jsonp/en';
|
|
||||||
|
|
||||||
import 'core-js/es7/reflect';
|
|
||||||
import 'zone.js/dist/zone';
|
|
||||||
|
|
||||||
// import 'ng2-ckeditor/lib';
|
|
||||||
|
|
||||||
// if ('production' === ENV) {
|
|
||||||
// // Production
|
|
||||||
//
|
|
||||||
// } else {
|
|
||||||
//
|
|
||||||
// // Development
|
|
||||||
// Error.stackTraceLimit = Infinity;
|
|
||||||
//
|
|
||||||
// /* tslint:disable no-var-requires */
|
|
||||||
// require('zone.js/dist/long-stack-trace-zone');
|
|
||||||
//
|
|
||||||
// }
|
|
|
@ -2,19 +2,18 @@
|
||||||
* Created by stefania on 7/13/17.
|
* Created by stefania on 7/13/17.
|
||||||
*/
|
*/
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {HttpClient, HttpErrorResponse, HttpHeaders} from "@angular/common/http";
|
import {HttpClient, HttpErrorResponse} from '@angular/common/http';
|
||||||
import {Observable, Subscription} from 'rxjs';
|
import {Observable, throwError} from 'rxjs';
|
||||||
import { Page } from "../domain/page";
|
import {Page} from '../domain/page';
|
||||||
import { PageHelpContent } from "../domain/page-help-content";
|
import {PageHelpContent} from '../domain/page-help-content';
|
||||||
import { Portal } from "../domain/portal";
|
import {Portal} from '../domain/portal';
|
||||||
import { Entity } from "../domain/entity";
|
import {Entity} from '../domain/entity';
|
||||||
import { DivId } from "../domain/divId";
|
import {DivId} from '../domain/divId';
|
||||||
import { DivHelpContent } from "../domain/div-help-content";
|
import {DivHelpContent} from '../domain/div-help-content';
|
||||||
import {StatisticsDisplay, StatisticsSummary} from '../openaireLibrary/connect/statistics/statisticsEntities';
|
import {StatisticsDisplay, StatisticsSummary} from '../openaireLibrary/connect/statistics/statisticsEntities';
|
||||||
import {CustomOptions} from '../openaireLibrary/services/servicesUtils/customOptions.class';
|
import {CustomOptions} from '../openaireLibrary/services/servicesUtils/customOptions.class';
|
||||||
import {catchError, map} from "rxjs/operators";
|
import {catchError, map} from 'rxjs/operators';
|
||||||
import {COOKIE} from "../openaireLibrary/login/utils/helper.class";
|
import {properties} from '../../environments/environment';
|
||||||
import {properties} from "../../environments/environment";
|
|
||||||
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
@ -426,7 +425,7 @@ export class HelpContentService {
|
||||||
// in a real world app, we may send the error to some remote logging infrastructure
|
// in a real world app, we may send the error to some remote logging infrastructure
|
||||||
// instead of just logging it to the console
|
// instead of just logging it to the console
|
||||||
console.error(error);
|
console.error(error);
|
||||||
return Observable.throw(error.error || 'Server error');
|
return throwError(error.error || 'Server error');
|
||||||
}
|
}
|
||||||
|
|
||||||
// getDataProviders() {
|
// getDataProviders() {
|
||||||
|
|
|
@ -2,7 +2,7 @@ import {Injectable} from '@angular/core';
|
||||||
import {HttpClient, HttpHeaders} from '@angular/common/http';
|
import {HttpClient, HttpHeaders} from '@angular/common/http';
|
||||||
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
import {EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
||||||
import {ContentProvider} from '../openaireLibrary/utils/entities/contentProvider';
|
import {ContentProvider} from '../openaireLibrary/utils/entities/contentProvider';
|
||||||
import {Observable} from 'rxjs/Observable';
|
import {Observable} from 'rxjs';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ManageCommunityContentProvidersService {
|
export class ManageCommunityContentProvidersService {
|
||||||
|
|
|
@ -16,16 +16,17 @@ module.exports = function (config) {
|
||||||
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
||||||
},
|
},
|
||||||
coverageIstanbulReporter: {
|
coverageIstanbulReporter: {
|
||||||
dir: require('path').join(__dirname, 'coverage'), reports: [ 'html', 'lcovonly' ],
|
dir: require('path').join(__dirname, '../coverage/connect-admin'),
|
||||||
|
reports: ['html', 'lcovonly', 'text-summary'],
|
||||||
fixWebpackSourcePaths: true
|
fixWebpackSourcePaths: true
|
||||||
},
|
},
|
||||||
|
|
||||||
reporters: ['progress', 'kjhtml'],
|
reporters: ['progress', 'kjhtml'],
|
||||||
port: 9876,
|
port: 9876,
|
||||||
colors: true,
|
colors: true,
|
||||||
logLevel: config.LOG_INFO,
|
logLevel: config.LOG_INFO,
|
||||||
autoWatch: true,
|
autoWatch: true,
|
||||||
browsers: ['Chrome'],
|
browsers: ['Chrome'],
|
||||||
singleRun: false
|
singleRun: false,
|
||||||
|
restartOnFileChange: true
|
||||||
});
|
});
|
||||||
};
|
};
|
|
@ -8,4 +8,5 @@ if (properties.environment !== "development") {
|
||||||
enableProdMode();
|
enableProdMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
platformBrowserDynamic().bootstrapModule(AppModule);
|
platformBrowserDynamic().bootstrapModule(AppModule)
|
||||||
|
.catch(err => console.error(err));
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
@use "sass:meta";
|
||||||
|
@import "~interactiveminingv3/assets/css/variables.css";
|
||||||
|
|
||||||
|
.mining {
|
||||||
|
|
||||||
|
@include meta.load-css("node_modules/interactiveminingv3/assets/css/interactive-mining.css");
|
||||||
|
@include meta.load-css("node_modules/interactiveminingv3/assets/css/animations.css");
|
||||||
|
}
|
|
@ -1,3 +1,7 @@
|
||||||
|
/***************************************************************************************************
|
||||||
|
* Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.
|
||||||
|
*/
|
||||||
|
import '@angular/localize/init';
|
||||||
/**
|
/**
|
||||||
* This file includes polyfills needed by Angular and is loaded before the app.
|
* This file includes polyfills needed by Angular and is loaded before the app.
|
||||||
* You can add your own extra polyfills to this file.
|
* You can add your own extra polyfills to this file.
|
||||||
|
@ -11,61 +15,53 @@
|
||||||
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
|
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
|
||||||
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
|
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
|
||||||
*
|
*
|
||||||
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
|
* Learn more in https://angular.io/guide/browser-support
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***************************************************************************************************
|
/***************************************************************************************************
|
||||||
* BROWSER POLYFILLS
|
* BROWSER POLYFILLS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
|
|
||||||
import 'core-js/es6/symbol';
|
|
||||||
import 'core-js/es6/object';
|
|
||||||
import 'core-js/es6/function';
|
|
||||||
import 'core-js/es6/parse-int';
|
|
||||||
import 'core-js/es6/parse-float';
|
|
||||||
import 'core-js/es6/number';
|
|
||||||
import 'core-js/es6/math';
|
|
||||||
import 'core-js/es6/string';
|
|
||||||
import 'core-js/es6/date';
|
|
||||||
import 'core-js/es6/array';
|
|
||||||
import 'core-js/es6/regexp';
|
|
||||||
import 'core-js/es6/map';
|
|
||||||
import 'core-js/es6/weak-map';
|
|
||||||
import 'core-js/es6/set';
|
|
||||||
|
|
||||||
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
|
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
|
||||||
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
||||||
|
|
||||||
/** Evergreen browsers require these. **/
|
|
||||||
import 'core-js/es6/reflect';
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Required to support Web Animations `@angular/animation`.
|
* Web Animations `@angular/platform-browser/animations`
|
||||||
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
|
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
|
||||||
**/
|
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
|
||||||
|
*/
|
||||||
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* By default, zone.js will patch all possible macroTask and DomEvents
|
||||||
|
* user can disable parts of macroTask/DomEvents patch by setting following flags
|
||||||
|
* because those flags need to be set before `zone.js` being loaded, and webpack
|
||||||
|
* will put import in the top of bundle, so user need to create a separate file
|
||||||
|
* in this directory (for example: zone-flags.ts), and put the following flags
|
||||||
|
* into that file, and then add the following code before importing zone.js.
|
||||||
|
* import './zone-flags.ts';
|
||||||
|
*
|
||||||
|
* The flags allowed in zone-flags.ts are listed here.
|
||||||
|
*
|
||||||
|
* The following flags will work for all browsers.
|
||||||
|
*
|
||||||
|
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
|
||||||
|
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
|
||||||
|
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
|
||||||
|
*
|
||||||
|
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
|
||||||
|
* with the following flag, it will bypass `zone.js` patch for IE/Edge
|
||||||
|
*
|
||||||
|
* (window as any).__Zone_enable_cross_context_check = true;
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
/***************************************************************************************************
|
/***************************************************************************************************
|
||||||
* Zone JS is required by Angular itself.
|
* Zone JS is required by default for Angular itself.
|
||||||
*/
|
*/
|
||||||
import 'zone.js/dist/zone'; // Included with Angular CLI.
|
import 'zone.js/dist/zone'; // Included with Angular CLI.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************************************
|
/***************************************************************************************************
|
||||||
* APPLICATION IMPORTS
|
* APPLICATION IMPORTS
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* Date, currency, decimal and percent pipes.
|
|
||||||
* Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
|
|
||||||
*/
|
|
||||||
// import 'intl'; // Run `npm install --save intl`.
|
|
||||||
/**
|
|
||||||
* Need to import at least one locale-data with intl.
|
|
||||||
*/
|
|
||||||
// import 'intl/locale-data/jsonp/en';
|
|
||||||
|
|
|
@ -4,4 +4,3 @@
|
||||||
@import "assets/common-assets/library.css";
|
@import "assets/common-assets/library.css";
|
||||||
@import "assets/dashboard-theme/main.css";
|
@import "assets/dashboard-theme/main.css";
|
||||||
@import "assets/css/connect-custom.css";
|
@import "assets/css/connect-custom.css";
|
||||||
|
|
||||||
|
|
14
src/test.ts
14
src/test.ts
|
@ -1,24 +1,14 @@
|
||||||
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
||||||
|
|
||||||
import 'zone.js/dist/long-stack-trace-zone';
|
import 'zone.js/dist/zone-testing';
|
||||||
import 'zone.js/dist/proxy.js';
|
|
||||||
import 'zone.js/dist/sync-test';
|
|
||||||
import 'zone.js/dist/jasmine-patch';
|
|
||||||
import 'zone.js/dist/async-test';
|
|
||||||
import 'zone.js/dist/fake-async-test';
|
|
||||||
import { getTestBed } from '@angular/core/testing';
|
import { getTestBed } from '@angular/core/testing';
|
||||||
import {
|
import {
|
||||||
BrowserDynamicTestingModule,
|
BrowserDynamicTestingModule,
|
||||||
platformBrowserDynamicTesting
|
platformBrowserDynamicTesting
|
||||||
} from '@angular/platform-browser-dynamic/testing';
|
} from '@angular/platform-browser-dynamic/testing';
|
||||||
|
|
||||||
// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
|
|
||||||
declare const __karma__: any;
|
|
||||||
declare const require: any;
|
declare const require: any;
|
||||||
|
|
||||||
// Prevent Karma from running prematurely.
|
|
||||||
__karma__.loaded = function () {};
|
|
||||||
|
|
||||||
// First, initialize the Angular testing environment.
|
// First, initialize the Angular testing environment.
|
||||||
getTestBed().initTestEnvironment(
|
getTestBed().initTestEnvironment(
|
||||||
BrowserDynamicTestingModule,
|
BrowserDynamicTestingModule,
|
||||||
|
@ -28,5 +18,3 @@ getTestBed().initTestEnvironment(
|
||||||
const context = require.context('./', true, /\.spec\.ts$/);
|
const context = require.context('./', true, /\.spec\.ts$/);
|
||||||
// And load the modules.
|
// And load the modules.
|
||||||
context.keys().map(context);
|
context.keys().map(context);
|
||||||
// Finally, start Karma to run the tests.
|
|
||||||
__karma__.start();
|
|
||||||
|
|
|
@ -1,23 +1,14 @@
|
||||||
{
|
{
|
||||||
"extends": "../tsconfig.json",
|
"extends": "../tsconfig.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"paths": {
|
|
||||||
"*": [
|
|
||||||
"types/*"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"paths": {
|
|
||||||
"*": [
|
|
||||||
"types/*"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"outDir": "../out-tsc/app",
|
"outDir": "../out-tsc/app",
|
||||||
"baseUrl": "./",
|
"types": []
|
||||||
"module": "es2015",
|
|
||||||
"types": ["node"]
|
|
||||||
},
|
},
|
||||||
"exclude": [
|
"files": [
|
||||||
"test.ts",
|
"main.ts",
|
||||||
"**/*.spec.ts"
|
"polyfills.ts"
|
||||||
|
],
|
||||||
|
"include": [
|
||||||
|
"src/**/*.d.ts"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
"extends": "../tsconfig.json",
|
"extends": "../tsconfig.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"outDir": "../out-tsc/spec",
|
"outDir": "../out-tsc/spec",
|
||||||
"baseUrl": "./",
|
|
||||||
"module": "commonjs",
|
|
||||||
"target": "es5",
|
|
||||||
"types": [
|
"types": [
|
||||||
"jasmine",
|
"jasmine",
|
||||||
"node"
|
"node"
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
/* SystemJS module definition */
|
|
||||||
declare var module: NodeModule;
|
|
||||||
interface NodeModule {
|
|
||||||
id: string;
|
|
||||||
}
|
|
|
@ -1,22 +1,23 @@
|
||||||
{
|
{
|
||||||
"compileOnSave": false,
|
"compileOnSave": false,
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"importHelpers": true,
|
"baseUrl": "./",
|
||||||
|
"downlevelIteration": true,
|
||||||
"outDir": "./dist/out-tsc",
|
"outDir": "./dist/out-tsc",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"declaration": false,
|
"declaration": false,
|
||||||
|
"module": "es2020",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"emitDecoratorMetadata": true,
|
"emitDecoratorMetadata": true,
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"target": "es5",
|
"importHelpers": true,
|
||||||
|
"target": "es2015",
|
||||||
"typeRoots": [
|
"typeRoots": [
|
||||||
"node_modules/@types"
|
"node_modules/@types"
|
||||||
],
|
],
|
||||||
"lib": [
|
"lib": [
|
||||||
"es2017",
|
"es2018",
|
||||||
"dom"
|
"dom"
|
||||||
],
|
]
|
||||||
"module": "es2015",
|
|
||||||
"baseUrl": "./"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
141
tslint.json
141
tslint.json
|
@ -1,141 +0,0 @@
|
||||||
{
|
|
||||||
"rulesDirectory": [
|
|
||||||
"node_modules/codelyzer"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"arrow-return-shorthand": true,
|
|
||||||
"callable-types": true,
|
|
||||||
"class-name": true,
|
|
||||||
"comment-format": [
|
|
||||||
true,
|
|
||||||
"check-space"
|
|
||||||
],
|
|
||||||
"curly": true,
|
|
||||||
"eofline": true,
|
|
||||||
"forin": true,
|
|
||||||
"import-blacklist": [
|
|
||||||
true
|
|
||||||
],
|
|
||||||
"import-spacing": true,
|
|
||||||
"indent": [
|
|
||||||
true,
|
|
||||||
"spaces"
|
|
||||||
],
|
|
||||||
"interface-over-type-literal": true,
|
|
||||||
"label-position": true,
|
|
||||||
"max-line-length": [
|
|
||||||
true,
|
|
||||||
140
|
|
||||||
],
|
|
||||||
"member-access": false,
|
|
||||||
"member-ordering": [
|
|
||||||
true,
|
|
||||||
{
|
|
||||||
"order": [
|
|
||||||
"static-field",
|
|
||||||
"instance-field",
|
|
||||||
"static-method",
|
|
||||||
"instance-method"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"no-arg": true,
|
|
||||||
"no-bitwise": true,
|
|
||||||
"no-console": [
|
|
||||||
true,
|
|
||||||
"debug",
|
|
||||||
"info",
|
|
||||||
"time",
|
|
||||||
"timeEnd",
|
|
||||||
"trace"
|
|
||||||
],
|
|
||||||
"no-construct": true,
|
|
||||||
"no-debugger": true,
|
|
||||||
"no-duplicate-super": true,
|
|
||||||
"no-empty": false,
|
|
||||||
"no-empty-interface": true,
|
|
||||||
"no-eval": true,
|
|
||||||
"no-inferrable-types": [
|
|
||||||
true,
|
|
||||||
"ignore-params"
|
|
||||||
],
|
|
||||||
"no-misused-new": true,
|
|
||||||
"no-non-null-assertion": true,
|
|
||||||
"no-shadowed-variable": true,
|
|
||||||
"no-string-literal": false,
|
|
||||||
"no-string-throw": true,
|
|
||||||
"no-switch-case-fall-through": true,
|
|
||||||
"no-trailing-whitespace": true,
|
|
||||||
"no-unnecessary-initializer": true,
|
|
||||||
"no-unused-expression": true,
|
|
||||||
"no-use-before-declare": true,
|
|
||||||
"no-var-keyword": true,
|
|
||||||
"object-literal-sort-keys": false,
|
|
||||||
"one-line": [
|
|
||||||
true,
|
|
||||||
"check-open-brace",
|
|
||||||
"check-catch",
|
|
||||||
"check-else",
|
|
||||||
"check-whitespace"
|
|
||||||
],
|
|
||||||
"prefer-const": true,
|
|
||||||
"quotemark": [
|
|
||||||
true,
|
|
||||||
"single"
|
|
||||||
],
|
|
||||||
"radix": true,
|
|
||||||
"semicolon": [
|
|
||||||
true,
|
|
||||||
"always"
|
|
||||||
],
|
|
||||||
"triple-equals": [
|
|
||||||
true,
|
|
||||||
"allow-null-check"
|
|
||||||
],
|
|
||||||
"typedef-whitespace": [
|
|
||||||
true,
|
|
||||||
{
|
|
||||||
"call-signature": "nospace",
|
|
||||||
"index-signature": "nospace",
|
|
||||||
"parameter": "nospace",
|
|
||||||
"property-declaration": "nospace",
|
|
||||||
"variable-declaration": "nospace"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"typeof-compare": true,
|
|
||||||
"unified-signatures": true,
|
|
||||||
"variable-name": false,
|
|
||||||
"whitespace": [
|
|
||||||
true,
|
|
||||||
"check-branch",
|
|
||||||
"check-decl",
|
|
||||||
"check-operator",
|
|
||||||
"check-separator",
|
|
||||||
"check-type"
|
|
||||||
],
|
|
||||||
"directive-selector": [
|
|
||||||
true,
|
|
||||||
"attribute",
|
|
||||||
"app",
|
|
||||||
"camelCase"
|
|
||||||
],
|
|
||||||
"component-selector": [
|
|
||||||
true,
|
|
||||||
"element",
|
|
||||||
"app",
|
|
||||||
"kebab-case"
|
|
||||||
],
|
|
||||||
"use-input-property-decorator": true,
|
|
||||||
"use-output-property-decorator": true,
|
|
||||||
"use-host-property-decorator": true,
|
|
||||||
"no-input-rename": true,
|
|
||||||
"no-output-rename": true,
|
|
||||||
"use-life-cycle-interface": true,
|
|
||||||
"use-pipe-transform-interface": true,
|
|
||||||
"component-class-suffix": true,
|
|
||||||
"directive-class-suffix": true,
|
|
||||||
"no-access-missing-member": true,
|
|
||||||
"templates-use-public": true,
|
|
||||||
"invoke-injectable": true
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue