(js) Persistent state of center list in Calendars

Fixes #3861
pull/226/head
Francis Lachapelle 2016-11-21 16:23:49 -05:00
parent 909b18bddf
commit 99b00254c5
8 changed files with 21 additions and 13 deletions

2
NEWS
View File

@ -3,7 +3,7 @@
New features
- [core] support repetitive email alarms on tasks and events (#1053)
- [web] allow to hide center column on large screens
- [web] allow to hide center column on large screens (#3861)
- [eas] relaxed permission requirements for subscription synchronizations (#3118 and #3180)
Enhancements

View File

@ -278,12 +278,14 @@
- (WOResponse *) saveListStateAction
{
WORequest *request;
NSDictionary *params;
NSString *state;
[self _setupContext];
request = [context request];
params = [[request contentAsString] objectFromJSONString];
state = [request formValueForKey: @"state"];
state = [params objectForKey: @"state"];
[moduleSettings setObject: state
forKey: @"ListState"];
[us synchronize];
@ -291,14 +293,14 @@
return [self responseWithStatus: 204];
}
- (NSString *) listStateStyle
- (BOOL) listIsCollapsed
{
NSString *state;
[self _setupContext];
state = [moduleSettings objectForKey: @"ListState"];
return (state && [state compare: @"collapse"] == NSOrderedSame)? @"display: none;" : @"";
return (state && [state compare: @"collapse"] == NSOrderedSame);
}
- (WOResponse *) saveFoldersOrderAction

View File

@ -9,7 +9,7 @@
<md-card>
<md-card-actions flex-none="flex-none" layout="row" layout-align="start center">
<md-button ng-click="toggleCenter()"
<md-button ng-click="toggleCenter({save: true})"
class="md-icon-button md-primary md-hue-1 hide show-gt-xs"
aria-hidden="true">
<md-icon class="icon-fullscreen"

View File

@ -14,6 +14,7 @@
var dayStartHour = <var:string value="dayStartHour"/>;
var currentView = '<var:string value="currentView"/>';
var localeCode = '<var:string value="localeCode" />';
var centerIsClose = <var:string value="listIsCollapsed.jsonRepresentation" />;
</script>
<var:component className="UIxCalendarSelector" />
@ -348,7 +349,9 @@
</md-toolbar>
<div layout="row" class="md-flex">
<div class="view-list" layout="column" ng-class="{'view-list--close': centerIsClose}">
<div class="view-list ng-hide" layout="column"
ng-show="list.selectedList >= 0"
ng-class="{'view-list--close': centerIsClose}">
<md-toolbar class="md-accent md-hue-1" flex-none="flex-none"
ng-hide="list.mode.multiple">
<!-- sort/filter mode (default) -->

View File

@ -9,7 +9,7 @@
<md-card>
<md-card-actions flex-none="flex-none" layout="row" layout-align="start center">
<md-button ng-click="toggleCenter()"
<md-button ng-click="toggleCenter({save: true})"
class="md-icon-button md-primary md-hue-1 hide show-gt-xs"
aria-hidden="true">
<md-icon class="icon-fullscreen"

View File

@ -9,7 +9,7 @@
<md-card>
<md-card-actions flex-none="flex-none" layout="row" layout-align="start center">
<md-button ng-click="toggleCenter()"
<md-button ng-click="toggleCenter({save: true})"
class="md-icon-button md-primary md-hue-1 hide show-gt-xs"
aria-hidden="true">
<md-icon class="icon-fullscreen"

View File

@ -9,7 +9,7 @@
<md-card>
<md-card-actions flex-none="flex-none" layout="row" layout-align="start center">
<md-button ng-click="toggleCenter()"
<md-button ng-click="toggleCenter({save: true})"
class="md-icon-button md-primary md-hue-1 hide show-gt-xs"
aria-hidden="true">
<md-icon class="icon-fullscreen"

View File

@ -9,14 +9,15 @@
/**
* @ngInject
*/
navController.$inject = ['$rootScope', '$scope', '$timeout', '$interval', '$http', '$window', '$mdSidenav', '$mdToast', '$mdMedia', '$log', 'sgConstant', 'sgSettings', 'Alarm'];
function navController($rootScope, $scope, $timeout, $interval, $http, $window, $mdSidenav, $mdToast, $mdMedia, $log, sgConstant, sgSettings, Alarm) {
navController.$inject = ['$rootScope', '$scope', '$timeout', '$interval', '$http', '$window', '$mdSidenav', '$mdToast', '$mdMedia', '$log', 'sgConstant', 'sgSettings', 'Resource', 'Alarm'];
function navController($rootScope, $scope, $timeout, $interval, $http, $window, $mdSidenav, $mdToast, $mdMedia, $log, sgConstant, sgSettings, Resource, Alarm) {
var resource = new Resource(sgSettings.baseURL(), sgSettings.activeUser());
$scope.isPopup = sgSettings.isPopup;
$scope.activeUser = sgSettings.activeUser();
$scope.baseURL = sgSettings.baseURL();
$scope.leftIsClose = !$mdMedia(sgConstant['gt-md']);
$scope.centerIsClose = false;
$scope.centerIsClose = !!$window.centerIsClose;
// Show current day in top bar
$scope.currentDay = window.currentDay;
@ -53,8 +54,10 @@
$log.debug("toggle right is done");
});
};
$scope.toggleCenter = function() {
$scope.toggleCenter = function(options) {
$scope.centerIsClose = !$scope.centerIsClose;
if (options && options.save)
resource.post(null, 'saveListState', { state: $scope.centerIsClose? 'collapse' : 'rise' });
};
// $scope.openBottomSheet = function() {
// $mdBottomSheet.show({