summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-05-30 14:54:31 +0200
committerAleksander Machniak <alec@alec.pl>2013-05-30 14:54:31 +0200
commit2f321c66005b16cccbc5a7e28648cba6cedc66a3 (patch)
tree31d15ddceed1fbe30e474d8f932781d47ae0e4af /program/js
parentece3a522d89bc77191f1fcb0b43942aa8fdb49f0 (diff)
Open attachments, print and source in popups for consistency - always use
open_window() instead of window.open(), so plugins/skins can override popup behaviour
Diffstat (limited to 'program/js')
-rw-r--r--program/js/app.js26
1 files changed, 11 insertions, 15 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 36b2f0d5e..7c4fbc133 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -598,11 +598,12 @@ function rcube_webmail()
case 'extwin':
if (this.env.action == 'compose') {
- var form = this.gui_objects.messageform;
+ var form = this.gui_objects.messageform,
+ win = this.open_window('');
$("input[name='_action']", form).val('compose');
form.action = this.url('mail/compose', { _id: this.env.compose_id, _extwin: 1 });
- form.target = this.open_window('');
+ form.target = win.name;
form.submit();
}
else {
@@ -859,11 +860,8 @@ function rcube_webmail()
// open attachment in frame if it's of a supported mimetype
if (command != 'download-attachment' && mimetype && this.env.mimetypes && $.inArray(mimetype, this.env.mimetypes) >= 0) {
- var attachment_win = window.open(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1', this.html_identifier('rcubemailattachment'+this.env.uid+props));
- if (attachment_win) {
- setTimeout(function(){ attachment_win.focus(); }, 10);
+ if (this.open_window(this.env.comm_path+'&_action=get&'+qstring+'&_frame=1', true, true))
break;
- }
}
this.goto_url('get', qstring+'&_download=1', false);
@@ -1047,7 +1045,7 @@ function rcube_webmail()
case 'print':
if (uid = this.get_single_uid()) {
- ref.printwin = window.open(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : ''));
+ ref.printwin = this.open_window(this.env.comm_path+'&_action=print&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox)+(this.env.safemode ? '&_safe=1' : ''), true, true);
if (this.printwin) {
setTimeout(function(){ ref.printwin.focus(); }, 20);
if (this.env.action != 'show')
@@ -1057,11 +1055,8 @@ function rcube_webmail()
break;
case 'viewsource':
- if (uid = this.get_single_uid()) {
- ref.sourcewin = window.open(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox));
- if (this.sourcewin)
- setTimeout(function(){ ref.sourcewin.focus(); }, 20);
- }
+ if (uid = this.get_single_uid())
+ this.open_window(this.env.comm_path+'&_action=viewsource&_uid='+uid+'&_mbox='+urlencode(this.env.mailbox), true, true);
break;
case 'download':
@@ -1632,7 +1627,7 @@ function rcube_webmail()
};
// open popup window
- this.open_window = function(url, small)
+ this.open_window = function(url, small, toolbar)
{
var win = this.is_framed() ? parent.window : window,
page = $(win),
@@ -1644,7 +1639,8 @@ function rcube_webmail()
t = (win.screenTop || win.screenY) + 20,
wname = 'rcmextwin' + new Date().getTime(),
extwin = window.open(url + (url.match(/\?/) ? '&' : '?') + '_extwin=1', wname,
- 'width='+w+',height='+h+',top='+t+',left='+l+',resizable=yes,toolbar=no,status=no,location=no');
+ 'width='+w+',height='+h+',top='+t+',left='+l+',resizable=yes,location=no,scrollbars=yes'
+ +(toolbar ? ',toolbar=yes,menubar=yes,status=yes' : ',toolbar=no,menubar=no,status=no'));
// write loading... message to empty windows
if (!url && extwin.document) {
@@ -1654,7 +1650,7 @@ function rcube_webmail()
// focus window, delayed to bring to front
window.setTimeout(function() { extwin.focus(); }, 10);
- return wname;
+ return extwin;
};