summaryrefslogtreecommitdiff
path: root/public/js/forms.js
blob: d75a439134481cb2dbf17fefd5211d0f922a3ac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**
 * Runs through the DOM under the element with the given id, finds all
 * checkboxes and sets them 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
 */
function checkAll(id, checked) {
    var obj = document.getElementById(id);
    var boxes = obj.getElementsByTagName("input");
    for (var i = 0; i < boxes.length; i++) {
        if (boxes[i].type === "checkbox" && !boxes[i].disabled) {
            boxes[i].checked = checked;
        }
    }
}

/**
 * @param {moment} date
 */
function formatDay(date) {
    return date.format('YYYY-MM-DD')
}

/**
 * @param {moment} date
 */
function formatTime(date) {
    return date.format('HH:mm')
}

/**
 * @param {moment} from
 * @param {moment} to
 */
function setInput(from, to) {
    var from_day = $('#start_day'), from_time = $('#start_time'), to_day = $('#end_day'), to_time = $('#end_time');

    from_day.val(formatDay(from));
    from_time.val(formatTime(from));

    to_day.val(formatDay(to));
    to_time.val(formatTime(to));
}

function 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)
}

function 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;
    });
});