132 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
class ModuleApp
 | 
						|
  include Mongoid::Document
 | 
						|
  include Mongoid::Timestamps
 | 
						|
  include OrbitCoreLib::ObjectTokenUtility
 | 
						|
  include OrbitApp::ModuleAppMembershipTools
 | 
						|
 | 
						|
  field :key
 | 
						|
  field :title
 | 
						|
  field :sidebar_order,type: Integer,default: 0
 | 
						|
 | 
						|
  def refetch_setting!(reg)
 | 
						|
    # %w{module_label category base_url version organization author intro update_info create_date}.each  do |field|
 | 
						|
    #   self[field.to_sym] =  reg.send field 
 | 
						|
    # end    
 | 
						|
    self[:app_pages] = reg.get_app_pages
 | 
						|
    self[:enable_frontend] = reg.get_enable_frontend
 | 
						|
    self[:get_widget_style] = reg.get_widgets
 | 
						|
    self[:using_default_widget] = !reg.get_default_widget.blank?
 | 
						|
    self[:widgets] = reg.get_widgets
 | 
						|
  end
 | 
						|
 | 
						|
    
 | 
						|
  # def app_pages
 | 
						|
  #   get_registration.get_app_pages
 | 
						|
  # end
 | 
						|
 | 
						|
 | 
						|
  def enable_frontend?
 | 
						|
    self[:enable_frontend]
 | 
						|
  end
 | 
						|
 | 
						|
  def get_default_widget
 | 
						|
    get_registration.get_default_widget
 | 
						|
  end
 | 
						|
 | 
						|
 | 
						|
  def get_widget_for_select
 | 
						|
    widgets = get_widget_style
 | 
						|
    ary = widgets.collect do |k,v| 
 | 
						|
      if k == 'default_widget'
 | 
						|
        [I18n.t('widget.default_widget'),'default_widget'] 
 | 
						|
      else
 | 
						|
        [I18n.t(v[:label]),k]   
 | 
						|
      end
 | 
						|
      
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  # def get_widget_style
 | 
						|
  #   get_registration.get_widgets
 | 
						|
  # end
 | 
						|
 | 
						|
  def has_default_widget?
 | 
						|
    self[:widgets].has_key? 'default_widget'  
 | 
						|
  end
 | 
						|
 | 
						|
  def label
 | 
						|
    I18n.t(label_i18n)
 | 
						|
  end
 | 
						|
 | 
						|
  def label_i18n
 | 
						|
    reg = get_registration
 | 
						|
    reg.nil? ?  'Init is not defined completely' : get_registration.get_label_i18n
 | 
						|
  end
 | 
						|
 | 
						|
 | 
						|
  # def needs_to_widget_option?
 | 
						|
  #   if self.widget_options
 | 
						|
  #     self.widget_options.has_key? widgets.first
 | 
						|
  #   else
 | 
						|
  #     false  
 | 
						|
  #   end
 | 
						|
  # end
 | 
						|
 | 
						|
  def using_default_widget?
 | 
						|
    # !get_registration.get_default_widget.blank?
 | 
						|
    self[:get_default_widget]
 | 
						|
  end
 | 
						|
 | 
						|
  def widget_fields
 | 
						|
    # binding.pry
 | 
						|
    # raise 'Need to link with OrbitApp [type: Array]'
 | 
						|
    get_registration.get_default_widget_fields
 | 
						|
  end
 | 
						|
 | 
						|
  # def widgets
 | 
						|
  #   # get_registration.get_widgets
 | 
						|
  #   # get_registration.get_default_widget
 | 
						|
  # end
 | 
						|
 | 
						|
  def widget_options(widget_path=nil)
 | 
						|
    get_registration.get_widget_by_path(widget_path)
 | 
						|
    # raise 'Need to link with OrbitApp [type: Hash]'
 | 
						|
  end
 | 
						|
 | 
						|
  def widget_options_fields_i18n
 | 
						|
    raise 'Need to link with OrbitApp [type: Hash]'
 | 
						|
  end
 | 
						|
 | 
						|
  def widget_fields_link_method
 | 
						|
    get_registration.get_link_methods
 | 
						|
    # raise 'Need to link with OrbitApp [type: Hash]'
 | 
						|
  end
 | 
						|
 | 
						|
 | 
						|
  has_many :managers,as: :managing_app ,:class_name => "AppManager" ,:dependent => :destroy#,:foreign_key => "managing_app_id",:inverse_of => :managing_app
 | 
						|
  has_many :sub_managers,as: :sub_managing_app ,:class_name => "AppManager", :dependent => :destroy#,:foreign_key => "sub_managing_app_id",:inverse_of => :sub_managing_app
 | 
						|
  
 | 
						|
  # # has_many :tags
 | 
						|
  has_many :page_parts
 | 
						|
  has_many :pages
 | 
						|
  
 | 
						|
  has_one :app_auth,dependent: :delete
 | 
						|
 | 
						|
  def get_tags
 | 
						|
    get_registration.get_tags
 | 
						|
  end
 | 
						|
 | 
						|
  def get_categories
 | 
						|
    get_registration.get_categories
 | 
						|
  end
 | 
						|
 | 
						|
  def module_name
 | 
						|
    I18n.t(get_registration.get_label_i18n)
 | 
						|
  end
 | 
						|
 | 
						|
  def get_registration
 | 
						|
    OrbitApp::Module::Registration.find_by_key(key)
 | 
						|
  end
 | 
						|
  
 | 
						|
end
 |