Fixing upload bug
This commit is contained in:
		
							parent
							
								
									1ac10e70a2
								
							
						
					
					
						commit
						dabd6dd5b5
					
				|  | @ -1,3 +1,7 @@ | ||||||
|  | $(".r_edit").live("click",function(){ | ||||||
|  |   $(this).after($("<span style='border:solid; width:400px;height:300px; float:right;'></span>").load($(this).attr("path"))); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
| $(".r_snapshot").live({ | $(".r_snapshot").live({ | ||||||
|   mouseenter: |   mouseenter: | ||||||
|     function(){ |     function(){ | ||||||
|  | @ -11,11 +15,11 @@ $(".r_snapshot").live({ | ||||||
| ); | ); | ||||||
| 
 | 
 | ||||||
| $('input.multi_files').live("change", function(){ | $('input.multi_files').live("change", function(){ | ||||||
|   $(this).prev("ul").append("<li>"+$(this).val()+"</li>"); |   $(this).parent().prev("ul").append("<li>"+$(this).val()+"</li>"); | ||||||
|   new_node =$(this).clone(); |   new_node =$(this).parent().clone(); | ||||||
|   $(this).css("display","none"); |   $(this).css("display","none"); | ||||||
|   new_node.val(""); |   new_node.children('input.multi_files').val(""); | ||||||
|   $(this).before(new_node)  |   $(this).parent().before(new_node); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| $('a.remove_mark').live("click",function(){ | $('a.remove_mark').live("click",function(){ | ||||||
|  |  | ||||||
|  | @ -23,6 +23,11 @@ class Admin::DesignsController < ApplicationController | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def file_edit | ||||||
|  |     @design = Design.find(params[:id]) | ||||||
|  |     debugger | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|   def edit |   def edit | ||||||
|     @design = Design.find(params[:id]) |     @design = Design.find(params[:id]) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|  | @ -18,6 +18,7 @@ class Design | ||||||
|   embeds_many :images |   embeds_many :images | ||||||
| 
 | 
 | ||||||
|   after_save :procs_embedded_objects |   after_save :procs_embedded_objects | ||||||
|  |   after_destroy :del_embedded_objects | ||||||
|    |    | ||||||
|   def javascripts=(*attrs) |   def javascripts=(*attrs) | ||||||
|     self.files = (attrs << 'javascripts') |     self.files = (attrs << 'javascripts') | ||||||
|  | @ -35,12 +36,12 @@ class Design | ||||||
|   def files=(attrs) |   def files=(attrs) | ||||||
|     files = eval(attrs.last) |     files = eval(attrs.last) | ||||||
|     attrs[0].each do |a| |     attrs[0].each do |a| | ||||||
|       if(a[:id].nil?) |       if(a[:id]=='' && !a[:file].nil?) | ||||||
|         files.build(:file => a[:file], :to_save => true) |         files.build(:file => a[:file], :to_save => true) | ||||||
|       else |       else | ||||||
|         files.each do |file| |         files.each do |file| | ||||||
|           if file.id.to_s == a[:id] |           if file.id.to_s == a[:id] | ||||||
|             file.to_destroy = a[:to_destroy] |              file.to_destroy = a[:to_destroy] | ||||||
|           end |           end | ||||||
|         end |         end | ||||||
|       end |       end | ||||||
|  | @ -48,6 +49,13 @@ class Design | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   protected |   protected | ||||||
|  |   def del_embedded_objects | ||||||
|  |     [self.stylesheets, self.javascripts, self.images].each do |objects| | ||||||
|  |       objects.each do |object| | ||||||
|  |         object.destroy | ||||||
|  |       end | ||||||
|  |      end | ||||||
|  |   end | ||||||
|   def procs_embedded_objects |   def procs_embedded_objects | ||||||
|     [self.stylesheets, self.javascripts, self.images].each do |objects| |     [self.stylesheets, self.javascripts, self.images].each do |objects| | ||||||
|       objects.each do |object| |       objects.each do |object| | ||||||
|  |  | ||||||
|  | @ -1,5 +1,6 @@ | ||||||
| <% item_destroy ||= false %> | <% item_destroy ||= false %> | ||||||
| <% item_snapshot ||= false %> | <% item_snapshot ||= false %> | ||||||
|  | <% item_editable ||= false %> | ||||||
| <% li_class = ''%> | <% li_class = ''%> | ||||||
| 
 | 
 | ||||||
| <% fieldname_p = fieldname.pluralize  %> | <% fieldname_p = fieldname.pluralize  %> | ||||||
|  | @ -8,17 +9,26 @@ | ||||||
|   <% object.send(fieldname_p).each do |t| %> |   <% object.send(fieldname_p).each do |t| %> | ||||||
|     <% li_class += 'r_destroy ' if item_destroy  %> |     <% li_class += 'r_destroy ' if item_destroy  %> | ||||||
|     <% li_class += 'r_snapshot ' if item_snapshot %> |     <% li_class += 'r_snapshot ' if item_snapshot %> | ||||||
|     <li class="<%= li_class %>" <%= "path='#{t.file.url}'" if item_snapshot  %>  > <%= t.file_filename %> |     <% li_class += 'r_edit ' if item_editable %> | ||||||
|     <% if item_destroy  %> |     <li class="<%= li_class %>" <%= "path='#{t.file.url}'" if (item_snapshot || item_editable)  %>  >  | ||||||
|       <%=fields_for "design["+fieldname_p+"][]",t,:index=>nil do |f| %> |       <%= t.file_filename %> | ||||||
|       <%= f.hidden_field :id %> |       <% if item_destroy  %> | ||||||
|       <%= f.hidden_field :to_destroy %> |         <%=fields_for "design["+fieldname_p+"][]",t,:index=>nil do |f| %> | ||||||
|     <%end%> |           <%= f.hidden_field :id %> | ||||||
|       <a class="remove_mark" href="#"><%= t('Delete') %></a> |           <%= f.hidden_field :to_destroy %> | ||||||
|     <% end  %> |         <%end%> | ||||||
|  |         <a class="remove_mark" href="#"><%= t('Delete') %></a> | ||||||
|  |       <%end%> | ||||||
|  |        | ||||||
|  |       <% if item_editable %> | ||||||
|  |         <a class="edit_mark" href="#"><%= t('Edit') %></a> | ||||||
|  |       <% end %> | ||||||
|     </li> |     </li> | ||||||
|   <% end %> |   <% end %> | ||||||
| </ul> | </ul> | ||||||
|  | <p class="new_file"> | ||||||
| <%= fields_for "design["+fieldname_p+"][]", object, :index => nil do |f| %> | <%= fields_for "design["+fieldname_p+"][]", object, :index => nil do |f| %> | ||||||
|  |   <%= f.hidden_field :id,{:value=>''} %> | ||||||
|   <%= f.file_field :file ,{:class=>"multi_files",:rtype=>rtype}%> |   <%= f.file_field :file ,{:class=>"multi_files",:rtype=>rtype}%> | ||||||
|  | </p> | ||||||
| <% end %> | <% end %> | ||||||
|  |  | ||||||
|  | @ -26,52 +26,13 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <p> | <p> | ||||||
|   <%= f.label "stylesheet", t('admin.stylesheet') %> | <%= render :partial => 'design_file' ,:locals => { :fieldname=>"stylesheet",:object=>@design ,:f=>f,:rtype=>'stylesheets',:item_destroy=>true,:item_editable=>true } %> | ||||||
|     <ul> |  | ||||||
|     <% @design.stylesheets.each do |t| %> |  | ||||||
|       <li class="r_destroy r_edit" ><%= t.file_filename %> |  | ||||||
|         <%= fields_for "design[stylesheets][]", t, :index => nil do |f| %> |  | ||||||
|         <%= f.hidden_field :id %> |  | ||||||
|         <%= f.hidden_field :to_destroy %> |  | ||||||
|       <%end%> |  | ||||||
|         <a class="remove_mark" href="#">Del</a></li> |  | ||||||
|     <% end %> |  | ||||||
|     </ul> |  | ||||||
|   <%= fields_for "design[stylesheets][]", @design, :index => nil do |f| %> |  | ||||||
|     <%= f.file_field :file ,{:class=>"multi_files",:rtype=>"stylesheets"}%> |  | ||||||
|   <% end %> |  | ||||||
| </p> | </p> | ||||||
| 
 | 
 | ||||||
| <p> | <p> | ||||||
|   <%= f.label "javascript", t('admin.javascript') %> | <%= render :partial => 'design_file' ,:locals => { :fieldname=>"javascript",:object=>@design ,:f=>f,:rtype=>'javascripts' ,:item_destroy=>true,:item_editable=>true} %> | ||||||
|     <ul> |  | ||||||
|     <% @design.javascripts.each do |t| %> |  | ||||||
|       <li class="r_destroy r_edit" ><%= t.file_filename %> |  | ||||||
|         <%=fields_for "design[javascripts][]",t,:index=>nil do |f| %> |  | ||||||
|         <%= f.hidden_field :id %> |  | ||||||
|         <%= f.hidden_field :to_destroy %> |  | ||||||
|       <%end%> |  | ||||||
|         <a class="remove_mark" href="#">Del</a></li> |  | ||||||
|     <% end %> |  | ||||||
|     </ul> |  | ||||||
|   <%= fields_for "design[javascripts][]", @design, :index => nil do |f| %> |  | ||||||
|     <%= f.file_field :file,{:class=>"multi_files",:rtype=>"javascripts"} %> |  | ||||||
| <% end %> |  | ||||||
| </p> | </p> | ||||||
| 
 | 
 | ||||||
| <p> | <p> | ||||||
|   <%= f.label "image", t('admin.image') %> | <%= render :partial => 'design_file' ,:locals => { :fieldname=>"image",:object=>@design ,:f=>f,:rtype=>'images' ,:item_destroy=>true,:item_snapshot=>true} %> | ||||||
|   <ul> |  | ||||||
|     <% @design.images.each do |t| %> |  | ||||||
|       <li class="r_destroy r_snapshot" path="<%= t.file %>" item_id="<%=t.id %>"><%= t.file_filename %> |  | ||||||
|         <%=fields_for "design[images][]",t,:index=>nil do |f| %> |  | ||||||
|         <%= f.hidden_field :id %> |  | ||||||
|         <%= f.hidden_field :to_destroy %> |  | ||||||
|       <%end%> |  | ||||||
|         <a class="remove_mark" href="#">Del</a></li> |  | ||||||
|     <% end %> |  | ||||||
|   </ul> |  | ||||||
|   <%= fields_for "design[images][]", @design, :index => nil do |f| %> |  | ||||||
|     <%= f.file_field :file ,{:class=>"multi_files",:rtype=>"images"}%> |  | ||||||
|   <% end %> |  | ||||||
| </p> | </p> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue