diff options
-rw-r--r-- | includes/pages/user_shifts.php | 4 | ||||
-rw-r--r-- | public/js/forms.js | 32 |
2 files changed, 20 insertions, 16 deletions
diff --git a/includes/pages/user_shifts.php b/includes/pages/user_shifts.php index e4d20fdc..f6167cb3 100644 --- a/includes/pages/user_shifts.php +++ b/includes/pages/user_shifts.php @@ -856,8 +856,8 @@ function make_select($items, $selected, $name, $title = null) { $html = '<div id="selection_' . $name . '" class="selection ' . $name . '">' . "\n"; $html .= implode("\n", $html_items); $html .= buttons(array( - button("javascript: check_all('selection_" . $name . "')", _("All"), ""), - button("javascript: uncheck_all('selection_" . $name . "')", _("None"), "") + button("javascript: checkAll('selection_" . $name . "', true)", _("All"), ""), + button("javascript: checkAll('selection_" . $name . "', false)", _("None"), "") )); $html .= '</div>' . "\n"; return $html; diff --git a/public/js/forms.js b/public/js/forms.js index a8c7f6ce..896cbb35 100644 --- a/public/js/forms.js +++ b/public/js/forms.js @@ -1,24 +1,28 @@ -function check_all(id) { +/** + * 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) + for (var i = 0; i < boxes.length; i++) { + if (boxes[i].type === "checkbox" && !boxes[i].disabled) { boxes[i].checked = true; - } -} - -function uncheck_all(id) { - 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].checked = false; + } } } $(function() { - $('form').submit(function(ev) { - $('input[type="submit"]').prop("readonly", true).addClass("disabled"); + /** + * Disable every submit button after clicking (to prevent double-clicking) + */ + $("form").submit(function(ev) { + $("input[type='submit']").prop("readonly", true).addClass("disabled"); return true; }); }); |