diff --git a/WebRoot/img/mail-recall/ImgMessageRecallClassic.png b/WebRoot/img/mail-recall/ImgMessageRecallClassic.png new file mode 100644 index 0000000000..a321042b46 Binary files /dev/null and b/WebRoot/img/mail-recall/ImgMessageRecallClassic.png differ diff --git a/WebRoot/js/zimbraMail/share/controller/ZmListController.js b/WebRoot/js/zimbraMail/share/controller/ZmListController.js index 0f3b250ff2..11b5e3ad08 100644 --- a/WebRoot/js/zimbraMail/share/controller/ZmListController.js +++ b/WebRoot/js/zimbraMail/share/controller/ZmListController.js @@ -578,6 +578,18 @@ function() { return folder.nId == ZmFolder.ID_OUTBOX; }; +/** + * returns true if the search folder is sent + */ +ZmListController.prototype.isSentFolder = +function() { + var folder = this._getSearchFolder(); + if (!folder) { + return false; + } + return folder.nId == ZmFolder.ID_SENT; +}; + /** * returns true if the search folder is sync failures */ diff --git a/WebRoot/js/zimbraMail/share/model/ZmSetting.js b/WebRoot/js/zimbraMail/share/model/ZmSetting.js index 5479226b1f..858e69f3d9 100644 --- a/WebRoot/js/zimbraMail/share/model/ZmSetting.js +++ b/WebRoot/js/zimbraMail/share/model/ZmSetting.js @@ -270,7 +270,10 @@ ZmSetting.MAIL_UPSELL_ENABLED = "MAIL_UPSELL_ENABLED"; ZmSetting.SOCIAL_EXTERNAL_ENABLED = "SOCIAL_EXTERNAL_ENABLED"; ZmSetting.SOCIAL_EXTERNAL_URL = "SOCIAL_EXTERNAL_URL"; ZmSetting.VOICE_UPSELL_ENABLED = "VOICE_UPSELL_ENABLED"; -ZmSetting.SHARING_ENABLED = "SHARING_ENABLED"; +ZmSetting.SHARING_ENABLED = "SHARING_ENABLED"; + +ZmSetting.MAIL_RECALL_ENABLED = "MAIL_RECALL_ENABLED"; +ZmSetting.MAIL_RECALL_TIME = "MAIL_RECALL_TIME"; //user selected font ZmSetting.FONT_CLASSIC = "classic"; diff --git a/WebRoot/js/zimbraMail/share/model/ZmSettings.js b/WebRoot/js/zimbraMail/share/model/ZmSettings.js index e4b6e6ce7d..0820c1e1c4 100644 --- a/WebRoot/js/zimbraMail/share/model/ZmSettings.js +++ b/WebRoot/js/zimbraMail/share/model/ZmSettings.js @@ -992,6 +992,8 @@ function() { this.registerSetting("RESET_PASSWORD_RECOVERY_CODE_EXPIRY", {name:"zimbraResetPasswordRecoveryCodeExpiry", type:ZmSetting.T_COS, dataType:ZmSetting.D_STRING}); this.registerSetting("PASSWORD_RECOVERY_CODE_VALIDITY", {name:"zimbraRecoveryAccountCodeValidity", type:ZmSetting.T_COS, dataType:ZmSetting.D_STRING}); this.registerSetting("PASSWORD_RECOVERY_SUSPENSION_TIME", {name:"zimbraFeatureResetPasswordSuspensionTime", type:ZmSetting.T_COS, dataType:ZmSetting.D_STRING}); + this.registerSetting("MAIL_RECALL_ENABLED", {name:"zimbraFeatureMailRecallEnabled", type: ZmSetting.T_COS, dataType: ZmSetting.D_BOOLEAN, defaultValue:false}); + this.registerSetting("MAIL_RECALL_TIME", {name:"zimbraFeatureMailRecallTime", type:ZmSetting.T_COS, dataType:ZmSetting.D_INT, defaultValue:30}); // user metadata (included with COS since the user can't change them) this.registerSetting("LICENSE_STATUS", {type:ZmSetting.T_COS, defaultValue:ZmSetting.LICENSE_GOOD}); diff --git a/WebRoot/js/zimbraMail/share/view/ZmActionMenu.js b/WebRoot/js/zimbraMail/share/view/ZmActionMenu.js index 35b9e4efc3..1d53f73c5b 100644 --- a/WebRoot/js/zimbraMail/share/view/ZmActionMenu.js +++ b/WebRoot/js/zimbraMail/share/view/ZmActionMenu.js @@ -100,8 +100,8 @@ function(id, params, elementId) { }; ZmActionMenu.prototype.addOp = -function(id) { - ZmOperation.addOperation(this, id, this._menuItems); +function(id, index) { + ZmOperation.addOperation(this, id, this._menuItems, index); }; ZmActionMenu.prototype.removeOp =