summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2014-06-29 16:35:18 +0200
committerAleksander Machniak <alec@alec.pl>2014-06-29 16:35:18 +0200
commit3cc1afa1c2f30bfebb30146795e50172947b4b5f (patch)
tree077d3ec048b393472f41917448b4a14b977b3e58 /program/js
parentc3bb0d32a52687865f78816d4a88292d72803e73 (diff)
Support images in HTML signatures (#1488676)
This enables image button and file browser in html editor for signatures
Diffstat (limited to 'program/js')
-rw-r--r--program/js/app.js15
-rw-r--r--program/js/editor.js16
2 files changed, 20 insertions, 11 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 8f2065635..3b5ff0422 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -4083,6 +4083,14 @@ function rcube_webmail()
if (upload_id)
this.triggerEvent('fileuploaded', {name: name, attachment: att, id: upload_id});
+ if (!this.env.attachments)
+ this.env.attachments = {};
+
+ if (upload_id && this.env.attachments[upload_id])
+ delete this.env.attachments[upload_id];
+
+ this.env.attachments[name] = att;
+
if (!this.gui_objects.attachmentlist)
return false;
@@ -4112,11 +4120,6 @@ function rcube_webmail()
var tabindex = $(this.gui_objects.attachmentlist).attr('data-tabindex') || '0';
li.find('a').attr('tabindex', tabindex);
- if (upload_id && this.env.attachments[upload_id])
- delete this.env.attachments[upload_id];
-
- this.env.attachments[name] = att;
-
return true;
};
@@ -7563,7 +7566,7 @@ function rcube_webmail()
$(form).attr({
target: frame_name,
- action: this.url(action, { _id:this.env.compose_id||'', _uploadid:ts }),
+ action: this.url(action, {_id: this.env.compose_id || '', _uploadid: ts, _from: this.env.action}),
method: 'POST'})
.attr(form.encoding ? 'encoding' : 'enctype', 'multipart/form-data')
.submit();
diff --git a/program/js/editor.js b/program/js/editor.js
index dfd3e27ea..0dd8fef9a 100644
--- a/program/js/editor.js
+++ b/program/js/editor.js
@@ -65,10 +65,12 @@ function rcube_text_editor(config, id)
// minimal editor
if (config.mode == 'identity') {
$.extend(conf, {
- plugins: 'autolink charmap code colorpicker hr link paste tabfocus textcolor',
+ plugins: 'autolink charmap code colorpicker hr image link paste tabfocus textcolor',
toolbar: 'bold italic underline alignleft aligncenter alignright alignjustify'
- + ' | outdent indent charmap hr link unlink code forecolor'
- + ' | fontselect fontsizeselect'
+ + ' | outdent indent charmap hr link unlink image code forecolor'
+ + ' | fontselect fontsizeselect',
+ file_browser_callback: function(name, url, type, win) { ref.file_browser_callback(name, url, type); },
+ file_browser_callback_types: 'image'
});
}
// full-featured editor
@@ -610,6 +612,8 @@ function rcube_text_editor(config, id)
}
});
}
+
+ // @todo: upload progress indicator
};
// close file browser window
@@ -652,7 +656,9 @@ function rcube_text_editor(config, id)
}
if (rx.test(file.mimetype)) {
- var href = rcmail.env.comm_path+'&_id='+rcmail.env.compose_id+'&_action=display-attachment&_file='+file_id,
+ var path = rcmail.env.comm_path + '&_from=' + rcmail.env.action,
+ action = rcmail.env.compose_id ? '&_id=' + rcmail.env.compose_id + '&_action=display-attachment' : '&_action=upload-display',
+ href = path + action + '&_file=' + file_id,
img = $('<img>').attr({title: file.name, src: img_src ? img_src : href + '&_thumbnail=1'});
return $('<li>').attr({tabindex: 0})
@@ -686,7 +692,7 @@ function rcube_text_editor(config, id)
this.hack_file_input = function(elem, clone_form)
{
var link = $(elem),
- file = $('<input>'),
+ file = $('<input>').attr('name', '_files[]'),
form = $('<form>').attr({method: 'post', enctype: 'multipart/form-data'}),
offset = link.offset();