From 3c978e6e587c9f14970db3703a83f7ab4dd1424b Mon Sep 17 00:00:00 2001 From: barrydegraaff Date: Thu, 9 Aug 2018 20:21:21 +0200 Subject: [PATCH] prevent rpost.biz address to show in auto completion --- com_rpost_rmail/com_rpost_rmail.js | 127 ++++++++++++++++++++++++++-- com_rpost_rmail/com_rpost_rmail.xml | 2 +- 2 files changed, 120 insertions(+), 9 deletions(-) diff --git a/com_rpost_rmail/com_rpost_rmail.js b/com_rpost_rmail/com_rpost_rmail.js index 97e537a..ed68804 100644 --- a/com_rpost_rmail/com_rpost_rmail.js +++ b/com_rpost_rmail/com_rpost_rmail.js @@ -52,15 +52,126 @@ var RPost = com_rpost_rmail_HandlerObject; RPost.prototype.init = function() { AjxPackage.require({name:"MailCore", callback:new AjxCallback(this, this._applyRequestHeaders)}); -try { - var soapDoc = AjxSoapDoc.create("GetSearchFolderRequest", "urn:zimbraMail"); - var search = soapDoc.set("search"); - appCtxt.getAppController().sendRequest({soapDoc:soapDoc, asyncMode:true, callback:RPost.prototype.createSearchFolder}); -} catch (err) -{ - console.log('RPost.prototype.init: failed to create searchfolder'); -} + try { + var soapDoc = AjxSoapDoc.create("GetSearchFolderRequest", "urn:zimbraMail"); + var search = soapDoc.set("search"); + appCtxt.getAppController().sendRequest({soapDoc:soapDoc, asyncMode:true, callback:RPost.prototype.createSearchFolder}); + } catch (err) + { + console.log('RPost.prototype.init: failed to create searchfolder'); + } + /* Avoiding showing .rpost.biz addresses in the auto completion */ + try + { + ZmAutocompleteListView.prototype._handleResponseAutocomplete = + function(context, list) { + + context.state = ZmAutocompleteListView.STATE_RESPONSE; + + if (list && list.length) { + DBG.println("ac", "matches found for '" + context.str + "': " + list.length); + context.list = list; + if (context.isComplete) { + // doing Quick Complete, go ahead and update with the first match + DBG.println("ac", "performing quick completion for: " + context.str); + this._update(context, list[0]); + } else { + // pop up the list of matches + var cleanedContextList = []; + for(var x=0; x 0) + { + this.show(true); + } + else + { + this.show(false); + } + } + } else if (!context.isComplete) { + this._popdown(); + this._showNoResults(); + + var msg = AjxMessageFormat.format(ZmMsg.autocompleteMatches, 0); + this._setLiveRegionText(msg); + } + }; + } + catch(err) + { + try + { + setTimeout(function() + { + ZmAutocompleteListView.prototype._handleResponseAutocomplete = + function(context, list) { + + context.state = ZmAutocompleteListView.STATE_RESPONSE; + + if (list && list.length) { + DBG.println("ac", "matches found for '" + context.str + "': " + list.length); + context.list = list; + if (context.isComplete) { + // doing Quick Complete, go ahead and update with the first match + DBG.println("ac", "performing quick completion for: " + context.str); + this._update(context, list[0]); + } else { + // pop up the list of matches + var cleanedContextList = []; + for(var x=0; x 0) + { + this.show(true); + } + else + { + this.show(false); + } + } + } else if (!context.isComplete) { + this._popdown(); + this._showNoResults(); + + var msg = AjxMessageFormat.format(ZmMsg.autocompleteMatches, 0); + this._setLiveRegionText(msg); + } + }; + }, 3000); + } + catch(err) + { + console.log('RPost Zimlet patching auto completion error:'+err); + } + } }; /** This method is called from init and makes a header available diff --git a/com_rpost_rmail/com_rpost_rmail.xml b/com_rpost_rmail/com_rpost_rmail.xml index 4c39051..f792063 100644 --- a/com_rpost_rmail/com_rpost_rmail.xml +++ b/com_rpost_rmail/com_rpost_rmail.xml @@ -1,4 +1,4 @@ - + rpost.png com_rpost_rmail.js