Koha/koha-tmpl/intranet-tmpl/prog/js/messaging-preference-form.js
Owen Leonard ea8151da56 Bug 26244: Move translatable strings out of memberentrygen.tt and into JavaScript
This patch removes the definition of translatable strings out of
templates and into the corresponding JavaScript file, using the new JS
i81n function.

Note: I was unable to trigger the confirmation message in the
check_form_borrowers function. I think the form is now structured in a
way that it is never triggered, thus a candidate for removal.

To test:

- Apply the patch and go to Patrons.
- Add or edit a patron.
- Select a date of birth at least one month in the past and confirm that
  the patron's age is displayed in the hint below.
- Test multiple variations to confirm that the singular and plural of
  'year' and 'month' display correctly. (e.g. 1 year 9 months, 2 years,
  etc).
- Set some patron messaging preferences for the patron.
- Change the patron category.
- You should get a confirmation: "Change messaging preferences to
  default for this category?"

TESTING TRANSLATABILITY

- Update a translation, e.g. fr-FR:

  > cd misc/translator
  > perl translate update fr-FR

- Open the corresponding .po file for JavaScript strings, e.g.
  misc/translator/po/fr-FR-messages-js.po
- Locate strings pulled from
  koha-tmpl/intranet-tmpl/prog/js/members.js for translation, e.g.:

  msgid "%s years"
  msgstr ""

- Edit the "msgstr" string however you want (it's just for testing).
- Install the updated translation:

  > perl translate install fr-FR

- Switch to your newly translated language in the staff client
  and repeat the test plan above. The translated strings should
  appear.

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
2022-04-12 11:40:17 +02:00

79 lines
3.4 KiB
JavaScript

$(document).ready(function(){
$("#info_digests").tooltip();
var message_prefs_dirty = false;
$('#memberentry_messaging_prefs > *').change(function() {
message_prefs_dirty = true;
});
if ( window.location.href.indexOf("op=add") === -1 ) {
message_prefs_dirty = true; // unless op=add consider the message prefs dirty
}
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( __("Change messaging preferences to default for this category?") )) {
// Not loading messaging defaults. Hide loading indicator
messaging_prefs_loading.hide();
return;
}
}
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);
toggle_digest(attrid);
} else {
$('#' + transport + attrid).prop('checked', false);
toggle_digest(attrid);
}
});
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();
});
});
}
function toggle_digest(id){
if ( $("#email"+id).prop("checked") || $("#sms"+id).prop("checked") ) {
$("#digest"+id).attr("disabled", false).tooltip('disable');
} else {
$("#digest"+id).attr("disabled", true).prop("checked",false).tooltip('enable');
}
}
// At load time, we want digest disabled if no digest using transport is enabled
$(".pmp_email").each(function(){
toggle_digest(Number($(this).attr("id").replace("email", "")));
});
// If user clears all digest using transports for a notice, disable digest checkbox
$(".pmp_email").click(function(){
toggle_digest(Number($(this).attr("id").replace("email", "")));
});
$(".pmp_sms").click(function(){
toggle_digest(Number($(this).attr("id").replace("sms", "")));
});
// $('#memberentry_messaging_prefs [data-toggle="tooltip"][disabled]').tooltip();
});