summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-06-30 13:56:06 +0200
committerAleksander Machniak <alec@alec.pl>2014-06-30 13:56:06 +0200
commit9fa8368b01b9cee5fcc97d9c267e2308296501e2 (patch)
treeba0cf4f1631aca46b32c277cf46665e57efd7663 /program
parent5312b71126c0d1286a2d1c0788dd2636679a1746 (diff)
Support images drag-n-drop into image browser dialog in html signature editor
Diffstat (limited to 'program')
-rw-r--r--program/js/app.js2
-rw-r--r--program/js/editor.js16
-rw-r--r--program/steps/settings/edit_identity.inc2
-rw-r--r--program/steps/settings/upload.inc14
4 files changed, 22 insertions, 12 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 3b5ff0422..db9a2ff5f 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -7629,7 +7629,7 @@ function rcube_webmail()
$.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()
diff --git a/program/js/editor.js b/program/js/editor.js
index 0dd8fef9a..3b49968a7 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -589,8 +589,14 @@ function rcube_text_editor(config, id)
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) {
@@ -639,6 +645,10 @@ function rcube_text_editor(config, id)
return;
}
+ if (rcmail.file_upload_id) {
+ rcmail.set_busy(false, null, rcmail.file_upload_id);
+ }
+
var rx, img_src;
switch (rcmail.env.file_browser_type) {
@@ -692,7 +702,7 @@ function rcube_text_editor(config, id)
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();
diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc
index 34fe9798f..cd7ba5fa6 100644
--- a/program/steps/settings/edit_identity.inc
+++ b/program/steps/settings/edit_identity.inc
@@ -52,7 +52,7 @@ else {
$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')));
diff --git a/program/steps/settings/upload.inc b/program/steps/settings/upload.inc
index 8d338ebb9..41e19f8fa 100644
--- a/program/steps/settings/upload.inc
+++ b/program/steps/settings/upload.inc
@@ -51,15 +51,15 @@ $post_size = $RCMAIL->show_bytes(parse_bytes(ini_get('upload_max_filesize')));
$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
@@ -77,8 +77,8 @@ if (is_array($_FILES['_files']['tmp_name'])) {
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,
));