Commit b3e60f94024fd563d7bb3871cdec9f3ab15b2012
1 parent
37e9940b
Exists in
master
and in
29 other branches
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
Showing
3 changed files
with
65 additions
and
17 deletions
Show diff stats
vendor/plugins/design/lib/design.rb
@@ -8,10 +8,13 @@ require 'design/editor' | @@ -8,10 +8,13 @@ require 'design/editor' | ||
8 | 8 | ||
9 | module Design | 9 | module Design |
10 | 10 | ||
11 | + def design_plugin_data | ||
12 | + @design_plugin_data ||= Hash.new | ||
13 | + end | ||
14 | + | ||
11 | # gets the Design object for this controller | 15 | # gets the Design object for this controller |
12 | def design | 16 | def design |
13 | - @design_plugin_data ||= Hash.new | ||
14 | - data = @design_plugin_data | 17 | + data = design_plugin_data |
15 | 18 | ||
16 | return data[:design] if data.has_key?(:design) | 19 | return data[:design] if data.has_key?(:design) |
17 | 20 | ||
@@ -54,5 +57,17 @@ module Design | @@ -54,5 +57,17 @@ module Design | ||
54 | Design.instance_variable_set('@public_filesystem_root', value) | 57 | Design.instance_variable_set('@public_filesystem_root', value) |
55 | end | 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 | end | 73 | end |
vendor/plugins/design/lib/design/editor.rb
@@ -6,11 +6,7 @@ module Design | @@ -6,11 +6,7 @@ module Design | ||
6 | # from flexible_template | 6 | # from flexible_template |
7 | module Editor | 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 | end | 10 | end |
15 | 11 | ||
16 | def flexible_template_edit_template? | 12 | def flexible_template_edit_template? |
@@ -19,21 +15,21 @@ module Design | @@ -19,21 +15,21 @@ module Design | ||
19 | 15 | ||
20 | # Set the default template to the profile | 16 | # Set the default template to the profile |
21 | def set_default_template | 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 | end | 19 | end |
24 | 20 | ||
25 | # Set the default theme to the profile | 21 | # Set the default theme to the profile |
26 | def set_default_theme | 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 | end | 24 | end |
29 | 25 | ||
30 | # Set the default icons theme to the profile | 26 | # Set the default icons theme to the profile |
31 | def set_default_icon_theme | 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 | end | 29 | end |
34 | 30 | ||
35 | def flexible_template_set_sort_mode | 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 | render :update do |page| | 33 | render :update do |page| |
38 | page.replace_html "box_#{box.number}", edit_blocks(box) | 34 | page.replace_html "box_#{box.number}", edit_blocks(box) |
39 | page.sortable "sort_#{box.number}", :url => {:action => 'flexible_template_sort_box', :box_number => box.number} | 35 | page.sortable "sort_#{box.number}", :url => {:action => 'flexible_template_sort_box', :box_number => box.number} |
@@ -56,19 +52,19 @@ module Design | @@ -56,19 +52,19 @@ module Design | ||
56 | # updates all boxes at the ends | 52 | # updates all boxes at the ends |
57 | def flexible_template_change_box | 53 | def flexible_template_change_box |
58 | #TODO fix it i tried the source code comment but i have no success | 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 | b = Block.find(params[:block]) | 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 | b.save | 58 | b.save |
63 | render :update do |page| | 59 | render :update do |page| |
64 | - @ft_config[:owner].boxes.each do |box| | 60 | + design.boxes.each do |box| |
65 | page.replace_html "box_#{box.number}", edit_blocks(box) | 61 | page.replace_html "box_#{box.number}", edit_blocks(box) |
66 | end | 62 | end |
67 | end | 63 | end |
68 | end | 64 | end |
69 | 65 | ||
70 | def flexible_template_new_block | 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 | render :update do |page| | 68 | render :update do |page| |
73 | page.replace_html "box_#{box.number}", new_block_form(box) | 69 | page.replace_html "box_#{box.number}", new_block_form(box) |
74 | end | 70 | end |
@@ -127,14 +123,14 @@ module Design | @@ -127,14 +123,14 @@ module Design | ||
127 | #If no chosen_template was selected the default template is set | 123 | #If no chosen_template was selected the default template is set |
128 | def ft_load_boxes | 124 | def ft_load_boxes |
129 | n = boxes_by_template(@ft_config[:template]) | 125 | n = boxes_by_template(@ft_config[:template]) |
130 | - boxes = @ft_config[:owner].boxes | 126 | + boxes = design.boxes |
131 | 127 | ||
132 | if boxes.length >= n | 128 | if boxes.length >= n |
133 | boxes = boxes.first(n) | 129 | boxes = boxes.first(n) |
134 | else | 130 | else |
135 | while boxes.length < n do | 131 | while boxes.length < n do |
136 | b = Box.new | 132 | b = Box.new |
137 | - b.owner = @ft_config[:owner] | 133 | + b.owner = design |
138 | raise _('The box cannot be saved becaus of erros %s') % b.errors if !b.save | 134 | raise _('The box cannot be saved becaus of erros %s') % b.errors if !b.save |
139 | boxes.push(b) | 135 | boxes.push(b) |
140 | end | 136 | end |
vendor/plugins/design/test/design_test.rb
@@ -2,6 +2,13 @@ require File.join(File.dirname(__FILE__), 'test_helper') | @@ -2,6 +2,13 @@ require File.join(File.dirname(__FILE__), 'test_helper') | ||
2 | 2 | ||
3 | class DesignTest < Test::Unit::TestCase | 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 | def test_design_should_include_design_module | 12 | def test_design_should_include_design_module |
6 | assert FixedDesignTestController.included_modules.include?(Design) | 13 | assert FixedDesignTestController.included_modules.include?(Design) |
7 | end | 14 | end |
@@ -59,4 +66,34 @@ class DesignTest < Test::Unit::TestCase | @@ -59,4 +66,34 @@ class DesignTest < Test::Unit::TestCase | ||
59 | assert_equal 'sample_object', InheritanceDesignTestController.send(:design_plugin_config)[:holder] | 66 | assert_equal 'sample_object', InheritanceDesignTestController.send(:design_plugin_config)[:holder] |
60 | end | 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 | end | 99 | end |