Commit c8179af44abaff89d99512df6017ec35a7f0c011
1 parent
0eb56fb7
Exists in
master
and in
28 other branches
ActionItem1143: fix "Edit appearance screen"
* don't display "Select themes" if there are no themes to choose from * don't display "New theme" button if user themes are disabled
Showing
2 changed files
with
50 additions
and
32 deletions
Show diff stats
app/views/themes/index.rhtml
| @@ -33,35 +33,37 @@ | @@ -33,35 +33,37 @@ | ||
| 33 | <% end %> | 33 | <% end %> |
| 34 | 34 | ||
| 35 | 35 | ||
| 36 | - <tr> | ||
| 37 | - <td colspan='6'> | ||
| 38 | - <h2><%= _('Select theme') %></h2> | ||
| 39 | - </td> | ||
| 40 | - </tr> | ||
| 41 | - <% for themes in @themes.in_groups_of(3) %> | 36 | + <% if !@themes.empty? %> |
| 42 | <tr> | 37 | <tr> |
| 43 | - <% for theme in themes %> | ||
| 44 | - <% | ||
| 45 | - selected = (!theme.nil? && (theme.id == @current_theme)) | ||
| 46 | - %> | ||
| 47 | - <td> | ||
| 48 | - <%# FIXME add proper thumbnails %> | ||
| 49 | - <% if theme %> | ||
| 50 | - <%= image_tag('/images/icons-app/design-editor.png', :alt => (_('The "%s" theme.') % theme.name)) %> | ||
| 51 | - <% end %> | ||
| 52 | - </td> | ||
| 53 | - <td <%= 'class="selected theme"' if selected %>> | ||
| 54 | - <% if theme %> | ||
| 55 | - <strong><%= theme.name %> <%= _('(current)') if selected %></strong><br/> | ||
| 56 | - <%= link_to(_('Use this theme'), :action => 'set', :id => theme.id) unless selected %> | ||
| 57 | - <% end %> | ||
| 58 | - </td> | ||
| 59 | - <td> | ||
| 60 | - | ||
| 61 | - </td> | ||
| 62 | - <% end %> | 38 | + <td colspan='6'> |
| 39 | + <h2><%= _('Select theme') %></h2> | ||
| 40 | + </td> | ||
| 63 | </tr> | 41 | </tr> |
| 64 | - <tr><td colspan='3'> </td></tr> | 42 | + <% for themes in @themes.in_groups_of(3) %> |
| 43 | + <tr> | ||
| 44 | + <% for theme in themes %> | ||
| 45 | + <% | ||
| 46 | + selected = (!theme.nil? && (theme.id == @current_theme)) | ||
| 47 | + %> | ||
| 48 | + <td> | ||
| 49 | + <%# FIXME add proper thumbnails %> | ||
| 50 | + <% if theme %> | ||
| 51 | + <%= image_tag('/images/icons-app/design-editor.png', :alt => (_('The "%s" theme.') % theme.name)) %> | ||
| 52 | + <% end %> | ||
| 53 | + </td> | ||
| 54 | + <td <%= 'class="selected theme"' if selected %>> | ||
| 55 | + <% if theme %> | ||
| 56 | + <strong><%= theme.name %> <%= _('(current)') if selected %></strong><br/> | ||
| 57 | + <%= link_to(_('Use this theme'), :action => 'set', :id => theme.id) unless selected %> | ||
| 58 | + <% end %> | ||
| 59 | + </td> | ||
| 60 | + <td> | ||
| 61 | + | ||
| 62 | + </td> | ||
| 63 | + <% end %> | ||
| 64 | + </tr> | ||
| 65 | + <tr><td colspan='3'> </td></tr> | ||
| 66 | + <% end %> | ||
| 65 | <% end %> | 67 | <% end %> |
| 66 | 68 | ||
| 67 | 69 | ||
| @@ -96,6 +98,8 @@ | @@ -96,6 +98,8 @@ | ||
| 96 | </table> | 98 | </table> |
| 97 | 99 | ||
| 98 | <% button_bar do %> | 100 | <% button_bar do %> |
| 99 | - <%= lightbox_button(:add, _('New theme ...'), :action => 'new') %> | 101 | + <% if environment.enabled?('user_themes') %> |
| 102 | + <%= lightbox_button(:add, _('New theme ...'), :action => 'new') %> | ||
| 103 | + <% end %> | ||
| 100 | <%= button(:back, _('Back'), :controller => 'profile_editor', :action => 'index') %> | 104 | <%= button(:back, _('Back'), :controller => 'profile_editor', :action => 'index') %> |
| 101 | <% end %> | 105 | <% end %> |
test/functional/themes_controller_test.rb
| @@ -16,11 +16,11 @@ class ThemesControllerTest < Test::Unit::TestCase | @@ -16,11 +16,11 @@ class ThemesControllerTest < Test::Unit::TestCase | ||
| 16 | @profile = create_user('testinguser').person | 16 | @profile = create_user('testinguser').person |
| 17 | login_as('testinguser') | 17 | login_as('testinguser') |
| 18 | 18 | ||
| 19 | - env = Environment.default | ||
| 20 | - env.enable('user_themes') | ||
| 21 | - env.save! | 19 | + @env = Environment.default |
| 20 | + @env.enable('user_themes') | ||
| 21 | + @env.save! | ||
| 22 | end | 22 | end |
| 23 | - attr_reader :profile | 23 | + attr_reader :profile, :env |
| 24 | 24 | ||
| 25 | def teardown | 25 | def teardown |
| 26 | FileUtils.rm_rf(TMP_THEMES_DIR) | 26 | FileUtils.rm_rf(TMP_THEMES_DIR) |
| @@ -258,4 +258,18 @@ class ThemesControllerTest < Test::Unit::TestCase | @@ -258,4 +258,18 @@ class ThemesControllerTest < Test::Unit::TestCase | ||
| 258 | assert_redirected_to :action => 'index' | 258 | assert_redirected_to :action => 'index' |
| 259 | end | 259 | end |
| 260 | 260 | ||
| 261 | + should 'not display "new theme" button when user themes are disabled' do | ||
| 262 | + env.disable('user_themes') | ||
| 263 | + env.save! | ||
| 264 | + get :index, :profile => 'testinguser' | ||
| 265 | + assert_no_tag :tag => 'a', :attributes => { :href => '/myprofile/testinguser/themes/new' } | ||
| 266 | + end | ||
| 267 | + | ||
| 268 | + should 'not display the "Select themes" section if there are no themes to choose from' do | ||
| 269 | + env.themes = []; env.save! | ||
| 270 | + Theme.stubs(:system_themes_dir).returns(TMP_THEMES_DIR) # an empty dir | ||
| 271 | + get :index, :profile => "testinguser" | ||
| 272 | + assert_no_tag :content => "Select theme" | ||
| 273 | + end | ||
| 274 | + | ||
| 261 | end | 275 | end |