Commit adb6d89d5f41326826466a8c1258cd3a48905da9
1 parent
11a81060
Exists in
web_steps_improvements
and in
6 other branches
Refactoring for community_track plugin
- Remove html from community_track models - Extracts update_categories to categories helper
Showing
9 changed files
with
21 additions
and
47 deletions
Show diff stats
app/controllers/my_profile/cms_controller.rb
@@ -3,6 +3,7 @@ class CmsController < MyProfileController | @@ -3,6 +3,7 @@ class CmsController < MyProfileController | ||
3 | protect 'edit_profile', :profile, :only => [:set_home_page] | 3 | protect 'edit_profile', :profile, :only => [:set_home_page] |
4 | 4 | ||
5 | include ArticleHelper | 5 | include ArticleHelper |
6 | + include CategoriesHelper | ||
6 | 7 | ||
7 | def search_tags | 8 | def search_tags |
8 | arg = params[:term].downcase | 9 | arg = params[:term].downcase |
@@ -256,12 +257,7 @@ class CmsController < MyProfileController | @@ -256,12 +257,7 @@ class CmsController < MyProfileController | ||
256 | 257 | ||
257 | def update_categories | 258 | def update_categories |
258 | @object = params[:id] ? @profile.articles.find(params[:id]) : Article.new | 259 | @object = params[:id] ? @profile.articles.find(params[:id]) : Article.new |
259 | - @categories = @toplevel_categories = environment.top_level_categories | ||
260 | - if params[:category_id] | ||
261 | - @current_category = Category.find(params[:category_id]) | ||
262 | - @categories = @current_category.children | ||
263 | - end | ||
264 | - render :template => 'shared/update_categories', :locals => { :category => @current_category, :object_name => 'article' } | 260 | + render_categories 'article' |
265 | end | 261 | end |
266 | 262 | ||
267 | def search_communities_to_publish | 263 | def search_communities_to_publish |
app/controllers/my_profile/profile_design_controller.rb
@@ -6,6 +6,7 @@ class ProfileDesignController < BoxOrganizerController | @@ -6,6 +6,7 @@ class ProfileDesignController < BoxOrganizerController | ||
6 | 6 | ||
7 | before_filter :protect_uneditable_block, :only => [:save] | 7 | before_filter :protect_uneditable_block, :only => [:save] |
8 | before_filter :protect_fixed_block, :only => [:move_block] | 8 | before_filter :protect_fixed_block, :only => [:move_block] |
9 | + include CategoriesHelper | ||
9 | 10 | ||
10 | def protect_uneditable_block | 11 | def protect_uneditable_block |
11 | block = boxes_holder.blocks.find(params[:id].gsub(/^block-/, '')) | 12 | block = boxes_holder.blocks.find(params[:id].gsub(/^block-/, '')) |
@@ -69,12 +70,7 @@ class ProfileDesignController < BoxOrganizerController | @@ -69,12 +70,7 @@ class ProfileDesignController < BoxOrganizerController | ||
69 | 70 | ||
70 | def update_categories | 71 | def update_categories |
71 | @object = params[:id] ? @profile.blocks.find(params[:id]) : Block.new | 72 | @object = params[:id] ? @profile.blocks.find(params[:id]) : Block.new |
72 | - @categories = @toplevel_categories = environment.top_level_categories | ||
73 | - if params[:category_id] | ||
74 | - @current_category = Category.find(params[:category_id]) | ||
75 | - @categories = @current_category.children | ||
76 | - end | ||
77 | - render :template => 'shared/update_categories', :locals => { :category => @current_category, :object_name => 'block' } | 73 | + render_categories 'block' |
78 | end | 74 | end |
79 | 75 | ||
80 | end | 76 | end |
app/controllers/my_profile/profile_editor_controller.rb
@@ -9,6 +9,7 @@ class ProfileEditorController < MyProfileController | @@ -9,6 +9,7 @@ class ProfileEditorController < MyProfileController | ||
9 | before_filter :check_user_can_edit_header_footer, :only => [:header_footer] | 9 | before_filter :check_user_can_edit_header_footer, :only => [:header_footer] |
10 | helper_method :has_welcome_page | 10 | helper_method :has_welcome_page |
11 | helper CustomFieldsHelper | 11 | helper CustomFieldsHelper |
12 | + include CategoriesHelper | ||
12 | 13 | ||
13 | def index | 14 | def index |
14 | @pending_tasks = Task.to(profile).pending.without_spam.select{|i| user.has_permission?(i.permission, profile)} | 15 | @pending_tasks = Task.to(profile).pending.without_spam.select{|i| user.has_permission?(i.permission, profile)} |
@@ -60,12 +61,7 @@ class ProfileEditorController < MyProfileController | @@ -60,12 +61,7 @@ class ProfileEditorController < MyProfileController | ||
60 | 61 | ||
61 | def update_categories | 62 | def update_categories |
62 | @object = profile | 63 | @object = profile |
63 | - @categories = @toplevel_categories = environment.top_level_categories | ||
64 | - if params[:category_id] | ||
65 | - @current_category = Category.find(params[:category_id]) | ||
66 | - @categories = @current_category.children | ||
67 | - end | ||
68 | - render :template => 'shared/update_categories', :locals => { :category => @current_category, :object_name => 'profile_data' } | 64 | + render_categories 'profile_data' |
69 | end | 65 | end |
70 | 66 | ||
71 | def header_footer | 67 | def header_footer |
app/helpers/categories_helper.rb
@@ -34,4 +34,15 @@ module CategoriesHelper | @@ -34,4 +34,15 @@ module CategoriesHelper | ||
34 | {:id => category_id ? "select-category-#{category_id}-link" : nil, :remote => true, :class => html_class}.merge(html_options) | 34 | {:id => category_id ? "select-category-#{category_id}-link" : nil, :remote => true, :class => html_class}.merge(html_options) |
35 | end | 35 | end |
36 | 36 | ||
37 | + def render_categories object_name | ||
38 | + @toplevel_categories = environment.top_level_categories | ||
39 | + if params[:category_id] | ||
40 | + @current_category = Category.find(params[:category_id]) | ||
41 | + @categories = @current_category.children | ||
42 | + else | ||
43 | + @categories = @toplevel_categories | ||
44 | + end | ||
45 | + render :template => 'shared/update_categories', :locals => { :category => @current_category, :object_name => object_name } | ||
46 | + end | ||
47 | + | ||
37 | end | 48 | end |
app/models/block.rb
@@ -4,8 +4,6 @@ class Block < ActiveRecord::Base | @@ -4,8 +4,6 @@ class Block < ActiveRecord::Base | ||
4 | :visualization_format, :language, :display_user, | 4 | :visualization_format, :language, :display_user, |
5 | :box, :edit_modes, :move_modes, :mirror | 5 | :box, :edit_modes, :move_modes, :mirror |
6 | 6 | ||
7 | - # to be able to generate HTML | ||
8 | - include ActionView::Helpers::UrlHelper | ||
9 | include ActionView::Helpers::TagHelper | 7 | include ActionView::Helpers::TagHelper |
10 | 8 | ||
11 | # Block-specific stuff | 9 | # Block-specific stuff |
plugins/community_track/lib/community_track_plugin/track_list_block.rb
@@ -62,26 +62,10 @@ class CommunityTrackPlugin::TrackListBlock < Block | @@ -62,26 +62,10 @@ class CommunityTrackPlugin::TrackListBlock < Block | ||
62 | tracks | 62 | tracks |
63 | end | 63 | end |
64 | 64 | ||
65 | - def content(args={}) | ||
66 | - block = self | ||
67 | - proc do | ||
68 | - instance_eval(&block.set_seed(true)) | ||
69 | - render :file => 'blocks/track_list', :locals => {:block => block} | ||
70 | - end | ||
71 | - end | ||
72 | - | ||
73 | def has_page?(page, per_page=limit) | 65 | def has_page?(page, per_page=limit) |
74 | return (page-1) * per_page < count_tracks | 66 | return (page-1) * per_page < count_tracks |
75 | end | 67 | end |
76 | 68 | ||
77 | - def footer | ||
78 | - block = self | ||
79 | - return nil if !has_page?(2) | ||
80 | - proc do | ||
81 | - render :partial => 'blocks/track_list_more', :locals => {:block => block, :page => 2, :per_page => block.limit} | ||
82 | - end | ||
83 | - end | ||
84 | - | ||
85 | def self.expire_on | 69 | def self.expire_on |
86 | { :profile => [:article, :category], :environment => [:article, :category] } | 70 | { :profile => [:article, :category], :environment => [:article, :category] } |
87 | end | 71 | end |
plugins/community_track/test/unit/community_track_plugin/track_list_block_test.rb
@@ -34,16 +34,6 @@ class TrackListBlockTest < ActiveSupport::TestCase | @@ -34,16 +34,6 @@ class TrackListBlockTest < ActiveSupport::TestCase | ||
34 | assert_equal @block.limit, @block.tracks.to_a.size | 34 | assert_equal @block.limit, @block.tracks.to_a.size |
35 | end | 35 | end |
36 | 36 | ||
37 | - should 'return more link if has more tracks to show' do | ||
38 | - @block.limit.times { |i| create_track("track#{i}", profile) } | ||
39 | - assert @block.footer | ||
40 | - end | ||
41 | - | ||
42 | - should 'do not return more link if there is no more tracks to show' do | ||
43 | - (@block.limit-1).times { |i| create_track("track#{i}", profile) } | ||
44 | - refute @block.footer | ||
45 | - end | ||
46 | - | ||
47 | should 'count all tracks' do | 37 | should 'count all tracks' do |
48 | @block.owner.articles.destroy_all | 38 | @block.owner.articles.destroy_all |
49 | tracks_to_insert = @block.limit + 1 | 39 | tracks_to_insert = @block.limit + 1 |
plugins/community_track/views/blocks/_track_list_more.html.erb
@@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
6 | </div> | 6 | </div> |
7 | <% else %> | 7 | <% else %> |
8 | <div class="more"> | 8 | <div class="more"> |
9 | - <%= link_to_remote(c_('More'), :url => {:id => block.id, :controller => 'community_track_plugin_public', :action => 'view_tracks', :page => page, :per_page => per_page, :force_same_page => force_same_page}, :method => :get) %> | 9 | + <%= link_to c_('More'), :id => block.id, :controller => 'community_track_plugin_public', :action => 'view_tracks', :page => page, :per_page => per_page, :force_same_page => force_same_page, :remote => true %> |
10 | </div> | 10 | </div> |
11 | <% end %> | 11 | <% end %> |
12 | </div> | 12 | </div> |
plugins/community_track/views/blocks/footers/track_list.html.erb
0 → 100644