diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index 11ba43f755..502363a323 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -31,6 +31,7 @@ export namespace ABP { parentName?: string; path: string; requiredPolicy?: string; + iconClass?: string; } export interface FullRoute extends Route { diff --git a/npm/ng-packs/packages/core/src/lib/plugins/config.plugin.ts b/npm/ng-packs/packages/core/src/lib/plugins/config.plugin.ts index 14e05c05b8..5d4d1ab454 100644 --- a/npm/ng-packs/packages/core/src/lib/plugins/config.plugin.ts +++ b/npm/ng-packs/packages/core/src/lib/plugins/config.plugin.ts @@ -47,7 +47,9 @@ function transformRoutes(routes: Routes = [], wrappers: ABP.FullRoute[] = []): a routes .filter(route => (route.data || {}).routes && (route.component || route.loadChildren)) .forEach(route => { - const abpPackage = abpRoutes.find(abp => abp.path.toLowerCase() === route.path.toLowerCase()); + const abpPackage = abpRoutes.find( + abp => abp.path.toLowerCase() === route.path.toLowerCase() && snq(() => route.data.routes.length, false), + ); const { length } = transformed; if (abpPackage) { diff --git a/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts index 8b59d933cb..2199fa1df6 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts @@ -7,7 +7,7 @@ export function organizeRoutes( parentName: string = null, ): ABP.FullRoute[] { const filter = route => { - if (route.children) { + if (route.children && route.children.length) { route.children = organizeRoutes(route.children, wrappers, parentNameArr, route.name); } @@ -34,20 +34,18 @@ export function organizeRoutes( } export function setChildRoute(routes: ABP.FullRoute[], parentNameArr: ABP.FullRoute[]): ABP.FullRoute[] { - return routes - .map(route => { - if (route.children && route.children.length) { - route.children = setChildRoute(route.children, parentNameArr); - } + return routes.map(route => { + if (route.children && route.children.length) { + route.children = setChildRoute(route.children, parentNameArr); + } - const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name); - if (foundedChildren && foundedChildren.length) { - route.children = [...(route.children || []), ...foundedChildren]; - } + const foundedChildren = parentNameArr.filter(parent => parent.parentName === route.name); + if (foundedChildren && foundedChildren.length) { + route.children = [...(route.children || []), ...foundedChildren]; + } - return route; - }) - .filter(route => route.path || (route.children && route.children.length)); + return route; + }); } export function sortRoutes(routes: ABP.FullRoute[] = []): ABP.FullRoute[] { diff --git a/npm/ng-packs/packages/identity/src/lib/constants/routes.ts b/npm/ng-packs/packages/identity/src/lib/constants/routes.ts index 24df21cda6..57271e51e1 100644 --- a/npm/ng-packs/packages/identity/src/lib/constants/routes.ts +++ b/npm/ng-packs/packages/identity/src/lib/constants/routes.ts @@ -8,11 +8,12 @@ export const IDENTITY_ROUTES = [ wrapper: true, }, { - name: 'Identity', + name: 'Identity Management', path: 'identity', order: 1, parentName: 'Administration', layout: eLayoutType.application, + iconClass: 'fa fa-id-card-o', children: [ { path: 'roles', name: 'Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, { path: 'users', name: 'Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, diff --git a/npm/ng-packs/packages/tenant-management/src/lib/constants/routes.ts b/npm/ng-packs/packages/tenant-management/src/lib/constants/routes.ts index 3a2fc03593..d953984c71 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/constants/routes.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/constants/routes.ts @@ -6,6 +6,7 @@ export const TENANT_MANAGEMENT_ROUTES = [ path: 'tenant-management', parentName: 'Administration', layout: eLayoutType.application, + iconClass: 'fa fa-users', children: [ { path: 'tenants', diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html b/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html index 76df81b208..51c30772b6 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html +++ b/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html @@ -46,7 +46,10 @@ @@ -61,11 +64,12 @@ >
+ {{ child.name | abpLocalization }}
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/contants/styles.ts b/npm/ng-packs/packages/theme-shared/src/lib/contants/styles.ts index 12aeadabf5..2ccca53006 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/contants/styles.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/contants/styles.ts @@ -24,6 +24,10 @@ export default ` top: 18px; } +.navbar .dropdown-menu { + min-width: 220px; +} + .modal { background-color: rgba(0, 0, 0, .6); }