From df36b36b5dc7ade86f48a53dcecabc47ba18af24 Mon Sep 17 00:00:00 2001 From: Argiro Kokogiannaki Date: Thu, 29 Oct 2020 09:17:39 +0000 Subject: [PATCH] [Monitor Dashboard|Trunk] Description: add additional description field add tooltip to show description Manage stakeholders: add checks for roles git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-monitor-portal/trunk/monitor_dashboard@59713 d315682c-612b-4755-9ff5-7f18f6832af3 --- src/app/app.component.ts | 8 +++---- .../manageStakeholders.component.html | 16 ++++++------- .../manageStakeholders.component.ts | 12 ++++++++-- src/app/monitor/monitor.component.html | 23 +++++++++++------- src/app/topic/indicators.component.html | 24 ++++++++++++++----- src/app/topic/indicators.component.ts | 12 ++++++---- src/app/topic/topic.component.html | 2 +- src/app/utils/adminDashboard.guard.ts | 6 +---- src/app/utils/indicator-utils.ts | 2 +- src/assets/new.css | 7 +++++- src/environments/environment.ts | 8 +++---- 11 files changed, 76 insertions(+), 44 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 60d8126..058a5c7 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -100,8 +100,8 @@ export class AppComponent implements OnInit, OnDestroy { this.stakeholderService.getStakeholder(this.properties.monitorServiceAPIURL, params['stakeholder']).subscribe(stakeholder => { if(stakeholder) { this.stakeholder = stakeholder; - this.buildMenu(); LinksResolver.setProperties(this.stakeholder.alias); + this.buildMenu(); this.stakeholderService.setStakeholder(stakeholder); this.layoutService.setSmallScreen((this.innerWidth && this.innerWidth < 1219)); this.layoutService.setOpen(!(this.innerWidth && this.innerWidth < 1219)); @@ -209,13 +209,13 @@ export class AppComponent implements OnInit, OnDestroy { position: 'center', badge: false }; - // if(this.isAdmin()) { + if(this.isAdmin()) { this.menuItems.push({ rootItem: new MenuItem("manage", "Manage", "", "/admin", false, [], null, {}), items: [] }); - // } + } this.specialSideBarMenuItem = new MenuItem("search", "Search research outcomes", "", this.properties.searchLinkToResults, false, [], null, {}) this.specialSideBarMenuItem.icon = ''; @@ -282,7 +282,7 @@ export class AppComponent implements OnInit, OnDestroy { } public isAdmin() { - return this.user && (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user)); + return this.user && (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user) || (this.stakeholder && Session.isManager(this.stakeholder.type,this.stakeholder.alias,this.user))); } public isPublicOrIsMember(visibility: Visibility): boolean { diff --git a/src/app/manageStakeholders/manageStakeholders.component.html b/src/app/manageStakeholders/manageStakeholders.component.html index 7a9368f..a3eb8b7 100644 --- a/src/app/manageStakeholders/manageStakeholders.component.html +++ b/src/app/manageStakeholders/manageStakeholders.component.html @@ -1,9 +1,9 @@
-
+
@@ -23,7 +23,7 @@
-
+
Profile Templates
@@ -31,13 +31,13 @@ -
+
-
+
Profiles
@@ -45,7 +45,7 @@ -
+
@@ -73,8 +73,8 @@ {{'Make ' + v.label.toLowerCase()}} -
-
  • +
  • Delete
  • diff --git a/src/app/manageStakeholders/manageStakeholders.component.ts b/src/app/manageStakeholders/manageStakeholders.component.ts index cefec38..0b8bda4 100644 --- a/src/app/manageStakeholders/manageStakeholders.component.ts +++ b/src/app/manageStakeholders/manageStakeholders.component.ts @@ -232,8 +232,16 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy { stakeholder.isPublic = isPublic; }); } - - public isAdministrator(): boolean { + public isManager(): boolean { + return this.isCurator() || (Session.isKindOfMonitorManager(this.user)); + } + public isProfileManager(stakeholder:Stakeholder): boolean { + return this.isCurator() || (Session.isManager(stakeholder.type, stakeholder.alias, this.user)); + } + public isCurator(): boolean { + return this.isAdmin() || Session.isCommunityCurator(this.user) || Session.isMonitorCurator(this.user); + } + public isAdmin(): boolean { return Session.isPortalAdministrator(this.user); } changeTab(tab:"all" | "templates" | "profiles"){ diff --git a/src/app/monitor/monitor.component.html b/src/app/monitor/monitor.component.html index 9c00027..8044b84 100644 --- a/src/app/monitor/monitor.component.html +++ b/src/app/monitor/monitor.component.html @@ -135,7 +135,7 @@ [class.uk-width-1-3@m]="indicator.width === 'small'" [class.uk-width-1-2@m]="indicator.width === 'medium'" [class.uk-width-1-1]="indicator.width === 'large'" class=" uk-margin-bottom"> -
    @@ -147,7 +147,7 @@

    {{numberResults.get(i + '-' + j) | number}}

    - +
    @@ -173,10 +173,7 @@
    + >
    @@ -267,4 +264,14 @@
    - + + + + diff --git a/src/app/topic/indicators.component.html b/src/app/topic/indicators.component.html index 5116eab..5d1dd46 100644 --- a/src/app/topic/indicators.component.html +++ b/src/app/topic/indicators.component.html @@ -87,7 +87,7 @@ [class.disable-sortable]="!canReorder" [class.uk-sortable-nodrag]="!canReorder">
    -
    +
    @@ -118,14 +118,17 @@
    -
    -
    -
    +
    +
    +
    {{indicator.name ? indicator.name : 'No title available'}}
    {{indicator.description}}
    +
    + {{indicator.additionalDescription}} +
    @@ -250,6 +253,9 @@
    {{indicator.description ? indicator.description : ''}}
    +
    + {{indicator.additionalDescription ? indicator.additionalDescription : ''}} +
    @@ -290,9 +296,12 @@ [okDisabled]="numberIndicatorFb && (numberIndicatorFb.invalid || numberIndicatorFb.pristine)">
    -
    +
    +
    @@ -352,9 +361,12 @@ [okDisabled]="chartIndicatorFb && (chartIndicatorFb.invalid || chartIndicatorFb.pristine)">
    -
    +
    +
    diff --git a/src/app/topic/indicators.component.ts b/src/app/topic/indicators.component.ts index 106f944..ed2e68f 100644 --- a/src/app/topic/indicators.component.ts +++ b/src/app/topic/indicators.component.ts @@ -321,6 +321,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV sections.forEach(section => section.indicators = section.indicators.filter(indicator => (indicator.name && indicator.name.toLowerCase().includes(value.toLowerCase())) || (indicator.description && indicator.description.toLowerCase().includes(value.toLowerCase())) + || (indicator.additionalDescription && indicator.additionalDescription.toLowerCase().includes(value.toLowerCase())) || indicator.indicatorPaths.filter(indicatorPath => (indicatorPath.parameters && indicatorPath.parameters.title && indicatorPath.parameters.title.includes(value.toLowerCase()))).length > 0)); } @@ -567,6 +568,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV _id: this.fb.control(this.indicator._id), name: this.fb.control(this.indicator.name, Validators.required), description: this.fb.control(this.indicator.description), + additionalDescription: this.fb.control(this.indicator.additionalDescription), visibility: this.fb.control(this.indicator.visibility), indicatorPaths: this.fb.array([], Validators.required), type: this.fb.control(this.indicator.type), @@ -577,11 +579,12 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV this.addNumberIndicatorPath(this.statisticsService.getNumberUrl(indicatorPath.source,this.indicatorUtils.getFullUrl(this.stakeholder, indicatorPath)),indicatorPath.parameters, indicatorPath.source, this.getJsonPathAsFormArray(indicatorPath)); }); } else { - this.indicator = new Indicator('', '', 'number', 'small', "PUBLIC", []); + this.indicator = new Indicator('', '', '','number', 'small', "PUBLIC", []); this.numberIndicatorFb = this.fb.group({ _id: this.fb.control(this.indicator._id), name: this.fb.control(this.indicator.name, Validators.required), description: this.fb.control(this.indicator.description), + additionalDescription: this.fb.control(this.indicator.additionalDescription), visibility: this.fb.control(this.indicator.visibility), indicatorPaths: this.fb.array([], Validators.required), type: this.fb.control(this.indicator.type), @@ -618,6 +621,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV _id: this.fb.control(this.indicator._id), name: this.fb.control(this.indicator.name), description: this.fb.control(this.indicator.description), + additionalDescription: this.fb.control(this.indicator.additionalDescription), visibility: this.fb.control(this.indicator.visibility), indicatorPaths: this.fb.array([]), width: this.fb.control(this.indicator.width), @@ -629,11 +633,12 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV indicatorPath.safeResourceUrl = this.getSecureUrlByStakeHolder(indicatorPath); }); } else { - this.indicator = new Indicator('', '', 'chart', 'medium', "PUBLIC",[]); + this.indicator = new Indicator('', '', '', 'chart', 'medium', "PUBLIC",[]); this.chartIndicatorFb = this.fb.group({ _id: this.fb.control(this.indicator._id), name: this.fb.control(this.indicator.name), description: this.fb.control(this.indicator.description), + additionalDescription: this.fb.control(this.indicator.additionalDescription), visibility: this.fb.control(this.indicator.visibility), indicatorPaths: this.fb.array([]), width: this.fb.control(this.indicator.width, Validators.required), @@ -736,8 +741,7 @@ export class IndicatorsComponent implements OnInit, OnDestroy, OnChanges, AfterV } public get isAdministrator(): boolean { - return this.properties.environment == 'development' || Session.isPortalAdministrator(this.user); - // return Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isCommunityCurator(this.user) + return Session.isPortalAdministrator(this.user) || Session.isMonitorCurator(this.user) || Session.isCommunityCurator(this.user) } refreshIndicator() { diff --git a/src/app/topic/topic.component.html b/src/app/topic/topic.component.html index 3153979..2a6e77d 100644 --- a/src/app/topic/topic.component.html +++ b/src/app/topic/topic.component.html @@ -27,7 +27,7 @@ class="uk-margin-top uk-margin-small-right uk-visible-toggle" [class.uk-active]="topicIndex == i" [class.uk-text-bold]="topicIndex == i"> - + diff --git a/src/app/utils/adminDashboard.guard.ts b/src/app/utils/adminDashboard.guard.ts index 149db75..7d9a095 100644 --- a/src/app/utils/adminDashboard.guard.ts +++ b/src/app/utils/adminDashboard.guard.ts @@ -16,13 +16,9 @@ export class AdminDashboardGuard implements CanActivate, CanLoad { } check(path: string): Observable | boolean { - /* //Argiro testing - if(properties.environment == "development"){ - return true; - }*/ if (Session.isLoggedIn()) { const obs = this.userManagementService.getUserInfo(false).pipe(map(user => { - return (Session.isPortalAdministrator(user) || Session.isCommunityCurator(user) || Session.isMonitorCurator(user)); + return (Session.isPortalAdministrator(user) || Session.isCommunityCurator(user) || Session.isMonitorCurator(user) || Session.isKindOfMonitorManager(user)); })); obs.pipe(filter(isLoggedIn => !isLoggedIn)).subscribe(() => { this.router.navigate(['/user-info'], {queryParams: {'errorCode': LoginErrorCodes.NOT_ADMIN, 'redirectUrl':path}}); diff --git a/src/app/utils/indicator-utils.ts b/src/app/utils/indicator-utils.ts index ac664ec..add76fd 100644 --- a/src/app/utils/indicator-utils.ts +++ b/src/app/utils/indicator-utils.ts @@ -506,7 +506,7 @@ export class IndicatorUtils { return values.length > 1; } generateIndicatorByForm(form: any, indicatorPaths: IndicatorPath[], type:IndicatorType, addParameters:boolean = true ): Indicator { - let indicator: Indicator = new Indicator(form.name, form.description, type, + let indicator: Indicator = new Indicator(form.name, form.description, form.additionalDescription, type, form.width, form.visibility, indicatorPaths, form.defaultId); indicator._id = form._id; form.indicatorPaths.forEach((indicatorPath, index) => { diff --git a/src/assets/new.css b/src/assets/new.css index 5332674..8ae8958 100644 --- a/src/assets/new.css +++ b/src/assets/new.css @@ -6,7 +6,7 @@ .stakeholderPage { --primary-color: var(--theme-secondary-color); - --secondary-color: var(--theme-primary-color); + --secondary-color: var(--theme-secondary-color); } /*Stakeholder Specific*/ .publicationsSearchForm{ @@ -302,3 +302,8 @@ li.selectedVisibility::before { padding: 0px 2px 3px 0px; } +.descriptionIcon{ + position: absolute; + bottom: 3px; + left: 3px; + } diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 49ccc01..d465c3b 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -49,13 +49,13 @@ export let properties: EnvProperties = { vocabulariesAPI: "https://dev-openaire.d4science.org/provision/mvc/vocabularies/", piwikBaseUrl: "https://analytics.openaire.eu/piwik.php?idsite=", piwikSiteId: "80", - /*registryUrl: 'http://mpagasas.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/api/registry/', + registryUrl: 'http://mpagasas.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/api/registry/', loginUrl: "http://mpagasas.di.uoa.gr:8180/dnet-login/openid_connect_login", userInfoUrl: "http://mpagasas.di.uoa.gr:8080/dnet-openaire-users-1.0.0-SNAPSHOT/api/users/getUserInfo?accessToken=", - logoutUrl: 'http://mpagasas.di.uoa.gr:8180/dnet-login/openid_logout',*/ - loginUrl: "http://dl170.madgik.di.uoa.gr:8180/dnet-login/openid_connect_login", + logoutUrl: 'http://mpagasas.di.uoa.gr:8180/dnet-login/openid_logout', + /* loginUrl: "http://dl170.madgik.di.uoa.gr:8180/dnet-login/openid_connect_login", userInfoUrl: "http://dl170.madgik.di.uoa.gr:8180/dnet-openaire-users-1.0.0-SNAPSHOT/api/users/getUserInfo?accessToken=", - logoutUrl: "https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=", + logoutUrl: "https://aai.openaire.eu/proxy/saml2/idp/SingleLogoutService.php?ReturnTo=",*/ cookieDomain: ".di.uoa.gr", feedbackmail: "openaire.test@gmail.com", cacheUrl: "http://scoobydoo.di.uoa.gr:3000/get?url=",