| | |
| | | |
| | | // webmail client settings |
| | | this.dblclick_time = 500; |
| | | this.message_time = 3000; |
| | | this.message_time = 1500; |
| | | |
| | | this.identifier_expr = new RegExp('[^0-9a-z\-_]', 'gi'); |
| | | |
| | |
| | | if (!id) |
| | | return; |
| | | |
| | | var add_url = '', |
| | | target = window, |
| | | action = preview ? 'preview': 'show'; |
| | | var target = window, |
| | | action = preview ? 'preview': 'show', |
| | | url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.env.mailbox); |
| | | |
| | | if (preview && this.env.contentframe && window.frames && window.frames[this.env.contentframe]) { |
| | | target = window.frames[this.env.contentframe]; |
| | | add_url = '&_framed=1'; |
| | | url += '&_framed=1'; |
| | | } |
| | | |
| | | if (safe) |
| | | add_url = '&_safe=1'; |
| | | url += '&_safe=1'; |
| | | |
| | | // also send search request to get the right messages |
| | | if (this.env.search_request) |
| | | add_url += '&_search='+this.env.search_request; |
| | | url += '&_search='+this.env.search_request; |
| | | |
| | | var url = '&_action='+action+'&_uid='+id+'&_mbox='+urlencode(this.env.mailbox)+add_url; |
| | | if (action == 'preview' && String(target.location.href).indexOf(url) >= 0) |
| | | this.show_contentframe(true); |
| | | else { |
| | | if (!this.env.frame_lock) |
| | | this.env.frame_lock = this.set_busy(true, 'loading'); |
| | | if (!this.env.frame_lock) { |
| | | (parent.rcmail ? parent.rcmail : this).env.frame_lock = this.set_busy(true, 'loading'); |
| | | } |
| | | target.location.href = this.env.comm_path+url; |
| | | |
| | | // mark as read and change mbox unread counter |
| | |
| | | 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, ''); |
| | | q = $.trim(q); |
| | | |
| | | // Don't (re-)search if the last results are still active |
| | | 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; |
| | |
| | | this.focus_subscription = function(id) |
| | | { |
| | | var row, folder, |
| | | reg = RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$'); |
| | | delim = RegExp.escape(this.env.delimiter), |
| | | reg = RegExp('['+delim+']?[^'+delim+']+$'); |
| | | |
| | | if (this.drag_active && this.env.folder && (row = document.getElementById(id))) |
| | | if (this.env.subscriptionrows[id] && |
| | |
| | | $(row).addClass('droptarget'); |
| | | } |
| | | } |
| | | else if (this.env.folder.match(new RegExp(RegExp.escape(this.env.delimiter)))) { |
| | | else if (this.env.folder.match(new RegExp(delim))) { |
| | | this.set_env('dstfolder', this.env.delimiter); |
| | | $(this.subscription_list.frame).addClass('droptarget'); |
| | | } |
| | |
| | | |
| | | this.subscription_move_folder = function(list) |
| | | { |
| | | var reg = RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$'); |
| | | var delim = RegExp.escape(this.env.delimiter), |
| | | reg = RegExp('['+delim+']?[^'+delim+']+$'); |
| | | |
| | | if (this.env.folder && this.env.dstfolder && (this.env.dstfolder != this.env.folder) && |
| | | (this.env.dstfolder != this.env.folder.replace(reg, ''))) { |
| | | var reg = new RegExp('[^'+RegExp.escape(this.env.delimiter)+']*['+RegExp.escape(this.env.delimiter)+']', 'g'); |
| | | var reg = new RegExp('[^'+delim+']*['+delim+']', 'g'); |
| | | var basename = this.env.folder.replace(reg, ''); |
| | | var newname = this.env.dstfolder==this.env.delimiter ? basename : this.env.dstfolder+this.env.delimiter+basename; |
| | | |
| | |
| | | } |
| | | |
| | | if (id && this.env.subscriptionrows[id] && (row = document.getElementById(id))) { |
| | | var reg = new RegExp('.*['+RegExp.escape(this.env.delimiter)+']'); |
| | | var delim = RegExp.escape(this.env.delimiter), |
| | | reg = new RegExp('.*['+delim+']'); |
| | | |
| | | this.name_input = document.createElement('input'); |
| | | this.name_input.type = 'text'; |
| | | this.name_input.value = this.env.subscriptionrows[id][0].replace(reg, ''); |
| | | |
| | | reg = new RegExp('['+RegExp.escape(this.env.delimiter)+']?[^'+RegExp.escape(this.env.delimiter)+']+$'); |
| | | reg = new RegExp('['+delim+']?[^'+delim+']+$'); |
| | | this.name_input.__parent = this.env.subscriptionrows[id][0].replace(reg, ''); |
| | | this.name_input.onkeydown = function(e){ rcmail.name_input_keydown(e); }; |
| | | |
| | |
| | | return id; |
| | | } |
| | | else { |
| | | obj.appendTo(cont).bind('mousedown', function(){ return ref.hide_message(obj); }); |
| | | window.setTimeout(function(){ ref.hide_message(obj, true); }, this.message_time); |
| | | obj.appendTo(cont).bind('mousedown', function() { return ref.hide_message(obj); }); |
| | | window.setTimeout(function() { ref.hide_message(obj, true); }, |
| | | this.message_time * (type == 'error' ? 2 : 1)); |
| | | return obj; |
| | | } |
| | | }; |