1
0
mirror of https://github.com/beestat/app.git synced 2025-05-23 18:04:14 -04:00
beestat/js/component/modal/change_floor_plan.js
2022-08-04 21:32:10 -04:00

123 lines
3.2 KiB
JavaScript

/**
* Change floor plan
*/
beestat.component.modal.change_floor_plan = function() {
beestat.component.modal.apply(this, arguments);
};
beestat.extend(beestat.component.modal.change_floor_plan, beestat.component.modal);
beestat.component.modal.change_floor_plan.prototype.decorate_contents_ = function(parent) {
var self = this;
var container = $.createElement('div')
.style({
'display': 'grid',
'grid-template-columns': 'repeat(auto-fill, minmax(200px, 1fr))',
'margin': '0 0 16px -16px'
});
parent.appendChild(container);
var sorted_floor_plans = $.values(beestat.cache.floor_plan)
.sort(function(a, b) {
return a.name > b.name;
});
sorted_floor_plans.forEach(function(floor_plan) {
var div = $.createElement('div')
.style({
'padding': '16px 0 0 16px'
});
container.appendChild(div);
self.decorate_floor_plan_(div, floor_plan.floor_plan_id);
});
};
/**
* Decorate the floor plan.
*
* @param {rocket.Elements} parent
* @param {number} floor_plan_id
*/
beestat.component.modal.change_floor_plan.prototype.decorate_floor_plan_ = function(parent, floor_plan_id) {
const self = this;
var floor_plan = beestat.cache.floor_plan[floor_plan_id];
var container_height = 60;
var gutter = beestat.style.size.gutter / 2;
var floor_plan_height = container_height - (gutter * 2);
var container = $.createElement('div')
.style({
'height': container_height,
'border-radius': container_height,
'padding-right': (beestat.style.size.gutter / 2),
'transition': 'background 200ms ease',
'user-select': 'none'
});
if (floor_plan_id == beestat.cache.floor_plan[beestat.setting('floor_plan_id')].floor_plan_id) {
container.style({
'background': '#4b6584',
'color': '#fff'
});
} else {
container.style({
'cursor': 'pointer'
});
container
.addEventListener('mouseover', function() {
container.style('background', beestat.style.color.gray.base);
})
.addEventListener('mouseout', function() {
container.style('background', '');
})
.addEventListener('click', function() {
container.removeEventListener();
self.dispose();
beestat.setting('floor_plan_id', floor_plan_id);
});
}
parent.appendChild(container);
var left = $.createElement('div')
.style({
'background': beestat.style.color.bluegray.dark,
'font-weight': beestat.style.font_weight.light,
'border-radius': '50%',
'width': floor_plan_height,
'height': floor_plan_height,
'line-height': floor_plan_height,
'color': '#fff',
'font-size': '20px',
'text-align': 'center',
'float': 'left',
'margin': gutter
})
.innerHTML('');
container.appendChild(left);
var right = $.createElement('div')
.style({
'line-height': container_height,
'font-weight': beestat.style.font_weight.bold,
'white-space': 'nowrap',
'overflow': 'hidden',
'text-overflow': 'ellipsis'
})
.innerHTML(floor_plan.name);
container.appendChild(right);
};
/**
* Get title.
*
* @return {string} Title.
*/
beestat.component.modal.change_floor_plan.prototype.get_title_ = function() {
return 'Change Floor Plan';
};