- Add option for minimum length of autocomplete's string (#1486428)
| | |
| | | - Add missing confirmation/error messages on contact/group/message actions (#1486845) |
| | | - Add 'loading' message on message move/copy/delete/mark actions |
| | | - Improve responsiveness of messages displaying (#1486986) |
| | | - Add option for minimum length of autocomplete's string (#1486428) |
| | | |
| | | RELEASE 0.4.2 |
| | | ------------- |
| | |
| | | // when populating address autocomplete fields server-side. ex: array('sql','Verisign'); |
| | | $rcmail_config['autocomplete_addressbooks'] = array('sql'); |
| | | |
| | | // The minimum number of characters required to be typed in an autocomplete field |
| | | // before address books will be searched. Most useful for LDAP directories that |
| | | // may need to do lengthy results building given overly-broad searches |
| | | $rcmail_config['autocomplete_min_length'] = 1; |
| | | |
| | | // ---------------------------------- |
| | | // USER PREFERENCES |
| | | // ---------------------------------- |
| | |
| | | return; |
| | | |
| | | // get cursor pos |
| | | var inp_value = this.ksearch_input.value; |
| | | var cpos = this.get_caret_pos(this.ksearch_input); |
| | | var p = inp_value.lastIndexOf(this.ksearch_value, cpos); |
| | | var inp_value = this.ksearch_input.value, |
| | | cpos = this.get_caret_pos(this.ksearch_input), |
| | | p = inp_value.lastIndexOf(this.ksearch_value, cpos), |
| | | insert = '', |
| | | |
| | | // replace search string with full address |
| | | var pre = this.ksearch_input.value.substring(0, p); |
| | | var end = this.ksearch_input.value.substring(p+this.ksearch_value.length, this.ksearch_input.value.length); |
| | | var insert = ''; |
| | | // replace search string with full address |
| | | pre = inp_value.substring(0, p), |
| | | end = inp_value.substring(p+this.ksearch_value.length, inp_value.length); |
| | | |
| | | // insert all members of a group |
| | | if (typeof this.env.contacts[id] == 'object' && this.env.contacts[id].id) { |
| | |
| | | this.ksearch_get_results = function() |
| | | { |
| | | var inp_value = this.ksearch_input ? this.ksearch_input.value : null; |
| | | |
| | | if (inp_value === null) |
| | | return; |
| | | |
| | |
| | | this.ksearch_pane.hide(); |
| | | |
| | | // get string from current cursor pos to last comma |
| | | var cpos = this.get_caret_pos(this.ksearch_input); |
| | | var p = inp_value.lastIndexOf(',', cpos-1); |
| | | var q = inp_value.substring(p+1, cpos); |
| | | var cpos = this.get_caret_pos(this.ksearch_input), |
| | | p = inp_value.lastIndexOf(',', cpos-1), |
| | | q = inp_value.substring(p+1, cpos), |
| | | min = this.env.autocomplete_min_length; |
| | | |
| | | // trim query string |
| | | q = q.replace(/(^\s+|\s+$)/g, ''); |
| | |
| | | if (q == this.ksearch_value) |
| | | return; |
| | | |
| | | if (q.length < min) { |
| | | if (!this.env.acinfo) { |
| | | var label = this.get_label('autocompletechars'); |
| | | label = label.replace('$min', min); |
| | | this.env.acinfo = this.display_message(label); |
| | | } |
| | | return; |
| | | } |
| | | else if (this.env.acinfo && q.length == min) { |
| | | this.hide_message(this.env.acinfo); |
| | | } |
| | | |
| | | var old_value = this.ksearch_value; |
| | | this.ksearch_value = q; |
| | | |
| | |
| | | $messages['messagemoved'] = 'Message(s) moved successfully'; |
| | | $messages['messagecopied'] = 'Message(s) copied successfully'; |
| | | $messages['messagemarked'] = 'Message(s) marked successfully'; |
| | | $messages['autocompletechars'] = 'Enter at least $min characters for autocompletion'; |
| | | |
| | | ?> |
| | |
| | | $messages['messagemoved'] = 'Wiadomości zostały przeniesione'; |
| | | $messages['messagecopied'] = 'Wiadomości zostały skopiowane'; |
| | | $messages['messagemarked'] = 'Wiadomości zostały oznaczone'; |
| | | $messages['autocompletechars'] = 'Wprowadź co najmniej $min znak(ów) aby skorzystać z autouzupełniania'; |
| | | |
| | | ?> |
| | |
| | | // add some labels to client |
| | | $OUTPUT->add_label('nosubject', 'nosenderwarning', 'norecipientwarning', 'nosubjectwarning', 'cancel', |
| | | 'nobodywarning', 'notsentwarning', 'notuploadedwarning', 'savingmessage', 'sendingmessage', |
| | | 'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'fileuploaderror'); |
| | | 'messagesaved', 'converting', 'editorwarning', 'searching', 'uploading', 'fileuploaderror', |
| | | 'autocompletechars'); |
| | | |
| | | // add config parameters to client script |
| | | 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']['reply_uid']) |