Created
July 26, 2013 20:22
-
-
Save tkh44/6091933 to your computer and use it in GitHub Desktop.
what
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
groupAndSortRooms: function(collection) { | |
var startOfWeek = moment().startOf('week'); | |
var endOfWeek = moment().endOf('week'); | |
var startOfNextWeek = moment().add('w', 1).startOf('week'); | |
var endOfNextWeek = moment().add('w', 1).endOf('week'); | |
var thisWeekFormat = 'This Week ' + startOfWeek.format('MM/DD') + '-' + endOfWeek.format('MM/DD'); | |
var nextWeekFormat = 'Next Week ' + startOfNextWeek.format('MM/DD') + '-' + endOfNextWeek.format('MM/DD'); | |
var groupedData = {}; | |
if (!collection.length) { | |
return groupedData; | |
} | |
groupedData[thisWeekFormat] = []; | |
groupedData[nextWeekFormat] = []; | |
groupedData['Upcoming'] = []; | |
// Push the element after comparing time frame to see if this reservation falls on | |
// this week, next week, or some date after that. | |
collection.each(function(el) { | |
var dateText = ""; | |
var timeText = ""; | |
var isMultiDay = moment(el.startDate).endOf('day').isBefore(el.endDate); | |
if (!isMultiDay && moment().add('days', 6).isAfter(el.startDate)) { | |
//it is this week | |
dateText = moment(el.startDate).format('ddd'); | |
} | |
else { | |
//it's later on | |
dateText = moment(el.startDate).format('M/D'); | |
} | |
if (isMultiDay) { | |
//it is multiple days | |
dateText += '-' + moment(el.endDate).format('M/D'); | |
} | |
else { | |
var isAllDay = moment(el.startDate).endOf('day').subtract('hours', 1).isBefore(el.endDate); | |
if (isAllDay) { | |
timeText = 'All Day'; | |
} | |
else { | |
//must be an all day | |
timeText = moment(el.startDate).format('h:mma') + " - " + moment(el.endDate).format('h:mma'); | |
} | |
} | |
el.dateText = dateText; | |
el.timeText = timeText; | |
if (el.startDate >= startOfWeek.valueOf() && el.endDate <= endOfWeek.valueOf()) { | |
groupedData[thisWeekFormat].push(el); | |
} else if (el.startDate >= startOfNextWeek.valueOf() && | |
el.endDate <= endOfNextWeek.valueOf()) { | |
groupedData[nextWeekFormat].push(el); | |
} else { | |
groupedData['Upcoming'].push(el); | |
} | |
}); | |
debugger; | |
return groupedData; | |
}, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment