diff --git a/src/server/views/dashboard/queueJobsByState.js b/src/server/views/dashboard/queueJobsByState.js index d0e22bd8..2a4933e9 100644 --- a/src/server/views/dashboard/queueJobsByState.js +++ b/src/server/views/dashboard/queueJobsByState.js @@ -80,6 +80,7 @@ async function _html(req, res) { const page = parseInt(req.query.page, 10) || 1; const pageSize = parseInt(req.query.pageSize, 10) || 100; + const order = req.query.order || 'desc'; const startId = (page - 1) * pageSize; const endId = startId + pageSize - 1; @@ -100,7 +101,8 @@ async function _html(req, res) { // Filter out Bee jobs that have already been removed by the time the promise resolves jobs = jobs.filter((job) => job); } else { - jobs = await queue[`get${_.capitalize(state)}`](startId, endId); + const stateTypes = state === 'waiting' ? ['wait', 'paused'] : state; + jobs = await queue.getJobs(stateTypes, startId, endId, order === 'asc'); await Promise.all( jobs.map(async (job) => { const logs = await queue.getJobLogs(job.id); @@ -130,10 +132,12 @@ async function _html(req, res) { jobs, jobsInStateCount: jobCounts[state], disablePagination: queue.IS_BEE && (state === 'succeeded' || state === 'failed'), + disableOrdering: queue.IS_BEE, currentPage: page, pages, pageSize, lastPage: _.last(pages), + order, }); } diff --git a/src/server/views/dashboard/templates/queueJobsByState.hbs b/src/server/views/dashboard/templates/queueJobsByState.hbs index 77736fa4..a411c5a5 100644 --- a/src/server/views/dashboard/templates/queueJobsByState.hbs +++ b/src/server/views/dashboard/templates/queueJobsByState.hbs @@ -5,75 +5,115 @@
{{#unless disablePagination}} - {{else}} - Bee-queue does not support pagination for {{ state }} queues — currently displaying up to {{ pageSize }} jobs. To change count, use "Size" dropdown. + Bee-queue does not support pagination for {{ state }} queues — currently displaying up to {{ pageSize }} + jobs. To change count, use "Size" dropdown. {{/unless}}
- + Dump jobs to JSON (limited to 1000) - {{#eq state 'failed'}} - + {{/eq}} +
- {{#if disablePagination}} - - {{else}} - - {{/if}} - + {{/if}} + +
+ {{#unless disableOrdering}} +
+ +
+ {{/unless}} +
@@ -87,28 +127,28 @@ {{#each jobs}} -
  • -
    - - -
    +
  • +
    + + +
    - -

    - {{#if this.id}}{{ this.id }}{{else}}missing id{{/if}} - {{#if this.data.arenaName}} - {{ this.data.arenaName }} - {{else if this.name}} - {{ this.name }} - {{else if this.data.name}} - {{ this.data.name }} - {{/if}} -

    -
    -
    - {{~> dashboard/jobDetails this basePath=../basePath displayJobInline=true queueName=../queueName queueHost=../queueHost jobState=../state }} -
    -
  • + +

    + {{#if this.id}}{{ this.id }}{{else}}missing id{{/if}} + {{#if this.data.arenaName}} + {{ this.data.arenaName }} + {{else if this.name}} + {{ this.name }} + {{else if this.data.name}} + {{ this.data.name }} + {{/if}} +

    +
    +
    + {{~> dashboard/jobDetails this basePath=../basePath displayJobInline=true queueName=../queueName queueHost=../queueHost jobState=../state }} +
    + {{/each}} @@ -116,11 +156,13 @@

    - Hint: + Click to select a range of jobs. + Hint: + Click to select a range of + jobs.

    {{#contentFor 'sidebar'}} -
  • Queues Overview
  • -
  • Queue {{ queueHost }}/{{ queueName }}
  • -
  • {{capitalize state}} Jobs
  • -{{/contentFor}} +
  • Queues Overview
  • +
  • Queue + {{ queueHost }}/{{ queueName }}
  • +
  • {{capitalize state}} Jobs
  • +{{/contentFor}} \ No newline at end of file