laipower/wp-content/plugins/subscribe2/include/s2-subscribers.js

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;