1
0
mirror of https://github.com/beestat/app.git synced 2025-05-24 02:14:03 -04:00
beestat/js/component/modal/delete_floor_plan.js

101 lines
2.6 KiB
JavaScript

/**
* Delete a floor plan.
*
* @param {number} floor_plan_id
*/
beestat.component.modal.delete_floor_plan = function(floor_plan_id) {
this.floor_plan_id_ = floor_plan_id;
beestat.component.modal.apply(this, arguments);
};
beestat.extend(beestat.component.modal.delete_floor_plan, beestat.component.modal);
/**
* Decorate
*
* @param {rocket.Elements} parent
*/
beestat.component.modal.delete_floor_plan.prototype.decorate_contents_ = function(parent) {
const p = document.createElement('p');
p.innerText = 'Are you sure you want to delete this floor plan?';
parent.appendChild(p);
new beestat.component.tile.floor_plan(this.floor_plan_id_)
.set_background_color(beestat.style.color.bluegray.base)
.set_text_color('#fff')
.render(parent);
};
/**
* Get title.
*
* @return {string} The title.
*/
beestat.component.modal.delete_floor_plan.prototype.get_title_ = function() {
return 'Delete Floor Plan';
};
/**
* Get the buttons that go on the bottom of this modal.
*
* @return {[beestat.component.button]} The buttons.
*/
beestat.component.modal.delete_floor_plan.prototype.get_buttons_ = function() {
const self = this;
const cancel_button = new beestat.component.tile()
.set_background_color('#fff')
.set_text_color(beestat.style.color.gray.base)
.set_text_hover_color(beestat.style.color.red.base)
.set_shadow(false)
.set_text('Cancel')
.addEventListener('click', function() {
self.dispose();
});
const delete_button = new beestat.component.tile()
.set_background_color(beestat.style.color.red.base)
.set_background_hover_color(beestat.style.color.red.light)
.set_text_color('#fff')
.set_text('Delete Floor Plan')
.addEventListener('click', function() {
this
.set_background_color(beestat.style.color.gray.base)
.set_background_hover_color()
.removeEventListener('click');
new beestat.api()
.add_call(
'floor_plan',
'delete',
{
'id': self.floor_plan_id_
},
'delete_floor_plan'
)
.add_call(
'floor_plan',
'read_id',
{},
'floor_plan'
)
.set_callback(function(response) {
self.dispose();
if (Object.keys(response.floor_plan).length > 0) {
beestat.setting('visualize.floor_plan_id', Object.values(response.floor_plan)[0].floor_plan_id);
} else {
beestat.setting('visualize.floor_plan_id', null);
}
beestat.cache.set('floor_plan', response.floor_plan);
})
.send();
});
return [
cancel_button,
delete_button
];
};