diff --git a/Gemfile.lock b/Gemfile.lock
index 74e4c8c1..338256e6 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -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)
diff --git a/app/assets/javascripts/design_temp.js b/app/assets/javascripts/design_temp.js
index b2aca4b1..ff19da16 100644
--- a/app/assets/javascripts/design_temp.js
+++ b/app/assets/javascripts/design_temp.js
@@ -59,9 +59,9 @@ $(".r_snapshot").live({
);
$('input.multi_files').live("change", function(){
- $(this).parent().prev("ul").append("
"+$(this).val()+"");
- new_node =$(this).parent().clone();
- $(this).css("display","none");
+ $(this).parent().prev("ul").append("" + $(this).val() + "");
+ 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;
});
diff --git a/app/controllers/admin/designs_controller.rb b/app/controllers/admin/designs_controller.rb
index ef4be863..932c855b 100644
--- a/app/controllers/admin/designs_controller.rb
+++ b/app/controllers/admin/designs_controller.rb
@@ -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."
diff --git a/app/models/design/design.rb b/app/models/design/design.rb
index f4c637f5..9346c175 100644
--- a/app/models/design/design.rb
+++ b/app/models/design/design.rb
@@ -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
diff --git a/app/models/design/layout.rb b/app/models/design/layout.rb
index ef768512..dae1c43b 100644
--- a/app/models/design/layout.rb
+++ b/app/models/design/layout.rb
@@ -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
diff --git a/app/views/admin/designs/_design_file.html.erb b/app/views/admin/designs/_design_file.html.erb
index c8a66a53..3fbb9ab4 100644
--- a/app/views/admin/designs/_design_file.html.erb
+++ b/app/views/admin/designs/_design_file.html.erb
@@ -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) %>
- <% 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 %>
- - >
+ <% object.send(field_name).each do |t| %>
+
- >
<%= 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 %>
<%= t('Delete') %>
- <%end%>
-
- <% if item_editable %>
+ <% end %>
+ <% if classes.include?('r_editable') %>
<%= t('Edit') %>
<% end %>
<% end %>
-<%= 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" %>
-<% end %>
+<% end %>
\ No newline at end of file
diff --git a/app/views/admin/designs/_form.html.erb b/app/views/admin/designs/_form.html.erb
index ac4317c4..8095e9fd 100644
--- a/app/views/admin/designs/_form.html.erb
+++ b/app/views/admin/designs/_form.html.erb
@@ -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 %>
+
-<%= f.label :title, t('admin.title') %>
-<%= f.text_field :title, :class => 'text' %>
+ <%= f.label :title, t('admin.title') %>
+ <%= f.text_field :title, :class => 'text' %>
-<%= f.label :author, t('admin.author') %>
-<%= f.text_field :author, :class => 'text' %>
+ <%= f.label :author, t('admin.author') %>
+ <%= f.text_field :author, :class => 'text' %>
-<%= f.label :intro, t('admin.intro') %>
-<%= f.text_field :intro, :class => 'text' %>
+ <%= f.label :intro, t('admin.intro') %>
+ <%= f.text_field :intro, :class => 'text' %>
-<%= 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 %>
-<%= 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 %>
-<%= 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" } %>
-<%= 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" } %>
-<%= 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" } %>