diff --git a/dashboard/plugins/plugins.component.html b/dashboard/plugins/plugins.component.html index ee0a4b50..e466a3cb 100644 --- a/dashboard/plugins/plugins.component.html +++ b/dashboard/plugins/plugins.component.html @@ -68,6 +68,7 @@ class="uk-card uk-card-default uk-padding-large uk-text-center uk-margin-bottom uk-text-bold">
No plugins found
+ diff --git a/dashboard/plugins/plugins.component.ts b/dashboard/plugins/plugins.component.ts index 592e8f1c..7369c6cf 100644 --- a/dashboard/plugins/plugins.component.ts +++ b/dashboard/plugins/plugins.component.ts @@ -1,7 +1,7 @@ import {Component, ElementRef, OnInit, ViewChild} from '@angular/core'; import {ActivatedRoute, Router} from "@angular/router"; import {HelpContentService} from "../../services/help-content.service"; -import {FormArray, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, ValidatorFn} from "@angular/forms"; +import {UntypedFormBuilder, ValidatorFn} from "@angular/forms"; import {Page} from "../../utils/entities/adminTool/page"; import {EnvProperties} from '../../utils/properties/env-properties'; import {HelperFunctions} from "../../utils/HelperFunctions.class"; @@ -21,6 +21,8 @@ import {PluginUtils} from "./utils/pluginUtils"; import {CommunityService} from "../../connect/community/community.service"; import {CommunityInfo} from "../../connect/community/communityInfo"; import {AlertModal} from "../../utils/modal/alert"; +import {Session} from "../../login/utils/helper.class"; +import {UserManagementService} from "../../services/user-management.service"; @Component({ selector: 'plugins', @@ -62,12 +64,13 @@ export class PluginsComponent implements OnInit { // editSubmenuOpen = false; filterActive = false; @ViewChild('deleteModal') deleteModal: AlertModal; - + clearCacheRequests = []; + user; constructor(private element: ElementRef, private route: ActivatedRoute, private _router: Router, private communityService: CommunityService, private title: Title, private _helpContentService: HelpContentService, private _pluginsService: PluginsService, private _fb: UntypedFormBuilder, - private _clearCacheService: ClearCacheService) { + private _clearCacheService: ClearCacheService, private _userManagementService:UserManagementService) { } ngOnInit() { @@ -76,11 +79,24 @@ export class PluginsComponent implements OnInit { community => { this.communityInfo = community; })); + this.subscriptions.push(this._userManagementService.getUserInfo().subscribe( user =>{ + this.user = user; + })) this.subscriptions.push(this.route.params.subscribe(params => { this.portal = (this.route.snapshot.data.portal) ? this.route.snapshot.data.portal : this.route.snapshot.params[this.route.snapshot.data.param]; this.selectedCommunityPid = params.community; + //initiate requests for clear cache prompt + this.clearCacheRequests = []; + if (properties.deleteBrowserCacheUrl) { + this.clearCacheRequests.push(properties.deleteBrowserCacheUrl + "/" + this.selectedCommunityPid) + } + if (this.properties.deleteCacheUrl) { + this.clearCacheRequests.push(properties.deleteCacheUrl + "?url=" + encodeURIComponent(properties.utilsService + + "/portals/countResults?field=communityId&value=" + encodeURIComponent(this.selectedCommunityPid))); + } + console.log(this.clearCacheRequests) this.subscriptions.push(this.route.queryParams.subscribe(params => { HelperFunctions.scroll(); this.selectedPageId = params['pageId']; @@ -370,4 +386,8 @@ export class PluginsComponent implements OnInit { )); this.showLoading = false; } + + showClearCache(){ + return this.user && (Session.isPortalAdministrator(this.user) || Session.isCommunityCurator(this.user)); + } } diff --git a/dashboard/plugins/plugins.module.ts b/dashboard/plugins/plugins.module.ts index 063aaa85..9d555fd2 100644 --- a/dashboard/plugins/plugins.module.ts +++ b/dashboard/plugins/plugins.module.ts @@ -27,6 +27,7 @@ import {PluginWrapperModule} from "./wrapper/plugin-wrapper.module"; import {SideBarModule} from "../sharedComponents/sidebar/sideBar.module"; import {PluginEditWrapperModule} from "./wrapper/plugin-edit-wrapper.module"; import {TransitionGroupModule} from "../../utils/transition-group/transition-group.module"; +import {ClearCacheComponent} from "../sharedComponents/clearCache.component"; @NgModule({ @@ -34,7 +35,7 @@ import {TransitionGroupModule} from "../../utils/transition-group/transition-gro CommonModule, RouterModule, FormsModule, AlertModalModule, ReactiveFormsModule, AdminToolServiceModule, InputModule, MatAutocompleteModule, MatFormFieldModule, MatChipsModule, MatCheckboxModule, AdminTabsModule, PageContentModule, PluginsRoutingModule, SearchInputModule, IconsModule, LoadingModule, CKEditorModule, - MatSlideToggleModule, PluginWrapperModule, SideBarModule, PluginEditWrapperModule, TransitionGroupModule + MatSlideToggleModule, PluginWrapperModule, SideBarModule, PluginEditWrapperModule, TransitionGroupModule, ClearCacheComponent ], providers:[PluginsService], declarations: [PluginsComponent], diff --git a/dashboard/sharedComponents/clearCache.component.ts b/dashboard/sharedComponents/clearCache.component.ts new file mode 100644 index 00000000..dd442bc1 --- /dev/null +++ b/dashboard/sharedComponents/clearCache.component.ts @@ -0,0 +1,47 @@ +import {Component, Input, ViewChild} from "@angular/core"; +import {HttpClient} from "@angular/common/http"; +import {AlertModal} from "../../utils/modal/alert"; +import {AlertModalModule} from "../../utils/modal/alertModal.module"; +import {CommonModule} from "@angular/common"; + +@Component({ + standalone: true, + selector: 'clear-cache', + imports: [AlertModalModule, CommonModule], + template: ` + +
+ Made changes but can't see them? + Try to clear the cache to resolve the issue. +
+ + + +
+ `, +}) +export class ClearCacheComponent { + @Input() requests:string[] ; + @ViewChild('deleteCacheModal') deleteCacheModal: AlertModal; + + constructor(private http: HttpClient ) { + } + promtToClear(){ + this.deleteCacheModal.alertTitle = 'Confirm Cache Clear'; + this.deleteCacheModal.message = 'Are you sure you want to clear the service cache?'; + this.deleteCacheModal.okButtonText = 'Yes'; + this.deleteCacheModal.open(); + + } + + clear(){ + for( let request of this.requests){ + this.http.get(request).subscribe( res => { + console.log( res); + }); + } + } + + +}