diff --git a/CHANGELOG b/CHANGELOG
index 34c431305..73a04daad 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Enable multiselection for attachments uploading in capable browsers (#1485969)
- Add possibility to change HTML editor configuration by skin
- Fix a bug where selecting too many contacts would produce too large URI request (#1487892)
- Fix relative URLs handling according to a in HTML (#1487889)
diff --git a/program/include/html.php b/program/include/html.php
index 34536e4c6..8f932ce2c 100644
--- a/program/include/html.php
+++ b/program/include/html.php
@@ -271,7 +271,7 @@ class html_inputfield extends html
protected $type = 'text';
protected $allowed = array('type','name','value','size','tabindex',
'autocomplete','checked','onchange','onclick','disabled','readonly',
- 'spellcheck','results','maxlength','src');
+ 'spellcheck','results','maxlength','src','multiple');
/**
* Object constructor
diff --git a/program/js/app.js b/program/js/app.js
index e83f33715..3da2eca56 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -473,13 +473,13 @@ function rcube_webmail()
// trigger plugin hooks
this.triggerEvent('actionbefore', {props:props, action:command});
- var event_ret = this.triggerEvent('before'+command, props);
- if (event_ret !== undefined) {
+ var ret = this.triggerEvent('before'+command, props);
+ if (ret !== undefined) {
// abort if one the handlers returned false
- if (event_ret === false)
+ if (ret === false)
return false;
else
- props = event_ret;
+ props = ret;
}
// process internal command
@@ -3171,16 +3171,12 @@ function rcube_webmail()
if (!form)
return false;
- // get file input fields
- var send = false;
- for (var n=0; n
1 ? 'many' : '')),
ts = frame_name.replace(/^rcmupload/, '');
if (this.env.loadingicon)
@@ -3225,8 +3221,7 @@ function rcube_webmail()
if (!this.gui_objects.attachmentlist)
return false;
- var li = $('').attr('id', name).html(att.html);
- var indicator;
+ var indicator, li = $('').attr('id', name).html(att.html);
// replace indicator's li
if (upload_id && (indicator = document.getElementById(upload_id))) {
@@ -3253,7 +3248,7 @@ function rcube_webmail()
return false;
var list = this.gui_objects.attachmentlist.getElementsByTagName("li");
- for (i=0;iset_env('max_filesize', $max_filesize);
$max_filesize = show_bytes($max_filesize);
$button = new html_inputfield(array('type' => 'button'));
@@ -1172,6 +1174,8 @@ function rcmail_compose_attachment_field($attrib)
{
$attrib['type'] = 'file';
$attrib['name'] = '_attachments[]';
+ $attrib['multiple'] = 'multiple';
+
$field = new html_inputfield($attrib);
return $field->show();
}