mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-01-10 12:35:07 +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 )
|
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);
|
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