mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-01-10 04:25:08 +00:00
(Navigation) Improved navigation service
This commit is contained in:
parent
1e6bd8139c
commit
850e43c653
|
@ -237,7 +237,49 @@ export class FuseNavigationService
|
|||
|
||||
if ( item.children )
|
||||
{
|
||||
this.getNavigationItem(id, item.children);
|
||||
const childItem = this.getNavigationItem(id, item.children);
|
||||
|
||||
if ( childItem )
|
||||
{
|
||||
return childItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the parent of the navigation item
|
||||
* with the id
|
||||
*
|
||||
* @param id
|
||||
* @param {any} navigation
|
||||
* @param parent
|
||||
*/
|
||||
getNavigationItemParent(id, navigation = null, parent = null): any
|
||||
{
|
||||
if ( !navigation )
|
||||
{
|
||||
navigation = this.getCurrentNavigation();
|
||||
parent = navigation;
|
||||
}
|
||||
|
||||
for ( const item of navigation )
|
||||
{
|
||||
if ( item.id === id )
|
||||
{
|
||||
return parent;
|
||||
}
|
||||
|
||||
if ( item.children )
|
||||
{
|
||||
const childItem = this.getNavigationItemParent(id, item.children, item);
|
||||
|
||||
if ( childItem )
|
||||
{
|
||||
return childItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -285,4 +327,31 @@ export class FuseNavigationService
|
|||
parent.children.push(item);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove navigation item with the given id
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
removeNavigationItem(id): void
|
||||
{
|
||||
const item = this.getNavigationItem(id);
|
||||
|
||||
// Return, if there is not such an item
|
||||
if ( !item )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the parent of the item
|
||||
let parent = this.getNavigationItemParent(id);
|
||||
|
||||
// This check is required because of the first level
|
||||
// of the navigation, since the first level is not
|
||||
// inside the 'children' array
|
||||
parent = parent.children || parent;
|
||||
|
||||
// Remove the item
|
||||
parent.splice(parent.indexOf(item), 1);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user