Update the structure of the project
add funder and initiatives pages update the home page css updates git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor@54549 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
commit
dd76c389ac
|
@ -0,0 +1,110 @@
|
||||||
|
{
|
||||||
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||||
|
"project": {
|
||||||
|
"name": "ng-universal-demo"
|
||||||
|
},
|
||||||
|
"apps": [
|
||||||
|
{
|
||||||
|
"root": "src",
|
||||||
|
"outDir": "dist/browser",
|
||||||
|
"assets": [
|
||||||
|
"assets",
|
||||||
|
"favicon.ico"
|
||||||
|
],
|
||||||
|
"index": "index.html",
|
||||||
|
"main": "main.ts",
|
||||||
|
"polyfills": "polyfills.ts",
|
||||||
|
"test": "test.ts",
|
||||||
|
"tsconfig": "tsconfig.app.json",
|
||||||
|
"testTsconfig": "tsconfig.spec.json",
|
||||||
|
"prefix": "app",
|
||||||
|
"styles": [
|
||||||
|
"styles.css",
|
||||||
|
"../node_modules/datatables.net-dt/css/jquery.dataTables.css"
|
||||||
|
],
|
||||||
|
"scripts": [
|
||||||
|
"../node_modules/jquery/dist/jquery.js",
|
||||||
|
"../node_modules/datatables.net/js/jquery.dataTables.js"
|
||||||
|
],
|
||||||
|
"environmentSource": "environments/environment.ts",
|
||||||
|
"environments": {
|
||||||
|
"dev": "environments/environment.ts",
|
||||||
|
"prod": "environments/environment.prod.ts"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"platform": "server",
|
||||||
|
"root": "src",
|
||||||
|
"outDir": "dist/server",
|
||||||
|
"assets": [
|
||||||
|
"assets",
|
||||||
|
"favicon.ico"
|
||||||
|
],
|
||||||
|
"index": "index.html",
|
||||||
|
"main": "main.server.ts",
|
||||||
|
"test": "test.ts",
|
||||||
|
"tsconfig": "tsconfig.server.json",
|
||||||
|
"testTsconfig": "tsconfig.spec.json",
|
||||||
|
"prefix": "app",
|
||||||
|
"styles": [
|
||||||
|
"styles.css"
|
||||||
|
],
|
||||||
|
"scripts": [],
|
||||||
|
"environmentSource": "environments/environment.ts",
|
||||||
|
"environments": {
|
||||||
|
"dev": "environments/environment.ts",
|
||||||
|
"prod": "environments/environment.prod.ts"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"e2e": {
|
||||||
|
"protractor": {
|
||||||
|
"config": "./protractor.conf.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lint": [
|
||||||
|
{
|
||||||
|
"project": "src/tsconfig.app.json",
|
||||||
|
"exclude": "**/node_modules/**"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"project": "src/tsconfig.spec.json",
|
||||||
|
"exclude": "**/node_modules/**"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"project": "e2e/tsconfig.e2e.json",
|
||||||
|
"exclude": "**/node_modules/**"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"test": {
|
||||||
|
"karma": {
|
||||||
|
"config": "./karma.conf.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaults": {
|
||||||
|
"styleExt": "css",
|
||||||
|
"component": {
|
||||||
|
"spec": false,
|
||||||
|
"inlineStyle": true,
|
||||||
|
"inlineTemplate": true
|
||||||
|
},
|
||||||
|
"directive": {
|
||||||
|
"spec": false
|
||||||
|
},
|
||||||
|
"class": {
|
||||||
|
"spec": false
|
||||||
|
},
|
||||||
|
"guard": {
|
||||||
|
"spec": false
|
||||||
|
},
|
||||||
|
"module": {
|
||||||
|
"spec": false
|
||||||
|
},
|
||||||
|
"pipe": {
|
||||||
|
"spec": false
|
||||||
|
},
|
||||||
|
"service": {
|
||||||
|
"spec": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
# Angular Universal & Anguar-CLI minimal starter
|
||||||
|
|
||||||
|
> This demo is built following the [Angular-CLI Wiki guide](https://github.com/angular/angular-cli/wiki/stories-universal-rendering)
|
||||||
|
|
||||||
|
We're utilizing packages from the [Angular Universal @nguniversal](https://github.com/angular/universal) repo, such as [ng-module-map-ngfactory-loader](https://github.com/angular/universal/tree/master/modules/module-map-ngfactory-loader) to enable Lazy Loading.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Static or Dynamic
|
||||||
|
This repo demonstrates the use of 2 different forms of Server Side Rendering.
|
||||||
|
|
||||||
|
**Static** Also known as "prerendering"
|
||||||
|
* Happens at build time
|
||||||
|
* Renders your application and replaces the dist index.html with a version rendered at the route `/`.
|
||||||
|
|
||||||
|
**Dynamic**
|
||||||
|
* Happens at runtime
|
||||||
|
* Uses `ngExpressEngine` to render you application on the fly at the requested url.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
* `npm install` or `yarn`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Development (Client-side only rendering)
|
||||||
|
* run `npm run start` which will start `ng serve` (project served at the standard: localhost:4200)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Production
|
||||||
|
|
||||||
|
Depending on whether you're publishing dynamic or static prerendering, run the build command, and then serve up your dist folder assets.
|
||||||
|
|
||||||
|
> **NOTE**: To deploy your **Static** site to a static hosting platform you will have to deploy the *`dist/browser`* folder, rather than the usual *`dist`*
|
||||||
|
|
||||||
|
ie: `npm run build:dynamic` or `npm run build:static`. All of the files that need to be served will be found within the `/dist` folder.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Testing Universal (dynamic or static) builds -Locally-
|
||||||
|
|
||||||
|
**Dynamic** : **`npm run start:dynamic`**
|
||||||
|
|
||||||
|
Compiles your application and spins up a Node Express to dynamically serve your Universal application on `http://localhost:4000`.
|
||||||
|
|
||||||
|
**Static** : **`npm run start:static`**
|
||||||
|
|
||||||
|
- Compiles your application and prerenders your applications files, spinning up a demo http-server so you can view it on `http://127.0.0.1:8080`
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
{
|
||||||
|
"enablePiwikTrack" : true,
|
||||||
|
"enableHelper" : true,
|
||||||
|
"useCache" : true,
|
||||||
|
"showContent" : false,
|
||||||
|
"metricsAPIURL" : "https://beta.services.openaire.eu/usagestats/",
|
||||||
|
"framesAPIURL" : "https://beta.openaire.eu/stats3/",
|
||||||
|
"statisticsAPIURL" : "https://beta.services.openaire.eu/stats-api/",
|
||||||
|
"statisticsFrameAPIURL":"https://beta.openaire.eu/stats/",
|
||||||
|
"claimsAPIURL" : "https://beta.services.openaire.eu/claims/rest/claimsService/",
|
||||||
|
"searchAPIURLLAst" : "https://beta.services.openaire.eu/search/v2/api/",
|
||||||
|
"searchResourcesAPIURL" : "https://beta.services.openaire.eu/search/v2/api/resources",
|
||||||
|
"csvAPIURL" : "https://beta.services.openaire.eu/search/v2/api/reports",
|
||||||
|
"searchCrossrefAPIURL" : "https://api.crossref.org/works",
|
||||||
|
"searchDataciteAPIURL" : "https://api.datacite.org/works",
|
||||||
|
"searchOrcidURL" : "https://pub.orcid.org/v2.1/",
|
||||||
|
"pmidURL" : "http://www.ncbi.nlm.nih.gov/pubmed/",
|
||||||
|
"doiURL" : "https://dx.doi.org/",
|
||||||
|
"cordisURL" : "http://cordis.europa.eu/projects/",
|
||||||
|
"pmcURL" : "http://europepmc.org/articles/",
|
||||||
|
"handleURL" : "http://hdl.handle.net/",
|
||||||
|
"zenodo" : "https://zenodo.org/",
|
||||||
|
"openAccess" : "https://www.openaire.eu/support/faq#article-id-234",
|
||||||
|
"openAccessRepo" : "https://www.openaire.eu/support/faq#article-id-310",
|
||||||
|
"fp7Guidlines" : "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",
|
||||||
|
"h2020Guidlines" : "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020",
|
||||||
|
"ercGuidlines" : "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf",
|
||||||
|
"helpdesk" : "https://www.openaire.eu/support/helpdesk",
|
||||||
|
"uploadService" : "https://demo.openaire.eu/upload/",
|
||||||
|
|
||||||
|
"vocabulariesAPI" :"https://beta.services.openaire.eu/provision/mvc/vocabularies/",
|
||||||
|
|
||||||
|
"piwikBaseUrl" :"https://analytics.openaire.eu/piwik.php?idsite=",
|
||||||
|
"piwikSiteId" : "80",
|
||||||
|
"loginUrl" :"https://beta.services.openaire.eu/connect-user-management/openid_connect_login",
|
||||||
|
|
||||||
|
"logoutUrl" :"https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",
|
||||||
|
|
||||||
|
"logoutOpenaireUrl" :"http://dl067.madgik.di.uoa.gr/idp/profile/Logout",
|
||||||
|
|
||||||
|
"cookieDomain" :".openaire.eu",
|
||||||
|
|
||||||
|
"feedbackmail" :"openaire.test@gmail.com",
|
||||||
|
|
||||||
|
"helperPageUrl" :"http://scoobydoo.di.uoa.gr:16000/api/page/route",
|
||||||
|
|
||||||
|
"cacheUrl" :"https://demo.openaire.eu/cache/get?url=",
|
||||||
|
|
||||||
|
"datasourcesAPI": "https://beta.services.openaire.eu/openaire/ds/search/",
|
||||||
|
|
||||||
|
"adminToolsAPIURL" :"https://beta.services.openaire.eu/uoa-admin-tools",
|
||||||
|
|
||||||
|
"adminToolsCommunity" :"openaire",
|
||||||
|
"contextsAPI":"https://beta.services.openaire.eu/openaire/context",
|
||||||
|
"communityAPI": "https://beta.services.openaire.eu/openaire/community/",
|
||||||
|
"communitiesAPI": "https://beta.services.openaire.eu/openaire/community/communities",
|
||||||
|
|
||||||
|
"csvLimit": 2000,
|
||||||
|
"pagingLimit": 20,
|
||||||
|
"resultsPerPage": 10,
|
||||||
|
|
||||||
|
"baseLink" : "https://beta.connect.openaire.eu",
|
||||||
|
|
||||||
|
"searchLinkToPublication" : "/search/publication?articleId=",
|
||||||
|
"searchLinkToProject" : "/search/project?projectId=",
|
||||||
|
"searchLinkToDataProvider" : "/search/dataprovider?datasourceId=",
|
||||||
|
"searchLinkToDataset" : "/search/dataset?datasetId=",
|
||||||
|
"searchLinkToOrganization" : "/search/organization?organizationId=",
|
||||||
|
|
||||||
|
"searchLinkToPublications" : "/search/find/publications",
|
||||||
|
"searchLinkToDataProviders" : "/search/find/dataproviders",
|
||||||
|
"searchLinkToProjects" : "/search/find/projects",
|
||||||
|
"searchLinkToDatasets" : "/search/find/datasets",
|
||||||
|
"searchLinkToSoftware" : "/search/find/software",
|
||||||
|
"searchLinkToOrganizations" : "/search/find/organizations",
|
||||||
|
"searchLinkToCompatibleDataProviders" : "/search/content-providers",
|
||||||
|
"searchLinkToCompatibleDataProvidersTable" : "/search/content-providers-table",
|
||||||
|
"searchLinkToEntityRegistriesDataProviders" : "/search/entity-registries",
|
||||||
|
"searchLinkToEntityRegistriesDataProvidersTable" : "/search/entity-registries-table",
|
||||||
|
"searchLinkToJournals" : "/search/journals",
|
||||||
|
"searchLinkToJournalsTable" : "/search/journals-table",
|
||||||
|
|
||||||
|
"searchLinkToAdvancedPublications" : "/search/advanced/publications",
|
||||||
|
"searchLinkToAdvancedProjects" : "/search/advanced/projects",
|
||||||
|
"searchLinkToAdvancedDatasets" : "/search/advanced/datasets",
|
||||||
|
"searchLinkToAdvancedSoftware" : "/search/advanced/software",
|
||||||
|
"searchLinkToAdvancedDataProviders" : "/search/advanced/dataproviders",
|
||||||
|
"searchLinkToAdvancedOrganizations" : "/search/advanced/organizations",
|
||||||
|
"searchLinkToAdvancedPeople" : "/search/advanced/people"
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
##ATTENTION
|
||||||
|
## DON'T run it in svn folder - it *REMOVES* files
|
||||||
|
## Copy project in another file "deploy-folder"
|
||||||
|
## cd "deploy-folder"
|
||||||
|
## run the script
|
||||||
|
|
||||||
|
## uncommect from here-->
|
||||||
|
# cp monitor-beta-properties.json src/assets/env-properties.json;
|
||||||
|
# rm -rf src/assets/common-assets/.svn/;
|
||||||
|
# rm -rf src/app/openaireLibrary/.svn/;
|
||||||
|
# pico src/app/openaireLibrary/utils/properties/environment-specific.service.ts;
|
||||||
|
# npm run build:dynamic;
|
||||||
|
# rm -rf src node_modules .idea/ connect-production-properties.json installOpenaireLib.sh;
|
||||||
|
# echo 'Ready!';
|
||||||
|
# echo 'Now copy to the server!'
|
||||||
|
##<-- to here
|
||||||
|
|
||||||
|
##copy "deploy-folder" in beta.connect.openaire.eu
|
||||||
|
##coppies of previous deployments exist in "/home/argiro.kokogiannaki/connect-portal/connectYYYY-MM-DD"
|
||||||
|
##run "npm i"
|
||||||
|
##become nodejs user: "sudo su nodejs -s /bin/bash"
|
||||||
|
##go to "cd /srv/www/portal"
|
||||||
|
##cp files from "cp -r HOME_PATH/deploy-folder/* ."
|
||||||
|
##restart portal "pm2 restart connect"
|
|
@ -0,0 +1,63 @@
|
||||||
|
{
|
||||||
|
"name": "openaire-connect",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "Openaire",
|
||||||
|
"contributors": [
|
||||||
|
"Argiro Kokogiannaki <argirok@di.uoa.gr>",
|
||||||
|
"Konstantina Galouni <kgalouni@di.uoa.gr>"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"ng": "ng",
|
||||||
|
"start": " ng serve --disable-host-check --host 0.0.0.0",
|
||||||
|
"start:dynamic": "PORT=5000 npm run build:dynamic && npm run serve:dynamic",
|
||||||
|
"start:static": "npm run build:static && npm run serve:static",
|
||||||
|
"build": "ng build",
|
||||||
|
"build:client-and-server-bundles": "ng build --prod -sm --stats-json && ng build --prod --app 1 --output-hashing=false",
|
||||||
|
"build:static": "npm run build:client-and-server-bundles && npm run webpack:server && npm run generate:static",
|
||||||
|
"build:dynamic": "npm run build:client-and-server-bundles && npm run webpack:server",
|
||||||
|
"generate:static": "cd dist && node prerender",
|
||||||
|
"webpack:server": "webpack --config webpack.server.config.js --progress --colors",
|
||||||
|
"serve:static": "cd dist/browser && http-server",
|
||||||
|
"serve:dynamic": "node dist/server"
|
||||||
|
},
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/animations": "^4.2.4",
|
||||||
|
"@angular/common": "^4.2.4",
|
||||||
|
"@angular/compiler": "^4.2.4",
|
||||||
|
"@angular/core": "^4.2.4",
|
||||||
|
"@angular/forms": "^4.2.4",
|
||||||
|
"@angular/http": "^4.2.4",
|
||||||
|
"@angular/platform-browser": "^4.2.4",
|
||||||
|
"@angular/platform-browser-dynamic": "^4.2.4",
|
||||||
|
"@angular/platform-server": "^4.2.4",
|
||||||
|
"@angular/router": "^4.2.4",
|
||||||
|
"@nguniversal/express-engine": "^1.0.0-beta.3",
|
||||||
|
"@nguniversal/module-map-ngfactory-loader": "^1.0.0-beta.3",
|
||||||
|
"angular-datatables": "^4.4.0",
|
||||||
|
"citation-js": "^0.3.4",
|
||||||
|
"clipboard": "^1.5.16",
|
||||||
|
"core-js": "^2.4.1",
|
||||||
|
"datatables.net": "^1.10.16",
|
||||||
|
"datatables.net-dt": "^1.10.16",
|
||||||
|
"jquery": "^3.2.1",
|
||||||
|
"ngx-json-ld": "0.1.6",
|
||||||
|
"rxjs": "^5.4.2",
|
||||||
|
"ts-md5": "^1.2.0",
|
||||||
|
"wikidata-sdk": "^5.2.9",
|
||||||
|
"zone.js": "^0.8.14"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@angular/cli": "^1.3.0",
|
||||||
|
"@angular/compiler-cli": "^4.2.4",
|
||||||
|
"@angular/language-service": "^4.2.4",
|
||||||
|
"@types/datatables.net": "^1.10.8",
|
||||||
|
"@types/jquery": "^3.2.17",
|
||||||
|
"@types/node": "^8.0.30",
|
||||||
|
"cpy-cli": "^1.0.1",
|
||||||
|
"http-server": "^0.10.0",
|
||||||
|
"reflect-metadata": "^0.1.10",
|
||||||
|
"ts-loader": "^2.3.7",
|
||||||
|
"typescript": "~2.3.3"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
// Load zone.js for the server.
|
||||||
|
import 'zone.js/dist/zone-node';
|
||||||
|
import 'reflect-metadata';
|
||||||
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'fs';
|
||||||
|
import { join } from 'path';
|
||||||
|
|
||||||
|
import { enableProdMode } from '@angular/core';
|
||||||
|
// Faster server renders w/ Prod mode (dev mode never needed)
|
||||||
|
enableProdMode();
|
||||||
|
|
||||||
|
// Express Engine
|
||||||
|
import { ngExpressEngine } from '@nguniversal/express-engine';
|
||||||
|
// Import module map for lazy loading
|
||||||
|
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
|
||||||
|
import { renderModuleFactory } from '@angular/platform-server';
|
||||||
|
import { ROUTES } from './static.paths';
|
||||||
|
|
||||||
|
// * NOTE :: leave this as require() since this file is built Dynamically from webpack
|
||||||
|
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/server/main.bundle');
|
||||||
|
|
||||||
|
const BROWSER_FOLDER = join(process.cwd(), 'browser');
|
||||||
|
|
||||||
|
// Load the index.html file containing referances to your application bundle.
|
||||||
|
const index = readFileSync(join('browser', 'index.html'), 'utf8');
|
||||||
|
|
||||||
|
let previousRender = Promise.resolve();
|
||||||
|
|
||||||
|
// Iterate each route path
|
||||||
|
ROUTES.forEach(route => {
|
||||||
|
var fullPath = join(BROWSER_FOLDER, route);
|
||||||
|
|
||||||
|
// Make sure the directory structure is there
|
||||||
|
if(!existsSync(fullPath)){
|
||||||
|
mkdirSync(fullPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Writes rendered HTML to index.html, replacing the file if it already exists.
|
||||||
|
previousRender = previousRender.then(_ => renderModuleFactory(AppServerModuleNgFactory, {
|
||||||
|
document: index,
|
||||||
|
url: route,
|
||||||
|
extraProviders: [
|
||||||
|
provideModuleMap(LAZY_MODULE_MAP)
|
||||||
|
]
|
||||||
|
})).then(html => writeFileSync(join(fullPath, 'index.html'), html));
|
||||||
|
});
|
|
@ -0,0 +1,58 @@
|
||||||
|
import 'zone.js/dist/zone-node';
|
||||||
|
import 'reflect-metadata';
|
||||||
|
import { renderModuleFactory } from '@angular/platform-server';
|
||||||
|
import { enableProdMode } from '@angular/core';
|
||||||
|
|
||||||
|
import * as express from 'express';
|
||||||
|
import { join } from 'path';
|
||||||
|
import { readFileSync } from 'fs';
|
||||||
|
|
||||||
|
// Faster server renders w/ Prod mode (dev mode never needed)
|
||||||
|
enableProdMode();
|
||||||
|
|
||||||
|
// Express server
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
const PORT = process.env.PORT || 4000;
|
||||||
|
const DIST_FOLDER = join(process.cwd(), 'dist');
|
||||||
|
|
||||||
|
// Our index.html we'll use as our template
|
||||||
|
const template = readFileSync(join(DIST_FOLDER, 'browser', 'index.html')).toString();
|
||||||
|
|
||||||
|
// * NOTE :: leave this as require() since this file is built Dynamically from webpack
|
||||||
|
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/server/main.bundle');
|
||||||
|
|
||||||
|
// Express Engine
|
||||||
|
import { ngExpressEngine } from '@nguniversal/express-engine';
|
||||||
|
// Import module map for lazy loading
|
||||||
|
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
|
||||||
|
|
||||||
|
// Our Universal express-engine (found @ https://github.com/angular/universal/tree/master/modules/express-engine)
|
||||||
|
app.engine('html', ngExpressEngine({
|
||||||
|
bootstrap: AppServerModuleNgFactory,
|
||||||
|
providers: [
|
||||||
|
provideModuleMap(LAZY_MODULE_MAP)
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
|
||||||
|
app.set('view engine', 'html');
|
||||||
|
app.set('views', join(DIST_FOLDER, 'browser'));
|
||||||
|
|
||||||
|
/* - Example Express Rest API endpoints -
|
||||||
|
app.get('/api/**', (req, res) => { });
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Server static files from /browser
|
||||||
|
app.get('*.*', express.static(join(DIST_FOLDER, 'browser'), {
|
||||||
|
maxAge: '1y'
|
||||||
|
}));
|
||||||
|
|
||||||
|
// ALl regular routes use the Universal engine
|
||||||
|
app.get('*', (req, res) => {
|
||||||
|
res.render('index', { req });
|
||||||
|
});
|
||||||
|
|
||||||
|
// Start up the Node server
|
||||||
|
app.listen(PORT, () => {
|
||||||
|
console.log(`Node Express server listening on http://localhost:${PORT}`);
|
||||||
|
});
|
|
@ -0,0 +1,25 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { EnvironmentSpecificResolver} from './openaireLibrary/utils/properties/environmentSpecificResolver';
|
||||||
|
import { EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
|
||||||
|
|
||||||
|
import { OpenaireErrorPageComponent } from './error/errorPage.component';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{ path: '', loadChildren: './home/home.module#HomeModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
|
||||||
|
{ path: 'initiatives', loadChildren: './initiatives/communities/communities.module#CommunitiesModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
|
||||||
|
{ path: 'initiatives/:id', loadChildren: './initiatives/community/community.module#CommunityModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
|
||||||
|
|
||||||
|
{ path: 'reload', loadChildren: './reload/libReload.module#LibReloadModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
|
||||||
|
{ path: 'user-info', loadChildren: './login/libUser.module#LibUserModule', resolve: { envSpecific: EnvironmentSpecificResolver }},
|
||||||
|
{ path: 'error', component: OpenaireErrorPageComponent, resolve: { envSpecific: EnvironmentSpecificResolver }},
|
||||||
|
{ path: '**',pathMatch: 'full',component: OpenaireErrorPageComponent, resolve: { envSpecific: EnvironmentSpecificResolver }}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forRoot(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
providers: [EnvironmentSpecificResolver, EnvironmentSpecificService]
|
||||||
|
})
|
||||||
|
export class AppRoutingModule { }
|
|
@ -0,0 +1,95 @@
|
||||||
|
import { Component, Directive, ElementRef, Renderer, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
import {ActivatedRoute} from '@angular/router';
|
||||||
|
|
||||||
|
import { EnvProperties} from './openaireLibrary/utils/properties/env-properties';
|
||||||
|
import{MenuItem, RootMenuItem} from './openaireLibrary/sharedComponents/menu';
|
||||||
|
import { EnvironmentSpecificService} from './openaireLibrary/utils/properties/environment-specific.service';
|
||||||
|
import {Session} from './openaireLibrary/login/utils/helper.class';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
//changeDetection: ChangeDetectionStrategy.Default,
|
||||||
|
//encapsulation: ViewEncapsulation.Emulated,
|
||||||
|
selector: 'app-root',
|
||||||
|
styles: [`
|
||||||
|
`],
|
||||||
|
template: `
|
||||||
|
|
||||||
|
<navbar *ngIf= "properties " portal="monitor" [onlyTop]=false [userMenuItems]=userMenuItems [menuItems]=menuItems logoPath="assets/"
|
||||||
|
[(APIUrl)]="properties.adminToolsAPIURL" [(logInUrl)]="properties.loginUrl" [(logOutUrl)]="properties.logoutUrl" [(cookieDomain)]="properties.cookieDomain"
|
||||||
|
></navbar>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="custom-main-content" >
|
||||||
|
<main>
|
||||||
|
<router-outlet></router-outlet>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
<feedback *ngIf= "isClient && properties" portalName="Connect" [feedbackmail]=properties.feedbackmail></feedback>
|
||||||
|
<cookie-law *ngIf= "isClient" position="bottom">
|
||||||
|
OpenAIRE uses cookies in order to function properly.<br>
|
||||||
|
Cookies are small pieces of data that websites store in your browser to allow us to give you the best browsing experience possible.
|
||||||
|
By using the OpenAIRE portal you accept our use of cookies. <a href="//ec.europa.eu/ipg/basics/legal/cookies/index_en.htm" target="_blank"> Read more <span class="uk-icon">
|
||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="chevron-right" ratio="1"><polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline></svg>
|
||||||
|
</span></a>
|
||||||
|
</cookie-law>
|
||||||
|
<bottom *ngIf= "isClient" [menuItems]=bottomMenuItems></bottom>
|
||||||
|
|
||||||
|
`
|
||||||
|
|
||||||
|
})
|
||||||
|
export class AppComponent {
|
||||||
|
isClient:boolean = false;
|
||||||
|
userMenuItems:MenuItem[] =[];
|
||||||
|
menuItems:RootMenuItem []=[];
|
||||||
|
bottomMenuItems:MenuItem[] =[];
|
||||||
|
properties:EnvProperties;
|
||||||
|
|
||||||
|
constructor( private route: ActivatedRoute, private propertiesService:EnvironmentSpecificService ) {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.propertiesService.loadEnvironment()
|
||||||
|
.then(es => {
|
||||||
|
this.propertiesService.setEnvProperties(es);
|
||||||
|
this.properties = this.propertiesService.envSpecific;
|
||||||
|
this.bottomMenuItems =[
|
||||||
|
new MenuItem("","About","https://beta.openaire.eu/project-factsheets","",false,[],[],{}),
|
||||||
|
new MenuItem("","News - Events","https://beta.openaire.eu/news-events","",false,[],[],{}),
|
||||||
|
new MenuItem("","Blog","https://blogs.openaire.eu/","",false,[],[],{}),
|
||||||
|
new MenuItem("","Contact us","https://beta.openaire.eu/contact-us","",false,[],[],{})
|
||||||
|
];
|
||||||
|
this.userMenuItems =[
|
||||||
|
//new MenuItem("","My links","","/myclaims",false,[],["/myclaims"],{})
|
||||||
|
];
|
||||||
|
this.menuItems = [
|
||||||
|
{rootItem: new MenuItem("funders","Funders","","/search/find",false,[],["/search/find"],{}),
|
||||||
|
items: [new MenuItem("","Publications","","/search/find/publications",false,["publication"],["/search/find/publications"],{})
|
||||||
|
]},
|
||||||
|
{
|
||||||
|
rootItem: new MenuItem("ris","Research initiatives","","",false,[],["/participate/deposit-publications","/participate/deposit-datasets"],{}),
|
||||||
|
items: [new MenuItem("","Publications","","/participate/deposit-publications",false,["publication"],["/participate/deposit-publications"],{}),
|
||||||
|
new MenuItem("","Research Data","","/participate/deposit-datasets",false,["dataset"],["/participate/deposit-datasets"],{})]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
rootItem: new MenuItem("link","Link","","/participate/claim",false,[],["/participate/claim"],{}),
|
||||||
|
items: []
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
// this.route.queryParams.subscribe(data => {
|
||||||
|
//
|
||||||
|
// });
|
||||||
|
if (typeof document !== 'undefined') {
|
||||||
|
try{
|
||||||
|
this.isClient = true;
|
||||||
|
}catch (e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, error => {
|
||||||
|
console.log("App couldn't fetch properties");
|
||||||
|
console.log(error);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {FormsModule} from '@angular/forms';
|
||||||
|
import {APP_BASE_HREF, CommonModule} from '@angular/common';
|
||||||
|
import {HttpModule} from '@angular/http';
|
||||||
|
import {RouterModule} from '@angular/router';
|
||||||
|
import {BrowserModule} from '@angular/platform-browser';
|
||||||
|
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
|
||||||
|
|
||||||
|
import {AppComponent} from './app.component';
|
||||||
|
import {OpenaireErrorPageComponent} from './error/errorPage.component';
|
||||||
|
|
||||||
|
import {AppRoutingModule} from './app-routing.module';
|
||||||
|
import {SharedModule} from './shared/shared.module';
|
||||||
|
import {CookieLawModule} from './openaireLibrary/sharedComponents/cookie-law/cookie-law.module';
|
||||||
|
import {BottomModule} from './openaireLibrary/sharedComponents/bottom.module';
|
||||||
|
import {FeedbackModule} from './openaireLibrary/sharedComponents/feedback/feedback.module';
|
||||||
|
import {ErrorModule} from './openaireLibrary/error/error.module';
|
||||||
|
import {NavigationBarModule} from './openaireLibrary/sharedComponents/navigationBar.module';
|
||||||
|
|
||||||
|
import {EnvironmentSpecificResolver} from './openaireLibrary/utils/properties/environmentSpecificResolver';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
|
||||||
|
imports: [
|
||||||
|
SharedModule,
|
||||||
|
NoopAnimationsModule,
|
||||||
|
CommonModule,
|
||||||
|
HttpModule,
|
||||||
|
ErrorModule,
|
||||||
|
NavigationBarModule, FeedbackModule, BottomModule,
|
||||||
|
CookieLawModule,
|
||||||
|
BrowserModule.withServerTransition({appId: 'my-app'}),
|
||||||
|
AppRoutingModule,
|
||||||
|
],
|
||||||
|
declarations: [ AppComponent, OpenaireErrorPageComponent],
|
||||||
|
exports: [ AppComponent ],
|
||||||
|
providers:[EnvironmentSpecificResolver ],
|
||||||
|
bootstrap: [AppComponent]
|
||||||
|
})
|
||||||
|
//
|
||||||
|
export class AppModule {}
|
|
@ -0,0 +1,20 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {ServerModule} from '@angular/platform-server';
|
||||||
|
import {ModuleMapLoaderModule} from '@nguniversal/module-map-ngfactory-loader';
|
||||||
|
|
||||||
|
import {AppModule} from './app.module';
|
||||||
|
import {AppComponent} from './app.component';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
// The AppServerModule should import your AppModule followed
|
||||||
|
// by the ServerModule from @angular/platform-server.
|
||||||
|
AppModule,
|
||||||
|
ServerModule,
|
||||||
|
ModuleMapLoaderModule,
|
||||||
|
],
|
||||||
|
// Since the bootstrapped component is not inherited from your
|
||||||
|
// imported AppModule, it needs to be repeated here.
|
||||||
|
bootstrap: [AppComponent],
|
||||||
|
})
|
||||||
|
export class AppServerModule {}
|
|
@ -0,0 +1,68 @@
|
||||||
|
// import { NgModule} from '@angular/core';
|
||||||
|
// import { CommonModule } from '@angular/common';
|
||||||
|
// import { FormsModule } from '@angular/forms';
|
||||||
|
// //
|
||||||
|
// import {UtilsModule} from '../utils/utils.module';
|
||||||
|
// import {ServicesModule} from '../services/services.module';
|
||||||
|
//
|
||||||
|
// import { ClaimsService} from '../services/claims.service';
|
||||||
|
// //main
|
||||||
|
// import {ClaimComponent} from './claim/claim.component';
|
||||||
|
// import {ClaimsAdminComponent} from './claims/claimsAdmin.component';
|
||||||
|
// import {MyClaimsComponent} from './myClaims/myClaims.component';
|
||||||
|
// import {LinkingHomeComponent} from './linking/linkingHome.component';
|
||||||
|
// import {LinkingComponent} from './linking/linking.component';
|
||||||
|
// import { BulkLinkingComponent } from './linking/bulkLinking.component';
|
||||||
|
//
|
||||||
|
// import {BulkClaimComponent} from './linking/bulkClaim/bulkClaim.component';
|
||||||
|
// import {ClaimsComponent} from './claim-utils/claims.component';
|
||||||
|
//
|
||||||
|
// import {ClaimContextComponent} from './claim-utils/claimContext.component';
|
||||||
|
// import {ClaimProjectsComponent} from './claim-utils/claimProject.component';
|
||||||
|
// import {ClaimResultComponent} from './claim-utils/claimResult.component';
|
||||||
|
// import {ClaimPublicationComponent} from './claim-utils/claimPublication.component';
|
||||||
|
// import {ClaimDatasetComponent} from './claim-utils/claimDataset.component';
|
||||||
|
//
|
||||||
|
// import {ClaimInsertComponent} from './linking/insertClaim/insertClaim.component';
|
||||||
|
//
|
||||||
|
// import {ClaimSelectedContextsComponent} from './linking/selected/selectedContexts.component';
|
||||||
|
// import {ClaimSelectedComponent} from './linking/selected/selected.component';
|
||||||
|
// import {ClaimSelectedDatasetsComponent} from './linking/selected/selectedDatasets.component';
|
||||||
|
// import {ClaimSelectedResultsComponent} from './linking/selected/selectedResults.component';
|
||||||
|
// import {ClaimSelectedProjectsComponent} from './linking/selected/selectedProjects.component';
|
||||||
|
// import {ClaimSelectedPublicationsComponent} from './linking/selected/selectedPublications.component';
|
||||||
|
//
|
||||||
|
// import {LinkingGenericComponent} from './linking/linkingGeneric.component';
|
||||||
|
//
|
||||||
|
// import {InlineClaimContextComponent} from './inlineClaims/inlineClaimContext.component';
|
||||||
|
// import {InlineClaimProjectComponent} from './inlineClaims/inlineClaimProject.component';
|
||||||
|
// import {InlineClaimResultComponent} from './inlineClaims/inlineClaimResult.component';
|
||||||
|
// import {ClaimEntityFormatter} from '../utils/claimEntityFormatter.component';
|
||||||
|
//
|
||||||
|
// import { Claim } from '../utils/entities/claim';
|
||||||
|
// //helpers
|
||||||
|
//
|
||||||
|
// import { ClaimRoutingModule } from './claim-routing.module';
|
||||||
|
// @NgModule({
|
||||||
|
// imports: [
|
||||||
|
// CommonModule, FormsModule,
|
||||||
|
// UtilsModule,
|
||||||
|
// ServicesModule,
|
||||||
|
// ClaimRoutingModule
|
||||||
|
//
|
||||||
|
// ],
|
||||||
|
// declarations: [
|
||||||
|
// ClaimsAdminComponent, MyClaimsComponent, ClaimComponent, ClaimsComponent,
|
||||||
|
// BulkLinkingComponent, LinkingComponent, LinkingHomeComponent, LinkingGenericComponent,
|
||||||
|
// InlineClaimContextComponent, InlineClaimProjectComponent, InlineClaimResultComponent, ClaimSelectedComponent,
|
||||||
|
// ClaimContextComponent, ClaimSelectedContextsComponent, ClaimInsertComponent, ClaimProjectsComponent, ClaimSelectedProjectsComponent,
|
||||||
|
// ClaimResultComponent, ClaimSelectedPublicationsComponent, ClaimSelectedDatasetsComponent, ClaimSelectedResultsComponent, ClaimPublicationComponent,
|
||||||
|
// ClaimDatasetComponent, BulkClaimComponent,
|
||||||
|
// ClaimEntityFormatter
|
||||||
|
// ],
|
||||||
|
// providers: [ ClaimsService ],
|
||||||
|
// exports: [
|
||||||
|
// InlineClaimContextComponent, InlineClaimProjectComponent, InlineClaimResultComponent
|
||||||
|
// ]
|
||||||
|
// })
|
||||||
|
// export class ClaimModule { }
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { OpenaireDirectLinkingComponent } from './directLinking.component';
|
||||||
|
import {LoginGuard} from '../../openaireLibrary/login/loginGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
import {ConnectSubscriberGuard} from '../../openaireLibrary/connect/communityGuard/connectSubscriber.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireDirectLinkingComponent, canActivate: [IsRouteEnabled, LoginGuard, ConnectSubscriberGuard], data: {
|
||||||
|
redirect: '/error'
|
||||||
|
}, canDeactivate: [PreviousRouteRecorder]},
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class DirectLinkingRoutingModule { }
|
|
@ -0,0 +1,8 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-directLinking',
|
||||||
|
template: `<directLinking></directLinking>`
|
||||||
|
})
|
||||||
|
export class OpenaireDirectLinkingComponent {
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
|
||||||
|
import { SharedModule } from '../../shared/shared.module';
|
||||||
|
import { OpenaireDirectLinkingComponent } from './directLinking.component';
|
||||||
|
import{ DirectLinkingModule} from '../../openaireLibrary/claims/directLinking/directLinking.module';
|
||||||
|
import {DirectLinkingRoutingModule} from './directLinking-routing.module';
|
||||||
|
import {LoginGuard} from '../../openaireLibrary/login/loginGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
import {ConnectSubscriberGuard} from '../../openaireLibrary/connect/communityGuard/connectSubscriber.guard';
|
||||||
|
import {CommunityService} from '../../openaireLibrary/connect/community/community.service';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
SharedModule, DirectLinkingModule, DirectLinkingRoutingModule
|
||||||
|
],
|
||||||
|
providers:[LoginGuard, PreviousRouteRecorder, IsRouteEnabled, ConnectSubscriberGuard, CommunityService],
|
||||||
|
declarations: [
|
||||||
|
OpenaireDirectLinkingComponent
|
||||||
|
], exports:[OpenaireDirectLinkingComponent]
|
||||||
|
})
|
||||||
|
export class LibDirectLinkingModule { }
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
import { OpenaireLinkingComponent } from './linkingGeneric.component';
|
||||||
|
|
||||||
|
import {LoginGuard} from '../../openaireLibrary/login/loginGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
import {ConnectSubscriberGuard} from '../../openaireLibrary/connect/communityGuard/connectSubscriber.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireLinkingComponent, canActivate: [IsRouteEnabled, LoginGuard, ConnectSubscriberGuard], data: {
|
||||||
|
redirect: '/error'
|
||||||
|
}, canDeactivate: [PreviousRouteRecorder]},
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class LinkingRoutingModule { }
|
|
@ -0,0 +1,28 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
|
import {ConnectHelper} from '../../openaireLibrary/connect/connectHelper';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-linking-generic',
|
||||||
|
template: `<linking-generic [communityId]=communityId></linking-generic>`
|
||||||
|
|
||||||
|
})
|
||||||
|
export class OpenaireLinkingComponent {
|
||||||
|
communityId:string;
|
||||||
|
constructor (
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private _router: Router
|
||||||
|
|
||||||
|
) {
|
||||||
|
this.route.queryParams.subscribe(
|
||||||
|
communityId => {
|
||||||
|
this.communityId = communityId['communityId'];
|
||||||
|
if(!this.communityId){
|
||||||
|
this.communityId = ConnectHelper.getCommunityFromDomain(document.location.hostname);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
|
||||||
|
import { SharedModule } from '../../shared/shared.module';
|
||||||
|
import {OpenaireLinkingComponent} from './linkingGeneric.component';
|
||||||
|
import {LinkingRoutingModule} from './linking-routing.module';
|
||||||
|
import{ LinkingGenericModule} from '../../openaireLibrary/claims/linking/linkingGeneric.module';
|
||||||
|
import {LoginGuard} from '../../openaireLibrary/login/loginGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
import {ConnectSubscriberGuard} from '../../openaireLibrary/connect/communityGuard/connectSubscriber.guard';
|
||||||
|
import {CommunityService} from '../../openaireLibrary/connect/community/community.service';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
SharedModule, LinkingRoutingModule, LinkingGenericModule
|
||||||
|
],
|
||||||
|
providers:[LoginGuard, PreviousRouteRecorder, IsRouteEnabled, ConnectSubscriberGuard, CommunityService],
|
||||||
|
declarations: [
|
||||||
|
OpenaireLinkingComponent
|
||||||
|
], exports:[
|
||||||
|
OpenaireLinkingComponent ]
|
||||||
|
})
|
||||||
|
export class LibLinkingGenericModule { }
|
|
@ -0,0 +1,16 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import {OpenaireMyClaimsComponent } from './myClaims.component';
|
||||||
|
import {LoginGuard} from '../../openaireLibrary/login/loginGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireMyClaimsComponent, canActivate: [IsRouteEnabled, LoginGuard],
|
||||||
|
data: {redirect: '/error' }, canDeactivate: [PreviousRouteRecorder]}])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class MyClaimsRoutingModule { }
|
|
@ -0,0 +1,21 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-my-claims',
|
||||||
|
template: `
|
||||||
|
<my-claims>
|
||||||
|
</my-claims>
|
||||||
|
`
|
||||||
|
|
||||||
|
})
|
||||||
|
export class OpenaireMyClaimsComponent {
|
||||||
|
constructor () {
|
||||||
|
|
||||||
|
}
|
||||||
|
ngOnInit() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
|
||||||
|
import { SharedModule } from '../../shared/shared.module';
|
||||||
|
import { OpenaireMyClaimsComponent } from './myClaims.component';
|
||||||
|
import { MyClaimsRoutingModule } from './myClaims-routing.module';
|
||||||
|
import{ MyClaimsModule} from '../../openaireLibrary/claims/myClaims/myClaims.module';
|
||||||
|
import {LoginGuard} from '../../openaireLibrary/login/loginGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
SharedModule,
|
||||||
|
MyClaimsRoutingModule,
|
||||||
|
MyClaimsModule
|
||||||
|
|
||||||
|
],
|
||||||
|
providers:[LoginGuard, PreviousRouteRecorder, IsRouteEnabled],
|
||||||
|
declarations: [
|
||||||
|
OpenaireMyClaimsComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class LibMyClaimsModule { }
|
|
@ -0,0 +1,51 @@
|
||||||
|
// import {Component, Input} from '@angular/core';
|
||||||
|
// import {Observable} from 'rxjs/Observable';
|
||||||
|
// import { Router } from '@angular/router';
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @Component({
|
||||||
|
// selector: 'my-claims-demo',
|
||||||
|
// template: `
|
||||||
|
// <div *ngIf="user" class="container">
|
||||||
|
// <div class="page-header">
|
||||||
|
// <h1> My Claims Demo</h1>
|
||||||
|
// </div>
|
||||||
|
// <div>
|
||||||
|
// <div class=""><a routerLink="/Linking">Linking</a></div>
|
||||||
|
// <div class=""><a routerLink]="/MyClaims">MyClaims</a></div>
|
||||||
|
// <div class=""><a routerLink="/Claims">Claims Admin</a></div>
|
||||||
|
// <p> Extra parameters for claims admin</p>
|
||||||
|
// <div class=""><a href="claims?fetchBy=User&fetchId=amelie.baecker@uni-bielefeld.de">Claims By user</a></div>
|
||||||
|
// <div class=""><a href="claims?fetchBy=Project&fetchId=corda_______::2c37878a0cede85dbbd1081bb9b4a2f8">Claims By project</a></div>
|
||||||
|
// <div class=""><a href="claims?fetchBy=Context&fetchId=egi::country::gr">Claims By context</a></div>
|
||||||
|
//
|
||||||
|
// <!-- <p>Orcid
|
||||||
|
// <p>N.M.
|
||||||
|
// 0000-0002-3477-3082
|
||||||
|
// </p>
|
||||||
|
// </p> -->
|
||||||
|
// <div class=""><a href="publication?articleId=od_______908::3a5b2885656a91307156325644e73b92" >Publication od_______908::3a5b2885656a91307156325644e73b92</a></div>
|
||||||
|
// <!--<div class=""><a href="publication?articleId=od_______908::3a5b2885656a91307156325644e73b92" >Publication od_______908::3a5b2885656a91307156325644e73b92</a></div>
|
||||||
|
// <div class=""><a href="publication?articleId=od_______908::3a5b2885656a91307156325644e73b92" >Publication od_______908::3a5b2885656a91307156325644e73b92</a></div>-->
|
||||||
|
// </div>
|
||||||
|
// </div>
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// `
|
||||||
|
// //(click)="changeOrderby('target')"
|
||||||
|
// //od_______908::3a5b2885656a91307156325644e73b92
|
||||||
|
//
|
||||||
|
// })
|
||||||
|
// export class MyClaimsDemoComponent {
|
||||||
|
// constructor ( private _router: Router ) {
|
||||||
|
// }
|
||||||
|
// user:string="argirok@di.uoa.gr";
|
||||||
|
// ngOnInit() {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// goToPub(id: number){
|
||||||
|
// this._router.navigate( ['Publication', { articleId: id}] );
|
||||||
|
// }
|
||||||
|
// }
|
|
@ -0,0 +1,19 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { OpenaireDepositBySubjectResultComponent } from './depositBySubjectResult.component';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireDepositBySubjectResultComponent, canActivate: [FreeGuard, IsRouteEnabled], data: {
|
||||||
|
redirect: '/error'
|
||||||
|
},canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class DepositBySubjectResultsRoutingModule { }
|
|
@ -0,0 +1,19 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
import {PiwikHelper} from '../../utils/piwikHelper';
|
||||||
|
import {ConnectHelper} from '../../openaireLibrary/connect/connectHelper';
|
||||||
|
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-deposit-by-subject-result',
|
||||||
|
template:`<deposit-by-subject-result [piwikSiteId]=piwikSiteId></deposit-by-subject-result>`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class OpenaireDepositBySubjectResultComponent {
|
||||||
|
piwikSiteId = null;
|
||||||
|
constructor ( ) {
|
||||||
|
var communityId = ConnectHelper.getCommunityFromDomain(document.location.hostname);
|
||||||
|
this.piwikSiteId = PiwikHelper.siteIDs[communityId];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { OpenaireDepositBySubjectResultComponent } from './depositBySubjectResult.component';
|
||||||
|
|
||||||
|
import {DepositBySubjectResultsRoutingModule} from './depositBySubjectResult-routing.module';
|
||||||
|
import {DepositBySubjectResultsModule } from '../../openaireLibrary/deposit/datasets/depositBySubjectResults.module';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule,
|
||||||
|
DepositBySubjectResultsModule,
|
||||||
|
DepositBySubjectResultsRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
|
||||||
|
OpenaireDepositBySubjectResultComponent
|
||||||
|
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
OpenaireDepositBySubjectResultComponent
|
||||||
|
],
|
||||||
|
providers: [FreeGuard,PreviousRouteRecorder, IsRouteEnabled]
|
||||||
|
})
|
||||||
|
export class LibDepositBySubjectResultsModule { }
|
|
@ -0,0 +1,19 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { OpenaireDepositDatasetsComponent } from './depositDatasets.component';
|
||||||
|
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireDepositDatasetsComponent, canActivate: [FreeGuard, IsRouteEnabled], data: {
|
||||||
|
redirect: '/error'
|
||||||
|
},canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class DepositDatasetsRoutingModule { }
|
|
@ -0,0 +1,21 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {PiwikHelper} from '../../utils/piwikHelper';
|
||||||
|
import {ConnectHelper} from '../../openaireLibrary/connect/connectHelper';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-deposit-datasets',
|
||||||
|
template: `
|
||||||
|
<deposit-datasets [piwikSiteId]=piwikSiteId>
|
||||||
|
|
||||||
|
</deposit-datasets>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class OpenaireDepositDatasetsComponent {
|
||||||
|
piwikSiteId = null;
|
||||||
|
constructor ( ) {
|
||||||
|
var communityId = ConnectHelper.getCommunityFromDomain(document.location.hostname);
|
||||||
|
this.piwikSiteId = PiwikHelper.siteIDs[communityId];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { OpenaireDepositDatasetsComponent } from './depositDatasets.component';
|
||||||
|
import {DepositDatasetsRoutingModule} from './depositDatasets-routing.module';
|
||||||
|
import {DepositDatasetsModule} from '../../openaireLibrary/deposit/datasets/depositDatasets.module';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule,
|
||||||
|
DepositDatasetsModule,
|
||||||
|
DepositDatasetsRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
|
||||||
|
OpenaireDepositDatasetsComponent
|
||||||
|
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
OpenaireDepositDatasetsComponent
|
||||||
|
],
|
||||||
|
providers: [FreeGuard,PreviousRouteRecorder, IsRouteEnabled]
|
||||||
|
})
|
||||||
|
export class LibDepositDatasetsModule { }
|
|
@ -0,0 +1,21 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {PiwikHelper} from '../../utils/piwikHelper';
|
||||||
|
import {ConnectHelper} from '../../openaireLibrary/connect/connectHelper';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-deposit-datasets-result',
|
||||||
|
template: `
|
||||||
|
<deposit-datasets-result [piwikSiteId]=piwikSiteId></deposit-datasets-result>
|
||||||
|
|
||||||
|
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class OpenaireDepositDatasetsResultComponent {
|
||||||
|
piwikSiteId = null;
|
||||||
|
constructor ( ) {
|
||||||
|
var communityId = ConnectHelper.getCommunityFromDomain(document.location.hostname);
|
||||||
|
this.piwikSiteId = PiwikHelper.siteIDs[communityId];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
import { OpenaireDepositDatasetsResultComponent } from './depositDatasetsResult.component';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireDepositDatasetsResultComponent, canActivate: [FreeGuard, IsRouteEnabled], data: {
|
||||||
|
redirect: '/error'
|
||||||
|
},canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class DepositDatasetsResultsRoutingModule { }
|
|
@ -0,0 +1,29 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { OpenaireDepositDatasetsResultComponent } from './depositDatasetsResult.component';
|
||||||
|
|
||||||
|
import {DepositDatasetsResultsRoutingModule} from './depositDatasetsResults-routing.module';
|
||||||
|
import {DepositDatasetsResultsModule} from '../../openaireLibrary/deposit/datasets/depositDatasetsResults.module';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule,
|
||||||
|
DepositDatasetsResultsModule,
|
||||||
|
DepositDatasetsResultsRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
|
||||||
|
OpenaireDepositDatasetsResultComponent,
|
||||||
|
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
OpenaireDepositDatasetsResultComponent,
|
||||||
|
],
|
||||||
|
providers: [FreeGuard,PreviousRouteRecorder, IsRouteEnabled]
|
||||||
|
})
|
||||||
|
export class LibDepositDatasetsResultsModule { }
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
import { OpenaireDepositPublicationsComponent } from './depositPublications.component';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireDepositPublicationsComponent, canActivate: [FreeGuard, IsRouteEnabled], data: {
|
||||||
|
redirect: '/error'
|
||||||
|
}, canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class DepositPublicationsRoutingModule { }
|
|
@ -0,0 +1,19 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {PiwikHelper} from '../../utils/piwikHelper';
|
||||||
|
import {ConnectHelper} from '../../openaireLibrary/connect/connectHelper';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-deposit-publications',
|
||||||
|
template: `
|
||||||
|
<deposit-publications [piwikSiteId]=piwikSiteId></deposit-publications>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class OpenaireDepositPublicationsComponent {
|
||||||
|
piwikSiteId = null;
|
||||||
|
constructor ( ) {
|
||||||
|
var communityId = ConnectHelper.getCommunityFromDomain(document.location.hostname);
|
||||||
|
this.piwikSiteId = PiwikHelper.siteIDs[communityId];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { OpenaireDepositPublicationsComponent } from './depositPublications.component';
|
||||||
|
|
||||||
|
import {DepositPublicationsRoutingModule} from './depositPublications-routing.module';
|
||||||
|
import {DepositPublicationsModule} from '../../openaireLibrary/deposit/publications/depositPublications.module';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule,
|
||||||
|
DepositPublicationsModule,
|
||||||
|
DepositPublicationsRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
OpenaireDepositPublicationsComponent
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
OpenaireDepositPublicationsComponent,
|
||||||
|
],
|
||||||
|
providers: [FreeGuard,PreviousRouteRecorder, IsRouteEnabled]
|
||||||
|
})
|
||||||
|
export class LibDepositPublicationsModule { }
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
import { OpenaireDepositPublicationsResultComponent } from './depositPublicationsResult.component';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireDepositPublicationsResultComponent, canActivate: [FreeGuard, IsRouteEnabled], data: {
|
||||||
|
redirect: '/error'
|
||||||
|
}, canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class DepositPublicationsResultRoutingModule { }
|
|
@ -0,0 +1,20 @@
|
||||||
|
import {Component, Input} from '@angular/core';
|
||||||
|
import {PiwikHelper} from '../../utils/piwikHelper';
|
||||||
|
import {ConnectHelper} from '../../openaireLibrary/connect/connectHelper';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-deposit-publications-result',
|
||||||
|
template: `
|
||||||
|
<deposit-publications-result [piwikSiteId]=piwikSiteId></deposit-publications-result>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class OpenaireDepositPublicationsResultComponent {
|
||||||
|
piwikSiteId = null;
|
||||||
|
constructor ( ) {
|
||||||
|
var communityId = ConnectHelper.getCommunityFromDomain(document.location.hostname);
|
||||||
|
this.piwikSiteId = PiwikHelper.siteIDs[communityId];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { OpenaireDepositPublicationsResultComponent } from './depositPublicationsResult.component';
|
||||||
|
|
||||||
|
import {DepositPublicationsResultRoutingModule} from './depositPublicationsResult-routing.module';
|
||||||
|
import {DepositPublicationsResultsModule} from '../../openaireLibrary/deposit/publications/depositPublicationsResults.module';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {IsRouteEnabled} from '../../openaireLibrary/error/isRouteEnabled.guard'
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule,
|
||||||
|
DepositPublicationsResultsModule,
|
||||||
|
DepositPublicationsResultRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
OpenaireDepositPublicationsResultComponent
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
OpenaireDepositPublicationsResultComponent
|
||||||
|
],
|
||||||
|
providers: [FreeGuard,PreviousRouteRecorder, IsRouteEnabled]
|
||||||
|
})
|
||||||
|
export class LibDepositPublicationsResultsModule { }
|
|
@ -0,0 +1,13 @@
|
||||||
|
import { Component, Input } from '@angular/core';
|
||||||
|
import { Location } from '@angular/common';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-error',
|
||||||
|
template: `
|
||||||
|
<error></error>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class OpenaireErrorPageComponent {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import{HomeComponent} from './home.component';
|
||||||
|
|
||||||
|
import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: HomeComponent, canActivate: [FreeGuard], canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class HomeRoutingModule { }
|
|
@ -0,0 +1,287 @@
|
||||||
|
|
||||||
|
<div class="image-front-topbar uk-section-muted uk-section-overlap uk-light" uk-scrollspy="{"target":"[uk-scrollspy-class]","cls":"uk-animation-slide-top","delay":false}" tm-header-transparent="light" tm-header-transparent-placeholder="">
|
||||||
|
<div style=" background-color: #1e3040;" class=" mainPageSearchForm uk-background-center-center uk-section-large">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="uk-container">
|
||||||
|
<div class="uk-container uk-container-large uk-grid-margin">
|
||||||
|
<div class="tm-header-placeholder uk-margin-remove-adjacent" style="height: 104px;"></div>
|
||||||
|
<div uk-grid="" class="uk-grid uk-grid-stack">
|
||||||
|
<div class="uk-width-1-1@m uk-first-column">
|
||||||
|
<h1 class="uk-text-left@s uk-text-center uk-heading-hero portal-color">
|
||||||
|
Tracking, reporting, monitoring made easy
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-container uk-container-expand uk-margin-medium">
|
||||||
|
<div class="uk-grid-large uk-flex-middle uk-grid uk-grid-stack" uk-grid="">
|
||||||
|
<div class="uk-width-expand@m uk-first-column">
|
||||||
|
<div id="page#7" class="uk-text-large uk-margin-remove-vertical uk-text-left uk-child-width-1-1 uk-grid-match uk-child-width-1-4@s uk-child-width-1-4@m uk-child-width-1-4@l uk-child-width-1-4@xl uk-grid-collapse uk-grid-divider uk-grid" uk-grid="">
|
||||||
|
<div class="uk-first-column">
|
||||||
|
<div class="el-item uk-panel">
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
<h2 class="uk-margin-remove-bottom">24925921</h2>
|
||||||
|
<h6 style="text-transform: uppercase;" class="uk-margin-remove-top">Publications</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="el-item uk-panel">
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
<h2 class="uk-margin-remove-bottom">667708</h2>
|
||||||
|
<h6 style="text-transform: uppercase;" class="uk-margin-remove-top">Datasets</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="el-item uk-panel">
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
<h2 class="uk-margin-remove-bottom">84333 </h2>
|
||||||
|
<h6 style="text-transform: uppercase;" class="uk-margin-remove-top">Software</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="el-item uk-panel">
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
<h2 class="uk-margin-remove-bottom">17 </h2>
|
||||||
|
<h6 style="text-transform: uppercase;" class="uk-margin-remove-top">funders</h6>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-width-medium@m">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="uk-section-default uk-section">
|
||||||
|
<div class="uk-container">
|
||||||
|
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
|
||||||
|
<div class="uk-width-1-1@m uk-first-column">
|
||||||
|
<div class="uk-margin uk-text-center uk-child-width-1-1 uk-grid-match uk-child-width-1-3@m uk-grid" uk-grid="">
|
||||||
|
<div class="uk-first-column">
|
||||||
|
<div class="uk-width-medium uk-margin-auto el-item uk-panel">
|
||||||
|
<img src="/images/Icons_Monitor/Funder%20Icon.svg" class="el-image" alt="" uk-svg="" hidden="true">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 74.3 74.3" style="enable-background:new 0 0 74.3 74.3;" xml:space="preserve" width="74.3" height="74.3" class="el-image uk-svg">
|
||||||
|
<g transform="translate(-292.6 -954.2)">
|
||||||
|
<path style="fill:#FFFFFF;" d="M337.9,1009.7v-4h-16.3v4H314v-7.2l-0.5-0.4c-1.8-1.6-3.2-3.6-4-5.9l-0.4-1h-4.5v-7.6h4.5l0.4-1
|
||||||
|
c0.6-1.7,1.6-3.3,2.8-4.7l0.4-0.4V973c2.6,0.1,5,1.4,6.4,3.6l0.5,0.9l1-0.2c0.9-0.2,1.7-0.2,2.6-0.2h13.3c7.4,0,13.6,5.6,14.3,13
|
||||||
|
l0.1,1.3l0,0l-0.1,1.1c-0.3,3.7-2,7.2-4.7,9.7l-0.5,0.4v7.2L337.9,1009.7L337.9,1009.7z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M314.1,974.6c1.5,0.4,2.8,1.3,3.6,2.6l1.1,1.7l2-0.4c0.8-0.1,1.5-0.2,2.3-0.2h13.3
|
||||||
|
c6.7,0,12.3,5.1,12.9,11.7l0.1,1l-0.1,1.2c-0.2,3.3-1.8,6.4-4.3,8.6l-1,0.9v6.3h-4.6v-4h-19.3v4h-4.6v-6.4l-1-0.9
|
||||||
|
c-1.6-1.5-2.8-3.3-3.6-5.3l-0.7-2h-4V989h4l0.7-2c0.6-1.5,1.4-3,2.5-4.2l0.7-0.8V974.6 M312.5,971.4L312.5,971.4
|
||||||
|
c-0.7,0-1.4,0.5-1.4,1.3c0,0,0,0,0,0v8.1c-1.3,1.5-2.4,3.3-3.1,5.2h-3.6c-0.7,0-1.3,0.6-1.3,1.3v8c0,0.7,0.6,1.3,1.3,1.3h3.6
|
||||||
|
c0.9,2.5,2.4,4.8,4.4,6.5v6.7c0,0.7,0.6,1.3,1.3,1.3h8c0.7,0,1.3-0.6,1.3-1.3v-2.7h13.3v2.7c0,0.7,0.6,1.3,1.3,1.3h8
|
||||||
|
c0.7,0,1.3-0.6,1.3-1.3v-6.7c3.1-2.7,4.9-6.6,5.2-10.7c3.1-0.6,5.4-3.3,5.4-6.5h-2.7c0,1.7-1.1,3.2-2.7,3.8
|
||||||
|
c-0.8-8.1-7.6-14.3-15.8-14.4H323c-0.9,0-1.9,0.1-2.8,0.3C318.5,973,315.6,971.4,312.5,971.4L312.5,971.4z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M329.7,957.2c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.4-1-1S329.1,957.2,329.7,957.2 M329.7,954.2
|
||||||
|
c-2.2,0-4,1.8-4,4s1.8,4,4,4s4-1.8,4-4C333.7,956,331.9,954.2,329.7,954.2z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M319.1,985.3c-1.2,0-2.1,0.9-2.1,2.1c0,1.2,0.9,2.1,2.1,2.1c1.2,0,2.1-0.9,2.1-2.1l0,0
|
||||||
|
C321.2,986.3,320.3,985.3,319.1,985.3C319.2,985.3,319.1,985.3,319.1,985.3z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M335,980.7h-10.6v2.7H335V980.7z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M362.9,970.4c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.4-1-1S362.3,970.4,362.9,970.4 M362.9,967.4
|
||||||
|
c-2.2,0-4,1.8-4,4s1.8,4,4,4s4-1.8,4-4C366.9,969.2,365.1,967.4,362.9,967.4z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M296.6,970.4c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.4-1-1S296,970.4,296.6,970.4 M296.6,967.4
|
||||||
|
c-2.2,0-4,1.8-4,4s1.8,4,4,4s4-1.8,4-4C300.6,969.2,298.8,967.4,296.6,967.4z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M329.7,1023.5c0.6,0,1,0.4,1,1c0,0.6-0.4,1-1,1c-0.5,0-1-0.4-1-0.9c0,0,0-0.1,0-0.1
|
||||||
|
C328.7,1024,329.2,1023.5,329.7,1023.5 M329.7,1020.5c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4s4-1.8,4-4
|
||||||
|
C333.7,1022.3,331.9,1020.5,329.7,1020.5z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M296.6,1010.2c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.4-1-1S296,1010.2,296.6,1010.2 M296.6,1007.2
|
||||||
|
c-2.2,0-4,1.8-4,4s1.8,4,4,4s4-1.8,4-4C300.6,1009,298.8,1007.2,296.6,1007.2z"></path>
|
||||||
|
<path style="fill:#9ABB55;" d="M362.9,1010.2c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.4-1-1S362.3,1010.2,362.9,1010.2 M362.9,1007.2
|
||||||
|
c-2.2,0-4,1.8-4,4s1.8,4,4,4s4-1.8,4-4C366.9,1009,365.1,1007.2,362.9,1007.2z"></path>
|
||||||
|
<line style="fill:none;stroke:#9ABB55;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;" x1="329.7" y1="971.8" x2="329.7" y2="966.5"></line>
|
||||||
|
<line style="fill:none;stroke:#9ABB55;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;" x1="306.7" y1="981" x2="302.7" y2="977"></line>
|
||||||
|
<line style="fill:none;stroke:#9ABB55;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;" x1="356.7" y1="977" x2="352.7" y2="981"></line>
|
||||||
|
<line style="fill:none;stroke:#9ABB55;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;" x1="307.2" y1="1001.2" x2="303.2" y2="1005.1"></line>
|
||||||
|
<line style="fill:none;stroke:#9ABB55;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;" x1="329.7" y1="1015.2" x2="329.7" y2="1009.9"></line>
|
||||||
|
<line style="fill:none;stroke:#9ABB55;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;" x1="356" y1="1005.1" x2="352" y2="1001.2"></line>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
<h3 class="el-title uk-margin">
|
||||||
|
Are you a funder?
|
||||||
|
</h3>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
<p class="uk-text-left">All you need to do is to provide OpenAIRE with a ‘very limited’ set of metadata fields from your database and we will take it up from there.</p>
|
||||||
|
<p class="uk-text-left">Learn <a href="https://www.openaire.eu/faqs#ifaqCat-171">how to participate and ensure that your information is picked up by OpenAIRE</a>.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="uk-width-medium uk-margin-auto el-item uk-panel">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 82.278 58.7" width="82.278" height="58.7" class="el-image uk-svg"><defs><style>.a{fill:#fff;}.a,.b{stroke:#9ABB55;stroke-miterlimit:10;stroke-width:3px;}.b{fill:none;}</style></defs><g transform="translate(1 2)"><g transform="translate(-9.464 -954.4)"><path class="a" d="M60,979.6a12.864,12.864,0,0,0,1.9-2.1.91.91,0,0,0,0-1.2c-.9-1.1-1.5-1.9-1.9-2.5.2-.5.4-1,.6-1.4l3.3-.5a.9.9,0,0,0,.8-1l-.1-4.2a1.063,1.063,0,0,0-.9-1l-3.2-.5a11.111,11.111,0,0,0-.7-1.6c.1-.1.2-.3.4-.4a5.548,5.548,0,0,0,.6-.8l.3-.4a6.783,6.783,0,0,0,.6-.9,1.083,1.083,0,0,0,0-1.1,19.927,19.927,0,0,0-3.2-3.3,1.059,1.059,0,0,0-1.3-.1l-2.6,2c-.5-.2-.9-.4-1.4-.6l-.5-3.3a.974.974,0,0,0-1-.8H47.5a.974.974,0,0,0-1,.8c-.2,1.1-.4,2.2-.5,3.4l-1.5.6-2.4-1.9c-.1-.1-.2-.1-.3-.2-.6-.3-1.1,0-2.4,1.3a17.966,17.966,0,0,0-1.9,2,.91.91,0,0,0,0,1.2l.2.2a22.13,22.13,0,0,1,1.7,2.3,4.714,4.714,0,0,0-.6,1.5l-3.4.6a.9.9,0,0,0-.8,1l.1,4.2a1.063,1.063,0,0,0,.9,1l3.3.5a11.111,11.111,0,0,0,.7,1.6c-.2.3-.6.7-.9,1.2l-.3.4a6.783,6.783,0,0,0-.6.9,1.083,1.083,0,0,0,0,1.1,32.6,32.6,0,0,0,3.1,3.3,1.23,1.23,0,0,0,1.3.1l2.6-2a11.209,11.209,0,0,0,1.3.5l.5,3.3a.974.974,0,0,0,1,.8h4.2a1.077,1.077,0,0,0,1-.8v-.1a30.679,30.679,0,0,0,.4-3.1l1.5-.6,3,2.5Z"></path><path class="a" d="M50.1,965.6a2.9,2.9,0,1,1-2.9,2.9A3.039,3.039,0,0,1,50.1,965.6Z"></path></g><circle class="a" cx="7.435" cy="7.435" r="7.435" transform="translate(61.335 13.246)"></circle><circle class="a" cx="7.435" cy="7.435" r="7.435" transform="translate(4.169 13.246)"></circle><path class="b" d="M63.951,58.112h0A16.5,16.5,0,0,0,47.438,41.6H34.112A16.5,16.5,0,0,0,17.6,58.112h0" transform="translate(-0.588 -1.412)"></path><path class="b" d="M65.5,41.6h0A16.567,16.567,0,0,1,82.012,58.112h0" transform="translate(-2.234 -1.412)"></path><path class="b" d="M17.012,41.6h0A16.567,16.567,0,0,0,.5,58.112h0" transform="translate(0 -1.412)"></path></g></svg>
|
||||||
|
<h3 class="el-title uk-margin">
|
||||||
|
Are you managing a research community?
|
||||||
|
</h3>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
<p class="uk-text-left">Using text mining (topic modeling) on the full texts we can discover hidden structures and identify useful patterns, similarities, correlations trends and communities. </p>
|
||||||
|
<p class="uk-text-left">
|
||||||
|
Our tech team would be happy to work with new use cases as this is the real value of using open science for transparent decision policy making. Our services have already been successfully applied for the evaluation of parts of FP7, and we are continuing with the rest.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="uk-width-medium uk-margin-auto el-item uk-panel">
|
||||||
|
<img src="/images/Icons_Monitor/Monitor%20Help.svg" class="el-image" alt="" uk-svg="" hidden="true">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 58.3 58.3" style="enable-background:new 0 0 58.3 58.3;" xml:space="preserve" width="58.3" height="58.3" class="el-image uk-svg">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#FFFFFF;stroke:#9ABB55;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||||
|
.st1{fill:#9ABB55;stroke:#9ABB55;stroke-width:2;}
|
||||||
|
</style>
|
||||||
|
<g transform="translate(-1000.9 -961.038)">
|
||||||
|
<g transform="translate(1002.4 962.538)">
|
||||||
|
<path class="st0" d="M27.6,0c15.3,0,27.6,12.4,27.6,27.6c0,15.3-12.4,27.6-27.6,27.6S0,42.9,0,27.6C0,12.4,12.4,0,27.6,0
|
||||||
|
C27.6,0,27.6,0,27.6,0z"></path>
|
||||||
|
</g>
|
||||||
|
<path class="st1" d="M1030,973.7c-4.9,0-8.8,4-8.8,8.8c0,0.4,0.3,0.7,0.6,0.7c0.4,0,0.7-0.3,0.7-0.6l0,0l0,0c0-4.1,3.3-7.5,7.5-7.5
|
||||||
|
c4.1,0,7.5,3.3,7.5,7.5c0,2.2-1,4.4-2.6,5.9c-1.7,1.6-3.4,3-5.3,4.4c-0.2,0.1-0.3,0.3-0.3,0.5v5.4c0,0.4,0.3,0.7,0.6,0.7
|
||||||
|
c0.4,0,0.7-0.3,0.7-0.6l0,0v-5.1c1.8-1.3,3.5-2.7,5.1-4.3c1.8-1.8,2.9-4.2,3-6.8c0.2-4.8-3.6-8.8-8.4-9
|
||||||
|
C1030.3,973.7,1030.2,973.7,1030,973.7z"></path>
|
||||||
|
<circle class="st1" cx="1030" cy="1005.4" r="1.4"></circle>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
<h3 class="el-title uk-margin">
|
||||||
|
Have more questions?
|
||||||
|
</h3>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
<ul class="uk-list uk-list-divider uk-text-left">
|
||||||
|
<li><a href="https://www.openaire.eu/oa-basics">Learn about open science policies and how to align</a></li>
|
||||||
|
<li><a href="https://www.openaire.eu/rdm-handbook">Learn more on how to manage your data in the open science era</a></li>
|
||||||
|
<li><a href="https://www.openaire.eu/guides/">Find out how to use OpenAIRE to best serve your needs</a></li>
|
||||||
|
<li><a href="https://www.openaire.eu/webinars/">View our training material on a variety of related topics</a></li>
|
||||||
|
<li><a href="https://www.openaire.eu/contact-us">Contact us</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-section-primary uk-section uk-section-small portal-card">
|
||||||
|
<div class="uk-container uk-container-expand">
|
||||||
|
<div class="uk-margin-remove-vertical uk-grid uk-grid-stack" uk-grid="" uk-height-match="target: .uk-card; row: false">
|
||||||
|
<div class="uk-width-1-1@m uk-first-column">
|
||||||
|
<div class="uk-margin-remove-top uk-h3">
|
||||||
|
Monitor
|
||||||
|
</div>
|
||||||
|
<div class="uk-panel">
|
||||||
|
<div id="uk-grid5c3" class="uk-grid uk-child-width-1-4@m uk-child-width-1-4@s uk-text-left infocus" data-uk-grid-match="{target:'> div > .uk-panel', row:true}" data-uk-grid-margin="">
|
||||||
|
<div class="uk-row-first">
|
||||||
|
<div class="uk-panel" style="min-height: 91.4px;">
|
||||||
|
<h2 class="" style=""><a href="funders.html">Funders</a></h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="uk-panel" style="min-height: 91.4px;">
|
||||||
|
<h2 class="" style=""><a href="RIs.html">Research Initiatives</a></h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="uk-panel" style="min-height: 91.4px;">
|
||||||
|
<h2 class="" style=""><a href="./org.html">Institutions</a></h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="uk-panel" style="min-height: 91.4px;">
|
||||||
|
<h2 class="" style=""><a href="./project.html">Projects</a></h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="uk-section-muted" uk-scrollspy="{"target":"[uk-scrollspy-class]","cls":"uk-animation-fade","delay":false}">
|
||||||
|
<div class="uk-container uk-container-large">
|
||||||
|
<div uk-grid="" class="uk-grid uk-margin-large-top uk-margin-large-bottom">
|
||||||
|
<div class="uk-width-expand@m uk-width-1-2@s uk-dark uk-grid-item-match uk-first-column explore">
|
||||||
|
<div class="uk-margin uk-panel uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
|
||||||
|
<h4 class="el-title uk-margin uk-h4">
|
||||||
|
Researcher?
|
||||||
|
</h4>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
Explore all OA research results. Link all your research. Build your profile
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<a [href]="'https://'+(properties.environment =='beta'?'beta.':'')+'explore.openaire.eu'" class="el-link uk-button uk-button-default">
|
||||||
|
OpenAIRE.EXPLORE
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-width-expand@m uk-width-1-2@s uk-dark uk-grid-item-match uk-first-column provide">
|
||||||
|
<div class="uk-margin uk-panel uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
|
||||||
|
<h4 class="el-title uk-margin uk-h4">
|
||||||
|
Content provider?
|
||||||
|
</h4>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
Join OpenAIRE, use our tools and make your content more visible around the world.
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<a target="_blank" [href]="'https://'+(properties.environment =='beta'?'beta.':'')+'provide.openaire.eu'" class="el-link uk-button uk-button-default">
|
||||||
|
OpenAIRE.PROVIDE
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="uk-width-expand@m uk-width-1-2@s uk-dark uk-grid-item-match connect">
|
||||||
|
<div class="uk-margin uk-panel uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
|
||||||
|
<h4 class="el-title uk-margin uk-h4">
|
||||||
|
Research community?
|
||||||
|
</h4>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
Use a trusted partner to share, link, disseminate and monitor your research.
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<a target="_blank" [href]="'https://'+(properties.environment =='beta'?'beta.':'')+'connect.openaire.eu'" class="el-link uk-button uk-button-default">
|
||||||
|
OpenAIRE.CONNECT
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="uk-width-expand@m uk-width-1-2@s uk-dark uk-grid-item-match monitor">
|
||||||
|
<div class="uk-margin uk-panel uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
|
||||||
|
<h4 class="el-title uk-margin uk-h4">
|
||||||
|
Research manager?
|
||||||
|
</h4>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
Use our monitoring services and easily track all relevant research results.
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<a target="_blank" href="https://monitor.openaire.eu" class="el-link uk-button uk-button-default">
|
||||||
|
OpenAIRE.MONITOR
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
<div class="uk-width-expand@m uk-width-1-2@s uk-dark uk-grid-item-match develop">
|
||||||
|
<div class="uk-margin uk-panel uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
|
||||||
|
<h4 class="el-title uk-margin uk-h4">
|
||||||
|
Developer?
|
||||||
|
</h4>
|
||||||
|
<div class="el-content uk-margin">
|
||||||
|
Get access to OpenAIRE data and capitalize on on Europe's open linked research
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<a target="_blank" href="https://develop.openaire.eu" class="el-link uk-button uk-button-default">
|
||||||
|
OpenAIRE.DEVELOP
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,64 @@
|
||||||
|
import {Component, ElementRef} from '@angular/core';
|
||||||
|
import { EnvProperties} from '../openaireLibrary/utils/properties/env-properties';
|
||||||
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
|
import {Location} from '@angular/common';
|
||||||
|
import "rxjs/add/observable/zip";
|
||||||
|
import {Title, Meta} from '@angular/platform-browser';
|
||||||
|
import {ConfigurationService} from '../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
|
||||||
|
import { RouterHelper} from '../openaireLibrary/utils/routerHelper.class';
|
||||||
|
import { ErrorCodes} from '../openaireLibrary/utils/properties/errorCodes';
|
||||||
|
import {PiwikService} from '../openaireLibrary/utils/piwik/piwik.service';
|
||||||
|
import { SEOService } from '../openaireLibrary/sharedComponents/SEO/SEO.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'home',
|
||||||
|
templateUrl: './home.component.html'
|
||||||
|
})
|
||||||
|
|
||||||
|
export class HomeComponent {
|
||||||
|
public piwiksub: any;
|
||||||
|
|
||||||
|
public pageTitle = "OpenAIRE"
|
||||||
|
public keyword:string = "";
|
||||||
|
|
||||||
|
|
||||||
|
properties: EnvProperties;
|
||||||
|
public subPub;public subData;public subProjects;public subOrg; public subDataPr;
|
||||||
|
|
||||||
|
constructor (
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private _router: Router,
|
||||||
|
private location: Location, private _piwikService:PiwikService,
|
||||||
|
private _meta: Meta, private _title: Title, private seoService: SEOService
|
||||||
|
) {
|
||||||
|
|
||||||
|
var description = "openAIRE monitor,funder, European commission, statistics";
|
||||||
|
|
||||||
|
var title = "OpenAIRE | Monitor";
|
||||||
|
|
||||||
|
this._title.setTitle(title);
|
||||||
|
this._meta.updateTag({content:description},"name='description'");
|
||||||
|
this._meta.updateTag({content:description},"property='og:description'");
|
||||||
|
this._meta.updateTag({content:title},"property='og:title'");
|
||||||
|
this.seoService.createLinkForCanonicalURL(false);
|
||||||
|
|
||||||
|
|
||||||
|
//this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
|
||||||
|
}
|
||||||
|
public ngOnInit() {
|
||||||
|
this.route.data
|
||||||
|
.subscribe((data: { envSpecific: EnvProperties }) => {
|
||||||
|
this.properties = data.envSpecific;
|
||||||
|
if(this.properties!=null){
|
||||||
|
var url = this.properties.baseLink+this._router.url;
|
||||||
|
this._meta.updateTag({content:url},"property='og:url'");
|
||||||
|
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){
|
||||||
|
this.piwiksub = this._piwikService.trackView(this.properties, "OpenAIRE").subscribe();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
import { NgModule} from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import{HomeRoutingModule} from './home-routing.module';
|
||||||
|
import{HomeComponent} from './home.component';
|
||||||
|
|
||||||
|
import {PiwikServiceModule} from '../openaireLibrary/utils/piwik/piwikService.module';
|
||||||
|
|
||||||
|
import {FreeGuard} from '../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
import {Schema2jsonldModule} from '../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module';
|
||||||
|
import { SEOServiceModule } from '../openaireLibrary/sharedComponents/SEO/SEOService.module';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule, RouterModule,
|
||||||
|
PiwikServiceModule,
|
||||||
|
HomeRoutingModule,
|
||||||
|
|
||||||
|
Schema2jsonldModule, SEOServiceModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
HomeComponent
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
FreeGuard, PreviousRouteRecorder
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
HomeComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class HomeModule { }
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import{CommunitiesComponent} from './communities.component';
|
||||||
|
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: CommunitiesComponent, canActivate: [FreeGuard], canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class CommunitiesRoutingModule { }
|
|
@ -0,0 +1,40 @@
|
||||||
|
|
||||||
|
|
||||||
|
<div *ngIf= "communitiesResults != null && communitiesResults.length > 0" class="uk-margin-xlarge-top">
|
||||||
|
<div class="uk-container uk-margin-top-large uk-margin-bottom">
|
||||||
|
<div class="uk-child-width-1-3@m uk-text-center uk-grid-match " uk-grid >
|
||||||
|
<ng-container *ngFor="let item of communitiesResults; let i = index">
|
||||||
|
<div *ngIf="showCommunity(item)" class="uk-card uk-card-default uk-margin-bottom uk-padding-remove">
|
||||||
|
<span >
|
||||||
|
<div class="uk-card-media-top">
|
||||||
|
<img *ngIf= "item.logoUrl != null && item.logoUrl != '' " src="{{item.logoUrl}}" alt="{{(item.title)?item.title:item.shortTitle}} logo" class="uk-height-small uk-responsive-height ">
|
||||||
|
<span *ngIf= "item.logoUrl == null || item.logoUrl == '' " class="uk-icon uk-margin-top">
|
||||||
|
<svg width="50" height="50" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="2.5"> <circle fill="none" stroke="#000" stroke-width="1.1" cx="7.7" cy="8.6" r="3.5"></circle> <path fill="none" stroke="#000" stroke-width="1.1" d="M1,18.1 C1.7,14.6 4.4,12.1 7.6,12.1 C10.9,12.1 13.7,14.8 14.3,18.3"></path> <path fill="none" stroke="#000" stroke-width="1.1" d="M11.4,4 C12.8,2.4 15.4,2.8 16.3,4.7 C17.2,6.6 15.7,8.9 13.6,8.9 C16.5,8.9 18.8,11.3 19.2,14.1"></path></svg>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<div class="uk-card-body">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3 class="uk-card-title">
|
||||||
|
<a [routerLink]="['/initiatives', item.communityId]" routerLinkActive="router-link-active" >
|
||||||
|
{{(item.title)?item.title:item.shortTitle}}</a>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="item.status !='all'" class="uk-float-right" uk-tooltip="title: Community is hidden to registered users. It is visible only to users that have privileges to manage community; delay: 100">
|
||||||
|
<span class="private-view-label uk-label uk-label-success " aria-expanded="false">Private view</span>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="item.type =='ri'" class="" >
|
||||||
|
<span class="ri-label uk-label uk-label-info " aria-expanded="false">Research Initiative</span>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="item.type !='ri'" class="" >
|
||||||
|
<span class="uk-label rc-label uk-label-warning " aria-expanded="false">Research Community</span>
|
||||||
|
</div>
|
||||||
|
<p *ngIf="item.description != null" >{{item.description}}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ng-container>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,104 @@
|
||||||
|
import {Component, Input, Output, EventEmitter} from '@angular/core';
|
||||||
|
import {ViewChild, ChangeDetectionStrategy} from '@angular/core';
|
||||||
|
import {ViewEncapsulation} from '@angular/core';
|
||||||
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
|
import {Location} from '@angular/common';
|
||||||
|
import {Title, Meta} from '@angular/platform-browser';
|
||||||
|
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
|
||||||
|
import "rxjs/add/observable/zip";
|
||||||
|
|
||||||
|
import {ConnectHelper} from '../../openaireLibrary/connect/connectHelper';
|
||||||
|
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
|
||||||
|
import {ErrorCodes} from '../../openaireLibrary/utils/properties/errorCodes';
|
||||||
|
|
||||||
|
import {ConfigurationService} from '../../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
import {CommunitiesService} from '../../openaireLibrary/connect/communities/communities.service';
|
||||||
|
import {PiwikService} from '../../openaireLibrary/utils/piwik/piwik.service';
|
||||||
|
import {Session} from '../../openaireLibrary/login/utils/helper.class';
|
||||||
|
@Component({
|
||||||
|
selector: 'communities',
|
||||||
|
templateUrl: 'communities.component.html',
|
||||||
|
})
|
||||||
|
|
||||||
|
export class CommunitiesComponent {
|
||||||
|
public piwiksub: any;
|
||||||
|
public subfunders: any;
|
||||||
|
|
||||||
|
public pageTitle = "OpenAIRE"
|
||||||
|
|
||||||
|
public communitiesResults = null;
|
||||||
|
|
||||||
|
properties:EnvProperties;
|
||||||
|
|
||||||
|
constructor (
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private _router: Router,
|
||||||
|
private location: Location,
|
||||||
|
private _meta: Meta,
|
||||||
|
private _title: Title,
|
||||||
|
private _piwikService:PiwikService,
|
||||||
|
private _communitiesService:CommunitiesService,
|
||||||
|
private config: ConfigurationService) {
|
||||||
|
|
||||||
|
var description = "Community Dashboard";
|
||||||
|
var title = "Community Dashboard";
|
||||||
|
|
||||||
|
this._meta.updateTag({content:description},"name='description'");
|
||||||
|
this._meta.updateTag({content:description},"property='og:description'");
|
||||||
|
this._meta.updateTag({content:title},"property='og:title'");
|
||||||
|
this._title.setTitle(title);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnInit() {
|
||||||
|
this.route.data
|
||||||
|
.subscribe((data: { envSpecific: EnvProperties }) => {
|
||||||
|
this.properties = data.envSpecific;
|
||||||
|
var url = data.envSpecific.baseLink+this._router.url
|
||||||
|
this._meta.updateTag({content:url},"property='og:url'");
|
||||||
|
if(this.properties.enablePiwikTrack && (typeof document !== 'undefined')){
|
||||||
|
this.piwiksub = this._piwikService.trackView(this.properties, "OpenAIRE Connect", this.properties.piwikSiteId).subscribe();
|
||||||
|
}
|
||||||
|
|
||||||
|
this._communitiesService.getCommunities(this.properties, this.properties.communitiesAPI).subscribe(
|
||||||
|
communitiesResults => {
|
||||||
|
this.communitiesResults = communitiesResults;
|
||||||
|
//console.log(communitiesResults);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnDestroy() {
|
||||||
|
if(this.piwiksub){
|
||||||
|
this.piwiksub.unsubscribe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
isProduction():boolean{
|
||||||
|
return ConnectHelper.isProduction(document.location.hostname);
|
||||||
|
|
||||||
|
}
|
||||||
|
getProductionPrefix():string{
|
||||||
|
return ConnectHelper.getProductionPrefix(document.location.hostname);
|
||||||
|
}
|
||||||
|
showCommunity(community):boolean{
|
||||||
|
if(community['type'] !="ri"){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(community['status'] == "hidden"){
|
||||||
|
return false;
|
||||||
|
}else if(community['status'] == "manager"){
|
||||||
|
var mail = Session.getUserEmail();
|
||||||
|
if(mail == null){ // no user
|
||||||
|
return false;
|
||||||
|
}else if(Session.isCommunityCurator() || Session.isPortalAdministrator()){
|
||||||
|
return true;
|
||||||
|
}else if(community.managers.indexOf(mail)!=-1){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
import {NgModule} from '@angular/core';
|
||||||
|
import {CommonModule} from '@angular/common';
|
||||||
|
import {FormsModule} from '@angular/forms';
|
||||||
|
import {RouterModule} from '@angular/router';
|
||||||
|
|
||||||
|
import {CommunitiesRoutingModule} from './communities-routing.module';
|
||||||
|
import {CommunitiesComponent} from './communities.component';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
import {PiwikService} from '../../openaireLibrary/utils/piwik/piwik.service';
|
||||||
|
import {ConfigurationService} from '../../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
import {CommunitiesService} from '../../openaireLibrary/connect/communities/communities.service';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule, RouterModule, CommunitiesRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
CommunitiesComponent
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
FreeGuard, PreviousRouteRecorder, ConfigurationService,
|
||||||
|
PiwikService, CommunitiesService
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
CommunitiesComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class CommunitiesModule { }
|
|
@ -0,0 +1,16 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import{CommunityComponent} from './community.component';
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: CommunityComponent, canActivate: [FreeGuard], canDeactivate: [PreviousRouteRecorder] }
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class CommunityRoutingModule { }
|
|
@ -0,0 +1,60 @@
|
||||||
|
<div class=" uk-section uk-margin-small-top tm-middle uk-container" id="tm-main">
|
||||||
|
|
||||||
|
<div class="uk-container uk-margin-bottom">
|
||||||
|
|
||||||
|
<article *ngIf="community" class="uk-article ">
|
||||||
|
<div *ngIf="communityId == null || communityId == ''" class="uk-child-width-1-6@l uk-child-width-1-6@m uk-child-width-1-3@s uk-text-center uk-alert uk-alert-primary">
|
||||||
|
No community chosen
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div *ngIf="communityId != null && communityId != '' && community != null">
|
||||||
|
<blockquote>
|
||||||
|
<div *ngIf="community.title != null">
|
||||||
|
<p> {{community.title}}</p>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="community.title == null && community.shortTitle != null">
|
||||||
|
<p> {{community.shortTitle}}</p>
|
||||||
|
</div>
|
||||||
|
<div *ngIf="community.description != null">
|
||||||
|
<p> {{community.description}}</p>
|
||||||
|
</div>
|
||||||
|
</blockquote>
|
||||||
|
<div *ngIf="community.subjects != null">
|
||||||
|
<span *ngFor="let subject of community.subjects.slice(0,10) let i=index">
|
||||||
|
<span *ngIf="subject != ''" class="uk-label uk-margin-small-bottom">{{subject}}</span>
|
||||||
|
<!-- <span *ngIf=" i<9 && i<(community.subjects.length-1)"> </span> -->
|
||||||
|
</span>
|
||||||
|
<span *ngIf="showAll">
|
||||||
|
<span *ngFor="let subject of community.subjects.slice(10) let i=index">
|
||||||
|
<span *ngIf="subject != ''" class="uk-label uk-margin-small-bottom">{{subject}}</span>
|
||||||
|
<!-- <span *ngIf="i<(community.subjects.length-1)"> </span> -->
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span *ngIf="!showAll && community.subjects.length > 10">
|
||||||
|
<a (click)="showAll = !showAll;">
|
||||||
|
show more
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
<span *ngIf="showAll">
|
||||||
|
<a (click)="showAll = !showAll;">
|
||||||
|
show less
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<!--span *ngIf="community.managers != null && community.managers[0] != '' && community.managers[0] != null"> Curated by:
|
||||||
|
<span *ngFor='let manager of community.managers; let i = index'>{{manager.substr(0, manager.indexOf('@'))}}<span *ngIf="manager.includes('@') == 0">{{manager}}</span><span *ngIf="i<(community.managers.length-1)">,</span>
|
||||||
|
</span>
|
||||||
|
</span-->
|
||||||
|
<span *ngIf="community.date != null" class="uk-margin-left"> Created: {{community.date | date:'dd-MM-yyyy'}}</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
|
@ -0,0 +1,99 @@
|
||||||
|
import {Component, Input, Output} from '@angular/core';
|
||||||
|
import {EventEmitter, ViewChild} from '@angular/core';
|
||||||
|
import {ChangeDetectionStrategy} from '@angular/core';
|
||||||
|
import {ViewEncapsulation} from '@angular/core';
|
||||||
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
|
import {Location} from '@angular/common';
|
||||||
|
import {Title, Meta} from '@angular/platform-browser';
|
||||||
|
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
|
||||||
|
import "rxjs/add/observable/zip";
|
||||||
|
|
||||||
|
import {EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
|
||||||
|
import {ErrorCodes} from '../../openaireLibrary/utils/properties/errorCodes';
|
||||||
|
|
||||||
|
import {CommunityService} from '../../openaireLibrary/connect/community/community.service';
|
||||||
|
import {ConfigurationService} from '../../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
import {PiwikService} from '../../openaireLibrary/utils/piwik/piwik.service';
|
||||||
|
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'community',
|
||||||
|
templateUrl: 'community.component.html',
|
||||||
|
})
|
||||||
|
|
||||||
|
export class CommunityComponent {
|
||||||
|
public piwiksub: any;
|
||||||
|
public subfunders: any;
|
||||||
|
|
||||||
|
public pageTitle = "OpenAIRE"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
params: any;
|
||||||
|
properties:EnvProperties;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Input() communityId = null;
|
||||||
|
public community = null;
|
||||||
|
|
||||||
|
|
||||||
|
constructor (
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private _router: Router,
|
||||||
|
private location: Location,
|
||||||
|
private _meta: Meta,
|
||||||
|
private _title: Title,
|
||||||
|
private _piwikService:PiwikService,
|
||||||
|
private config: ConfigurationService,
|
||||||
|
private _communityService:CommunityService ) {
|
||||||
|
|
||||||
|
var description = "Community Dashboard";
|
||||||
|
var title = "Community Dashboard";
|
||||||
|
this._meta.updateTag({content:description},"name='description'");
|
||||||
|
this._meta.updateTag({content:description},"property='og:description'");
|
||||||
|
this._meta.updateTag({content:title},"property='og:title'");
|
||||||
|
this._title.setTitle(title);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnInit() {
|
||||||
|
this.route.data
|
||||||
|
.subscribe((data: { envSpecific: EnvProperties }) => {
|
||||||
|
console.log("here:"+this.communityId);
|
||||||
|
this.properties = data.envSpecific;
|
||||||
|
var url = data.envSpecific.baseLink+this._router.url;
|
||||||
|
this._meta.updateTag({content:url},"property='og:url'");
|
||||||
|
this.route.params.subscribe(params => {
|
||||||
|
this.communityId = params['id'];
|
||||||
|
console.log("communityId:"+this.communityId);
|
||||||
|
|
||||||
|
if (this.communityId != null && this.communityId != '') {
|
||||||
|
this._communityService.getCommunity(this.properties, this.properties.communityAPI+this.communityId).subscribe (
|
||||||
|
community => {
|
||||||
|
this.community = community;
|
||||||
|
this.params = {communityId: community.communityId};
|
||||||
|
this._meta.updateTag({content:community.description},"name='description'");
|
||||||
|
this._meta.updateTag({content:community.description},"property='og:description'");
|
||||||
|
this._meta.updateTag({content:community.title},"property='og:title'");
|
||||||
|
this._title.setTitle(community.title);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnDestroy() {
|
||||||
|
if(this.piwiksub){
|
||||||
|
this.piwiksub.unsubscribe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
import { NgModule} from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import{CommunityRoutingModule} from './community-routing.module';
|
||||||
|
import{CommunityComponent} from './community.component';
|
||||||
|
|
||||||
|
import {PiwikService} from '../../openaireLibrary/utils/piwik/piwik.service';
|
||||||
|
import {ConfigurationService} from '../../openaireLibrary/utils/configuration/configuration.service';
|
||||||
|
import {CommunityService} from '../../openaireLibrary/connect/community/community.service';
|
||||||
|
|
||||||
|
import {FreeGuard} from '../../openaireLibrary/login/freeGuard.guard';
|
||||||
|
import {PreviousRouteRecorder} from '../../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule, RouterModule, CommunityRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
CommunityComponent
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
FreeGuard, PreviousRouteRecorder, ConfigurationService,
|
||||||
|
PiwikService, CommunityService
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
CommunityComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class CommunityModule { }
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { NgModule} from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import {OpenaireUserComponent } from './user.component';
|
||||||
|
import { UserRoutingModule } from './user-routing.module';
|
||||||
|
import { UserModule} from '../openaireLibrary/login/user.module';
|
||||||
|
|
||||||
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule,
|
||||||
|
UserRoutingModule, UserModule
|
||||||
|
|
||||||
|
],
|
||||||
|
providers:[PreviousRouteRecorder],
|
||||||
|
declarations: [
|
||||||
|
OpenaireUserComponent
|
||||||
|
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class LibUserModule { }
|
|
@ -0,0 +1,15 @@
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import {OpenaireUserComponent } from './user.component';
|
||||||
|
import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
RouterModule.forChild([
|
||||||
|
{ path: '', component: OpenaireUserComponent, canDeactivate: [PreviousRouteRecorder]},
|
||||||
|
|
||||||
|
])
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class UserRoutingModule { }
|
|
@ -0,0 +1,11 @@
|
||||||
|
import {Component, ElementRef} from '@angular/core';
|
||||||
|
import {Observable} from 'rxjs/Observable';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'openaire-user',
|
||||||
|
template: `<user></user>`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class OpenaireUserComponent {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { NgModule} from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import{ReloadModule} from '../openaireLibrary/reload/reload.module';
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, FormsModule, RouterModule, ReloadModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class LibReloadModule { }
|
|
@ -0,0 +1,45 @@
|
||||||
|
import { NgModule, ModuleWithProviders } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
|
||||||
|
const MODULES = [
|
||||||
|
// Do NOT include UniversalModule, HttpModule, or JsonpModule here
|
||||||
|
CommonModule,
|
||||||
|
RouterModule,
|
||||||
|
FormsModule,
|
||||||
|
ReactiveFormsModule
|
||||||
|
];
|
||||||
|
|
||||||
|
const PIPES = [
|
||||||
|
// put pipes here
|
||||||
|
];
|
||||||
|
|
||||||
|
const COMPONENTS = [
|
||||||
|
// put shared components here
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
...MODULES
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
...PIPES,
|
||||||
|
...COMPONENTS
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
...MODULES,
|
||||||
|
...PIPES,
|
||||||
|
...COMPONENTS
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class SharedModule {
|
||||||
|
static forRoot(): ModuleWithProviders {
|
||||||
|
return {
|
||||||
|
ngModule: SharedModule,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
import { Component, Input, ViewChild } from '@angular/core';
|
||||||
|
import { Location } from '@angular/common';
|
||||||
|
import {ActivatedRoute} from '@angular/router';
|
||||||
|
import { EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
|
||||||
|
import {CommunityService} from '../../openaireLibrary/connect/community/community.service';
|
||||||
|
import {Session} from '../../openaireLibrary/login/utils/helper.class';
|
||||||
|
@Component({
|
||||||
|
selector: 'manage',
|
||||||
|
template: `
|
||||||
|
|
||||||
|
|
||||||
|
<a *ngIf="isManager" [href]="'https://beta.admin.connect.openaire.eu/dashboard?communityId='+communityId" class="uk-button uk-button-default uk-margin-left" target="_blank" >
|
||||||
|
<span class="uk-margin-small-right uk-icon" uk-icon="cog"> </span>Manage</a>
|
||||||
|
|
||||||
|
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class ManageComponent {
|
||||||
|
@Input() communityId:string;
|
||||||
|
|
||||||
|
|
||||||
|
isManager:boolean = false;
|
||||||
|
properties:EnvProperties;
|
||||||
|
constructor (private route: ActivatedRoute,
|
||||||
|
private _communityService: CommunityService
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnInit() {
|
||||||
|
this.route.data
|
||||||
|
.subscribe((data: { envSpecific: EnvProperties }) => {
|
||||||
|
this.properties = data.envSpecific;
|
||||||
|
if(Session.isLoggedIn()){
|
||||||
|
if(Session.isPortalAdministrator()||Session.isCommunityCurator()){
|
||||||
|
this.isManager = true;
|
||||||
|
}else if(Session.isLoggedIn()){
|
||||||
|
var email = Session.getUserEmail();
|
||||||
|
this._communityService.iscommunityManager(this.properties, this.properties.communityAPI+ this.communityId, email).subscribe (
|
||||||
|
res => {
|
||||||
|
this.isManager = res;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { NgModule} from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import {CommunityService} from '../../openaireLibrary/connect/community/community.service';
|
||||||
|
import {ManageComponent} from './manage.component';
|
||||||
|
import {AlertModalModule} from '../../openaireLibrary/utils/modal/alertModal.module';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, RouterModule, AlertModalModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
ManageComponent
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
CommunityService
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
ManageComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class ManageModule { }
|
|
@ -0,0 +1,19 @@
|
||||||
|
export class PiwikHelper{
|
||||||
|
public static siteIDs={
|
||||||
|
"connect": 80,
|
||||||
|
"dh-ch":81,
|
||||||
|
"ee":82,
|
||||||
|
"egi":83,
|
||||||
|
"elixir-gr":84,
|
||||||
|
"fam":85,
|
||||||
|
"instruct":86,
|
||||||
|
"mes":87,
|
||||||
|
"ni":88,
|
||||||
|
"oa-pg":89,
|
||||||
|
"rda":90,
|
||||||
|
"aginfra":93,
|
||||||
|
"clarin":100,
|
||||||
|
"dariah":103
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { Http, Response, Headers, RequestOptions } from '@angular/http';
|
||||||
|
import { Observable } from 'rxjs/Rx';
|
||||||
|
import {StatisticsDisplay, StatisticsSummary} from "../../openaireLibrary/connect/statistics/statisticsEntities";
|
||||||
|
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class StatisticsService {
|
||||||
|
|
||||||
|
|
||||||
|
constructor(private http:Http) { }
|
||||||
|
|
||||||
|
getCommunityStatistics(apiUrl: string, communityId: string): Observable<StatisticsSummary> {
|
||||||
|
let url = `${apiUrl}communities/${communityId}`;
|
||||||
|
console.log(`getting statistics summary from: ${url}`);
|
||||||
|
return this.http.get(url)
|
||||||
|
.map(res => <any>res.json())
|
||||||
|
.do(res => {console.log(res)})
|
||||||
|
.map(res => res.statistics)
|
||||||
|
.do(res => {console.log(res)});
|
||||||
|
}
|
||||||
|
|
||||||
|
getCommunityAdminStatisticsChoices(apiUrl: string, communityId: string): Observable<StatisticsDisplay> {
|
||||||
|
let url = `${apiUrl}/statistics/${communityId}`;
|
||||||
|
console.log(`getting admin choices for statistics from: ${url}`);
|
||||||
|
return this.http.get(url)
|
||||||
|
.map(stats => <StatisticsDisplay>stats.json())
|
||||||
|
.catch(this.handleError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private handleError (error: Response) {
|
||||||
|
// in a real world app, we may send the error to some remote logging infrastructure
|
||||||
|
// instead of just logging it to the console
|
||||||
|
console.log(error);
|
||||||
|
return Observable.throw(error || 'Server error');
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
import { Component, Input, ViewChild } from '@angular/core';
|
||||||
|
import { Location } from '@angular/common';
|
||||||
|
import {ActivatedRoute} from '@angular/router';
|
||||||
|
import { EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
|
||||||
|
|
||||||
|
import {InviteService} from './invite.service';
|
||||||
|
import {Session} from '../../openaireLibrary/login/utils/helper.class';
|
||||||
|
@Component({
|
||||||
|
selector: 'invite',
|
||||||
|
template: `
|
||||||
|
<form class="uk-form-stacked">
|
||||||
|
<div>
|
||||||
|
<label class="uk-form-label">Subject</label>
|
||||||
|
<input type="text" placeholder="Subject" [(ngModel)]=subject name="subject">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="uk-form-label">Message</div>
|
||||||
|
<textarea cols="" rows="6" placeholder="Email message..." [(ngModel)]=body name="body"></textarea>
|
||||||
|
</div>
|
||||||
|
<a class="uk-button uk-button-primary" (click)="invite()"> Invite</a>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class InviteComponent {
|
||||||
|
@Input() communityName:boolean;
|
||||||
|
@Input() communityId:string;
|
||||||
|
properties:EnvProperties;
|
||||||
|
|
||||||
|
subject:string;
|
||||||
|
body:string;
|
||||||
|
recipients:string[] = [];
|
||||||
|
|
||||||
|
constructor (private route: ActivatedRoute,
|
||||||
|
private _inviteService: InviteService
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnInit() {
|
||||||
|
this.route.data
|
||||||
|
.subscribe((data: { envSpecific: EnvProperties }) => {
|
||||||
|
this.properties = data.envSpecific;
|
||||||
|
this.subject = "["+this.communityName+"] Invitation to join community";
|
||||||
|
this.body = "Dear sir or madame, \n\nWe would like to invite you to join "+this.communityName +
|
||||||
|
" OpenAIRE community (beta."+this.communityId+".openaire.eu)";
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
invite(){
|
||||||
|
var email = Session.getUserEmail();
|
||||||
|
//TODO
|
||||||
|
this._inviteService.inviteUsers( this.properties.adminToolsAPIURL,this.subject, this.body, ["argirok@di.uoa.gr"]).subscribe (
|
||||||
|
res => {
|
||||||
|
console.log(res);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
import { NgModule} from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
import {FormsModule} from '@angular/forms';
|
||||||
|
|
||||||
|
import { InviteService } from './invite.service';
|
||||||
|
import {InviteComponent} from './invite.component';
|
||||||
|
import {AlertModalModule} from '../../openaireLibrary/utils/modal/alertModal.module';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, RouterModule, AlertModalModule, FormsModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
InviteComponent
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
InviteService
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
InviteComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class InviteModule { }
|
|
@ -0,0 +1,26 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { Http, Response, Headers, RequestOptions } from '@angular/http';
|
||||||
|
import { Observable } from 'rxjs/Rx';
|
||||||
|
import {COOKIE} from "../../openaireLibrary/login/utils/helper.class"
|
||||||
|
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class InviteService {
|
||||||
|
|
||||||
|
constructor(private http:Http) {
|
||||||
|
}
|
||||||
|
inviteUsers(url:string, subject:string, body:string, recipients:string[]){
|
||||||
|
var email = {"subject":subject, "body":body, recipients: recipients };
|
||||||
|
return this.http.post(url+"/email", JSON.stringify(email), this.getAuthOptionsWithBody())
|
||||||
|
.map(res => <any> res.json())
|
||||||
|
.do(res => {console.log("Response is "+res)});
|
||||||
|
}
|
||||||
|
public getAuthOptionsWithBody():RequestOptions{
|
||||||
|
let headers = new Headers();
|
||||||
|
headers.append('Content-Type', 'application/json');
|
||||||
|
headers.append('X-XSRF-TOKEN', COOKIE.getCookie(COOKIE.cookieName_id));
|
||||||
|
let options = new RequestOptions({ headers: headers, withCredentials:true });
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,119 @@
|
||||||
|
import { Component, Input, ViewChild } from '@angular/core';
|
||||||
|
import { Location } from '@angular/common';
|
||||||
|
import {ActivatedRoute} from '@angular/router';
|
||||||
|
import { EnvProperties} from '../../openaireLibrary/utils/properties/env-properties';
|
||||||
|
import {AlertModal} from '../../openaireLibrary/utils/modal/alert';
|
||||||
|
|
||||||
|
import {SubscribeService} from '../../openaireLibrary/utils/subscribe/subscribe.service';
|
||||||
|
import {Session} from '../../openaireLibrary/login/utils/helper.class';
|
||||||
|
@Component({
|
||||||
|
selector: 'subscribe',
|
||||||
|
template: `
|
||||||
|
|
||||||
|
<span *ngIf="subscribed != null && !showNumbers">
|
||||||
|
<div *ngIf="!subscribed && showLoginAlert" class="uk-alert-warning uk-animation-slide-bottom" uk-alert="" >
|
||||||
|
<a class="uk-alert-close" uk-close></a>
|
||||||
|
<p>Please login first to subscribe</p>
|
||||||
|
</div>
|
||||||
|
<a *ngIf="!subscribed" class="uk-button uk-button-primary" (click)="subscribe()"> Subscribe</a>
|
||||||
|
<a *ngIf="subscribed" class="uk-button uk-button-danger" (click)="confirmOpen()"> Unsubscribe</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span *ngIf="showNumbers && subscribers !=null && subscribers > 0" >
|
||||||
|
Members: {{subscribers}}
|
||||||
|
</span>
|
||||||
|
<modal-alert (alertOutput)="confirmClose($event)">
|
||||||
|
</modal-alert>
|
||||||
|
`
|
||||||
|
})
|
||||||
|
|
||||||
|
export class SubscribeComponent {
|
||||||
|
// @Input() showSubscribe:boolean = true;
|
||||||
|
@Input() showNumbers:boolean;
|
||||||
|
@Input() communityId:string;
|
||||||
|
|
||||||
|
|
||||||
|
subscribed:boolean = null;
|
||||||
|
properties:EnvProperties;
|
||||||
|
subscribers:number= null;
|
||||||
|
showLoginAlert:Boolean = false;
|
||||||
|
@ViewChild(AlertModal) alert;
|
||||||
|
constructor (private route: ActivatedRoute,
|
||||||
|
private _subscribeService: SubscribeService
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ngOnInit() {
|
||||||
|
this.route.data
|
||||||
|
.subscribe((data: { envSpecific: EnvProperties }) => {
|
||||||
|
this.properties = data.envSpecific;
|
||||||
|
if(!this.showNumbers){
|
||||||
|
var email = Session.getUserEmail();
|
||||||
|
if(email == null){
|
||||||
|
this.subscribed = false;
|
||||||
|
}else{
|
||||||
|
this._subscribeService.isSubscribedToCommunity(this.communityId, email,this.properties.adminToolsAPIURL).subscribe (
|
||||||
|
res => {
|
||||||
|
this.subscribed = res;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
this._subscribeService.getCommunitySubscribers(this.communityId, this.properties.adminToolsAPIURL).subscribe (
|
||||||
|
res => {
|
||||||
|
|
||||||
|
this.subscribers = (res && res.subscribers && res.subscribers.length )?res.subscribers.length:0;
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
subscribe(){
|
||||||
|
var email = Session.getUserEmail();
|
||||||
|
if(email == null){
|
||||||
|
this.subscribed = false;
|
||||||
|
this.showLoginAlert = true;
|
||||||
|
}else{
|
||||||
|
this.showLoginAlert = false;
|
||||||
|
this._subscribeService.subscribeToCommunity(this.communityId, email, this.properties.adminToolsAPIURL).subscribe (
|
||||||
|
res => {
|
||||||
|
console.log(res);
|
||||||
|
if(!this.subscribed){
|
||||||
|
this.subscribed = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unsubscribe(){
|
||||||
|
var email = Session.getUserEmail();
|
||||||
|
if(email == null){
|
||||||
|
this.subscribed = false;
|
||||||
|
}else{
|
||||||
|
//this.properties.adminToolsAPIURL
|
||||||
|
this._subscribeService.unSubscribeToCommunity(this.communityId, email,this.properties.adminToolsAPIURL).subscribe (
|
||||||
|
res => {
|
||||||
|
console.log(res);
|
||||||
|
if(this.subscribed){
|
||||||
|
this.subscribed = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
confirmOpen(){
|
||||||
|
|
||||||
|
this.alert.cancelButton = true;
|
||||||
|
this.alert.okButton = true;
|
||||||
|
this.alert.alertTitle = "Unsubscribe community ";
|
||||||
|
this.alert.message = "Do you want to proceed? ";
|
||||||
|
this.alert.okButtonText = "Yes";
|
||||||
|
this.alert.cancelButtonText = "No";
|
||||||
|
this.alert.open();
|
||||||
|
}
|
||||||
|
confirmClose(data){
|
||||||
|
this.unsubscribe();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { NgModule} from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { SubscribeService } from '../../openaireLibrary/utils/subscribe/subscribe.service';
|
||||||
|
import {SubscribeComponent} from './subscribe.component';
|
||||||
|
import {AlertModalModule} from '../../openaireLibrary/utils/modal/alertModal.module';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule, RouterModule, AlertModalModule
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
SubscribeComponent
|
||||||
|
],
|
||||||
|
providers:[
|
||||||
|
SubscribeService
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
SubscribeComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class SubscribeModule { }
|
|
@ -0,0 +1,98 @@
|
||||||
|
{
|
||||||
|
"environment" : "beta",
|
||||||
|
"enablePiwikTrack" : false,
|
||||||
|
"enableHelper" : true,
|
||||||
|
"useCache" : false,
|
||||||
|
"metricsAPIURL" : "https://beta.services.openaire.eu/usagestats/",
|
||||||
|
"framesAPIURL" : "https://beta.openaire.eu/stats3/",
|
||||||
|
"statisticsAPIURL" : "http://vatopedi.di.uoa.gr:8080/stats/",
|
||||||
|
"statisticsFrameAPIURL":"https://beta.openaire.eu/stats/",
|
||||||
|
"claimsAPIURL" : "http://duffy.di.uoa.gr:8080/dnet-claims-service-2.0.0-SNAPSHOT/rest/claimsService/",
|
||||||
|
"searchAPIURLLAst" : "https://beta.services.openaire.eu/search/v2/api/",
|
||||||
|
"searchResourcesAPIURL" : "https://beta.services.openaire.eu/search/v2/api/resources",
|
||||||
|
"csvAPIURL" : "https://beta.services.openaire.eu/search/v2/api/reports",
|
||||||
|
"searchCrossrefAPIURL" : "https://api.crossref.org/works",
|
||||||
|
"searchDataciteAPIURL" : "https://api.datacite.org/works",
|
||||||
|
|
||||||
|
"searchOrcidURL" : "https://pub.orcid.org/v2.1/",
|
||||||
|
|
||||||
|
"pmidURL" : "http://www.ncbi.nlm.nih.gov/pubmed/",
|
||||||
|
"doiURL" : "https://dx.doi.org/",
|
||||||
|
"cordisURL" : "http://cordis.europa.eu/projects/",
|
||||||
|
"pmcURL" : "http://europepmc.org/articles/",
|
||||||
|
"handleURL" : "http://hdl.handle.net/",
|
||||||
|
"openDoarURL": "http://v2.sherpa.ac.uk/id/repository/",
|
||||||
|
"r3DataURL": "http://service.re3data.org/repository/",
|
||||||
|
"zenodo" : "https://zenodo.org/",
|
||||||
|
"openAccess" : "https://www.openaire.eu/support/faq#article-id-234",
|
||||||
|
"openAccessRepo" : "https://www.openaire.eu/support/faq#article-id-310",
|
||||||
|
"fp7Guidlines" : "https://www.openaire.eu/open-access-in-fp7-seventh-research-framework-programme",
|
||||||
|
"h2020Guidlines" : "https://www.openaire.eu/oa-publications/h2020/open-access-in-horizon-2020",
|
||||||
|
"ercGuidlines" : "http://erc.europa.eu/sites/default/files/document/file/ERC_Open_Access_Guidelines-revised_2014.pdf",
|
||||||
|
"helpdesk" : "https://www.openaire.eu/support/helpdesk",
|
||||||
|
"uploadService" : "http://scoobydoo.di.uoa.gr:8000/upload",
|
||||||
|
|
||||||
|
"vocabulariesAPI" :"https://beta.services.openaire.eu/provision/mvc/vocabularies/",
|
||||||
|
|
||||||
|
"piwikBaseUrl" :"https://analytics.openaire.eu/piwik.php?idsite=",
|
||||||
|
"piwikSiteId" : "6",
|
||||||
|
|
||||||
|
"loginUrl" :"http://scoobydoo.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/openid_connect_login",
|
||||||
|
|
||||||
|
"logoutUrl" :"https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",
|
||||||
|
|
||||||
|
"cookieDomain" :".di.uoa.gr",
|
||||||
|
|
||||||
|
"feedbackmail" :"openaire.test@gmail.com",
|
||||||
|
|
||||||
|
"helperPageUrl" :"http://scoobydoo.di.uoa.gr:16000/api/page/route",
|
||||||
|
|
||||||
|
"cacheUrl" :"http://scoobydoo.di.uoa.gr:3000/get?url=",
|
||||||
|
|
||||||
|
"adminToolsAPIURL" :"http://duffy.di.uoa.gr:8080/uoa-admin-tools/",
|
||||||
|
|
||||||
|
"adminToolsCommunity" :"openaire",
|
||||||
|
|
||||||
|
"datasourcesAPI": "https://beta.services.openaire.eu/openaire/ds/search/",
|
||||||
|
"contextsAPI":"https://dev-openaire.d4science.org/openaire/context",
|
||||||
|
"communityAPI": "https://dev-openaire.d4science.org/openaire/community/",
|
||||||
|
|
||||||
|
"csvLimit": 2000,
|
||||||
|
"pagingLimit": 20,
|
||||||
|
"resultsPerPage": 10,
|
||||||
|
|
||||||
|
"baseLink" : "https://beta.explore.openaire.eu",
|
||||||
|
|
||||||
|
"searchLinkToPublication" : "/search/publication?articleId=",
|
||||||
|
"searchLinkToProject" : "/search/project?projectId=",
|
||||||
|
"searchLinkToDataProvider" : "/search/dataprovider?datasourceId=",
|
||||||
|
"searchLinkToDataset" : "/search/dataset?datasetId=",
|
||||||
|
"searchLinkToOrp" : "/search/other?orpId=",
|
||||||
|
"searchLinkToOrganization" : "/search/organization?organizationId=",
|
||||||
|
|
||||||
|
"searchLinkToPublications" : "/search/find/publications",
|
||||||
|
"searchLinkToDataProviders" : "/search/find/dataproviders",
|
||||||
|
"searchLinkToProjects" : "/search/find/projects",
|
||||||
|
"searchLinkToDatasets" : "/search/find/datasets",
|
||||||
|
"searchLinkToSoftware" : "/search/find/software",
|
||||||
|
"searchLinkToOrps" : "/search/find/other",
|
||||||
|
"searchLinkToOrganizations" : "/search/find/organizations",
|
||||||
|
"searchLinkToCompatibleDataProviders" : "/search/content-providers",
|
||||||
|
"searchLinkToCompatibleDataProvidersTable" : "/search/content-providers-table",
|
||||||
|
"searchLinkToEntityRegistriesDataProviders" : "/search/entity-registries",
|
||||||
|
"searchLinkToEntityRegistriesDataProvidersTable" : "/search/entity-registries-table",
|
||||||
|
"searchLinkToJournals" : "/search/journals",
|
||||||
|
"searchLinkToJournalsTable" : "/search/journals-table",
|
||||||
|
|
||||||
|
"searchLinkToAdvancedPublications" : "/search/advanced/publications",
|
||||||
|
"searchLinkToAdvancedProjects" : "/search/advanced/projects",
|
||||||
|
"searchLinkToAdvancedDatasets" : "/search/advanced/datasets",
|
||||||
|
"searchLinkToAdvancedSoftware" : "/search/advanced/software",
|
||||||
|
"searchLinkToAdvancedOrps" : "/search/advanced/other",
|
||||||
|
"searchLinkToAdvancedDataProviders" : "/search/advanced/dataproviders",
|
||||||
|
"searchLinkToAdvancedOrganizations" : "/search/advanced/organizations",
|
||||||
|
"lastIndexInformationLink" : "https://www.openaire.eu/aggregation-and-content-provision-workflows",
|
||||||
|
"showLastIndexInformationLink" : true,
|
||||||
|
"widgetLink" : "https://beta.openaire.eu/index.php?option=com_openaire&view=widget&format=raw&projectId=",
|
||||||
|
"claimsInformationLink": "https://www.openaire.eu/linking-beta"
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 117 KiB |
Binary file not shown.
After Width: | Height: | Size: 216 KiB |
Binary file not shown.
After Width: | Height: | Size: 7.8 KiB |
|
@ -0,0 +1,52 @@
|
||||||
|
/* .tm-toolbar .uk-subnav-line .custom-monitor-li {
|
||||||
|
display: block;
|
||||||
|
background:#68A704 !important; color:#fff !important;
|
||||||
|
}
|
||||||
|
.custom-monitor-toolbar ul.uk-subnav.uk-subnav-line{
|
||||||
|
background-color: #8BCC00 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-monitor-toolbar .inner {
|
||||||
|
background-color: #8BCC00 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-monitor-toolbar{
|
||||||
|
border-top-color:#8BCC00 !important;
|
||||||
|
}
|
||||||
|
.uk-button-default:hover,.uk-button-default:focus,.btn:hover,.btn:focus {
|
||||||
|
background-color:#fff !important;
|
||||||
|
color:#5b5b5b !important;
|
||||||
|
box-shadow:0 6px 50px rgba(0,0,0,0.05)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
:root {
|
||||||
|
--portal-main-color: #9ABB55;
|
||||||
|
--portal-main-contrast: white;
|
||||||
|
--portal-dark-color: #7c9144;
|
||||||
|
--openaire-main-color: #313179;
|
||||||
|
|
||||||
|
--explore-portal-color: #D95F2D;
|
||||||
|
--provide-portal-color: #37C7E9;
|
||||||
|
--monitor-portal-color: #9ABB55;
|
||||||
|
--connect-portal-color: #EBB13E;
|
||||||
|
--develop-portal-color: #DA65AB;
|
||||||
|
|
||||||
|
--explore-portal-lower-tone: #a0462c;
|
||||||
|
--provide-portal-lower-tone: #3A8FA3;
|
||||||
|
--monitor-portal-lower-tone: #7c9144;
|
||||||
|
--connect-portal-lower-tone: #b48536;
|
||||||
|
--develop-portal-lower-tone: #9f4e7e;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.tm-toolbar .uk-subnav-line .custom-monitor-li {
|
||||||
|
background:var(--portal-main-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.mainPageSearchForm {
|
||||||
|
background-image: url("./home.jpeg") !important;
|
||||||
|
background-color: rgb(255, 255, 255);
|
||||||
|
box-sizing: border-box;
|
||||||
|
min-height: calc(100vh - 412.767px);
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
||||||
|
<url>
|
||||||
|
<loc><![CDATA[https://monitor.openaire.eu]]></loc>
|
||||||
|
<changefreq>weekly</changefreq>
|
||||||
|
<priority>0.5</priority>
|
||||||
|
</url>
|
||||||
|
</urlset>
|
|
@ -0,0 +1,3 @@
|
||||||
|
export const environment = {
|
||||||
|
production: true
|
||||||
|
};
|
|
@ -0,0 +1,8 @@
|
||||||
|
// The file contents for the current environment will overwrite these during build.
|
||||||
|
// The build system defaults to the dev environment which uses `environment.ts`, but if you do
|
||||||
|
// `ng build --env=prod` then `environment.prod.ts` will be used instead.
|
||||||
|
// The list of which env maps to which file can be found in `.angular-cli.json`.
|
||||||
|
|
||||||
|
export const environment = {
|
||||||
|
production: false
|
||||||
|
};
|
|
@ -0,0 +1,155 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en-gb" dir="ltr" vocab="http://schema.org/">
|
||||||
|
<head>
|
||||||
|
<!--link href="http://demo.openaire.eu" rel="canonical" /-->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<base href="/" />
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<!--meta name="description" content="OpenAIRE, Connect,Community Dashboard, communities, open access, research, projects "/>
|
||||||
|
|
||||||
|
|
||||||
|
<meta property="og:description" content="OpenAIRE, Connect,Community Dashboard, communities, open access, research, projects"/>
|
||||||
|
<meta property="og:title" content="OpenAIRE Connect | Community Dashboard"/>
|
||||||
|
|
||||||
|
<meta property="og:type" content="website"/>
|
||||||
|
<meta property="og:url" content="https://beta.connect.openaire.eu"/>
|
||||||
|
<meta property="og:site_name" content="OpenAIRE"/-->
|
||||||
|
|
||||||
|
<meta property="og:image" content="assets/common-assets/common/Symbol.png"/>
|
||||||
|
<meta property="og:image:secure_url" content="assets/common-assets/common/Symbol.png" />
|
||||||
|
<meta property="og:image:type" content="image/png" />
|
||||||
|
<meta property="og:image:width" content="360" />
|
||||||
|
<meta property="og:image:height" content="359" />
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="assets/common-assets/logo/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="assets/common-assets/logo/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="assets/common-assets/logo/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="assets/common-assets/logo/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="assets/common-assets/logo/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="assets/common-assets/logo/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="assets/common-assets/logo/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="assets/common-assets/logo/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/common-assets/logo/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="assets/common-assets/logo/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="assets/common-assets/logo/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="assets/common-assets/logo/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="assets/common-assets/logo/favicon-16x16.png">
|
||||||
|
<link href="assets/common-assets/logo/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
|
||||||
|
<link rel="manifest" href="assets/common-assets/logo/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|
||||||
|
<!--title>OpenAIRE Connect</title-->
|
||||||
|
<script>
|
||||||
|
window.onerror = function (errorMsg, url, lineNumber, column, errorObj) {
|
||||||
|
// console.log(errorMsg + " __" + url + " __" + lineNumber + " __" + column + " __" + errorObj);
|
||||||
|
if((errorMsg && errorMsg.indexOf("uikit.js") != -1) || url.indexOf("uikit.js") != -1 ){
|
||||||
|
console.log("********UIKIT Error ***********");
|
||||||
|
$.getScript("assets/common-assets/common/uikit.js");
|
||||||
|
$.getScript("assets/common-assets/common/uikit-icons-max.js");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <script src="assets/common-assets/jquery/jquery.min.js" type="text/javascript"></script> -->
|
||||||
|
<script src="assets/common-assets/common/jquery.js"></script>
|
||||||
|
<script src="assets/common-assets/citeproc.js"></script>
|
||||||
|
<!-- <script src="assets/common-assets/common/uikit.js"></script> -->
|
||||||
|
<script src="assets/common-assets/common/uikit-icons-max.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function(){
|
||||||
|
console.log("Is ready - load uikit ***")
|
||||||
|
$.getScript("assets/common-assets/common/uikit.js");
|
||||||
|
$.getScript("assets/common-assets/common/uikit-icons-max.js");
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
var logoutClicked = function(){
|
||||||
|
console.log("jqery logout!");
|
||||||
|
// no
|
||||||
|
// $("#logout1").load("https://dl067.madgik.di.uoa.gr/idp/profile/Logout");
|
||||||
|
//yes
|
||||||
|
// window.open('https://dl067.madgik.di.uoa.gr/idp/profile/Logout','_blank','toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,visible=none', '');
|
||||||
|
|
||||||
|
// no
|
||||||
|
var xmlHttp = null;
|
||||||
|
|
||||||
|
xmlHttp = new XMLHttpRequest();
|
||||||
|
xmlHttp.open( "GET", "https://dl067.madgik.di.uoa.gr/idp/profile/Logout", true );
|
||||||
|
xmlHttp.send( null );
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<!-- <script src="assets/common-assets/common/uikit.js"></script> -->
|
||||||
|
<!-- <script src="assets/common-assets/common/uikit-icons-max.js"></script> -->
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="assets/common-assets/common/theme.css">
|
||||||
|
<link rel="stylesheet" href="assets/common-assets/common/custom.css">
|
||||||
|
<link rel="stylesheet" href="assets/common-assets/library.css">
|
||||||
|
<link rel="stylesheet" href="assets/monitor-custom.css">
|
||||||
|
|
||||||
|
<!-- <script async src="assets/common-assets/common/theme.js"></script> -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Google sitename markup-->
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context" : "http://schema.org",
|
||||||
|
"@type" : "WebSite",
|
||||||
|
"name" : "OpenAIRE",
|
||||||
|
"url" : "http://demo.openaire.eu"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<!-- End of Google sitename markup-->
|
||||||
|
<!-- Google sitelinks search markup-->
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "http://schema.org",
|
||||||
|
"@type": "WebSite",
|
||||||
|
"url" : "http://demo.openaire.eu",
|
||||||
|
"potentialAction": {
|
||||||
|
"@type": "SearchAction",
|
||||||
|
"target": "http://demo.openaire.eu/search/find/?keyword={search_term_string}",
|
||||||
|
"query-input": "required name=search_term_string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script src="assets/common-assets/clipboard.min.js"></script>
|
||||||
|
<!--script type='text/javascript' src="node_modules/clipboard/dist/clipboard.min.js"></script-->
|
||||||
|
<!--script src="https://cdn.jsdelivr.net/clipboard.js/1.5.12/clipboard.min.js"></script-->
|
||||||
|
|
||||||
|
<!--script type='text/javascript' src='https://d1bxh8uas1mnw7.cloudfront.net/assets/common-assets/embed.js'></script-->
|
||||||
|
|
||||||
|
<!-- End of Google sitelinks search markup-->
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body class="" style="">
|
||||||
|
|
||||||
|
<div class="uk-offcanvas-content uk-height-viewport">
|
||||||
|
|
||||||
|
<app-root></app-root>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" >
|
||||||
|
function loadAltmetrics(e,t,n){
|
||||||
|
var d="createElement",c="getElementsByTagName",m="setAttribute",n=document.getElementById(e);
|
||||||
|
return n&&n.parentNode&&n.parentNode.removeChild(n),n=document[d+"NS"]&&document.documentElement.namespaceURI,n=n?document[d+"NS"](n,"script"):document[d]("script"),n[m]("id",e),n[m]("src",t),(document[c]("head")[0]||document[c]("body")[0]).appendChild(n),n=new Image,void n[m]("src","https://d1uo4w7k31k5mn.cloudfront.net/donut/0.png")
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<!-- Go to www.addthis.com/dashboard to customize your tools -->
|
||||||
|
<!-- to update addThis: https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080-->
|
||||||
|
<!-- <script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5a12dbd124e4e521"></script> -->
|
||||||
|
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-559d24521cd8c080"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1 @@
|
||||||
|
export { AppServerModule } from './app/app.server.module';
|
|
@ -0,0 +1,13 @@
|
||||||
|
import { enableProdMode } from '@angular/core';
|
||||||
|
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
||||||
|
|
||||||
|
import { AppModule } from './app/app.module';
|
||||||
|
import { environment } from './environments/environment';
|
||||||
|
|
||||||
|
if (environment.production) {
|
||||||
|
enableProdMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
platformBrowserDynamic().bootstrapModule(AppModule);
|
||||||
|
});
|
|
@ -0,0 +1,72 @@
|
||||||
|
/**
|
||||||
|
* This file includes polyfills needed by Angular and is loaded before the app.
|
||||||
|
* You can add your own extra polyfills to this file.
|
||||||
|
*
|
||||||
|
* This file is divided into 2 sections:
|
||||||
|
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
|
||||||
|
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
|
||||||
|
* file.
|
||||||
|
*
|
||||||
|
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
|
||||||
|
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
|
||||||
|
* 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************************************
|
||||||
|
* 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 */
|
||||||
|
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
||||||
|
|
||||||
|
/** Evergreen browsers require these. **/
|
||||||
|
import 'core-js/es6/reflect';
|
||||||
|
import 'core-js/es7/reflect';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Required to support Web Animations `@angular/animation`.
|
||||||
|
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
|
||||||
|
**/
|
||||||
|
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************************************
|
||||||
|
* Zone JS is required by Angular itself.
|
||||||
|
*/
|
||||||
|
import 'zone.js/dist/zone'; // Included with Angular CLI.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************************************************************
|
||||||
|
* 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';
|
|
@ -0,0 +1,7 @@
|
||||||
|
User-Agent: *
|
||||||
|
Disallow: /cache
|
||||||
|
Disallow: /upload
|
||||||
|
#Disallow: /
|
||||||
|
|
||||||
|
|
||||||
|
Sitemap: https://monitor.openaire.eu/sitemap.xml
|
|
@ -0,0 +1 @@
|
||||||
|
/* You can add global styles to this file, and also import other style files */
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"extends": "../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "../out-tsc/app",
|
||||||
|
"baseUrl": "./",
|
||||||
|
"module": "es2015",
|
||||||
|
"types": [
|
||||||
|
"node"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"test.ts",
|
||||||
|
"**/*.spec.ts"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"extends": "../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "../out-tsc/app",
|
||||||
|
"baseUrl": "./",
|
||||||
|
// Set the module format to "commonjs":
|
||||||
|
"module": "commonjs",
|
||||||
|
"types": [
|
||||||
|
"node"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"exclude": [
|
||||||
|
"test.ts",
|
||||||
|
"**/*.spec.ts"
|
||||||
|
],
|
||||||
|
// Add "angularCompilerOptions" with the AppServerModule you wrote
|
||||||
|
// set as the "entryModule".
|
||||||
|
"angularCompilerOptions": {
|
||||||
|
"entryModule": "app/app.server.module#AppServerModule"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
export const ROUTES = [
|
||||||
|
'/',
|
||||||
|
'/lazy',
|
||||||
|
'/home',
|
||||||
|
'/search/publication','/search/project','/search/dataset','/search/dataprovider','/search/organization',
|
||||||
|
'/search/find',
|
||||||
|
'/search/person','/search/publication','/search/project','/search/dataset','/search/dataprovider','/search/organization',
|
||||||
|
'/search/find/people','/search/find/publications','/search/find/projects','/search/find/datasets','/search/find/dataproviders','/search/find/organizations',
|
||||||
|
'/search/advanced/people','/search/advanced/publications','/search/advanced/projects','/search/advanced/datasets','/search/advanced/dataproviders','/search/advanced/organizations',
|
||||||
|
'/participate/deposit-publications','/participate/deposit-datasets','/participate/deposit-publications-result','/participate/deposit-datasets-result','/participate/deposit-subject-result',
|
||||||
|
'/search/content-providers','/search/content-providers-table','/search/entity-registries','/search/entity-registries-table','/search/journals','/search/journals-table',
|
||||||
|
'/project-report','/claims','/myclaims','/participate/claim','/participate/direct-claim','/claims-project-manager',
|
||||||
|
'/test','/user-info',
|
||||||
|
'/error', '/*path'
|
||||||
|
];
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"compileOnSave": false,
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "./dist/out-tsc",
|
||||||
|
"sourceMap": true,
|
||||||
|
"declaration": false,
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"emitDecoratorMetadata": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"target": "es5",
|
||||||
|
"typeRoots": [
|
||||||
|
"node_modules/@types"
|
||||||
|
],
|
||||||
|
"lib": [
|
||||||
|
"es2017",
|
||||||
|
"dom"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
// Work around for https://github.com/angular/angular-cli/issues/7200
|
||||||
|
|
||||||
|
const path = require('path');
|
||||||
|
const webpack = require('webpack');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
entry: {
|
||||||
|
// This is our Express server for Dynamic universal
|
||||||
|
server: './server.ts',
|
||||||
|
// This is an example of Static prerendering (generative)
|
||||||
|
prerender: './prerender.ts'
|
||||||
|
},
|
||||||
|
target: 'node',
|
||||||
|
resolve: { extensions: ['.ts', '.js'] },
|
||||||
|
// Make sure we include all node_modules etc
|
||||||
|
externals: [/(node_modules|main\..*\.js)/,],
|
||||||
|
output: {
|
||||||
|
// Puts the output at the root of the dist folder
|
||||||
|
path: path.join(__dirname, 'dist'),
|
||||||
|
filename: '[name].js'
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{ test: /\.ts$/, loader: 'ts-loader' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new webpack.ContextReplacementPlugin(
|
||||||
|
// fixes WARNING Critical dependency: the request of a dependency is an expression
|
||||||
|
/(.+)?angular(\\|\/)core(.+)?/,
|
||||||
|
path.join(__dirname, 'src'), // location of your src
|
||||||
|
{} // a map of your routes
|
||||||
|
),
|
||||||
|
new webpack.ContextReplacementPlugin(
|
||||||
|
// fixes WARNING Critical dependency: the request of a dependency is an expression
|
||||||
|
/(.+)?express(\\|\/)(.+)?/,
|
||||||
|
path.join(__dirname, 'src'),
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue