feat(reports): make horizontal graph scrollbars permanently visible, hide vertical scrollbar, and allow teacher document uploads

This commit is contained in:
ssbg04 committed 2026-08-30 15:21:01 +08:00
1 parent 175b959eac
commit a0ae156733
4 files changed
+219 -162

No files matched your search

+16 -16
View File
@@ -8,34 +8,34 @@ router.get('/requirements', authenticateToken, documentController.getRequirement
router.get('/statuses', authenticateToken, documentController.getStatuses);
// Print Queue routes — must be BEFORE /:id routes to avoid conflict
router.get('/print-queue', authenticateToken, authorizeRoles('admin'), documentController.getPrintQueue);
router.get('/print-history', authenticateToken, authorizeRoles('admin'), documentController.getPrintHistory);
router.get('/print-queue', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.getPrintQueue);
router.get('/print-history', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.getPrintHistory);
router.delete('/print-history/clear', authenticateToken, authorizeRoles('admin'), documentController.clearPrintHistory);
router.post('/print-queue', authenticateToken, authorizeRoles('admin'), documentController.addToPrintQueue);
router.post('/print-queue/print', authenticateToken, authorizeRoles('admin'), documentController.executePrintQueue);
router.delete('/print-queue/clear', authenticateToken, authorizeRoles('admin'), documentController.clearPrintQueue);
router.delete('/print-queue/:queueId', authenticateToken, authorizeRoles('admin'), documentController.removeFromPrintQueue);
router.post('/print-queue', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.addToPrintQueue);
router.post('/print-queue/print', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.executePrintQueue);
router.delete('/print-queue/clear', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.clearPrintQueue);
router.delete('/print-queue/:queueId', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.removeFromPrintQueue);
router.post('/upload', authenticateToken, authorizeRoles('admin'), documentController.uploadMiddleware, documentController.uploadDocument);
router.post('/upload', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.uploadMiddleware, documentController.uploadDocument);
router.get('/student/:studentId', authenticateToken, documentController.getDocumentsByStudent);
// Recycle Bin / Trash routes — must be BEFORE /:id routes
router.get('/trash', authenticateToken, documentController.getTrashDocuments);
router.post('/bulk-restore', authenticateToken, authorizeRoles('admin'), documentController.bulkRestore);
router.post('/bulk-restore', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.bulkRestore);
router.post('/bulk-permanent-delete', authenticateToken, authorizeRoles('admin'), documentController.bulkPermanentDelete);
// Bulk routes — must be BEFORE /:id routes to avoid conflict
router.post('/bulk-delete', authenticateToken, authorizeRoles('admin'), documentController.bulkDelete);
router.post('/bulk-status', authenticateToken, authorizeRoles('admin'), documentController.bulkStatus);
router.post('/bulk-print', authenticateToken, authorizeRoles('admin'), documentController.bulkAddToPrintQueue);
router.post('/bulk-copy', authenticateToken, authorizeRoles('admin'), documentController.bulkCopy);
router.post('/bulk-delete', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.bulkDelete);
router.post('/bulk-status', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.bulkStatus);
router.post('/bulk-print', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.bulkAddToPrintQueue);
router.post('/bulk-copy', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.bulkCopy);
router.get('/:id/view', authenticateToken, documentController.viewDocument);
router.post('/:id/convert-to-pdf', authenticateToken, documentController.convertToPdf);
router.post('/:id/copy', authenticateToken, authorizeRoles('admin'), documentController.copyDocument);
router.patch('/:id/status', authenticateToken, authorizeRoles('admin'), documentController.updateStatus);
router.post('/:id/restore', authenticateToken, authorizeRoles('admin'), documentController.restoreDocument);
router.post('/:id/copy', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.copyDocument);
router.patch('/:id/status', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.updateStatus);
router.post('/:id/restore', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.restoreDocument);
router.delete('/:id/permanent', authenticateToken, authorizeRoles('admin'), documentController.permanentDeleteDocument);
router.delete('/:id', authenticateToken, authorizeRoles('admin'), documentController.deleteDocument);
router.delete('/:id', authenticateToken, authorizeRoles('admin', 'teacher'), documentController.deleteDocument);
module.exports = router;