Allow user to choose which weekdays to display

Closes #1841
This commit is contained in:
Francis Lachapelle
2016-05-06 14:22:52 -04:00
parent 3c6da09ff8
commit c5eeadf041
29 changed files with 393 additions and 146 deletions
@@ -281,7 +281,7 @@
* @returns a promise of a collection of objects describing the events blocks
*/
Component.$eventsBlocks = function(view, startDate, endDate) {
var params, futureComponentData, i, j, dates = [],
var params, futureComponentData, i, j, dayDates = [], dayNumbers = [],
deferred = Component.$q.defer();
params = { view: view.toLowerCase(), sd: startDate.getDayString(), ed: endDate.getDayString() };
@@ -306,7 +306,7 @@
Component.$views = [];
Component.$timeout(function() {
_.forEach(views, function(data) {
_.forEach(views, function(data, viewIndex) {
var components = [], blocks = {}, allDayBlocks = {}, viewData;
// Change some attributes names
@@ -325,24 +325,27 @@
_.forEach(_.flatten(data.allDayBlocks), _.bind(associateComponent, components));
// Build array of dates
if (dates.length === 0)
for (i = 0; i < data.blocks.length; i++) {
dates.push(startDate.getDayString());
startDate.addDays(1);
}
if (dayDates.length === 0) {
dayDates = _.flatMap(data.days, 'date');
dayNumbers = _.flatMap(data.days, 'number');
}
// Convert array of blocks to object with days as keys
// Convert array of blocks to an object literal with date strings as keys
for (i = 0; i < data.blocks.length; i++) {
for (j = 0; j < data.blocks[i].length; j++)
data.blocks[i][j].dayNumber = i;
blocks[dates[i]] = data.blocks[i];
for (j = 0; j < data.blocks[i].length; j++) {
data.blocks[i][j].dayIndex = i + (viewIndex * data.blocks.length);
data.blocks[i][j].dayNumber = dayNumbers[i];
}
blocks[dayDates[i]] = data.blocks[i];
}
// Convert array of all-day blocks to object with days as keys
for (i = 0; i < data.allDayBlocks.length; i++) {
for (j = 0; j < data.allDayBlocks[i].length; j++)
data.allDayBlocks[i][j].dayNumber = i;
allDayBlocks[dates[i]] = data.allDayBlocks[i];
for (j = 0; j < data.allDayBlocks[i].length; j++) {
data.allDayBlocks[i][j].dayIndex = i + (viewIndex * data.allDayBlocks.length);
data.allDayBlocks[i][j].dayNumber = dayNumbers[i];
}
allDayBlocks[dayDates[i]] = data.allDayBlocks[i];
}
// "blocks" is now an object literal with the following structure:
@@ -1057,7 +1060,7 @@
var _this = this, options, path, component, date, dlp;
component = this.$omit();
dlp = Component.$Preferences.constructor.$mdDateLocaleProvider;
dlp = Component.$Preferences.$mdDateLocaleProvider;
// Format dates and times
component.startDate = component.start ? component.start.format(dlp, '%Y-%m-%d') : '';