openaire-library/sharedComponents/menu.ts

26 lines
1.1 KiB
TypeScript
Raw Normal View History

export class MenuItem {
id:string = ""; // for root menu in order to close the dropdown when clicked
title: string = "";
url:string = ""; // external url
route:string = ""; // internal url - using angular routing and components
needsAuthorization:boolean = false; // needs admin rights - mainly for user menu at this point
entitiesRequired:string[] = []; // openaire entities used in page "publication, dataset, organization, software, project, datasource"
routeRequired:string[] = []; // the routes that if aren't enable the menu item doesn't make sense
params:any = {};
constructor(id:string, title:string, url:string, route:string, needsAuthorization:boolean, entitiesRequired:string[],routeRequired:string[], params){
this.id = id;
this.title = title;
this.url = url;
this.route = route;
this.needsAuthorization = needsAuthorization;
this.entitiesRequired = entitiesRequired;
this.routeRequired = routeRequired;
this.params = params;
}
}
export class RootMenuItem {
rootItem:MenuItem;
items:MenuItem[]=[];
}