Revision 55070
Added by Andreas Mantas about 5 years ago
modules/uoa-repository-dashboard-gui/branches/development/trunk/e2e/protractor.conf.js | ||
---|---|---|
1 |
// Protractor configuration file, see link for more information |
|
2 |
// https://github.com/angular/protractor/blob/master/lib/config.ts |
|
3 |
|
|
4 |
const { SpecReporter } = require('jasmine-spec-reporter'); |
|
5 |
|
|
6 |
exports.config = { |
|
7 |
allScriptsTimeout: 11000, |
|
8 |
specs: [ |
|
9 |
'./src/**/*.e2e-spec.ts' |
|
10 |
], |
|
11 |
capabilities: { |
|
12 |
'browserName': 'chrome' |
|
13 |
}, |
|
14 |
directConnect: true, |
|
15 |
baseUrl: 'http://localhost:4200/', |
|
16 |
framework: 'jasmine', |
|
17 |
jasmineNodeOpts: { |
|
18 |
showColors: true, |
|
19 |
defaultTimeoutInterval: 30000, |
|
20 |
print: function() {} |
|
21 |
}, |
|
22 |
onPrepare() { |
|
23 |
require('ts-node').register({ |
|
24 |
project: require('path').join(__dirname, './tsconfig.e2e.json') |
|
25 |
}); |
|
26 |
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); |
|
27 |
} |
|
28 |
}; |
|
29 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/e2e/tsconfig.e2e.json | ||
---|---|---|
1 |
{ |
|
2 |
"extends": "../tsconfig.json", |
|
3 |
"compilerOptions": { |
|
4 |
"outDir": "../out-tsc/app", |
|
5 |
"module": "commonjs", |
|
6 |
"target": "es5", |
|
7 |
"types": [ |
|
8 |
"jasmine", |
|
9 |
"jasminewd2", |
|
10 |
"node" |
|
11 |
] |
|
12 |
} |
|
13 |
} |
|
14 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/e2e/src/app.e2e-spec.ts | ||
---|---|---|
1 |
import { AppPage } from './app.po'; |
|
2 |
|
|
3 |
describe('workspace-project App', () => { |
|
4 |
let page: AppPage; |
|
5 |
|
|
6 |
beforeEach(() => { |
|
7 |
page = new AppPage(); |
|
8 |
}); |
|
9 |
|
|
10 |
it('should display welcome message', () => { |
|
11 |
page.navigateTo(); |
|
12 |
expect(page.getParagraphText()).toEqual('Welcome to uoa-repository-manager-ui!'); |
|
13 |
}); |
|
14 |
}); |
|
15 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/e2e/src/app.po.ts | ||
---|---|---|
1 |
import { browser, by, element } from 'protractor'; |
|
2 |
|
|
3 |
export class AppPage { |
|
4 |
navigateTo() { |
|
5 |
return browser.get('/'); |
|
6 |
} |
|
7 |
|
|
8 |
getParagraphText() { |
|
9 |
return element(by.css('app-root h1')).getText(); |
|
10 |
} |
|
11 |
} |
|
12 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/README.md | ||
---|---|---|
1 |
# UOA Repository Manager UI |
|
2 |
|
|
3 |
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 6.0.8 (Angular version 6.1.10). |
|
4 |
|
|
5 |
## Minimum requirements for installing and building the project |
|
6 |
|
|
7 |
[Node.js](https://nodejs.org/en/) version 8.x or 10.x.<br> |
|
8 |
[npm client](https://docs.npmjs.com/cli/install) command line interface (it is installed with Node.js by default). |
|
9 |
|
|
10 |
## Installing the project |
|
11 |
|
|
12 |
After checking out (or updating) the repository enter the created folder and run `npm ci`. |
|
13 |
This will install the exact versions of the dependencies as mentioned in the `package-lock.json` file (inside the root folder). |
|
14 |
|
|
15 |
## Build for production |
|
16 |
|
|
17 |
Run `npm run build` (equivalent of `ng build --prod`) to build the project. The build artifacts will be stored in the `dist/uoa-repository-manager-ui` directory. |
|
18 |
|
|
19 |
## Deploy project to nginx server |
|
20 |
|
|
21 |
Run `tar -czvf dist.tar.gz dist/` to generate a compressed `.gz` file containing the built angular folder<br> |
|
22 |
Run `scp dist.tar.gz path/to/server/` to copy the compressed file to the server.<br> |
|
23 |
Connect to server (`ssh user@server.ip.address`).<br> |
|
24 |
Uncompress `dist.tar.gz` file.<br> |
|
25 |
Navigate to the root folder of the server. |
|
26 |
Copy the contents of the uncompressed dist/uoa-repository-manager-ui folder |
|
27 |
into the `uoa-repository-manager-dashboard` folder (superuser privileges are normally required for this action).<br> |
|
28 |
|
|
29 |
## Other topics |
|
30 |
### Development server |
|
31 |
|
|
32 |
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.<br> |
|
33 |
Run `npm run start:proxy` (equivalent of `ng serve --proxy-config proxy.conf.json`) instead, to run the project using a development proxy. To configure the proxy modify the `proxy.conf.json` file (inside the root folder). |
|
34 |
|
|
35 |
### Code scaffolding |
|
36 |
|
|
37 |
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`. |
|
38 |
|
|
39 |
### Running unit tests |
|
40 |
|
|
41 |
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). |
|
42 |
|
|
43 |
### Running end-to-end tests |
|
44 |
|
|
45 |
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). |
|
46 |
|
|
47 |
### Further help |
|
48 |
|
|
49 |
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). |
|
50 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/proxy.conf.json | ||
---|---|---|
1 |
{ |
|
2 |
"/uoa-repository-manager-service/*": { |
|
3 |
"target": "http://localhost:8480", |
|
4 |
"secure": false, |
|
5 |
"logLevel": "debug", |
|
6 |
"changeOrigin": true |
|
7 |
} |
|
8 |
} |
|
9 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/angular.json | ||
---|---|---|
1 |
{ |
|
2 |
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", |
|
3 |
"version": 1, |
|
4 |
"newProjectRoot": "projects", |
|
5 |
"projects": { |
|
6 |
"uoa-repository-manager-ui": { |
|
7 |
"root": "", |
|
8 |
"sourceRoot": "src", |
|
9 |
"projectType": "application", |
|
10 |
"prefix": "app", |
|
11 |
"schematics": {}, |
|
12 |
"architect": { |
|
13 |
"build": { |
|
14 |
"builder": "@angular-devkit/build-angular:browser", |
|
15 |
"options": { |
|
16 |
"outputPath": "dist/uoa-repository-manager-ui", |
|
17 |
"index": "src/index.html", |
|
18 |
"main": "src/main.ts", |
|
19 |
"polyfills": "src/polyfills.ts", |
|
20 |
"tsConfig": "src/tsconfig.app.json", |
|
21 |
"assets": [ |
|
22 |
"src/favicon.ico", |
|
23 |
"src/assets" |
|
24 |
], |
|
25 |
"styles": [ |
|
26 |
"src/styles.scss" |
|
27 |
], |
|
28 |
"scripts": [ |
|
29 |
"node_modules/jquery/dist/jquery.min.js", |
|
30 |
"node_modules/uikit/dist/js/uikit.min.js", |
|
31 |
"node_modules/uikit/dist/js/uikit-icons.min.js" |
|
32 |
] |
|
33 |
}, |
|
34 |
"configurations": { |
|
35 |
"production": { |
|
36 |
"fileReplacements": [ |
|
37 |
{ |
|
38 |
"replace": "src/environments/environment.ts", |
|
39 |
"with": "src/environments/environment.prod.ts" |
|
40 |
} |
|
41 |
], |
|
42 |
"optimization": true, |
|
43 |
"outputHashing": "all", |
|
44 |
"sourceMap": false, |
|
45 |
"extractCss": true, |
|
46 |
"namedChunks": false, |
|
47 |
"aot": true, |
|
48 |
"extractLicenses": true, |
|
49 |
"vendorChunk": false, |
|
50 |
"buildOptimizer": true |
|
51 |
} |
|
52 |
} |
|
53 |
}, |
|
54 |
"serve": { |
|
55 |
"builder": "@angular-devkit/build-angular:dev-server", |
|
56 |
"options": { |
|
57 |
"browserTarget": "uoa-repository-manager-ui:build", |
|
58 |
"port": 4200, |
|
59 |
"host": "aleka.athenarc.gr" |
|
60 |
}, |
|
61 |
"configurations": { |
|
62 |
"production": { |
|
63 |
"browserTarget": "uoa-repository-manager-ui:build:production" |
|
64 |
} |
|
65 |
} |
|
66 |
}, |
|
67 |
"extract-i18n": { |
|
68 |
"builder": "@angular-devkit/build-angular:extract-i18n", |
|
69 |
"options": { |
|
70 |
"browserTarget": "uoa-repository-manager-ui:build" |
|
71 |
} |
|
72 |
}, |
|
73 |
"test": { |
|
74 |
"builder": "@angular-devkit/build-angular:karma", |
|
75 |
"options": { |
|
76 |
"main": "src/test.ts", |
|
77 |
"polyfills": "src/polyfills.ts", |
|
78 |
"tsConfig": "src/tsconfig.spec.json", |
|
79 |
"karmaConfig": "src/karma.conf.js", |
|
80 |
"styles": [ |
|
81 |
"src/styles.scss" |
|
82 |
], |
|
83 |
"scripts": [], |
|
84 |
"assets": [ |
|
85 |
"src/favicon.ico", |
|
86 |
"src/assets" |
|
87 |
] |
|
88 |
} |
|
89 |
}, |
|
90 |
"lint": { |
|
91 |
"builder": "@angular-devkit/build-angular:tslint", |
|
92 |
"options": { |
|
93 |
"tsConfig": [ |
|
94 |
"src/tsconfig.app.json", |
|
95 |
"src/tsconfig.spec.json" |
|
96 |
], |
|
97 |
"exclude": [ |
|
98 |
"**/node_modules/**" |
|
99 |
] |
|
100 |
} |
|
101 |
} |
|
102 |
} |
|
103 |
}, |
|
104 |
"uoa-repository-manager-ui-e2e": { |
|
105 |
"root": "e2e/", |
|
106 |
"projectType": "application", |
|
107 |
"architect": { |
|
108 |
"e2e": { |
|
109 |
"builder": "@angular-devkit/build-angular:protractor", |
|
110 |
"options": { |
|
111 |
"protractorConfig": "e2e/protractor.conf.js", |
|
112 |
"devServerTarget": "uoa-repository-manager-ui:serve" |
|
113 |
}, |
|
114 |
"configurations": { |
|
115 |
"production": { |
|
116 |
"devServerTarget": "uoa-repository-manager-ui:serve:production" |
|
117 |
} |
|
118 |
} |
|
119 |
}, |
|
120 |
"lint": { |
|
121 |
"builder": "@angular-devkit/build-angular:tslint", |
|
122 |
"options": { |
|
123 |
"tsConfig": "e2e/tsconfig.e2e.json", |
|
124 |
"exclude": [ |
|
125 |
"**/node_modules/**" |
|
126 |
] |
|
127 |
} |
|
128 |
} |
|
129 |
} |
|
130 |
} |
|
131 |
}, |
|
132 |
"defaultProject": "uoa-repository-manager-ui" |
|
133 |
} |
|
134 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/package.json | ||
---|---|---|
1 |
{ |
|
2 |
"name": "uoa-repository-manager-ui", |
|
3 |
"version": "0.0.0", |
|
4 |
"scripts": { |
|
5 |
"ng": "ng", |
|
6 |
"start": "ng serve", |
|
7 |
"start:proxy": "ng serve --proxy-config proxy.conf.json", |
|
8 |
"build": "rm -rf dist; ng build --prod", |
|
9 |
"test": "ng test", |
|
10 |
"lint": "ng lint", |
|
11 |
"e2e": "ng e2e" |
|
12 |
}, |
|
13 |
"private": true, |
|
14 |
"dependencies": { |
|
15 |
"@angular/animations": "^6.0.3", |
|
16 |
"@angular/common": "^6.0.3", |
|
17 |
"@angular/compiler": "^6.0.3", |
|
18 |
"@angular/core": "^6.0.3", |
|
19 |
"@angular/forms": "^6.0.3", |
|
20 |
"@angular/http": "^6.0.3", |
|
21 |
"@angular/platform-browser": "^6.0.3", |
|
22 |
"@angular/platform-browser-dynamic": "^6.0.3", |
|
23 |
"@angular/router": "^6.0.3", |
|
24 |
"angular2-cookie-law": "^6.0.4", |
|
25 |
"bootstrap": "^4.1.3", |
|
26 |
"core-js": "^2.5.4", |
|
27 |
"jquery": "^3.3.1", |
|
28 |
"ngx-bootstrap": "^3.0.1", |
|
29 |
"ngx-matomo": "^0.1.2", |
|
30 |
"rxjs": "6.3.3", |
|
31 |
"uikit": "^3.0.0-rc.19", |
|
32 |
"zone.js": "^0.8.26" |
|
33 |
}, |
|
34 |
"devDependencies": { |
|
35 |
"@angular-devkit/build-angular": "~0.6.8", |
|
36 |
"@angular/cli": "~6.0.8", |
|
37 |
"@angular/compiler-cli": "^6.0.3", |
|
38 |
"@angular/language-service": "^6.0.3", |
|
39 |
"@types/jasmine": "~2.8.6", |
|
40 |
"@types/jasminewd2": "~2.0.3", |
|
41 |
"@types/node": "~8.9.4", |
|
42 |
"codelyzer": "~4.2.1", |
|
43 |
"jasmine-core": "~2.99.1", |
|
44 |
"jasmine-spec-reporter": "~4.2.1", |
|
45 |
"karma": "~4.0.0", |
|
46 |
"karma-chrome-launcher": "~2.2.0", |
|
47 |
"karma-coverage-istanbul-reporter": "~2.0.0", |
|
48 |
"karma-jasmine": "~1.1.1", |
|
49 |
"karma-jasmine-html-reporter": "^0.2.2", |
|
50 |
"protractor": "^5.4.1", |
|
51 |
"ts-node": "~5.0.1", |
|
52 |
"tslint": "~5.9.1", |
|
53 |
"typescript": "~2.7.2" |
|
54 |
} |
|
55 |
} |
|
56 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/tsconfig.json | ||
---|---|---|
1 |
{ |
|
2 |
"compileOnSave": false, |
|
3 |
"compilerOptions": { |
|
4 |
"baseUrl": "./", |
|
5 |
"outDir": "./dist/out-tsc", |
|
6 |
"sourceMap": true, |
|
7 |
"declaration": false, |
|
8 |
"moduleResolution": "node", |
|
9 |
"emitDecoratorMetadata": true, |
|
10 |
"experimentalDecorators": true, |
|
11 |
"target": "es5", |
|
12 |
"typeRoots": [ |
|
13 |
"node_modules/@types" |
|
14 |
], |
|
15 |
"lib": [ |
|
16 |
"es2017", |
|
17 |
"dom" |
|
18 |
] |
|
19 |
} |
|
20 |
} |
|
21 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/.gitignore | ||
---|---|---|
1 |
# Logs |
|
2 |
logs |
|
3 |
*.log |
|
4 |
|
|
5 |
# Runtime data |
|
6 |
pids |
|
7 |
*.pid |
|
8 |
*.seed |
|
9 |
|
|
10 |
# Directory for instrumented libs generated by jscoverage/JSCover |
|
11 |
lib-cov |
|
12 |
|
|
13 |
# Coverage directory used by tools like istanbul |
|
14 |
coverage |
|
15 |
|
|
16 |
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) |
|
17 |
.grunt |
|
18 |
|
|
19 |
# Compiled binary addons (http://nodejs.org/api/addons.html) |
|
20 |
build/Release |
|
21 |
|
|
22 |
# Users Environment Variables |
|
23 |
.lock-wscript |
|
24 |
|
|
25 |
# OS generated files # |
|
26 |
.DS_Store |
|
27 |
ehthumbs.db |
|
28 |
Icon? |
|
29 |
Thumbs.db |
|
30 |
|
|
31 |
# Node Files # |
|
32 |
/node_modules |
|
33 |
/bower_components |
|
34 |
|
|
35 |
# Coverage # |
|
36 |
/coverage/ |
|
37 |
|
|
38 |
# Typing # |
|
39 |
/src/typings/tsd/ |
|
40 |
/typings/ |
|
41 |
/tsd_typings/ |
|
42 |
|
|
43 |
# Dist # |
|
44 |
/dist |
|
45 |
/public/__build__/ |
|
46 |
/src/*/__build__/ |
|
47 |
__build__/** |
|
48 |
.webpack.json |
|
49 |
|
|
50 |
# Doc # |
|
51 |
/doc/ |
|
52 |
|
|
53 |
# IDE # |
|
54 |
.idea/ |
|
55 |
*.swp |
modules/uoa-repository-dashboard-gui/branches/development/trunk/tslint.json | ||
---|---|---|
1 |
{ |
|
2 |
"rulesDirectory": [ |
|
3 |
"node_modules/codelyzer" |
|
4 |
], |
|
5 |
"rules": { |
|
6 |
"arrow-return-shorthand": true, |
|
7 |
"callable-types": true, |
|
8 |
"class-name": true, |
|
9 |
"comment-format": [ |
|
10 |
true, |
|
11 |
"check-space" |
|
12 |
], |
|
13 |
"curly": true, |
|
14 |
"deprecation": { |
|
15 |
"severity": "warn" |
|
16 |
}, |
|
17 |
"eofline": true, |
|
18 |
"forin": true, |
|
19 |
"import-blacklist": [ |
|
20 |
true, |
|
21 |
"rxjs/Rx" |
|
22 |
], |
|
23 |
"import-spacing": true, |
|
24 |
"indent": [ |
|
25 |
true, |
|
26 |
"spaces" |
|
27 |
], |
|
28 |
"interface-over-type-literal": true, |
|
29 |
"label-position": true, |
|
30 |
"max-line-length": [ |
|
31 |
true, |
|
32 |
140 |
|
33 |
], |
|
34 |
"member-access": false, |
|
35 |
"member-ordering": [ |
|
36 |
true, |
|
37 |
{ |
|
38 |
"order": [ |
|
39 |
"static-field", |
|
40 |
"instance-field", |
|
41 |
"static-method", |
|
42 |
"instance-method" |
|
43 |
] |
|
44 |
} |
|
45 |
], |
|
46 |
"no-arg": true, |
|
47 |
"no-bitwise": true, |
|
48 |
"no-console": [ |
|
49 |
true, |
|
50 |
"debug", |
|
51 |
"info", |
|
52 |
"time", |
|
53 |
"timeEnd", |
|
54 |
"trace" |
|
55 |
], |
|
56 |
"no-construct": true, |
|
57 |
"no-debugger": true, |
|
58 |
"no-duplicate-super": true, |
|
59 |
"no-empty": false, |
|
60 |
"no-empty-interface": true, |
|
61 |
"no-eval": true, |
|
62 |
"no-inferrable-types": [ |
|
63 |
true, |
|
64 |
"ignore-params" |
|
65 |
], |
|
66 |
"no-misused-new": true, |
|
67 |
"no-non-null-assertion": true, |
|
68 |
"no-shadowed-variable": true, |
|
69 |
"no-string-literal": false, |
|
70 |
"no-string-throw": true, |
|
71 |
"no-switch-case-fall-through": true, |
|
72 |
"no-trailing-whitespace": true, |
|
73 |
"no-unnecessary-initializer": true, |
|
74 |
"no-unused-expression": true, |
|
75 |
"no-use-before-declare": true, |
|
76 |
"no-var-keyword": true, |
|
77 |
"object-literal-sort-keys": false, |
|
78 |
"one-line": [ |
|
79 |
true, |
|
80 |
"check-open-brace", |
|
81 |
"check-catch", |
|
82 |
"check-else", |
|
83 |
"check-whitespace" |
|
84 |
], |
|
85 |
"prefer-const": true, |
|
86 |
"quotemark": [ |
|
87 |
true, |
|
88 |
"single" |
|
89 |
], |
|
90 |
"radix": true, |
|
91 |
"semicolon": [ |
|
92 |
true, |
|
93 |
"always" |
|
94 |
], |
|
95 |
"triple-equals": [ |
|
96 |
true, |
|
97 |
"allow-null-check" |
|
98 |
], |
|
99 |
"typedef-whitespace": [ |
|
100 |
true, |
|
101 |
{ |
|
102 |
"call-signature": "nospace", |
|
103 |
"index-signature": "nospace", |
|
104 |
"parameter": "nospace", |
|
105 |
"property-declaration": "nospace", |
|
106 |
"variable-declaration": "nospace" |
|
107 |
} |
|
108 |
], |
|
109 |
"unified-signatures": true, |
|
110 |
"variable-name": false, |
|
111 |
"whitespace": [ |
|
112 |
true, |
|
113 |
"check-branch", |
|
114 |
"check-decl", |
|
115 |
"check-operator", |
|
116 |
"check-separator", |
|
117 |
"check-type" |
|
118 |
], |
|
119 |
"no-output-on-prefix": true, |
|
120 |
"use-input-property-decorator": true, |
|
121 |
"use-output-property-decorator": true, |
|
122 |
"use-host-property-decorator": true, |
|
123 |
"no-input-rename": true, |
|
124 |
"no-output-rename": true, |
|
125 |
"use-life-cycle-interface": true, |
|
126 |
"use-pipe-transform-interface": true, |
|
127 |
"component-class-suffix": true, |
|
128 |
"directive-class-suffix": true |
|
129 |
} |
|
130 |
} |
|
131 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/index.html | ||
---|---|---|
1 |
<!doctype html> |
|
2 |
<html lang="en"> |
|
3 |
<head> |
|
4 |
<meta charset="utf-8"> |
|
5 |
<title>OpenAIRE's Repository Manager</title> |
|
6 |
<base href="/"> |
|
7 |
|
|
8 |
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
9 |
<link rel="icon" type="image/x-icon" href="favicon.ico"> |
|
10 |
|
|
11 |
|
|
12 |
<!-- Animation CSS --> |
|
13 |
<link type="text/css" href="assets/css/animate.css" rel="stylesheet"> |
|
14 |
<link type="text/css" href="assets/css/font-awesome/css/font-awesome.min.css" rel="stylesheet"> |
|
15 |
<link type="text/css" href="assets/css/plugins/steps/jquery.steps.css" rel="stylesheet"> |
|
16 |
|
|
17 |
|
|
18 |
<link type="text/css" href="assets/css/fonts/yanonekaffeesatz.css" rel="stylesheet"> |
|
19 |
|
|
20 |
<!-- stylesheets --> |
|
21 |
<link type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> |
|
22 |
|
|
23 |
<link type="text/css" rel="stylesheet" href="assets/css/theme.css"> |
|
24 |
|
|
25 |
<link type="text/css" rel="stylesheet" href="assets/css/RepositoryManager.css"> |
|
26 |
<link type="text/css" rel="stylesheet" href="assets/css/custom.css"> |
|
27 |
<link type="text/css" rel="stylesheet" href="assets/css/custom-provide.css"> |
|
28 |
|
|
29 |
<link type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans|Roboto|Roboto+Condensed" rel="stylesheet"> |
|
30 |
|
|
31 |
<script src="dist/polyfills.bundle.js"></script> |
|
32 |
<script src="https://code.jquery.com/jquery-3.2.1.min.js" |
|
33 |
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> |
|
34 |
|
|
35 |
<script src="assets/js/uikit-3/js/uikit.min.js"></script> |
|
36 |
<script src="assets/js/theme.js"></script> |
|
37 |
|
|
38 |
<!--NEW FONT AWESOME--> |
|
39 |
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" |
|
40 |
integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> |
|
41 |
|
|
42 |
</head> |
|
43 |
<body> |
|
44 |
|
|
45 |
<!-- RECOMMENDED if your web app will not function without JavaScript enabled --> |
|
46 |
<noscript> |
|
47 |
<div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif"> |
|
48 |
Your web browser must have JavaScript enabled |
|
49 |
in order for this application to display correctly. |
|
50 |
</div> |
|
51 |
</noscript> |
|
52 |
|
|
53 |
<oa-repo-manager> |
|
54 |
<div uk-spinner="ratio: 2" class="uk-overlay uk-position-center uk-dark" style="margin: auto"></div> |
|
55 |
</oa-repo-manager> |
|
56 |
|
|
57 |
</body> |
|
58 |
</html> |
|
59 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/karma.conf.js | ||
---|---|---|
1 |
// Karma configuration file, see link for more information |
|
2 |
// https://karma-runner.github.io/1.0/config/configuration-file.html |
|
3 |
|
|
4 |
module.exports = function (config) { |
|
5 |
config.set({ |
|
6 |
basePath: '', |
|
7 |
frameworks: ['jasmine', '@angular-devkit/build-angular'], |
|
8 |
plugins: [ |
|
9 |
require('karma-jasmine'), |
|
10 |
require('karma-chrome-launcher'), |
|
11 |
require('karma-jasmine-html-reporter'), |
|
12 |
require('karma-coverage-istanbul-reporter'), |
|
13 |
require('@angular-devkit/build-angular/plugins/karma') |
|
14 |
], |
|
15 |
client: { |
|
16 |
clearContext: false // leave Jasmine Spec Runner output visible in browser |
|
17 |
}, |
|
18 |
coverageIstanbulReporter: { |
|
19 |
dir: require('path').join(__dirname, '../coverage'), |
|
20 |
reports: ['html', 'lcovonly'], |
|
21 |
fixWebpackSourcePaths: true |
|
22 |
}, |
|
23 |
reporters: ['progress', 'kjhtml'], |
|
24 |
port: 9876, |
|
25 |
colors: true, |
|
26 |
logLevel: config.LOG_INFO, |
|
27 |
autoWatch: true, |
|
28 |
browsers: ['Chrome'], |
|
29 |
singleRun: false |
|
30 |
}); |
|
31 |
}; |
|
32 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/styles.scss | ||
---|---|---|
1 |
/* You can add global styles to this file, and also import other style files */ |
|
2 |
|
|
3 |
/*@import "../node_modules/bootstrap/dist/css/bootstrap.min.css"; |
|
4 |
@import "../node_modules/uikit/src/scss/variables-theme.scss"; |
|
5 |
@import "../node_modules/uikit/src/scss/mixins-theme.scss"; |
|
6 |
@import "../node_modules/uikit/src/scss/uikit-theme.scss";*/ |
|
7 |
|
|
8 |
/* |
|
9 |
@import "assets/css/fonts/yanonekaffeesatz.css"; |
|
10 |
*/ |
|
11 |
|
|
12 |
/*@import "assets/css/theme.css";*/ |
|
13 |
/*@import "assets/css/custom.css"; |
|
14 |
@import "assets/css/custom-provide.css"; |
|
15 |
@import "assets/css/repoManager.css"; |
|
16 |
@import "assets/css/RepositoryManager.css";*/ |
|
17 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/tsconfig.spec.json | ||
---|---|---|
1 |
{ |
|
2 |
"extends": "../tsconfig.json", |
|
3 |
"compilerOptions": { |
|
4 |
"outDir": "../out-tsc/spec", |
|
5 |
"module": "commonjs", |
|
6 |
"types": [ |
|
7 |
"jasmine", |
|
8 |
"node" |
|
9 |
] |
|
10 |
}, |
|
11 |
"files": [ |
|
12 |
"test.ts", |
|
13 |
"polyfills.ts" |
|
14 |
], |
|
15 |
"include": [ |
|
16 |
"**/*.spec.ts", |
|
17 |
"**/*.d.ts" |
|
18 |
] |
|
19 |
} |
|
20 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/app/app.module.ts | ||
---|---|---|
1 |
import { AppComponent } from './app.component'; |
|
2 |
import { NgModule } from '@angular/core'; |
|
3 |
import { BrowserModule } from '@angular/platform-browser'; |
|
4 |
import { NoopAnimationsModule } from '@angular/platform-browser/animations'; |
|
5 |
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; |
|
6 |
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; |
|
7 |
import { ReusableComponentsModule } from './shared/reusablecomponents/reusable-components.module'; |
|
8 |
import { CookieLawModule } from './shared/reusablecomponents/cookie-law/cookie-law.module'; |
|
9 |
import { AppRoutingModule } from './app-routing.module'; |
|
10 |
import { AuthenticationInterceptor } from './services/authentication-interceptor'; |
|
11 |
import { BrokerService } from './services/broker.service'; |
|
12 |
import { MonitorService } from './services/monitor.service'; |
|
13 |
import { PiwikService } from './services/piwik.service'; |
|
14 |
import { RepositoryService } from './services/repository.service'; |
|
15 |
import { ValidatorService } from './services/validator.service'; |
|
16 |
import { UsagestatsService } from './services/usagestats.service'; |
|
17 |
import { StatisticsService } from './services/statistics.service'; |
|
18 |
import { AuthGuardService } from './services/auth-guard.service'; |
|
19 |
import { AuthenticationService } from './services/authentication.service'; |
|
20 |
import { LandingComponent } from './pages/landing/landing.component'; |
|
21 |
import { DashboardComponent } from './pages/dashboard/dashboard.component'; |
|
22 |
import { MatomoModule } from 'ngx-matomo'; |
|
23 |
|
|
24 |
|
|
25 |
@NgModule({ |
|
26 |
declarations: [ |
|
27 |
AppComponent, |
|
28 |
LandingComponent, |
|
29 |
DashboardComponent |
|
30 |
], |
|
31 |
imports: [ |
|
32 |
BrowserModule, |
|
33 |
NoopAnimationsModule, |
|
34 |
FormsModule, |
|
35 |
ReactiveFormsModule, |
|
36 |
HttpClientModule, |
|
37 |
ReusableComponentsModule, |
|
38 |
CookieLawModule, |
|
39 |
MatomoModule, |
|
40 |
AppRoutingModule |
|
41 |
], |
|
42 |
providers: [ |
|
43 |
{ |
|
44 |
provide: HTTP_INTERCEPTORS, |
|
45 |
useClass: AuthenticationInterceptor, |
|
46 |
multi: true |
|
47 |
}, |
|
48 |
BrokerService, |
|
49 |
MonitorService, |
|
50 |
PiwikService, |
|
51 |
RepositoryService, |
|
52 |
ValidatorService, |
|
53 |
UsagestatsService, |
|
54 |
StatisticsService, |
|
55 |
AuthGuardService, |
|
56 |
AuthenticationService |
|
57 |
], |
|
58 |
bootstrap: [AppComponent] |
|
59 |
}) |
|
60 |
export class AppModule { } |
|
61 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/app/app-routing.module.ts | ||
---|---|---|
1 |
import { RouterModule, Routes } from '@angular/router'; |
|
2 |
import { NgModule } from '@angular/core'; |
|
3 |
import { LandingComponent } from './pages/landing/landing.component'; |
|
4 |
import { AuthGuardService } from './services/auth-guard.service'; |
|
5 |
import { DashboardComponent } from './pages/dashboard/dashboard.component'; |
|
6 |
import { ForbiddenPageComponent } from './shared/reusablecomponents/403-forbidden-page.component'; |
|
7 |
|
|
8 |
const appRoutes: Routes = [ |
|
9 |
{ |
|
10 |
path: '', |
|
11 |
redirectTo: '/landing', |
|
12 |
pathMatch: 'full' |
|
13 |
}, |
|
14 |
{ |
|
15 |
path: 'landing', |
|
16 |
component: LandingComponent |
|
17 |
}, |
|
18 |
{ |
|
19 |
path: 'dashboard', |
|
20 |
component: DashboardComponent, |
|
21 |
canActivate: [AuthGuardService] |
|
22 |
}, |
|
23 |
{ |
|
24 |
path: 'sources', |
|
25 |
loadChildren: './pages/sources/sources.module#SourcesModule', |
|
26 |
canActivate: [AuthGuardService] |
|
27 |
}, |
|
28 |
{ |
|
29 |
path: 'compatibility', |
|
30 |
loadChildren: './pages/compatibility/compatibility.module#CompatibilityModule' |
|
31 |
}, |
|
32 |
{ |
|
33 |
path: 'content', |
|
34 |
loadChildren: './pages/content/content.module#ContentModule', |
|
35 |
canActivate: [AuthGuardService] |
|
36 |
}, |
|
37 |
{ |
|
38 |
path: 'getImpact', |
|
39 |
loadChildren: './pages/metrics/metrics.module#MetricsModule', |
|
40 |
canActivate: [AuthGuardService] |
|
41 |
}, |
|
42 |
{ |
|
43 |
path: 'admin', |
|
44 |
loadChildren: './pages/adminPg/adminPg.module#AdminPgModule', |
|
45 |
}, |
|
46 |
{ |
|
47 |
path: '403-forbidden', |
|
48 |
component: ForbiddenPageComponent |
|
49 |
}, |
|
50 |
{ |
|
51 |
path: '**', |
|
52 |
redirectTo: '/landing' |
|
53 |
} |
|
54 |
]; |
|
55 |
|
|
56 |
|
|
57 |
@NgModule ({ |
|
58 |
imports: [RouterModule.forRoot(appRoutes)], |
|
59 |
exports: [RouterModule] |
|
60 |
}) |
|
61 |
|
|
62 |
export class AppRoutingModule {} |
|
63 |
|
|
64 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/app/app.component.spec.ts | ||
---|---|---|
1 |
import { TestBed, async } from '@angular/core/testing'; |
|
2 |
import { AppComponent } from './app.component'; |
|
3 |
describe('AppComponent', () => { |
|
4 |
beforeEach(async(() => { |
|
5 |
TestBed.configureTestingModule({ |
|
6 |
declarations: [ |
|
7 |
AppComponent |
|
8 |
], |
|
9 |
}).compileComponents(); |
|
10 |
})); |
|
11 |
it('should create the app', async(() => { |
|
12 |
const fixture = TestBed.createComponent(AppComponent); |
|
13 |
const app = fixture.debugElement.componentInstance; |
|
14 |
expect(app).toBeTruthy(); |
|
15 |
})); |
|
16 |
it(`should have as title 'app'`, async(() => { |
|
17 |
const fixture = TestBed.createComponent(AppComponent); |
|
18 |
const app = fixture.debugElement.componentInstance; |
|
19 |
expect(app.title).toEqual('app'); |
|
20 |
})); |
|
21 |
it('should render title in a h1 tag', async(() => { |
|
22 |
const fixture = TestBed.createComponent(AppComponent); |
|
23 |
fixture.detectChanges(); |
|
24 |
const compiled = fixture.debugElement.nativeElement; |
|
25 |
expect(compiled.querySelector('h1').textContent).toContain('Welcome to uoa-repository-manager-ui!'); |
|
26 |
})); |
|
27 |
}); |
|
28 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/app/pages/compatibility/compatibility-validate.component.html | ||
---|---|---|
1 |
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid=""> |
|
2 |
<div class="uk-width-1-1@m uk-first-column"> |
|
3 |
|
|
4 |
<h1 class="uk-h2">Validate your datasource</h1> |
|
5 |
|
|
6 |
<!-- TOP HELP CONTENT --> |
|
7 |
<help-content #topHelperContent [position]="'top'" |
|
8 |
[ngClass]="topHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'"> |
|
9 |
</help-content> |
|
10 |
|
|
11 |
<div class="uk-container uk-container-large uk-margin-medium-top uk-margin-medium-bottom"> |
|
12 |
<div class="uk-grid"> |
|
13 |
|
|
14 |
<!-- LEFT HELP CONTENT --> |
|
15 |
<aside-help-content #leftHelperContent [position]="'left'" |
|
16 |
[ngClass]="leftHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'"> |
|
17 |
</aside-help-content> |
|
18 |
|
|
19 |
<!-- MIDDLE --> |
|
20 |
<div class=" uk-width-expand@m"> |
|
21 |
|
|
22 |
<div> |
|
23 |
<div class="uk-margin uk-grid repositoryTypeSelection"> |
|
24 |
<div class="uk-width-expand@m uk-width-1-3@s uk-grid-item-match uk-first-column"> |
|
25 |
<div class="uk-text-center uk-card uk-card-default uk-card-hover uk-scrollspy-inview uk-animation-slide-top-medium" uk-scrollspy-class="" data-id="" style=""> |
|
26 |
<a class="uk-position-cover uk-margin-remove-adjacent" [routerLink]="['literature']" [queryParams]="{ step: 'baseUrl' }"></a> |
|
27 |
<div class="uk-card-media-top"> |
|
28 |
<img src="../../../assets/imgs/Literature_repos_wide.png" alt="" style="width:100%;"> |
|
29 |
</div> |
|
30 |
<div class="uk-card-body"> |
|
31 |
<h3 class="el-title uk-margin uk-card-title uk-margin-remove-adjacent uk-margin-small-bottom"> |
|
32 |
Run compatibility test against the OpenAIRE literature guidelines. |
|
33 |
</h3> |
|
34 |
</div> |
|
35 |
</div> |
|
36 |
</div> |
|
37 |
<div class="uk-width-expand@m uk-width-1-3@s uk-grid-item-match uk-first-column"> |
|
38 |
<div class="uk-text-center uk-card uk-card-default uk-card-hover uk-scrollspy-inview uk-animation-slide-top-medium" uk-scrollspy-class="" data-id="" style=""> |
|
39 |
<a class="el-link uk-position-cover uk-margin-remove-adjacent" [routerLink]="['data']" [queryParams]="{ step: 'baseUrl' }"></a> |
|
40 |
<div class="uk-card-media-top"> |
|
41 |
<img class="el-image" src="../../../assets/imgs/Data_repos_wide.png" alt="" style="width:100%;"> |
|
42 |
</div> |
|
43 |
<div class="uk-card-body"> |
|
44 |
<h3 class="el-title uk-margin uk-card-title uk-margin-remove-adjacent uk-margin-small-bottom"> |
|
45 |
Run compatibility test against the OpenAIRE Guidelines for Data Archives. |
|
46 |
</h3> |
|
47 |
</div> |
|
48 |
</div> |
|
49 |
</div> |
|
50 |
<div class="uk-width-expand@m uk-width-1-3@s uk-grid-item-match uk-first-column"> |
|
51 |
<div class="uk-text-center uk-card uk-card-default uk-card-hover uk-scrollspy-inview uk-animation-slide-top-medium" uk-scrollspy-class="" data-id="" style=""> |
|
52 |
<a class="el-link uk-position-cover uk-margin-remove-adjacent" [routerLink]="['cris']" [queryParams]="{ step: 'baseUrl' }"></a> |
|
53 |
<div class="uk-card-media-top"> |
|
54 |
<img class="el-image" src="../../../assets/imgs/CRIS_wide.png" alt="" style="width:100%;"> |
|
55 |
</div> |
|
56 |
<div class="uk-card-body"> |
|
57 |
<h3 class="el-title uk-margin uk-card-title uk-margin-remove-adjacent uk-margin-small-bottom"> |
|
58 |
Run compatibility test against the OpenAIRE Guidelines for CRIS Managers based on CERIF-XML. |
|
59 |
</h3> |
|
60 |
</div> |
|
61 |
</div> |
|
62 |
</div> |
|
63 |
</div> |
|
64 |
</div> |
|
65 |
|
|
66 |
</div> |
|
67 |
|
|
68 |
<!-- RIGHT HELP CONTENT --> |
|
69 |
<aside-help-content #rightHelperContent [position]="'right'" |
|
70 |
[ngClass]="rightHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'"> |
|
71 |
</aside-help-content> |
|
72 |
|
|
73 |
</div> |
|
74 |
</div> |
|
75 |
|
|
76 |
|
|
77 |
<!-- BOTTOM HELP CONTENT --> |
|
78 |
<help-content #bottomHelperContent [position]="'bottom'" |
|
79 |
[ngClass]="bottomHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'"> |
|
80 |
</help-content> |
|
81 |
|
|
82 |
|
|
83 |
</div> |
|
84 |
</div> |
|
85 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/app/pages/compatibility/compatibility-validation-history.component.html | ||
---|---|---|
1 |
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid=""> |
|
2 |
<div class="uk-width-1-1@m uk-first-column"> |
|
3 |
|
|
4 |
<h1 class="uk-h2">Previous validations</h1> |
|
5 |
|
|
6 |
<!-- TOP HELP CONTENT --> |
|
7 |
<help-content #topHelperContent [position]="'top'" |
|
8 |
[ngClass]="topHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'"> |
|
9 |
</help-content> |
|
10 |
|
|
11 |
<div class="uk-container uk-container-large uk-margin-medium-top uk-margin-medium-bottom"> |
|
12 |
<div class="uk-grid"> |
|
13 |
|
|
14 |
<!-- LEFT HELP CONTENT --> |
|
15 |
<aside-help-content #leftHelperContent [position]="'left'" |
|
16 |
[ngClass]="leftHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'"> |
|
17 |
</aside-help-content> |
|
18 |
|
|
19 |
<!-- MIDDLE --> |
|
20 |
<div class=" uk-width-expand@m"> |
|
21 |
|
|
22 |
<div *ngIf="successMessage" class="uk-alert uk-alert-success">{{ successMessage }}</div> |
|
23 |
<div *ngIf="failureMessage" class="uk-alert uk-alert-danger">{{ failureMessage }}</div> |
|
24 |
<div *ngIf="errorMessage" class="uk-alert uk-alert-danger">{{ errorMessage }}</div> |
|
25 |
<div *ngIf="loadingMessage" class="loading-big"> |
|
26 |
<div class="loader-big" |
|
27 |
style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;"> |
|
28 |
{{ loadingMessage }} |
|
29 |
</div> |
|
30 |
<div class="whiteFilm"></div> |
|
31 |
</div> |
|
32 |
<div *ngIf="jobsOfUser"> |
|
33 |
<div class="uk-grid page-controls"> |
|
34 |
<div class="uk-margin-bottom uk-width-1-1 filters"> |
|
35 |
<div class="links"> |
|
36 |
<div class="filterLabel">Filter by job type:</div> |
|
37 |
<div class="inlineBlock"> |
|
38 |
<select class="form-control" #selectType (change)="getJobType(selectType.value)"> |
|
39 |
<option value="">--none selected--</option> |
|
40 |
<option *ngFor="let type of jobTypes" value="{{type}}">{{type}}</option> |
|
41 |
</select> |
|
42 |
</div> |
|
43 |
</div> |
|
44 |
</div> |
|
45 |
<div class="uk-margin-bottom uk-width-1-1 filters"> |
|
46 |
<div class="links uk-inline"> |
|
47 |
<div class="filterLabel" style="display: inline;">Filter validation jobs:</div> |
|
48 |
<a class="uk-active" |
|
49 |
[class.active]="currentFilter==='all'" |
|
50 |
(click)="filterJobs('all')">All jobs ({{this.jobsOfUser.totalJobs}})</a> |
|
51 |
<a class="uk-active" |
|
52 |
[class.active]="currentFilter==='successful'" |
|
53 |
(click)="filterJobs('successful')">successful ({{this.jobsOfUser.totalJobsSuccessful}})</a> |
|
54 |
<a class="uk-active" |
|
55 |
[class.active]="currentFilter==='failed'" |
|
56 |
(click)="filterJobs('failed')">failed ({{this.jobsOfUser.totalJobsFailed}})</a> |
|
57 |
<a class="uk-active" |
|
58 |
[class.active]="currentFilter==='ongoing'" |
|
59 |
(click)="filterJobs('ongoing')">ongoing ({{this.jobsOfUser.totalJobsOngoing}})</a> |
|
60 |
</div> |
|
61 |
<div class="show-options uk-inline" style="float: right;"> |
|
62 |
<div class="filterLabel" style="display: inline;">Jobs per page:</div> |
|
63 |
<div class="inlineBlock"> |
|
64 |
<select #itemsPerPage class="form-control" (change)="getItemsPerPage(+itemsPerPage.value)"> |
|
65 |
<option value="10" selected>10</option> |
|
66 |
<option value="25">25</option> |
|
67 |
<option value="50">50</option> |
|
68 |
<option value="100">100</option> |
|
69 |
</select> |
|
70 |
</div> |
|
71 |
</div> |
|
72 |
</div> |
|
73 |
</div> |
|
74 |
<div class="contentAndPagerPanel"> |
|
75 |
<div> |
|
76 |
<ul class="uk-pagination"> |
|
77 |
<li> |
|
78 |
<a class="uk-link uk-link-muted" (click)="goToPreviousPage()"> |
|
79 |
<span class="uk-margin-small-right uk-pagination-previous uk-icon" uk-pagination-previous=""> |
|
80 |
<svg width="7" height="12" viewBox="0 0 7 12" xmlns="http://www.w3.org/2000/svg" |
|
81 |
icon="pagination-previous" ratio="1"></svg> |
|
82 |
</span> |
|
83 |
Previous |
|
84 |
</a> |
|
85 |
</li> |
|
86 |
<li class="uk-margin-auto-left"> |
|
87 |
<a class="uk-link uk-link-muted" (click)="goToNextPage()"> |
|
88 |
Next |
|
89 |
<span class="uk-margin-small-left uk-pagination-next uk-icon" uk-pagination-next=""> |
|
90 |
<svg width="7" height="12" viewBox="0 0 7 12" xmlns="http://www.w3.org/2000/svg" |
|
91 |
icon="pagination-next" ratio="1"></svg> |
|
92 |
</span> |
|
93 |
</a> |
|
94 |
</li> |
|
95 |
</ul> |
|
96 |
<div class="resultsPageLabel">page {{ (totalPages > 0) ? currentPage+1 : 0 }} of {{ totalPages }}</div> |
|
97 |
</div> |
|
98 |
<div> |
|
99 |
<div> |
|
100 |
<div class="uk-overflow-auto uk-scrollspy-inview uk-animation-slide-top-medium uk-margin-top uk-margin-bottom"> |
|
101 |
<table class="uk-table uk-table-middle uk-table-striped" style="vertical-align: top !important;"> |
|
102 |
<thead> |
|
103 |
<tr> |
|
104 |
<th>Repository</th> |
|
105 |
<th>Validation Type</th> |
|
106 |
<th>Status</th> |
|
107 |
<th>Score</th> |
|
108 |
<th>Started</th> |
|
109 |
<th>Guidelines</th> |
|
110 |
<th>Actions</th> |
|
111 |
<th></th> |
|
112 |
</tr> |
|
113 |
</thead> |
|
114 |
<tr *ngIf="infoMessage"> |
|
115 |
<td colspan="7">{{ infoMessage }}</td> |
|
116 |
</tr> |
|
117 |
<tbody *ngIf="jobsOfUser && jobsOfUser.jobs"> |
|
118 |
<tr class="el-item" *ngFor="let job of jobsOfUser.jobs"> |
|
119 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
120 |
<div class="el-title">{{ job.baseUrl }}</div> |
|
121 |
</td> |
|
122 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
123 |
<div *ngIf="job.validationType.includes('C')" class="el-title">OAI Content</div> |
|
124 |
<div *ngIf="job.validationType.includes('U')" class="el-title">OAI Usage</div> |
|
125 |
</td> |
|
126 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
127 |
<div *ngIf="job.validationType.includes('C')" class="el-title">{{ job.contentJobStatus }}</div> |
|
128 |
<div *ngIf="job.validationType.includes('U')" class="el-title">{{ job.usageJobStatus }}</div> |
|
129 |
</td> |
|
130 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
131 |
<div *ngIf="job.validationType.includes('C')" class="el-title">{{ job.contentJobScore }}</div> |
|
132 |
<div *ngIf="job.validationType.includes('U')" class="el-title">{{ job.usageJobScore }}</div> |
|
133 |
</td> |
|
134 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
135 |
<div class="el-title">{{ job.started }}</div> |
|
136 |
</td> |
|
137 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
138 |
<div class="el-title">{{ job.guidelinesShortName }}</div> |
|
139 |
</td> |
|
140 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
141 |
<div class="el-link"> |
|
142 |
<div class="viewDetailsLinkWrapper"> |
|
143 |
<a class="viewDetails" [routerLink]="[job.id]"> |
|
144 |
View Results<i class="fa fa-angle-right"></i> |
|
145 |
</a> |
|
146 |
</div> |
|
147 |
<div> |
|
148 |
<a class="resubmitJob" (click)="resubmitJob(job.id.toString(), job.userEmail)">Resubmit Job<i class="fa fa-repeat"></i></a> |
|
149 |
</div> |
|
150 |
</div> |
|
151 |
</td> |
|
152 |
<td class="uk-table-shrink" style="vertical-align: top !important;"> |
|
153 |
<img type="image" [src]="getResultImage(job.validationStatus)" title="{{job.validationStatus}}"> |
|
154 |
</td> |
|
155 |
</tr> |
|
156 |
</tbody> |
|
157 |
</table> |
|
158 |
</div> |
|
159 |
</div> |
|
160 |
</div> |
|
161 |
<div> |
|
162 |
<ul class="uk-pagination"> |
|
163 |
<li> |
|
164 |
<a class="uk-link uk-link-muted" (click)="goToPreviousPage()"> |
|
165 |
<span class="uk-margin-small-right uk-pagination-previous uk-icon" uk-pagination-previous=""> |
|
166 |
<svg width="7" height="12" viewBox="0 0 7 12" xmlns="http://www.w3.org/2000/svg" |
|
167 |
icon="pagination-previous" ratio="1"></svg> |
|
168 |
</span> |
|
169 |
Previous |
|
170 |
</a> |
|
171 |
</li> |
|
172 |
<li class="uk-margin-auto-left"> |
|
173 |
<a class="uk-link uk-link-muted" (click)="goToNextPage()"> |
|
174 |
Next |
|
175 |
<span class="uk-margin-small-left uk-pagination-next uk-icon" uk-pagination-next=""> |
|
176 |
<svg width="7" height="12" viewBox="0 0 7 12" xmlns="http://www.w3.org/2000/svg" |
|
177 |
icon="pagination-next" ratio="1"></svg> |
|
178 |
</span> |
|
179 |
</a> |
|
180 |
</li> |
|
181 |
</ul> |
|
182 |
<div class="resultsPageLabel">page {{ (totalPages > 0) ? currentPage+1 : 0 }} of {{ totalPages }}</div> |
|
183 |
</div> |
|
184 |
</div> |
|
185 |
<div class="row"></div> |
|
186 |
</div> |
|
187 |
|
|
188 |
</div> |
|
189 |
|
|
190 |
<!-- RIGHT HELP CONTENT --> |
|
191 |
<aside-help-content #rightHelperContent [position]="'right'" |
|
192 |
[ngClass]="rightHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'"> |
|
193 |
</aside-help-content> |
|
194 |
|
|
195 |
</div> |
|
196 |
</div> |
|
197 |
|
|
198 |
|
|
199 |
<!-- BOTTOM HELP CONTENT --> |
|
200 |
<help-content #bottomHelperContent [position]="'bottom'" |
|
201 |
[ngClass]="bottomHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'"> |
|
202 |
</help-content> |
|
203 |
|
|
204 |
|
|
205 |
</div> |
|
206 |
</div> |
|
207 |
|
|
208 | 0 |
modules/uoa-repository-dashboard-gui/branches/development/trunk/src/app/pages/compatibility/compatibility-validation-results.component.html | ||
---|---|---|
1 |
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid=""> |
|
2 |
<div class="uk-width-1-1@m uk-first-column"> |
|
3 |
|
|
4 |
<h1 class="uk-h2">Validation results for</h1> |
|
5 |
|
|
6 |
<!-- TOP HELP CONTENT --> |
|
7 |
<help-content #topHelperContent [position]="'top'" |
|
8 |
[ngClass]="topHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'"> |
|
9 |
</help-content> |
|
10 |
|
|
11 |
<div class="uk-container uk-container-large uk-margin-medium-top uk-margin-medium-bottom"> |
|
12 |
<div class="uk-grid"> |
|
13 |
|
|
14 |
<!-- LEFT HELP CONTENT --> |
|
15 |
<aside-help-content #leftHelperContent [position]="'left'" |
|
16 |
[ngClass]="leftHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'"> |
|
17 |
</aside-help-content> |
|
18 |
|
|
19 |
<!-- MIDDLE --> |
|
20 |
<div class=" uk-width-expand@m"> |
|
21 |
|
|
22 |
<div> |
|
23 |
<div *ngIf="errorMessage" class="uk-alert uk-alert-danger">{{ errorMessage }}</div> |
|
24 |
<div *ngIf="loadingMessage" class="loading-big"> |
|
25 |
<div class="loader-big" |
|
26 |
style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;"> |
|
27 |
{{ loadingMessage }} |
|
28 |
</div> |
|
29 |
<div class="whiteFilm"></div> |
|
30 |
</div> |
|
31 |
<div *ngIf="jobSummary"> |
|
32 |
<div> |
|
33 |
<div> |
|
34 |
<h4 class="uk-h4 uk-text-primary uk-scrollspy-inview uk-animation-slide-top-medium" |
|
35 |
uk-scrollspy-class=""><span>{{jobSummary.baseUrl}}</span></h4> |
|
36 |
<div class="uk-margin-small">by {{jobSummary.userEmail}}</div> |
|
37 |
</div> |
|
38 |
</div> |
|
39 |
<div> |
|
40 |
<div> |
|
41 |
<hr class="uk-scrollspy-inview uk-animation-slide-bottom-small" uk-scrollspy-class=""> |
|
42 |
<div> |
|
43 |
<span>{{ jobSummary.jobType }}</span> |
|
44 |
| |
|
45 |
<span>{{ jobSummary.guidelinesShortName }}</span> |
|
46 |
| |
|
47 |
<span>Validation set: {{ jobSummary.validationSet }}</span> |
|
48 |
</div> |
|
49 |
<div> |
|
50 |
<span>Started: {{ jobSummary.started }}</span> |
|
51 |
, |
|
52 |
<span>Ended: {{ jobSummary.ended ? jobSummary.ended : '--' }}</span> |
|
53 |
, |
|
54 |
<span>Duration: {{ jobSummary.duration }}</span> |
|
55 |
</div> |
|
56 |
<div style="font-size: 120%;"> |
|
57 |
<span>Records tested: {{ jobSummary.recordsTested }}</span> |
|
58 |
</div> |
|
59 |
<div> |
|
60 |
<span class="uk-label uk-margin-right">Score for content: {{ jobSummary.contentJobScore }}</span> |
|
61 |
<span class="uk-label">Score for usage: {{ jobSummary.usageJobScore }}</span> |
|
62 |
</div> |
|
63 |
<hr class="uk-scrollspy-inview uk-animation-slide-bottom-small" uk-scrollspy-class=""> |
|
64 |
</div> |
|
65 |
</div> |
|
66 |
<div> |
|
67 |
<ul class="uk-margin el-nav uk-tab" uk-switcher="connect: .uk-switcher"> |
|
68 |
<li routerLinkActive="uk-active"> |
|
69 |
<a href="#">for Content</a> |
|
70 |
</li> |
|
71 |
<li routerLinkActive="uk-active"> |
|
72 |
<a href="#">for Usage</a> |
|
73 |
</li> |
|
74 |
</ul> |
|
75 |
<ul class="uk-switcher"> |
|
76 |
<li class="el-item"> |
|
77 |
<div class="uk-grid-margin uk-grid uk-grid-stack"> |
|
78 |
<div class="uk-width-1-1@m uk-first-column"> |
|
79 |
<div class="uk-overflow-auto uk-scrollspy-inview uk-animation-slide-top-medium"> |
|
80 |
<div *ngIf="noContent" class="uk-alert">{{ noContent }}</div> |
|
81 |
<div *ngIf="contentResults && contentResults.length > 0"> |
|
82 |
<table class="uk-table uk-table-striped uk-table-middle rules-table"> |
|
83 |
<thead> |
|
84 |
<tr> |
|
85 |
<th>Rule Name</th> |
|
86 |
<th class="uk-text-nowrap">Rule Description</th> |
|
87 |
<th class="uk-text-nowrap">Rule Weight</th> |
|
88 |
<th class="uk-text-nowrap"># of records</th> |
|
89 |
<th class="uk-text-nowrap">Status</th> |
|
90 |
</tr> |
|
91 |
</thead> |
|
92 |
<tbody> |
|
93 |
<tr *ngFor="let contentRule of contentResults" class="el-item"> |
|
94 |
<td class="uk-table-shrink"> |
|
95 |
<div class="el-title">{{ contentRule.name }}</div> |
|
96 |
</td> |
|
97 |
<td class="uk-table-shrink"> |
|
98 |
<div class="el-title" [innerHtml]="contentRule.description"> |
|
99 |
</div> |
|
100 |
</td> |
|
101 |
<td class="uk-table-shrink"> |
|
102 |
<div class="el-title">{{ contentRule.weight }}</div> |
|
103 |
</td> |
|
104 |
<td class="uk-table-shrink"> |
|
105 |
<div class="el-title">{{ contentRule.successes }}</div> |
|
106 |
</td> |
|
107 |
<td class="uk-table-shrink"> |
|
108 |
<div *ngIf="!contentRule.hasErrors" class="el-title"> |
|
109 |
<span uk-icon="icon: check" style="color: #4b991f" class="uk-icon"> |
|
110 |
<!--<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" |
|
111 |
icon="check" ratio="1"> |
|
112 |
<polyline fill="none" stroke="#000" stroke-width="1.1" |
|
113 |
points="4,10 8,15 17,4"></polyline> |
|
114 |
</svg>--> |
|
115 |
</span> |
|
116 |
</div> |
|
117 |
<div *ngIf="contentRule.hasErrors && contentRule.mandatory"> |
|
118 |
<span uk-icon="icon: close" style="color: #cd242b" class="uk-icon"> |
|
119 |
<!--<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" |
|
120 |
icon="close" ratio="1"> |
|
121 |
<path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path> |
|
122 |
<path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path> |
|
123 |
</svg>--> |
|
124 |
</span> |
|
125 |
<a class="errorlink viewErrors uk-display-block" |
|
126 |
(click)="viewErrors(contentRule)"><span>View Errors</span></a> |
|
127 |
</div> |
|
128 |
<div *ngIf="contentRule.hasErrors && !contentRule.mandatory"> |
|
129 |
<span uk-icon="icon: warning" style="color: #e9d60d" class="uk-icon"> |
|
130 |
<!--<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" |
|
131 |
icon="warning" ratio="1"> |
|
132 |
<circle cx="10" cy="14" r="1"></circle> |
|
133 |
<circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle> |
|
134 |
<path |
|
135 |
d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path> |
|
136 |
</svg>--> |
|
137 |
</span> |
|
138 |
<a class="warninglink viewErrors uk-display-block" |
|
139 |
(click)="viewErrors(contentRule)"><span>View Warnings</span></a> |
|
140 |
</div> |
|
141 |
</td> |
|
142 |
</tr> |
|
143 |
</tbody> |
|
144 |
</table> |
|
145 |
</div> |
|
146 |
</div> |
|
147 |
</div> |
|
148 |
</div> |
|
149 |
</li> |
Also available in: Unified diff