From c0e0d590c02f986d0671551fed28dbdcfb379e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?rogger=20andr=C3=A9=20valverde=20flores?= Date: Sun, 11 Apr 2021 17:29:45 -0500 Subject: [PATCH] feat(promote): adding Promote Jobs button --- .gitignore | 1 + public/dashboard.js | 4 +++- src/server/views/api/bulkAction.js | 2 +- src/server/views/api/bulkJobsPromote.js | 3 +++ src/server/views/api/index.js | 2 ++ src/server/views/dashboard/queueJobsByState.js | 2 ++ src/server/views/dashboard/templates/queueJobsByState.hbs | 6 ++++++ 7 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 src/server/views/api/bulkJobsPromote.js diff --git a/.gitignore b/.gitignore index d14d9a29..314eccf7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ package-lock.json .idea *.tern-port *.sublime-workspace +dump.rdb \ No newline at end of file diff --git a/public/dashboard.js b/public/dashboard.js index 1d1c5d17..8a4d3011 100644 --- a/public/dashboard.js +++ b/public/dashboard.js @@ -169,7 +169,9 @@ $(document).ready(() => { method: action === 'remove' ? 'POST' : 'PATCH', url: `${basePath}/api/queue/${encodeURIComponent( queueHost - )}/${encodeURIComponent(queueName)}/job/bulk`, + )}/${encodeURIComponent(queueName)}/${ + action === 'promote' ? 'delayed/' : '' + }job/bulk`, data: JSON.stringify(data), contentType: 'application/json', }) diff --git a/src/server/views/api/bulkAction.js b/src/server/views/api/bulkAction.js index 9b9875db..ae8ae206 100644 --- a/src/server/views/api/bulkAction.js +++ b/src/server/views/api/bulkAction.js @@ -1,6 +1,6 @@ const _ = require('lodash'); -const ACTIONS = ['remove', 'retry']; +const ACTIONS = ['remove', 'retry', 'promote']; function bulkAction(action) { return async function handler(req, res) { diff --git a/src/server/views/api/bulkJobsPromote.js b/src/server/views/api/bulkJobsPromote.js new file mode 100644 index 00000000..daa04cdf --- /dev/null +++ b/src/server/views/api/bulkJobsPromote.js @@ -0,0 +1,3 @@ +const bulkAction = require('./bulkAction'); + +module.exports = bulkAction('promote'); diff --git a/src/server/views/api/index.js b/src/server/views/api/index.js index 046b5b3b..b2ad9235 100644 --- a/src/server/views/api/index.js +++ b/src/server/views/api/index.js @@ -4,12 +4,14 @@ const jobAdd = require('./jobAdd'); const jobPromote = require('./jobPromote'); const jobRetry = require('./jobRetry'); const jobRemove = require('./jobRemove'); +const bulkJobsPromote = require('./bulkJobsPromote'); const bulkJobsRemove = require('./bulkJobsRemove'); const bulkJobsRetry = require('./bulkJobsRetry'); router.post('/queue/:queueHost/:queueName/job', jobAdd); router.post('/queue/:queueHost/:queueName/job/bulk', bulkJobsRemove); router.patch('/queue/:queueHost/:queueName/job/bulk', bulkJobsRetry); +router.patch('/queue/:queueHost/:queueName/delayed/job/bulk', bulkJobsPromote); router.patch('/queue/:queueHost/:queueName/delayed/job/:id', jobPromote); router.patch('/queue/:queueHost/:queueName/job/:id', jobRetry); router.delete('/queue/:queueHost/:queueName/job/:id', jobRemove); diff --git a/src/server/views/dashboard/queueJobsByState.js b/src/server/views/dashboard/queueJobsByState.js index b5fb55eb..41762866 100644 --- a/src/server/views/dashboard/queueJobsByState.js +++ b/src/server/views/dashboard/queueJobsByState.js @@ -121,6 +121,7 @@ async function _html(req, res) { pages.push(_.last(pages) + 1); } pages = pages.filter((page) => page <= _.ceil(jobCounts[state] / pageSize)); + const disablePromote = !(state === 'delayed' && !queue.IS_BEE); const disableRetry = !( state === 'failed' || (state === 'delayed' && !queue.IS_BEE) @@ -136,6 +137,7 @@ async function _html(req, res) { disablePagination: queue.IS_BEE && (state === 'succeeded' || state === 'failed'), disableOrdering: queue.IS_BEE, + disablePromote, disableRetry, currentPage: page, pages, diff --git a/src/server/views/dashboard/templates/queueJobsByState.hbs b/src/server/views/dashboard/templates/queueJobsByState.hbs index b02262fb..1d57044b 100644 --- a/src/server/views/dashboard/templates/queueJobsByState.hbs +++ b/src/server/views/dashboard/templates/queueJobsByState.hbs @@ -56,6 +56,12 @@ Retry Jobs {{/unless}} + {{#unless disablePromote}} + + {{/unless}}