Improved attachment reminder dialog (#1489091)

Improved core show_popup_dialog() function
pull/73/head
Aleksander Machniak 13 years ago
parent 68684a8982
commit c8bc8c97f3

@ -14,7 +14,7 @@ function rcmail_get_compose_message()
}
return msg;
}
};
function rcmail_check_message(msg)
{
@ -24,12 +24,33 @@ function rcmail_check_message(msg)
rx = new RegExp('(' + keywords.join('|') + ')', 'i');
return msg.search(rx) != -1;
}
};
function rcmail_have_attachments()
{
return rcmail.env.attachments && $('li', rcmail.gui_objects.attachmentlist).length;
}
};
function rcmail_attachment_reminder_dialog()
{
var buttons = {};
buttons[rcmail.gettext('addattachment')] = function() {
$(this).remove();
if (window.UI && UI.show_uploadform) // Larry skin
UI.show_uploadform();
else if (window.rcmail_ui && rcmail_ui.show_popup) // classic skin
rcmail_ui.show_popup('uploadmenu', true);
};
buttons[rcmail.gettext('send')] = function(e) {
$(this).remove();
rcmail.env.attachment_reminder = true;
rcmail.command('send', '', e);
};
rcmail.env.attachment_reminder = false;
rcmail.show_popup_dialog(rcmail.gettext('attachment_reminder.forgotattachment'), '', buttons);
};
if (window.rcmail) {
@ -37,15 +58,11 @@ if (window.rcmail) {
var msg = rcmail_get_compose_message(),
subject = $('#compose-subject').val();
if (!rcmail_have_attachments() && (rcmail_check_message(msg) || rcmail_check_message(subject))) {
if (confirm(rcmail.gettext('forgotattachment', 'attachment_reminder'))) {
if (window.UI && UI.show_uploadform) // Larry skin
UI.show_uploadform();
else if (window.rcmail_ui && rcmail_ui.show_popup) // classic skin
rcmail_ui.show_popup('uploadmenu', true);
return false;
}
if (!rcmail.env.attachment_reminder && !rcmail_have_attachments()
&& (rcmail_check_message(msg) || rcmail_check_message(subject))
) {
rcmail_attachment_reminder_dialog();
return false;
}
});
}

@ -38,6 +38,7 @@ class attachment_reminder extends rcube_plugin
if ($rcmail->task == 'mail' && $rcmail->action == 'compose') {
$this->include_script('attachment_reminder.js');
$this->add_texts('localization/', array('keywords', 'forgotattachment'));
$rcmail->output->add_label('addattachment', 'send');
}
if ($rcmail->task == 'settings') {

@ -15,9 +15,10 @@
<active>yes</active>
</lead>
<lead>
<name>Thomas Yu - Sian , Liu</name>
<name>Thomas Yu - Sian, Liu</name>
<active>yes</active>
</lead>
<date>2013-05-20</date>
<version>
<release>1.1</release>
<api>1.0</api>

@ -5659,11 +5659,11 @@ function rcube_webmail()
};
// open a jquery UI dialog with the given content
this.show_popup_dialog = function(html, title)
this.show_popup_dialog = function(html, title, buttons)
{
// forward call to parent window
if (this.is_framed()) {
parent.rcmail.show_popup_dialog(html, title);
parent.rcmail.show_popup_dialog(html, title, buttons);
return;
}
@ -5671,17 +5671,21 @@ function rcube_webmail()
.html(html)
.dialog({
title: title,
buttons: buttons,
modal: true,
resizable: true,
width: 580,
width: 500,
close: function(event, ui) { $(this).remove() }
});
// resize and center popup
var win = $(window), w = win.width(), h = win.height(),
width = popup.width(), height = popup.height();
popup.dialog('option', { height: Math.min(h-40, height+50), width: Math.min(w-20, width+50) })
.dialog('option', 'position', ['center', 'center']); // only works in a separate call (!?)
// resize and center popup
var win = $(window), w = win.width(), h = win.height(),
width = popup.width(), height = popup.height();
popup.dialog('option', {
height: Math.min(h - 40, height + 75 + (buttons ? 50 : 0)),
width: Math.min(w - 20, width + 20)
});
};
// enable/disable buttons for page shifting

Loading…
Cancel
Save