fixed bug in date builder that caused date correction on invalid dates
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 30 Jan 2007 18:35:13 +0000 (18:35 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 30 Jan 2007 18:35:13 +0000 (18:35 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@6832 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/admin/closed_dates.js

index 80d31eb..a4bd38f 100644 (file)
@@ -286,21 +286,26 @@ function cdDateStrToDate( str ) {
        var data = str.split(/ /);
 
        var year = data[0];
-       var time        = data[1];
+       var time = data[1];
 
        if(!cdVerifyDate(year)) return alertId('cd_invalid_date');
        if(!cdVerifyTime(time)) return alertId('cd_invalid_time');
 
        var yeardata = year.split(/-/);
        var timedata = time.split(/:/);
+    
+    /*  seed the date with day = 1, which is a valid day for any month.  
+        this prevents automatic date correction by the date code for days that 
+        fall outside of the current or target month */
+    date.setDate(1);
 
-       date.setFullYear(yeardata[0]);
-       date.setMonth(yeardata[1] - 1);
-       date.setDate(yeardata[2]);
+       date.setFullYear(new Number(yeardata[0]));
+       date.setMonth(new Number(yeardata[1]) - 1);
+    date.setDate(new Number(yeardata[2]));
 
-       date.setHours(timedata[0]);
-       date.setMinutes(timedata[1]);
-       date.setSeconds(timedata[2]);
+       date.setHours(new Number(timedata[0]));
+       date.setMinutes(new Number(timedata[1]));
+       date.setSeconds(new Number(timedata[2]));
 
        return date;
 }
@@ -313,6 +318,7 @@ function cdNew() {
        if( ! $('cd_edit_allday_row').className.match(/hide_me/) ) {
 
                var date = $('cd_edit_allday_start_date').value;
+
                start = cdDateStrToDate(date + ' 00:00:00');
                end = cdDateStrToDate(date + ' 23:59:59');