| | |
| | | this.set_page_buttons(); |
| | | |
| | | if (this.env.address_sources && this.env.address_sources[this.env.source] && !this.env.address_sources[this.env.source].readonly) |
| | | this.enable_command('add', true); |
| | | this.enable_command('add', 'import', true); |
| | | |
| | | if (this.env.cid) |
| | | this.enable_command('show', 'edit', true); |
| | |
| | | if ((this.env.action=='add' || this.env.action=='edit') && this.gui_objects.editform) |
| | | this.enable_command('save', true); |
| | | else |
| | | this.enable_command('search', 'reset-search', 'moveto', 'import', true); |
| | | this.enable_command('search', 'reset-search', 'moveto', true); |
| | | |
| | | if (this.contact_list && this.contact_list.rowcount > 0) |
| | | this.enable_command('export', true); |
| | |
| | | this.reset_qsearch(); |
| | | |
| | | this.list_contacts(props); |
| | | this.enable_command('add', (this.env.address_sources && !this.env.address_sources[props].readonly)); |
| | | this.enable_command('add', 'import', (this.env.address_sources && !this.env.address_sources[props].readonly)); |
| | | } |
| | | break; |
| | | |
| | |
| | | if (this.env.sort_col==sort_col) |
| | | sort_order = this.env.sort_order=='ASC' ? 'DESC' : 'ASC'; |
| | | else |
| | | sort_order = 'ASC'; |
| | | |
| | | sort_order = 'ASC'; |
| | | |
| | | // set table header class |
| | | $('#rcm'+this.env.sort_col).removeClass('sorted'+(this.env.sort_order.toUpperCase())); |
| | | $('#rcm'+sort_col).addClass('sorted'+sort_order); |
| | |
| | | this.lock_form(this.gui_objects.importform, true); |
| | | } |
| | | else |
| | | this.goto_url('import'); |
| | | this.goto_url('import', (this.env.source ? '_target='+urlencode(this.env.source)+'&' : '')); |
| | | break; |
| | | |
| | | case 'export': |
| | |
| | | this.env.current_page = 1; |
| | | this.set_busy(true, 'searching'); |
| | | this.http_request('search', '_filter='+filter |
| | | + (search ? '&_q='+urlencode(search) : '') |
| | | + (this.env.mailbox ? '&_mbox='+urlencode(this.env.mailbox) : ''), true); |
| | | + (search ? '&_q='+urlencode(search) : '') |
| | | + (this.env.mailbox ? '&_mbox='+urlencode(this.env.mailbox) : ''), true); |
| | | } |
| | | |
| | | |
| | |
| | | if (this.env.flag_for_deletion) |
| | | this.mark_message('delete'); |
| | | // if there isn't a defined trash mailbox or we are in it |
| | | else if (!this.env.trash_mailbox || String(this.env.mailbox).toLowerCase() == String(this.env.trash_mailbox).toLowerCase()) |
| | | else if (!this.env.trash_mailbox || this.env.mailbox == this.env.trash_mailbox) |
| | | this.permanently_remove_messages(); |
| | | // if there is a trash mailbox defined and we're not currently in it |
| | | else { |
| | |
| | | // move cursor before the signature |
| | | this.set_caret_pos(input_message.get(0), cursor_pos); |
| | | } |
| | | else if (is_html && this.env.signatures) { // html |
| | | else if (is_html && show_sig && this.env.signatures) { // html |
| | | var editor = tinyMCE.get(this.env.composebody); |
| | | var sigElem = editor.dom.get('_rc_sig'); |
| | | |
| | |
| | | this.ksearch_display_results = function (a_results) |
| | | { |
| | | // display search results |
| | | if (a_results.length && this.ksearch_input) { |
| | | var p, ul, li; |
| | | if (a_results.length && this.ksearch_input && this.ksearch_value) { |
| | | var p, ul, li, s_val = this.ksearch_value; |
| | | |
| | | // create results pane if not present |
| | | if (!this.ksearch_pane) { |
| | |
| | | // remove all search results |
| | | ul = this.ksearch_pane.__ul; |
| | | ul.innerHTML = ''; |
| | | |
| | | |
| | | // add each result line to list |
| | | for (i=0; i<a_results.length; i++) { |
| | | li = document.createElement('LI'); |
| | | li.innerHTML = a_results[i].replace(new RegExp('('+this.ksearch_value+')', 'ig'), '##$1%%').replace(/</g, '<').replace(/>/g, '>').replace(/##([^%]+)%%/g, '<b>$1</b>'); |
| | | li.innerHTML = a_results[i].replace(new RegExp('('+s_val+')', 'ig'), '##$1%%').replace(/</g, '<').replace(/>/g, '>').replace(/##([^%]+)%%/g, '<b>$1</b>'); |
| | | li.onmouseover = function(){ ref.ksearch_select(this); }; |
| | | li.onmouseup = function(){ ref.ksearch_click(this) }; |
| | | li._rcm_id = i; |
| | |
| | | if (!this.gui_objects.subscriptionlist) |
| | | return false; |
| | | |
| | | // find not protected folder |
| | | for (var refid in this.env.subscriptionrows) |
| | | if (this.env.subscriptionrows[refid]!=null && !this.env.subscriptionrows[refid][2]) |
| | | // find not protected folder |
| | | var refid; |
| | | for (var rid in this.env.subscriptionrows) |
| | | if (this.env.subscriptionrows[rid]!=null && !this.env.subscriptionrows[rid][2]) { |
| | | refid = rid; |
| | | break; |
| | | } |
| | | |
| | | var refrow, form; |
| | | var tbody = this.gui_objects.subscriptionlist.tBodies[0]; |
| | |
| | | refid = replace.id; |
| | | } |
| | | |
| | | if (!id || !(refrow = document.getElementById(refid))) |
| | | if (!id || !refid || !(refrow = document.getElementById(refid))) |
| | | { |
| | | // Refresh page if we don't have a table row to clone |
| | | this.goto_url('folders'); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | |
| | | // set messages count to zero |
| | | if (!replace) |
| | | row.cells[1].innerHTML = '*'; |
| | | |
| | | |
| | | if (!replace && row.cells[2] && row.cells[2].firstChild.tagName.toLowerCase()=='input') |
| | | { |
| | | row.cells[2].firstChild.value = name; |
| | |
| | | |
| | | if (this.env.framed && window.parent) |
| | | parent.location.href = url; |
| | | else |
| | | else |
| | | location.href = url; |
| | | }; |
| | | |
| | |
| | | var url = this.env.comm_path + '&_action=' + action + '&' + querystring |
| | | |
| | | // send request |
| | | console.log('HTTP POST: ' + url); |
| | | console.log('HTTP GET: ' + url); |
| | | jQuery.get(url, { _unlock:(lock?1:0) }, function(data){ ref.http_response(data); }, 'json'); |
| | | }; |
| | | |
| | |
| | | |
| | | case 'moveto': |
| | | if (this.env.action == 'show') { |
| | | // re-enable commands on move/delete error |
| | | this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'edit', 'viewsource', 'download', true); |
| | | // re-enable commands on move/delete error |
| | | this.enable_command('reply', 'reply-all', 'forward', 'delete', 'mark', 'print', 'open', 'edit', 'viewsource', 'download', true); |
| | | } else if (this.message_list) |
| | | this.message_list.init(); |
| | | break; |
| | |
| | | this.show_contentframe(false); |
| | | // disable commands useless when mailbox is empty |
| | | this.enable_command('show', 'reply', 'reply-all', 'forward', 'moveto', 'delete', |
| | | 'mark', 'viewsource', 'open', 'edit', 'download', 'print', 'load-attachment', |
| | | 'purge', 'expunge', 'select-all', 'select-none', 'sort', false); |
| | | 'mark', 'viewsource', 'open', 'edit', 'download', 'print', 'load-attachment', |
| | | 'purge', 'expunge', 'select-all', 'select-none', 'sort', false); |
| | | } |
| | | break; |
| | | |
| | |
| | | }; |
| | | |
| | | // send periodic request to check for recent messages |
| | | this.check_for_recent = function(setbusy) |
| | | this.check_for_recent = function(refresh) |
| | | { |
| | | if (this.busy) |
| | | return; |
| | | |
| | | if (setbusy) |
| | | this.set_busy(true, 'checkingmail'); |
| | | |
| | | var addurl = '_t=' + (new Date().getTime()); |
| | | |
| | | if (refresh) { |
| | | this.set_busy(true, 'checkingmail'); |
| | | addurl += '&_refresh=1'; |
| | | } |
| | | |
| | | if (this.gui_objects.messagelist) |
| | | addurl += '&_list=1'; |
| | | if (this.gui_objects.quotadisplay) |