From 77c7053bf1ba6f8d42fd3857a06a3d4b46f9b93d Mon Sep 17 00:00:00 2001 From: Fu Matthew Date: Wed, 6 Mar 2013 15:16:20 +0800 Subject: [PATCH 1/5] put add admin pages using orbit back end controller --- app/controllers/admin/app_auths_controller.rb | 2 +- app/controllers/admin/infos_controller.rb | 2 +- app/controllers/admin/items_controller.rb | 2 +- .../admin/member_selects_controller.rb | 2 +- .../admin/module_apps_controller.rb | 2 +- .../admin/object_auths_controller.rb | 2 +- .../admin/page_parts_controller.rb | 2 +- app/controllers/admin/purchases_controller.rb | 2 +- app/controllers/admin/roles_controller.rb | 2 +- app/controllers/admin/sites_controller.rb | 2 +- app/controllers/application_controller.rb | 24 ------------------- app/views/admin/purchases/index.html.erb | 4 ++++ 12 files changed, 14 insertions(+), 34 deletions(-) diff --git a/app/controllers/admin/app_auths_controller.rb b/app/controllers/admin/app_auths_controller.rb index 9e980e53d..28a45e9bf 100644 --- a/app/controllers/admin/app_auths_controller.rb +++ b/app/controllers/admin/app_auths_controller.rb @@ -1,4 +1,4 @@ -class Admin::AppAuthsController < ApplicationController +class Admin::AppAuthsController < OrbitBackendController layout "admin" before_filter :authenticate_user! # before_filter :is_admin? ,:only => :index diff --git a/app/controllers/admin/infos_controller.rb b/app/controllers/admin/infos_controller.rb index c35f2246d..5059c88d5 100644 --- a/app/controllers/admin/infos_controller.rb +++ b/app/controllers/admin/infos_controller.rb @@ -1,4 +1,4 @@ -class Admin::InfosController < ApplicationController +class Admin::InfosController < OrbitBackendController layout "new_admin" before_filter :authenticate_user! diff --git a/app/controllers/admin/items_controller.rb b/app/controllers/admin/items_controller.rb index e028ab680..e0a8a445d 100644 --- a/app/controllers/admin/items_controller.rb +++ b/app/controllers/admin/items_controller.rb @@ -1,4 +1,4 @@ -class Admin::ItemsController < ApplicationController +class Admin::ItemsController < OrbitBackendController layout "site_editor" diff --git a/app/controllers/admin/member_selects_controller.rb b/app/controllers/admin/member_selects_controller.rb index c4a4bf423..9d7e6643d 100644 --- a/app/controllers/admin/member_selects_controller.rb +++ b/app/controllers/admin/member_selects_controller.rb @@ -1,4 +1,4 @@ -class Admin::MemberSelectsController < ApplicationController +class Admin::MemberSelectsController < OrbitBackendController layout "new_admin" diff --git a/app/controllers/admin/module_apps_controller.rb b/app/controllers/admin/module_apps_controller.rb index da0294200..c80f7228e 100644 --- a/app/controllers/admin/module_apps_controller.rb +++ b/app/controllers/admin/module_apps_controller.rb @@ -1,4 +1,4 @@ -class Admin::ModuleAppsController < ApplicationController +class Admin::ModuleAppsController < OrbitBackendController before_filter :user_has_manager_privilege?, :only => [ :assign_manager, :remove_manager ] before_filter :user_has_sub_manager_privilege?, :only => [ :assign_sub_manager, :remove_sub_manager ] diff --git a/app/controllers/admin/object_auths_controller.rb b/app/controllers/admin/object_auths_controller.rb index d407d3db0..086ca28c0 100644 --- a/app/controllers/admin/object_auths_controller.rb +++ b/app/controllers/admin/object_auths_controller.rb @@ -1,4 +1,4 @@ -class Admin::ObjectAuthsController < ApplicationController +class Admin::ObjectAuthsController < OrbitBackendController include OrbitCoreLib::PermissionUtility layout "new_admin" before_filter :force_order diff --git a/app/controllers/admin/page_parts_controller.rb b/app/controllers/admin/page_parts_controller.rb index 4f72f97e1..1fbee0a64 100644 --- a/app/controllers/admin/page_parts_controller.rb +++ b/app/controllers/admin/page_parts_controller.rb @@ -1,4 +1,4 @@ -class Admin::PagePartsController < ApplicationController +class Admin::PagePartsController < OrbitBackendController layout "site_editor" diff --git a/app/controllers/admin/purchases_controller.rb b/app/controllers/admin/purchases_controller.rb index 8a0ffdbcc..d1d5039e2 100644 --- a/app/controllers/admin/purchases_controller.rb +++ b/app/controllers/admin/purchases_controller.rb @@ -1,4 +1,4 @@ -class Admin::PurchasesController < ApplicationController +class Admin::PurchasesController < OrbitBackendController require "net/http" require "uri" require 'zip/zip' diff --git a/app/controllers/admin/roles_controller.rb b/app/controllers/admin/roles_controller.rb index ade4aa43e..a71d5ca06 100644 --- a/app/controllers/admin/roles_controller.rb +++ b/app/controllers/admin/roles_controller.rb @@ -1,4 +1,4 @@ -class Admin::RolesController < ApplicationController +class Admin::RolesController < OrbitBackendController layout "new_admin" before_filter :authenticate_user! diff --git a/app/controllers/admin/sites_controller.rb b/app/controllers/admin/sites_controller.rb index 943134d4a..33f9582f4 100644 --- a/app/controllers/admin/sites_controller.rb +++ b/app/controllers/admin/sites_controller.rb @@ -1,4 +1,4 @@ -class Admin::SitesController < ApplicationController +class Admin::SitesController < OrbitBackendController layout "new_admin" before_filter :authenticate_user! diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6e5f80e1e..582733d14 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -59,30 +59,6 @@ class ApplicationController < ActionController::Base redirect_to root_path end - # Check if the current_user is admin,if not redirect - def is_admin? - current_or_guest_user.admin? ? true : auth_failed_in_backend - end - - # def is_manager? - # @module_app.is_manager?(current_or_guest_user) || is_admin? - # end - - # # Check if the current_user is admin - # def is_member? - # if (current_user rescue false) - # return true - # end - # return false - # end - - # def is_guest? - # if session[:guest_user_id] - # return true - # end - # return false - # end - def for_admin_only if is_admin? true diff --git a/app/views/admin/purchases/index.html.erb b/app/views/admin/purchases/index.html.erb index e45d31926..cd9d23e80 100644 --- a/app/views/admin/purchases/index.html.erb +++ b/app/views/admin/purchases/index.html.erb @@ -1,3 +1,7 @@ +<% content_for :side_bar do %> + <%= render :partial => 'layouts/side_bar', :locals => {:link_name => t('site.settings'), :link_url => admin_site_site_info_path(@site), :side_bar_content => 'admin/sites/side_bar'} %> +<% end %> +

<%= t('list.purchase') %>

From e53ad9f5d19492cab5bb7a5fe73a9451a939bed3 Mon Sep 17 00:00:00 2001 From: Fu Matthew Date: Thu, 7 Mar 2013 16:51:47 +0800 Subject: [PATCH 2/5] 1.make module app forbid unearthed access except from admin 2.override sidebar link when it's object_auth or app_auth. --- .../module_apps_new_interface_controller.rb | 18 +++++++++++++++-- lib/orbit_app/module/side_bar.rb | 20 ++++++++++++++++++- public/403.html | 1 + .../back_end/approvals_controller.rb | 2 ++ .../back_end/bulletins_controller.rb | 1 - vendor/built_in_modules/announcement/init.rb | 3 +-- 6 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 public/403.html diff --git a/app/controllers/admin/module_apps_new_interface_controller.rb b/app/controllers/admin/module_apps_new_interface_controller.rb index e1b66eac0..b0af8bd67 100644 --- a/app/controllers/admin/module_apps_new_interface_controller.rb +++ b/app/controllers/admin/module_apps_new_interface_controller.rb @@ -1,10 +1,24 @@ class Admin::ModuleAppsNewInterfaceController < OrbitBackendController - before_filter :authenticate_user! - before_filter :is_admin? + before_filter :check_auth + # before_filter :authenticate_user! + # before_filter :is_admin? include AdminHelper layout "new_admin" + def check_auth + + unless is_admin? and is_manager? + flash[:error] = "unauthorized access" + if request.env["HTTP_REFERER"] + redirect_to :back + else + render(:file => File.join(Rails.root, 'public/403.html'), :status => 403, :layout => false) + end + false + end + end + def setting @sys_users = User.all(conditions: {admin: false}).includes(:avatar).not_guest_user @module_app = ModuleApp.find(params[:module_app_id]) diff --git a/lib/orbit_app/module/side_bar.rb b/lib/orbit_app/module/side_bar.rb index 50811f03a..cdd98f967 100644 --- a/lib/orbit_app/module/side_bar.rb +++ b/lib/orbit_app/module/side_bar.rb @@ -138,9 +138,9 @@ module OrbitApp def initialize(label_i18n="NoNameLink",options={}) @label_i18n = label_i18n - @available_for = options[:available_for] @priority = options[:priority] || 0 @path = options[:link_path] || "" + set_available_for_avoiding_sensitive_links(options[:available_for] ) @active_for_action = options[:active_for_action] || [] @active_for_object_auth = options[:active_for_object_auth] || [] @active_for_app_auth = options[:active_for_app_auth] || [] @@ -148,6 +148,24 @@ module OrbitApp @get_module_app = options[:get_module_app] end + def set_available_for_avoiding_sensitive_links(available_for) + sensitive_list = {} + sensitive_list[:module_app] =/.*manager_auth_proc.*/ + sensitive_list[:object_auth] = /.*object_auth.*/ + + sensitive_list.each do |index,regx| + if @path.match(regx) + @available_for = case index + when :module_app + [:admin] + when :object_auth + [:manager,:admin] + end #of case + end #of if + end #of each + @available_for = available_for if @available_for.nil? + end #of def + def get_module_app @get_module_app.call end diff --git a/public/403.html b/public/403.html new file mode 100644 index 000000000..fa192f1e4 --- /dev/null +++ b/public/403.html @@ -0,0 +1 @@ +403 FORIBDDEN \ No newline at end of file diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb index 0fce44695..cb8da5db1 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/approvals_controller.rb @@ -3,6 +3,8 @@ class Panel::Announcement::BackEnd::ApprovalsController < OrbitBackendControlle before_filter :is_admin? include AdminHelper # layout 'admin' + + def preview_and_approve @bulletin = Bulletin.find params[:bulletin_id] end diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb index c132bce9b..5ec65b367 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb @@ -1,5 +1,4 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController - include AdminHelper include OrbitControllerLib::DivisionForDisable before_filter :clean_values, :only => [:create, :update] diff --git a/vendor/built_in_modules/announcement/init.rb b/vendor/built_in_modules/announcement/init.rb index ab54a4384..d0c4801e0 100644 --- a/vendor/built_in_modules/announcement/init.rb +++ b/vendor/built_in_modules/announcement/init.rb @@ -131,8 +131,7 @@ module Announcement context_link 'admin.module.authorization', :link_path=>"admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {title: 'Announcement'}))", :priority=>6, - :active_for_app_auth => 'Announcement', - :available_for => [:admin] + :active_for_app_auth => 'Announcement' end end end From 311d741f92c53086ebedc693686790206c3a2f59 Mon Sep 17 00:00:00 2001 From: Fu Matthew Date: Mon, 11 Mar 2013 18:21:17 +0800 Subject: [PATCH 3/5] style for front end --- app/controllers/admin/pages_controller.rb | 89 +++++++++---------- app/helpers/admin/page_parts_helper.rb | 8 +- .../pages/_custom_frontend_setting.html.erb | 4 + lib/orbit_app/module/front_end.rb | 17 +++- vendor/built_in_modules/announcement/init.rb | 1 + 5 files changed, 64 insertions(+), 55 deletions(-) diff --git a/app/controllers/admin/pages_controller.rb b/app/controllers/admin/pages_controller.rb index a5cba320a..c5d68d098 100644 --- a/app/controllers/admin/pages_controller.rb +++ b/app/controllers/admin/pages_controller.rb @@ -19,45 +19,28 @@ helper Admin::PagePartsHelper end def edit - @item = @page =Page.find(params[:id]) + @item =Page.find(params[:id]) @user_choose = @item.app_frontend_url @apps = ModuleApp.excludes(app_pages: nil).entries - @module_apps = ModuleApp.excludes(widgets: nil).where(enable_frontend: true).order_by(:title, :asc) @designs = Design.all.entries @design = @item.design ? @item.design : @designs.first if @item.module_app - @app_frontend_urls = @item.module_app.app_pages.map{|t| [I18n.t(t[0]),t[1]]} + @app_frontend_urls = [] + setup_app_frontend_and_style @app_frontend_urls << [I18n.t('default_widget.name'),'default_widget'] if @item.module_app.has_default_widget? - end - - - if @item.module_app + @module_app = @item.module_app @frontend_path = @item.app_frontend_url - if @module_app && @module_app.widgets && @module_app.widgets.any?{|b| b.class == Array} - @frontend_style = @module_app.widgets[@frontend_path] if !@frontend_path.blank? && !@module_app.widgets.blank? - end - - case @item.module_app.key - when 'announcement' - @categories = BulletinCategory.all - @tags = AnnouncementTag.all - when 'news' - @categories = NewsBulletinCategory.all - @tags = NewsTag.all - when 'web_resource' - @categories = WebLinkCategory.all - @tags = WebResourceTag.all - when 'archive' - @categories = ArchiveFileCategory.all - @tags = ArchiveTag.all - end + if @module_app && @module_app.widgets && @module_app.widgets.any?{|b| b.class == Array} + @frontend_style = @module_app.widgets[@frontend_path] if !@frontend_path.blank? && !@module_app.widgets.blank? + end + get_categories_and_tags + else - @categories = nil @module_app = @module_apps[0] end end @@ -138,35 +121,43 @@ helper Admin::PagePartsHelper end def reload_front_end_setting - @page = Page.find params[:id] + @item = Page.find params[:id] rescue nil @module_app = ModuleApp.find params[:module_app_id] - @chosen_frontend = @user_choose = params[:frontend] + @user_choose = params[:frontend] #choosen frontend + + @app_frontend_urls = @module_app.nil? ? nil : @module_app.app_pages.each{|name,data| [I18n.t(data["i18n"]),name]} + @frontend_styles = @module_app.app_pages[params["frontend"]]["style"] rescue nil end + def get_categories_and_tags + unless @module_app.nil? + @categories = @module_app.get_categories + @tags = @module_app.get_tags + end + end + + def setup_app_frontend_and_style + if @module_app.nil? + @item.module_app.app_pages.each{|name,data| @app_frontend_urls << [I18n.t(data["i18n"]),name]} + else + @module_app.app_pages.each{|name,data| @app_frontend_urls << [I18n.t(data["i18n"]),name]} + end + + @frontend_styles = @module_app.app_pages[params["frontend"]]["style"] rescue nil + @frontend_styles = @item.module_app.app_pages[@item.frontend_style]["style"] if @frontend_styles.nil? && @item && @item.module_app.app_pages[@item.frontend_style] + @frontend_styles = @item.module_app.app_pages.first[1]["style"] if @frontend_styles.nil? && @item + @frontend_styles = @module_app.app_pages.first[1]["style"] if @frontend_styles.nil? + end + def reload_frontend_pages - @page = Page.find params[:id] rescue nil - # @categories =[] + @item = Page.find params[:id] rescue nil @module_app = ModuleApp.find(params[:module_app_id]) rescue nil - @app_frontend_urls = @module_app.nil? ? nil : @module_app.app_pages.map{|t| [I18n.t(t[0]),t[1]]} + @app_frontend_urls = [] + setup_app_frontend_and_style @app_frontend_urls << [I18n.t('default_widget.name'),'default_widget'] if(@module_app && @module_app.has_default_widget?) - case (@module_app.nil? ? nil : @module_app.key ) - when 'announcement' - @categories = BulletinCategory.all - @tags = AnnouncementTag.all - when 'news' - @categories = NewsBulletinCategory.all - @tags = NewsTag.all - when 'web_resource' - @categories = WebLinkCategory.all - @tags = WebResourceTag.all - when 'archive' - @categories = ArchiveFileCategory.all - @tags = ArchiveTag.all - else - @categories = [] - @tags = [] - end + get_categories_and_tags + respond_to do |format| format.js {} end @@ -182,7 +173,7 @@ helper Admin::PagePartsHelper def reload_widget_field @index = params[:field_seri].to_i - @page = Page.find params[:id] + @item = Page.find params[:id] @choosen_field = params[:widget_field_value] @module_app = @page.module_app @module_app = ModuleApp.find params[:module_app_id] if @module_app.nil? diff --git a/app/helpers/admin/page_parts_helper.rb b/app/helpers/admin/page_parts_helper.rb index b285cfa47..95973f42e 100644 --- a/app/helpers/admin/page_parts_helper.rb +++ b/app/helpers/admin/page_parts_helper.rb @@ -11,7 +11,7 @@ module Admin::PagePartsHelper def get_widget_field_rel(local_item=nil) local_item = @part if local_item.nil? && @part - local_item = @page if local_item.nil? && @page + local_item = @item if local_item.nil? && @page case local_item when Page @@ -23,7 +23,7 @@ module Admin::PagePartsHelper def link_to_field_switch(i,object_name,field_name,local_item=nil,prefill_value=nil) #link_to_field is for showing local_item = @part if local_item.nil? && @part - local_item = @page if local_item.nil? && @page + local_item = @item if local_item.nil? && @page res = '' choosen_value = prefill_value || (local_item[:widget_field][i][0] rescue nil) @@ -53,7 +53,7 @@ module Admin::PagePartsHelper def widget_field_options(i,local_item=nil) local_item = @part if local_item.nil? && @part - local_item = @page if local_item.nil? && @page + local_item = @item if local_item.nil? && @page options = @module_app.widget_fields.collect do |widget_field| label = I18n.t("#{@module_app.key}.default_widget.#{widget_field[0]}") @@ -71,7 +71,7 @@ module Admin::PagePartsHelper def widget_fiield_type_options(i,local_item=nil) options = LIST[:widget_field_type].collect{|widget_field| [widget_field.humanize, widget_field]} local_item = @part if local_item.nil? && @part - local_item = @page if local_item.nil? && @page + local_item = @item if local_item.nil? && @page case local_item when Page diff --git a/app/views/admin/pages/_custom_frontend_setting.html.erb b/app/views/admin/pages/_custom_frontend_setting.html.erb index 8b52708e5..07c89e5b6 100644 --- a/app/views/admin/pages/_custom_frontend_setting.html.erb +++ b/app/views/admin/pages/_custom_frontend_setting.html.erb @@ -3,6 +3,10 @@ <%= t("default_widget.select_widget_style") %>
+ <% if @frontend_styles%> + <%= select('page', 'frontend_style', @frontend_styles) %> + <% else %> <%= t("default_widget.no_support_setting")%> + <% end %>
diff --git a/lib/orbit_app/module/front_end.rb b/lib/orbit_app/module/front_end.rb index 0c5b245c2..5547404c2 100644 --- a/lib/orbit_app/module/front_end.rb +++ b/lib/orbit_app/module/front_end.rb @@ -33,15 +33,20 @@ module OrbitApp end def to_module_app_format #For ModuleApp to fetch data - @frontend_pages.collect{|t| [t.get_i18n,t.name]} + result = {} + @frontend_pages.collect do |t| + result[t.name] = {:i18n=>t.get_i18n,:style=>t.get_style} + end + result end end class AppPage attr_reader :name - + attr_reader :style def initialize(name,&block) + @style @name = name @frontend_i18n = 'rulingcom.errors.init.app_page_noname' block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? @@ -59,6 +64,14 @@ module OrbitApp end + def get_style + @style + end + + def style(ary)# [] + @style = ary + end + protected end# of AppPage diff --git a/vendor/built_in_modules/announcement/init.rb b/vendor/built_in_modules/announcement/init.rb index d0c4801e0..53525f782 100644 --- a/vendor/built_in_modules/announcement/init.rb +++ b/vendor/built_in_modules/announcement/init.rb @@ -14,6 +14,7 @@ module Announcement front_end do app_page 'bulletins' do frontend_i18n "announcement.frontend.bulletins" + style ["1","2","3"] end end From aa851cad765982b245a9e8759de8d319a3590bbe Mon Sep 17 00:00:00 2001 From: Fu Matthew Date: Wed, 13 Mar 2013 14:09:10 +0800 Subject: [PATCH 4/5] now default options can be chosen by developer at init --- .../_default_widget_style_panel.html.erb | 90 ++++++++++--------- lib/orbit_app/module/side_bar.rb | 7 +- lib/orbit_app/module/widget.rb | 8 +- vendor/built_in_modules/announcement/init.rb | 1 + 4 files changed, 58 insertions(+), 48 deletions(-) diff --git a/app/views/admin/page_parts/_default_widget_style_panel.html.erb b/app/views/admin/page_parts/_default_widget_style_panel.html.erb index bc6fc89c6..f4eb8ed2a 100644 --- a/app/views/admin/page_parts/_default_widget_style_panel.html.erb +++ b/app/views/admin/page_parts/_default_widget_style_panel.html.erb @@ -12,47 +12,57 @@
    -
  • - + <% if @module_app.get_default_widget["enabled_styles"].include?("typeA") %> +
  • + -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • + + <% end %> + <% if @module_app.get_default_widget["enabled_styles"].include?("typeB_style2") %> +
  • + +
  • + <% end %> + <% if @module_app.get_default_widget["enabled_styles"].include?("typeB_style3") %> +
  • + +
  • + <% end %> + <% if @module_app.get_default_widget["enabled_styles"].include?("typeB_style4") %> +
  • + +
  • + <% end %> + <% if @module_app.get_default_widget["enabled_styles"].include?("typeC") %> +
  • + +
  • + <% end %>
\ No newline at end of file diff --git a/lib/orbit_app/module/side_bar.rb b/lib/orbit_app/module/side_bar.rb index cdd98f967..79019bf03 100644 --- a/lib/orbit_app/module/side_bar.rb +++ b/lib/orbit_app/module/side_bar.rb @@ -40,12 +40,7 @@ module OrbitApp # include ApplicationHelper # include AdminHelper include SideBarRenderer - # def is_admin? - # binding.pry - # end - # def is_manager? - # binding.pry - # end + def initialize(name = '',key,get_module_app,&block) @head_label = name @context_links = [] diff --git a/lib/orbit_app/module/widget.rb b/lib/orbit_app/module/widget.rb index 3389b5b15..199cc64ef 100644 --- a/lib/orbit_app/module/widget.rb +++ b/lib/orbit_app/module/widget.rb @@ -101,9 +101,13 @@ module OrbitApp @image = nil @more_link = {} @fields = [] + @enabled_styles = STYLE block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? end + def enable(args) + @enabled_styles = args + end def link_to_more(*args) @more_link[:label_i18n] = (args[1] ? args[1][:title_i18n] : 'default_widget.default_link_to_more' ) @@ -112,11 +116,11 @@ module OrbitApp def self.get_interface_args #will need to work with design - {:name=>"default_widget",:field=>@fields,:style=>STYLE,:i18n=>'default_widget.default_widget'} + {:name=>"default_widget",:field=>@fields,:style=>@enabled_styles,:i18n=>'default_widget.default_widget'} end def to_module_app_format - {"query"=>@query,"image"=>@image,"more_link"=>@more_link} rescue nil + {"query"=>@query,"image"=>@image,"more_link"=>@more_link,"enabled_styles"=>@enabled_styles} rescue nil end def link_field(field_name,setting) diff --git a/vendor/built_in_modules/announcement/init.rb b/vendor/built_in_modules/announcement/init.rb index 53525f782..10c19f14b 100644 --- a/vendor/built_in_modules/announcement/init.rb +++ b/vendor/built_in_modules/announcement/init.rb @@ -23,6 +23,7 @@ module Announcement widgets do default_widget do + enable ["typeA","typeC"] query 'Bulletin.all' image :image field :postdate From 66633443de1c127841eb8ac149d0e3f9095c2f73 Mon Sep 17 00:00:00 2001 From: Fu Matthew Date: Wed, 13 Mar 2013 17:53:11 +0800 Subject: [PATCH 5/5] add conditions for making multi cates and tags more stable --- app/controllers/admin/page_parts_controller.rb | 4 ++-- app/controllers/admin/pages_controller.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/page_parts_controller.rb b/app/controllers/admin/page_parts_controller.rb index 1fbee0a64..b7a036909 100644 --- a/app/controllers/admin/page_parts_controller.rb +++ b/app/controllers/admin/page_parts_controller.rb @@ -65,11 +65,11 @@ class Admin::PagePartsController < OrbitBackendController params[:page_part][:module_app] = nil end - if params[:page_part][:tag].include?("nil") + if params[:page_part][:tag].nil? || params[:page_part][:tag].include?("nil") params[:page_part][:tag] = [] end - if params[:page_part][:category].include?("nil") + if params[:page_part][:category].nil? || params[:page_part][:category].include?("nil") params[:page_part][:category] = [] end diff --git a/app/controllers/admin/pages_controller.rb b/app/controllers/admin/pages_controller.rb index c5d68d098..6b9ad9cc3 100644 --- a/app/controllers/admin/pages_controller.rb +++ b/app/controllers/admin/pages_controller.rb @@ -79,11 +79,11 @@ helper Admin::PagePartsHelper params[:page][:frontend_field] = params[:page][:frontend_field].zip( params[:page][:frontend_field_type] ) if params[:page][:frontend_field] params[:page][:frontend_field_type] = nil - if params[:page][:tag].include?("nil") + if params[:page][:tag].nil? || params[:page][:tag].include?("nil") params[:page][:tag] = [] end - if params[:page][:category].include?("nil") + if params[:page][:category].nil? || params[:page][:category].include?("nil") params[:page][:category] = [] end