95 lines
2.0 KiB
JavaScript
95 lines
2.0 KiB
JavaScript
/**
|
|
* Sets all checkboxes to the wanted state
|
|
*
|
|
* @param {string} id Id of the element containing all the checkboxes
|
|
* @param {boolean} checked True if the checkboxes should be checked
|
|
*/
|
|
global.checkAll = (id, checked) => {
|
|
$('#' + id + ' input[type="checkbox"]').each(function () {
|
|
this.checked = checked;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Sets the checkboxes according to the given type
|
|
*
|
|
* @param {string} id The elements ID
|
|
* @param {list} shifts_list A list of numbers
|
|
*/
|
|
global.checkOwnTypes = (id, shifts_list) => {
|
|
$('#' + id + ' input[type="checkbox"]').each(function () {
|
|
this.checked = $.inArray(parseInt(this.value), shifts_list) != -1;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {moment} date
|
|
*/
|
|
global.formatDay = (date) => {
|
|
return date.format('YYYY-MM-DD');
|
|
}
|
|
|
|
/**
|
|
* @param {moment} date
|
|
*/
|
|
global.formatTime = (date) => {
|
|
return date.format('HH:mm');
|
|
}
|
|
|
|
/**
|
|
* @param {moment} from
|
|
* @param {moment} to
|
|
*/
|
|
global.setInput = (from, to) => {
|
|
var fromDay = $('#start_day'), fromTime = $('#start_time'), toDay = $('#end_day'), toTime = $('#end_time');
|
|
|
|
fromDay.val(formatDay(from));
|
|
fromTime.val(formatTime(from));
|
|
|
|
toDay.val(formatDay(to));
|
|
toTime.val(formatTime(to));
|
|
}
|
|
|
|
global.setDay = (days) => {
|
|
days = days || 0;
|
|
|
|
var from = moment();
|
|
from.hours(0).minutes(0).seconds(0);
|
|
|
|
from.add(days, 'd');
|
|
|
|
var to = from.clone();
|
|
to.hours(23).minutes(59);
|
|
|
|
setInput(from, to);
|
|
}
|
|
|
|
global.setHours = (hours) => {
|
|
hours = hours || 1;
|
|
|
|
var from = moment();
|
|
var to = from.clone();
|
|
|
|
to.add(hours, 'h');
|
|
if (to < from) {
|
|
setInput(to, from);
|
|
return;
|
|
}
|
|
|
|
setInput(from, to);
|
|
}
|
|
|
|
$(function () {
|
|
/**
|
|
* Disable every submit button after clicking (to prevent double-clicking)
|
|
*/
|
|
$('form').submit(function (ev) {
|
|
$('input[type="submit"]').prop('readonly', true).addClass('disabled');
|
|
return true;
|
|
});
|
|
|
|
$('.dropdown-menu').css('max-height', function () {
|
|
return ($(window).height() - 50) + 'px';
|
|
}).css('overflow-y', 'scroll');
|
|
});
|