From 14bfbe2d8ad6e83f566bf76ee7f1cb2f93c1d197 Mon Sep 17 00:00:00 2001 From: manson Date: Tue, 5 Aug 2014 18:22:36 +0800 Subject: [PATCH] update ModuleApp and OrbitWidget registration --- app/controllers/page_parts_controller.rb | 8 ++++---- app/models/module_app.rb | 4 ++++ app/models/orbit_widget.rb | 9 ++++++++- lib/orbit_app/widget/registration.rb | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/controllers/page_parts_controller.rb b/app/controllers/page_parts_controller.rb index 450820e..dcfbc4a 100644 --- a/app/controllers/page_parts_controller.rb +++ b/app/controllers/page_parts_controller.rb @@ -43,8 +43,8 @@ class PagePartsController < ApplicationController app = OrbitWidget.find_by_key(module_name) if app.nil? @categories = app.categories rescue [] @tags = app.tags rescue [] - @widget_methods = app.get_registration.get_widget_methods - @widget_settings = app.get_registration.get_widget_settings + @widget_methods = app.widget_methods + @widget_settings = app.widget_settings @data_count = nil if !@widget_settings.blank? @data_count = @widget_settings["data_count"] rescue nil @@ -102,8 +102,8 @@ class PagePartsController < ApplicationController app = OrbitWidget.find_by_key(module_name) if app.nil? @categories = app.categories rescue [] @tags = app.tags rescue [] - @widget_methods = app.get_registration.get_widget_methods - @widget_settings = app.get_registration.get_widget_settings + @widget_methods = app.widget_methods + @widget_settings = app.widget_settings @data_count = nil if !@widget_settings.blank? @data_count = @widget_settings["data_count"] rescue nil diff --git a/app/models/module_app.rb b/app/models/module_app.rb index 24fb183..20229c9 100644 --- a/app/models/module_app.rb +++ b/app/models/module_app.rb @@ -11,6 +11,8 @@ class ModuleApp field :sidebar_order,type: Integer,default: 0 field :authorizable_models, type: Array field :widget_enable, type: Boolean, default: false + field :widget_methods + field :widget_settings has_many :categories, dependent: :destroy, :autosave => true has_and_belongs_to_many :tags, dependent: :destroy, :autosave => true @@ -26,6 +28,8 @@ class ModuleApp self[:authorizable_models] = reg.get_authorizable_models self[:frontend_enable] = reg.is_frontend_enabled self[:widget_enable] = reg.is_widget_enabled + self[:widget_methods] = reg.get_widget_methods + self[:widget_settings] = reg.get_widget_settings end def get_registration diff --git a/app/models/orbit_widget.rb b/app/models/orbit_widget.rb index ba61c7e..c6a6fa1 100644 --- a/app/models/orbit_widget.rb +++ b/app/models/orbit_widget.rb @@ -4,10 +4,17 @@ class OrbitWidget field :title, type: String field :key, type: String + field :widget_methods + field :widget_settings + + def refetch_setting!(reg) + self[:widget_methods] = reg.get_widget_methods + self[:widget_settings] = reg.get_widget_settings + end def get_registration OrbitApp::Widget::Registration.find_by_key(key) - end + end def self.find_by_key(key) self.find_by(:key => key) diff --git a/lib/orbit_app/widget/registration.rb b/lib/orbit_app/widget/registration.rb index be82944..009d4a4 100644 --- a/lib/orbit_app/widget/registration.rb +++ b/lib/orbit_app/widget/registration.rb @@ -51,7 +51,7 @@ module OrbitApp def setup_module_app orbit_widget = get_orbit_widget orbit_widget = OrbitWidget.new(:key=>@key,:title=>name) if orbit_widget.nil? - # orbit_widget.refetch_setting!(self) + orbit_widget.refetch_setting!(self) orbit_widget.save(:validate=>false) end