(js) Fix navigation in Mail advanced search mode
parent
045013bc74
commit
ce1fb708a0
|
@ -319,7 +319,7 @@
|
||||||
|
|
||||||
<div id="detailView" class="view-detail"
|
<div id="detailView" class="view-detail"
|
||||||
layout="column" layout-align="start center"
|
layout="column" layout-align="start center"
|
||||||
ng-class="{ 'sg-close': !mailbox.service.selectedFolder.selectedMessage }"
|
ng-class="{ 'sg-close': !mailbox.service.selectedFolder.hasSelectedMessage() }"
|
||||||
md-colors="::{backgroundColor: 'default-background-200'}"
|
md-colors="::{backgroundColor: 'default-background-200'}"
|
||||||
ui-view="message">
|
ui-view="message">
|
||||||
<md-content class="hide show-gt-md md-flex"
|
<md-content class="hide show-gt-md md-flex"
|
||||||
|
|
|
@ -236,7 +236,8 @@
|
||||||
<div class="md-toolbar-tools">
|
<div class="md-toolbar-tools">
|
||||||
<md-chips class="md-flex"
|
<md-chips class="md-flex"
|
||||||
ng-model="app.search.params"
|
ng-model="app.search.params"
|
||||||
md-transform-chip="app.newSearchParam($chip)">
|
md-transform-chip="app.newSearchParam($chip)"
|
||||||
|
sg-transform-on-blur="sg-transform-on-blur">
|
||||||
<input sg-focus-on="advancedSearch" type="text"
|
<input sg-focus-on="advancedSearch" type="text"
|
||||||
ng-disabled="app.currentSearchParam.length == 0"
|
ng-disabled="app.currentSearchParam.length == 0"
|
||||||
sg-placeholder="app.search.options[app.currentSearchParam]"/>
|
sg-placeholder="app.search.options[app.currentSearchParam]"/>
|
||||||
|
|
|
@ -172,6 +172,16 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function selectFolder
|
||||||
|
* @memberof Mailbox.prototype
|
||||||
|
* @desc Mark the folder as selected in the constructor unless virtual mode is active
|
||||||
|
*/
|
||||||
|
Mailbox.prototype.selectFolder = function() {
|
||||||
|
if (!Mailbox.$virtualMode)
|
||||||
|
Mailbox.selectedFolder = this;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function getLength
|
* @function getLength
|
||||||
* @memberof Mailbox.prototype
|
* @memberof Mailbox.prototype
|
||||||
|
@ -238,6 +248,16 @@
|
||||||
return this.selectedMessage == messageId;
|
return this.selectedMessage == messageId;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function hasSelectedMessage
|
||||||
|
* @memberof Mailbox.prototype
|
||||||
|
* @desc Check if a message is selected.
|
||||||
|
* @returns true if the a message is selected
|
||||||
|
*/
|
||||||
|
Mailbox.prototype.hasSelectedMessage = function() {
|
||||||
|
return angular.isDefined(this.selectedMessage);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function $filter
|
* @function $filter
|
||||||
* @memberof Mailbox.prototype
|
* @memberof Mailbox.prototype
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// Expose controller
|
// Expose controller
|
||||||
$window.$mailboxController = vm;
|
$window.$mailboxController = vm;
|
||||||
|
|
||||||
Mailbox.selectedFolder = stateMailbox;
|
stateMailbox.selectFolder();
|
||||||
|
|
||||||
vm.service = Mailbox;
|
vm.service = Mailbox;
|
||||||
vm.accounts = stateAccounts;
|
vm.accounts = stateAccounts;
|
||||||
|
|
|
@ -61,6 +61,8 @@
|
||||||
controllerAs: 'viewer'
|
controllerAs: 'viewer'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onEnter: onEnterMessage,
|
||||||
|
onExit: onExitMessage,
|
||||||
resolve: {
|
resolve: {
|
||||||
stateMailbox: stateVirtualMailboxOfMessage,
|
stateMailbox: stateVirtualMailboxOfMessage,
|
||||||
stateMessages: stateMessages,
|
stateMessages: stateMessages,
|
||||||
|
@ -192,7 +194,7 @@
|
||||||
return mailbox;
|
return mailbox;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (Mailbox.selectedFolder)
|
if (Mailbox.selectedFolder && !Mailbox.$virtualMode)
|
||||||
Mailbox.selectedFolder.$isLoading = true;
|
Mailbox.selectedFolder.$isLoading = true;
|
||||||
|
|
||||||
mailbox = _find(stateAccount.$mailboxes);
|
mailbox = _find(stateAccount.$mailboxes);
|
||||||
|
@ -298,7 +300,7 @@
|
||||||
*/
|
*/
|
||||||
onExitMessage.$inject = ['stateMailbox'];
|
onExitMessage.$inject = ['stateMailbox'];
|
||||||
function onExitMessage(stateMailbox) {
|
function onExitMessage(stateMailbox) {
|
||||||
stateMailbox.selectedMessage = -1;
|
delete stateMailbox.selectedMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -95,7 +95,9 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
search.finally(function() { _this.$isLoading = false; });
|
search.finally(function() {
|
||||||
|
_this.$isLoading = false;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
VirtualMailbox.prototype.stopSearch = function() {
|
VirtualMailbox.prototype.stopSearch = function() {
|
||||||
|
@ -103,6 +105,15 @@
|
||||||
this.$isLoading = false;
|
this.$isLoading = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function selectFolder
|
||||||
|
* @memberof VirtualMailbox.prototype
|
||||||
|
* @desc A no-op for virtual mailbox
|
||||||
|
*/
|
||||||
|
VirtualMailbox.prototype.selectFolder = function() {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function resetSelectedMessage
|
* @function resetSelectedMessage
|
||||||
* @memberof VirtualMailbox.prototype
|
* @memberof VirtualMailbox.prototype
|
||||||
|
@ -114,6 +125,18 @@
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function hasSelectedMessage
|
||||||
|
* @memberof VirtualMailbox.prototype
|
||||||
|
* @desc Check if a message is selected among the resulting mailboxes
|
||||||
|
* @returns true if one message is selected
|
||||||
|
*/
|
||||||
|
VirtualMailbox.prototype.hasSelectedMessage = function() {
|
||||||
|
return angular.isDefined(_.find(this.$mailboxes, function(mailbox) {
|
||||||
|
return angular.isDefined(mailbox.selectedMessage);
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function isSelectedMessage
|
* @function isSelectedMessage
|
||||||
* @memberof VirtualMailbox.prototype
|
* @memberof VirtualMailbox.prototype
|
||||||
|
|
Loading…
Reference in New Issue