Support images drag-n-drop into image browser dialog in html signature editor
| | |
| | | $.ajax({ |
| | | type: 'POST', |
| | | dataType: 'json', |
| | | url: ref.url(ref.env.filedrop.action||'upload', { _id:ref.env.compose_id||ref.env.cid||'', _uploadid:ts, _remote:1 }), |
| | | url: ref.url(ref.env.filedrop.action || 'upload', {_id: ref.env.compose_id||ref.env.cid||'', _uploadid: ts, _remote: 1, _from: ref.env.action}), |
| | | contentType: formdata ? false : 'multipart/form-data; boundary=' + boundary, |
| | | processData: false, |
| | | timeout: 0, // disable default timeout set in ajaxSetup() |
| | |
| | | this.hack_file_input(elem, rcmail.gui_objects.uploadform); |
| | | |
| | | // enable drag-n-drop area |
| | | if (rcmail.gui_objects.filedrop && rcmail.env.filedrop && ((window.XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.sendAsBinary) || window.FormData)) { |
| | | rcmail.env.old_file_drop = rcmail.gui_objects.filedrop; |
| | | if ((window.XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.sendAsBinary) || window.FormData) { |
| | | if (!rcmail.env.filedrop) { |
| | | rcmail.env.filedrop = {}; |
| | | } |
| | | if (rcmail.gui_objects.filedrop) { |
| | | rcmail.env.old_file_drop = rcmail.gui_objects.filedrop; |
| | | } |
| | | |
| | | rcmail.gui_objects.filedrop = $('#image-selector-form'); |
| | | rcmail.gui_objects.filedrop.addClass('droptarget') |
| | | .bind('dragover dragleave', function(e) { |
| | |
| | | { |
| | | if (!file.complete || !file.mimetype) { |
| | | return; |
| | | } |
| | | |
| | | if (rcmail.file_upload_id) { |
| | | rcmail.set_busy(false, null, rcmail.file_upload_id); |
| | | } |
| | | |
| | | var rx, img_src; |
| | |
| | | this.hack_file_input = function(elem, clone_form) |
| | | { |
| | | var link = $(elem), |
| | | file = $('<input>').attr('name', '_files[]'), |
| | | file = $('<input>').attr('name', '_file[]'), |
| | | form = $('<form>').attr({method: 'post', enctype: 'multipart/form-data'}), |
| | | offset = link.offset(); |
| | | |
| | |
| | | $OUTPUT->include_script('list.js'); |
| | | $OUTPUT->add_handler('identityform', 'rcube_identity_form'); |
| | | $OUTPUT->set_env('identities_level', IDENTITIES_LEVEL); |
| | | $OUTPUT->add_label('deleteidentityconfirm'); |
| | | $OUTPUT->add_label('deleteidentityconfirm', 'uploading'); |
| | | |
| | | $OUTPUT->set_pagetitle($RCMAIL->gettext(($RCMAIL->action == 'add-identity' ? 'addidentity' : 'editidentity'))); |
| | | |
| | |
| | | $uploadid = rcube_utils::get_input_value('_uploadid', rcube_utils::INPUT_GET); |
| | | |
| | | |
| | | if (is_array($_FILES['_files']['tmp_name'])) { |
| | | $multiple = count($_FILES['_files']['tmp_name']) > 1; |
| | | if (is_array($_FILES['_file']['tmp_name'])) { |
| | | $multiple = count($_FILES['_file']['tmp_name']) > 1; |
| | | |
| | | foreach ($_FILES['_files']['tmp_name'] as $i => $filepath) { |
| | | foreach ($_FILES['_file']['tmp_name'] as $i => $filepath) { |
| | | // Process uploaded attachment if there is no error |
| | | $err = $_FILES['_files']['error'][$i]; |
| | | $err = $_FILES['_file']['error'][$i]; |
| | | |
| | | if (!$err) { |
| | | if ($max_size < $_FILES['_files']['size'][$i]) { |
| | | if ($max_size < $_FILES['_file']['size'][$i]) { |
| | | $err = 'size_error'; |
| | | } |
| | | // check image file type |
| | |
| | | if (!$err) { |
| | | $attachment = $RCMAIL->plugins->exec_hook('attachment_upload', array( |
| | | 'path' => $filepath, |
| | | 'size' => $_FILES['_files']['size'][$i], |
| | | 'name' => $_FILES['_files']['name'][$i], |
| | | 'size' => $_FILES['_file']['size'][$i], |
| | | 'name' => $_FILES['_file']['name'][$i], |
| | | 'mimetype' => 'image/' . $imageprop['type'], |
| | | 'group' => $type, |
| | | )); |