diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/members.js b/koha-tmpl/intranet-tmpl/prog/en/js/members.js
index 59deeaea42..1dd1cb8282 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/js/members.js
+++ b/koha-tmpl/intranet-tmpl/prog/en/js/members.js
@@ -217,6 +217,57 @@ function select_user(borrowernumber, borrower) {
return 0;
}
+function CalculateAge() {
+ var hint = $("#dateofbirth").siblings(".hint").first();
+ hint.html(dateformat);
+
+ if (dformat == 'metric' && false === CheckDate(document.form.dateofbirth)) {
+ return;
+ }
+
+ if (!$("#dateofbirth").datepicker( 'getDate' )) {
+ return;
+ }
+
+ var today = new Date();
+ var dob = new Date($("#dateofbirth").datepicker( 'getDate' ));
+
+ var nowyear = today.getFullYear();
+ var nowmonth = today.getMonth();
+ var nowday = today.getDate();
+
+ var birthyear = dob.getFullYear();
+ var birthmonth = dob.getMonth();
+ var birthday = dob.getDate();
+
+ var year = nowyear - birthyear;
+ var month = nowmonth - birthmonth;
+ var day = nowday - birthday;
+
+ if(day < 0) {
+ month = parseInt(month) -1;
+ }
+
+ if(month < 0) {
+ year = parseInt(year) -1;
+ month = 12 + month;
+ }
+
+ var age_string;
+ if (year || month) {
+ age_string = _('Age: ');
+ }
+ if (year) {
+ age_string += _(year > 1 ? '%s years ' : '%s year ').format(year);
+ }
+
+ if (month) {
+ age_string += _(month > 1 ? '%s months ' : '%s month ').format(month);
+ }
+
+ hint.html(age_string);
+}
+
$(document).ready(function(){
if($("#yesdebarred").is(":checked")){
$("#debarreduntil").show();
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
index 497c1a75c1..78c5e05acf 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt
@@ -16,8 +16,121 @@
update_category_code( category_code );
}
[% END %]
+ $("#dateofbirth").datepicker({ maxDate: "-1D", yearRange: "c-120:" });
+ dateformat = $("#dateofbirth").siblings(".hint").first().html();
+ CalculateAge();
+ $("#entryform").validate({
+ rules: {
+ email: {
+ email: true
+ },
+ emailpro: {
+ email: true
+ },
+ B_email: {
+ email: true
+ }
+ },
+ submitHandler: function(form) {
+ $("body, form input[type='submit'], form button[type='submit'], form a").addClass('waiting');
+ if (form.beenSubmitted)
+ return false;
+ else
+ form.beenSubmitted = true;
+ form.submit();
+ }
+ });
+
+ var mrform = $("#manual_restriction_form");
+ var mrlink = $("#add_manual_restriction");
+ mrform.hide();
+ mrlink.on("click",function(e){
+ $(this).hide();
+ mrform.show();
+ e.preventDefault();
+ });
+ $("#cancel_manual_restriction").on("click",function(e){
+ $('#debarred_expiration').val('');
+ $('#add_debarment').val(0);
+ $('#debarred_comment').val('');
+ mrlink.show();
+ mrform.hide();
+ e.preventDefault();
+ });
});
+ function clear_entry(node) {
+ var original = $(node).parent();
+ $("textarea", original).attr('value', '');
+ $("select", original).attr('value', '');
+ }
+
+ function clone_entry(node) {
+ var original = $(node).parent();
+ var clone = original.clone();
+
+ var newId = 50 + parseInt(Math.random() * 100000);
+ $("input,select,textarea", clone).attr('id', function() {
+ return this.id.replace(/patron_attr_\d+/, 'patron_attr_' + newId);
+ });
+ $("input,select,textarea", clone).attr('name', function() {
+ return this.name.replace(/patron_attr_\d+/, 'patron_attr_' + newId);
+ });
+ $("label", clone).attr('for', function() {
+ return $(this).attr("for").replace(/patron_attr_\d+/, 'patron_attr_' + newId);
+ });
+ $("input#patron_attr_" + newId, clone).attr('value','');
+ $("select#patron_attr_" + newId, clone).attr('value','');
+ $(original).after(clone);
+ return false;
+ }
+
+ function update_category_code(category_code) {
+ if ( $(category_code).is("select") ) {
+ category_code = $("#categorycode_entry").find("option:selected").val();
+ }
+ var mytables = $(".attributes_table");
+ $(mytables).find("li").hide();
+ $(mytables).find(" li[data-category_code='"+category_code+"']").show();
+ $(mytables).find(" li[data-category_code='']").show();
+ }
+
+ function select_user(borrowernumber, borrower) {
+ var form = $('#entryform').get(0);
+ if (form.guarantorid.value) {
+ $("#contact-details").find('a').remove();
+ $("#contactname, #contactfirstname").parent().find('span').remove();
+ }
+
+ var id = borrower.borrowernumber;
+ form.guarantorid.value = id;
+ $('#contact-details')
+ .show()
+ .find('span')
+ .after('' + id + '');
+
+ $(form.contactname)
+ .val(borrower.surname)
+ .before('' + borrower.surname + '').get(0).type = 'hidden';
+ $(form.contactfirstname)
+ .val(borrower.firstname)
+ .before('' + borrower.firstname + '').get(0).type = 'hidden';
+
+ form.streetnumber.value = borrower.streetnumber;
+ form.address.value = borrower.address;
+ form.address2.value = borrower.address2;
+ form.city.value = borrower.city;
+ form.state.value = borrower.state;
+ form.zipcode.value = borrower.zipcode;
+ form.country.value = borrower.country;
+ form.branchcode.value = borrower.branchcode;
+
+ form.guarantorsearch.value = _("Change");
+
+ return 0;
+ }
+
+>>>>>>> Bug 15206 - Show patron's age under date of birth in memberentry.pl
var MSG_SEPARATOR = _("Separator must be / in field %s");
var MSG_INCORRECT_DAY = _("Invalid day entered in field %s");
var MSG_INCORRECT_MONTH = _("Invalid month entered in field %s");
@@ -216,11 +329,7 @@
[% END %]
Date of birth:
- [% IF ( dateformat == "metric" ) %]
-
- [% ELSE %]
-
- [% END %]
+
[% IF ( mandatorydateofbirth ) %]Required[% END %]
[% IF ( ERROR_dateofbirth ) %](Error)[% END %]