diff --git a/services/arbiter-3.0/src/routes/admin/index.js b/services/arbiter-3.0/src/routes/admin/index.js index f4e28d0..d0ce6a3 100644 --- a/services/arbiter-3.0/src/routes/admin/index.js +++ b/services/arbiter-3.0/src/routes/admin/index.js @@ -27,9 +27,17 @@ const nodeHealthRouter = require('./node-health'); router.use(requireTrinityAccess); -// Make CSRF token available to all admin views -router.use((req, res, next) => { +// Make CSRF token and code queue badge available to all admin views +router.use(async (req, res, next) => { res.locals.csrfToken = req.csrfToken(); + try { + const result = await db.query( + `SELECT COUNT(*) as count FROM tasks WHERE 'code' = ANY(tags) AND status IN ('open', 'in_progress')` + ); + res.locals.codeQueueCount = parseInt(result.rows[0].count) || 0; + } catch (e) { + res.locals.codeQueueCount = 0; + } next(); }); diff --git a/services/arbiter-3.0/src/routes/admin/tasks.js b/services/arbiter-3.0/src/routes/admin/tasks.js index 8c2e8cc..d10c3f0 100644 --- a/services/arbiter-3.0/src/routes/admin/tasks.js +++ b/services/arbiter-3.0/src/routes/admin/tasks.js @@ -54,11 +54,26 @@ router.get('/', async (req, res) => { FROM tasks `); + // Session summary: tasks completed today + const todayResult = await db.query( + `SELECT COUNT(*) as count FROM tasks WHERE completed_at::date = CURRENT_DATE` + ); + const completedToday = parseInt(todayResult.rows[0].count) || 0; + + // All tasks for kanban (unfiltered active tasks) + const kanbanResult = await db.query( + `SELECT * FROM tasks ORDER BY + CASE priority WHEN 'critical' THEN 1 WHEN 'high' THEN 2 WHEN 'medium' THEN 3 WHEN 'low' THEN 4 WHEN 'wish' THEN 5 END, + task_number` + ); + res.render('admin/tasks/index', { title: 'Tasks', currentPath: '/tasks', tasks: result.rows, + allTasks: kanbanResult.rows, stats: statsResult.rows[0], + completedToday, filters: { status, priority, owner, all: req.query.all }, priorities: PRIORITIES, statuses: STATUSES, diff --git a/services/arbiter-3.0/src/views/admin/tasks/index.ejs b/services/arbiter-3.0/src/views/admin/tasks/index.ejs index 120c69e..36c3eb7 100644 --- a/services/arbiter-3.0/src/views/admin/tasks/index.ejs +++ b/services/arbiter-3.0/src/views/admin/tasks/index.ejs @@ -1,5 +1,28 @@ + + + + + +<% if (completedToday > 0) { %> +