diff --git a/src/jio/features/jobChecker.js b/src/jio/features/jobChecker.js index 5b5538c3285603ad76fdf1b1116ad57e8a3897c1..de5c5b3073c778ffd4cb7d785a46e8481727a618 100644 --- a/src/jio/features/jobChecker.js +++ b/src/jio/features/jobChecker.js @@ -1,5 +1,5 @@ /*jslint indent: 2, maxlen: 80, sloppy: true, nomen: true, unparam: true */ -/*global arrayInsert, indexOf, deepClone, defaults */ +/*global arrayInsert, indexOf, deepClone, defaults, IODeferred */ // creates // - some defaults job rule actions @@ -44,8 +44,9 @@ function enableJobChecker(jio, shared, options) { new_job.modified = new Date(); }, deny: function (original_job, new_job) { - new_job.state = 'running'; - new_job.command.reject( + new_job.state = 'fail'; + new_job.modified = new Date(); + IODeferred.createFromParam(new_job).reject( 'precondition_failed', 'command denied', 'Command rejected by the job checker.' diff --git a/src/jio/features/jobQueue.js b/src/jio/features/jobQueue.js index a372d01383936a9b39adf390d2c50e05816c1a17..8892677a867162c8526dcc3f7801da72a5562027 100644 --- a/src/jio/features/jobQueue.js +++ b/src/jio/features/jobQueue.js @@ -1,6 +1,6 @@ /*jslint indent: 2, maxlen: 80, sloppy: true, nomen: true, unparam: true */ /*global arrayExtend, localStorage, Workspace, uniqueJSONStringify, JobQueue, - constants */ + constants, indexOf */ function enableJobQueue(jio, shared, options) { @@ -40,11 +40,13 @@ function enableJobQueue(jio, shared, options) { ); shared.on('job', function (param) { - if (!param.stored) { - shared.job_queue.load(); - shared.job_queue.post(param); - shared.job_queue.save(); - param.stored = true; + if (indexOf(param.state, ['fail', 'done']) === -1) { + if (!param.stored) { + shared.job_queue.load(); + shared.job_queue.post(param); + shared.job_queue.save(); + param.stored = true; + } } });