From a25d3969a00e60bcbfdf6907f7ce77d4651c1179 Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Tue, 26 May 2009 09:21:57 -0400 Subject: [PATCH] Re-enable the permalink command (allows one to choose right-click and open-in-new-tab) --- program/steps/mail/show.inc | 1 + program/include/rcube_template.php | 3 +++ program/js/app.js | 22 ++++++++++++++++------ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php index d8c2176..51108f1 100755 --- a/program/include/rcube_template.php +++ b/program/include/rcube_template.php @@ -797,6 +797,9 @@ else if (in_array($attrib['command'], $a_static_commands)) { $attrib['href'] = rcmail_url($attrib['command']); } + else if ($attrib['command'] == 'permaurl' && !empty($this->env['permaurl'])) { + $attrib['href'] = $this->env['permaurl']; + } } // overwrite attributes diff --git a/program/js/app.js b/program/js/app.js index b29a357..b9fce8b 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -150,6 +150,9 @@ // enable general commands this.enable_command('logout', 'mail', 'addressbook', 'settings', true); + if (this.env.permaurl) + this.enable_command('permaurl', true); + switch (this.task) { case 'mail': @@ -559,14 +562,21 @@ this.switch_task(command); break; + case 'permaurl': + if (obj && obj.href && obj.target) + return true; + else if (this.env.permaurl) + parent.location.href = this.env.permaurl; + break; + case 'open': - var uid; + var uid; if (uid = this.get_single_uid()) - { - obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid; - return true; - } - break; + { + obj.href = '?_task='+this.env.task+'&_action=show&_mbox='+urlencode(this.env.mailbox)+'&_uid='+uid; + return true; + } + break; // misc list commands case 'list': diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 06c9f53..9beb425 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -65,6 +65,7 @@ // set environement $OUTPUT->set_env('safemode', $MESSAGE->is_safe); $OUTPUT->set_env('sender', $MESSAGE->sender['string']); + $OUTPUT->set_env('permaurl', rcmail_url('show', array('_uid' => $MESSAGE->uid, '_mbox' => $mbox_name))); $OUTPUT->set_env('mailbox', $mbox_name); if ($CONFIG['trash_mbox']) $OUTPUT->set_env('trash_mailbox', $CONFIG['trash_mbox']); -- Gitblit v1.9.1