Template: JS function optimizations, add support for bulk delete select-all checkbox.

This commit is contained in:
Nate 2020-02-27 18:58:44 -07:00
parent 7ac144fe05
commit 55c6be8a7a
2 changed files with 54 additions and 20 deletions

View File

@ -2485,6 +2485,22 @@ $default_login = ($_REQUEST['login'] == 'default') ? true : false;
white-space: nowrap;
}
/* EDIT ********************************************************************************/
td.edit_delete_checkbox_all {
text-align: center;
width: 50px;
}
td.edit_delete_checkbox_all input[type=checkbox] {
vertical-align: middle;
margin-top: -2px;
}
td.edit_delete_checkbox_all > span:nth-child(2) {
display: none;
}
/* CURSORS ***********************************************************************/
.cursor-default { cursor: default; }

View File

@ -422,24 +422,10 @@ echo "<script language='JavaScript' type='text/javascript' src='<!--{project_pat
//list functions
function list_all_toggle(modifier) {
var inputs = document.getElementsByTagName('input');
if (modifier !== undefined) {
var checkbox_checked = document.getElementById('checkbox_all_'+modifier).checked;
}
else {
var checkbox_checked = document.getElementById('checkbox_all').checked;
}
for (var i = 0, max = inputs.length; i < max; i++) {
if (modifier !== undefined) {
if (inputs[i].type === 'checkbox' && inputs[i].className === 'checkbox_'+modifier) {
inputs[i].checked = checkbox_checked;
}
}
else {
if (inputs[i].type === 'checkbox') {
inputs[i].checked = checkbox_checked;
}
}
var checkboxes = (modifier !== undefined) ? document.getElementsByClassName('checkbox_'+modifier) : document.querySelectorAll("input[type='checkbox']");
var checkbox_checked = document.getElementById('checkbox_all' + (modifier !== undefined ? '_'+modifier : '')).checked;
for (var i = 0, max = checkboxes.length; i < max; i++) {
checkboxes[i].checked = checkbox_checked;
}
if (document.getElementById('btn_check_all') && document.getElementById('btn_check_none')) {
if (checkbox_checked) {
@ -486,17 +472,49 @@ echo "<script language='JavaScript' type='text/javascript' src='<!--{project_pat
document.getElementById('btn_search').style.display = '';
}
function edit_delete_action() {
function edit_all_toggle(modifier) {
var checkboxes = document.getElementsByClassName('checkbox_'+modifier);
var checkbox_checked = document.getElementById('checkbox_all_'+modifier).checked;
if (document.getElementById('btn_delete') && checkboxes.length > 0) {
for (var i = 0; i < checkboxes.length; ++i) {
checkboxes[i].checked = checkbox_checked;
}
}
document.getElementById('btn_delete').value = checkbox_checked ? '' : 'delete';
}
function edit_delete_action(modifier) {
var checkboxes = document.getElementsByClassName('chk_delete');
if (document.getElementById('btn_delete') && checkboxes.length > 0) {
var checkbox_checked = false;
for (var i = 0; i < checkboxes.length; ++i) {
if (checkboxes[i].checked) { checkbox_checked = true; }
if (checkboxes[i].checked) {
checkbox_checked = true;
}
else {
if (document.getElementById('checkbox_all'+(modifier !== undefined ? '_'+modifier : ''))) {
document.getElementById('checkbox_all'+(modifier !== undefined ? '_'+modifier : '')).checked = false;
}
}
}
document.getElementById('btn_delete').value = checkbox_checked ? '' : 'delete';
}
}
function swap_display(a_id, b_id, display_value) {
display_value = display_value !== undefined ? display_value : 'inline-block';
a = document.getElementById(a_id);
b = document.getElementById(b_id);
if (window.getComputedStyle(a).display === 'none') {
a.style.display = display_value;
b.style.display = 'none';
}
else {
a.style.display = 'none';
b.style.display = display_value;
}
}
function modal_close() {
document.location.href='#';
}