summaryrefslogtreecommitdiff
path: root/program/js/app.js
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-12-05 12:59:21 +0000
committerthomascube <thomas@roundcube.net>2011-12-05 12:59:21 +0000
commitfe2773c875ee65aa87f2d871a77f43b8a3651ff5 (patch)
tree7b7945a1d3b7142282032320e9096061eb7484b6 /program/js/app.js
parentdb4ec58b9086d55dfd22366850e21486fc5211e6 (diff)
Backported r5544 to release branch
Diffstat (limited to 'program/js/app.js')
-rw-r--r--program/js/app.js31
1 files changed, 22 insertions, 9 deletions
diff --git a/program/js/app.js b/program/js/app.js
index de7cb62b7..35806fce3 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -903,7 +903,7 @@ function rcube_webmail()
if (!this.gui_objects.messageform)
break;
- if (!this.check_compose_input())
+ if (!props.nocheck && !this.check_compose_input(command))
break;
// Reset the auto-save timer
@@ -2955,7 +2955,7 @@ function rcube_webmail()
};
// checks the input fields before sending a message
- this.check_compose_input = function()
+ this.check_compose_input = function(cmd)
{
// check input fields
var ed, input_to = $("[name='_to']"),
@@ -2990,15 +2990,28 @@ function rcube_webmail()
// display localized warning for missing subject
if (input_subject.val() == '') {
- var subject = prompt(this.get_label('nosubjectwarning'), this.get_label('nosubject'));
+ var myprompt = $('<div class="prompt">').html('<div class="message">' + this.get_label('nosubjectwarning') + '</div>').appendTo(document.body);
+ var prompt_value = $('<input>').attr('type', 'text').attr('size', 30).appendTo(myprompt).val(this.get_label('nosubject'));
- // user hit cancel, so don't send
- if (!subject && subject !== '') {
+ var buttons = {};
+ buttons[this.get_label('cancel')] = function(){
input_subject.focus();
- return false;
- }
- else
- input_subject.val((subject ? subject : this.get_label('nosubject')));
+ $(this).dialog('close');
+ };
+ buttons[this.get_label('sendmessage')] = function(){
+ input_subject.val(prompt_value.val());
+ $(this).dialog('close');
+ ref.command(cmd, { nocheck:true }); // repeat command which triggered this
+ };
+
+ myprompt.dialog({
+ modal: true,
+ resizable: false,
+ buttons: buttons,
+ close: function(event, ui) { $(this).remove() }
+ });
+ prompt_value.select();
+ return false;
}
// Apply spellcheck changes if spell checker is active