comfortable_mexican_sofa 1.4.22 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/.travis.yml +2 -2
  2. data/Gemfile +3 -7
  3. data/VERSION +1 -1
  4. data/app/assets/stylesheets/comfortable_mexican_sofa/form.css +44 -1
  5. data/app/controllers/cms_admin/files_controller.rb +10 -1
  6. data/app/controllers/cms_admin/layouts_controller.rb +9 -0
  7. data/app/controllers/cms_admin/pages_controller.rb +1 -1
  8. data/app/controllers/cms_admin/snippets_controller.rb +10 -1
  9. data/app/models/cms/block.rb +29 -0
  10. data/app/models/cms/file.rb +9 -19
  11. data/app/models/cms/layout.rb +9 -0
  12. data/app/models/cms/page.rb +3 -4
  13. data/app/models/cms/snippet.rb +9 -0
  14. data/app/views/cms_admin/files/_file.html.erb +1 -1
  15. data/app/views/cms_admin/files/_index.html.erb +1 -12
  16. data/app/views/cms_admin/files/_page_form.html.erb +12 -0
  17. data/app/views/cms_admin/files/destroy.js.erb +1 -1
  18. data/app/views/cms_admin/files/index.html.erb +6 -2
  19. data/app/views/cms_admin/layouts/_index_branch.html.erb +5 -1
  20. data/app/views/cms_admin/layouts/index.html.erb +1 -1
  21. data/app/views/cms_admin/pages/_form_blocks.html.erb +2 -2
  22. data/app/views/cms_admin/pages/edit.html.erb +1 -1
  23. data/app/views/cms_admin/pages/new.html.erb +1 -1
  24. data/app/views/cms_admin/snippets/index.html.erb +6 -2
  25. data/comfortable_mexican_sofa.gemspec +16 -10
  26. data/config/initializers/comfortable_mexican_sofa.rb +0 -4
  27. data/config/initializers/paperclip.rb +25 -0
  28. data/config/locales/en.yml +2 -0
  29. data/config/locales/es.yml +2 -0
  30. data/config/routes.rb +8 -8
  31. data/db/migrate/01_create_cms.rb +6 -0
  32. data/db/migrate/upgrades/06_upgrade_to_1_5_0.rb +21 -0
  33. data/lib/comfortable_mexican_sofa/configuration.rb +14 -19
  34. data/lib/comfortable_mexican_sofa/form_builder.rb +48 -36
  35. data/lib/comfortable_mexican_sofa/tag.rb +2 -12
  36. data/lib/comfortable_mexican_sofa/tags/collection.rb +0 -4
  37. data/lib/comfortable_mexican_sofa/tags/field_datetime.rb +0 -4
  38. data/lib/comfortable_mexican_sofa/tags/field_integer.rb +0 -4
  39. data/lib/comfortable_mexican_sofa/tags/field_string.rb +0 -4
  40. data/lib/comfortable_mexican_sofa/tags/field_text.rb +0 -4
  41. data/lib/comfortable_mexican_sofa/tags/file.rb +5 -0
  42. data/lib/comfortable_mexican_sofa/tags/page_datetime.rb +0 -4
  43. data/lib/comfortable_mexican_sofa/tags/page_file.rb +44 -0
  44. data/lib/comfortable_mexican_sofa/tags/page_files.rb +44 -0
  45. data/lib/comfortable_mexican_sofa/tags/page_integer.rb +0 -4
  46. data/lib/comfortable_mexican_sofa/tags/page_rich_text.rb +0 -4
  47. data/lib/comfortable_mexican_sofa/tags/page_string.rb +0 -4
  48. data/lib/comfortable_mexican_sofa/tags/page_text.rb +0 -4
  49. data/lib/comfortable_mexican_sofa/tags/snippet.rb +5 -0
  50. data/lib/comfortable_mexican_sofa/view_methods.rb +6 -1
  51. data/test/fixtures/cms/files.yml +2 -1
  52. data/test/fixtures/cms/layouts.yml +4 -1
  53. data/test/fixtures/cms/snippets.yml +1 -0
  54. data/test/functional/cms_admin/files_controller_test.rb +17 -19
  55. data/test/functional/cms_admin/layouts_controller_test.rb +18 -1
  56. data/test/functional/cms_admin/pages_controller_test.rb +63 -22
  57. data/test/functional/cms_admin/snippets_controller_test.rb +18 -1
  58. data/test/gemfiles/Gemfile.rails-3.0.x +10 -0
  59. data/test/gemfiles/Gemfile.rails-3.1.x +10 -0
  60. data/test/test_helper.rb +13 -12
  61. data/test/unit/configuration_test.rb +1 -1
  62. data/test/unit/models/block_test.rb +112 -1
  63. data/test/unit/models/file_test.rb +1 -51
  64. data/test/unit/models/layout_test.rb +1 -0
  65. data/test/unit/models/snippet_test.rb +14 -0
  66. data/test/unit/tags/collection_test.rb +5 -5
  67. data/test/unit/tags/field_datetime_test.rb +2 -2
  68. data/test/unit/tags/field_integer_test.rb +2 -2
  69. data/test/unit/tags/field_string_test.rb +2 -2
  70. data/test/unit/tags/field_text_test.rb +2 -2
  71. data/test/unit/tags/page_datetime_test.rb +2 -2
  72. data/test/unit/tags/page_file_test.rb +79 -0
  73. data/test/unit/tags/page_files_test.rb +72 -0
  74. data/test/unit/tags/page_integer_test.rb +2 -2
  75. data/test/unit/tags/page_rich_text_test.rb +2 -2
  76. data/test/unit/tags/page_string_test.rb +2 -2
  77. data/test/unit/tags/page_text_test.rb +2 -2
  78. data/test/unit/view_methods_test.rb +2 -1
  79. metadata +20 -14
  80. data/gemfiles/Gemfile.rails-3.0.x +0 -14
  81. data/gemfiles/Gemfile.rails-3.1.x +0 -14
@@ -6,6 +6,6 @@
6
6
  <%= render :partial => 'cms_admin/sites/mirrors', :object => @page %>
7
7
  <% end %>
8
8
 
9
- <%= cms_form_for @page, :as => :page, :url => {:action => :update} do |form| %>
9
+ <%= cms_form_for @page, :as => :page, :url => {:action => :update}, :html => {:multipart => true} do |form| %>
10
10
  <%= render :partial => 'form', :object => form %>
11
11
  <% end %>
@@ -1,5 +1,5 @@
1
1
  <h1><%= t('.title') %></h1>
2
2
 
3
- <%= cms_form_for @page, :as => :page, :url => {:action => :create} do |form| %>
3
+ <%= cms_form_for @page, :as => :page, :url => {:action => :create}, :html => {:multipart => true} do |form| %>
4
4
  <%= render :partial => 'form', :object => form %>
5
5
  <% end %>
@@ -7,11 +7,15 @@
7
7
 
8
8
  <%= render :partial => 'cms_admin/categories/index', :object => 'Cms::Snippet' %>
9
9
 
10
- <ul class='list'>
10
+ <ul class='list sortable'>
11
11
  <% @snippets.each do |snippet| %>
12
12
  <li id='cms_snippet_<%= snippet.id %>'>
13
13
  <div class='item'>
14
- <div class='icon'></div>
14
+ <div class='icon'>
15
+ <% if !params[:category].present? %>
16
+ <div class='dragger'><span><%= t('cms.views.pages.drag') %></span></div>
17
+ <% end %>
18
+ </div>
15
19
  <div class='action_links'>
16
20
  <%= link_to t('.edit'), edit_cms_admin_site_snippet_path(@site, snippet) %>
17
21
  <%= link_to t('.delete'), cms_admin_site_snippet_path(@site, snippet), :method => :delete, :confirm => t('.are_you_sure') %>
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "comfortable_mexican_sofa"
8
- s.version = "1.4.22"
8
+ s.version = "1.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Oleg Khabarov", "The Working Group Inc"]
12
- s.date = "2011-09-26"
12
+ s.date = "2011-09-28"
13
13
  s.description = ""
14
14
  s.email = "oleg@theworkinggroup.ca"
15
15
  s.extra_rdoc_files = [
@@ -129,6 +129,7 @@ Gem::Specification.new do |s|
129
129
  "app/views/cms_admin/files/_file.html.erb",
130
130
  "app/views/cms_admin/files/_form.html.erb",
131
131
  "app/views/cms_admin/files/_index.html.erb",
132
+ "app/views/cms_admin/files/_page_form.html.erb",
132
133
  "app/views/cms_admin/files/create.js.erb",
133
134
  "app/views/cms_admin/files/destroy.js.erb",
134
135
  "app/views/cms_admin/files/edit.html.erb",
@@ -197,11 +198,10 @@ Gem::Specification.new do |s|
197
198
  "db/migrate/upgrades/03_upgrade_to_1_2_0.rb",
198
199
  "db/migrate/upgrades/04_upgrade_to_1_3_0.rb",
199
200
  "db/migrate/upgrades/05_upgrade_to_1_4_0.rb",
201
+ "db/migrate/upgrades/06_upgrade_to_1_5_0.rb",
200
202
  "db/seeds.rb",
201
203
  "doc/preview.png",
202
204
  "doc/sofa.png",
203
- "gemfiles/Gemfile.rails-3.0.x",
204
- "gemfiles/Gemfile.rails-3.1.x",
205
205
  "lib/comfortable_mexican_sofa.rb",
206
206
  "lib/comfortable_mexican_sofa/authentication/dummy_auth.rb",
207
207
  "lib/comfortable_mexican_sofa/authentication/http_auth.rb",
@@ -226,6 +226,8 @@ Gem::Specification.new do |s|
226
226
  "lib/comfortable_mexican_sofa/tags/file.rb",
227
227
  "lib/comfortable_mexican_sofa/tags/helper.rb",
228
228
  "lib/comfortable_mexican_sofa/tags/page_datetime.rb",
229
+ "lib/comfortable_mexican_sofa/tags/page_file.rb",
230
+ "lib/comfortable_mexican_sofa/tags/page_files.rb",
229
231
  "lib/comfortable_mexican_sofa/tags/page_integer.rb",
230
232
  "lib/comfortable_mexican_sofa/tags/page_rich_text.rb",
231
233
  "lib/comfortable_mexican_sofa/tags/page_string.rb",
@@ -261,6 +263,8 @@ Gem::Specification.new do |s|
261
263
  "test/functional/cms_admin/sites_controller_test.rb",
262
264
  "test/functional/cms_admin/snippets_controller_test.rb",
263
265
  "test/functional/cms_content_controller_test.rb",
266
+ "test/gemfiles/Gemfile.rails-3.0.x",
267
+ "test/gemfiles/Gemfile.rails-3.1.x",
264
268
  "test/integration/authentication_test.rb",
265
269
  "test/integration/fixtures_test.rb",
266
270
  "test/integration/mirrors_test.rb",
@@ -292,6 +296,8 @@ Gem::Specification.new do |s|
292
296
  "test/unit/tags/file_test.rb",
293
297
  "test/unit/tags/helper_test.rb",
294
298
  "test/unit/tags/page_datetime_test.rb",
299
+ "test/unit/tags/page_file_test.rb",
300
+ "test/unit/tags/page_files_test.rb",
295
301
  "test/unit/tags/page_integer_test.rb",
296
302
  "test/unit/tags/page_rich_text_test.rb",
297
303
  "test/unit/tags/page_string_test.rb",
@@ -310,17 +316,17 @@ Gem::Specification.new do |s|
310
316
 
311
317
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
312
318
  s.add_runtime_dependency(%q<rails>, [">= 3.0.0"])
313
- s.add_runtime_dependency(%q<active_link_to>, [">= 1.0.0"])
314
- s.add_runtime_dependency(%q<paperclip>, [">= 2.3.14"])
319
+ s.add_runtime_dependency(%q<active_link_to>, ["~> 1.0.0"])
320
+ s.add_runtime_dependency(%q<paperclip>, ["~> 2.4.2"])
315
321
  else
316
322
  s.add_dependency(%q<rails>, [">= 3.0.0"])
317
- s.add_dependency(%q<active_link_to>, [">= 1.0.0"])
318
- s.add_dependency(%q<paperclip>, [">= 2.3.14"])
323
+ s.add_dependency(%q<active_link_to>, ["~> 1.0.0"])
324
+ s.add_dependency(%q<paperclip>, ["~> 2.4.2"])
319
325
  end
320
326
  else
321
327
  s.add_dependency(%q<rails>, [">= 3.0.0"])
322
- s.add_dependency(%q<active_link_to>, [">= 1.0.0"])
323
- s.add_dependency(%q<paperclip>, [">= 2.3.14"])
328
+ s.add_dependency(%q<active_link_to>, ["~> 1.0.0"])
329
+ s.add_dependency(%q<paperclip>, ["~> 2.4.2"])
324
330
  end
325
331
  end
326
332
 
@@ -59,10 +59,6 @@ ComfortableMexicanSofa.configure do |config|
59
59
  # definition in your database.yml file
60
60
  # config.database_config = nil
61
61
 
62
- # When enabled files upload via the side widget will get automatically categorized for
63
- # the current layout/page/snippet (as long as it's already saved). It's disabled by default.
64
- # config.auto_file_categorization = false
65
-
66
62
  end
67
63
 
68
64
  # Default credentials for ComfortableMexicanSofa::HttpAuth
@@ -1,3 +1,28 @@
1
1
  Paperclip.options[:command_path] = case Rails.env
2
2
  when 'development' then "/usr/local/bin"
3
+ end
4
+
5
+ if Rails.env.test?
6
+ class Paperclip::Attachment
7
+ def self.default_options
8
+ @default_options = {
9
+ :url => "/system/:attachment/:id/:style/:filename",
10
+ :path => ":rails_root/public:url",
11
+ :styles => {},
12
+ :only_process => [],
13
+ :processors => [:thumbnail],
14
+ :convert_options => {},
15
+ :source_file_options => {},
16
+ :default_url => "/:attachment/:style/missing.png",
17
+ :default_style => :original,
18
+ :storage => :filesystem,
19
+ :use_timestamp => false,
20
+ :whiny => Paperclip.options[:whiny] || Paperclip.options[:whiny_thumbnails],
21
+ :use_default_time_zone => true,
22
+ :hash_digest => "SHA1",
23
+ :hash_data => ":class/:attachment/:id/:style/:updated_at",
24
+ :preserve_files => false
25
+ }
26
+ end
27
+ end
3
28
  end
@@ -197,6 +197,8 @@ en:
197
197
  form:
198
198
  create: Upload File
199
199
  update: Update File
200
+ page_form:
201
+ are_you_sure: Are you sure?
200
202
 
201
203
  categories:
202
204
  index:
@@ -197,6 +197,8 @@ es:
197
197
  form:
198
198
  create: Subir Archivo
199
199
  update: Actualizar Archivo
200
+ page_form:
201
+ are_you_sure: ¿Estás seguro?
200
202
 
201
203
  categories:
202
204
  index:
data/config/routes.rb CHANGED
@@ -4,24 +4,24 @@ Rails.application.routes.draw do
4
4
  get '/', :to => 'base#jump'
5
5
  resources :sites do
6
6
  resources :pages do
7
- member do
8
- match :form_blocks
9
- match :toggle_branch
10
- end
11
- collection do
12
- match :reorder
13
- end
7
+ get :form_blocks, :on => :member
8
+ get :toggle_branch, :on => :member
9
+ post :reorder, :on => :collection
14
10
  resources :revisions, :only => [:index, :show, :revert] do
15
11
  put :revert, :on => :member
16
12
  end
17
13
  end
18
- resources :files
14
+ resources :files do
15
+ post :reorder, :on => :collection
16
+ end
19
17
  resources :layouts do
18
+ post :reorder, :on => :collection
20
19
  resources :revisions, :only => [:index, :show, :revert] do
21
20
  put :revert, :on => :member
22
21
  end
23
22
  end
24
23
  resources :snippets do
24
+ post :reorder, :on => :collection
25
25
  resources :revisions, :only => [:index, :show, :revert] do
26
26
  put :revert, :on => :member
27
27
  end
@@ -63,23 +63,29 @@ class CreateCms < ActiveRecord::Migration
63
63
  t.string :label
64
64
  t.string :slug
65
65
  t.text :content
66
+ t.integer :position, :null => false, :default => 0
66
67
  t.boolean :is_shared, :null => false, :default => false
67
68
  t.timestamps
68
69
  end
69
70
  add_index :cms_snippets, [:site_id, :slug], :unique => true
71
+ add_index :cms_snippets, [:site_id, :position]
70
72
 
71
73
  # -- Files --------------------------------------------------------------
72
74
  create_table :cms_files do |t|
73
75
  t.integer :site_id
76
+ t.integer :block_id
74
77
  t.string :label
75
78
  t.string :file_file_name
76
79
  t.string :file_content_type
77
80
  t.integer :file_file_size
78
81
  t.string :description, :limit => 2048
82
+ t.integer :position, :null => false, :default => 0
79
83
  t.timestamps
80
84
  end
81
85
  add_index :cms_files, [:site_id, :label]
82
86
  add_index :cms_files, [:site_id, :file_file_name]
87
+ add_index :cms_files, [:site_id, :position]
88
+ add_index :cms_files, [:site_id, :block_id]
83
89
 
84
90
  # -- Revisions -----------------------------------------------------------
85
91
  create_table :cms_revisions, :force => true do |t|
@@ -0,0 +1,21 @@
1
+ class UpgradeTo150 < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :cms_snippets, :position, :integer, :null => false, :default => 0
4
+ add_column :cms_files, :position, :integer, :null => false, :default => 0
5
+ add_column :cms_files, :block_id, :integer
6
+
7
+ add_index :cms_snippets, [:site_id, :position]
8
+ add_index :cms_files, [:site_id, :position]
9
+ add_index :cms_files, [:site_id, :block_id]
10
+ end
11
+
12
+ def self.down
13
+ remove_index :cms_snippets, [:site_id, :position]
14
+ remove_index :cms_files, [:site_id, :position]
15
+ remove_index :cms_files, [:site_id, :block_id]
16
+
17
+ remove_column :cms_snippets, :position
18
+ remove_column :cms_files, :position
19
+ remove_column :cms_files, :block_id
20
+ end
21
+ end
@@ -49,27 +49,22 @@ class ComfortableMexicanSofa::Configuration
49
49
  # in your database.yml file
50
50
  attr_accessor :database_config
51
51
 
52
- # When enabled files upload via the side widget will get automatically categorized for
53
- # the current layout/page/snippet (as long as it's already saved). It's disabled by default.
54
- attr_accessor :auto_file_categorization
55
-
56
52
  # Configuration defaults
57
53
  def initialize
58
- @cms_title = 'ComfortableMexicanSofa MicroCMS'
59
- @admin_auth = 'ComfortableMexicanSofa::HttpAuth'
60
- @public_auth = 'ComfortableMexicanSofa::DummyAuth'
61
- @seed_data_path = nil
62
- @admin_route_prefix = 'cms-admin'
63
- @admin_route_redirect = ''
64
- @allow_irb = false
65
- @upload_file_options = {}
66
- @enable_fixtures = false
67
- @fixtures_path = File.expand_path('db/cms_fixtures', Rails.root)
68
- @revisions_limit = 25
69
- @locales = { :en => 'English', :es => 'Español' }
70
- @admin_locale = nil
71
- @database_config = nil
72
- @auto_file_categorization = false
54
+ @cms_title = 'ComfortableMexicanSofa MicroCMS'
55
+ @admin_auth = 'ComfortableMexicanSofa::HttpAuth'
56
+ @public_auth = 'ComfortableMexicanSofa::DummyAuth'
57
+ @seed_data_path = nil
58
+ @admin_route_prefix = 'cms-admin'
59
+ @admin_route_redirect = ''
60
+ @allow_irb = false
61
+ @upload_file_options = {}
62
+ @enable_fixtures = false
63
+ @fixtures_path = File.expand_path('db/cms_fixtures', Rails.root)
64
+ @revisions_limit = 25
65
+ @locales = { :en => 'English', :es => 'Español' }
66
+ @admin_locale = nil
67
+ @database_config = nil
73
68
  end
74
69
 
75
70
  end
@@ -55,11 +55,13 @@ class ComfortableMexicanSofa::FormBuilder < ActionView::Helpers::FormBuilder
55
55
  end
56
56
 
57
57
  # -- Tag Field Fields -----------------------------------------------------
58
- def default_tag_field(tag, options = {})
59
- label = options[:label] || tag.label.to_s.titleize
60
- css_class = options[:css_class] || tag.class.to_s.demodulize.underscore
58
+ def default_tag_field(tag, index, options = {})
59
+ method = options.delete(:method) || :text_field_tag
60
+ label = tag.label.to_s.titleize
61
+ css_class = tag.class.to_s.demodulize.underscore
62
+ content = ''
61
63
 
62
- field_css_class = case tag
64
+ input_class = case tag
63
65
  when ComfortableMexicanSofa::Tag::PageDateTime, ComfortableMexicanSofa::Tag::FieldDateTime
64
66
  'datetime'
65
67
  when ComfortableMexicanSofa::Tag::PageText, ComfortableMexicanSofa::Tag::FieldText
@@ -68,68 +70,78 @@ class ComfortableMexicanSofa::FormBuilder < ActionView::Helpers::FormBuilder
68
70
  'rich_text'
69
71
  end
70
72
 
71
- options[:content_field_method] ||= :text_field_tag
72
- field =
73
- options[:field] ||
74
- @template.send(
75
- options[:content_field_method],
76
- 'page[blocks_attributes][][content]',
77
- tag.content,
78
- :id => nil,
79
- :class => field_css_class
80
- )
81
- content = "#{field} #{@template.hidden_field_tag('page[blocks_attributes][][label]', tag.label, :id => nil)}"
73
+ case method
74
+ when :file_field_tag
75
+ input_params = {:id => nil, :class => input_class}
76
+ input_params.merge!(:multiple => true) if options[:multiple]
77
+ name = "page[blocks_attributes][#{index}][content]"
78
+ name << '[]' if options[:multiple]
79
+ content << @template.send(method, name, input_params)
80
+ content << @template.render(:partial => 'cms_admin/files/page_form', :object => tag.block)
81
+ else
82
+ content << @template.send(method, "page[blocks_attributes][#{index}][content]", tag.content, :id => nil, :class => input_class)
83
+ end
84
+ content << @template.hidden_field_tag("page[blocks_attributes][#{index}][label]", tag.label, :id => nil)
85
+
82
86
  simple_field(label, content, :class => css_class)
83
87
  end
84
88
 
85
- def field_date_time(tag)
86
- default_tag_field(tag)
89
+ def field_date_time(tag, index)
90
+ default_tag_field(tag, index)
91
+ end
92
+
93
+ def field_integer(tag, index)
94
+ default_tag_field(tag, index, :method => :number_field_tag)
95
+ end
96
+
97
+ def field_string(tag, index)
98
+ default_tag_field(tag, index)
87
99
  end
88
100
 
89
- def field_integer(tag)
90
- default_tag_field(tag, :content_field_method => :number_field_tag)
101
+ def field_text(tag, index)
102
+ default_tag_field(tag, index, :method => :text_area_tag)
91
103
  end
92
104
 
93
- def field_string(tag)
94
- default_tag_field(tag)
105
+ def page_date_time(tag, index)
106
+ default_tag_field(tag, index)
95
107
  end
96
108
 
97
- def field_text(tag)
98
- default_tag_field(tag, :content_field_method => :text_area_tag)
109
+ def page_integer(tag, index)
110
+ default_tag_field(tag, index, :method => :number_field_tag)
99
111
  end
100
112
 
101
- def page_date_time(tag)
102
- default_tag_field(tag)
113
+ def page_string(tag, index)
114
+ default_tag_field(tag, index)
103
115
  end
104
116
 
105
- def page_integer(tag)
106
- default_tag_field(tag, :content_field_method => :number_field_tag)
117
+ def page_text(tag, index)
118
+ default_tag_field(tag, index, :method => :text_area_tag)
107
119
  end
108
120
 
109
- def page_string(tag)
110
- default_tag_field(tag)
121
+ def page_rich_text(tag, index)
122
+ default_tag_field(tag, index, :method => :text_area_tag)
111
123
  end
112
124
 
113
- def page_text(tag)
114
- default_tag_field(tag, :content_field_method => :text_area_tag)
125
+ def page_file(tag, index)
126
+ default_tag_field(tag, index, :method => :file_field_tag)
115
127
  end
116
128
 
117
- def page_rich_text(tag)
118
- default_tag_field(tag, :content_field_method => :text_area_tag)
129
+ def page_files(tag, index)
130
+ default_tag_field(tag, index, :method => :file_field_tag, :multiple => true)
119
131
  end
120
132
 
121
- def collection(tag)
133
+ def collection(tag, index)
122
134
  options = [["---- Select #{tag.collection_class.titleize} ----", nil]] +
123
135
  tag.collection_objects.collect do |m|
124
136
  [m.send(tag.collection_title), m.send(tag.collection_identifier)]
125
137
  end
126
138
 
127
139
  content = @template.select_tag(
128
- 'page[blocks_attributes][][content]',
140
+ "page[blocks_attributes][#{index}][content]",
129
141
  @template.options_for_select(options, :selected => tag.content),
130
142
  :id => nil
131
143
  )
132
- content << @template.hidden_field_tag('page[blocks_attributes][][label]', tag.label, :id => nil)
144
+ content << @template.hidden_field_tag("page[blocks_attributes][#{index}][label]", tag.label, :id => nil)
133
145
  simple_field(tag.label, content, :class => tag.class.to_s.demodulize.underscore )
134
146
  end
135
147
 
@@ -3,7 +3,7 @@
3
3
  # This module provides all Tag classes with neccessary methods.
4
4
  # Example class that will behave as a Tag:
5
5
  # class MySpecialTag
6
- # include CmsTag
6
+ # include ComfortableMexicanSofa::Tag
7
7
  # ...
8
8
  # end
9
9
  module ComfortableMexicanSofa::Tag
@@ -76,19 +76,9 @@ module ComfortableMexicanSofa::Tag
76
76
  page.blocks.detect{|b| b.label == self.label.to_s} || page.blocks.build(:label => self.label.to_s)
77
77
  end
78
78
 
79
- # Find or initialize Cms::Snippet object
80
- def snippet
81
- page.site.snippets.detect{|s| s.slug == self.label.to_s} || page.site.snippets.build(:slug => self.label.to_s)
82
- end
83
-
84
- # Initializing Cms::Upload object
85
- def file
86
- page.site.files.detect{|f| f.file_file_name == self.label.to_s}
87
- end
88
-
89
79
  # Checks if this tag is using Cms::Block
90
80
  def is_cms_block?
91
- %w(page field collection).member?(self.class.to_s.demodulize.underscore.split(/_/).first)
81
+ %w(page field collection file).member?(self.class.to_s.demodulize.underscore.split(/_/).first)
92
82
  end
93
83
 
94
84
  # Used in displaying form elements for Cms::Block