Skip to content

Instantly share code, notes, and snippets.

@tkh44
Created July 26, 2013 20:22
Show Gist options
  • Save tkh44/6091933 to your computer and use it in GitHub Desktop.
Save tkh44/6091933 to your computer and use it in GitHub Desktop.
what
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