From 4a2f3b4b53276c0b0f165a6584ac7bb7b057c6fe Mon Sep 17 00:00:00 2001 From: Kerwin Bryant Date: Mon, 31 Mar 2025 03:19:10 +0000 Subject: [PATCH 01/14] Add fullscreen mode for view projects --- templates/repo/projects/view.tmpl | 5 ++-- web_src/css/features/projects.css | 23 ++++++++++++++++++ web_src/js/features/repo-projects.ts | 35 ++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/templates/repo/projects/view.tmpl b/templates/repo/projects/view.tmpl index 7267a99b1db0f..6b0a2c2393f6d 100644 --- a/templates/repo/projects/view.tmpl +++ b/templates/repo/projects/view.tmpl @@ -1,14 +1,15 @@ {{template "base/head" .}}
{{template "repo/header" .}} -
+ -
+
{{template "projects/view" .}}
diff --git a/web_src/css/features/projects.css b/web_src/css/features/projects.css index 72ef523913e34..3b749c46da8ad 100644 --- a/web_src/css/features/projects.css +++ b/web_src/css/features/projects.css @@ -98,3 +98,26 @@ .card-ghost * { opacity: 0; } + +.is-fullscreen.projects-view-top, +.is-fullscreen.projects-view-bottom .ui.container { + position: fixed; + z-index: 1000; + top: 0; + left: 0; + right: 0; + margin: 0 !important; + width: 100%; + max-width: 100%; + background-color: var(--color-body); +} + +.is-fullscreen.projects-view-bottom .ui.container { + top: 36px; +} + +.is-fullscreen #project-board { + position: absolute; + top: 120px; + left: 0; +} diff --git a/web_src/js/features/repo-projects.ts b/web_src/js/features/repo-projects.ts index 11f5c19c8d335..e2ec7d17909e2 100644 --- a/web_src/js/features/repo-projects.ts +++ b/web_src/js/features/repo-projects.ts @@ -1,4 +1,5 @@ import {contrastColor} from '../utils/color.ts'; +import {toggleClass, toggleElem} from '../utils/dom.ts'; import {createSortable} from '../modules/sortable.ts'; import {POST, request} from '../modules/fetch.ts'; import {fomanticQuery} from '../modules/fomantic/base.ts'; @@ -139,7 +140,41 @@ function initRepoProjectColumnEdit(writableProjectBoard: Element): void { }); } +function initRepoProjectToggleFullScreen(): void { + const el = document.querySelector('.toggle-fullscreen'); + el.addEventListener('click', () => { + const isFullScreen = el.getAttribute('data-fullscreen') === 'true'; + + // hide other elements + const headerEl = document.querySelector('#navbar'); + const contentEl = document.querySelector('.page-content'); + const footerEl = document.querySelector('.page-footer'); + toggleElem(headerEl, isFullScreen); + toggleElem(contentEl, isFullScreen); + toggleElem(footerEl, isFullScreen); + + el.innerHTML = isFullScreen ? 'Fullscreen' : 'Exit'; + el.setAttribute('data-fullscreen', String(!isFullScreen)); + toggleClass(el, 'is-fullscreen'); + + const fullScreenEl1 = document.querySelector('.projects-view-top'); + const fullScreenEl2 = document.querySelector('.projects-view-bottom'); + const outerEl = document.querySelector('.full.height'); + toggleClass(fullScreenEl1, 'is-fullscreen'); + toggleClass(fullScreenEl2, 'is-fullscreen'); + if (isFullScreen) { + contentEl.append(fullScreenEl1); + contentEl.append(fullScreenEl2); + } else { + outerEl.append(fullScreenEl1); + outerEl.append(fullScreenEl2); + } + }); +} + export function initRepoProject(): void { + initRepoProjectToggleFullScreen(); + const writableProjectBoard = document.querySelector('#project-board[data-project-borad-writable="true"]'); if (!writableProjectBoard) return; From 9a2a8bc71d2297998a540fc0ac741757484aaab7 Mon Sep 17 00:00:00 2001 From: Kerwin Bryant Date: Mon, 14 Apr 2025 03:08:52 +0000 Subject: [PATCH 02/14] fix --- options/locale/locale_en-US.ini | 2 + templates/org/projects/view.tmpl | 4 +- templates/projects/view.tmpl | 8 ++++ templates/repo/projects/view.tmpl | 7 ++-- web_src/css/features/projects.css | 18 +++++--- web_src/js/features/repo-projects.ts | 62 +++++++++++++++------------- 6 files changed, 60 insertions(+), 41 deletions(-) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 9e6c5e61acc58..de5076092ffc7 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -3844,6 +3844,8 @@ deleted.display_name = Deleted Project type-1.display_name = Individual Project type-2.display_name = Repository Project type-3.display_name = Organization Project +enter_fullscreen = Fullscreen +exit_fullscreen = Exit Fullscreen [git.filemode] changed_filemode = %[1]s → %[2]s diff --git a/templates/org/projects/view.tmpl b/templates/org/projects/view.tmpl index bd74114fe2e47..accfc9ee64c3f 100644 --- a/templates/org/projects/view.tmpl +++ b/templates/org/projects/view.tmpl @@ -8,8 +8,8 @@ {{template "user/overview/header" .}}
{{end}} -
- {{template "projects/view" .}} +
+ {{template "projects/view" dict "." . "FullscreenElementsSelector" ".org-projects-view"}}
{{template "base/footer" .}} diff --git a/templates/projects/view.tmpl b/templates/projects/view.tmpl index d6a335ef4b5ad..7d449ed75d954 100644 --- a/templates/projects/view.tmpl +++ b/templates/projects/view.tmpl @@ -19,6 +19,14 @@
{{if $canWriteProject}}