From e530869480202760fe10b501013746f0195c56cf Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Thu, 2 Nov 2023 11:31:23 +0200 Subject: [PATCH] [develop | DONE]: Move manage stakeholders to library --- src/app/app-routing.module.ts | 2 +- .../manageStakeholders-routing.module.ts | 18 - .../manageStakeholders.component.html | 138 -------- .../manageStakeholders.component.less | 23 -- .../manageStakeholders.component.ts | 307 ------------------ .../manageStakeholders.module.ts | 50 --- src/app/openaireLibrary | 2 +- 7 files changed, 2 insertions(+), 538 deletions(-) delete mode 100644 src/app/manageStakeholders/manageStakeholders-routing.module.ts delete mode 100644 src/app/manageStakeholders/manageStakeholders.component.html delete mode 100644 src/app/manageStakeholders/manageStakeholders.component.less delete mode 100644 src/app/manageStakeholders/manageStakeholders.component.ts delete mode 100644 src/app/manageStakeholders/manageStakeholders.module.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index dcf6a82..7b7d50f 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -23,7 +23,7 @@ const routes: Routes = [ }, { path: 'admin', - loadChildren: () => import('./manageStakeholders/manageStakeholders.module').then(m => m.ManageStakeholdersModule), + loadChildren: () => import('./openaireLibrary/monitor-admin/manageStakeholders/manageStakeholders.module').then(m => m.ManageStakeholdersModule), canActivateChild: [LoginGuard], data: {hasAdminMenu: true, hasSidebar: false} }, diff --git a/src/app/manageStakeholders/manageStakeholders-routing.module.ts b/src/app/manageStakeholders/manageStakeholders-routing.module.ts deleted file mode 100644 index 09aaccc..0000000 --- a/src/app/manageStakeholders/manageStakeholders-routing.module.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {NgModule} from '@angular/core'; -import {RouterModule} from '@angular/router'; -import {PreviousRouteRecorder} from '../openaireLibrary/utils/piwik/previousRouteRecorder.guard'; -import {ManageStakeholdersComponent} from "./manageStakeholders.component"; - -@NgModule({ - imports: [ - RouterModule.forChild([ - { - path: '', - component: ManageStakeholdersComponent, - canDeactivate: [PreviousRouteRecorder] - } - ]) - ] -}) -export class ManageStakeholdersRoutingModule { -} diff --git a/src/app/manageStakeholders/manageStakeholders.component.html b/src/app/manageStakeholders/manageStakeholders.component.html deleted file mode 100644 index 696e680..0000000 --- a/src/app/manageStakeholders/manageStakeholders.component.html +++ /dev/null @@ -1,138 +0,0 @@ -
-
- -
- - - - - -
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-

Profile Templates

-
- - - -
- -
-
-
-
-

- No profiles to manage yet -

-
-
-

Profiles

-
- - - -
- -
-
-
-
-
-
-
- - -
- -
-
- - -
-
- {{text}} -
-
- - - -
-
-
-
- -
- -
-
- -
-
- -
- -
-
- This stakeholder will permanently be deleted. Are you sure you want to proceed? -
-
diff --git a/src/app/manageStakeholders/manageStakeholders.component.less b/src/app/manageStakeholders/manageStakeholders.component.less deleted file mode 100644 index ee70157..0000000 --- a/src/app/manageStakeholders/manageStakeholders.component.less +++ /dev/null @@ -1,23 +0,0 @@ -@import (reference) "~src/assets/openaire-theme/less/color.less"; - -.setType(@color) { - border-bottom: 4px solid fade(@color, 30%); - - & .type { - color: @color; - } -} - -.uk-card { - &.funder { - .setType(@funder-color); - } - - &.ri { - .setType(@ri-color); - } - - &.organization { - .setType(@organization-color); - } -} diff --git a/src/app/manageStakeholders/manageStakeholders.component.ts b/src/app/manageStakeholders/manageStakeholders.component.ts deleted file mode 100644 index 094e045..0000000 --- a/src/app/manageStakeholders/manageStakeholders.component.ts +++ /dev/null @@ -1,307 +0,0 @@ -import {Component, OnDestroy, OnInit, ViewChild} from "@angular/core"; -import {StakeholderService} from "../openaireLibrary/monitor/services/stakeholder.service"; -import {EnvProperties} from "../openaireLibrary/utils/properties/env-properties"; -import {Stakeholder, StakeholderEntities, Visibility} from "../openaireLibrary/monitor/entities/stakeholder"; -import {Subscriber, zip} from "rxjs"; -import {StakeholderUtils} from "../openaireLibrary/monitor-admin/utils/indicator-utils"; -import {UntypedFormBuilder, UntypedFormGroup} from "@angular/forms"; -import {AlertModal} from "../openaireLibrary/utils/modal/alert"; -import {Option} from "../openaireLibrary/sharedComponents/input/input.component"; -import {Title} from "@angular/platform-browser"; -import {UserManagementService} from "../openaireLibrary/services/user-management.service"; -import {Session} from "../openaireLibrary/login/utils/helper.class"; -import {EditStakeholderComponent} from "../openaireLibrary/monitor-admin/general/edit-stakeholder/edit-stakeholder.component"; -import {properties} from "../../environments/environment"; -import {ActivatedRoute} from "@angular/router"; -import {CacheIndicatorsService} from "../openaireLibrary/monitor-admin/utils/cache-indicators/cache-indicators.service"; -import {NotificationHandler} from "../openaireLibrary/utils/notification-handler"; - -type Tab = 'all' | 'templates'| 'profiles'; - -declare var UIkit; - -@Component({ - selector: 'home', - templateUrl: "./manageStakeholders.component.html", - styleUrls: ["./manageStakeholders.component.less"] -}) -export class ManageStakeholdersComponent implements OnInit, OnDestroy { - - public properties: EnvProperties; - public loading: boolean = true; - public deleteLoading: boolean = false; - public stakeholderUtils: StakeholderUtils = new StakeholderUtils(); - public defaultStakeholders: Stakeholder[]; - public stakeholders: Stakeholder[]; - public alias: string[]; - public stakeholder: Stakeholder; - public index: number; - public user = null; - public tab: Tab = 'all'; - public stakeholderEntities = StakeholderEntities; - /** - * Filtered Stakeholders - */ - public displayDefaultStakeholders: Stakeholder[]; - public displayStakeholders: Stakeholder[]; - /** - * Top filters - */ - public filters: UntypedFormGroup; - public all: Option = { - value: 'all', - label: 'All' - }; - - public callback: Function; - - /** - * Grid or List View - */ - private subscriptions: any[] = []; - @ViewChild('editStakeholderModal', { static: true }) editStakeholderModal: AlertModal; - @ViewChild('deleteStakeholderModal', { static: true }) deleteStakeholderModal: AlertModal; - @ViewChild('editStakeholderComponent', { static: true }) editStakeholderComponent: EditStakeholderComponent; - - constructor(private stakeholderService: StakeholderService, - private cacheIndicatorsService: CacheIndicatorsService, - private userManagementService: UserManagementService, - private route: ActivatedRoute, - private title: Title, - private fb: UntypedFormBuilder) { - } - - ngOnInit(): void { - this.buildFilters(); - this.properties = properties; - this.title.setTitle('Manage profiles'); - this.subscriptions.push(this.userManagementService.getUserInfo().subscribe(user => { - this.user = user; - })); - let data = zip( - this.stakeholderService.getDefaultStakeholders(this.properties.monitorServiceAPIURL), - this.stakeholderService.getMyStakeholders(this.properties.monitorServiceAPIURL), - this.stakeholderService.getAlias(this.properties.monitorServiceAPIURL) - ); - this.subscriptions.push(data.subscribe(res => { - this.defaultStakeholders = res[0]; - this.stakeholders = res[1]; - this.displayDefaultStakeholders = res[0]; - this.displayStakeholders = res[1]; - this.alias = res[2]; - this.loading = false; - }, error => { - this.loading = false; - })); - } - - ngOnDestroy(): void { - this.subscriptions.forEach(value => { - if (value instanceof Subscriber) { - value.unsubscribe(); - } else if (value instanceof Function) { - value(); - } - }); - } - - hide(element: any) { - UIkit.dropdown(element).hide(); - } - - - private buildFilters() { - this.filters = this.fb.group({ - status: this.fb.control('all'), - keyword: this.fb.control('') - }); - this.subscriptions.push(this.filters.get('status').valueChanges.subscribe(value => { - this.onStatusChange(value); - })); - this.subscriptions.push(this.filters.get('keyword').valueChanges.subscribe(value => { - this.onKeywordChange(value); - })); - } - - onStatusChange(value) { - this.displayDefaultStakeholders = this.filterStatus(this.defaultStakeholders, value); - this.displayStakeholders = this.filterStatus(this.stakeholders, value); - } - - onKeywordChange(value) { - this.displayDefaultStakeholders = this.filterByKeyword(this.defaultStakeholders, value); - this.displayStakeholders = this.filterByKeyword(this.stakeholders, value); - } - - private filterStatus(stakeholders: Stakeholder[], value): Stakeholder[] { - if (value === 'all') { - return stakeholders; - } else { - return stakeholders.filter(stakeholder => stakeholder.visibility == value); - } - } - - private filterByKeyword(stakeholders: Stakeholder[], value): Stakeholder[] { - if (!value) { - return stakeholders; - } else { - return stakeholders.filter(stakeholder => - stakeholder.name && stakeholder.name.toLowerCase().includes(value.toLowerCase()) || - stakeholder.type && stakeholder.type.toLowerCase().includes(value.toLowerCase()) || - stakeholder.index_id && stakeholder.index_id.toLowerCase().includes(value.toLowerCase()) || - stakeholder.index_shortName && stakeholder.index_shortName.toLowerCase().includes(value.toLowerCase()) || - stakeholder.index_name && stakeholder.index_name.toLowerCase().includes(value.toLowerCase()) - ); - } - } - - public editStakeholder(stakeholder: Stakeholder = null, isDefault: boolean = false) { - if (isDefault) { - this.index = (stakeholder) ? this.defaultStakeholders.findIndex(value => value._id === stakeholder._id) : -1; - } else { - this.index = (stakeholder) ? this.stakeholders.findIndex(value => value._id === stakeholder._id) : -1; - } - if (!stakeholder) { - this.stakeholder = new Stakeholder(null, null, null, - null, null, null, null, null); - } else { - this.stakeholder = stakeholder; - } - this.editStakeholderComponent.init(this.stakeholder, this.alias, this.defaultStakeholders, isDefault, this.index === -1); - if (this.index !== -1) { - this.callback = (stakeholder: Stakeholder) => { - let index: number; - if (stakeholder.defaultId == null) { - index = this.alias.findIndex(value => value == this.defaultStakeholders[this.index].alias); - this.defaultStakeholders[this.index] = stakeholder; - } else { - index = this.alias.findIndex(value => value == this.stakeholders[this.index].alias); - this.stakeholders[this.index] = stakeholder; - } - if(index != -1) { - this.alias[index] = stakeholder.alias; - } - this.editStakeholderModal.cancel(); - }; - this.editStakeholderModal.alertTitle = 'Edit ' + this.stakeholder.name; - this.editStakeholderModal.okButtonText = 'Save Changes'; - } else { - this.callback = (stakeholder: Stakeholder) => { - if (stakeholder.defaultId === null) { - this.defaultStakeholders.push(stakeholder); - } else { - this.stakeholders.push(stakeholder); - } - this.alias.push(stakeholder.alias); - this.editStakeholderModal.cancel(); - }; - this.editStakeholderModal.alertTitle = 'Create a new ' + (isDefault?'Default ':'') + 'Profile'; - this.editStakeholderModal.okButtonText = 'Create'; - } - this.editStakeholderModal.cancelButtonText = 'Cancel'; - this.editStakeholderModal.okButtonLeft = false; - this.editStakeholderModal.alertMessage = false; - this.editStakeholderModal.stayOpen = true; - this.editStakeholderModal.open(); - } - - public createReport(stakeholder: Stakeholder) { - this.cacheIndicatorsService.createReport(stakeholder.alias).subscribe(report => { - NotificationHandler.rise('A caching process for ' + stakeholder.name + ' has been started.' ) - }, error => { - console.log(error); - NotificationHandler.rise(error.message(), 'danger'); - }); - } - - public deleteStakeholderOpen(stakeholder: Stakeholder) { - this.stakeholder = stakeholder; - this.deleteStakeholderModal.alertTitle = 'Delete ' + this.stakeholder.index_name; - this.deleteStakeholderModal.cancelButtonText = 'No'; - this.deleteStakeholderModal.okButtonText = 'Yes'; - this.deleteStakeholderModal.alertMessage = false; - this.deleteStakeholderModal.stayOpen = true; - this.deleteStakeholderModal.open(); - } - - public deleteStakeholder() { - this.deleteLoading = true; - if (!this.stakeholder.defaultId) { - this.index = (this.stakeholder) ? this.defaultStakeholders.findIndex(value => value._id === this.stakeholder._id) : -1; - } else { - this.index = (this.stakeholder) ? this.stakeholders.findIndex(value => value._id === this.stakeholder._id) : -1; - } - this.subscriptions.push(this.stakeholderService.deleteElement(this.properties.monitorServiceAPIURL, [this.stakeholder._id]).subscribe(() => { - UIkit.notification(this.stakeholder.name+ ' has been successfully deleted', { - status: 'success', - timeout: 6000, - pos: 'bottom-right' - }); - if (!this.stakeholder.defaultId) { - this.defaultStakeholders.splice(this.index, 1); - } else { - this.stakeholders.splice(this.index, 1); - } - this.alias = this.alias.filter(item => item !== this.stakeholder.alias); - this.deleteLoading = false; - this.deleteStakeholderModal.cancel(); - }, error => { - UIkit.notification('An error has occurred. Please try again later', { - status: 'danger', - timeout: 6000, - pos: 'bottom-right' - }); - this.deleteLoading = false; - this.deleteStakeholderModal.cancel(); - })); - } - - changeStakeholderStatus(stakeholder: Stakeholder, visibility: Visibility) { - let path = [ - stakeholder._id - ]; - this.subscriptions.push(this.stakeholderService.changeVisibility(this.properties.monitorServiceAPIURL, path, visibility).subscribe(returnedElement => { - stakeholder.visibility = returnedElement.visibility; - UIkit.notification(stakeholder.name+ '\'s status has been successfully changed to ' + stakeholder.visibility.toLowerCase(), { - status: 'success', - timeout: 6000, - pos: 'bottom-right' - }); - }, error => { - UIkit.notification('An error has occurred. Please try again later', { - status: 'danger', - timeout: 6000, - pos: 'bottom-right' - }); - })); - } - - 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.isMonitorCurator(this.user); - } - - public isAdmin(): boolean { - return Session.isPortalAdministrator(this.user); - } - - private isTab(tab: Tab): boolean { - switch (tab) { - case "all": - return true; - case "profiles": - return true; - case "templates": - return true; - default: - return false; - } - } -} diff --git a/src/app/manageStakeholders/manageStakeholders.module.ts b/src/app/manageStakeholders/manageStakeholders.module.ts deleted file mode 100644 index 230c644..0000000 --- a/src/app/manageStakeholders/manageStakeholders.module.ts +++ /dev/null @@ -1,50 +0,0 @@ -import {NgModule} from "@angular/core"; -import {ManageStakeholdersComponent} from "./manageStakeholders.component"; -import {ManageStakeholdersRoutingModule} from "./manageStakeholders-routing.module"; -import {PreviousRouteRecorder} from "../openaireLibrary/utils/piwik/previousRouteRecorder.guard"; -import {CommonModule} from "@angular/common"; -import {RouterModule} from "@angular/router"; -import {InputModule} from "../openaireLibrary/sharedComponents/input/input.module"; -import {LoadingModule} from "../openaireLibrary/utils/loading/loading.module"; -import {AlertModalModule} from "../openaireLibrary/utils/modal/alertModal.module"; -import {ReactiveFormsModule} from "@angular/forms"; -import {IconsModule} from "../openaireLibrary/utils/icons/icons.module"; -import {IconsService} from "../openaireLibrary/utils/icons/icons.service"; -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"; -import { - SidebarMobileToggleModule -} from "../openaireLibrary/dashboard/sharedComponents/sidebar/sidebar-mobile-toggle/sidebar-mobile-toggle.module"; -import {SliderTabsModule} from "../openaireLibrary/sharedComponents/tabs/slider-tabs.module"; -import {EditStakeholderModule} from "../openaireLibrary/monitor-admin/general/edit-stakeholder/edit-stakeholder.module"; - -@NgModule({ - declarations: [ManageStakeholdersComponent], - imports: [ - ManageStakeholdersRoutingModule, - CommonModule, - RouterModule, - InputModule, - LoadingModule, - AlertModalModule, - ReactiveFormsModule, - EditStakeholderModule, - IconsModule, - PageContentModule, - LogoUrlPipeModule, - SearchInputModule, - SidebarMobileToggleModule, - SliderTabsModule - ], - providers: [ - PreviousRouteRecorder, - ], - exports: [ManageStakeholdersComponent] -}) -export class ManageStakeholdersModule { - constructor(private iconsService: IconsService) { - this.iconsService.registerIcons([earth, incognito, restricted]); - } -} diff --git a/src/app/openaireLibrary b/src/app/openaireLibrary index 5af67f7..87e3c90 160000 --- a/src/app/openaireLibrary +++ b/src/app/openaireLibrary @@ -1 +1 @@ -Subproject commit 5af67f738570647ee61fb4d9ccb211bfae2890ae +Subproject commit 87e3c903a8da0449a19aae5a762e9ad4e9cbeab9