X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fcore%2Frouting%2Fmenu-guard.service.ts;h=c4e64d434afc525b3742046a0aaa359ebb74c8cc;hb=2989628b7913383b39ac34c7db8666a21f8e5037;hp=907d145fdbca0ebd3891f99d345895d8796cea40;hpb=610d0be13b3d01f653ef269271dd667a57c85ef2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/core/routing/menu-guard.service.ts b/client/src/app/core/routing/menu-guard.service.ts index 907d145fd..c4e64d434 100644 --- a/client/src/app/core/routing/menu-guard.service.ts +++ b/client/src/app/core/routing/menu-guard.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core' import { CanActivate, CanDeactivate } from '@angular/router' -import { MenuService } from '@app/core/menu' -import { ScreenService } from '@app/shared/misc/screen.service' +import { MenuService } from '../menu' +import { ScreenService } from '../wrappers' abstract class MenuGuard implements CanActivate, CanDeactivate { display = true @@ -15,7 +15,7 @@ abstract class MenuGuard implements CanActivate, CanDeactivate { // small screens already have the site-wide onResize from screenService // > medium screens have enough space to fit the administrative menus if (!this.screen.isInMobileView() && this.screen.isInMediumView()) { - this.menu.isMenuDisplayed = this.display + this.menu.setMenuDisplay(this.display) } return true } @@ -26,23 +26,49 @@ export class OpenMenuGuard extends MenuGuard { constructor (menu: MenuService, screen: ScreenService) { super(menu, screen, true) } } +@Injectable() +export class OpenMenuAlwaysGuard extends MenuGuard { + constructor (menu: MenuService, screen: ScreenService) { super(menu, screen, true) } + + canActivate (): boolean { + this.menu.setMenuDisplay(this.display) + return true + } +} + @Injectable() export class CloseMenuGuard extends MenuGuard { constructor (menu: MenuService, screen: ScreenService) { super(menu, screen, false) } } +@Injectable() +export class CloseMenuAlwaysGuard extends MenuGuard { + constructor (menu: MenuService, screen: ScreenService) { super(menu, screen, false) } + + canActivate (): boolean { + this.menu.setMenuDisplay(this.display) + return true + } +} + @Injectable() export class MenuGuards { public static guards = [ OpenMenuGuard, - CloseMenuGuard + OpenMenuAlwaysGuard, + CloseMenuGuard, + CloseMenuAlwaysGuard ] - static open () { - return OpenMenuGuard + static open (always?: boolean) { + return always + ? OpenMenuAlwaysGuard + : OpenMenuGuard } - static close () { - return CloseMenuGuard + static close (always?: boolean) { + return always + ? CloseMenuAlwaysGuard + : CloseMenuGuard } }