Browse Source

gotoDate will now check view.visStart and view.visEnd to determine wheather or not to render().

Jeremy Green 16 years ago
parent
commit
18fa57d60e
2 changed files with 112 additions and 1 deletions
  1. 3 1
      src/main.js
  2. 109 0
      tests/skip-redraw-test.html

+ 3 - 1
src/main.js

@@ -480,7 +480,9 @@ $.fn.fullCalendar = function(options) {
 						date.setDate(dateNum);
 					}
 				}
-				render();
+				if(date < view.visStart || date > view.visEnd ){
+					render();
+				}
 			},
 			
 			incrementDate: function(years, months, days) {

+ 109 - 0
tests/skip-redraw-test.html

@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+<link rel='stylesheet' type='text/css' href='../examples/redmond/theme.css' />
+<style type="text/css">
+	
+	.activeDay{
+		background:#eee !important;
+	}
+</style>
+<script type='text/javascript' src='loader.js'></script>
+<script type='text/javascript'>
+
+	$(document).ready(function() {
+	
+		var date = new Date();
+		var d = date.getDate();
+		var m = date.getMonth();
+		var y = date.getFullYear();
+		var prevDay = null;
+		
+		$('#calendar').fullCalendar({
+			header: {
+				left: 'prev,next today',
+				center: 'title',
+				right: 'month,agendaWeek,basicWeek,agendaDay,basicDay'
+			},
+			editable: true,
+			dayClick: function(date, allDay, jsEvent, view) {
+				
+				$('#calendar').fullCalendar( 'gotoDate', date);
+				
+			},
+			events: [
+				{
+					title: 'All Day Event',
+					start: new Date(y, m, 1)
+				},
+				{
+					title: 'Long Event',
+					start: new Date(y, m, d-5),
+					end: new Date(y, m, d-2)
+				},
+				{
+					id: 999,
+					title: 'Repeating Event',
+					start: new Date(y, m, d-3, 16, 0),
+					allDay: false
+				},
+				{
+					id: 999,
+					title: 'Repeating Event',
+					start: new Date(y, m, d+4, 16, 0),
+					allDay: false
+				},
+				{
+					title: 'Meeting',
+					start: new Date(y, m, d, 10, 30),
+					allDay: false
+				},
+				{
+					title: 'Lunch',
+					start: new Date(y, m, d, 12, 5),
+					end: new Date(y, m, d, 14, 43),
+					allDay: false
+				},
+				{
+					title: 'Birthday Party',
+					start: new Date(y, m, d+1, 19, 0),
+					end: new Date(y, m, d+1, 22, 30),
+					allDay: false
+				},
+				{
+					title: 'Click for Google',
+					start: new Date(y, m, 28),
+					end: new Date(y, m, 29),
+					url: 'http://google.com/'
+				}
+			]
+		});
+		
+	});
+
+</script>
+<style type='text/css'>
+
+	body {
+		margin-top: 40px;
+		text-align: center;
+		font-size: 13px;
+		font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
+		}
+
+	#calendar {
+		width: 900px;
+		margin: 0 auto;
+		}
+
+</style>
+</head>
+<body>
+	
+	<h1>gotoDate test page</h1>
+	<p>
+		This page is to test refactoring of gotoDate to check whether or not to call render() based on view.visStart and view.visEnd.
+	</p>
+<div id='calendar'></div>
+</body>
+</html>