diff --git a/src/agenda.js b/src/agenda.js
index f8cfe16..9224167 100755
--- a/src/agenda.js
+++ b/src/agenda.js
@@ -71,6 +71,7 @@ function Agenda(element, options, methods) {
tm, firstDay,
nwe, // no weekends (int)
rtl, dis, dit, // day index sign / translate
+ minMinute, maxMinute,
// ...
view = $.extend(this, viewMethods, methods, {
@@ -129,6 +130,8 @@ function Agenda(element, options, methods) {
dis = 1;
dit = 0;
}
+ minMinute = parseTime(options.minTime || 0);
+ maxMinute = parseTime(options.maxTime || 24);
var d0 = rtl ? addDays(cloneDate(view.visEnd), -1) : cloneDate(view.visStart),
d = cloneDate(d0),
@@ -172,8 +175,10 @@ function Agenda(element, options, methods) {
// body
d = zeroDate();
+ var maxd = addMinutes(cloneDate(d), maxMinute);
+ addMinutes(d, minMinute);
s = "
";
- for (i=0; d.getDate() != 2; i++) {
+ for (i=0; d < maxd; i++) {
minutes = d.getMinutes();
s += " day && time.getDay() != day.getDay()) {
+ function timePosition(day, time) { // both date object. day holds 00:00 of current day
+ day = cloneDate(day, true);
+ if (time < addMinutes(cloneDate(day), minMinute)) {
+ return 0;
+ }
+ if (time >= addMinutes(cloneDate(day), maxMinute)) {
return bodyContent.height();
}
var slotMinutes = options.slotMinutes,
- minutes = time.getHours()*60 + time.getMinutes(),
+ minutes = time.getHours()*60 + time.getMinutes() - minMinute,
slotI = Math.floor(minutes / slotMinutes),
tr = body.find('tr:eq(' + slotI + ')'),
td = tr.find('td'),
diff --git a/src/util.js b/src/util.js
index 948791c..73519a0 100755
--- a/src/util.js
+++ b/src/util.js
@@ -128,6 +128,26 @@ var parseISO8601 = fc.parseISO8601 = function(s, ignoreTimezone) {
return new Date(Number(date) + (offset * 60 * 1000));
}
+var parseTime = fc.parseTime = function(s) { // returns minutes since start of day
+ if (typeof s == 'number') { // an hour
+ return s * 60;
+ }
+ if (typeof s == 'object') { // a Date object
+ return s.getHours() * 60 + s.getMinutes();
+ }
+ var m = s.match(/(\d+)(?::(\d+))?\s*(\w+)?/);
+ if (m) {
+ var h = parseInt(m[1]);
+ if (m[3]) {
+ h %= 12;
+ if (m[3].toLowerCase().charAt(0) == 'p') {
+ h += 12;
+ }
+ }
+ return h * 60 + (m[2] ? parseInt(m[2]) : 0);
+ }
+};
+
/* Date Formatting
diff --git a/tests/options.html b/tests/options.html
index a968008..e52c373 100644
--- a/tests/options.html
+++ b/tests/options.html
@@ -69,6 +69,13 @@
timeFormat: "h(:mm)[T]{ - h(:mm)T}",
//timeFormat: { agendaWeek: "'YO'" },
+ minTime: 5,
+ maxTime: '10:45pm',
+ //dayClick: function(date) {
+ // console.log(date);
+ //},
+ //isRTL: true,
+
events: [
{
title: 'All Day Event',