[richfaces-svn-commits] JBoss Rich Faces SVN: r11915 - trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Dec 19 09:01:35 EST 2008


Author: pyaschenko
Date: 2008-12-19 09:01:35 -0500 (Fri, 19 Dec 2008)
New Revision: 11915

Modified:
   trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
Log:
https://jira.jboss.org/jira/browse/RF-3759

Modified: trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js
===================================================================
--- trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js	2008-12-19 13:55:25 UTC (rev 11914)
+++ trunk/ui/calendar/src/main/resources/org/richfaces/renderkit/html/scripts/calendar.js	2008-12-19 14:01:35 UTC (rev 11915)
@@ -1761,7 +1761,7 @@
 		this.changeCurrentDateOffset(-1,0);
 	},
 	
-	changeCurrentDate: function(year, month) {
+	changeCurrentDate: function(year, month, noUpdate) {
 		if (this.getCurrentMonth()!=month || this.getCurrentYear()!=year)
 		{
 			var date = new Date(year, month,1);
@@ -1772,10 +1772,12 @@
 				// value is updated in function onUpdate() and then
 				// the "currentdateselected" Event is fired.
 				this.currentDate = date;
-				this.onUpdate();
+				if (noUpdate) this.render(); else this.onUpdate();
 				this.invokeEvent("currentdateselected", $(this.id), null, date);
+				return true;
 			}
 		}
+		return false;
 	},
 	
 	changeCurrentDateOffset: function(yearOffset, monthOffset) {
@@ -1899,21 +1901,19 @@
 
 		// fire user event
 		var flag = true;
-		var isDateChanged = false;
+		var isDateChange = false;
 		if ( (oldSelectedDate - newSelectedDate) && (oldSelectedDate!=null || newSelectedDate!=null) )
 		{
-			isDateChanged = true;
-			flag = this.invokeEvent("dateselect", eventData.element, eventData.event, date);
+			isDateChange = this.invokeEvent("dateselect", eventData.element, eventData.event, date);
 		}	
 		
-		if (flag)
+		if (isDateChange)
 		{		   
-			this.selectedDate = newSelectedDate;
-			if (this.selectedDate!=null)
+			if (newSelectedDate!=null)
 			{
-				var d = new Date(this.selectedDate);
-				if (d.getMonth()==this.currentDate.getMonth() && d.getFullYear()==this.currentDate.getFullYear())
+				if (newSelectedDate.getMonth()==this.currentDate.getMonth() && newSelectedDate.getFullYear()==this.currentDate.getFullYear())
 				{
+					this.selectedDate = newSelectedDate;
 					if (!oldSelectedDate || (oldSelectedDate - this.selectedDate))
 					{
 						// find cell and change style class
@@ -1934,9 +1934,12 @@
 				else
 				{
 					// change currentDate and call this.onUpdate();
-					d.setDate(1);
-					this.currentDate = d;
-					if (noUpdate) this.render(); else this.onUpdate();
+					if (this.changeCurrentDate(newSelectedDate.getFullYear(), newSelectedDate.getMonth(), noUpdate))
+					{
+						this.selectedDate = newSelectedDate;
+					} else {
+						isDateChange = false;
+					}
 				}
 			}
 			else
@@ -1964,7 +1967,7 @@
 			}
 			
 			// call user event
-			if (isDateChanged)
+			if (isDateChange)
 			{
 				this.invokeEvent("dateselected", eventData.element, eventData.event, this.selectedDate);
 				if (!this.showApplyButton)
@@ -1974,7 +1977,7 @@
 			}
 		}
 		
-		return flag;			
+		return isDateChange;			
 	},
 	
 	resetSelectedDate: function()




More information about the richfaces-svn-commits mailing list