atr/blueprints/admin/templates/tasks.html (78 lines of code) (raw):

{% extends "layouts/base-admin.html" %} {% block title %} Executed Tasks ~ ATR {% endblock %} {% block stylesheets %} {{ super() }} <link rel="stylesheet" href="{{ url_for('static', filename='css/mermaid.min.css') }}" /> <style> .gridjs-pages button { color: unset; } </style> {% endblock stylesheets %} {% block content %} <h1>Executed Background Tasks</h1> <div id="task-table"></div> {% endblock content %} {% block javascripts %} {{ super() }} <script src="{{ url_for('static', filename='js/gridjs.production.min.js') }}"></script> <script> new gridjs.Grid({ columns: [ { name: 'ID', width: '40px' }, { name: 'Task Type', width: '140px' }, { name: 'Task Status', width: '60px' }, { name: 'Added', width: '100px', formatter: (cell) => `${new Date(cell).toISOString()}` }, { name: 'Started', width: '100px', formatter: (cell) => `${new Date(cell).toISOString()}` }, { name: 'Completed', width: '100px', formatter: (cell) => `${new Date(cell).toISOString()}` } ], autoWidth: false, resizable: true, style: { table: { // TODO: Need a better fix here // 'white-space': 'nowrap' } }, search: true, pagination: { limit: 15, server: { url: (prev, page, limit) => `${prev}?limit=${limit}&offset=${page * limit}` } }, // sort: true, server: { url: '/api/tasks', then: data => data.data.map(task => [ task.id, task.task_type, task.status, task.added, task.started, task.completed ]), total: data => data.count } }).render(document.getElementById("task-table")); </script> {% endblock javascripts %}