Merge server and rails_3_1
This commit is contained in:
1 parent
d2c2e174ac
commit
86443661e9
42 files changed
+274
-190
No files matched your search
@@ -0,0 +1,84 @@
|
||||
class Design
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
|
||||
field :title
|
||||
field :author
|
||||
field :intro
|
||||
|
||||
field :version
|
||||
|
||||
validates_presence_of :title
|
||||
validates_presence_of :author
|
||||
|
||||
embeds_one :layout
|
||||
mount_uploader :structure_css, AssetUploader
|
||||
|
||||
embeds_many :themes
|
||||
embeds_many :javascripts
|
||||
embeds_many :images
|
||||
|
||||
after_save :procs_embedded_objects
|
||||
after_destroy :del_embedded_objects
|
||||
|
||||
def javascripts=(*attrs)
|
||||
self.files = (attrs << 'javascripts')
|
||||
end
|
||||
|
||||
def themes=(*attrs)
|
||||
self.files = (attrs << 'themes')
|
||||
end
|
||||
|
||||
def images=(*attrs)
|
||||
self.files = (attrs << 'images')
|
||||
end
|
||||
|
||||
# Update or create the attribute_model records
|
||||
def files=(attrs)
|
||||
case 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
|
||||
else
|
||||
files.each do |file|
|
||||
if file.id.to_s == a[:id]
|
||||
file.to_destroy = a[:to_destroy]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
def del_embedded_objects
|
||||
[[self.layout],self.themes, self.javascripts, self.images].each do |objects|
|
||||
objects.each do |object|
|
||||
object.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
def procs_embedded_objects
|
||||
[[self.layout],self.themes, self.javascripts, self.images].each do |objects|
|
||||
objects.each do |object|
|
||||
if object.file.blank?
|
||||
object.to_save = false
|
||||
end
|
||||
if object.to_save
|
||||
object.to_save = false
|
||||
object.save
|
||||
end
|
||||
if object.to_destroy
|
||||
object.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
class DesignFile
|
||||
include Mongoid::Document
|
||||
|
||||
mount_uploader :file, AssetUploader
|
||||
|
||||
field :to_save, :type => Boolean
|
||||
field :to_destroy, :type => Boolean
|
||||
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
class Image < DesignFile
|
||||
embedded_in :design
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
class Javascript < DesignFile
|
||||
embedded_in :design
|
||||
end
|
||||
@@ -0,0 +1,21 @@
|
||||
class Layout < DesignFile
|
||||
include Parser
|
||||
embedded_in :design
|
||||
|
||||
attr_reader :content
|
||||
has_many :layout_parts
|
||||
|
||||
def content
|
||||
self.file.read
|
||||
end
|
||||
|
||||
def self.exist_one?
|
||||
Layout.count > 0
|
||||
end
|
||||
|
||||
after_save:parse_layout
|
||||
|
||||
def parse_layout
|
||||
parse_layout_layout_part(self)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,14 @@
|
||||
class LayoutPart
|
||||
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :name_tag
|
||||
field :id_tag
|
||||
field :editable_tag
|
||||
field :class_tag
|
||||
field :content
|
||||
|
||||
belongs_to :layout
|
||||
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
class Stylesheet < DesignFile
|
||||
embedded_in :design
|
||||
end
|
||||
@@ -0,0 +1,3 @@
|
||||
class Theme < Stylesheet
|
||||
embedded_in :design
|
||||
end
|
||||
Reference in new issue
Block a user