@@ -, +, @@ memberentry.pl --- .../prog/en/modules/members/memberentrygen.tt | 55 +++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -34,6 +34,8 @@ } [% END %] $("#dateofbirth").datepicker({ maxDate: "-1D", yearRange: "c-120:" }); + dateformat = $("#dateofbirth").siblings(".hint").first().html(); + CalculateAge(dformat == 'metric' ? true : false); $("#entryform").validate({ rules: { email: { @@ -145,6 +147,55 @@ return 0; } + function CalculateAge(checkdate) { + var hint = $("#dateofbirth").siblings(".hint").first(); + hint.html(dateformat); + + if (checkdate && 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 = _('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); + + } + var MSG_SEPARATOR = _("Separator must be / in field %s"); @@ -344,9 +395,9 @@ Date of birth: [% IF ( dateformat == "metric" ) %] - + [% ELSE %] - + [% END %] [% IF ( mandatorydateofbirth ) %]Required[% END %] --