90 lines
3.1 KiB
TypeScript
90 lines
3.1 KiB
TypeScript
|
import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
|
||
|
import {ActivatedRoute, Router} from '@angular/router';
|
||
|
import {HelpContentService} from '../../services/help-content.service';
|
||
|
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
|
||
|
import {Portal} from '../../utils/entities/adminTool/portal';
|
||
|
import {EnvProperties} from '../../utils/properties/env-properties';
|
||
|
import {Session} from '../../login/utils/helper.class';
|
||
|
import {UserManagementService} from '../../services/user-management.service';
|
||
|
import {Subscriber} from "rxjs";
|
||
|
import {properties} from "../../../../environments/environment";
|
||
|
import {StringUtils} from "../../utils/string-utils.class";
|
||
|
import {Title} from "@angular/platform-browser";
|
||
|
import {AlertModal} from '../../utils/modal/alert';
|
||
|
|
||
|
|
||
|
@Component({
|
||
|
selector: 'menuSelector',
|
||
|
templateUrl: './menu.component.html',
|
||
|
})
|
||
|
export class MenuComponent implements OnInit {
|
||
|
|
||
|
@ViewChild('editModal') editModal: AlertModal;
|
||
|
@ViewChild('deleteModal') deleteModal: AlertModal;
|
||
|
|
||
|
public keyword = '';
|
||
|
|
||
|
public communities: Portal[] = [];
|
||
|
public portal: string;
|
||
|
|
||
|
public properties: EnvProperties = properties;
|
||
|
|
||
|
public showLoading = true;
|
||
|
public isPortalAdministrator = null;
|
||
|
public filterForm: FormGroup;
|
||
|
private subscriptions: any[] = [];
|
||
|
|
||
|
constructor(private element: ElementRef, private route: ActivatedRoute,
|
||
|
private _router: Router, private title: Title,
|
||
|
private _helpContentService: HelpContentService,
|
||
|
private userManagementService: UserManagementService, private _fb: FormBuilder) {
|
||
|
}
|
||
|
|
||
|
ngOnInit() {
|
||
|
this.filterForm = this._fb.group({
|
||
|
keyword: [''],
|
||
|
status: ['resources', Validators.required]
|
||
|
});
|
||
|
this.userManagementService.getUserInfo().subscribe(user => {
|
||
|
this.portal = (this.route.snapshot.data.portal) ? this.route.snapshot.data.portal : this.route.snapshot.params[this.route.snapshot.data.param];
|
||
|
if (this.route.snapshot.data.portal) {
|
||
|
this.title.setTitle(StringUtils.capitalize(this.portal) + ' | Menu');
|
||
|
} else if (this.route.snapshot.params[this.route.snapshot.data.param]) {
|
||
|
this.title.setTitle(this.portal.toUpperCase() + ' | Menu');
|
||
|
} else {
|
||
|
this.title.setTitle('Administrator Dashboard | Menu');
|
||
|
}
|
||
|
this.isPortalAdministrator = Session.isPortalAdministrator(user) && !this.portal;
|
||
|
});
|
||
|
this.showLoading = false;
|
||
|
}
|
||
|
|
||
|
ngOnDestroy(): void {
|
||
|
this.subscriptions.forEach(value => {
|
||
|
if (value instanceof Subscriber) {
|
||
|
value.unsubscribe();
|
||
|
} else if (value instanceof Function) {
|
||
|
value();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
public editMenuItem() {
|
||
|
console.log('Edit menu item');
|
||
|
this.menuItemsModalOpen('Edit Menu Item', 'Save Changers');
|
||
|
}
|
||
|
|
||
|
public deleteMenuItem() {
|
||
|
console.log('Delete menu item');
|
||
|
}
|
||
|
|
||
|
private menuItemsModalOpen(title: string, yesBtn: string) {
|
||
|
this.editModal.cancelButton = true;
|
||
|
this.editModal.okButton = true;
|
||
|
this.editModal.okButtonLeft = false;
|
||
|
this.editModal.alertTitle = title;
|
||
|
this.editModal.okButtonText = yesBtn;
|
||
|
this.editModal.open();
|
||
|
}
|
||
|
}
|