104 lines
2.5 KiB
JavaScript
Vendored
104 lines
2.5 KiB
JavaScript
Vendored
module.exports = {
|
|
props: ['tokens', 'availableAbilities'],
|
|
|
|
|
|
/**
|
|
* The component's data.
|
|
*/
|
|
data() {
|
|
return {
|
|
updatingToken: null,
|
|
deletingToken: null,
|
|
|
|
updateTokenForm: new SparkForm({
|
|
name: '',
|
|
abilities: []
|
|
}),
|
|
|
|
deleteTokenForm: new SparkForm({})
|
|
}
|
|
},
|
|
|
|
|
|
methods: {
|
|
/**
|
|
* Show the edit token modal.
|
|
*/
|
|
editToken(token) {
|
|
this.updatingToken = token;
|
|
|
|
this.initializeUpdateFormWith(token);
|
|
|
|
$('#modal-update-token').modal('show');
|
|
},
|
|
|
|
|
|
/**
|
|
* Initialize the edit form with the given token.
|
|
*/
|
|
initializeUpdateFormWith(token) {
|
|
this.updateTokenForm.name = token.name;
|
|
|
|
this.updateTokenForm.abilities = token.metadata.abilities;
|
|
},
|
|
|
|
|
|
/**
|
|
* Update the token being edited.
|
|
*/
|
|
updateToken() {
|
|
Spark.put(`/settings/api/token/${this.updatingToken.id}`, this.updateTokenForm)
|
|
.then(response => {
|
|
this.$parent.$emit('updateTokens');
|
|
|
|
$('#modal-update-token').modal('hide');
|
|
})
|
|
},
|
|
|
|
|
|
/**
|
|
* Toggle the ability on the current token being edited.
|
|
*/
|
|
toggleAbility(ability) {
|
|
if (this.abilityIsAssigned(ability)) {
|
|
this.updateTokenForm.abilities = _.reject(
|
|
this.updateTokenForm.abilities, a => a == ability
|
|
);
|
|
} else {
|
|
this.updateTokenForm.abilities.push(ability);
|
|
}
|
|
},
|
|
|
|
|
|
/**
|
|
* Determine if the ability has been assigned to the token being edited.
|
|
*/
|
|
abilityIsAssigned(ability) {
|
|
return _.contains(this.updateTokenForm.abilities, ability);
|
|
},
|
|
|
|
|
|
/**
|
|
* Get user confirmation that the token should be deleted.
|
|
*/
|
|
approveTokenDelete(token) {
|
|
this.deletingToken = token;
|
|
|
|
$('#modal-delete-token').modal('show');
|
|
},
|
|
|
|
|
|
/**
|
|
* Delete the specified token.
|
|
*/
|
|
deleteToken() {
|
|
Spark.delete(`/settings/api/token/${this.deletingToken.id}`, this.deleteTokenForm)
|
|
.then(() => {
|
|
this.$parent.$emit('updateTokens');
|
|
|
|
$('#modal-delete-token').modal('hide');
|
|
});
|
|
}
|
|
}
|
|
};
|