Bug 15206 - Show patron's age under date of birth in memberentry.pl
Test plan: Create or edit a patron (members/memberentry.pl), enter a date of birth (for a new patron), patron'a age should be shown under Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
This commit is contained in:
parent
e8036c9794
commit
d49f7741bf
2 changed files with 165 additions and 5 deletions
|
@ -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();
|
||||
|
|
|
@ -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('<a target="blank" href="/cgi-bin/koha/members/moremember.pl?borrowernumber=' + id + '">' + id + '</a>');
|
||||
|
||||
$(form.contactname)
|
||||
.val(borrower.surname)
|
||||
.before('<span>' + borrower.surname + '</span>').get(0).type = 'hidden';
|
||||
$(form.contactfirstname)
|
||||
.val(borrower.firstname)
|
||||
.before('<span>' + borrower.firstname + '</span>').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: </label>
|
||||
|
||||
[% IF ( dateformat == "metric" ) %]
|
||||
<input type="text" id="dateofbirth" name="dateofbirth" size="20" onchange="CheckDate(document.form.dateofbirth);" value="[% UNLESS opduplicate %][% dateofbirth %][% END %]" />
|
||||
[% ELSE %]
|
||||
<input type="text" id="dateofbirth" name="dateofbirth" size="20" value="[% UNLESS opduplicate %][% dateofbirth %][% END %]" />
|
||||
[% END %]
|
||||
<input type="text" id="dateofbirth" name="dateofbirth" size="20" onchange="CalculateAge();" value="[% UNLESS opduplicate %][% dateofbirth %][% END %]" />
|
||||
|
||||
[% IF ( mandatorydateofbirth ) %]<span class="required">Required</span>[% END %]
|
||||
[% IF ( ERROR_dateofbirth ) %]<span class="required">(Error)</span>[% END %]
|
||||
|
|
Loading…
Reference in a new issue