mirror of
https://github.com/SuiteCRM/SuiteCRM-Core.git
synced 2025-09-04 10:14:13 +08:00
Update navbar to use front-end route converter
Signed-off-by: Dillon-Brown <dillon.brown@salesagility.com>
This commit is contained in:
parent
f10cc2812f
commit
5ceaf98172
2 changed files with 16 additions and 25 deletions
|
@ -2,7 +2,7 @@ import {NavbarModel} from './navbar-model';
|
|||
import {LogoAbstract} from '../logo/logo-abstract';
|
||||
import {GroupedTab, NavbarModuleMap, Navigation, UserActionMenu} from '@base/facades/navigation/navigation.facade';
|
||||
import {LanguageStrings, LanguageStringMap} from '@base/facades/language/language.facade';
|
||||
|
||||
import {RouteConverter} from '@services/navigation/route-converter/route-converter.service';
|
||||
import {CurrentUserModel} from './current-user-model';
|
||||
import {ActionLinkModel} from './action-link-model';
|
||||
import {ready} from '@base/utils/object-utils';
|
||||
|
@ -51,6 +51,10 @@ export class NavbarAbstract implements NavbarModel {
|
|||
* Public API
|
||||
*/
|
||||
|
||||
constructor(
|
||||
private routeConverter: RouteConverter) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset menus
|
||||
*/
|
||||
|
@ -82,15 +86,13 @@ export class NavbarAbstract implements NavbarModel {
|
|||
userActionMenu.forEach((subMenu) => {
|
||||
const name = subMenu.name;
|
||||
let url = subMenu.url;
|
||||
let urlParams;
|
||||
|
||||
if (name === 'logout') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (name !== 'training') {
|
||||
urlParams = this.getModuleFromUrlParams(url);
|
||||
url = ROUTE_PREFIX + '/' + (urlParams.module).toLowerCase() + '/' + (urlParams.action).toLowerCase();
|
||||
url = ROUTE_PREFIX + this.routeConverter.toFrontEnd(url);
|
||||
}
|
||||
|
||||
const label = appStrings[subMenu.labelKey];
|
||||
|
@ -445,20 +447,4 @@ export class NavbarAbstract implements NavbarModel {
|
|||
|
||||
return menuItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get module from url params
|
||||
*
|
||||
* @param {string} search query
|
||||
* @returns {{}} params map
|
||||
*/
|
||||
private getModuleFromUrlParams(search: string): any {
|
||||
const hashes = search.slice(search.indexOf('?') + 1).split('&');
|
||||
const params = {};
|
||||
hashes.map(hash => {
|
||||
const [key, val] = hash.split('=');
|
||||
params[key] = decodeURIComponent(val);
|
||||
});
|
||||
return params;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,9 @@ import {AuthService} from '@services/auth/auth.service';
|
|||
import {SystemConfigFacade} from '@base/facades/system-config/system-config.facade';
|
||||
import {AppState, AppStateFacade} from '@base/facades/app-state/app-state.facade';
|
||||
import {LanguageFacade, LanguageStrings,} from '@base/facades/language/language.facade';
|
||||
import {RouteConverter} from "@services/navigation/route-converter/route-converter.service";
|
||||
import {ModuleNameMapper} from "@services/navigation/module-name-mapper/module-name-mapper.service";
|
||||
import {ActionNameMapper} from "@services/navigation/action-name-mapper/action-name-mapper.service";
|
||||
|
||||
@Component({
|
||||
selector: 'scrm-navbar-ui',
|
||||
|
@ -31,8 +34,10 @@ export class NavbarUiComponent implements OnInit, OnDestroy {
|
|||
backLink = false;
|
||||
mainNavLink = true;
|
||||
submenu: any = [];
|
||||
|
||||
navbar: NavbarModel = new NavbarAbstract();
|
||||
moduleNameMapper = new ModuleNameMapper(this.systemConfigFacade)
|
||||
actionNameMapper = new ActionNameMapper(this.systemConfigFacade)
|
||||
routeConverter = new RouteConverter(this.moduleNameMapper, this.actionNameMapper)
|
||||
navbar: NavbarModel = new NavbarAbstract(this.routeConverter);
|
||||
|
||||
languages$: Observable<LanguageStrings> = this.languageFacade.vm$;
|
||||
userPreferences$: Observable<UserPreferenceMap> = this.userPreferenceFacade.userPreferences$;
|
||||
|
@ -71,7 +76,7 @@ export class NavbarUiComponent implements OnInit, OnDestroy {
|
|||
protected appState: AppStateFacade,
|
||||
private authService: AuthService
|
||||
) {
|
||||
const navbar = new NavbarAbstract();
|
||||
const navbar = new NavbarAbstract(this.routeConverter);
|
||||
this.setNavbar(navbar);
|
||||
|
||||
NavbarUiComponent.instances.push(this);
|
||||
|
@ -87,7 +92,7 @@ export class NavbarUiComponent implements OnInit, OnDestroy {
|
|||
static reset(): void {
|
||||
NavbarUiComponent.instances.forEach((navbarComponent: NavbarUiComponent) => {
|
||||
navbarComponent.loaded = false;
|
||||
navbarComponent.navbar = new NavbarAbstract();
|
||||
navbarComponent.navbar = new NavbarAbstract(navbarComponent.routeConverter);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -98,7 +103,7 @@ export class NavbarUiComponent implements OnInit, OnDestroy {
|
|||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
const navbar = new NavbarAbstract();
|
||||
const navbar = new NavbarAbstract(this.routeConverter);
|
||||
this.setNavbar(navbar);
|
||||
this.authService.isUserLoggedIn.subscribe(value => {
|
||||
this.isUserLoggedIn = value;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue