1
0
mirror of https://github.com/moparisthebest/mail synced 2024-11-26 19:02:20 -05:00

refactor writer to use state scope

This commit is contained in:
Tankred Hase 2013-11-08 21:55:08 +01:00
parent 28a109bb07
commit 866ebbeac4
5 changed files with 26 additions and 26 deletions

View File

@ -40,14 +40,6 @@ define(function(require) {
}
};
$scope.openWriter = function(replyTo) {
$scope.writerReply = !! (replyTo);
$scope.writerOpen = true;
};
$scope.closeWriter = function() {
$scope.writerOpen = false;
};
$scope.openFolder = function(folder) {
$scope.currentFolder = folder;
$scope.state.nav.toggle(false);
@ -284,27 +276,27 @@ define(function(require) {
elm.bind('keydown', function(e) {
var cs = scope.$$childTail;
if (e.keyCode === 78 && !cs.writerOpen) {
if (e.keyCode === 78 && !scope.state.writer.open) {
// n -> new mail
e.preventDefault();
cs.openWriter();
scope.state.writer.write();
} else if (e.keyCode === 82 && !cs.writerOpen && cs.selected) {
} else if (e.keyCode === 82 && !scope.state.writer.open && cs.selected) {
// r -> reply
e.preventDefault();
cs.openWriter(cs.selected);
scope.state.writer.write(cs.selected);
} else if (e.keyCode === 27 && cs.writerOpen) {
} else if (e.keyCode === 27 && scope.state.writer.open) {
// escape -> close writer
e.preventDefault();
cs.closeWriter();
scope.state.writer.close();
} else if (e.keyCode === 27 && cs.accountOpen) {
// escape -> close account view
e.preventDefault();
cs.closeAccount();
} else if (e.keyCode === 83 && !cs.writerOpen && cs.synchronize) {
} else if (e.keyCode === 83 && !scope.state.writer.open && cs.synchronize) {
// s -> sync folder
e.preventDefault();
cs.synchronize();

View File

@ -20,14 +20,22 @@ define(function(require) {
// Init
//
$scope.$watch('writerOpen', function() {
resetFields();
if ($scope.writerReply) {
fillFields($scope.selected);
$scope.updatePreview();
$scope.state.writer = {
open: false,
write: function(replyTo) {
this.open = true;
resetFields();
if (replyTo) {
fillFields(replyTo);
$scope.updatePreview();
}
$scope.verifyTo();
},
close: function() {
this.open = false;
}
$scope.verifyTo();
});
};
function resetFields() {
$scope.writerTitle = 'New email';

View File

@ -19,7 +19,7 @@
</div><!--/.nav-container-->
<!-- lightbox -->
<div class="lightbox-overlay" ng-class="{'show': writerOpen}">
<div class="lightbox-overlay" ng-class="{'show': state.writer.open}">
<div class="lightbox lightbox-effect" ng-include="'tpl/write.html'"></div>
</div>
<div class="lightbox-overlay" ng-class="{'show': accountOpen}">

View File

@ -1,7 +1,7 @@
<div class="controls">
<button ng-click="remove(selected)" class="btn-icon" title="Delete mail">&#xe005;</button>
<button ng-click="openWriter(selected)" class="btn-icon" title="Reply to">&#xe002;</button>
<button ng-click="openWriter()" class="btn-icon" title="New mail">&#xe006;</button>
<button ng-click="state.writer.write(selected)" class="btn-icon" title="Reply to">&#xe002;</button>
<button ng-click="state.writer.write()" class="btn-icon" title="New mail">&#xe006;</button>
</div><!--/.controls-->
<div class="view-read">

View File

@ -1,7 +1,7 @@
<div class="lightbox-body" ng-controller="WriteCtrl">
<header>
<h2>{{writerTitle}}</h2>
<button class="close" ng-click="closeWriter()" data-action="lightbox-close">&#xe007;</button>
<button class="close" ng-click="state.writer.close()" data-action="lightbox-close">&#xe007;</button>
</header>
<div class="content">