Browse Source

Added field id in model MenuSection and BreadCrumb

pull/3463/head
Vladyslav_Prykhodko 6 years ago
parent
commit
dc77426dab
  1. 8
      ui-ngx/src/app/core/services/menu.models.ts
  2. 22
      ui-ngx/src/app/core/services/menu.service.ts
  3. 2
      ui-ngx/src/app/modules/home/menu/menu-toggle.component.ts
  4. 2
      ui-ngx/src/app/modules/home/menu/side-menu.component.ts
  5. 4
      ui-ngx/src/app/shared/components/breadcrumb.component.ts
  6. 3
      ui-ngx/src/app/shared/components/breadcrumb.ts

8
ui-ngx/src/app/core/services/menu.models.ts

@ -14,9 +14,11 @@
/// limitations under the License. /// limitations under the License.
/// ///
import { HasUUID } from '@shared/models/id/has-uuid';
export declare type MenuSectionType = 'link' | 'toggle'; export declare type MenuSectionType = 'link' | 'toggle';
export class MenuSection { export interface MenuSection extends HasUUID{
name: string; name: string;
type: MenuSectionType; type: MenuSectionType;
path: string; path: string;
@ -26,12 +28,12 @@ export class MenuSection {
pages?: Array<MenuSection>; pages?: Array<MenuSection>;
} }
export class HomeSection { export interface HomeSection {
name: string; name: string;
places: Array<HomeSectionPlace>; places: Array<HomeSectionPlace>;
} }
export class HomeSectionPlace { export interface HomeSectionPlace {
name: string; name: string;
icon: string; icon: string;
isMdiIcon?: boolean; isMdiIcon?: boolean;

22
ui-ngx/src/app/core/services/menu.service.ts

@ -24,6 +24,7 @@ import { HomeSection, MenuSection } from '@core/services/menu.models';
import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { Authority } from '@shared/models/authority.enum'; import { Authority } from '@shared/models/authority.enum';
import { AuthUser } from '@shared/models/user.model'; import { AuthUser } from '@shared/models/user.model';
import { guid } from '@core/utils';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -74,24 +75,28 @@ export class MenuService {
const sections: Array<MenuSection> = []; const sections: Array<MenuSection> = [];
sections.push( sections.push(
{ {
id: guid(),
name: 'home.home', name: 'home.home',
type: 'link', type: 'link',
path: '/home', path: '/home',
icon: 'home' icon: 'home'
}, },
{ {
id: guid(),
name: 'tenant.tenants', name: 'tenant.tenants',
type: 'link', type: 'link',
path: '/tenants', path: '/tenants',
icon: 'supervisor_account' icon: 'supervisor_account'
}, },
{ {
id: guid(),
name: 'widget.widget-library', name: 'widget.widget-library',
type: 'link', type: 'link',
path: '/widgets-bundles', path: '/widgets-bundles',
icon: 'now_widgets' icon: 'now_widgets'
}, },
{ {
id: guid(),
name: 'admin.system-settings', name: 'admin.system-settings',
type: 'toggle', type: 'toggle',
path: '/settings', path: '/settings',
@ -99,18 +104,21 @@ export class MenuService {
icon: 'settings', icon: 'settings',
pages: [ pages: [
{ {
id: guid(),
name: 'admin.general', name: 'admin.general',
type: 'link', type: 'link',
path: '/settings/general', path: '/settings/general',
icon: 'settings_applications' icon: 'settings_applications'
}, },
{ {
id: guid(),
name: 'admin.outgoing-mail', name: 'admin.outgoing-mail',
type: 'link', type: 'link',
path: '/settings/outgoing-mail', path: '/settings/outgoing-mail',
icon: 'mail' icon: 'mail'
}, },
{ {
id: guid(),
name: 'admin.security-settings', name: 'admin.security-settings',
type: 'link', type: 'link',
path: '/settings/security-settings', path: '/settings/security-settings',
@ -173,54 +181,63 @@ export class MenuService {
const sections: Array<MenuSection> = []; const sections: Array<MenuSection> = [];
sections.push( sections.push(
{ {
id: guid(),
name: 'home.home', name: 'home.home',
type: 'link', type: 'link',
path: '/home', path: '/home',
icon: 'home' icon: 'home'
}, },
{ {
id: guid(),
name: 'rulechain.rulechains', name: 'rulechain.rulechains',
type: 'link', type: 'link',
path: '/ruleChains', path: '/ruleChains',
icon: 'settings_ethernet' icon: 'settings_ethernet'
}, },
{ {
id: guid(),
name: 'customer.customers', name: 'customer.customers',
type: 'link', type: 'link',
path: '/customers', path: '/customers',
icon: 'supervisor_account' icon: 'supervisor_account'
}, },
{ {
id: guid(),
name: 'asset.assets', name: 'asset.assets',
type: 'link', type: 'link',
path: '/assets', path: '/assets',
icon: 'domain' icon: 'domain'
}, },
{ {
id: guid(),
name: 'device.devices', name: 'device.devices',
type: 'link', type: 'link',
path: '/devices', path: '/devices',
icon: 'devices_other' icon: 'devices_other'
}, },
{ {
id: guid(),
name: 'entity-view.entity-views', name: 'entity-view.entity-views',
type: 'link', type: 'link',
path: '/entityViews', path: '/entityViews',
icon: 'view_quilt' icon: 'view_quilt'
}, },
{ {
id: guid(),
name: 'widget.widget-library', name: 'widget.widget-library',
type: 'link', type: 'link',
path: '/widgets-bundles', path: '/widgets-bundles',
icon: 'now_widgets' icon: 'now_widgets'
}, },
{ {
id: guid(),
name: 'dashboard.dashboards', name: 'dashboard.dashboards',
type: 'link', type: 'link',
path: '/dashboards', path: '/dashboards',
icon: 'dashboards' icon: 'dashboards'
}, },
{ {
id: guid(),
name: 'audit-log.audit-logs', name: 'audit-log.audit-logs',
type: 'link', type: 'link',
path: '/auditLogs', path: '/auditLogs',
@ -316,30 +333,35 @@ export class MenuService {
const sections: Array<MenuSection> = []; const sections: Array<MenuSection> = [];
sections.push( sections.push(
{ {
id: guid(),
name: 'home.home', name: 'home.home',
type: 'link', type: 'link',
path: '/home', path: '/home',
icon: 'home' icon: 'home'
}, },
{ {
id: guid(),
name: 'asset.assets', name: 'asset.assets',
type: 'link', type: 'link',
path: '/assets', path: '/assets',
icon: 'domain' icon: 'domain'
}, },
{ {
id: guid(),
name: 'device.devices', name: 'device.devices',
type: 'link', type: 'link',
path: '/devices', path: '/devices',
icon: 'devices_other' icon: 'devices_other'
}, },
{ {
id: guid(),
name: 'entity-view.entity-views', name: 'entity-view.entity-views',
type: 'link', type: 'link',
path: '/entityViews', path: '/entityViews',
icon: 'view_quilt' icon: 'view_quilt'
}, },
{ {
id: guid(),
name: 'dashboard.dashboards', name: 'dashboard.dashboards',
type: 'link', type: 'link',
path: '/dashboards', path: '/dashboards',

2
ui-ngx/src/app/modules/home/menu/menu-toggle.component.ts

@ -46,6 +46,6 @@ export class MenuToggleComponent implements OnInit {
} }
trackBySectionPages(index: number, section: MenuSection){ trackBySectionPages(index: number, section: MenuSection){
return section.name; return section.id;
} }
} }

2
ui-ngx/src/app/modules/home/menu/side-menu.component.ts

@ -31,7 +31,7 @@ export class SideMenuComponent implements OnInit {
} }
trackByMenuSection(index: number, section: MenuSection){ trackByMenuSection(index: number, section: MenuSection){
return section.name; return section.id;
} }
ngOnInit() { ngOnInit() {

4
ui-ngx/src/app/shared/components/breadcrumb.component.ts

@ -20,6 +20,7 @@ import { BreadCrumb, BreadCrumbConfig } from './breadcrumb';
import { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router'; import { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';
import { distinctUntilChanged, filter, map } from 'rxjs/operators'; import { distinctUntilChanged, filter, map } from 'rxjs/operators';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { guid } from '@core/utils';
@Component({ @Component({
selector: 'tb-breadcrumb', selector: 'tb-breadcrumb',
@ -94,6 +95,7 @@ export class BreadcrumbComponent implements OnInit, OnDestroy {
const isMdiIcon = icon.startsWith('mdi:'); const isMdiIcon = icon.startsWith('mdi:');
const link = [ route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/') ]; const link = [ route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/') ];
const breadcrumb = { const breadcrumb = {
id: guid(),
label, label,
labelFunction, labelFunction,
ignoreTranslate, ignoreTranslate,
@ -112,6 +114,6 @@ export class BreadcrumbComponent implements OnInit, OnDestroy {
} }
trackByBreadcrumbs(index: number, breadcrumb: BreadCrumb){ trackByBreadcrumbs(index: number, breadcrumb: BreadCrumb){
return breadcrumb.labelFunction ? breadcrumb.labelFunction() : breadcrumb.label; return breadcrumb.id;
} }
} }

3
ui-ngx/src/app/shared/components/breadcrumb.ts

@ -16,8 +16,9 @@
import { ActivatedRouteSnapshot, Params } from '@angular/router'; import { ActivatedRouteSnapshot, Params } from '@angular/router';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { HasUUID } from '@shared/models/id/has-uuid';
export interface BreadCrumb { export interface BreadCrumb extends HasUUID{
label: string; label: string;
labelFunction?: () => string; labelFunction?: () => string;
ignoreTranslate: boolean; ignoreTranslate: boolean;

Loading…
Cancel
Save