mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-17 06:53:03 +00:00
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { Component, Inject, Injector, OnInit } from '@angular/core';
|
|
import { MenuSectionComponent } from '../../../shared/menu/menu-section/menu-section.component';
|
|
import { MenuService } from '../../../shared/menu/menu.service';
|
|
import { rendersSectionForMenu } from '../../../shared/menu/menu-section.decorator';
|
|
import { LinkMenuItemModel } from '../../../shared/menu/menu-item/models/link.model';
|
|
import { MenuSection } from '../../../shared/menu/menu-section.model';
|
|
import { MenuID } from '../../../shared/menu/menu-id.model';
|
|
import { isEmpty } from '../../../shared/empty.util';
|
|
import { Router } from '@angular/router';
|
|
|
|
/**
|
|
* Represents a non-expandable section in the admin sidebar
|
|
*/
|
|
@Component({
|
|
/* eslint-disable @angular-eslint/component-selector */
|
|
selector: 'li[ds-admin-sidebar-section]',
|
|
templateUrl: './admin-sidebar-section.component.html',
|
|
styleUrls: ['./admin-sidebar-section.component.scss'],
|
|
|
|
})
|
|
@rendersSectionForMenu(MenuID.ADMIN, false)
|
|
export class AdminSidebarSectionComponent extends MenuSectionComponent implements OnInit {
|
|
|
|
/**
|
|
* This section resides in the Admin Sidebar
|
|
*/
|
|
menuID: MenuID = MenuID.ADMIN;
|
|
itemModel;
|
|
|
|
/**
|
|
* Boolean to indicate whether this section is disabled
|
|
*/
|
|
isDisabled: boolean;
|
|
|
|
constructor(
|
|
@Inject('sectionDataProvider') menuSection: MenuSection,
|
|
protected menuService: MenuService,
|
|
protected injector: Injector,
|
|
protected router: Router,
|
|
) {
|
|
super(menuSection, menuService, injector);
|
|
this.itemModel = menuSection.model as LinkMenuItemModel;
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.isDisabled = this.itemModel?.disabled || isEmpty(this.itemModel?.link);
|
|
super.ngOnInit();
|
|
}
|
|
|
|
navigate(event: any): void {
|
|
event.preventDefault();
|
|
if (!this.isDisabled) {
|
|
this.router.navigate(this.itemModel.link);
|
|
}
|
|
}
|
|
}
|