Add super admin and monitor options in sidebar. Change tabs in methodology

This commit is contained in:
Konstantinos Triantafyllou 2022-04-07 20:31:55 +03:00
parent 38373ef725
commit daf12522c2
9 changed files with 220 additions and 212 deletions

View File

@ -24,7 +24,8 @@ const routes: Routes = [
{
path: 'admin',
loadChildren: () => import('./manageStakeholders/manageStakeholders.module').then(m => m.ManageStakeholdersModule),
canActivateChild: [LoginGuard]
canActivateChild: [LoginGuard],
data: {hasAdminMenu: true}
},
{
path: 'admin/admin-tools',

View File

@ -2,13 +2,13 @@
<loading [full]="true"></loading>
</div>
<div *ngIf="!loading">
<div class="sidebar_main_swipe" [class.sidebar_main_active]="open && hasSidebar"
[class.sidebar_mini]="!open && hasSidebar" [class.stakeholderPage]="isFrontPage">
<div class="sidebar_main_swipe" [class.sidebar_main_active]="open && hasSidebar && (!hasAdminMenu || hasAdminMenu && adminMenuItems?.length > 0)"
[class.sidebar_mini]="!open && hasSidebar && (!hasAdminMenu || hasAdminMenu && adminMenuItems?.length > 0)" [class.stakeholderPage]="isFrontPage">
<navbar *ngIf="hasHeader" portal="monitor_dashboard" [header]="menuHeader"
[userMenuItems]=userMenuItems [menuItems]="menuItems" [user]="user" [offCanvasFlip]="true"></navbar>
<div>
<dashboard-sidebar *ngIf="stakeholder && isFrontPage && hasSidebar" [items]="sideBarItems" [activeItem]="activeTopic?activeTopic.alias:null"></dashboard-sidebar>
<dashboard-sidebar *ngIf="hasAdminMenu" [items]="adminMenuItems" [specialMenuItem]="specialSideBarMenuItem"></dashboard-sidebar>
<dashboard-sidebar *ngIf="hasAdminMenu && adminMenuItems?.length > 0" [items]="adminMenuItems" [specialMenuItem]="specialSideBarMenuItem"></dashboard-sidebar>
<main>
<router-outlet></router-outlet>
</main>

View File

@ -333,16 +333,15 @@ export class AppComponent implements OnInit, OnDestroy {
// "", '/' + this.stakeholder.alias + '/', false, [], null, {}), items: []
// });
this.adminMenuItems.push(new MenuItem("general", "General", "", "/admin/" + this.stakeholder.alias, false, [], [], {}, {name: 'badge'}));
this.adminMenuItems.push(new MenuItem("indicators", "Indicators", "", "/admin/" + this.stakeholder.alias + '/indicators', false, [], [], {}, {name: 'analytics'}));
this.adminMenuItems.push(new MenuItem("indicators", "Indicators", "", "/admin/" + this.stakeholder.alias + '/indicators', false, [], [], {}, {name: 'bar_chart'}));
if (this.stakeholder.defaultId) {
this.adminMenuItems.push(new MenuItem("users", "Users", "", "/admin/" + this.stakeholder.alias + "/users", false, [], [], {}, {name: 'group'}, null, null, "/admin/" + this.stakeholder.alias+"/users"));
this.adminMenuItems.push(new MenuItem("users", "Users", "", "/admin/" + this.stakeholder.alias + "/users", false, [], [], {}, {name: 'group'}, null, null, "/admin/" + this.stakeholder.alias + "/users"));
if (Session.isPortalAdministrator(this.user)) {
this.adminMenuItems.push(new MenuItem("admin-tools", "Pages & Entities", "", "/admin/" + this.stakeholder.alias + "/admin-tools/pages", false, [], [], {}, null, null, null, "/admin/" + this.stakeholder.alias + "/admin-tools"));
this.adminMenuItems.push(new MenuItem("admin-tools", "Pages & Entities", "", "/admin/" + this.stakeholder.alias + "/admin-tools/pages", false, [], [], {}, {name: 'description'}, null, null, "/admin/" + this.stakeholder.alias + "/admin-tools"));
}
}
this.specialSideBarMenuItem = new MenuItem("back", "Manage profiles", "", "/admin", false, [], null, {});
this.specialSideBarMenuItem.icon = {name: 'search', class: 'uk-text-secondary'};
this.specialSideBarMenuItem.customClass = 'uk-text-uppercase uk-text-bold uk-text-secondary';
}
} else {
if (this.isFrontPage || !this.hasAdminMenu) {
@ -386,6 +385,11 @@ export class AppComponent implements OnInit, OnDestroy {
};
this.adminMenuItems = [];
this.specialSideBarMenuItem = null;
if (Session.isPortalAdministrator(this.user)) {
this.adminMenuItems.push(new MenuItem("stakeholders", "Manage profiles", "", "/admin", false, [], [], {}, {name: 'settings'}));
this.adminMenuItems.push(new MenuItem("super_admin", "Super Admin Options", "", "/admin/admin-tools/portals", false, [], [], {}, {name: 'settings'}));
this.adminMenuItems.push(new MenuItem("stakeholders", "Monitor Options", "", "/admin/monitor/admin-tools/pages", false, [], [], {}, {name: 'settings'}));
}
}
}

View File

@ -7,12 +7,9 @@ import {IconsModule} from "../../openaireLibrary/utils/icons/icons.module";
import {IconsService} from "../../openaireLibrary/utils/icons/icons.service";
import {cloud_upload, edit, remove} from "../../openaireLibrary/utils/icons/icons";
import {NotifyFormModule} from "../../openaireLibrary/notifications/notify-form/notify-form.module";
import {
AdvancedSearchInputModule
} from "../../openaireLibrary/sharedComponents/advanced-search-input/advanced-search-input.module";
@NgModule({
imports: [CommonModule, InputModule, ReactiveFormsModule, IconsModule, NotifyFormModule, AdvancedSearchInputModule],
imports: [CommonModule, InputModule, ReactiveFormsModule, IconsModule, NotifyFormModule],
declarations: [EditStakeholderComponent],
exports: [EditStakeholderComponent]
})

View File

@ -54,8 +54,8 @@
<ng-template #stakeholderBox let-stakeholder="stakeholder">
<div *ngIf="stakeholder">
<div class="uk-card uk-card-default uk-card-body uk-position-relative uk-visible-toggle">
<div class="uk-position-top-right uk-margin-small-right uk-margin-small-top uk-invisible-hover">
<div class="uk-card uk-card-default uk-card-body uk-position-relative">
<div class="uk-position-top-right uk-margin-small-right uk-margin-small-top">
<a class="uk-link-reset uk-flex uk-flex-middle">
<icon [flex]="true" [name]="stakeholderUtils.visibilityIcon.get(stakeholder.visibility)" ratio="0.6"></icon>
<icon [flex]="true" name="more_vert"></icon>
@ -85,13 +85,13 @@
</div>
</div>
<a class="uk-display-block uk-text-center" [routerLink]="'/admin/' + stakeholder.alias">
<div class="titleContainer uk-h6 uk-margin-remove multi-line-ellipsis lines-2">
<div class="titleContainer uk-h6 uk-margin-remove-bottom uk-margin-top multi-line-ellipsis lines-2">
<p *ngIf="stakeholder.name" class="uk-margin-remove">
{{stakeholder.name}}
</p>
</div>
<div class="logoContainer uk-margin-medium-top uk-flex uk-flex-column uk-flex-center uk-flex-middle">
<img *ngIf="stakeholder.logoUrl" [src]="stakeholder | logoUrl" class="uk-blend-multiply" style="max-height: 100px;">
<div class="logoContainer uk-margin-top uk-flex uk-flex-column uk-flex-center uk-flex-middle">
<img *ngIf="stakeholder.logoUrl" [src]="stakeholder | logoUrl" class="uk-blend-multiply" style="max-height: 80px;">
</div>
</a>
</div>

View File

@ -185,6 +185,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
this.alias[index] = stakeholder.alias;
}
};
this.editStakeholderModal.alertTitle = 'Edit ' + this.stakeholder.name;
this.editStakeholderModal.okButtonText = 'Save Changes';
} else {
this.callback = (stakeholder: Stakeholder) => {
@ -195,6 +196,7 @@ export class ManageStakeholdersComponent implements OnInit, OnDestroy {
}
this.alias.push(stakeholder.alias);
};
this.editStakeholderModal.alertTitle = 'Create a new ' + (isDefault?'Default ':'') + 'Profile';
this.editStakeholderModal.okButtonText = 'Create';
}
this.editStakeholderModal.cancelButtonText = 'Cancel';

View File

@ -11,7 +11,7 @@ import {ReactiveFormsModule} from "@angular/forms";
import {EditStakeholderModule} from "../general/edit-stakeholder/edit-stakeholder.module";
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
import {incognito, restricted} from "../openaireLibrary/utils/icons/icons";
import {earth, incognito, restricted} from "../openaireLibrary/utils/icons/icons";
import {PageContentModule} from "../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
import {LogoUrlPipeModule} from "../openaireLibrary/utils/pipes/logoUrlPipe.module";
import {SearchInputModule} from "../openaireLibrary/sharedComponents/search-input/search-input.module";
@ -39,6 +39,6 @@ import {SearchInputModule} from "../openaireLibrary/sharedComponents/search-inpu
})
export class ManageStakeholdersModule {
constructor(private iconsService: IconsService) {
this.iconsService.registerIcons([incognito, restricted]);
this.iconsService.registerIcons([earth, incognito, restricted]);
}
}

View File

@ -15,9 +15,16 @@ import {ActivatedRoute, Router} from "@angular/router";
<h1>Terminology and <br> construction<span class="uk-text-primary">.</span></h1>
</div>
<div class="uk-section uk-container uk-container-large">
<my-tabs>
<my-tab [tabTitle]="'Entities'" [tabId]="'entities'" class="uk-active">
<ng-container>
<ul class="uk-tab" uk-tab>
<li>
<a>Entities</a>
</li>
<li>
<a>Attributes of Entities</a>
</li>
</ul>
<ul class="uk-switcher">
<li>
<dl class="uk-description-list uk-description-list-divider">
<div class="uk-grid uk-padding-small" uk-grid>
<dt class="uk-width-1-5@m uk-width-1-1 uk-text-primary">Research Outcomes</dt>
@ -65,10 +72,8 @@ import {ActivatedRoute, Router} from "@angular/router";
</dd>
</div>
</dl>
</ng-container>
</my-tab>
<my-tab [tabTitle]="'Attributes of Entities'" [tabId]="'attributes'">
<ng-container>
</li>
<li>
<dl class="uk-description-list uk-description-list-divider">
<div class="uk-grid uk-padding-small" uk-grid>
<dt class="uk-width-1-5@m uk-width-1-1">Organization & Country</dt>
@ -202,9 +207,8 @@ import {ActivatedRoute, Router} from "@angular/router";
</dd>
</div>
</dl>
</ng-container>
</my-tab>
</my-tabs>
</li>
</ul>
<div class="uk-margin-medium-top graph">
<icon name="graph" customClass="uk-text-primary"></icon>
<span class="uk-margin-small-left uk-text-baseline uk-text-muted">More information for <a

View File

@ -14,7 +14,7 @@
</li>
</ul>
</div>
<div class="menu_section uk-margin-medium-top">
<div class="menu_section uk-margin-large-top">
<div *ngIf="stakeholder.topics[topicIndex]" class="active" [style]="'--index: ' + topicIndex + '; --size: ' + (stakeholder.topics[topicIndex].icon?'40px':0)"></div>
<ul class="uk-list">
<ng-template ngFor [ngForOf]="stakeholder.topics" let-topic let-i="index">