1
0
mirror of https://github.com/moparisthebest/mail synced 2024-11-24 18:02:15 -05:00

Merge pull request #249 from whiteout-io/dev/WO-690

Fetch message contents when leaving read mode
This commit is contained in:
Felix Hammerl 2015-01-15 11:36:56 +01:00
commit c165ced523
4 changed files with 26 additions and 5 deletions

View File

@ -294,6 +294,13 @@ var MailListCtrl = function($scope, $timeout, $location, $filter, $q, status, no
}).catch(dialog.error); }).catch(dialog.error);
} }
$scope.$on('read', function(e, state) {
if (!state) {
// load bodies after closing read mode
$scope.loadVisibleBodies();
}
});
function currentFolder() { function currentFolder() {
return $scope.state.nav && $scope.state.nav.currentFolder; return $scope.state.nav && $scope.state.nav.currentFolder;
} }

View File

@ -4,7 +4,7 @@
// Controller // Controller
// //
var ReadCtrl = function($scope, $location, $q, email, invitation, outbox, pgp, keychain, appConfig, download, auth, dialog) { var ReadCtrl = function($scope, $location, $q, email, invitation, outbox, pgp, keychain, appConfig, download, auth, dialog, status) {
var str = appConfig.string; var str = appConfig.string;
@ -47,6 +47,13 @@ var ReadCtrl = function($scope, $location, $q, email, invitation, outbox, pgp, k
// scope functions // scope functions
// //
/**
* Close read mode and return to mail-list
*/
$scope.close = function() {
status.setReading(false);
};
$scope.getKeyId = function(address) { $scope.getKeyId = function(address) {
if ($location.search().dev || !address) { if ($location.search().dev || !address) {
return; return;

View File

@ -2,7 +2,7 @@
var ngModule = angular.module('woDirectives'); var ngModule = angular.module('woDirectives');
ngModule.directive('listScroll', function() { ngModule.directive('listScroll', function($timeout) {
return { return {
link: function(scope, elm, attrs) { link: function(scope, elm, attrs) {
var model = attrs.listScroll, var model = attrs.listScroll,
@ -12,7 +12,7 @@ ngModule.directive('listScroll', function() {
/* /*
* iterates over the mails in the mail list and loads their bodies if they are visible in the viewport * iterates over the mails in the mail list and loads their bodies if they are visible in the viewport
*/ */
scope.loadVisibleBodies = function() { function loadVisibleBodies() {
var listBorder = listEl.getBoundingClientRect(), var listBorder = listEl.getBoundingClientRect(),
top = listBorder.top, top = listBorder.top,
bottom = listBorder.bottom, bottom = listBorder.bottom,
@ -53,6 +53,13 @@ ngModule.directive('listScroll', function() {
break; break;
} }
} }
}
scope.loadVisibleBodies = function() {
// wait for next tick so that scope is digested and synced to DOM
$timeout(function() {
loadVisibleBodies();
});
}; };
// load body when scrolling // load body when scrolling

View File

@ -6,7 +6,7 @@
<div class="read__folder-toolbar"> <div class="read__folder-toolbar">
<div class="toolbar"> <div class="toolbar">
<a class="toolbar__label" href="#" wo-touch="$event.preventDefault(); state.read.toggle(false)"> <a class="toolbar__label" href="#" wo-touch="$event.preventDefault(); close()">
<svg><use xlink:href="#icon-back" /><title>Back</title></svg> <svg><use xlink:href="#icon-back" /><title>Back</title></svg>
{{state.nav.currentFolder.wellknown ? state.nav.currentFolder.type : state.nav.currentFolder.name}} {{state.nav.currentFolder.wellknown ? state.nav.currentFolder.type : state.nav.currentFolder.name}}
</a> </a>
@ -51,7 +51,7 @@
{{state.mailList.selected.subject ? state.mailList.selected.subject : 'No subject'}} {{state.mailList.selected.subject ? state.mailList.selected.subject : 'No subject'}}
</h2> </h2>
<h2 class="read__subject-md" wo-touch="state.read.toggle(false)"> <h2 class="read__subject-md" wo-touch="close()">
<svg><use xlink:href="#icon-back" /><title>Back</title></svg> <svg><use xlink:href="#icon-back" /><title>Back</title></svg>
{{state.mailList.selected.subject ? state.mailList.selected.subject : 'No subject'}} {{state.mailList.selected.subject ? state.mailList.selected.subject : 'No subject'}}
</h2> </h2>