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