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.
- data/.travis.yml +2 -2
- data/Gemfile +3 -7
- data/VERSION +1 -1
- data/app/assets/stylesheets/comfortable_mexican_sofa/form.css +44 -1
- data/app/controllers/cms_admin/files_controller.rb +10 -1
- data/app/controllers/cms_admin/layouts_controller.rb +9 -0
- data/app/controllers/cms_admin/pages_controller.rb +1 -1
- data/app/controllers/cms_admin/snippets_controller.rb +10 -1
- data/app/models/cms/block.rb +29 -0
- data/app/models/cms/file.rb +9 -19
- data/app/models/cms/layout.rb +9 -0
- data/app/models/cms/page.rb +3 -4
- data/app/models/cms/snippet.rb +9 -0
- data/app/views/cms_admin/files/_file.html.erb +1 -1
- data/app/views/cms_admin/files/_index.html.erb +1 -12
- data/app/views/cms_admin/files/_page_form.html.erb +12 -0
- data/app/views/cms_admin/files/destroy.js.erb +1 -1
- data/app/views/cms_admin/files/index.html.erb +6 -2
- data/app/views/cms_admin/layouts/_index_branch.html.erb +5 -1
- data/app/views/cms_admin/layouts/index.html.erb +1 -1
- data/app/views/cms_admin/pages/_form_blocks.html.erb +2 -2
- data/app/views/cms_admin/pages/edit.html.erb +1 -1
- data/app/views/cms_admin/pages/new.html.erb +1 -1
- data/app/views/cms_admin/snippets/index.html.erb +6 -2
- data/comfortable_mexican_sofa.gemspec +16 -10
- data/config/initializers/comfortable_mexican_sofa.rb +0 -4
- data/config/initializers/paperclip.rb +25 -0
- data/config/locales/en.yml +2 -0
- data/config/locales/es.yml +2 -0
- data/config/routes.rb +8 -8
- data/db/migrate/01_create_cms.rb +6 -0
- data/db/migrate/upgrades/06_upgrade_to_1_5_0.rb +21 -0
- data/lib/comfortable_mexican_sofa/configuration.rb +14 -19
- data/lib/comfortable_mexican_sofa/form_builder.rb +48 -36
- data/lib/comfortable_mexican_sofa/tag.rb +2 -12
- data/lib/comfortable_mexican_sofa/tags/collection.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_datetime.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_integer.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_string.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/field_text.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/file.rb +5 -0
- data/lib/comfortable_mexican_sofa/tags/page_datetime.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_file.rb +44 -0
- data/lib/comfortable_mexican_sofa/tags/page_files.rb +44 -0
- data/lib/comfortable_mexican_sofa/tags/page_integer.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_rich_text.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_string.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/page_text.rb +0 -4
- data/lib/comfortable_mexican_sofa/tags/snippet.rb +5 -0
- data/lib/comfortable_mexican_sofa/view_methods.rb +6 -1
- data/test/fixtures/cms/files.yml +2 -1
- data/test/fixtures/cms/layouts.yml +4 -1
- data/test/fixtures/cms/snippets.yml +1 -0
- data/test/functional/cms_admin/files_controller_test.rb +17 -19
- data/test/functional/cms_admin/layouts_controller_test.rb +18 -1
- data/test/functional/cms_admin/pages_controller_test.rb +63 -22
- data/test/functional/cms_admin/snippets_controller_test.rb +18 -1
- data/test/gemfiles/Gemfile.rails-3.0.x +10 -0
- data/test/gemfiles/Gemfile.rails-3.1.x +10 -0
- data/test/test_helper.rb +13 -12
- data/test/unit/configuration_test.rb +1 -1
- data/test/unit/models/block_test.rb +112 -1
- data/test/unit/models/file_test.rb +1 -51
- data/test/unit/models/layout_test.rb +1 -0
- data/test/unit/models/snippet_test.rb +14 -0
- data/test/unit/tags/collection_test.rb +5 -5
- data/test/unit/tags/field_datetime_test.rb +2 -2
- data/test/unit/tags/field_integer_test.rb +2 -2
- data/test/unit/tags/field_string_test.rb +2 -2
- data/test/unit/tags/field_text_test.rb +2 -2
- data/test/unit/tags/page_datetime_test.rb +2 -2
- data/test/unit/tags/page_file_test.rb +79 -0
- data/test/unit/tags/page_files_test.rb +72 -0
- data/test/unit/tags/page_integer_test.rb +2 -2
- data/test/unit/tags/page_rich_text_test.rb +2 -2
- data/test/unit/tags/page_string_test.rb +2 -2
- data/test/unit/tags/page_text_test.rb +2 -2
- data/test/unit/view_methods_test.rb +2 -1
- metadata +20 -14
- data/gemfiles/Gemfile.rails-3.0.x +0 -14
- 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'
|
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.
|
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-
|
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>, ["
|
314
|
-
s.add_runtime_dependency(%q<paperclip>, ["
|
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>, ["
|
318
|
-
s.add_dependency(%q<paperclip>, ["
|
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>, ["
|
323
|
-
s.add_dependency(%q<paperclip>, ["
|
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
|
data/config/locales/en.yml
CHANGED
data/config/locales/es.yml
CHANGED
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
|
-
|
8
|
-
|
9
|
-
|
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
|
data/db/migrate/01_create_cms.rb
CHANGED
@@ -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
|
59
|
-
@admin_auth
|
60
|
-
@public_auth
|
61
|
-
@seed_data_path
|
62
|
-
@admin_route_prefix
|
63
|
-
@admin_route_redirect
|
64
|
-
@allow_irb
|
65
|
-
@upload_file_options
|
66
|
-
@enable_fixtures
|
67
|
-
@fixtures_path
|
68
|
-
@revisions_limit
|
69
|
-
@locales
|
70
|
-
@admin_locale
|
71
|
-
@database_config
|
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
|
-
|
60
|
-
|
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
|
-
|
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
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
)
|
81
|
-
|
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
|
90
|
-
default_tag_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
|
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
|
98
|
-
default_tag_field(tag, :
|
109
|
+
def page_integer(tag, index)
|
110
|
+
default_tag_field(tag, index, :method => :number_field_tag)
|
99
111
|
end
|
100
112
|
|
101
|
-
def
|
102
|
-
default_tag_field(tag)
|
113
|
+
def page_string(tag, index)
|
114
|
+
default_tag_field(tag, index)
|
103
115
|
end
|
104
116
|
|
105
|
-
def
|
106
|
-
default_tag_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
|
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
|
114
|
-
default_tag_field(tag, :
|
125
|
+
def page_file(tag, index)
|
126
|
+
default_tag_field(tag, index, :method => :file_field_tag)
|
115
127
|
end
|
116
128
|
|
117
|
-
def
|
118
|
-
default_tag_field(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
|
-
|
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(
|
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
|
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
|