summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2010-03-31 15:23:22 +0000
committerthomascube <thomas@roundcube.net>2010-03-31 15:23:22 +0000
commitc0297f4172da47a20350d597176ecafee47c97bb (patch)
treefc7ce0fc563577c996654d1e123ead119a5a2245 /program/js
parent3baa72a62fc69dda8306674da6d150efbf2cd55b (diff)
Asynchronously expand contact groups + skip count queries in autocompletion mode + check for the existance of contactgroups table
Diffstat (limited to 'program/js')
-rw-r--r--program/js/app.js16
1 files changed, 13 insertions, 3 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 22eedf600..8c08e3ecf 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3238,9 +3238,11 @@ function rcube_webmail()
var insert = '';
// insert all members of a group
- if (typeof this.env.contacts[id] == 'object' && this.env.contacts[id].members) {
- for (var i=0; i < this.env.contacts[id].members.length; i++)
- insert += this.env.contacts[id].members[i] + ', ';
+ if (typeof this.env.contacts[id] == 'object' && this.env.contacts[id].id) {
+ 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);
}
else if (typeof this.env.contacts[id] == 'string')
insert = this.env.contacts[id] + ', ';
@@ -3252,6 +3254,14 @@ function rcube_webmail()
if (this.ksearch_input.setSelectionRange)
this.ksearch_input.setSelectionRange(cpos, cpos);
};
+
+ 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.group2expand = null;
+ }
+ };
// address search processor
this.ksearch_get_results = function()