mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 11:09:18 +02:00
- DB migration 007: add sort_order + display_label to thesis_files - Database: getThesisFiles ordered by sort_order; insertThesisFile accepts label/order; new reorderThesisFiles() and updateThesisFileLabel() methods - ThesisCreateController + ThesisEditController: expand allowed MIME/exts to include audio (mp3/ogg/wav/flac/aac/m4a), video (webm/mov/ogv), image (gif/webp), archives (tar/gz), any-ext via octet-stream; max size raised to 500 MB; accept file_labels[] and file_orders[] POST fields; detectFileType() helper - MediaController: expanded MIME allowlist; HTTP Range support for audio/video; force-download for unknown types; inline for known displayable types - fieldset-files.php: sortable queue UI with SortableJS, per-file labels, 500 MB hint - templates/admin/edit.php: existing files as sortable list with drag handles, type icons, label inputs, delete checkboxes, hidden sort-order fields - file-upload-queue.js: new JS replacing file-preview.js — sortable new-file queue, per-file labels, hidden order fields on submit, backward-compat legacy preview - tfe.php: renders audio (<audio>), all video formats, images, PDF, and download-only 'other' files; reads display_label; sorted by sort_order - tfe.css + form.css: styles for audio player, download files, sortable queue, drag handles, file type badges, label inputs - .htaccess + .user.ini: upload_max_filesize=512M / post_max_size=520M
2.6 KiB
2.6 KiB
XAMXAM TODO
File Upload & Display System
- DB migration 007 — add
sort_orderanddisplay_labelcolumns tothesis_files - Database.php —
getThesisFilesordered bysort_order ASC;insertThesisFileacceptsdisplay_label+sort_order; newreorderThesisFiles()andupdateThesisFileLabel()methods - ThesisCreateController — expand MIME/ext allowlist (audio: mp3/ogg/wav/flac/aac/m4a; video: webm/mov/ogv; image: gif/webp; archives: tar/gz; any-ext via octet-stream); raise max size to 500 MB; accept
file_labels[]andfile_orders[]POST fields;detectFileType()helper - ThesisEditController — same expansions; handle
file_sort_order[],file_label[id]POST fields; reorder + label-update methods called;detectFileType()helper - MediaController — expanded MIME allowlist; HTTP Range support for audio/video seeking; force-download for "other" types; inline display for known displayable types
- fieldset-files.php (shared partial) — replaced old multi-file input with sortable queue UI using SortableJS; per-file label inputs; wide accept attribute; 500 MB hint
- templates/admin/edit.php — existing files rendered as sortable list with drag handles, file type icons, label inputs, delete checkboxes; hidden
file_sort_order[]inputs; new-file queue widget - file-upload-queue.js — new JS: sortable queue for new uploads (SortableJS), per-file label fields, hidden order fields injected on submit; existing-file drag-sort; backward-compatible legacy preview for cover/banner inputs
- tfe.php (public template) — handles audio (
<audio>), video (all exts), image, PDF, "other" (download link); readsdisplay_label; files already sorted bysort_order - tfe.css — styles for
.tfe-audio,.tfe-download-file,.tfe-download-link - form.css — styles for
.tfe-file-queue,.fq-item,.admin-file-list-item(sortable), drag handles, label inputs, ghost class - PHP upload limits —
.htaccess+.user.iniinpublic/withupload_max_filesize=512M/post_max_size=520M - add.php / edit.php / partage/index.php — use
sortable.min.js+file-upload-queue.jsinstead offile-preview.js
Previously completed
- Multi-file upload for thesis files (basic)
- File access restriction system (email approval workflow)
- Share link system for student submission
- Admin CRUD for theses
- Public TFE detail page with file display
- Search and repertoire
- Tag management
- Form help blocks
- SMTP notification