You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2008/10/29 14:01:42 UTC

svn commit: r708898 - /myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/calendar.js

Author: lofwyr
Date: Wed Oct 29 06:01:42 2008
New Revision: 708898

URL: http://svn.apache.org/viewvc?rev=708898&view=rev
Log:
TOBAGO-712 	 Datepicker writes NaN.NaN.0NaN to input field
* fix the recompute method: if the month is January and and the day is <= 0 the recompuation was corrupt
TOBAGO-717 	 DatePicker: Stepping a month forward/backward results in a two-month-step, if the expected month has less days than the origin
* reset date to a lower date, which is allowed (e.g. the date is Febuary 30 set it to 28 or 29)

Modified:
    myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/calendar.js

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/calendar.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/calendar.js?rev=708898&r1=708897&r2=708898&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/calendar.js (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/script/calendar.js Wed Oct 29 06:01:42 2008
@@ -73,21 +73,14 @@
   return document.getElementById(id + ":monthNames").value.split(',')[month-1];
 }
 
-function initCalendarDataX(id, year, month, day) {
+function initCalendarData(id, year, month, day) {
   document.getElementById(id + ":day").value = day;
   document.getElementById(id + ":month").value = month;
   document.getElementById(id + ":year").value = year;
   recalculateValues(id);
 }
 
-function initCalendarData(id, month, year) {
-  document.getElementById(id + ":month").value = month;
-  document.getElementById(id + ":year").value = year;
-  recalculateValues(id);
-}
-
 function addMonth(id, monthDelta) {
-  var calendar = document.getElementById(id);
   var yearDelta = 0;
   if (monthDelta > 0) {
     yearDelta = Math.floor(monthDelta / 12);
@@ -98,6 +91,7 @@
   }
   var year = parseInt(document.getElementById(id + ":year").value, 10) + yearDelta;
   var month = parseInt(document.getElementById(id + ":month").value, 10) + monthDelta;
+  var day = parseInt(document.getElementById(id + ":day").value);
   if (month < 1) {
     month = 12;
     --year;
@@ -105,7 +99,10 @@
     month = 1;
     ++year;
   }
-  initCalendarData(id, month, year);
+  if (day > Calendar.getMonthLength(month, year)) {
+    day = Calendar.getMonthLength(month, year);
+  }
+  initCalendarData(id, year, month, day);
   initCalendar(id);
 }
 
@@ -114,29 +111,31 @@
   var month = parseInt(document.getElementById(id + ":month").value);
   var year = parseInt(document.getElementById(id + ":year").value);
 //  alert("before " + day + "." + month + "." + year);
+
   if (month < 1) {
-    month = 12;
+    month += 12;
     --year;
   } else if (month > 12) {
-    month = 1;
+    month -= 12;
     ++year;
   }
 
   if (day < 1) {
     --month;
+    if (month < 1) {
+      month += 12;
+      --year;
+    }
     day += Calendar.getMonthLength(month, year);
   } else if (day > Calendar.getMonthLength(month, year)) {
     day -= Calendar.getMonthLength(month, year);
     ++month;
+    if (month > 12) {
+      month -= 12;
+      ++year;
+    }
   }
 
-  if (month < 1) {
-    month = 12;
-    --year;
-  } else if (month > 12) {
-    month = 1;
-    ++year;
-  }
 //  alert("after " + day + "." + month + "." + year);
 
   document.getElementById(id + ":day").value = day;
@@ -150,13 +149,7 @@
   var year = document.getElementById(id + ":year").value;
   var firstDayOfWeek = getFirstDayOfWeek(id);
   var firstDayOffset = Calendar.firstDayOffset(month, year, firstDayOfWeek);
-  initCalendarX(id, year, month, row * 7 + column - firstDayOffset + 1);
-  initCalendar(id);
-}
-
-function initCalendarX(id, year, month, day) {
-//  alert(id + " "  + year + " "  + month + " "  + day);
-  initCalendarDataX(id, year, month, day);
+  initCalendarData(id, year, month, row * 7 + column - firstDayOffset + 1);
   initCalendar(id);
 }
 
@@ -221,7 +214,7 @@
   var month = date.getMonth() + 1;
   var year = date.getFullYear();
 
-  initCalendarDataX(id, year, month, day);
+  initCalendarData(id, year, month, day);
   initCalendar(id);
 }