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 | 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__), 'test_helper') |
| 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 < 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 | ... | ... |