Commit b3e60f94024fd563d7bb3871cdec9f3ab15b2012

Authored by AntonioTerceiro
1 parent 37e9940b

r262@sede: terceiro | 2007-07-29 20:34:06 -0300

ActionItem0: moving available design components into Design module
 


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@266 3f533792-8f58-4932-b0fe-aaf55b0a4547
vendor/plugins/design/lib/design.rb
... ... @@ -8,10 +8,13 @@ require 'design/editor'
8 8  
9 9 module Design
10 10  
  11 + def design_plugin_data
  12 + @design_plugin_data ||= Hash.new
  13 + end
  14 +
11 15 # gets the Design object for this controller
12 16 def design
13   - @design_plugin_data ||= Hash.new
14   - data = @design_plugin_data
  17 + data = design_plugin_data
15 18  
16 19 return data[:design] if data.has_key?(:design)
17 20  
... ... @@ -54,5 +57,17 @@ module Design
54 57 Design.instance_variable_set('@public_filesystem_root', value)
55 58 end
56 59  
  60 + def Design.available_templates
  61 + Dir.glob(File.join(Design.public_filesystem_root, Design.design_root, 'templates', '*')).select {|item| File.directory?(item) }.map {|item| File.basename(item) }
  62 + end
  63 +
  64 + def Design.available_themes
  65 + Dir.glob(File.join(Design.public_filesystem_root, Design.design_root, 'themes', '*')).select {|item| File.directory?(item) }.map {|item| File.basename(item) }
  66 + end
  67 +
  68 + def Design.available_icon_themes
  69 + Dir.glob(File.join(Design.public_filesystem_root, Design.design_root, 'icons', '*')).select {|item| File.directory?(item) }.map {|item| File.basename(item) }
  70 + end
  71 +
57 72  
58 73 end
... ...
vendor/plugins/design/lib/design/editor.rb
... ... @@ -6,11 +6,7 @@ module Design
6 6 # from flexible_template
7 7 module Editor
8 8  
9   - #FIXME: move extraction of these values elsewhere
10   - def start
11   - @ft_config[:available_templates] = parse_path(Dir.glob("#{RAILS_ROOT}/public/templates/*"), 'templates/')
12   - @ft_config[:available_themes] = parse_path(Dir.glob("#{RAILS_ROOT}/public/themes/*"), 'themes/')
13   - @ft_config[:available_icon_themes] = parse_path(Dir.glob("#{RAILS_ROOT}/public/icons/*"), 'icons/')
  9 + def designer
14 10 end
15 11  
16 12 def flexible_template_edit_template?
... ... @@ -19,21 +15,21 @@ module Design
19 15  
20 16 # Set the default template to the profile
21 17 def set_default_template
22   - set_template(@ft_config[:owner],params[:template_name]) if exist_template? params[:template_name]
  18 + set_template(design,params[:template_name]) if exist_template? params[:template_name]
23 19 end
24 20  
25 21 # Set the default theme to the profile
26 22 def set_default_theme
27   - set_theme(@ft_config[:owner],params[:theme_name]) if exist_theme? params[:theme_name]
  23 + set_theme(design,params[:theme_name]) if exist_theme? params[:theme_name]
28 24 end
29 25  
30 26 # Set the default icons theme to the profile
31 27 def set_default_icon_theme
32   - set_icon_theme(@ft_config[:owner],params[:icon_theme_name]) if exist_icon_theme? params[:icon_theme_name]
  28 + set_icon_theme(design,params[:icon_theme_name]) if exist_icon_theme? params[:icon_theme_name]
33 29 end
34 30  
35 31 def flexible_template_set_sort_mode
36   - box = @ft_config[:owner].boxes.find(params[:box_id])
  32 + box = design.boxes.find(params[:box_id])
37 33 render :update do |page|
38 34 page.replace_html "box_#{box.number}", edit_blocks(box)
39 35 page.sortable "sort_#{box.number}", :url => {:action => 'flexible_template_sort_box', :box_number => box.number}
... ... @@ -56,19 +52,19 @@ module Design
56 52 # updates all boxes at the ends
57 53 def flexible_template_change_box
58 54 #TODO fix it i tried the source code comment but i have no success
59   - #b = @ft_config[:owner].blocks.detect{|b| b.id.to_s == params[:block].to_s }
  55 + #b = design.blocks.detect{|b| b.id.to_s == params[:block].to_s }
60 56 b = Block.find(params[:block])
61   - b.box = @ft_config[:owner].boxes.find(params[:box_id])
  57 + b.box = design.boxes.find(params[:box_id])
62 58 b.save
63 59 render :update do |page|
64   - @ft_config[:owner].boxes.each do |box|
  60 + design.boxes.each do |box|
65 61 page.replace_html "box_#{box.number}", edit_blocks(box)
66 62 end
67 63 end
68 64 end
69 65  
70 66 def flexible_template_new_block
71   - box = @ft_config[:owner].boxes.find(params[:box_id])
  67 + box = design.boxes.find(params[:box_id])
72 68 render :update do |page|
73 69 page.replace_html "box_#{box.number}", new_block_form(box)
74 70 end
... ... @@ -127,14 +123,14 @@ module Design
127 123 #If no chosen_template was selected the default template is set
128 124 def ft_load_boxes
129 125 n = boxes_by_template(@ft_config[:template])
130   - boxes = @ft_config[:owner].boxes
  126 + boxes = design.boxes
131 127  
132 128 if boxes.length >= n
133 129 boxes = boxes.first(n)
134 130 else
135 131 while boxes.length < n do
136 132 b = Box.new
137   - b.owner = @ft_config[:owner]
  133 + b.owner = design
138 134 raise _('The box cannot be saved becaus of erros %s') % b.errors if !b.save
139 135 boxes.push(b)
140 136 end
... ...
vendor/plugins/design/test/design_test.rb
... ... @@ -2,6 +2,13 @@ require File.join(File.dirname(__FILE__), &#39;test_helper&#39;)
2 2  
3 3 class DesignTest < Test::Unit::TestCase
4 4  
  5 + def setup
  6 + Design.public_filesystem_root = File.join(File.dirname(__FILE__))
  7 + end
  8 + def teardown
  9 + Design.public_filesystem_root = nil
  10 + end
  11 +
5 12 def test_design_should_include_design_module
6 13 assert FixedDesignTestController.included_modules.include?(Design)
7 14 end
... ... @@ -59,4 +66,34 @@ class DesignTest &lt; Test::Unit::TestCase
59 66 assert_equal 'sample_object', InheritanceDesignTestController.send(:design_plugin_config)[:holder]
60 67 end
61 68  
  69 + def test_should_list_available_templates
  70 + ['empty', 'default'].each do |item|
  71 + assert Design.available_templates.include?(item)
  72 + end
  73 + end
  74 +
  75 + def test_should_ignore_non_directory_when_listing_available_templates
  76 + assert ! Design.available_templates.include?('non_directory_should_be_ignored')
  77 + end
  78 +
  79 + def test_should_list_available_themes
  80 + ['empty', 'default'].each do |item|
  81 + assert Design.available_themes.include?(item)
  82 + end
  83 + end
  84 +
  85 + def test_should_ignore_non_directory_when_listing_available_themes
  86 + assert ! Design.available_themes.include?('non_directory_should_be_ignored')
  87 + end
  88 +
  89 + def test_should_list_available_icon_themes
  90 + ['empty', 'default'].each do |item|
  91 + assert Design.available_icon_themes.include?(item)
  92 + end
  93 + end
  94 +
  95 + def test_should_ignore_non_directory_when_listing_available_icon_themes
  96 + assert ! Design.available_icon_themes.include?('non_directory_should_be_ignored')
  97 + end
  98 +
62 99 end
... ...