(js) Respect user's settings in Calendar module

This commit is contained in:
Francis Lachapelle
2015-08-07 14:13:27 -04:00
parent 15a5ab0b12
commit 29d86ad478
3 changed files with 28 additions and 3 deletions
+4 -1
View File
@@ -33,6 +33,7 @@
#import <NGCards/iCalPerson.h>
#import <SOGo/NSArray+Utilities.h>
#import <SOGo/NSString+Utilities.h>
#import <SOGo/SOGoPermissions.h>
#import <SOGo/SOGoUser.h>
#import <SOGo/SOGoUserDefaults.h>
@@ -261,12 +262,14 @@
- (WOResponse *) saveSelectedListAction
{
WORequest *request;
NSDictionary *params;
NSString *selectedList;
[self _setupContext];
request = [context request];
params = [[request contentAsString] objectFromJSONString];
selectedList = [request formValueForKey: @"list"];
selectedList = [params objectForKey: @"list"];
[moduleSettings setObject: selectedList
forKey: @"SelectedList"];
[us synchronize];
@@ -46,6 +46,7 @@
if (angular.isUndefined(Component['$' + type]))
Component.$filter(type);
vm.componentType = type;
Component.saveSelectedList(type);
}
}
@@ -45,11 +45,22 @@
// Filter paramaters specific to events
$queryEvents: { sort: 'start', asc: 1, filterpopup: 'view_next7' },
// Filter parameters specific to tasks
$queryTasks: { sort: 'status', asc: 1, filterpopup: 'view_next7' } //'view_incomplete' }
$queryTasks: { sort: 'status', asc: 1, filterpopup: 'view_incomplete' }
});
Preferences.ready().then(function() {
// Initialize filter parameters from user's settings
Component.$queryEvents.filterpopup = Preferences.settings.CalendarDefaultFilter;
if (Preferences.settings.Calendar.EventsFilterState)
Component.$queryEvents.filterpopup = Preferences.settings.Calendar.EventsFilterState;
if (Preferences.settings.Calendar.TasksFilterState)
Component.$queryTasks.filterpopup = Preferences.settings.Calendar.TasksFilterState;
if (Preferences.settings.Calendar.EventsSortingState) {
Component.$queryEvents.sort = Preferences.settings.Calendar.EventsSortingState[0];
Component.$queryEvents.asc = parseInt(Preferences.settings.Calendar.EventsSortingState[1]);
}
if (Preferences.settings.Calendar.TasksSortingState) {
Component.$queryTasks.sort = Preferences.settings.Calendar.TasksSortingState[0];
Component.$queryTasks.asc = parseInt(Preferences.settings.Calendar.TasksSortingState[1]);
}
Component.$queryTasks.show_completed = parseInt(Preferences.settings.ShowCompletedTasks);
// Initialize categories from user's defaults
Component.$categories = Preferences.defaults.SOGoCalendarCategoriesColors;
@@ -162,6 +173,16 @@
});
};
/**
* @function saveSelectedList
* @desc Save to the user's settings the currently selected list.
* @param {string} componentType - either "events" or "tasks"
* @returns a promise of the HTTP operation
*/
Component.saveSelectedList = function(componentType) {
return this.$$resource.post(null, 'saveSelectedList', { list: componentType + 'ListView' });
};
/**
* @function $eventsBlocksForView
* @desc Events blocks for a specific week