program/js/app.js | ●●●●● patch | view | raw | blame | history | |
program/js/editor_images.js | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/attachments.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/compose.inc | ●●●●● patch | view | raw | blame | history |
program/js/app.js
@@ -2172,11 +2172,8 @@ } // check if all files has been uploaded if (this.gui_objects.attachmentlist) { var list = this.gui_objects.attachmentlist.getElementsByTagName("li"); for (i=0;i<list.length;i++) if (!String(list[i].id).match(/^rcmfile/)) { for (var key in this.env.attachments) { if (typeof this.env.attachments[key] == 'object' && !this.env.attachments[key].complete) { alert(this.get_label('notuploadedwarning')); return false; } @@ -2496,7 +2493,7 @@ content = '<img src="'+this.env.loadingicon+'" alt="" />'+content; 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, content); this.add2attachment_list(ts, { name:'', html:content, complete:false }); } // set reference to the form object @@ -2506,26 +2503,35 @@ // add file name to attachment list // called from upload page this.add2attachment_list = function(name, content, upload_id) this.add2attachment_list = function(name, att, upload_id) { if (!this.gui_objects.attachmentlist) return false; var li = $('<li>').attr('id', name).html(att.html); var indicator; // replace indicator's li if (upload_id && (indicator = document.getElementById(upload_id))) { var li = document.createElement('li'); $(li).attr('id', name).html(content); indicator.parentNode.replaceChild(li, indicator); } else { // add new li $('<li>').attr('id', name).html(content).appendTo(this.gui_objects.attachmentlist); li.replaceAll(indicator); } else { // add new li li.appendTo(this.gui_objects.attachmentlist); } if (upload_id && this.env.attachments[upload_id]) delete this.env.attachments[upload_id]; this.env.attachments[name] = att; return true; }; this.remove_from_attachment_list = function(name) { if (this.env.attachments[name]) delete this.env.attachments[name]; if (!this.gui_objects.attachmentlist) return false; @@ -2537,7 +2543,7 @@ this.remove_attachment = function(name) { if (name) if (name && this.env.attachments[name]) this.http_post('remove-attachment', '_file='+urlencode(name)); return true; program/js/editor_images.js
@@ -1,22 +1,12 @@ var rc_client = tinyMCEPopup.getParam("rc_client"); if (rc_client.gui_objects.attachmentlist) if (rc_client.env.attachments) { var tinyMCEImageList = new Array(); var attachElems = rc_client.gui_objects.attachmentlist.getElementsByTagName("li"); for (i = 0; i < attachElems.length; i++) for (var id in rc_client.env.attachments) { var liElem = attachElems[i]; var fname = attachElems[i].id; for (j = 0; j < liElem.childNodes.length; j++) { if (liElem.childNodes[j].nodeName == "#text") { fname = liElem.childNodes[j].nodeValue; } } if (fname.match(/\.(bmp|gif|png|jpg|jpeg)$/)) tinyMCEImageList.push([fname, rc_client.env.comm_path+'&_action=display-attachment&_file='+attachElems[i].id]); var att = rc_client.env.attachments[id]; if (att.complete && att.mimetype.indexOf('image/') == 0) tinyMCEImageList.push([att.name, rc_client.env.comm_path+'&_action=display-attachment&_file='+id]); } }; program/steps/mail/attachments.inc
@@ -111,7 +111,11 @@ $content .= Q($attachment['name']); $OUTPUT->command('add2attachment_list', "rcmfile$id", $content, $uploadid); $OUTPUT->command('add2attachment_list', "rcmfile$id", array( 'html' => $content, 'name' => $attachment['name'], 'mimetype' => $attachment['mimetype'], 'complete' => true), $uploadid); } else { // upload failed $err = $_FILES['_attachments']['error'][$i]; program/steps/mail/compose.inc
@@ -781,6 +781,7 @@ $attrib['id'] = 'rcmAttachmentList'; $out = "\n"; $jslist = array(); if (is_array($_SESSION['compose']['attachments'])) { @@ -798,12 +799,14 @@ if (empty($a_prop)) continue; $out .= html::tag('li', array('id' => "rcmfile".$id), $out .= html::tag('li', array('id' => 'rcmfile'.$id), html::a(array( 'href' => "#delete", 'title' => rcube_label('delete'), 'onclick' => sprintf("return %s.command('remove-attachment','rcmfile%s', this)", JS_OBJECT_NAME, $id)), $button) . Q($a_prop['name'])); $jslist['rcmfile'.$id] = array('name' => $a_prop['name'], 'complete' => true, 'mimetype' => $a_prop['mimetype']); } } @@ -814,6 +817,7 @@ if ($attrib['loadingicon']) $OUTPUT->set_env('loadingicon', $CONFIG['skin_path'] . $attrib['loadingicon']); $OUTPUT->set_env('attachments', $jslist); $OUTPUT->add_gui_object('attachmentlist', $attrib['id']); return html::tag('ul', $attrib, $out, html::$common_attrib);