Koha/koha-tmpl/intranet-tmpl/prog/js/messaging-preference-form.js
Owen Leonard 3607fdfe79 Bug 21813: In-page JavaScript causes error on patron entry page
This patch removes a block of JavaScript from memberentrygen.tt which
was being included in the page before jQuery is loaded. This causes a
JavaScript error.

To test, apply the patch, regenerate CSS, and clear your browser cache
if necessary.

 - In Administration -> Patron categories, confirm that you have two
    patron categories with different default messaging preferences
    defined.
 - Go to Patrons -> New patron
   - Create a new patron using one of the categories with messaging
     preferences.
   - Confirm that when you switch the category selection to the other
     patron category, the patron messaging preference checkboxes are
     changed to the default for that category.
     - A "Loading" indicator should appear above the checkboxes to show
      that an operation is in process. It should disappear when new
      default prefs are loaded.
   - Manually change one or more patron messaging preference checkboxes.
   - Switch the patron category again and confirm that you are prompted
     to confirm resetting the preferences to the default for that
     category.
 - Perform the same set of tests when editing a patron.
   - Defaults should not be loaded during the edit process.
 - Confirm that there are no other JavaScript errors in the console.
 - Test again with EnhancedMessagingPreferences disabled.

Signed-off-by: Pierre-Marc Thibault <pierre-marc.thibault@inLibro.com>

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
2019-01-08 14:09:14 +00:00

68 lines
3 KiB
JavaScript

$(document).ready(function(){
$(".none").click(function(){
if($(this).prop("checked")){
var rowid = $(this).attr("id");
var newid = Number(rowid.replace("none",""));
$("#sms"+newid).prop("checked", false);
$("#email"+newid).prop("checked", false);
$("#phone"+newid).prop("checked", false);
$("#digest"+newid).prop("checked", false);
$("#rss"+newid).prop("checked", false);
}
});
$(".active_notify").on("change",function(){
var attr_id = $(this).data("attr-id");
if( $(this).prop("checked") ){
$("#none" + attr_id ).prop("checked", false);
}
});
$("#info_digests").tooltip();
var message_prefs_dirty = false;
$('#memberentry_messaging_prefs > *').change(function() {
message_prefs_dirty = true;
});
if( $("#messaging_prefs_loading").length ){ // This element only appears in the template if op=add
$('#categorycode_entry').change(function() {
var messaging_prefs_loading = $("#messaging_prefs_loading");
// Upon selecting a new patron category, show "Loading" message for messaging defaults
messaging_prefs_loading.show();
var categorycode = $(this).val();
if (message_prefs_dirty) {
if (!confirm( MSG_MESSAGING_DFEAULTS )) {
// Not loading messaging defaults. Hide loading indicator
messaging_prefs_loading.hide();
return;
}
}
$(".none").prop("checked", false); // When loading default prefs the "Do not notify" boxes should be cleared
var jqxhr = $.getJSON('/cgi-bin/koha/members/default_messageprefs.pl?categorycode=' + categorycode, function(data) {
$.each(data.messaging_preferences, function(i, item) {
var attrid = item.message_attribute_id;
var transports = ['email', 'rss', 'sms'];
$.each(transports, function(j, transport) {
if (item['transports_' + transport] == 1) {
$('#' + transport + attrid).prop('checked', true);
} else {
$('#' + transport + attrid).prop('checked', false);
}
});
if (item.digest && item.digest != ' ') {
$('#digest' + attrid).prop('checked', true);
} else {
$('#digest' + attrid).prop('checked', false);
}
if (item.takes_days == '1') {
$('[name=' + attrid + '-DAYS]').val('' + item.days_in_advance);
}
});
message_prefs_dirty = false;
})
.always(function() {
// Loaded messaging defaults. Hide loading indicator
messaging_prefs_loading.hide();
});
});
}
});