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 @@