Web: add button to requeue jobs

This commit is contained in:
Sybren A. Stüvel 2022-04-21 17:15:31 +02:00
parent 698db0bf7c
commit eeb8305de0
2 changed files with 9 additions and 0 deletions

View File

@ -2,6 +2,7 @@
<section class="action-bar jobs"> <section class="action-bar jobs">
<button class="action delete dangerous" :disabled="!jobs.canDelete" v-on:click="onButtonDelete">Delete</button> <button class="action delete dangerous" :disabled="!jobs.canDelete" v-on:click="onButtonDelete">Delete</button>
<button class="action cancel" :disabled="!jobs.canCancel" v-on:click="onButtonCancel">Cancel</button> <button class="action cancel" :disabled="!jobs.canCancel" v-on:click="onButtonCancel">Cancel</button>
<button class="action requeue" :disabled="!jobs.canRequeue" v-on:click="onButtonRequeue">Requeue</button>
</section> </section>
</template> </template>
@ -26,6 +27,10 @@ export default {
return this._handleJobActionPromise( return this._handleJobActionPromise(
this.jobs.cancelJobs(), "marked for cancellation"); this.jobs.cancelJobs(), "marked for cancellation");
}, },
onButtonRequeue() {
return this._handleJobActionPromise(
this.jobs.requeueJobs(), "requeued");
},
_handleJobActionPromise(promise, description) { _handleJobActionPromise(promise, description) {
const numJobs = this.jobs.numSelected; const numJobs = this.jobs.numSelected;

View File

@ -25,6 +25,9 @@ export const useJobs = defineStore('jobs', {
canCancel() { canCancel() {
return this._anyJobWithStatus(["queued", "active", "failed"]) return this._anyJobWithStatus(["queued", "active", "failed"])
}, },
canRequeue() {
return this._anyJobWithStatus(["canceled", "completed", "failed", "paused"])
},
}, },
actions: { actions: {
// Selection of jobs. // Selection of jobs.
@ -56,6 +59,7 @@ export const useJobs = defineStore('jobs', {
return deletionPromise; return deletionPromise;
}, },
cancelJobs() { return this._setJobStatus("cancel-requested"); }, cancelJobs() { return this._setJobStatus("cancel-requested"); },
requeueJobs() { return this._setJobStatus("requeued"); },
// Internal methods. // Internal methods.