mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
Add system-fragment.php — a thin authenticated endpoint that returns only the tab-panel HTML (toolbar + meta + log/nginx-config output) for a given ?tab=&n= combination. No page shell, no status section, no DB queries. system.php changes: - Tab <a> elements gain data-tab= attributes used by JS to identify the target without parsing hrefs. - Tab panel content wrapped in <div id=sys-tab-panel data-tab= data-n=> which JS uses as both the swap target and its own state store. - JS rewritten: tab clicks and lines-select changes call loadPanel() which fetch()es system-fragment.php, swaps innerHTML, updates active tab ARIA attributes, and pushes state via history.pushState. - Browser back/forward handled via popstate listener. - bindPanelControls() re-wires the lines-select and copy-to-clipboard button after every innerHTML swap (event delegation not feasible here because log-output is replaced wholesale). - fetch() failure falls back to window.location.href (full page load). - Tabs without JS still work: <a href> links go to system.php?tab=… as before. system-fragment.php: - Requires AdminAuth::isAuthenticated(); returns 403 on failure. - Validates tab and n params against the same whitelist as system.php. - All helper functions namespaced with frag_ prefix to avoid redeclaration if PHP ever includes both files in the same process. - Renders identical HTML to the corresponding section in system.php. system.css: - #sys-tab-panel gets min-height:8rem and position:relative to prevent layout jump during fetch. - .sys-panel-loading: opacity 0.4 + pointer-events:none + subtle diagonal-stripe ::after overlay with shimmer animation.
CSS Architecture
File Structure
- variables.css - CSS custom properties (variables) for colors and theme values
- colors.css - Reference documentation of all color values used in the project
- common.css - Shared styles: reset, header/nav, search bar, accessibility utilities
- main.css - Home page styles
- admin.css - Admin section styles
- system.css - System page styles
- search.css - Search/Directory page styles
- apropos.css - About page styles
- tfe.css - Individual thesis page styles
- easymde.min.css - EasyMDE editor styles (minified, third-party)
- modern-normalize.min.css - Modern normalize reset (minified, third-party)
Imports
All CSS files automatically import variables.css to access CSS custom properties.
Variables
Shared Variables (public pages)
--purple,--purple-dark,--purple-light- Purple palette--black,--white- Base colors--grey-light- Light grey background--border-color- Border color--text-muted- Muted text color
Admin Variables
--admin-bg,--admin-bg-alt- Background colors--admin-border- Border color--admin-text,--admin-text-muted- Text colors--admin-purple- Accent color--admin-input-bg- Input background