From ec65ad6e4843f992915411ec6bb819ebec65ba2e Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 08 Jul 2011 10:18:55 -0400
Subject: [PATCH] Make autocompletion available for plugins

---
 program/js/app.js |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index add9b14..2f9bfbd 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3516,6 +3516,7 @@
     var inp_value = this.ksearch_input.value,
       cpos = this.get_caret_pos(this.ksearch_input),
       p = inp_value.lastIndexOf(this.ksearch_value, cpos),
+      trigger = false,
       insert = '',
 
       // replace search string with full address
@@ -3527,10 +3528,12 @@
       insert += this.env.contacts[id].name + ', ';
       this.group2expand = $.extend({}, this.env.contacts[id]);
       this.group2expand.input = this.ksearch_input;
-      this.http_request('group-expand', '_source='+urlencode(this.env.contacts[id].source)+'&_gid='+urlencode(this.env.contacts[id].id), false);
+      this.http_request('mail/group-expand', '_source='+urlencode(this.env.contacts[id].source)+'&_gid='+urlencode(this.env.contacts[id].id), false);
     }
-    else if (typeof this.env.contacts[id] === 'string')
+    else if (typeof this.env.contacts[id] === 'string') {
       insert = this.env.contacts[id] + ', ';
+      trigger = true;
+    }
 
     this.ksearch_input.value = pre + insert + end;
 
@@ -3538,12 +3541,16 @@
     cpos = p+insert.length;
     if (this.ksearch_input.setSelectionRange)
       this.ksearch_input.setSelectionRange(cpos, cpos);
+
+    if (trigger)
+      this.triggerEvent('autocomplete_insert', { field:this.ksearch_input, insert:insert });
   };
 
   this.replace_group_recipients = function(id, recipients)
   {
     if (this.group2expand && this.group2expand.id == id) {
       this.group2expand.input.value = this.group2expand.input.value.replace(this.group2expand.name, recipients);
+      this.triggerEvent('autocomplete_insert', { field:this.group2expand.input, insert:recipients });
       this.group2expand = null;
     }
   };
@@ -3595,7 +3602,7 @@
       return;
 
     var lock = this.display_message(this.get_label('searching'), 'loading');
-    this.http_post('autocomplete', '_search='+urlencode(q), lock);
+    this.http_post('mail/autocomplete', '_search='+urlencode(q), lock);
   };
 
   this.ksearch_query_results = function(results, search)

--
Gitblit v1.9.1