Owen Leonard
38566a861a
This patch removes the definition of translatable strings out of templates and into the corresponding JavaScript file, using the new JS i81n function. To test: - Apply the patch, go to Administration -> Patron categories - Click "New category" - Enter some special characters in the "Category code" field, e.g. "%^&*" - Try to submit the form without filling in any other details. - The category code field should have a validation message, "Category code can only contain the following characters: letters, numbers, - and _." - The enrollment period fields should have a validation message, "Please choose an enrollment period in months OR by date." - Enter valid data and confirm that the form can be submitted. 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/categories.js for translation, e.g.: msgid "Please choose an enrollment period in months OR by date." 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: David Nind <david@davidnind.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
104 lines
2.9 KiB
JavaScript
104 lines
2.9 KiB
JavaScript
/* global __ */
|
|
|
|
jQuery.validator.addMethod( "letters_numbers", function(value,element){
|
|
var patt = /^[a-zA-Z0-9\-_]+$/g;
|
|
if (patt.test(element.value)) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}, __("Category code can only contain the following characters: letters, numbers, - and _.")
|
|
);
|
|
|
|
jQuery.validator.addMethod( "enrollment_period", function(){
|
|
enrolmentperiod = $("#enrolmentperiod").val();
|
|
enrolmentperioddate = $("#enrolmentperioddate").val();
|
|
if ( $("#enrolmentperiod").val() !== "" && $("#enrolmentperioddate").val() !== "" ) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}, __("Please choose an enrollment period in months OR by date.")
|
|
);
|
|
|
|
|
|
$(document).ready(function() {
|
|
KohaTable("patron_categories", {
|
|
"aoColumnDefs": [{
|
|
"aTargets": [-1],
|
|
"bSortable": false,
|
|
"bSearchable": false
|
|
}, {
|
|
"aTargets": [3, 4, 5],
|
|
"sType": "natural"
|
|
}, ],
|
|
"aaSorting": [
|
|
[1, "asc"]
|
|
],
|
|
"sPaginationType": "full",
|
|
"exportColumns": [0,1,2,3,4,5,6,7,8,9,10,11,12],
|
|
}, columns_settings);
|
|
|
|
$("#enrolmentperioddate").datepicker({
|
|
minDate: 1
|
|
}); // Require that "until date" be in the future
|
|
|
|
if ($("#branches option:selected").length < 1) {
|
|
$("#branches option:first").attr("selected", "selected");
|
|
}
|
|
|
|
$("#categorycode").on("blur",function(){
|
|
toUC(this);
|
|
});
|
|
|
|
$("#category_form").validate({
|
|
rules: {
|
|
categorycode: {
|
|
required: true,
|
|
letters_numbers: true
|
|
},
|
|
description: "required",
|
|
enrolmentperiod: {
|
|
required: function(element){
|
|
return $("#enrolmentperioddate").val() === "";
|
|
},
|
|
digits: true,
|
|
enrollment_period: true,
|
|
min: 1
|
|
},
|
|
enrolmentperioddate: {
|
|
required: function(element){
|
|
return $("#enrolmentperiod").val() === "";
|
|
},
|
|
enrollment_period: true
|
|
},
|
|
dateofbirthrequired: {
|
|
digits: true
|
|
},
|
|
upperagelimit: {
|
|
digits: true
|
|
},
|
|
enrolmentfee: {
|
|
number: true
|
|
},
|
|
reservefee: {
|
|
number: true
|
|
},
|
|
category_type: {
|
|
required: true
|
|
},
|
|
min_password_length: {
|
|
digits: true
|
|
}
|
|
},
|
|
messages: {
|
|
enrolmentperiod: {
|
|
required: __("Please choose an enrollment period in months OR by date.")
|
|
},
|
|
enrolmentperioddate: {
|
|
required: __("Please choose an enrollment period in months OR by date.")
|
|
}
|
|
}
|
|
|
|
});
|
|
});
|