/* Enable/Disable DIMP action buttons as needed. */
toggleButtons: function()
{
- var disable = (this.selectedCount() == 0);
- $('dimpmain_folder_top').select('DIV.dimpActions A.noselectDisable').each(function(b) {
- [ b.up() ].invoke(disable ? 'addClassName' : 'removeClassName', 'disabled');
- DimpCore.DMenu.disable(b.readAttribute('id') + '_img', true, disable);
- });
+ DimpCore.toggleButtons($('dimpmain_folder_top').select('DIV.dimpActions A.noselectDisable'), this.selectedCount() == 0);
},
/* Drag/Drop handler. */
loadingImg: function(id, show)
{
- var c;
-
- if (show) {
- $(id + 'Loading').clonePosition(id == 'viewport' ? 'msgSplitPane' : 'previewPane', { setLeft: false, setTop: true, setHeight: false, setWidth: false }).show();
- c = 'progress';
- } else {
- $(id + 'Loading').fade({ duration: 0.2 });
- c = 'default';
- }
- $(document.body).setStyle({ cursor: c });
+ DimpCore.loadingImg(id + 'Loading', id == 'viewport' ? 'msgSplitPane' : 'previewPane');
},
// p = (element) Parent element
var DimpCompose = {
// Variables defaulting to empty/false:
- // auto_save_interval, button_pressed, compose_cursor, dbtext,
- // drafts_mbox, editor_on, is_popup, knl_sm, knl_p, mp_padding, resizebcc,
- // resizecc, resizeto, row_height, rte, sbtext, skip_spellcheck,
- // spellcheck, uploading
+ // auto_save_interval, compose_cursor, disabled, drafts_mbox, editor_on,
+ // is_popup, knl_p, knl_sm, mp_padding, resizebcc, resizecc, resizeto,
+ // row_height, rte, skip_spellcheck, spellcheck, uploading
last_msg: '',
confirmCancel: function()
uniqueSubmit: function(action)
{
- var db, sb,
- c = $('compose');
+ var c = $('compose');
if (DIMP.SpellCheckerObject &&
DIMP.SpellCheckerObject.isActive()) {
}
if (action == 'send_message' || action == 'save_draft') {
- this.button_pressed = true;
+ this.setDisabled(true);
switch (action) {
case 'send_message':
DIMP.SpellCheckerObject.spellCheck(this.onNoSpellError.bind(this, action));
return;
}
-
- if (!this.sbtext) {
- sb = $('send_button');
- this.sbtext = sb.getText();
- sb.setText(DIMP.text_compose.sending);
- }
- break;
-
- case 'save_draft':
- if (!this.dbtext) {
- db = $('draft_button');
- this.dbtext = db.getText();
- db.setText(DIMP.text_compose.saving);
- }
break;
}
// Don't send/save until uploading is completed.
if (this.uploading) {
- (function() { if (this.button_pressed) { this.uniqueSubmit(action); } }).bind(this).delay(0.25);
+ (function() { if (this.disabled) { this.uniqueSubmit(action); } }).bind(this).delay(0.25);
return;
}
}
switch (d.action) {
case 'auto_save_draft':
case 'save_draft':
- this.button_pressed = false;
+ this.setDisabled(false);
this.updateDraftsMailbox();
break;
case 'send_message':
- this.button_pressed = false;
if (this.is_popup) {
if (d.reply_type) {
DIMP.baseWindow.DimpBase.flag(d.reply_type == 'reply' ? '\\answered' : '$forwarded', true, { uid: d.uid, mailbox: d.reply_folder, noserver: true });
if (d.success) {
this.addAttach(d.info.number, d.info.name, d.info.type, d.info.size);
} else {
- this.button_pressed = false;
+ this.setDisabled(false);
}
if (DIMP.conf_compose.attach_limit != -1 &&
$('attach_list').childElements().size() > DIMP.conf_compose.attach_limit) {
- $('upload').writeAttribute('disabled', false);
+ $('upload').enable();
elt = new Element('DIV', [ DIMP.text_compose.atc_limit ]);
} else {
elt = new Element('INPUT', { type: 'file', name: 'file_1' });
this.resizeMsgArea();
break;
}
- } else {
- this.button_pressed = false;
}
+ this.setDisabled(false);
$('compose').setStyle({ cursor: null });
+ },
- // Re-enable buttons if needed.
- if (!this.button_pressed) {
- if (this.sbtext) {
- $('send_button').setText(this.sbtext);
- }
- if (this.dbtext) {
- $('draft_button').setText(this.dbtext);
- }
- this.dbtext = this.sbtext = null;
+ setDisabled: function(disable)
+ {
+ this.disabled = disable;
+ DimpCore.loadingImg('sendingImg', 'composeMessageParent', disable);
+ DimpCore.toggleButtons($('compose').select('DIV.dimpActions A'), disable);
+ [ $('compose') ].invoke(disable ? 'disable' : 'enable');
+ if (DIMP.SpellCheckerObject) {
+ DIMP.SpellCheckerObject.disable(disable);
}
},
case 'draft_button':
case 'send_button':
- this.uniqueSubmit(id == 'send_button' ? 'send_message' : 'save_draft');
+ if (!this.disabled) {
+ this.uniqueSubmit(id == 'send_button' ? 'send_message' : 'save_draft');
+ }
break;
case 'htmlcheckbox':
onChoose: this.setSentMailLabel.bind(this)
});
this.knl_sm.setSelected(this.getIdentity($F('identity'))[3]);
- $('sent_mail_folder_label').insert({ after: new Element('SPAN', { className: 'popdownImg' }).observe('click', function(e) { this.knl_sm.show(); this.knl_sm.ignoreClick(e); e.stop(); }.bindAsEventListener(this)) });
+ $('sent_mail_folder_label').insert({ after: new Element('SPAN', { className: 'popdownImg' }).observe('click', function(e) { if (!this.disabled) { this.knl_sm.show(); this.knl_sm.ignoreClick(e); e.stop(); } }.bindAsEventListener(this)) });
}
/* Create priority list. */
onChoose: this.setPriorityLabel.bind(this)
});
this.setPriorityLabel('normal');
- $('priority_label').insert({ after: new Element('SPAN', { className: 'popdownImg' }).observe('click', function(e) { this.knl_p.show(); this.knl_p.ignoreClick(e); e.stop(); }.bindAsEventListener(this)) });
+ $('priority_label').insert({ after: new Element('SPAN', { className: 'popdownImg' }).observe('click', function(e) { if (!this.disabled) { this.knl_p.show(); this.knl_p.ignoreClick(e); e.stop(); } }.bindAsEventListener(this)) });
}
$('dimpLoading').hide();