diff --git a/ui/app/adapters/job.js b/ui/app/adapters/job.js index a868db7dc..984564572 100644 --- a/ui/app/adapters/job.js +++ b/ui/app/adapters/job.js @@ -74,14 +74,24 @@ export default Watchable.extend({ forcePeriodic(job) { if (job.get('periodic')) { - const [path, params] = this.buildURL('job', job.get('id'), job, 'findRecord').split('?'); - let url = `${path}/periodic/force`; - - if (params) { - url += `?${params}`; - } - + const url = addToPath(this.urlForFindRecord(job.get('id'), 'job'), '/periodic/force'); return this.ajax(url, 'POST'); } }, + + stop(job) { + const url = this.urlForFindRecord(job.get('id'), 'job'); + return this.ajax(url, 'DELETE'); + }, }); + +function addToPath(url, extension = '') { + const [path, params] = url.split('?'); + let newUrl = `${path}${extension}`; + + if (params) { + newUrl += `?${params}`; + } + + return newUrl; +} diff --git a/ui/app/models/job.js b/ui/app/models/job.js index 8a24bcaa2..b8ba9670f 100644 --- a/ui/app/models/job.js +++ b/ui/app/models/job.js @@ -162,6 +162,10 @@ export default Model.extend({ return this.store.adapterFor('job').forcePeriodic(this); }, + stop() { + return this.store.adapterFor('job').stop(this); + }, + statusClass: computed('status', function() { const classMap = { pending: 'is-pending',