diff --git a/apps/red-ui/src/app/screens/base-screen/base-screen.component.html b/apps/red-ui/src/app/screens/base-screen/base-screen.component.html index 6b58f9763..6808a7419 100644 --- a/apps/red-ui/src/app/screens/base-screen/base-screen.component.html +++ b/apps/red-ui/src/app/screens/base-screen/base-screen.component.html @@ -1,4 +1,4 @@ -
+
-
+
diff --git a/apps/red-ui/src/app/screens/base-screen/base-screen.component.ts b/apps/red-ui/src/app/screens/base-screen/base-screen.component.ts index 25e165587..df11389e7 100644 --- a/apps/red-ui/src/app/screens/base-screen/base-screen.component.ts +++ b/apps/red-ui/src/app/screens/base-screen/base-screen.component.ts @@ -4,6 +4,7 @@ import { AppStateService } from '../../state/app-state.service'; import { LanguageService } from '../../i18n/language.service'; import { PermissionsService } from '../../common/service/permissions.service'; import { UserPreferenceService } from '../../common/service/user-preference.service'; +import { FullScreenService } from '../../utils/full-screen.service'; @Component({ selector: 'redaction-base-screen', @@ -15,6 +16,8 @@ export class BaseScreenComponent { public readonly appStateService: AppStateService, public readonly permissionsService: PermissionsService, public readonly userPreferenceService: UserPreferenceService, + public readonly fullScreenService: FullScreenService, + private readonly _languageService: LanguageService, private readonly _userService: UserService ) {} diff --git a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html index b7260aeb8..627bec482 100644 --- a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html +++ b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html @@ -66,6 +66,12 @@
+
-
+
+ { + if (route instanceof NavigationStart) { + if (route.url.indexOf('file') === -1) { + this.fullScreen = false; + } + } + }); + } + + public toggleFullScreen() { + this.fullScreen = !this.fullScreen; + } +} diff --git a/apps/red-ui/src/assets/styles/red-page-layout.scss b/apps/red-ui/src/assets/styles/red-page-layout.scss index de52c2284..5306079da 100644 --- a/apps/red-ui/src/assets/styles/red-page-layout.scss +++ b/apps/red-ui/src/assets/styles/red-page-layout.scss @@ -24,6 +24,7 @@ body { box-sizing: border-box; background-color: $white; z-index: 3; + transition: top linear 0.2s; .filters { gap: 2px; @@ -54,55 +55,83 @@ body { } } -.red-content-inner { - margin-top: 50px; -} +.red-content { + width: 100vw; + height: calc(100vh - 61px); + overflow: auto; + position: absolute; + transition: top linear 0.2s, height linear 0.2s; + top: 61px; -.left-container { - height: calc(100vh - 61px - 50px); - transition: width ease-in-out 0.1s; + .red-content-inner { + position: absolute; + top: 50px; - &.extended { - width: calc(100vw - 60px) !important; - } -} + .left-container { + transition: width linear 0.1s, height linear 0.2s; -.right-fixed-container { - border-left: 1px solid $grey-4; - background: $white; - position: fixed; - right: 0; - z-index: 2; - transition: width ease-in-out 0.1s; - - .collapsed-wrapper { - display: none; - } - - &.collapsed { - padding-left: 0 !important; - padding-right: 0 !important; - width: 60px !important; - display: flex; - - div:not(.collapsed-wrapper) { - display: none; + &.extended { + width: calc(100vw - 60px) !important; + } } - .collapsed-wrapper { - display: flex; - flex-direction: column; - align-items: center; - width: 60px; + .right-fixed-container { + border-left: 1px solid $grey-4; + background: $white; + position: fixed; + right: 0; + top: 111px; + z-index: 2; + transition: width linear 0.1s, top linear 0.2s, height linear 0.2s; - div { - display: initial; + .collapsed-wrapper { + display: none; } - .all-caps-label { - transform: rotate(90deg) translateX(50%); - white-space: nowrap; - margin-top: 10px; + &.collapsed { + padding-left: 0 !important; + padding-right: 0 !important; + width: 60px !important; + display: flex; + + div:not(.collapsed-wrapper) { + display: none; + } + + .collapsed-wrapper { + display: flex; + flex-direction: column; + align-items: center; + width: 60px; + + div { + display: initial; + } + + .all-caps-label { + transform: rotate(90deg) translateX(50%); + white-space: nowrap; + margin-top: 10px; + } + } + } + } + } + + &.fullscreen { + height: 100vh; + top: 0; + + .page-header { + top: -51px; + } + + .red-content-inner { + top: 0; + + .right-fixed-container { + top: 0; + height: 100vh; } } } @@ -155,10 +184,17 @@ body { .red-top-bar { height: 61px; - width: 100%; + position: absolute; + width: 100vw; max-height: 61px; display: flex; flex-direction: column; + top: 0; + transition: top linear 0.2s; + + &.fullscreen { + top: -61px; + } .top-bar-row { height: 60px; @@ -199,12 +235,6 @@ body { } } -.red-content { - width: 100vw; - height: calc(100vh - 61px); - overflow: auto; -} - .hidden { display: none !important; }