summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-07-25 10:49:39 +0000
committeralecpl <alec@alec.pl>2011-07-25 10:49:39 +0000
commit0213f8d4dddf88b1a3eec91ff0f95832ebac3008 (patch)
treed221b163d8097347d666edfc5ef393e6020dda3b /program/steps
parent18371736346a2f71f37f68e6fd13de8b230a8baf (diff)
- Added optional "multithreading" autocomplete feature
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/mail/autocomplete.inc21
-rw-r--r--program/steps/mail/compose.inc8
2 files changed, 21 insertions, 8 deletions
diff --git a/program/steps/mail/autocomplete.inc b/program/steps/mail/autocomplete.inc
index 395c0e12b..2968f0335 100644
--- a/program/steps/mail/autocomplete.inc
+++ b/program/steps/mail/autocomplete.inc
@@ -19,9 +19,6 @@
*/
-$MAXNUM = 15;
-$book_types = (array) $RCMAIL->config->get('autocomplete_addressbooks', 'sql');
-
if ($RCMAIL->action == 'group-expand') {
$abook = $RCMAIL->get_address_book(get_input_value('_source', RCUBE_INPUT_GPC));
if ($gid = get_input_value('_gid', RCUBE_INPUT_GPC)) {
@@ -36,8 +33,22 @@ if ($RCMAIL->action == 'group-expand') {
$OUTPUT->command('replace_group_recipients', $gid, join(', ', $members));
}
+
+ $OUTPUT->send();
}
-else if ($book_types && ($search = get_input_value('_search', RCUBE_INPUT_GPC, true))) {
+
+
+$MAXNUM = (int)$RCMAIL->config->get('autocomplete_max', 15);
+$search = get_input_value('_search', RCUBE_INPUT_GPC, true);
+$source = get_input_value('_source', RCUBE_INPUT_GPC);
+$sid = get_input_value('_id', RCUBE_INPUT_GPC);
+
+if (strlen($source))
+ $book_types = array($source);
+else
+ $book_types = (array) $RCMAIL->config->get('autocomplete_addressbooks', 'sql');
+
+if (!empty($book_types) && strlen($search)) {
$contacts = array();
$books_num = count($book_types);
@@ -87,7 +98,7 @@ else if ($book_types && ($search = get_input_value('_search', RCUBE_INPUT_GPC, t
usort($contacts, 'contact_results_sort');
}
-$OUTPUT->command('ksearch_query_results', $contacts, $search);
+$OUTPUT->command('ksearch_query_results', $contacts, $search, $sid);
$OUTPUT->send();
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 899702730..d726d8c86 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -111,7 +111,7 @@ if (!is_array($_SESSION['compose']))
$OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', 'cancel',
'nobodywarning', 'notsentwarning', 'notuploadedwarning', 'savingmessage', 'sendingmessage',
'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'uploadingmany',
- 'fileuploaderror', 'autocompletechars');
+ 'fileuploaderror');
$OUTPUT->set_env('compose_id', $COMPOSE_ID);
@@ -124,7 +124,6 @@ if (!empty($CONFIG['drafts_mbox'])) {
$OUTPUT->set_env('mailbox', $IMAP->get_mailbox_name());
$OUTPUT->set_env('sig_above', $CONFIG['sig_above']);
$OUTPUT->set_env('top_posting', $CONFIG['top_posting']);
-$OUTPUT->set_env('autocomplete_min_length', $CONFIG['autocomplete_min_length']);
// get reference message and set compose mode
if ($msg_uid = $_SESSION['compose']['param']['draft_uid']) {
@@ -466,10 +465,13 @@ function rcmail_compose_headers($attrib)
$input = new $field_type($field_attrib);
$out = $input->show($MESSAGE->compose[$param]);
}
-
+
if ($form_start)
$out = $form_start.$out;
+ // configure autocompletion
+ rcube_autocomplete_init();
+
return $out;
}