From 071e8a349cc7334af40dea8602bbfe1783d84b4e Mon Sep 17 00:00:00 2001 From: Fu Matthew Date: Sat, 23 Feb 2013 18:29:50 +0800 Subject: [PATCH] link to more --- .../admin/page_parts/_module_widget.html.erb | 10 +++------- .../admin/page_parts/reload_widgets.js.erb | 2 +- app/views/admin/pages/_form.html.erb | 10 ++-------- .../admin/pages/reload_frontend_pages.js.erb | 3 ++- app/views/default_widget/_typeB.html.erb | 1 - app/views/default_widget/_typeC.html.erb | 1 - .../default_widget/default_widget.html.erb | 5 ++++- lib/orbit_app.rb | 1 + lib/orbit_app/module/registration.rb | 17 ++++++++++++++-- lib/orbit_app/module/widget.rb | 20 ++++++++++++++----- .../announcement/config/locales/zh_tw.yml | 1 + vendor/built_in_modules/announcement/init.rb | 2 ++ 12 files changed, 46 insertions(+), 27 deletions(-) diff --git a/app/views/admin/page_parts/_module_widget.html.erb b/app/views/admin/page_parts/_module_widget.html.erb index 2ed647e7..0862ae29 100644 --- a/app/views/admin/page_parts/_module_widget.html.erb +++ b/app/views/admin/page_parts/_module_widget.html.erb @@ -46,11 +46,7 @@ <%= render :partial => 'widget_setting' ,:locals=>{:f=>f,:object=>@part} %> -
- -
- <%= text_field_tag "page_part[widget_data_count]",@part.widget_data_count %> -
+
+ <%= render :partial=>'admin/pages/data_count_field',:locals=>{:field_name=>"page_part[widget_data_count]",:field_value=>@part.widget_data_count } %>
+ diff --git a/app/views/admin/page_parts/reload_widgets.js.erb b/app/views/admin/page_parts/reload_widgets.js.erb index afe62dd3..4e162167 100644 --- a/app/views/admin/page_parts/reload_widgets.js.erb +++ b/app/views/admin/page_parts/reload_widgets.js.erb @@ -2,7 +2,7 @@ $('#widget_list select').html("<%= j options_for_select(@module_app.widgets.collect{|k,v| [I18n.t(v['i18n']),k]},@part.widget_path) %>"); $("#widget_data_source_category").html("<%= j render :partial => 'widget_data_source_category',:locals=>{:object=>@part} %>"); $("#widget_data_source_tag").html("<%= j render :partial => 'widget_data_source_tag',:locals=>{:object=>@part} %>"); - + $("#data_count").html("<%= j render :partial => 'admin/pages/data_count_field',:locals=>{:field_name=>'page_part[widget_data_count]',:field_value=>@part.widget_data_count } %>"); <% if @part %> <% if show_default_widget_setting_panel %> $('#widget_setting').html("<%= j render :partial => 'default_widget_style_panel' %>"); diff --git a/app/views/admin/pages/_form.html.erb b/app/views/admin/pages/_form.html.erb index 98ab5249..d3308bc6 100644 --- a/app/views/admin/pages/_form.html.erb +++ b/app/views/admin/pages/_form.html.erb @@ -66,16 +66,10 @@ <%= render :partial => 'frontend_setting', :locals=>{:object=>@item,:f=>f} %>
-
- -
- <%= text_field_tag "page[frontend_data_count]",@item.frontend_data_count %> -
+
+ <%= render :partial=>'data_count_field',:locals=>{:field_name=>"page[frontend_data_count]",:field_value=>@item.frontend_data_count} %>
-
<%= f.label :is_published, "#{t('front_page.is_published')} ?", :class => 'control-label' %>
diff --git a/app/views/admin/pages/reload_frontend_pages.js.erb b/app/views/admin/pages/reload_frontend_pages.js.erb index 1d4ce1f8..215ec3fb 100644 --- a/app/views/admin/pages/reload_frontend_pages.js.erb +++ b/app/views/admin/pages/reload_frontend_pages.js.erb @@ -1,7 +1,8 @@ <% if @module_app %> $('#app_page_category').html("<%= j render :partial => 'admin/page_parts/widget_data_source_category' ,:locals=>{:object=>@page}%>"); $('#app_page_tag').html("<%= j render :partial => 'admin/page_parts/widget_data_source_tag',:locals=>{:object=>@page} %>"); - + $("#data_count").html("<%= j render :partial => 'admin/pages/data_count_field',:locals=>{:field_name=>'page[frontend_data_count]',:field_value=>@page.frontend_data_count} %>"); + <% if !@module_app.app_pages.blank? %> $('#app_page_url').html("<%= escape_javascript(select 'page', 'app_frontend_url', options_for_select(@app_frontend_urls, @app_frontend_urls.first)) %>"); <%else %> diff --git a/app/views/default_widget/_typeB.html.erb b/app/views/default_widget/_typeB.html.erb index fcf70065..ff2b8bdd 100644 --- a/app/views/default_widget/_typeB.html.erb +++ b/app/views/default_widget/_typeB.html.erb @@ -13,5 +13,4 @@ <% end %> <% end %> -
more
<% end %> diff --git a/app/views/default_widget/_typeC.html.erb b/app/views/default_widget/_typeC.html.erb index d3b3e49f..24729b08 100644 --- a/app/views/default_widget/_typeC.html.erb +++ b/app/views/default_widget/_typeC.html.erb @@ -11,5 +11,4 @@ <% end %> <% end %> -
more
<% end %> diff --git a/app/views/default_widget/default_widget.html.erb b/app/views/default_widget/default_widget.html.erb index b134d8ad..fe46de2c 100644 --- a/app/views/default_widget/default_widget.html.erb +++ b/app/views/default_widget/default_widget.html.erb @@ -1,4 +1,7 @@ <%= render @partial %> <% if @paginate %> <%= paginate @data, :param_name => :page_main, :params => {:same_page_id => @page_id} %> -<% end %> \ No newline at end of file +<% end %> +<% if @page_part.module_app %> + <%= @page_part.module_app.get_registration.default_widget_setting.link_to_more_tag(request,params) %> +<% end %> diff --git a/lib/orbit_app.rb b/lib/orbit_app.rb index 5b20f7a5..0d801751 100644 --- a/lib/orbit_app.rb +++ b/lib/orbit_app.rb @@ -3,6 +3,7 @@ require "orbit_app/dsl" require "orbit_app/helper/renderer" require "orbit_app/helper/side_bar_renderer" require "orbit_app/helper/context_link_renderer" +require "orbit_app/helper/default_widget_tag_helper" require "orbit_app/module/side_bar" require "orbit_app/module/widget" require "orbit_app/module/front_end" diff --git a/lib/orbit_app/module/registration.rb b/lib/orbit_app/module/registration.rb index 9856f7d3..9a300a0f 100644 --- a/lib/orbit_app/module/registration.rb +++ b/lib/orbit_app/module/registration.rb @@ -28,7 +28,7 @@ module OrbitApp end class DataSheet - attr_reader :name,:key,:base_path,:module_label + attr_reader :name,:key,:base_path,:module_label,:data_count def initialize(name, &block) @name = name @@ -36,6 +36,7 @@ module OrbitApp @side_bar = nil @front_end_app_pages = nil @module_label = 'rulingcom.errors.init.module_app_noname' + @data_count = 1..3 # as default block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? setup_module_app end @@ -86,6 +87,10 @@ module OrbitApp @front_end_app_pages.nil? ? [] : @front_end_app_pages.to_module_app_format end + def get_data_count + @data_count + end + def get_widget_by_path(path) if @widget_set @widget_set.find_by_path(path) @@ -94,6 +99,14 @@ module OrbitApp end end + def default_widget_setting + @widget_set.default_widget_setting + end + + def widget_setting + @widget_set + end + def get_widgets @widget_set.nil? ? {} : @widget_set.to_module_app_format end @@ -127,7 +140,7 @@ module OrbitApp # @default_widget = widget_set.default_widget end - %w{module_label category base_url version organization author intro update_info}.each do |field| + %w{data_count module_label category base_url version organization author intro update_info}.each do |field| define_method(field){|var| instance_variable_set( "@" + field, var)} end diff --git a/lib/orbit_app/module/widget.rb b/lib/orbit_app/module/widget.rb index 7e99b2a9..3389b5b1 100644 --- a/lib/orbit_app/module/widget.rb +++ b/lib/orbit_app/module/widget.rb @@ -34,6 +34,10 @@ module OrbitApp define_method(field){|var| instance_variable_set( "@" + field, var)} end + # def data_count(var) + # @data_count = var + # end + def find_by_path(path) @widgets.each do |widget| return widget if widget.name == path @@ -44,10 +48,14 @@ module OrbitApp eval(@categories_query) rescue nil end - def get_tags + def get_tags eval(@tags_query) rescue nil end + def default_widget_setting + @default_widget + end + def default_widget(&block) @default_widget = DefaultWidget.new(&block) end @@ -85,6 +93,7 @@ module OrbitApp end class DefaultWidget + include DefaultWidgetTagHelper STYLE = ["typeA","typeB_style2","typeB_style3","typeB_style4","typeC"] def initialize(&block) @@ -95,9 +104,10 @@ module OrbitApp block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? end - def more_link_to(label_i18n,path_method) - @more_link[:label_i18n] = label_i18n - @more_link[:path_method] = path_method + + def link_to_more(*args) + @more_link[:label_i18n] = (args[1] ? args[1][:title_i18n] : 'default_widget.default_link_to_more' ) + @more_link[:path_method] = args[0] end def self.get_interface_args @@ -106,7 +116,7 @@ module OrbitApp end def to_module_app_format - {"query"=>@query,"image"=>@image} rescue nil + {"query"=>@query,"image"=>@image,"more_link"=>@more_link} rescue nil end def link_field(field_name,setting) diff --git a/vendor/built_in_modules/announcement/config/locales/zh_tw.yml b/vendor/built_in_modules/announcement/config/locales/zh_tw.yml index d24c1265..45769028 100644 --- a/vendor/built_in_modules/announcement/config/locales/zh_tw.yml +++ b/vendor/built_in_modules/announcement/config/locales/zh_tw.yml @@ -27,6 +27,7 @@ zh_tw: approval_setting: 審核權限 tags: 標籤 default_widget: + to_more: 更多 bulletin_category_with_title: 分類 title: 標題 postdate: 張貼日期 diff --git a/vendor/built_in_modules/announcement/init.rb b/vendor/built_in_modules/announcement/init.rb index 2dd1628a..ab54a438 100644 --- a/vendor/built_in_modules/announcement/init.rb +++ b/vendor/built_in_modules/announcement/init.rb @@ -18,6 +18,7 @@ module Announcement end category ["BulletinCategory"] + data_count 3..10 widgets do default_widget do @@ -26,6 +27,7 @@ module Announcement field :postdate link_field :title,{:method => 'panel_announcement_front_end_bulletin_path',:args=>:self} link_field :bulletin_category_with_title,{:method => 'panel_announcement_front_end_bulletins_path',:args=>{:category_id => [:bulletin_category,:id]}} + link_to_more 'panel_announcement_front_end_bulletins_path',:title_i18n=> 'announcement.default_widget.to_more' end categories_query 'BulletinCategory.all'