59 lines
2.2 KiB
JavaScript
59 lines
2.2 KiB
JavaScript
/* global s2ScriptStrings */
|
|
/* exported s2BulkActionCheck, submitHandler, bmCheck, s2ScriptStrings */
|
|
// Version 1.0 - original version
|
|
// Version 1.1 - context specific delete warnings for registered or public subscribers
|
|
// Version 1.2 - single and plural string confirmation messages
|
|
// Version 1.3 - fix suppressed form processing for Toggle action, JavaScript binding only if elements exist & more effecient handling when no users selected
|
|
// Version 1.4 - improve Bulk Management user experience and functions
|
|
// Version 1.5 - eslinted
|
|
|
|
function s2BulkActionCheck() {
|
|
if ( null !== document.getElementById( 'doaction' ) ) {
|
|
document.getElementById( 'doaction' ).onclick = submitHandler;
|
|
document.getElementById( 'doaction2' ).onclick = submitHandler;
|
|
}
|
|
}
|
|
function submitHandler() {
|
|
var location, action1, action2, agree, selected;
|
|
location = document.getElementById( 's2_location' );
|
|
action1 = document.getElementById( 'bulk-action-selector-top' );
|
|
action2 = document.getElementById( 'bulk-action-selector-bottom' );
|
|
agree = false;
|
|
selected = document.querySelectorAll( 'input[name="subscriber[]"]:checked' ).length;
|
|
if ( 0 === selected ) {
|
|
return true;
|
|
}
|
|
if ( 'delete' === action1.value || 'delete' === action2.value ) {
|
|
if ( 'registered' === location.value ) {
|
|
if ( 1 < selected ) {
|
|
agree = window.confirm( s2ScriptStrings.registered_confirm_plural );
|
|
} else {
|
|
agree = window.confirm( s2ScriptStrings.registered_confirm_single );
|
|
}
|
|
} else if ( 'public' === location.value ) {
|
|
if ( 1 < selected ) {
|
|
agree = window.confirm( s2ScriptStrings.public_confirm_plural );
|
|
} else {
|
|
agree = window.confirm( s2ScriptStrings.public_confirm_single );
|
|
}
|
|
}
|
|
} else if ( 'toggle' === action1.value || 'toggle' === action2.value ) {
|
|
agree = true;
|
|
}
|
|
return agree;
|
|
}
|
|
function bmCheck() {
|
|
var agree, selected;
|
|
agree = false;
|
|
selected = document.querySelectorAll( 'input[name="subscriber[]"]:checked' ).length;
|
|
if ( 0 === selected ) {
|
|
agree = window.confirm( s2ScriptStrings.bulk_manage_all );
|
|
} else if ( 1 < selected ) {
|
|
agree = window.confirm( s2ScriptStrings.bulk_manage_single );
|
|
} else {
|
|
agree = window.confirm( s2ScriptStrings.bulk_manage_plural );
|
|
}
|
|
return agree;
|
|
}
|
|
window.onload = s2BulkActionCheck;
|