From 163a13c70f0268a5ea61ca8da9ad1d47f155fc2f Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Mon, 06 Oct 2008 05:37:07 -0400 Subject: [PATCH] - added 'flagged' class handling in set_message() --- program/js/app.js | 55 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 46 insertions(+), 9 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index 8ba0078..85dd42f 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -821,22 +821,27 @@ case 'compose': var url = this.env.comm_path+'&_action=compose'; - if (this.task=='mail' && this.env.mailbox==this.env.drafts_mailbox) + if (this.task=='mail') { - var uid; - if (uid = this.get_single_uid()) - url += '&_draft_uid='+uid+'&_mbox='+urlencode(this.env.mailbox); - } + url += '&_mbox='+urlencode(this.env.mailbox); + + if (this.env.mailbox==this.env.drafts_mailbox) + { + var uid; + if (uid = this.get_single_uid()) + url += '&_draft_uid='+uid; + } + } // modify url if we're in addressbook else if (this.task=='addressbook') { // switch to mail compose step directly if (props && props.indexOf('@') > 0) - { + { url = this.get_task_url('mail', url); this.redirect(url + '&_to='+urlencode(props)); break; - } + } // use contact_id passed as command parameter var a_cids = new Array(); @@ -1609,6 +1614,17 @@ this.set_classname(rows[uid].obj, 'deleted', false); } + if (rows[uid].flagged && rows[uid].classname.indexOf('flagged')<0) + { + rows[uid].classname += ' flagged'; + this.set_classname(rows[uid].obj, 'flagged', true); + } + else if (!rows[uid].flagged && rows[uid].classname.indexOf('flagged')>=0) + { + rows[uid].classname = rows[uid].classname.replace(/\s*flagged/, ''); + this.set_classname(rows[uid].obj, 'flagged', false); + } + this.set_message_icon(uid); } @@ -1924,8 +1940,17 @@ var input_to = rcube_find_object('_to'); var input_cc = rcube_find_object('_cc'); var input_bcc = rcube_find_object('_bcc'); + var input_from = rcube_find_object('_from'); var input_subject = rcube_find_object('_subject'); var input_message = rcube_find_object('_message'); + + // check sender (if have no identities) + if (input_from.type == 'text' && !rcube_check_email(input_from.value, true)) + { + alert(this.get_label('nosenderwarning')); + input_from.focus(); + return false; + } // check for empty recipient var recipients = input_to.value ? input_to.value : (input_cc.value ? input_cc.value : input_bcc.value); @@ -1971,6 +1996,13 @@ this.display_spellcheck_controls = function(vis) { if (this.env.spellcheck) { + // stop spellchecking process + if (!vis && !this.spellcheck_ready) + { + exec_event(this.env.spellcheck.check_link, 'click'); + this.set_spellcheck_state('ready'); + } + this.env.spellcheck.check_link.style.visibility = vis ? 'visible' : 'hidden'; this.env.spellcheck.switch_lan_pic.style.visibility = vis ? 'visible' : 'hidden'; } @@ -3385,7 +3417,11 @@ var row = document.createElement('TR'); row.id = 'rcmrow'+uid; - row.className = 'message '+(even ? 'even' : 'odd')+(flags.unread ? ' unread' : '')+(flags.deleted ? ' deleted' : ''); + row.className = 'message' + + (even ? ' even' : ' odd') + + (flags.unread ? ' unread' : '') + + (flags.deleted ? ' deleted' : '') + + (flags.flagged ? ' flagged' : ''); if (this.message_list.in_selection(uid)) row.className += ' selected'; @@ -3812,13 +3848,14 @@ case 'getunread': case 'list': if (this.task == 'mail') { - if (this.message_list) + if (this.message_list && request_obj.__action == 'list') this.msglist_select(this.message_list); this.enable_command('show', 'expunge', 'select-all', 'select-none', 'sort', (this.env.messagecount > 0)); this.enable_command('purge', this.purge_mailbox_test()); } else if (this.task == 'addressbook') this.enable_command('export', (this.contact_list && this.contact_list.rowcount > 0)); + break; } -- Gitblit v1.9.1