| | |
| | | { |
| | | this.enable_command('compose', 'add-contact', false); |
| | | parent.rcmail.show_contentframe(true); |
| | | parent.rcmail.mark_message('read', this.env.uid); |
| | | } |
| | | |
| | | if ((this.env.action=='show' || this.env.action=='preview') && this.env.blockedobjects) |
| | |
| | | this.delete_messages = function() |
| | | { |
| | | var selection = this.message_list ? this.message_list.get_selection() : new Array(); |
| | | |
| | | |
| | | // exit if no mailbox specified or if selection is empty |
| | | if (!this.env.uid && !selection.length) |
| | | return; |
| | |
| | | this._with_selected_messages = function(action, lock, add_url) |
| | | { |
| | | var a_uids = new Array(); |
| | | |
| | | if (this.env.uid) |
| | | a_uids[a_uids.length] = this.env.uid; |
| | | a_uids[0] = this.env.uid; |
| | | else |
| | | { |
| | | var selection = this.message_list.get_selection(); |
| | |
| | | { |
| | | id = selection[n]; |
| | | a_uids[a_uids.length] = id; |
| | | |
| | | this.message_list.remove_row(id, (n == selection.length-1)); |
| | | } |
| | | } |
| | | |
| | | |
| | | // also send search request to get the right messages |
| | | if (this.env.search_request) |
| | | add_url += '&_search='+this.env.search_request; |
| | |
| | | var a_uids = new Array(); |
| | | var r_uids = new Array(); |
| | | var selection = this.message_list ? this.message_list.get_selection() : new Array(); |
| | | |
| | | |
| | | if (uid) |
| | | a_uids[0] = uid; |
| | | else if (this.env.uid) |
| | | a_uids[0] = this.env.uid; |
| | | else if (this.message_list) |
| | | { |
| | | for (var id, n=0; n<selection.length; n++) |
| | | for (var n=0; n<selection.length; n++) |
| | | { |
| | | a_uids[a_uids.length] = selection[n]; |
| | | } |
| | | } |
| | | |
| | | for (var id, n=0; n<a_uids.length; n++) |
| | | if (!this.message_list) |
| | | r_uids = a_uids; |
| | | else |
| | | for (var id, n=0; n<a_uids.length; n++) |
| | | { |
| | | id = a_uids[n]; |
| | | if ((flag=='read' && this.message_list.rows[id].unread) |
| | |
| | | r_uids[r_uids.length] = id; |
| | | } |
| | | } |
| | | |
| | | |
| | | // nothing to do |
| | | if (!r_uids.length) |
| | | return; |
| | | |
| | | |
| | | switch (flag) |
| | | { |
| | | case 'read': |
| | |
| | | |
| | | this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag='+flag); |
| | | }; |
| | | |
| | | // set class to read/unread |
| | | this.mark_as_read_from_preview = function(uid) |
| | | { |
| | | var icn_src; |
| | | var rows = parent.rcmail.message_list.rows; |
| | | if(rows[uid].unread) |
| | | { |
| | | rows[uid].unread = false; |
| | | rows[uid].classname = rows[uid].classname.replace(/\s*unread/, ''); |
| | | parent.rcmail.set_classname(rows[uid].obj, 'unread', false); |
| | | |
| | | if (rows[uid].replied && parent.rcmail.env.repliedicon) |
| | | icn_src = parent.rcmail.env.repliedicon; |
| | | else if (parent.rcmail.env.messageicon) |
| | | icn_src = parent.rcmail.env.messageicon; |
| | | |
| | | if (rows[uid].icon && icn_src) |
| | | rows[uid].icon.src = icn_src; |
| | | } |
| | | } |
| | | |
| | | |
| | | // mark all message rows as deleted/undeleted |
| | | this.toggle_delete_status = function(a_uids) |
| | | { |
| | | if (this.env.read_when_deleted) |
| | | this.mark_message('read',a_uids); |
| | | |
| | | // if deleting message from "view message" don't bother with delete icon |
| | | if (this.env.action == "show") |
| | | return false; |
| | | |
| | | var rows = this.message_list.rows; |
| | | var rows = this.message_list ? this.message_list.rows : new Array(); |
| | | |
| | | if (a_uids.length==1) |
| | | { |
| | | if (rows[a_uids[0]] && rows[a_uids[0]].classname.indexOf('deleted') < 0) |
| | | if (!rows.length || (rows[a_uids[0]] && rows[a_uids[0]].classname.indexOf('deleted') < 0)) |
| | | this.flag_as_deleted(a_uids); |
| | | else |
| | | this.flag_as_undeleted(a_uids); |
| | |
| | | |
| | | this.flag_as_undeleted = function(a_uids) |
| | | { |
| | | // if deleting message from "view message" don't bother with delete icon |
| | | if (this.env.action == "show") |
| | | return false; |
| | | |
| | | var icn_src; |
| | | var rows = this.message_list.rows; |
| | | var rows = this.message_list ? this.message_list.rows : new Array(); |
| | | |
| | | for (var i=0; i<a_uids.length; i++) |
| | | { |
| | |
| | | icn_src = this.env.repliedicon; |
| | | else if (this.env.messageicon) |
| | | icn_src = this.env.messageicon; |
| | | |
| | | if (rows[uid].icon && icn_src) |
| | | rows[uid].icon.src = icn_src; |
| | | } |
| | |
| | | |
| | | this.flag_as_deleted = function(a_uids) |
| | | { |
| | | // if deleting message from "view message" don't bother with delete icon |
| | | if (this.env.action == "show") |
| | | return false; |
| | | |
| | | var rows = this.message_list.rows; |
| | | var add_url = ''; |
| | | var r_uids = new Array(); |
| | | var rows = this.message_list ? this.message_list.rows : new Array(); |
| | | |
| | | for (var i=0; i<a_uids.length; i++) |
| | | { |
| | | { |
| | | uid = a_uids[i]; |
| | | if (rows[uid]) { |
| | | if (rows[uid]) |
| | | { |
| | | rows[uid].deleted = true; |
| | | |
| | | if (rows[uid].classname.indexOf('deleted')<0) { |
| | | if (rows[uid].classname.indexOf('deleted')<0) |
| | | { |
| | | rows[uid].classname += ' deleted'; |
| | | this.set_classname(rows[uid].obj, 'deleted', true); |
| | | } |
| | | if (rows[uid].icon && this.env.deletedicon) |
| | | } |
| | | |
| | | if (rows[uid].icon && this.env.deletedicon) |
| | | rows[uid].icon.src = this.env.deletedicon; |
| | | } |
| | | } |
| | | |
| | | this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag=delete'); |
| | | if (rows[uid].unread) |
| | | r_uids[r_uids.length] = uid; |
| | | } |
| | | } |
| | | |
| | | if (r_uids.length) |
| | | add_url = '&_ruid='+r_uids.join(','); |
| | | |
| | | this.http_post('mark', '_uid='+a_uids.join(',')+'&_flag=delete'+add_url); |
| | | return true; |
| | | }; |
| | | |
| | | |
| | | // flag as read without mark request (called from backend) |
| | | // argument should be a coma-separated list of uids |
| | | this.flag_deleted_as_read = function(uids) |
| | | { |
| | | var icn_src; |
| | | var rows = this.message_list ? this.message_list.rows : new Array(); |
| | | var str = String(uids); |
| | | var a_uids = new Array(); |
| | | |
| | | a_uids = str.split(','); |
| | | |
| | | for (var uid, i=0; i<a_uids.length; i++) |
| | | { |
| | | uid = a_uids[i]; |
| | | if (rows[uid]) |
| | | { |
| | | rows[uid].unread = false; |
| | | rows[uid].read = true; |
| | | |
| | | rows[uid].classname = rows[uid].classname.replace(/\s*unread/, ''); |
| | | this.set_classname(rows[uid].obj, 'unread', false); |
| | | |
| | | if (rows[uid].icon) |
| | | rows[uid].icon.src = this.env.deletedicon; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | /*********************************************************/ |
| | | /********* login form methods *********/ |
| | |
| | | this.set_page_buttons(); |
| | | }; |
| | | |
| | | |
| | | // replace content of quota display |
| | | this.set_quota = function() |
| | | this.set_quota = function(content) |
| | | { |
| | | if (this.gui_objects.quotadisplay && |
| | | this.gui_objects.quotadisplay.attributes.getNamedItem('display') && |
| | | this.gui_objects.quotadisplay.attributes.getNamedItem('id')) |
| | | this.http_request('quotadisplay', '_display='+ |
| | | this.gui_objects.quotadisplay.attributes.getNamedItem('display').nodeValue+ |
| | | '&_id='+this.gui_objects.quotadisplay.attributes.getNamedItem('id').nodeValue, false); |
| | | }; |
| | | if (this.gui_objects.quotadisplay && content) |
| | | this.gui_objects.quotadisplay.innerHTML = content; |
| | | }; |
| | | |
| | | |
| | | // update the mailboxlist |
| | |
| | | } |
| | | }; |
| | | |
| | | |
| | | // update parent's mailboxlist (from preview) |
| | | this.set_unread_count_from_preview = function(mbox, count, set_title) |
| | | { |
| | | parent.rcmail.set_unread_count(mbox, count, set_title); |
| | | } |
| | | |
| | | // add row to contacts list |
| | | this.add_contact_row = function(cid, cols, select) |
| | | { |