From 64197e29da8b552a2ff668c2535e0a53edd720f9 Mon Sep 17 00:00:00 2001 From: manson Date: Tue, 13 May 2014 18:41:29 +0800 Subject: [PATCH] ModuleApp registration frontend enable and data count --- app/controllers/pages_controller.rb | 4 ++-- app/models/module_app.rb | 8 ++++++++ lib/orbit_app/module/registration.rb | 20 +++++++++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 42d04a0..538967a 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -131,14 +131,14 @@ class PagesController < ApplicationController def new @page = Page.new @pages = Page.where(:page_id.ne => "" , :page_id.exists => true) - @modules = ModuleApp.all + @modules = ModuleApp.all.frontend_enabled end def edit @page = Page.find(params[:id]) @pages = Page.where(:page_id.ne => "" , :page_id.exists => true) - @modules = ModuleApp.all + @modules = ModuleApp.all.frontend_enabled module_app = ModuleApp.find_by_key(@page.module); @categories = module_app.categories end diff --git a/app/models/module_app.rb b/app/models/module_app.rb index 2616798..3b838f9 100644 --- a/app/models/module_app.rb +++ b/app/models/module_app.rb @@ -7,6 +7,7 @@ class ModuleApp field :taggable, type: Boolean, default: false field :categorizable, type: Boolean, default: false field :authorizable, type: Boolean, default: false + field :frontend_enable, type: Boolean, default: false field :sidebar_order,type: Integer,default: 0 field :authorizable_models, type: Array @@ -14,11 +15,14 @@ class ModuleApp has_and_belongs_to_many :tags, dependent: :destroy, :autosave => true has_many :authorizations + scope :frontend_enabled, ->{ where(:frontend_enable => true)} + def refetch_setting!(reg) self[:taggable] = reg.is_taggable self[:categorizable] = reg.is_categorizable self[:authorizable] = reg.is_authorizable self[:authorizable_models] = reg.get_authorizable_models + self[:frontend_enable] = reg.is_frontend_enabled end def get_registration @@ -77,4 +81,8 @@ class ModuleApp users_authorized_by_role = authorized_members.map {|u| u.user} rescue [] authorized_users.inject(users_authorized_by_role, :<<) rescue [] end + + def data_count + get_registration.get_data_count + end end diff --git a/lib/orbit_app/module/registration.rb b/lib/orbit_app/module/registration.rb index 2cd5030..a7db63a 100644 --- a/lib/orbit_app/module/registration.rb +++ b/lib/orbit_app/module/registration.rb @@ -31,7 +31,7 @@ module OrbitApp end class RegisteredModule - attr_reader :name,:key,:module_label,:widget_methods,:authorizable_models,:is_authorizable + attr_reader :name,:key,:module_label,:widget_methods,:authorizable_models,:is_authorizable, :data_count def initialize(name,&block) @name = name @@ -44,6 +44,8 @@ module OrbitApp @is_authorizable = false @taggable_model = nil @is_categorizable = false + @is_frontend_enabled = false + @data_count = nil block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? setup_module_app end @@ -127,6 +129,22 @@ module OrbitApp def get_authorizable_models @authorizable_models end + + def frontend_enabled + @is_frontend_enabled = true + end + + def is_frontend_enabled + @is_frontend_enabled + end + + def data_count(range) + @data_count = range + end + + def get_data_count + @data_count + end end end end