UX and architecture fixes: bulk-delete, template guard, statuses config
Bug fixes: - bulk-delete action called undefined bulkDelete() — wired to the existing showBulkDeleteModal() so the confirmation modal actually shows UX: - Template loader now checks for existing title/description and asks for confirmation before overwriting user-typed content - Visibility select shows a dynamic hint paragraph that updates when the user changes the selection (public/internal/confidential) Architecture: - TICKET_STATUSES added to config as single source of truth; all hardcoded ['Open','Pending','In Progress','Closed'] arrays in DashboardView now read from config; bulk-status modal in dashboard.js reads window.TICKET_STATUSES (set from PHP) with array fallback - ASSET_VERSION now auto-computed from max mtime of dashboard/ticket CSS+JS files so browsers always pick up changes on deploy; manual override still available via ASSET_VERSION in .env - Removed 10 dead standalone stat methods from StatsModel (getOpenTicketCount, getClosedTicketCount, getTicketsByPriority, etc.) — all superseded by the consolidated fetchAllStats() queries, never called externally Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+17
-2
@@ -25,8 +25,23 @@ $GLOBALS['config'] = [
|
||||
'APP_SUBTITLE' => $envVars['APP_SUBTITLE'] ?? 'LotusGuild Infrastructure',
|
||||
'APP_VERSION' => $envVars['APP_VERSION'] ?? '1.2',
|
||||
|
||||
// Asset cache-busting version string (bump when CSS/JS changes)
|
||||
'ASSET_VERSION' => $envVars['ASSET_VERSION'] ?? '20260329',
|
||||
// Asset cache-busting version — auto-computed from dashboard.js/css mtime so
|
||||
// browsers always pick up changes on deploy. Override via ASSET_VERSION in .env.
|
||||
'ASSET_VERSION' => (function() use ($envVars) {
|
||||
if (!empty($envVars['ASSET_VERSION'])) return $envVars['ASSET_VERSION'];
|
||||
$files = [
|
||||
__DIR__ . '/../assets/css/dashboard.css',
|
||||
__DIR__ . '/../assets/css/ticket.css',
|
||||
__DIR__ . '/../assets/js/dashboard.js',
|
||||
__DIR__ . '/../assets/js/ticket.js',
|
||||
];
|
||||
$mtime = 0;
|
||||
foreach ($files as $f) { if (file_exists($f)) $mtime = max($mtime, filemtime($f)); }
|
||||
return $mtime ?: '20260329';
|
||||
})(),
|
||||
|
||||
// Canonical ticket statuses — single source of truth used by views and JS
|
||||
'TICKET_STATUSES' => ['Open', 'Pending', 'In Progress', 'Closed'],
|
||||
|
||||
// Database settings
|
||||
'DB_HOST' => $envVars['DB_HOST'] ?? 'localhost',
|
||||
|
||||
Reference in New Issue
Block a user