[Koha-patches] [PATCH] bugs 3912, 4144: can now add contracts if dataformat is not metric
Galen Charlton
gmcharlt at gmail.com
Wed Feb 10 14:31:45 CET 2010
Fixed bug in date validation that prevented adding new contracts
if the dateformat syspref was set to something other than 'metric'.
In process, also removed three hand-written date validation routines
in favor of using JavaScript Date objects and the Date_from_syspref
function provided in calendar.inc.
This fixes bug 3912, and partially addresses bug 4144.
Signed-off-by: Galen Charlton <gmcharlt at gmail.com>
---
admin/aqcontract.pl | 1 +
koha-tmpl/intranet-tmpl/prog/en/js/acq.js | 93 --------------------
.../prog/en/modules/admin/aqcontract.tmpl | 16 ++--
3 files changed, 10 insertions(+), 100 deletions(-)
diff --git a/admin/aqcontract.pl b/admin/aqcontract.pl
index f1cc17b..81cc640 100755
--- a/admin/aqcontract.pl
+++ b/admin/aqcontract.pl
@@ -52,6 +52,7 @@ $template->param(
booksellerid => $booksellerid,
booksellername => $bookseller[0]->{name},
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
+ dateformat => C4::Context->preference("dateformat"),
);
#ADD_FORM: called if $op is 'add_form'. Used to create form to add or modify a record
diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/acq.js b/koha-tmpl/intranet-tmpl/prog/en/js/acq.js
index 3acab0c..0ec1460 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/js/acq.js
+++ b/koha-tmpl/intranet-tmpl/prog/en/js/acq.js
@@ -55,99 +55,6 @@ function isNum(v,maybenull) {
return true;
}
-// this function checks if date is like DD/MM/YYYY
-function CheckDate(field) {
- var d = field.value;
- if (d!="") {
- var amin = 1900;
- var amax = 2100;
- var date = d.split("/");
- var ok=1;
- var msg;
- if ( (date.length < 2) && (ok==1) ) {
- msg = _("Separator must be /");
- alert(msg); ok=0; field.focus();
- return false;
- }
- var dd = date[0];
- var mm = date[1];
- var yyyy = date[2];
- // checking days
- if ( ((isNaN(dd))||(dd<1)||(dd>31)) && (ok==1) ) {
- msg = _("day not correct.");
- alert(msg); ok=0; field.focus();
- return false;
- }
- // checking months
- if ( ((isNaN(mm))||(mm<1)||(mm>12)) && (ok==1) ) {
- msg = _("month not correct.");
- alert(msg); ok=0; field.focus();
- return false;
- }
- // checking years
- if ( ((isNaN(yyyy))||(yyyy<amin)||(yyyy>amax)) && (ok==1) ) {
- msg = _("years not correct.");
- alert(msg); ok=0; field.focus();
- return false;
- }
- // check day/month combination
- if ((mm==4 || mm==6 || mm==9 || mm==11) && dd==31) {
- msg = _("Invalid Day/Month combination. Please ensure that you have a valid day/month combination.");
- alert(msg); ok=0; field.focus();
- return false;
- }
- // check for february 29th
- if (mm == 2) {
- var isleap = (yyyy % 4 == 0 && (yyyy % 100 != 0 || yyyy % 400 == 0));
- if (dd>29 || (dd==29 && !isleap)) {
- msg = _("Invalid Day. This year is not a leap year. Please enter a value less than 29 for the day.");
- alert(msg); ok=0; field.focus();
- return false
- }
- }
- }
- return true;
-}
-
-// Checks wether start date is greater than end date
-function CompareDate(startdate, enddate) {
- startdate=startdate.split("/");
- syear = startdate[2];
- smonth = startdate[1];
- sday = startdate[0];
- enddate=enddate.split("/");
- eyear = enddate[2];
- emonth = enddate[1];
- eday = enddate[0];
-
- var sdate = new Date(syear,smonth-1,sday);
- var edate = new Date(eyear,emonth-1,eday);
- if (sdate > edate) {
- msg = _("Start date after end date, please check the dates!");
- alert(msg); ok=0; field.focus();
- return false;
- }
- return true;
-}
-
-// checks wether end date is before today, returns false if it is
-function CheckEndDate(enddate) {
- enddate=enddate.split("/");
- eyear = enddate[2];
- emonth = enddate[1];
- eday = enddate[0];
- var edate = new Date(eyear,emonth-1,eday);
- var today = new Date( );
- if (today > edate) {
- msg = _("End date before today, Invalid end date!");
- alert(msg); ok=0; field.focus();
- return false;
- }
- return true;
-}
-
-
-
//=======================================================================
//=======================================================================
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tmpl
index 62dfae9..b54d9cf 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqcontract.tmpl
@@ -21,20 +21,22 @@ function Check(ff) {
ok=1;
_alertString += _("- Name missing\n");
}
- if (!(CheckDate(ff.contractstartdate))){
+ var startDate = Date_from_syspref($("#contractstartdate").val());
+ var endDate = Date_from_syspref($("#contractenddate").val());
+ if (!parseInt(startDate.getTime())) {
ok=1;
- _alertString += _("- Start date missing\n");
+ _alertString += _("- Start date missing or invalid.\n");
}
- if (!(CheckDate(ff.contractenddate))){
+ if (!parseInt(endDate.getTime())) {
ok=1;
- _alertString += _("- End date missing\n");
+ _alertString += _("- End date missing or invalid.\n");
}
- if (!CompareDate(ff.contractstartdate.value, ff.contractenddate.value)) {
+ if (startDate > endDate) {
ok=1;
- _alertString += _("Wrong date! start date can not be after end date.\n");
+ _alertString += _("Wrong date! start date cannot be after end date.\n");
}
- if (! CheckEndDate(ff.contractenddate.value)) {
+ if (endDate < (new Date)) {
ok=1;
_alertString += _("End date before today, Invalid end date!\n");
}
--
1.6.3.3
More information about the Koha-patches
mailing list