Restart a single task from the task detail page

This commit is contained in:
Michael Lange 2019-05-20 15:36:15 -07:00
parent 416e9895d6
commit d485c040e3
2 changed files with 47 additions and 0 deletions

View File

@ -1,6 +1,7 @@
import Controller from '@ember/controller'; import Controller from '@ember/controller';
import { computed } from '@ember/object'; import { computed } from '@ember/object';
import { alias } from '@ember/object/computed'; import { alias } from '@ember/object/computed';
import { task } from 'ember-concurrency';
export default Controller.extend({ export default Controller.extend({
network: alias('model.resources.networks.firstObject'), network: alias('model.resources.networks.firstObject'),
@ -20,4 +21,25 @@ export default Controller.extend({
) )
.sortBy('name'); .sortBy('name');
}), }),
error: computed(() => {
// { title, description }
return null;
}),
onDismiss() {
this.set('error', null);
},
restartTask: task(function*() {
try {
yield this.model.restart();
} catch (err) {
console.log('OOPs', err);
this.set('error', {
title: 'Could Not Restart Task',
description: 'Your ACL token does not grant allocation lifecyle permissions.',
});
}
}),
}); });

View File

@ -1,8 +1,33 @@
{{partial "allocations/allocation/task/subnav"}} {{partial "allocations/allocation/task/subnav"}}
<section class="section"> <section class="section">
{{#if error}}
<div class="notification is-danger">
<div class="columns">
<div class="column">
<h3 data-test-error-title class="title is-4">{{error.title}}</h3>
<p data-test-error-body>{{error.description}}</p>
</div>
<div class="column is-centered is-minimum">
<button data-test-error-close class="button is-danger" onclick={{action onDismiss}}>Okay</button>
</div>
</div>
</div>
{{/if}}
<h1 class="title" data-test-title> <h1 class="title" data-test-title>
{{model.name}} {{model.name}}
<span class="bumper-left tag {{model.stateClass}}" data-test-state>{{model.state}}</span> <span class="bumper-left tag {{model.stateClass}}" data-test-state>{{model.state}}</span>
{{#if model.isRunning}}
{{two-step-button
data-test-restart
idleText="Restart"
cancelText="Cancel"
confirmText="Yes, Restart"
confirmationMessage="Are you sure? This will restart the task in-place."
awaitingConfirmation=restartTask.isRunning
disabled=restartTask.isRunning
onConfirm=(perform restartTask)}}
{{/if}}
</h1> </h1>
<div class="boxed-section is-small"> <div class="boxed-section is-small">