Commit a1fc3c496176ea326c0de57d30d49c04db011935

Authored by Joenio Costa
Committed by Antonio Terceiro
1 parent 747cb827

configuration for environment icon theme

app/helpers/application_helper.rb
... ... @@ -787,4 +787,14 @@ module ApplicationHelper
787 787 end
788 788 end
789 789  
  790 + def icon_theme_stylesheet_tag
  791 + theme_path = "/designs/icons/#{environment.icon_theme}/style.css"
  792 + if File.exists?(File.join(RAILS_ROOT, 'public', theme_path))
  793 + stylesheet_link_tag theme_path
  794 + else
  795 + "<!-- Not included: #{stylesheet_link_tag theme_path} -->\n" +
  796 + stylesheet_link_tag("/designs/icons/default/style.css")
  797 + end
  798 + end
  799 +
790 800 end
... ...
app/models/environment.rb
... ... @@ -458,6 +458,13 @@ class Environment &lt; ActiveRecord::Base
458 458 settings[:themes] = values.map(&:id)
459 459 end
460 460  
  461 + def icon_theme
  462 + settings[:icon_theme] || 'default'
  463 + end
  464 + def icon_theme=(theme)
  465 + settings[:icon_theme] = theme
  466 + end
  467 +
461 468 def layout_template
462 469 settings[:layout_template] || 'default'
463 470 end
... ...
app/views/layouts/application.rhtml
... ... @@ -46,9 +46,7 @@
46 46 %>
47 47  
48 48 <%= template_stylesheet_tag %>
49   -
50   - <%# FIXME %>
51   - <%= stylesheet_link_tag '/designs/icons/default/style.css' %>
  49 + <%= icon_theme_stylesheet_tag %>
52 50  
53 51 <%= stylesheet_link_tag 'iepngfix/iepngfix.css' %>
54 52 <base href="<%= base_url %>"/>
... ... @@ -134,7 +132,7 @@
134 132 <%= render :file => 'shared/user_menu' %>
135 133 </div><!-- id='user_box' -->
136 134  
137   - <a href="#" id="btShowHelp" class="icon-help32on help-on"
  135 + <a href="#" id="btShowHelp" class="icon-help32on help-on icon-help-on"
138 136 title="<%= _('Turn help on/off') %>"
139 137 onclick="mouseHelpOnOff(); return false"><span><%= _('Help') %></span></a>
140 138  
... ...
app/views/layouts/block.rhtml
... ... @@ -11,7 +11,8 @@
11 11  
12 12 <%# FIXME %>
13 13 <%= stylesheet_link_tag '/designs/templates/default/stylesheets/style.css' %>
14   - <%= stylesheet_link_tag '/designs/icons/default/style.css' %>
  14 +
  15 + <%= icon_theme_stylesheet_tag %>
15 16  
16 17 <%= javascript_include_tag(:defaults) %>
17 18  
... ...
public/javascripts/noosfero-show-help.js
... ... @@ -2,10 +2,10 @@
2 2 function mouseHelpOnOff() {
3 3 if ( pageHelp.info.updateBox ) {
4 4 showMouseHelpOff()
5   - $("btShowHelp").className = "icon-help32on help-on";
  5 + $("btShowHelp").className = "icon-help32on help-on icon-help-on";
6 6 } else {
7 7 showMouseHelpOn()
8   - $("btShowHelp").className = "icon-help32off help-off";
  8 + $("btShowHelp").className = "icon-help32off help-off icon-help-off";
9 9 }
10 10 var date = new Date();
11 11 // open/close help on help button is remembed by one year:
... ...
test/unit/application_helper_test.rb
... ... @@ -446,6 +446,13 @@ class ApplicationHelperTest &lt; Test::Unit::TestCase
446 446 assert !ask_to_join?
447 447 end
448 448  
  449 + should 'give default icon theme when no exists stylesheet file' do
  450 + e = Environment.default
  451 + e.icon_theme = 'something-very-unlikely'
  452 + stubs(:environment).returns(e)
  453 + assert_equal "<!-- Not included: /designs/icons/something-very-unlikely/style.css -->\n/designs/icons/default/style.css", icon_theme_stylesheet_tag
  454 + end
  455 +
449 456 protected
450 457  
451 458 def url_for(args = {})
... ... @@ -463,5 +470,8 @@ class ApplicationHelperTest &lt; Test::Unit::TestCase
463 470 def check_box_tag(name, value = 1, checked = false, options = {})
464 471 name
465 472 end
  473 + def stylesheet_link_tag(arg)
  474 + arg
  475 + end
466 476  
467 477 end
... ...
test/unit/environment_test.rb
... ... @@ -701,4 +701,19 @@ class EnvironmentTest &lt; Test::Unit::TestCase
701 701 end
702 702 end
703 703  
  704 + should 'provide icon theme' do
  705 + assert_equal 'my-icons-theme', Environment.new(:icon_theme => 'my-icons-theme').icon_theme
  706 + end
  707 +
  708 + should 'give default icon theme' do
  709 + assert_equal 'default', Environment.new.icon_theme
  710 + end
  711 +
  712 + should 'modify icon theme' do
  713 + e = Environment.new
  714 + assert_equal 'default', e.icon_theme
  715 + e.icon_theme = 'non-default'
  716 + assert_not_equal 'default', e.icon_theme
  717 + end
  718 +
704 719 end
... ...