diff options
Diffstat (limited to 'program')
-rw-r--r-- | program/js/app.js | 45 | ||||
-rw-r--r-- | program/steps/mail/func.inc | 18 |
2 files changed, 53 insertions, 10 deletions
diff --git a/program/js/app.js b/program/js/app.js index 83b3972bf..4bae0e349 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -390,6 +390,7 @@ function rcube_webmail() row.unread = this.env.messages[uid].unread ? true : false; row.replied = this.env.messages[uid].replied ? true : false; row.flagged = this.env.messages[uid].flagged ? true : false; + row.forwarded = this.env.messages[uid].forwarded ? true : false; } // set eventhandler to message icon @@ -1748,6 +1749,7 @@ function rcube_webmail() if (rows[uid].icon && icn_src && !(rows[uid].replied && this.env.repliedicon) + && !(rows[uid].forwarded && this.env.forwardedicon) && !(rows[uid].deleted && this.env.deletedicon)) rows[uid].icon.src = icn_src; } @@ -1767,10 +1769,17 @@ function rcube_webmail() 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 (rows[uid].deleted && parent.rcmail.env.deletedicon) + if (rows[uid].deleted && parent.rcmail.env.deletedicon) icn_src = parent.rcmail.env.deletedicon; + else if (rows[uid].replied && parent.rcmail.env.repliedicon) + { + if (rows[uid].forwarded && parent.rcmail.env.forwardedrepliedicon) + icn_src = parent.rcmail.env.forwardedrepliedicon; + else + icn_src = parent.rcmail.env.repliedicon; + } + else if (rows[uid].forwarded && parent.rcmail.env.forwardedicon) + icn_src = parent.rcmail.env.forwardedicon; else if (parent.rcmail.env.messageicon) icn_src = parent.rcmail.env.messageicon; @@ -1859,10 +1868,18 @@ function rcube_webmail() rows[uid].classname = rows[uid].classname.replace(/\s*deleted/, ''); this.set_classname(rows[uid].obj, 'deleted', false); } + if (rows[uid].unread && this.env.unreadicon) icn_src = this.env.unreadicon; else if (rows[uid].replied && this.env.repliedicon) - icn_src = this.env.repliedicon; + { + if (rows[uid].forwarded && this.env.forwardedrepliedicon) + icn_src = this.env.forwardedrepliedicon; + else + icn_src = this.env.repliedicon; + } + else if (rows[uid].forwarded && this.env.forwardedicon) + icn_src = this.env.forwardedicon; else if (this.env.messageicon) icn_src = this.env.messageicon; @@ -3471,6 +3488,7 @@ function rcube_webmail() this.env.messages[uid] = {deleted:flags.deleted?1:0, replied:flags.replied?1:0, unread:flags.unread?1:0, + forwarded:flags.forwarded?1:0, flagged:flags.flagged?1:0}; var row = document.createElement('TR'); @@ -3480,10 +3498,21 @@ function rcube_webmail() if (this.message_list.in_selection(uid)) row.className += ' selected'; - var icon = flags.deleted && this.env.deletedicon ? this.env.deletedicon: - (flags.unread && this.env.unreadicon ? this.env.unreadicon : - (flags.replied && this.env.repliedicon ? this.env.repliedicon : this.env.messageicon)); - + var icon = this.env.messageicon; + if (flags.deleted && this.env.deletedicon) + icon = this.env.deletedicon; + else if(flags.unread && this.env.unreadicon) + icon = this.env.unreadicon; + else if (flags.replied && this.env.repliedicon) + { + if (flags.forwarded && this.env.forwardedrepliedicon) + icon = this.env.forwardedrepliedicon; + else + icon = this.env.repliedicon; + } + else if (flags.forwarded && this.env.forwardedicon) + icon = this.env.forwardedicon; + var col = document.createElement('TD'); col.className = 'icon'; col.innerHTML = icon ? '<img src="'+icon+'" alt="" />' : ''; diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 02bc4dce2..7e9f0fec3 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -206,16 +206,25 @@ function rcmail_message_list($attrib) $js_row_arr['unread'] = true; if ($header->answered) $js_row_arr['replied'] = true; + if ($header->forwarded) + $js_row_arr['forwarded'] = true; if ($header->flagged) $js_row_arr['flagged'] = true; // set message icon if ($attrib['deletedicon'] && $header->deleted) $message_icon = $attrib['deletedicon']; + else if ($attrib['repliedicon'] && $header->answered) + { + if ($attrib['forwardedrepliedicon'] && $header->forwarded) + $message_icon = $attrib['forwardedrepliedicon']; + else + $message_icon = $attrib['repliedicon']; + } + else if ($attrib['forwardedicon'] && $header->forwarded) + $message_icon = $attrib['forwardedicon']; else if ($attrib['unreadicon'] && !$header->seen) $message_icon = $attrib['unreadicon']; - else if ($attrib['repliedicon'] && $header->answered) - $message_icon = $attrib['repliedicon']; else if ($attrib['messageicon']) $message_icon = $attrib['messageicon']; @@ -296,6 +305,10 @@ function rcmail_message_list($attrib) $OUTPUT->set_env('unreadicon', $skin_path . $attrib['unreadicon']); if ($attrib['repliedicon']) $OUTPUT->set_env('repliedicon', $skin_path . $attrib['repliedicon']); + if ($attrib['forwardedicon']) + $OUTPUT->set_env('forwardedicon', $skin_path . $attrib['forwardedicon']); + if ($attrib['forwardedrepliedicon']) + $OUTPUT->set_env('forwardedrepliedicon', $skin_path . $attrib['forwardedrepliedicon']); if ($attrib['attachmenticon']) $OUTPUT->set_env('attachmenticon', $skin_path . $attrib['attachmenticon']); if ($attrib['flaggedicon']) @@ -367,6 +380,7 @@ function rcmail_js_message_list($a_headers, $insert_top=FALSE) $a_msg_flags['deleted'] = $header->deleted ? 1 : 0; $a_msg_flags['unread'] = $header->seen ? 0 : 1; $a_msg_flags['replied'] = $header->answered ? 1 : 0; + $a_msg_flags['forwarded'] = $header->forwarded ? 1 : 0; $a_msg_flags['flagged'] = $header->flagged ? 1 : 0; $OUTPUT->command('add_message_row', |