109 lines
4.3 KiB
Ruby
109 lines
4.3 KiB
Ruby
|
class Site
|
||
|
include Mongoid::Document
|
||
|
include Mongoid::Timestamps
|
||
|
include Slug
|
||
|
|
||
|
DEBUG = false
|
||
|
has_many :page_sets, :autosave => true, :dependent => :destroy
|
||
|
accepts_nested_attributes_for :page_sets, :allow_destroy => true
|
||
|
field :title, as: :slug_title, type: String, localize: true
|
||
|
field :school, type: String
|
||
|
field :department, type: String
|
||
|
field :address, type: String
|
||
|
field :footer, localize: true
|
||
|
field :social_share, type: String
|
||
|
field :sub_menu, localize: true
|
||
|
field :site_type
|
||
|
field :site_map_link, type: String, :default => "/sitemap"
|
||
|
field :terms_of_use_link, type: String
|
||
|
field :google_analytics, type: String
|
||
|
field :in_use_locales, :type => Array
|
||
|
field :valid_locales, :type => Array
|
||
|
field :site_active, :type => Boolean
|
||
|
field :frontend_open, :type => Boolean, :default => true
|
||
|
field :backend_openness_on, :type => Boolean, :default => false
|
||
|
field :mobile_api_openness_on, :type => Boolean, :default => false
|
||
|
field :desktop_closed, :type => Boolean, :default => false
|
||
|
field :enable_language_detection, :type => Boolean, :default => false
|
||
|
field :enable_redirect_index, :type => Boolean, :default => true
|
||
|
field :enable_zh_cn, :type => Boolean, :default => true
|
||
|
field :enable_language_options, :type => Boolean, :default => true
|
||
|
field :default_locale, :default => "zh_tw"
|
||
|
field :mobile_on, :type => Boolean, :default => false
|
||
|
field :announcement_category, :type => Array, :default=>[]
|
||
|
field :mobile_bar_color, :type => Array, :default=>[]
|
||
|
field :phone_number, :type => Array,:default=>[]
|
||
|
field :title_always_on, :type => Boolean, :default => false
|
||
|
field :display_title_in_frontend, :type => Boolean, :default => true
|
||
|
field :sitemap_menu_in_header, :type => Boolean, :default => false
|
||
|
field :enable_terms_of_use, :type => Boolean, :default => false
|
||
|
field :search,:type => Hash
|
||
|
field :site_settings
|
||
|
field :template, type: String
|
||
|
field :store_token
|
||
|
field :enable_last_update, type: Boolean, :default => false
|
||
|
field :personal_plugins_sort, type: Array, :default => []
|
||
|
field :sign_up_roles, type: Array, :default => []
|
||
|
|
||
|
field :mobile_orbit_bar_title, localize: true
|
||
|
field :google_oauth_enabled, :type => Boolean, :default => false
|
||
|
field :google_client_id
|
||
|
field :google_client_secret
|
||
|
field :meta_tags
|
||
|
field :every_page_sharer, type: Array, :default => ["facebook","twitter","google","printer"]
|
||
|
|
||
|
field :sync_enabled, type: Boolean, :default => false
|
||
|
field :sync_rake_task
|
||
|
|
||
|
field :month_traffic_cache
|
||
|
field :home_link, :type => String, :default=>"/"
|
||
|
field :home_link_1, :type => String, :default=>"/"
|
||
|
field :site_title, :type => Hash, :default=>{:zh_tw=>"主頁",:en=>"home_page"}
|
||
|
field :site_title_1, :type => Hash, :default=>{:zh_tw=>"主頁",:en=>"home_page"}
|
||
|
field :is_hidden_orbit_bar , type: Boolean, :default => false
|
||
|
field :orbit_bar_background_color , type: String, :default => ""
|
||
|
field :orbit_bar_text_color , type: String, :default => ""
|
||
|
field :orbit_bar_submenu_background_color , type: String, :default => ""
|
||
|
field :orbit_bar_submenu_text_color , type: String, :default => ""
|
||
|
field :orbit_bar_animation_time , type: String, :default => "0.3s"
|
||
|
mount_uploader :default_image, ImageUploader
|
||
|
mount_uploader :site_logo, ImageUploader
|
||
|
mount_uploader :site_logo_1, ImageUploader
|
||
|
mount_uploader :favicon, ImageUploader
|
||
|
mount_uploader :mobile_icon, ImageUploader
|
||
|
after_initialize do
|
||
|
if !self.new_record?
|
||
|
if self.is_hidden_orbit_bar.nil?
|
||
|
self.is_hidden_orbit_bar = false
|
||
|
self.save
|
||
|
end
|
||
|
if self.orbit_bar_background_color.nil?
|
||
|
self.orbit_bar_background_color = ""
|
||
|
self.save
|
||
|
end
|
||
|
if self.orbit_bar_text_color.nil?
|
||
|
self.orbit_bar_text_color = ""
|
||
|
self.save
|
||
|
end
|
||
|
if self.orbit_bar_submenu_background_color.nil?
|
||
|
self.orbit_bar_submenu_background_color = ""
|
||
|
self.save
|
||
|
end
|
||
|
if self.orbit_bar_submenu_text_color.nil?
|
||
|
self.orbit_bar_submenu_text_color = ""
|
||
|
self.save
|
||
|
end
|
||
|
if self.orbit_bar_animation_time.nil?
|
||
|
self.orbit_bar_animation_time = "0.3s"
|
||
|
self.save
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
def register_site(url,university,department,email,country)
|
||
|
api_key = STORE_CONFIG[:store_settings]["api_key"]
|
||
|
self.generate_site_token
|
||
|
store = Store.new(self.id.to_s,self.site_token,api_key)
|
||
|
store.post_client(self.id.to_s,self.site_token,self.title,url,university,department,email,country)
|
||
|
end
|
||
|
end
|