From 54acaebc98308d72f891c17331593483dface79c Mon Sep 17 00:00:00 2001 From: Fu Matthew Date: Mon, 11 Mar 2013 18:21:17 +0800 Subject: [PATCH] style for front end --- app/controllers/admin/pages_controller.rb | 85 +++++++++---------- .../pages/_custom_frontend_setting.html.erb | 4 + lib/orbit_app/module/front_end.rb | 17 +++- vendor/built_in_modules/announcement/init.rb | 1 + 4 files changed, 58 insertions(+), 49 deletions(-) diff --git a/app/controllers/admin/pages_controller.rb b/app/controllers/admin/pages_controller.rb index 28b51ca47..2d5af3473 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.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 @@ -143,35 +126,43 @@ helper Admin::PagePartsHelper end def reload_front_end_setting - @item = 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 @item = Page.find params[:id] rescue nil - # @categories =[] @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 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 6206b83c6..c3562bdbd 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