|
1 | 1 | import {contrastColor} from '../utils/color.ts'; |
| 2 | +import {toggleClass, toggleElem} from '../utils/dom.ts'; |
2 | 3 | import {createSortable} from '../modules/sortable.ts'; |
3 | 4 | import {POST, request} from '../modules/fetch.ts'; |
4 | 5 | import {fomanticQuery} from '../modules/fomantic/base.ts'; |
@@ -139,7 +140,41 @@ function initRepoProjectColumnEdit(writableProjectBoard: Element): void { |
139 | 140 | }); |
140 | 141 | } |
141 | 142 |
|
| 143 | +function initRepoProjectToggleFullScreen(): void { |
| 144 | + const el = document.querySelector('.toggle-fullscreen'); |
| 145 | + el.addEventListener('click', () => { |
| 146 | + const isFullScreen = el.getAttribute('data-fullscreen') === 'true'; |
| 147 | + |
| 148 | + // hide other elements |
| 149 | + const headerEl = document.querySelector('#navbar'); |
| 150 | + const contentEl = document.querySelector('.page-content'); |
| 151 | + const footerEl = document.querySelector('.page-footer'); |
| 152 | + toggleElem(headerEl, isFullScreen); |
| 153 | + toggleElem(contentEl, isFullScreen); |
| 154 | + toggleElem(footerEl, isFullScreen); |
| 155 | + |
| 156 | + el.innerHTML = isFullScreen ? 'Fullscreen' : 'Exit'; |
| 157 | + el.setAttribute('data-fullscreen', String(!isFullScreen)); |
| 158 | + toggleClass(el, 'is-fullscreen'); |
| 159 | + |
| 160 | + const fullScreenEl1 = document.querySelector('.projects-view-top'); |
| 161 | + const fullScreenEl2 = document.querySelector('.projects-view-bottom'); |
| 162 | + const outerEl = document.querySelector('.full.height'); |
| 163 | + toggleClass(fullScreenEl1, 'is-fullscreen'); |
| 164 | + toggleClass(fullScreenEl2, 'is-fullscreen'); |
| 165 | + if (isFullScreen) { |
| 166 | + contentEl.append(fullScreenEl1); |
| 167 | + contentEl.append(fullScreenEl2); |
| 168 | + } else { |
| 169 | + outerEl.append(fullScreenEl1); |
| 170 | + outerEl.append(fullScreenEl2); |
| 171 | + } |
| 172 | + }); |
| 173 | +} |
| 174 | + |
142 | 175 | export function initRepoProject(): void { |
| 176 | + initRepoProjectToggleFullScreen(); |
| 177 | + |
143 | 178 | const writableProjectBoard = document.querySelector('#project-board[data-project-borad-writable="true"]'); |
144 | 179 | if (!writableProjectBoard) return; |
145 | 180 |
|
|
0 commit comments