
Callback functions for restart and cancel where improperly updated while switching from coffeescript to javascript.
68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
import Ember from 'ember';
|
|
|
|
export default Ember.Mixin.create({
|
|
restarting: false,
|
|
cancelling: false,
|
|
|
|
userHasPermissionForRepo: function() {
|
|
var repo, user;
|
|
repo = this.get('repo');
|
|
user = this.get('user');
|
|
if (user && repo) {
|
|
return user.hasAccessToRepo(repo);
|
|
}
|
|
}.property('user.permissions.[]', 'repo', 'user'),
|
|
|
|
canCancel: function() {
|
|
return this.get('item.canCancel') && this.get('userHasPermissionForRepo');
|
|
}.property('userHasPermissionForRepo', 'item.canCancel'),
|
|
|
|
canRestart: function() {
|
|
return this.get('item.canRestart') && this.get('userHasPermissionForRepo');
|
|
}.property('userHasPermissionForRepo', 'item.canRestart'),
|
|
|
|
actions: {
|
|
restart: function() {
|
|
var onFinished;
|
|
if (this.get('restarting')) {
|
|
return;
|
|
}
|
|
this.set('restarting', true);
|
|
onFinished = () => {
|
|
this.set('restarting', false);
|
|
};
|
|
return this.get('item').restart().then(onFinished, onFinished);
|
|
},
|
|
cancel: function() {
|
|
var type;
|
|
if (this.get('cancelling')) {
|
|
return;
|
|
}
|
|
this.set('cancelling', true);
|
|
|
|
type = this.get('type');
|
|
return this.get('item').cancel().then(() => {
|
|
this.set('cancelling', false);
|
|
return Travis.flash({
|
|
success: (type.capitalize()) + " has been successfully canceled."
|
|
});
|
|
}, (xhr) => {
|
|
this.set('cancelling', false);
|
|
if (xhr.status === 422) {
|
|
return Travis.flash({
|
|
error: "This " + type + " can't be canceled"
|
|
});
|
|
} else if (xhr.status === 403) {
|
|
return Travis.flash({
|
|
error: "You don't have sufficient access to cancel this " + type
|
|
});
|
|
} else {
|
|
return Travis.flash({
|
|
error: "An error occured when canceling the " + type
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|