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>
|
||||||
|
|
Reference in New Issue