| | |
| | | this.init_address_input_events($("[name='_cc']")); |
| | | this.init_address_input_events($("[name='_bcc']")); |
| | | |
| | | if (!html_mode) |
| | | if (!html_mode) { |
| | | // add signature according to selected identity |
| | | // if we have HTML editor, signature is added in callback |
| | | if (input_from.attr('type') == 'select-one' && $("input[name='_draft_saveid']").val() == '') { |
| | | this.change_identity(input_from[0]); |
| | | } |
| | | this.set_caret_pos(input_message, this.env.top_posting ? 0 : $(input_message).val().length); |
| | | |
| | | // add signature according to selected identity |
| | | if (input_from.attr('type') == 'select-one' && $("input[name='_draft_saveid']").val() == '' |
| | | && !html_mode) { // if we have HTML editor, signature is added in callback |
| | | this.change_identity(input_from[0]); |
| | | } |
| | | else if (!html_mode) |
| | | this.set_caret_pos(input_message, this.env.top_posting ? 0 : $(input_message).val().length); |
| | | |
| | | if (input_to.val() == '') |
| | | input_to.focus(); |
| | |
| | | var input_message = $("[name='_message']"); |
| | | |
| | | // check sender (if have no identities) |
| | | if (input_from.attr('type') == 'text' && !rcube_check_email(input_from.val(), true)) |
| | | { |
| | | if (input_from.attr('type') == 'text' && !rcube_check_email(input_from.val(), true)) { |
| | | alert(this.get_label('nosenderwarning')); |
| | | input_from.focus(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // check for empty recipient |
| | | var recipients = input_to.val() ? input_to.val() : (input_cc.val() ? input_cc.val() : input_bcc.val()); |
| | | if (!rcube_check_email(recipients.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true)) |
| | | { |
| | | if (!rcube_check_email(recipients.replace(/^\s+/, '').replace(/[\s,;]+$/, ''), true)) { |
| | | alert(this.get_label('norecipientwarning')); |
| | | input_to.focus(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // check if all files has been uploaded |
| | | for (var key in this.env.attachments) { |
| | |
| | | this.stop_spellchecking(); |
| | | |
| | | $(this.env.spellcheck.spell_container).css('visibility', vis ? 'visible' : 'hidden'); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | this.set_spellcheck_state = function(s) |
| | | { |
| | | { |
| | | this.spellcheck_ready = (s == 'ready' || s == 'no_error_found'); |
| | | this.enable_command('spellcheck', this.spellcheck_ready); |
| | | }; |
| | | }; |
| | | |
| | | this.set_draft_id = function(id) |
| | | { |
| | | { |
| | | $("input[name='_draft_saveid']").val(id); |
| | | }; |
| | | }; |
| | | |
| | | this.auto_save_start = function() |
| | | { |
| | | { |
| | | if (this.env.draft_autosave) |
| | | this.save_timer = self.setTimeout(function(){ ref.command("savedraft"); }, this.env.draft_autosave * 1000); |
| | | |
| | | // Unlock interface now that saving is complete |
| | | this.busy = false; |
| | | }; |
| | | }; |
| | | |
| | | this.compose_field_hash = function(save) |
| | | { |
| | | { |
| | | // check input fields |
| | | var value_to = $("[name='_to']").val(); |
| | | var value_cc = $("[name='_cc']").val(); |
| | |
| | | this.cmp_hash = str; |
| | | |
| | | return str; |
| | | }; |
| | | }; |
| | | |
| | | this.change_identity = function(obj, show_sig) |
| | | { |
| | |
| | | }; |
| | | |
| | | this.show_attachment_form = function(a) |
| | | { |
| | | { |
| | | if (!this.gui_objects.uploadbox) |
| | | return false; |
| | | |
| | | var elm, list; |
| | | if (elm = this.gui_objects.uploadbox) |
| | | { |
| | | if (a && (list = this.gui_objects.attachmentlist)) |
| | | { |
| | | if (elm = this.gui_objects.uploadbox) { |
| | | if (a && (list = this.gui_objects.attachmentlist)) { |
| | | var pos = $(list).offset(); |
| | | elm.style.top = (pos.top + list.offsetHeight + 10) + 'px'; |
| | | elm.style.left = pos.left + 'px'; |
| | | } |
| | | } |
| | | |
| | | $(elm).toggle(); |
| | | } |
| | | } |
| | | |
| | | // clear upload form |
| | | try { |
| | |
| | | catch(e){} // ignore errors |
| | | |
| | | return true; |
| | | }; |
| | | }; |
| | | |
| | | // upload attachment file |
| | | this.upload_file = function(form) |
| | | { |
| | | { |
| | | if (!form) |
| | | return false; |
| | | |
| | | // get file input fields |
| | | var send = false; |
| | | for (var n=0; n<form.elements.length; n++) |
| | | if (form.elements[n].type=='file' && form.elements[n].value) |
| | | { |
| | | if (form.elements[n].type=='file' && form.elements[n].value) { |
| | | send = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // create hidden iframe and post upload form |
| | | if (send) |
| | | { |
| | | if (send) { |
| | | var ts = new Date().getTime(); |
| | | var frame_name = 'rcmupload'+ts; |
| | | |
| | | // have to do it this way for IE |
| | | // otherwise the form will be posted to a new window |
| | | if(document.all) |
| | | { |
| | | if (document.all) { |
| | | var html = '<iframe name="'+frame_name+'" src="program/blank.gif" style="width:0;height:0;visibility:hidden;"></iframe>'; |
| | | document.body.insertAdjacentHTML('BeforeEnd',html); |
| | | } |
| | | else // for standards-compilant browsers |
| | | { |
| | | } |
| | | else { // for standards-compilant browsers |
| | | var frame = document.createElement('iframe'); |
| | | frame.name = frame_name; |
| | | frame.style.border = 'none'; |
| | |
| | | frame.style.height = 0; |
| | | frame.style.visibility = 'hidden'; |
| | | document.body.appendChild(frame); |
| | | } |
| | | } |
| | | |
| | | // handle upload errors, parsing iframe content in onload |
| | | var fr = document.getElementsByName(frame_name)[0]; |
| | |
| | | if (this.env.cancelicon) |
| | | content = '<a title="'+this.get_label('cancel')+'" onclick="return rcmail.cancel_attachment_upload(\''+ts+'\', \''+frame_name+'\');" href="#cancelupload"><img src="'+this.env.cancelicon+'" alt="" /></a>'+content; |
| | | this.add2attachment_list(ts, { name:'', html:content, complete:false }); |
| | | } |
| | | } |
| | | |
| | | // set reference to the form object |
| | | this.gui_objects.attachmentform = form; |
| | | return true; |
| | | }; |
| | | }; |
| | | |
| | | // add file name to attachment list |
| | | // called from upload page |
| | |
| | | }; |
| | | |
| | | this.remove_attachment = function(name) |
| | | { |
| | | { |
| | | if (name && this.env.attachments[name]) |
| | | this.http_post('remove-attachment', '_file='+urlencode(name)); |
| | | |
| | | return true; |
| | | }; |
| | | }; |
| | | |
| | | this.cancel_attachment_upload = function(name, frame_name) |
| | | { |
| | | { |
| | | if (!name || !frame_name) |
| | | return false; |
| | | |
| | | this.remove_from_attachment_list(name); |
| | | $("iframe[name='"+frame_name+"']").remove(); |
| | | return false; |
| | | }; |
| | | }; |
| | | |
| | | // send remote request to add a new contact |
| | | this.add_contact = function(value) |
| | | { |
| | | { |
| | | if (value) |
| | | this.http_post('addcontact', '_address='+value); |
| | | |
| | | return true; |
| | | }; |
| | | }; |
| | | |
| | | // send remote request to search mail or contacts |
| | | this.qsearch = function(value) |
| | | { |
| | | if (value != '') |
| | | { |
| | | { |
| | | if (value != '') { |
| | | var addurl = ''; |
| | | if (this.message_list) { |
| | | this.message_list.clear(); |
| | |
| | | for (var n in mods) |
| | | head_arr.push(n); |
| | | addurl += '&_headers='+head_arr.join(','); |
| | | } |
| | | } |
| | | } else if (this.contact_list) { |
| | | } |
| | | } else if (this.contact_list) { |
| | | this.contact_list.clear(true); |
| | | this.show_contentframe(false); |
| | | } |
| | | } |
| | | |
| | | if (this.gui_objects.search_filter) |
| | | addurl += '&_filter=' + this.gui_objects.search_filter.value; |
| | |
| | | + (this.env.source ? '&_source='+urlencode(this.env.source) : '') |
| | | + (this.env.group ? '&_gid='+urlencode(this.env.group) : '') |
| | | + (addurl ? addurl : ''), true); |
| | | } |
| | | } |
| | | return true; |
| | | }; |
| | | }; |
| | | |
| | | // reset quick-search form |
| | | this.reset_qsearch = function() |
| | | { |
| | | { |
| | | if (this.gui_objects.qsearchbox) |
| | | this.gui_objects.qsearchbox.value = ''; |
| | | |
| | | this.env.search_request = null; |
| | | return true; |
| | | }; |
| | | }; |
| | | |
| | | this.sent_successfully = function(type, msg) |
| | | { |
| | | { |
| | | this.list_mailbox(); |
| | | this.display_message(msg, type, true); |
| | | } |
| | | }; |
| | | |
| | | |
| | | /*********************************************************/ |