(js) Always show center list when no msg selected

Fixes #4269
pull/218/merge
Francis Lachapelle 2017-09-05 10:16:36 -04:00
parent 8697b6c835
commit 141b3af83b
4 changed files with 45 additions and 37 deletions

1
NEWS
View File

@ -15,6 +15,7 @@ Bug fixes
- [web] fixed display of error when the mail editor is in a popup - [web] fixed display of error when the mail editor is in a popup
- [web] attachments are not displayed on IOS (#4150) - [web] attachments are not displayed on IOS (#4150)
- [web] fixed parsing of pasted email addresses from Spreadsheet (#4258) - [web] fixed parsing of pasted email addresses from Spreadsheet (#4258)
- [web] messages list not accessible when changing mailbox in expanded mail view (#4269)
3.2.10 (2017-07-05) 3.2.10 (2017-07-05)
------------------- -------------------

View File

@ -3,7 +3,7 @@
xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"
xmlns:var="http://www.skyrix.com/od/binding" xmlns:var="http://www.skyrix.com/od/binding"
xmlns:label="OGo:label"> xmlns:label="OGo:label">
<div class="view-list" layout="column" ng-class="{'view-list--close': centerIsClose}"> <div class="view-list" layout="column" ng-class="{'view-list--close': mailbox.centerIsClose(centerIsClose)}">
<!-- in virtual mailbox mode --> <!-- in virtual mailbox mode -->
<md-toolbar class="md-whiteframe-z1 md-hue-3" <md-toolbar class="md-whiteframe-z1 md-hue-3"

View File

@ -1,9 +1,7 @@
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/** (function() {
* @type {angular.Module} /* jshint validthis: true */
*/
(function () {
'use strict'; 'use strict';
/** /**
@ -13,23 +11,43 @@
function navController($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()); var resource = new Resource(sgSettings.baseURL(), sgSettings.activeUser());
$scope.isPopup = sgSettings.isPopup; this.$onInit = function() {
$scope.activeUser = sgSettings.activeUser(); $scope.isPopup = sgSettings.isPopup;
$scope.baseURL = sgSettings.baseURL(); $scope.activeUser = sgSettings.activeUser();
$scope.leftIsClose = !$mdMedia(sgConstant['gt-md']); $scope.baseURL = sgSettings.baseURL();
// Don't hide the center list when on a small device $scope.leftIsClose = !$mdMedia(sgConstant['gt-md']);
$scope.centerIsClose = !!$window.centerIsClose && !$scope.leftIsClose; // Don't hide the center list when on a small device
$scope.centerIsClose = !!$window.centerIsClose && !$scope.leftIsClose;
// Show current day in top bar // Show current day in top bar
$scope.currentDay = window.currentDay; $scope.currentDay = window.currentDay;
$timeout(function() { $timeout(function() {
// Update date when day ends // Update date when day ends
$interval(function() { $interval(function() {
$http.get('../date').then(function(data) { $http.get('../date').then(function(data) {
$scope.currentDay = data; $scope.currentDay = data;
}); });
}, 24 * 3600 * 1000); }, 24 * 3600 * 1000);
}, window.currentDay.secondsBeforeTomorrow * 1000); }, window.currentDay.secondsBeforeTomorrow * 1000);
// Track the 1024px window width threashold
$scope.$watch(function() {
return $mdMedia(sgConstant['gt-md']);
}, function(newVal) {
$scope.isGtMedium = newVal;
if (newVal) {
$scope.leftIsClose = false;
}
});
// Listen to HTTP errors broadcasted from HTTP interceptor
$rootScope.$on('http:Error', onHttpError);
if (sgSettings.activeUser('path').calendar) {
// Fetch Calendar alarms
Alarm.getAlarms();
}
};
$scope.toggleLeft = function() { $scope.toggleLeft = function() {
if ($scope.isGtMedium) { if ($scope.isGtMedium) {
@ -70,14 +88,6 @@
// var detail = angular.element(document.getElementById('detailView')); // var detail = angular.element(document.getElementById('detailView'));
// detail.toggleClass('sg-close'); // detail.toggleClass('sg-close');
// }; // };
$scope.$watch(function() {
return $mdMedia(sgConstant['gt-md']);
}, function(newVal) {
$scope.isGtMedium = newVal;
if (newVal) {
$scope.leftIsClose = false;
}
});
function leftIsClose() { function leftIsClose() {
return !$mdSidenav('left').isOpen(); return !$mdSidenav('left').isOpen();
@ -106,14 +116,6 @@
else else
$log.debug('untrap error'); $log.debug('untrap error');
} }
// Listen to HTTP errors broadcasted from HTTP interceptor
$rootScope.$on('http:Error', onHttpError);
if (sgSettings.activeUser('path').calendar) {
// Fetch Calendar alarms
Alarm.getAlarms();
}
} }
angular.module('SOGo.Common') angular.module('SOGo.Common')

View File

@ -117,6 +117,11 @@
return vm.selectedFolder.$compact(); return vm.selectedFolder.$compact();
} }
this.centerIsClose = function(navController_centerIsClose) {
// Allow the messages list to be hidden only if a message is selected
return this.selectedFolder.hasSelectedMessage() && !!navController_centerIsClose;
};
this.sort = function(field) { this.sort = function(field) {
vm.selectedFolder.$filter({ sort: field }); vm.selectedFolder.$filter({ sort: field });
}; };