mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
91 lines
5.4 KiB
Markdown
91 lines
5.4 KiB
Markdown
# TODO
|
|
|
|
## Admin area cleanup
|
|
|
|
- [x] Combine `acces-etudiante.php` + `file-access.php` into `acces.php` (two `<section>` blocks)
|
|
- [x] Move `system.php` content into `parametres.php` (system section + logs section)
|
|
- [x] Use `<section>` for sections, `<fieldset>` only where form fields are present
|
|
- [x] Redirect legacy URLs (acces-etudiante.php, file-access.php, system.php) with 301
|
|
- [x] Update action redirects to point to new pages
|
|
- [x] Update admin nav header (merged 3 items → 2)
|
|
|
|
## Bug fixes
|
|
|
|
- [x] Fix `$enabledAccessTypes` undefined / `array_map()` TypeError on edit page — controller was fetching `getAccessTypes()` instead of `getEnabledFormAccessTypes()` and returning it under the wrong key
|
|
- [x] Fix fatal TypeError: `old()` called with wrong arity in `jury-fieldset.php` partial under partage context — removed `?: null` coercions so `$juryPresident`/`$juryPromoteur` are `''` not `null`, keeping `$addMode` false
|
|
- [x] Fix `$formData` destroyed by included partials (`fieldset-academic.php`, `fieldset-metadata.php`, `fieldset-licence-explanation.php` were incorrectly unsetting `$formData`/wrong variable in caller scope)
|
|
|
|
## Form help blocks — sortable admin UI
|
|
|
|
- [x] Migration 005: add `sort_order` column to `form_help_blocks`
|
|
- [x] `Database::getAllFormHelpBlocks()` — ORDER BY sort_order, expose sort_order in returned data
|
|
- [x] `Database::reorderFormHelpBlocks(array $keys)` — persist new order
|
|
- [x] `actions/form-help-reorder.php` — HTMX POST handler (CSRF-protected, 204 response)
|
|
- [x] `templates/admin/contenus.php` — replace table with two-panel layout:
|
|
- Left: SortableJS + htmx drag-and-drop card list
|
|
- Right: static form structure reference (fieldsets + inputs)
|
|
- [x] CSS in admin.css: `.fhb-*` classes for layout, cards, ghost/chosen/drag states
|
|
- [x] `schema.sql` — updated `form_help_blocks` DDL with `sort_order`
|
|
- [x] Vendor SortableJS 1.15.2 into `assets/js/sortable.min.js` (remove CDN dependency)
|
|
|
|
## Bug fixes (continued)
|
|
|
|
- [x] Fix missing favicon tags in `partage/recapitulatif.php`
|
|
- [x] Fix fatal `Class "SmtpRelay" not found` in `StudentEmail.php` — add `require_once SmtpRelay.php` before `StudentEmail.php` in `partage/index.php`
|
|
|
|
- [x] Add missing favicon tags to all three `<head>` blocks in `partage/index.php` (error page, password gate, main form)
|
|
|
|
## Rename posterg → xamxam throughout codebase
|
|
|
|
- [x] Rename `nginx/posterg.conf` → `nginx/xamxam.conf` (+ `.conf.reference`)
|
|
- [x] Update nginx conf: `server_name`, log paths, htpasswd path, header comments
|
|
- [x] Update `justfile`: SSH host alias, group, DB filename, conf path, tmp paths
|
|
- [x] Update `scripts/deploy-server.sh`: group, conf paths, site names, URLs
|
|
- [x] Update `scripts/setup-server.sh`: APP_DIR, APP_GROUP, comments
|
|
- [x] Update `scripts/manage-admin-users.sh`: htpasswd path
|
|
- [x] Update `scripts/migrate.sh`: DB filename
|
|
- [x] Update `scripts/setup-dev.sh`: DB filename
|
|
- [x] Update `scripts/copy_crash_logs.sh`: log filenames, hostname
|
|
- [x] Update `README.md`: SSH host, paths, DB name
|
|
- [x] Update `nginx/README.md`, `nginx/SETUP.md`, and all `nginx/docs/*.md`
|
|
- [x] Update PHP source: `Database.php`, `SystemController.php`, `MediaController.php`, `LiveReloadController.php`, `SmtpRelay.php`, `live-reload.php`, export actions
|
|
- [x] Update `app/migrations/run.php`, `app/tests/README.md`, `app/storage/README.md`
|
|
- [x] Replace all remaining "Post-ERG" branding with "XAMXAM" (scripts, PHP source, schema, docs)
|
|
- [x] `deploy-server.sh`: remove legacy `sites-enabled/posterg` symlink to fix duplicate `limit_req_zone` nginx error
|
|
- [x] `deploy-server.sh`: auto-migrate `.htpasswd-posterg` → `.htpasswd-xamxam` if new file absent
|
|
- [x] `deploy-server.sh`: auto-migrate `posterg.db` → `xamxam.db` if new DB missing/empty; remove legacy file
|
|
- [x] `deploy-server.sh`: clean up legacy posterg nginx configs and prune old backups
|
|
- [x] Rename local `storage/posterg.db` → `storage/xamxam.db`
|
|
|
|
## LDAP auth migration (pending client access)
|
|
|
|
- [ ] Get LDAP server hostname, port, service-account DN+password, base DN, user attr, group DN from client
|
|
- [ ] Verify TCP reachability from XAMXAM VM to LDAP server (port 636)
|
|
- [ ] See `docs/LDAP_AUTH_PLAN.md` for full phase-by-phase plan
|
|
|
|
## SMTP credential validation
|
|
|
|
- [x] Add `SmtpRelay::test()` — connect + EHLO + STARTTLS + AUTH + QUIT, no message sent
|
|
- [x] Add `SmtpRelay::smtpProbe()` — private low-level probe (mirrors smtpSend without envelope/data)
|
|
- [x] Wire into `actions/settings.php` SMTP branch: probe immediately after save, flash success or error with detail
|
|
|
|
## Répertoire layout
|
|
|
|
- [x] Make column headings sticky/non-scrollable; only `ul` scrolls per column
|
|
- [x] Remove padding from `.search-main` and `.repertoire-index`
|
|
- [x] Minimal horizontal padding inside columns (`var(--space-2xs)`)
|
|
- [x] Align all column headings to the same baseline row (2-row grid via `display: contents`)
|
|
|
|
## CSS refactor
|
|
|
|
- [x] Move semantic HTML element baseline styles into common.css
|
|
- `fieldset` (background, border, padding, radius)
|
|
- `legend` (font, weight, color, transform)
|
|
- `small` (size, color, display, margin)
|
|
- `table`, `th`, `td` (collapse, sizing, spacing)
|
|
- `dialog` + `::backdrop`
|
|
- `details > summary`
|
|
- [x] Remove duplicated rules from admin.css, form.css, system.css, file-access.css
|
|
- [x] Fix file-access.css to use real design tokens (was using undefined --border, --surface, --accent, etc.)
|
|
- [x] Remove redundant @import url("./variables.css") from admin.css, system.css, file-access.css
|