From 7e5bad993de613e5618a651a0f822f5e4fa0d941 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Wed, 18 Jul 2012 18:26:10 +0000 Subject: [PATCH] Removes most of the ajax stuff on my page layout. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10033 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/my_controller.rb | 10 +++-- app/views/my/_block.html.erb | 6 +-- app/views/my/page_layout.html.erb | 58 ++++----------------------- test/functional/my_controller_test.rb | 8 ++-- 4 files changed, 20 insertions(+), 62 deletions(-) diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb index cfa7531b0..d92494540 100644 --- a/app/controllers/my_controller.rb +++ b/app/controllers/my_controller.rb @@ -135,7 +135,11 @@ class MyController < ApplicationController @user = User.current @blocks = @user.pref[:my_page_layout] || DEFAULT_LAYOUT.dup @block_options = [] - BLOCKS.each {|k, v| @block_options << [l("my.blocks.#{v}", :default => [v, v.to_s.humanize]), k.dasherize]} + BLOCKS.each do |k, v| + unless %w(top left right).detect {|f| (@blocks[f] ||= []).include?(k)} + @block_options << [l("my.blocks.#{v}", :default => [v, v.to_s.humanize]), k.dasherize] + end + end end # Add a block to user's page @@ -152,7 +156,7 @@ class MyController < ApplicationController layout['top'].unshift block @user.pref[:my_page_layout] = layout @user.pref.save - render :partial => "block", :locals => {:user => @user, :block_name => block} + redirect_to :action => 'page_layout' end # Remove a block to user's page @@ -165,7 +169,7 @@ class MyController < ApplicationController %w(top left right).each {|f| (layout[f] ||= []).delete block } @user.pref[:my_page_layout] = layout @user.pref.save - render :nothing => true + redirect_to :action => 'page_layout' end # Change blocks order on user's page diff --git a/app/views/my/_block.html.erb b/app/views/my/_block.html.erb index bd08a4540..813eb2b88 100644 --- a/app/views/my/_block.html.erb +++ b/app/views/my/_block.html.erb @@ -1,11 +1,7 @@
- <%= link_to_remote "", { - :url => { :action => "remove_block", :block => block_name }, - :complete => "removeBlock('block_#{block_name.dasherize}')" }, - :class => "close-icon" - %> + <%= link_to "", {:action => "remove_block", :block => block_name}, :method => 'post', :class => "close-icon" %>
diff --git a/app/views/my/page_layout.html.erb b/app/views/my/page_layout.html.erb index 8b6c2e8dd..a4d1888ba 100644 --- a/app/views/my/page_layout.html.erb +++ b/app/views/my/page_layout.html.erb @@ -1,53 +1,12 @@ - -
-<%= form_tag({:action => "add_block"}, :id => "block-form") do %> -<%= label_tag('block-select', l(:label_my_page_block)) %>: -<%= select_tag 'block', - content_tag('option') + options_for_select(@block_options), - :id => "block-select" %> -<%= link_to_remote l(:button_add), - {:url => { :action => "add_block" }, - :with => "Form.serialize('block-form')", - :update => "list-top", - :position => :top, - :complete => "afterAddBlock();" - }, :class => 'icon icon-add' - %> +<% if @block_options.present? %> + <%= form_tag({:action => "add_block"}, :id => "block-form") do %> + <%= label_tag('block-select', l(:label_my_page_block)) %>: + <%= select_tag 'block', + content_tag('option') + options_for_select(@block_options), + :id => "block-select" %> + <%= link_to l(:button_add), '#', :onclick => '$("block-form").submit()', :class => 'icon icon-add' %> + <% end %> <% end %> <%= link_to l(:button_back), {:action => 'page'}, :class => 'icon icon-cancel' %>
@@ -105,5 +64,4 @@ function removeBlock(block) { :url => { :action => "order_blocks", :group => "right" } %> -<%= javascript_tag "updateSelect()" %> <% html_title(l(:label_my_page)) -%> diff --git a/test/functional/my_controller_test.rb b/test/functional/my_controller_test.rb index d7364dfa8..a543189ed 100644 --- a/test/functional/my_controller_test.rb +++ b/test/functional/my_controller_test.rb @@ -182,14 +182,14 @@ class MyControllerTest < ActionController::TestCase end def test_add_block - xhr :post, :add_block, :block => 'issuesreportedbyme' - assert_response :success + post :add_block, :block => 'issuesreportedbyme' + assert_redirected_to '/my/page_layout' assert User.find(2).pref[:my_page_layout]['top'].include?('issuesreportedbyme') end def test_remove_block - xhr :post, :remove_block, :block => 'issuesassignedtome' - assert_response :success + post :remove_block, :block => 'issuesassignedtome' + assert_redirected_to '/my/page_layout' assert !User.find(2).pref[:my_page_layout].values.flatten.include?('issuesassignedtome') end