From 29d86ad478fee8fc55b22a05b797124aa972ddf9 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 7 Aug 2015 14:13:27 -0400 Subject: [PATCH] (js) Respect user's settings in Calendar module --- UI/Scheduler/UIxCalMainView.m | 5 +++- .../js/Scheduler/CalendarListController.js | 1 + .../js/Scheduler/Component.service.js | 25 +++++++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/UI/Scheduler/UIxCalMainView.m b/UI/Scheduler/UIxCalMainView.m index fad816823..2a7a8680a 100644 --- a/UI/Scheduler/UIxCalMainView.m +++ b/UI/Scheduler/UIxCalMainView.m @@ -33,6 +33,7 @@ #import #import +#import #import #import #import @@ -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]; diff --git a/UI/WebServerResources/js/Scheduler/CalendarListController.js b/UI/WebServerResources/js/Scheduler/CalendarListController.js index bda28a808..846180e5f 100644 --- a/UI/WebServerResources/js/Scheduler/CalendarListController.js +++ b/UI/WebServerResources/js/Scheduler/CalendarListController.js @@ -46,6 +46,7 @@ if (angular.isUndefined(Component['$' + type])) Component.$filter(type); vm.componentType = type; + Component.saveSelectedList(type); } } diff --git a/UI/WebServerResources/js/Scheduler/Component.service.js b/UI/WebServerResources/js/Scheduler/Component.service.js index 3913b9d26..0cef62f3a 100644 --- a/UI/WebServerResources/js/Scheduler/Component.service.js +++ b/UI/WebServerResources/js/Scheduler/Component.service.js @@ -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