| | |
| | | this.set_message_coltypes(this.env.coltypes); |
| | | |
| | | // enable mail commands |
| | | this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', true); |
| | | this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', 'collapse-folder', true); |
| | | |
| | | if (this.env.search_text != null && document.getElementById('quicksearchbox') != null) |
| | | document.getElementById('quicksearchbox').value = this.env.search_text; |
| | |
| | | this.list_contacts(this.env.source); |
| | | break; |
| | | |
| | | // collapse/expand folder |
| | | case 'collapse-folder': |
| | | if (props) |
| | | this.collapse_folder(props); |
| | | break; |
| | | |
| | | // user settings commands |
| | | case 'preferences': |
| | |
| | | this.set_classname(li, 'droptarget', false); |
| | | } |
| | | |
| | | this.collapse_folder = function(id) |
| | | { |
| | | var div; |
| | | if ((li = this.get_folder_li(id)) && |
| | | (div = li.getElementsByTagName("div")[0]) && |
| | | (div.className.match(/collapsed/) || div.className.match(/expanded/))) |
| | | { |
| | | var ul = li.getElementsByTagName("ul")[0]; |
| | | if (div.className.match(/collapsed/)) |
| | | { |
| | | ul.style.display = ''; |
| | | this.set_classname(div, 'collapsed', false); |
| | | this.set_classname(div, 'expanded', true); |
| | | var reg = new RegExp('&'+escape(id)+'&'); |
| | | this.set_env('collapsed_folders', this.env.collapsed_folders.replace(reg, '')); |
| | | } |
| | | else |
| | | { |
| | | ul.style.display = 'none'; |
| | | this.set_classname(div, 'expanded', false); |
| | | this.set_classname(div, 'collapsed', true); |
| | | this.set_env('collapsed_folders', this.env.collapsed_folders+'&'+escape(id)+'&'); |
| | | } |
| | | this.http_post('save-pref', '_name=collapsed_folders&_value='+escape(this.env.collapsed_folders)); |
| | | this.set_unread_count_display(id, false); |
| | | } |
| | | } |
| | | |
| | | // onmouseup handler for folder list item |
| | | this.folder_mouse_up = function(id) |
| | | { |
| | |
| | | |
| | | // start timer for message preview (wait for double click) |
| | | if (selected && this.env.contentframe && !list.multi_selecting) |
| | | this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, this.dblclick_time + 10); |
| | | this.preview_timer = window.setTimeout(function(){ ref.msglist_get_preview(); }, 200); |
| | | else if (this.env.contentframe) |
| | | this.show_contentframe(false); |
| | | }; |
| | |
| | | // remove the 'old' signature |
| | | if (this.env.identity && this.env.signatures && this.env.signatures[this.env.identity]) |
| | | { |
| | | sig = this.env.signatures[this.env.identity]['text']; |
| | | if (sig.indexOf('-- ')!=0) |
| | | if (this.env.signatures[this.env.identity]['is_html']) |
| | | sig = this.env.signatures[this.env.identity]['plain_text']; |
| | | else |
| | | sig = this.env.signatures[this.env.identity]['text']; |
| | | |
| | | if (sig.indexOf('-- ')!=0) |
| | | sig = '-- \n'+sig; |
| | | |
| | | p = message.lastIndexOf(sig); |
| | |
| | | { |
| | | var editor = tinyMCE.get('compose-body'); |
| | | |
| | | if (this.env.signatures && this.env.signatures[id]) |
| | | if (this.env.signatures) |
| | | { |
| | | // Append the signature as a span within the body |
| | | // Append the signature as a div within the body |
| | | var sigElem = editor.dom.get("_rc_sig"); |
| | | var newsig = ''; |
| | | var htmlsig = true; |
| | | |
| | | if (!sigElem) |
| | | { |
| | | sigElem = editor.getDoc().createElement("span"); |
| | | sigElem = editor.getDoc().createElement("div"); |
| | | sigElem.setAttribute("id", "_rc_sig"); |
| | | editor.getBody().appendChild(sigElem); |
| | | } |
| | | if (this.env.signatures[id]['is_html']) |
| | | { |
| | | sigElem.innerHTML = this.env.signatures[id]['text']; |
| | | } |
| | | |
| | | if (this.env.signatures[id]) |
| | | { |
| | | newsig = this.env.signatures[id]['text']; |
| | | htmlsig = this.env.signatures[id]['is_html']; |
| | | } |
| | | |
| | | if (htmlsig) |
| | | sigElem.innerHTML = newsig; |
| | | else |
| | | { |
| | | sigElem.innerHTML = '<pre>' + this.env.signatures[id]['text'] + '</pre>'; |
| | | } |
| | | sigElem.innerHTML = '<pre>' + newsig + '</pre>'; |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | var id, frame, ref = this; |
| | | if (id = list.get_single_selection()) |
| | | this.preview_timer = window.setTimeout(function(){ ref.load_contact(id, 'show'); }, this.dblclick_time + 10); |
| | | this.preview_timer = window.setTimeout(function(){ ref.load_contact(id, 'show'); }, 200); |
| | | else if (this.env.contentframe) |
| | | this.show_contentframe(false); |
| | | |
| | |
| | | var reg, text_obj, item; |
| | | if (item = this.get_folder_li(mbox)) |
| | | { |
| | | // set new text |
| | | text_obj = item.firstChild; |
| | | item.setAttribute('count', count); |
| | | this.set_unread_count_display(mbox, set_title); |
| | | } |
| | | } |
| | | |
| | | |
| | | // update the mailbox count display |
| | | this.set_unread_count_display = function(mbox, set_title) |
| | | { |
| | | var reg, text_obj, item, count, div, children; |
| | | if (item = this.get_folder_li(mbox)) |
| | | { |
| | | count = parseInt(item.getAttribute('count') ? item.getAttribute('count') : 0); |
| | | text_obj = item.getElementsByTagName('a')[0]; |
| | | reg = /\s+\([0-9]+\)$/i; |
| | | |
| | | div = item.getElementsByTagName('div')[0]; |
| | | if (div.className.match(/collapsed/)) |
| | | { |
| | | // add children's counters |
| | | children = item.getElementsByTagName('li'); |
| | | for (var i=0; i<children.length; i++) |
| | | count = count+parseInt(children[i].getAttribute('count') ? children[i].getAttribute('count') : 0); |
| | | } |
| | | |
| | | if (count && text_obj.innerHTML.match(reg)) |
| | | text_obj.innerHTML = text_obj.innerHTML.replace(reg, ' ('+count+')'); |
| | |
| | | else |
| | | text_obj.innerHTML = text_obj.innerHTML.replace(reg, ''); |
| | | |
| | | // set parent's display |
| | | reg = new RegExp(RegExp.escape(this.env.delimiter) + '[^' + RegExp.escape(this.env.delimiter) + ']+'); |
| | | if (mbox.match(reg)) |
| | | this.set_unread_count_display(mbox.replace(reg, ''), false); |
| | | |
| | | // set the right classes |
| | | this.set_classname(item, 'unread', count>0 ? true : false); |
| | | } |