modified V,C,M related with layout and have bug between layout and design
This commit is contained in:
parent
c8d58e30aa
commit
706ec745c3
|
@ -77,7 +77,6 @@ GEM
|
|||
mongo (~> 1.3)
|
||||
tzinfo (~> 0.3.22)
|
||||
multi_json (1.0.3)
|
||||
nokogiri (1.5.0)
|
||||
orm_adapter (0.0.5)
|
||||
polyglot (0.3.1)
|
||||
rack (1.3.0)
|
||||
|
@ -160,7 +159,6 @@ DEPENDENCIES
|
|||
jquery-rails (>= 1.0.3)
|
||||
mini_magick
|
||||
mongoid
|
||||
nokogiri
|
||||
rails (>= 3.1.0.rc4)
|
||||
rake (>= 0.9.2)
|
||||
rcov
|
||||
|
|
|
@ -12,8 +12,9 @@ class Design
|
|||
validates_presence_of :author
|
||||
|
||||
mount_uploader :layout, DesignFileUploader
|
||||
mount_uploader :structure_css, DesignFileUploader
|
||||
|
||||
embeds_many :stylesheets
|
||||
embeds_many :themes
|
||||
embeds_many :javascripts
|
||||
embeds_many :images
|
||||
|
||||
|
@ -24,8 +25,8 @@ class Design
|
|||
self.files = (attrs << 'javascripts')
|
||||
end
|
||||
|
||||
def stylesheets=(*attrs)
|
||||
self.files = (attrs << 'stylesheets')
|
||||
def themes=(*attrs)
|
||||
self.files = (attrs << 'themes')
|
||||
end
|
||||
|
||||
def images=(*attrs)
|
||||
|
@ -52,14 +53,14 @@ class Design
|
|||
|
||||
protected
|
||||
def del_embedded_objects
|
||||
[self.stylesheets, self.javascripts, self.images].each do |objects|
|
||||
[self.themes, self.javascripts, self.images].each do |objects|
|
||||
objects.each do |object|
|
||||
object.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
def procs_embedded_objects
|
||||
[self.stylesheets, self.javascripts, self.images].each do |objects|
|
||||
[self.themes, self.javascripts, self.images].each do |objects|
|
||||
objects.each do |object|
|
||||
if object.file.blank?
|
||||
object.to_save = false
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
class Layout
|
||||
class Layout < DesignFile
|
||||
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
embedded_in :design
|
||||
|
||||
|
||||
field :name, :index => true
|
||||
field :description
|
||||
field :content
|
||||
field :parent_id
|
||||
|
||||
references_many :children, :class_name => "Item"
|
||||
has_many :layout_parts
|
||||
belongs_to :design,:class_name=>"Design"
|
||||
|
||||
validates_presence_of :name
|
||||
validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/
|
||||
|
@ -19,5 +14,4 @@ class Layout
|
|||
def self.exist_one?
|
||||
Layout.count > 0
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -3,17 +3,17 @@ class Page < Item
|
|||
#include LayoutSupport
|
||||
|
||||
field :content
|
||||
field :layout_name
|
||||
field :layout_id
|
||||
field :design_name
|
||||
field :design_id
|
||||
|
||||
validates_presence_of :layout_name, :layout_id
|
||||
validates_presence_of :design_name, :design_id
|
||||
|
||||
referenced_in :layout
|
||||
referenced_in :design
|
||||
has_many :page_parts
|
||||
|
||||
def create_parts
|
||||
page_layout = self.get_layout
|
||||
page_layout.layout_parts.each do |p|
|
||||
page_design = self.get_design
|
||||
page_design.layout.layout_parts.each do |p|
|
||||
self.page_parts.create( :name => p.name, :i18n_variable_id => I18nVariable.create.id, :kind => 'text' ) if p['editable']
|
||||
end
|
||||
end
|
||||
|
@ -26,8 +26,8 @@ class Page < Item
|
|||
end
|
||||
end
|
||||
|
||||
def get_layout
|
||||
Layout.find(layout_id)
|
||||
def get_design
|
||||
Design.find(design_id)
|
||||
end
|
||||
|
||||
protected
|
||||
|
@ -35,8 +35,8 @@ class Page < Item
|
|||
def setup_default_value
|
||||
super
|
||||
|
||||
if self.layout_id
|
||||
self.layout_name = get_layout.name
|
||||
if self.design_id
|
||||
self.design_name = get_design.title
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
class Theme < Stylesheet
|
||||
embedded_in :design
|
||||
end
|
|
@ -24,7 +24,15 @@
|
|||
<% end %>
|
||||
</p>
|
||||
<p>
|
||||
<%= render :partial => 'design_file' ,:locals => { :fieldname=>"stylesheet",:object=>@design ,:f=>f,:rtype=>'stylesheets',:item_destroy=>true,:item_editable=>true } %>
|
||||
<%= f.label "structure_css", t('admin.structure_css') %>
|
||||
<% if @design.structure_css.blank? %>
|
||||
<%= f.file_field :structure_css %>
|
||||
<% else%>
|
||||
<%= File.basename (Design.all.last.structure_css.url) %>
|
||||
<% end %>
|
||||
</p>
|
||||
<p>
|
||||
<%= render :partial => 'design_file' ,:locals => { :fieldname=>"themes",:object=>@design ,:f=>f,:rtype=>'stylesheets',:item_destroy=>true,:item_editable=>true } %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
<% end %>
|
||||
|
||||
<p>
|
||||
<%= f.label :layout_id, t('admin.layout_name') %>
|
||||
<%= f.select :layout_id, Layout.all.map{ |l| [l.description, l.id] } %>
|
||||
<%= f.label :design_id, t('admin.design_name') %>
|
||||
<%= f.select :design_id, Design.all.map{ |l| [l.title, l.id] } %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
$('#panel_main').html("<%= escape_javascript(render(:partial => 'admin/pages/show')) %>");
|
||||
history.pushState(null, document.title, "<%= escape_javascript(admin_page_url(@item)) %>");
|
||||
history.pushState(null, document.title, "<%= escape_javascript(admin_page_url(@item)) %>");
|
||||
|
|
|
@ -98,7 +98,7 @@ module Parser
|
|||
|
||||
def parse_page(page)
|
||||
if page._type == 'Page'
|
||||
layout_content = page.layout.content
|
||||
layout_content = page.design.layout.content
|
||||
context = parser_context(page)
|
||||
parser = Radius::Parser.new(context, :tag_prefix => 'r')
|
||||
parser.parse(parser.parse(layout_content))
|
||||
|
@ -107,7 +107,7 @@ module Parser
|
|||
|
||||
def parse_page_edit(page)
|
||||
if page._type == 'Page'
|
||||
layout_content = page.layout.content
|
||||
layout_content = page.design.layout.content
|
||||
context = parser_context_edit(page)
|
||||
parser = Radius::Parser.new(context, :tag_prefix => 'r')
|
||||
parser.parse(parser.parse(layout_content))
|
||||
|
@ -185,7 +185,7 @@ module Parser
|
|||
end
|
||||
|
||||
def parse_page_code(page)
|
||||
layout_content = page.layout.content
|
||||
layout_content = page.design.layout.content
|
||||
context = parser_context_code(page)
|
||||
parser = Radius::Parser.new(context, :tag_prefix => 'r')
|
||||
parser.parse(layout_content)
|
||||
|
|
Reference in New Issue