Clean code and workaround mongoid embedded with carrierwave
This commit is contained in:
parent
a1391493a3
commit
a571d1dcff
|
@ -80,7 +80,7 @@ GEM
|
|||
subexec (~> 0.1.0)
|
||||
mongo (1.3.1)
|
||||
bson (>= 1.3.1)
|
||||
mongoid (2.1.9)
|
||||
mongoid (2.2.0)
|
||||
activemodel (~> 3.0)
|
||||
mongo (~> 1.3)
|
||||
tzinfo (~> 0.3.22)
|
||||
|
|
|
@ -59,9 +59,9 @@ $(".r_snapshot").live({
|
|||
);
|
||||
|
||||
$('input.multi_files').live("change", function(){
|
||||
$(this).parent().prev("ul").append("<li>"+$(this).val()+"</li>");
|
||||
new_node =$(this).parent().clone();
|
||||
$(this).css("display","none");
|
||||
$(this).parent().prev("ul").append("<li>" + $(this).val() + "</li>");
|
||||
new_node = $(this).parent().clone();
|
||||
$(this).parent().css("display","none");
|
||||
new_node.children('input.multi_files').val("");
|
||||
$(this).parent().before(new_node);
|
||||
});
|
||||
|
@ -69,8 +69,8 @@ $('input.multi_files').live("change", function(){
|
|||
$('a.remove_mark').live("click",function(){
|
||||
$(this).prev("input").val("true");
|
||||
$(this).parent().css("text-decoration","line-through")
|
||||
$(this).parent("li").removeClass("r_snapshot");
|
||||
$(this).next("span").remove();
|
||||
$(this).parent().removeClass("r_snapshot");
|
||||
$(this).next().remove();
|
||||
$(this).remove();
|
||||
return false;
|
||||
});
|
||||
|
|
|
@ -32,7 +32,6 @@ class Admin::DesignsController < ApplicationController
|
|||
end
|
||||
|
||||
def update
|
||||
params[:design][:existing_task_attributes] ||= {}
|
||||
@design = Design.find(params[:id])
|
||||
if @design.update_attributes(params[:design])
|
||||
flash[:notice] = "Successfully updated design and tasks."
|
||||
|
|
|
@ -38,16 +38,14 @@ class Design
|
|||
# Update or create the attribute_model records
|
||||
def files=(attrs)
|
||||
case attrs.last
|
||||
when 'layout'
|
||||
files = self.layout.build
|
||||
else
|
||||
files = eval(attrs.last)
|
||||
when 'layout'
|
||||
files = self.layout.build
|
||||
else
|
||||
files = eval(attrs.last)
|
||||
end
|
||||
attrs[0].each do |a|
|
||||
if(a[:id]=='' && !a[:file].nil? )
|
||||
if(a[:file]!='')
|
||||
files.build(:file => a[:file], :to_save => true)
|
||||
end
|
||||
if a[:id].blank? && !a[:file].blank?
|
||||
files.build(:file => a[:file], :to_save => true)
|
||||
else
|
||||
files.each do |file|
|
||||
if file.id.to_s == a[:id]
|
||||
|
@ -75,6 +73,7 @@ class Design
|
|||
end
|
||||
end
|
||||
if self.layout.to_save
|
||||
self.layout.to_save = false
|
||||
self.layout.save
|
||||
self.layout.parse_urls
|
||||
end
|
||||
|
@ -86,12 +85,11 @@ class Design
|
|||
end
|
||||
|
||||
def process_object(object)
|
||||
if object.file.blank?
|
||||
object.to_save = false
|
||||
end
|
||||
if object.to_save
|
||||
object.to_save = false
|
||||
object.save
|
||||
new_object = self.send(object._type.downcase.pluralize).build
|
||||
new_object.file = object.file
|
||||
object.destroy
|
||||
new_object.save
|
||||
end
|
||||
if object.to_destroy
|
||||
object.destroy
|
||||
|
|
|
@ -39,7 +39,7 @@ class Layout < DesignFile
|
|||
names << [html_name, file_name]
|
||||
}
|
||||
names.each do |name|
|
||||
content.gsub!(name[0], name[1])
|
||||
content.gsub!(name[0], name[1]) rescue nil
|
||||
end
|
||||
Dir.mktmpdir('f_path') { |dir|
|
||||
orig_file_name = self.file_filename
|
||||
|
|
|
@ -1,34 +1,24 @@
|
|||
<% item_destroy ||= false %>
|
||||
<% item_snapshot ||= false %>
|
||||
<% item_editable ||= false %>
|
||||
<% li_class = ''%>
|
||||
|
||||
<% fieldname_p = fieldname.pluralize %>
|
||||
<%= f.label "fieldname", t('admin.'+fieldname) %>
|
||||
<%= f.label "field_name", t('admin.' + field_name) %>
|
||||
<ul>
|
||||
<% object.send(fieldname_p).each do |t| %>
|
||||
<% li_class += 'r_destroy ' if item_destroy %>
|
||||
<% li_class += 'r_snapshot ' if item_snapshot %>
|
||||
<% li_class += 'r_edit ' if item_editable %>
|
||||
<li class="<%= li_class %>" <%= "path='#{t.file.url}' filename='#{t.file_filename}'" if (item_snapshot || item_editable) %> >
|
||||
<% object.send(field_name).each do |t| %>
|
||||
<li class="<%= classes %>" <%="path='#{t.file.url}' filename='#{t.file_filename}'" %> >
|
||||
<%= t.file_filename %>
|
||||
<% if item_destroy %>
|
||||
<%=fields_for "design["+fieldname_p+"][]",t,:index=>nil do |f| %>
|
||||
<% if classes.include?('r_destroy') %>
|
||||
<%= fields_for "design[" + field_name + "][]", t, :index => nil do |f| %>
|
||||
<%= f.hidden_field :id %>
|
||||
<%= f.hidden_field :file %>
|
||||
<%= f.hidden_field :to_destroy %>
|
||||
<%end%>
|
||||
<% end %>
|
||||
<a class="remove_mark" href="#"><%= t('Delete') %></a>
|
||||
<%end%>
|
||||
|
||||
<% if item_editable %>
|
||||
<% end %>
|
||||
<% if classes.include?('r_editable') %>
|
||||
<a class="edit_mark" href="#"><%= t('Edit') %></a>
|
||||
<% end %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
<p class="new_file">
|
||||
<%= fields_for "design["+fieldname_p+"][]", object, :index => nil do |f| %>
|
||||
<%= f.hidden_field :id,{:value=>''} %>
|
||||
<%= f.file_field :file ,{:class=>"multi_files",:rtype=>rtype}%>
|
||||
<%= fields_for "design[" + field_name + "][]", object.send(field_name).build, :index => nil do |f| %>
|
||||
<%= f.file_field :file, :class => "multi_files" %>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
|
@ -1,46 +1,48 @@
|
|||
<%= stylesheet_link_tag "design_temp" %>
|
||||
<%= javascript_include_tag "design_temp" %>
|
||||
<% content_for :page_specific_css do %>
|
||||
<%= stylesheet_link_tag "design_temp" %>
|
||||
<% end %>
|
||||
|
||||
<p>
|
||||
<%= f.label :title, t('admin.title') %>
|
||||
<%= f.text_field :title, :class => 'text' %>
|
||||
<%= f.label :title, t('admin.title') %>
|
||||
<%= f.text_field :title, :class => 'text' %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :author, t('admin.author') %>
|
||||
<%= f.text_field :author, :class => 'text' %>
|
||||
<%= f.label :author, t('admin.author') %>
|
||||
<%= f.text_field :author, :class => 'text' %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= f.label :intro, t('admin.intro') %>
|
||||
<%= f.text_field :intro, :class => 'text' %>
|
||||
<%= f.label :intro, t('admin.intro') %>
|
||||
<%= f.text_field :intro, :class => 'text' %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= f.label "layout", t('admin.layout') %>
|
||||
<% if @design.layout.blank? %>
|
||||
<%= f.label "layout", t('admin.layout') %>
|
||||
<% if @design.layout.blank? %>
|
||||
<%= fields_for 'design[layout]' do |f| %>
|
||||
<%= f.file_field :file %>
|
||||
<%= f.file_field :file %>
|
||||
<%= f.hidden_field :to_save, :value => true %>
|
||||
<% end %>
|
||||
<% else%>
|
||||
<%= File.basename (@design.layout.file.url) %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= File.basename (@design.layout.file.url) %>
|
||||
<% end %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label "default_css", t('admin.default_css') %>
|
||||
<% if @design.default_css.blank? %>
|
||||
<%= f.file_field :default_css %>
|
||||
<% else%>
|
||||
<%= File.basename (@design.default_css.url) %>
|
||||
<% end %>
|
||||
<%= f.label "default_css", t('admin.default_css') %>
|
||||
<% if @design.default_css.blank? %>
|
||||
<%= f.file_field :default_css %>
|
||||
<% else %>
|
||||
<%= File.basename (@design.default_css.url) %>
|
||||
<% end %>
|
||||
</p>
|
||||
<p>
|
||||
<%= render :partial => 'design_file' ,:locals => { :fieldname=>"themes",:object=>@design ,:f=>f,:rtype=>'stylesheets',:item_destroy=>true,:item_editable=>true } %>
|
||||
<%= render :partial => 'design_file', :locals => { :object => @design, :field_name => "themes", :f => f, :classes => "r_destroy, r_editable" } %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= render :partial => 'design_file' ,:locals => { :fieldname=>"javascript",:object=>@design ,:f=>f,:rtype=>'javascripts' ,:item_destroy=>true,:item_editable=>true} %>
|
||||
<%= render :partial => 'design_file', :locals => { :object => @design, :field_name => "javascripts", :f => f, :classes => "r_destroy, r_editable" } %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= render :partial => 'design_file' ,:locals => { :fieldname=>"image",:object=>@design ,:f=>f,:rtype=>'images' ,:item_destroy=>true,:item_snapshot=>true} %>
|
||||
<%= render :partial => 'design_file', :locals => { :object => @design, :field_name => "images", :f => f, :classes => "r_destroy, r_snapshot" } %>
|
||||
</p>
|
||||
|
|
Reference in New Issue