mirror of
https://github.com/meineerde/redmine.git
synced 2025-12-19 15:01:14 +00:00
Clear settings for blocks that are no longer used.
git-svn-id: http://svn.redmine.org/redmine/trunk@16405 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
945f3f949d
commit
d21627b70f
@ -23,7 +23,7 @@ class UserPreference < ActiveRecord::Base
|
|||||||
|
|
||||||
attr_protected :others, :user_id
|
attr_protected :others, :user_id
|
||||||
|
|
||||||
before_save :set_others_hash
|
before_save :set_others_hash, :clear_unused_block_settings
|
||||||
|
|
||||||
safe_attributes 'hide_mail',
|
safe_attributes 'hide_mail',
|
||||||
'time_zone',
|
'time_zone',
|
||||||
@ -132,4 +132,10 @@ class UserPreference < ActiveRecord::Base
|
|||||||
block_settings = my_page_settings(block).merge(settings.symbolize_keys)
|
block_settings = my_page_settings(block).merge(settings.symbolize_keys)
|
||||||
my_page_settings[block] = block_settings
|
my_page_settings[block] = block_settings
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def clear_unused_block_settings
|
||||||
|
blocks = my_page_layout.values.flatten
|
||||||
|
my_page_settings.keep_if {|block, settings| blocks.include?(block)}
|
||||||
|
end
|
||||||
|
private :clear_unused_block_settings
|
||||||
end
|
end
|
||||||
|
|||||||
@ -266,12 +266,12 @@ class MyControllerTest < Redmine::ControllerTest
|
|||||||
user = User.generate!(:language => 'en')
|
user = User.generate!(:language => 'en')
|
||||||
@request.session[:user_id] = user.id
|
@request.session[:user_id] = user.id
|
||||||
|
|
||||||
xhr :post, :update_page, :settings => {'timelog' => {'days' => '14'}}
|
xhr :post, :update_page, :settings => {'issuesassignedtome' => {'columns' => ['subject', 'due_date']}}
|
||||||
assert_response :success
|
assert_response :success
|
||||||
assert_include '$("#block-timelog").replaceWith(', response.body
|
assert_include '$("#block-issuesassignedtome").replaceWith(', response.body
|
||||||
assert_include '14 days', response.body
|
assert_include 'Due date', response.body
|
||||||
|
|
||||||
assert_equal({:days => "14"}, user.reload.pref.my_page_settings('timelog'))
|
assert_equal({:columns => ['subject', 'due_date']}, user.reload.pref.my_page_settings('issuesassignedtome'))
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_add_block
|
def test_add_block
|
||||||
@ -321,6 +321,7 @@ class MyControllerTest < Redmine::ControllerTest
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_reset_rss_key_without_existing_key
|
def test_reset_rss_key_without_existing_key
|
||||||
|
Token.delete_all
|
||||||
assert_nil User.find(2).rss_token
|
assert_nil User.find(2).rss_token
|
||||||
post :reset_rss_key
|
post :reset_rss_key
|
||||||
|
|
||||||
|
|||||||
@ -93,4 +93,15 @@ class UserPreferenceTest < ActiveSupport::TestCase
|
|||||||
up[:foo] = 'bar'
|
up[:foo] = 'bar'
|
||||||
assert_equal 'bar', up[:foo]
|
assert_equal 'bar', up[:foo]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_removing_a_block_should_clear_its_settings
|
||||||
|
up = User.find(2).pref
|
||||||
|
up.my_page_layout = {'top' => ['news', 'documents']}
|
||||||
|
up.my_page_settings = {'news' => {:foo => 'bar'}, 'documents' => {:baz => 'quz'}}
|
||||||
|
up.save!
|
||||||
|
|
||||||
|
up.remove_block 'news'
|
||||||
|
up.save!
|
||||||
|
assert_equal ['documents'], up.my_page_settings.keys
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user