]> source.dussan.org Git - redmine.git/commitdiff
Adds a button to remove a file upload before submission (#5670).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 9 Jul 2011 20:11:18 +0000 (20:11 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 9 Jul 2011 20:11:18 +0000 (20:11 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6212 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/attachments/_form.rhtml
public/javascripts/application.js
public/stylesheets/application.css

index 6d387d1c2e411bcf17418ebf1d7234908dd20e9a..b936af198f82b46be1fb466e809162fd17aa9dba 100644 (file)
@@ -1,8 +1,10 @@
 <span id="attachments_fields">
-<%= file_field_tag 'attachments[1][file]', :size => 30, :id => nil  -%><label class="inline"><span id="attachment_description_label_content"><%= l(:label_optional_description) %></span><%= text_field_tag 'attachments[1][description]', '', :size => 60, :id => nil %>
-</label>
+  <span>
+       <%= file_field_tag 'attachments[1][file]', :size => 30, :id => nil, :class => 'file'  -%>
+               <label class="inline"><%= l(:label_optional_description) %><%= text_field_tag 'attachments[1][description]', '', :size => 60, :id => nil, :class => 'description' %></label>
+               <%= link_to_function(image_tag('delete.png'), 'removeFileField(this)', :title => (l(:button_delete))) %>
+       </span>
 </span>
-<br />
 <small><%= link_to l(:label_add_another_file), '#', :onclick => 'addFileField(); return false;' %>
 (<%= l(:label_max_size) %>: <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>)
 </small>
index e8e8e4add99d97e0b05b0c1aeb11339271bf2e95..19aef77b873b8ecac36dfed8154768a68c695a8d 100644 (file)
@@ -86,9 +86,9 @@ function hideFieldset(el) {
 var fileFieldCount = 1;
 
 function addFileField() {
-  if (fileFieldCount >= 10) return false
-  fileFieldCount++;
   var fields = $('attachments_fields');
+  if (fields.childElements().length >= 10) return false;
+  fileFieldCount++;
   var s = document.createElement("span");
   s.update(fields.down('span').innerHTML);
   s.down('input.file').name = "attachments[" + fileFieldCount + "][file]";
@@ -96,6 +96,16 @@ function addFileField() {
   fields.appendChild(s);
 }
 
+function removeFileField(el) {
+  var fields = $('attachments_fields');
+       var s = Element.up(el, 'span');
+       if (fields.childElements().length > 1) {
+               s.remove();
+       } else {
+               s.update(s.innerHTML);
+       }
+}
+
 function showTab(name) {
     var f = $$('div#content .tab-content');
        for(var i=0; i<f.length; i++){
index d621b5d1d78f80eb5b5f3af40860921503cb4d71..ddaba211a0914a299822f43dc1785e2a3c8b48ed 100644 (file)
@@ -445,6 +445,8 @@ fieldset#notified_events .parent { padding-left: 20px; }
 .summary {font-style: italic;}
 
 #attachments_fields input[type=text] {margin-left: 8px; }
+#attachments_fields span {display:block; white-space:nowrap;}
+#attachments_fields img {vertical-align: middle;}
 
 div.attachments { margin-top: 12px; }
 div.attachments p { margin:4px 0 2px 0; }