117 lines
2.9 KiB
JavaScript
117 lines
2.9 KiB
JavaScript
|
var announcementsCreateForm = function () {
|
||
|
return {
|
||
|
body: '',
|
||
|
action_text: '',
|
||
|
action_url: ''
|
||
|
};
|
||
|
};
|
||
|
|
||
|
module.exports = {
|
||
|
/**
|
||
|
* The component's data.
|
||
|
*/
|
||
|
data() {
|
||
|
return {
|
||
|
announcements: [],
|
||
|
updatingAnnouncement: null,
|
||
|
deletingAnnouncement: null,
|
||
|
|
||
|
createForm: new SparkForm(announcementsCreateForm()),
|
||
|
updateForm: new SparkForm(announcementsCreateForm()),
|
||
|
|
||
|
deleteForm: new SparkForm({})
|
||
|
};
|
||
|
},
|
||
|
|
||
|
|
||
|
/**
|
||
|
* The component has been created by Vue.
|
||
|
*/
|
||
|
created() {
|
||
|
var self = this;
|
||
|
|
||
|
Bus.$on('sparkHashChanged', function (hash, parameters) {
|
||
|
if (hash == 'announcements' && self.announcements.length === 0) {
|
||
|
self.getAnnouncements();
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
|
||
|
|
||
|
methods: {
|
||
|
/**
|
||
|
* Get all of the announcements.
|
||
|
*/
|
||
|
getAnnouncements() {
|
||
|
axios.get('/spark/kiosk/announcements')
|
||
|
.then(response => {
|
||
|
this.announcements = response.data;
|
||
|
});
|
||
|
},
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Create a new announcement.
|
||
|
*/
|
||
|
create() {
|
||
|
Spark.post('/spark/kiosk/announcements', this.createForm)
|
||
|
.then(() => {
|
||
|
this.createForm = new SparkForm(announcementsCreateForm());
|
||
|
|
||
|
this.getAnnouncements();
|
||
|
});
|
||
|
},
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Edit the given announcement.
|
||
|
*/
|
||
|
editAnnouncement(announcement) {
|
||
|
this.updatingAnnouncement = announcement;
|
||
|
|
||
|
this.updateForm.icon = announcement.icon;
|
||
|
this.updateForm.body = announcement.body;
|
||
|
this.updateForm.action_text = announcement.action_text;
|
||
|
this.updateForm.action_url = announcement.action_url;
|
||
|
|
||
|
$('#modal-update-announcement').modal('show');
|
||
|
},
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Update the specified announcement.
|
||
|
*/
|
||
|
update() {
|
||
|
Spark.put('/spark/kiosk/announcements/' + this.updatingAnnouncement.id, this.updateForm)
|
||
|
.then(() => {
|
||
|
this.getAnnouncements();
|
||
|
|
||
|
$('#modal-update-announcement').modal('hide');
|
||
|
});
|
||
|
},
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Show the approval dialog for deleting an announcement.
|
||
|
*/
|
||
|
approveAnnouncementDelete(announcement) {
|
||
|
this.deletingAnnouncement = announcement;
|
||
|
|
||
|
$('#modal-delete-announcement').modal('show');
|
||
|
},
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Delete the specified announcement.
|
||
|
*/
|
||
|
deleteAnnouncement() {
|
||
|
Spark.delete('/spark/kiosk/announcements/' + this.deletingAnnouncement.id, this.deleteForm)
|
||
|
.then(() => {
|
||
|
this.getAnnouncements();
|
||
|
|
||
|
$('#modal-delete-announcement').modal('hide');
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
};
|