comfortable_mexican_sofa 0.0.18 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. data/.gitignore +8 -8
  2. data/Gemfile +11 -0
  3. data/Gemfile.lock +91 -0
  4. data/README.md +4 -0
  5. data/Rakefile +28 -57
  6. data/VERSION +1 -1
  7. data/app/controllers/application_controller.rb +5 -0
  8. data/app/controllers/cms_admin/base_controller.rb +1 -21
  9. data/app/controllers/cms_admin/layouts_controller.rb +23 -38
  10. data/app/controllers/cms_admin/pages_controller.rb +24 -40
  11. data/app/controllers/cms_admin/snippets_controller.rb +26 -34
  12. data/app/controllers/cms_admin/uploads_controller.rb +27 -0
  13. data/app/controllers/cms_content_controller.rb +22 -19
  14. data/app/models/cms_block.rb +20 -6
  15. data/app/models/cms_layout.rb +34 -80
  16. data/app/models/cms_page.rb +44 -102
  17. data/app/models/cms_snippet.rb +12 -7
  18. data/app/models/cms_upload.rb +36 -0
  19. data/app/views/cms_admin/layouts/_form.html.erb +6 -0
  20. data/app/views/cms_admin/layouts/_index_branch.html.erb +24 -0
  21. data/app/views/cms_admin/layouts/edit.html.erb +6 -0
  22. data/app/views/cms_admin/layouts/index.html.erb +6 -0
  23. data/app/views/cms_admin/layouts/new.html.erb +6 -0
  24. data/app/views/cms_admin/pages/_form.html.erb +14 -0
  25. data/app/views/cms_admin/pages/_form_blocks.html.erb +7 -0
  26. data/app/views/cms_admin/pages/_index_branch.html.erb +27 -0
  27. data/app/views/cms_admin/pages/edit.html.erb +6 -0
  28. data/app/views/cms_admin/pages/form_blocks.js.erb +1 -0
  29. data/app/views/cms_admin/pages/index.html.erb +6 -0
  30. data/app/views/cms_admin/pages/new.html.erb +6 -0
  31. data/app/views/cms_admin/snippets/_form.html.erb +2 -0
  32. data/app/views/cms_admin/snippets/edit.html.erb +6 -0
  33. data/app/views/cms_admin/snippets/index.html.erb +3 -0
  34. data/app/views/cms_admin/snippets/new.html.erb +6 -0
  35. data/app/views/cms_admin/uploads/_index.html.erb +8 -0
  36. data/app/views/cms_admin/uploads/_upload.html.erb +11 -0
  37. data/app/views/cms_admin/uploads/destroy.js.erb +3 -0
  38. data/app/views/cms_admin/uploads/index.html.erb +2 -0
  39. data/app/views/layouts/cms_admin.html.erb +36 -0
  40. data/comfortable_mexican_sofa.gemspec +141 -197
  41. data/config.ru +4 -0
  42. data/config/application.rb +44 -0
  43. data/config/boot.rb +13 -0
  44. data/{test/rails_root/config → config}/database.yml +0 -0
  45. data/config/environment.rb +5 -0
  46. data/config/environments/development.rb +22 -0
  47. data/config/environments/production.rb +49 -0
  48. data/config/environments/test.rb +35 -0
  49. data/{test/rails_root/config → config}/initializers/backtrace_silencers.rb +2 -2
  50. data/{test/rails_root/config → config}/initializers/inflections.rb +1 -1
  51. data/{test/rails_root/config → config}/initializers/mime_types.rb +0 -0
  52. data/config/initializers/paperclip.rb +3 -0
  53. data/config/initializers/secret_token.rb +7 -0
  54. data/config/initializers/session_store.rb +8 -0
  55. data/{test/rails_root/config → config}/locales/en.yml +1 -1
  56. data/config/routes.rb +20 -0
  57. data/db/migrate/01_create_cms.rb +73 -0
  58. data/db/seeds.rb +7 -0
  59. data/doc/README_FOR_APP +95 -0
  60. data/lib/comfortable_mexican_sofa.rb +34 -39
  61. data/lib/comfortable_mexican_sofa/cms_acts_as_tree.rb +42 -49
  62. data/lib/comfortable_mexican_sofa/cms_form_builder.rb +107 -0
  63. data/lib/comfortable_mexican_sofa/cms_rails_extensions.rb +25 -5
  64. data/lib/comfortable_mexican_sofa/cms_tag.rb +90 -85
  65. data/lib/comfortable_mexican_sofa/cms_tag/field_datetime.rb +26 -0
  66. data/lib/comfortable_mexican_sofa/cms_tag/field_integer.rb +26 -0
  67. data/lib/comfortable_mexican_sofa/cms_tag/field_string.rb +26 -0
  68. data/lib/comfortable_mexican_sofa/cms_tag/field_text.rb +26 -0
  69. data/lib/comfortable_mexican_sofa/cms_tag/page_datetime.rb +22 -0
  70. data/lib/comfortable_mexican_sofa/cms_tag/page_integer.rb +22 -0
  71. data/lib/comfortable_mexican_sofa/cms_tag/page_string.rb +22 -0
  72. data/lib/comfortable_mexican_sofa/cms_tag/page_text.rb +22 -0
  73. data/lib/comfortable_mexican_sofa/cms_tag/partial.rb +20 -0
  74. data/lib/comfortable_mexican_sofa/cms_tag/snippet.rb +18 -0
  75. data/{generators/cms/templates → lib/generators}/README +0 -20
  76. data/lib/generators/cms_generator.rb +28 -0
  77. data/public/404.html +26 -0
  78. data/public/422.html +26 -0
  79. data/public/500.html +26 -0
  80. data/{test/rails_root/public → public}/favicon.ico +0 -0
  81. data/public/images/comfortable_mexican_sofa/body_bg.jpg +0 -0
  82. data/{generators/cms/templates/images → public/images/comfortable_mexican_sofa}/icon_regular.gif +0 -0
  83. data/public/javascripts/comfortable_mexican_sofa/cms.js +53 -0
  84. data/public/javascripts/comfortable_mexican_sofa/jquery-ui.js +325 -0
  85. data/public/javascripts/comfortable_mexican_sofa/jquery.js +154 -0
  86. data/public/javascripts/comfortable_mexican_sofa/plupload/plupload.full.min.js +1 -0
  87. data/public/javascripts/comfortable_mexican_sofa/plupload/plupload.html4.min.js +1 -0
  88. data/public/javascripts/comfortable_mexican_sofa/plupload/plupload.html5.min.js +1 -0
  89. data/public/javascripts/comfortable_mexican_sofa/rails.js +132 -0
  90. data/public/javascripts/comfortable_mexican_sofa/uploader.js +47 -0
  91. data/{test/rails_root/public → public}/robots.txt +0 -0
  92. data/public/stylesheets/comfortable_mexican_sofa/jquery-ui.css +305 -0
  93. data/public/stylesheets/comfortable_mexican_sofa/reset.css +1 -0
  94. data/public/stylesheets/comfortable_mexican_sofa/structure.css +194 -0
  95. data/public/stylesheets/comfortable_mexican_sofa/typography.css +20 -0
  96. data/script/rails +6 -0
  97. data/test/fixtures/README.md +22 -0
  98. data/test/fixtures/cms_blocks.yml +10 -34
  99. data/test/fixtures/cms_layouts.yml +37 -33
  100. data/test/fixtures/cms_pages.yml +11 -32
  101. data/test/fixtures/cms_snippets.yml +2 -6
  102. data/test/fixtures/cms_uploads.yml +4 -0
  103. data/test/fixtures/files/invalid_file.gif +9 -0
  104. data/test/fixtures/files/valid_image.jpg +0 -0
  105. data/test/functional/cms_admin/base_controller_test.rb +9 -0
  106. data/test/functional/cms_admin/layouts_controller_test.rb +61 -46
  107. data/test/functional/cms_admin/pages_controller_test.rb +201 -102
  108. data/test/functional/cms_admin/snippets_controller_test.rb +46 -39
  109. data/test/functional/cms_admin/uploads_controller_test.rb +32 -0
  110. data/test/functional/cms_content_controller_test.rb +37 -32
  111. data/test/test_helper.rb +29 -9
  112. data/test/unit/cms_block_test.rb +60 -0
  113. data/test/unit/cms_layout_test.rb +48 -0
  114. data/test/unit/cms_page_test.rb +122 -0
  115. data/test/unit/cms_snippet_test.rb +23 -0
  116. data/test/unit/cms_tag_test.rb +149 -0
  117. data/test/unit/cms_tags/field_datetime_test.rb +36 -0
  118. data/test/unit/cms_tags/field_integer_test.rb +35 -0
  119. data/test/unit/cms_tags/field_string_test.rb +35 -0
  120. data/test/unit/cms_tags/field_text_test.rb +34 -0
  121. data/test/unit/cms_tags/page_datetime_test.rb +36 -0
  122. data/test/unit/cms_tags/page_integer_test.rb +35 -0
  123. data/test/unit/cms_tags/page_string_test.rb +35 -0
  124. data/test/unit/cms_tags/page_text_test.rb +36 -0
  125. data/test/unit/cms_tags/partial_test.rb +30 -0
  126. data/test/unit/cms_tags/snippet_test.rb +34 -0
  127. data/test/unit/cms_upload_test.rb +30 -0
  128. metadata +176 -215
  129. data/CHANGELOG.rdoc +0 -2
  130. data/LICENSE +0 -20
  131. data/README.rdoc +0 -55
  132. data/app/controllers/cms_admin/attachments_controller.rb +0 -55
  133. data/app/controllers/cms_admin/categories_controller.rb +0 -69
  134. data/app/controllers/cms_admin/sections_controller.rb +0 -17
  135. data/app/controllers/cms_common/render_page.rb +0 -47
  136. data/app/helpers/cms_helper.rb +0 -12
  137. data/app/models/cms_attachment.rb +0 -17
  138. data/app/models/cms_attachment_categorization.rb +0 -5
  139. data/app/models/cms_category.rb +0 -36
  140. data/app/models/cms_page_categorization.rb +0 -6
  141. data/app/views/cms_admin/attachments/_details.html.haml +0 -27
  142. data/app/views/cms_admin/attachments/_form.html.haml +0 -24
  143. data/app/views/cms_admin/attachments/edit.html.haml +0 -10
  144. data/app/views/cms_admin/attachments/index.html.haml +0 -36
  145. data/app/views/cms_admin/attachments/new.html.haml +0 -8
  146. data/app/views/cms_admin/categories/_category.html.haml +0 -21
  147. data/app/views/cms_admin/categories/_category_subform.html.haml +0 -12
  148. data/app/views/cms_admin/categories/_form.html.haml +0 -18
  149. data/app/views/cms_admin/categories/_new.html.haml +0 -7
  150. data/app/views/cms_admin/categories/_toggle_link.html.haml +0 -9
  151. data/app/views/cms_admin/categories/_tree_branch.html.haml +0 -36
  152. data/app/views/cms_admin/categories/children.js.rjs +0 -10
  153. data/app/views/cms_admin/categories/create.js.rjs +0 -9
  154. data/app/views/cms_admin/categories/edit.html.haml +0 -10
  155. data/app/views/cms_admin/categories/index.html.haml +0 -7
  156. data/app/views/cms_admin/categories/new.html.haml +0 -8
  157. data/app/views/cms_admin/categories/show.html.haml +0 -17
  158. data/app/views/cms_admin/layouts/_details.html.haml +0 -6
  159. data/app/views/cms_admin/layouts/_form.html.haml +0 -19
  160. data/app/views/cms_admin/layouts/_toggle_link.html.haml +0 -9
  161. data/app/views/cms_admin/layouts/_tree_branch.html.haml +0 -39
  162. data/app/views/cms_admin/layouts/children.js.rjs +0 -10
  163. data/app/views/cms_admin/layouts/edit.html.haml +0 -10
  164. data/app/views/cms_admin/layouts/index.html.haml +0 -7
  165. data/app/views/cms_admin/layouts/new.html.haml +0 -8
  166. data/app/views/cms_admin/pages/_details.html.haml +0 -25
  167. data/app/views/cms_admin/pages/_form.html.haml +0 -45
  168. data/app/views/cms_admin/pages/_form_blocks.html.haml +0 -48
  169. data/app/views/cms_admin/pages/_toggle_link.html.haml +0 -10
  170. data/app/views/cms_admin/pages/_tree_branch.html.haml +0 -41
  171. data/app/views/cms_admin/pages/children.js.rjs +0 -10
  172. data/app/views/cms_admin/pages/edit.html.haml +0 -11
  173. data/app/views/cms_admin/pages/form_blocks.js.rjs +0 -1
  174. data/app/views/cms_admin/pages/index.html.haml +0 -6
  175. data/app/views/cms_admin/pages/new.html.haml +0 -9
  176. data/app/views/cms_admin/sections/show.html.haml +0 -23
  177. data/app/views/cms_admin/snippets/_form.html.haml +0 -10
  178. data/app/views/cms_admin/snippets/edit.html.haml +0 -10
  179. data/app/views/cms_admin/snippets/index.html.haml +0 -26
  180. data/app/views/cms_admin/snippets/new.html.haml +0 -8
  181. data/app/views/cms_content/show.xml.rxml +0 -27
  182. data/app/views/cms_content/sitemap.xml.rxml +0 -16
  183. data/app/views/layouts/cms_admin.html.haml +0 -44
  184. data/config/cms_routes.rb +0 -25
  185. data/generators/cms/cms_generator.rb +0 -55
  186. data/generators/cms/templates/images/arrow_bottom.gif +0 -0
  187. data/generators/cms/templates/images/arrow_right.gif +0 -0
  188. data/generators/cms/templates/images/icon_attachment.gif +0 -0
  189. data/generators/cms/templates/images/icon_category.gif +0 -0
  190. data/generators/cms/templates/images/icon_draft.gif +0 -0
  191. data/generators/cms/templates/images/icon_layout.gif +0 -0
  192. data/generators/cms/templates/images/icon_move.gif +0 -0
  193. data/generators/cms/templates/images/icon_snippet.gif +0 -0
  194. data/generators/cms/templates/images/logo.png +0 -0
  195. data/generators/cms/templates/initializers/cms.rb +0 -14
  196. data/generators/cms/templates/initializers/paperclip.rb +0 -14
  197. data/generators/cms/templates/javascripts/codemirror_init.js +0 -16
  198. data/generators/cms/templates/javascripts/mce_init.js +0 -17
  199. data/generators/cms/templates/javascripts/utilities.js +0 -27
  200. data/generators/cms/templates/migrations/create_cms.rb +0 -113
  201. data/generators/cms/templates/stylesheets/cms_master.sass +0 -414
  202. data/init.rb +0 -1
  203. data/lib/comfortable_mexican_sofa/acts_as_categorized.rb +0 -87
  204. data/lib/comfortable_mexican_sofa/acts_as_published.rb +0 -60
  205. data/lib/comfortable_mexican_sofa/cms_tags/attachment.rb +0 -3
  206. data/lib/comfortable_mexican_sofa/cms_tags/block.rb +0 -117
  207. data/lib/comfortable_mexican_sofa/cms_tags/helper.rb +0 -3
  208. data/lib/comfortable_mexican_sofa/cms_tags/page_block.rb +0 -119
  209. data/lib/comfortable_mexican_sofa/cms_tags/partial.rb +0 -19
  210. data/lib/comfortable_mexican_sofa/cms_tags/snippet.rb +0 -19
  211. data/rails/init.rb +0 -1
  212. data/test/fixtures/cms_attachment_categorizations.yml +0 -7
  213. data/test/fixtures/cms_attachments.yml +0 -6
  214. data/test/fixtures/cms_categories.yml +0 -19
  215. data/test/fixtures/cms_page_categorizations.yml +0 -15
  216. data/test/fixtures/files/upload_file.txt +0 -1
  217. data/test/functional/cms_admin/attachments_controller_test.rb +0 -63
  218. data/test/functional/cms_admin/categories_controller_test.rb +0 -86
  219. data/test/functional/cms_admin/sections_controller_test.rb +0 -9
  220. data/test/models/cms_attachment_test.rb +0 -16
  221. data/test/models/cms_block_test.rb +0 -11
  222. data/test/models/cms_categorization_test.rb +0 -39
  223. data/test/models/cms_category_test.rb +0 -71
  224. data/test/models/cms_layout_test.rb +0 -44
  225. data/test/models/cms_page_test.rb +0 -55
  226. data/test/models/cms_snippet_test.rb +0 -16
  227. data/test/models/cms_tag_test.rb +0 -70
  228. data/test/rails_root/README +0 -243
  229. data/test/rails_root/Rakefile +0 -10
  230. data/test/rails_root/app/controllers/application_controller.rb +0 -10
  231. data/test/rails_root/app/helpers/application_helper.rb +0 -3
  232. data/test/rails_root/app/views/cms/under-development.html.haml +0 -1
  233. data/test/rails_root/app/views/complex_page/_example.html.erb +0 -1
  234. data/test/rails_root/config/boot.rb +0 -110
  235. data/test/rails_root/config/environment.rb +0 -48
  236. data/test/rails_root/config/environments/development.rb +0 -17
  237. data/test/rails_root/config/environments/production.rb +0 -28
  238. data/test/rails_root/config/environments/test.rb +0 -28
  239. data/test/rails_root/config/initializers/new_rails_defaults.rb +0 -19
  240. data/test/rails_root/config/initializers/session_store.rb +0 -15
  241. data/test/rails_root/config/routes.rb +0 -43
  242. data/test/rails_root/doc/README_FOR_APP +0 -2
  243. data/test/rails_root/public/404.html +0 -30
  244. data/test/rails_root/public/422.html +0 -30
  245. data/test/rails_root/public/500.html +0 -30
  246. data/test/rails_root/public/images/rails.png +0 -0
  247. data/test/rails_root/public/index.html +0 -275
  248. data/test/rails_root/public/javascripts/application.js +0 -2
  249. data/test/rails_root/public/javascripts/controls.js +0 -963
  250. data/test/rails_root/public/javascripts/dragdrop.js +0 -973
  251. data/test/rails_root/public/javascripts/effects.js +0 -1128
  252. data/test/rails_root/public/javascripts/prototype.js +0 -4320
  253. data/test/rails_root/public/stylesheets/sass/cms_master.sass +0 -414
  254. data/test/rails_root/script/about +0 -4
  255. data/test/rails_root/script/console +0 -3
  256. data/test/rails_root/script/dbconsole +0 -3
  257. data/test/rails_root/script/destroy +0 -3
  258. data/test/rails_root/script/generate +0 -3
  259. data/test/rails_root/script/performance/benchmarker +0 -3
  260. data/test/rails_root/script/performance/profiler +0 -3
  261. data/test/rails_root/script/plugin +0 -3
  262. data/test/rails_root/script/runner +0 -3
  263. data/test/rails_root/script/server +0 -3
data/init.rb DELETED
@@ -1 +0,0 @@
1
- require 'comfortable_mexican_sofa'
@@ -1,87 +0,0 @@
1
- module ActsAsCategorized
2
- module StubMethods
3
-
4
- def acts_as_categorized
5
-
6
- __categorized = self.to_s.underscore.to_sym
7
- __categorizations = "#{__categorized}_categorizations".to_sym
8
-
9
- # -- Attributes -------------------------------------------------------
10
- attr_accessor :attr_category_ids # hash that comes from the form
11
-
12
- # -- Relationships ----------------------------------------------------
13
- has_many __categorizations,
14
- :dependent => :destroy
15
- has_many :cms_categories,
16
- :through => __categorizations
17
-
18
- # -- Callbacks --------------------------------------------------------
19
- after_save :save_categorizations
20
-
21
- # -- Named Scopes -----------------------------------------------------
22
-
23
- named_scope :in_category, lambda { |category| {
24
- :joins => __categorizations,
25
- :conditions => { __categorizations => {:cms_category_id => (category.is_a?(CmsCategory) ? category.id : category) } }
26
- }}
27
-
28
- # -- Instance Methods -------------------------------------------------
29
- define_method :save_categorizations do
30
- return if attr_category_ids.blank?
31
-
32
- category_ids_to_remove = attr_category_ids.select{ |k, v| v.to_i == 0}.collect{|k, v| k }
33
- category_ids_to_create = attr_category_ids.select{ |k, v| v.to_i == 1}.collect{|k, v| k }
34
-
35
- # removing unchecked categories
36
- send(__categorizations).all(:conditions => { :cms_category_id => category_ids_to_remove}).collect(&:destroy)
37
-
38
- # creating categorizations
39
- category_ids_to_create.each do |category_id|
40
- send(__categorizations).create(:cms_category_id => category_id)
41
- end
42
- end
43
- end
44
-
45
- def acts_as_categorization
46
-
47
- __categorized = self.to_s.underscore.gsub('_categorization', '').to_sym
48
- __categorized_id = "#{__categorized}_id".to_sym
49
- __categorizations = "#{__categorized}_categorizations".to_sym
50
-
51
- # -- Relationships --------------------------------------------------------
52
- belongs_to __categorized.to_sym
53
- belongs_to :cms_category
54
-
55
- # -- Validations ----------------------------------------------------------
56
- validates_presence_of __categorized_id,
57
- :cms_category_id
58
-
59
- validates_uniqueness_of __categorized_id, :scope => :cms_category_id
60
-
61
- # -- AR Callbacks ---------------------------------------------------------
62
- after_save :create_parent_categorization
63
- after_destroy :destroy_children_categorizations
64
-
65
- # -- Instance Methods -----------------------------------------------------
66
- define_method :create_parent_categorization do
67
- return unless cms_category.parent
68
-
69
- params = {
70
- :cms_category_id => cms_category.parent_id,
71
- __categorized_id => send(__categorized).id
72
- }
73
- self.class.create!(params) unless self.class.exists?(params)
74
- end
75
-
76
- define_method :destroy_children_categorizations do
77
- return if cms_category.children.blank?
78
-
79
- cms_category.children.each do |c|
80
- send(__categorized).send(__categorizations).first(:conditions => {"cms_category_id" => c.id }).try(:destroy)
81
- end
82
- end
83
- end
84
- end
85
- end
86
-
87
- ActiveRecord::Base.extend(ActsAsCategorized::StubMethods)
@@ -1,60 +0,0 @@
1
- module ActsAsPublished
2
- module StubMethods
3
- def acts_as_published
4
-
5
- extend ClassMethods
6
- include InstanceMethods
7
-
8
- named_scope :published, lambda { |*at_time| {
9
- :conditions => published_find_conditions(*at_time)
10
- }}
11
- named_scope :unpublished, lambda { |*at_time| {
12
- :conditions => unpublished_find_conditions(*at_time)
13
- }}
14
- end
15
- end
16
-
17
- module ClassMethods
18
- def published_find_conditions(at_time = Time.now.utc)
19
- [ "(#{self.table_name}.published_at IS NOT NULL AND #{self.table_name}.published_at <= ?)
20
- AND
21
- (#{self.table_name}.unpublished_at IS NULL OR #{self.table_name}.unpublished_at > ?)",
22
- at_time, at_time
23
- ]
24
- end
25
-
26
- def unpublished_find_conditions(at_time = Time.now.utc)
27
- [ "(#{self.table_name}.published_at IS NULL OR #{self.table_name}.published_at > ?)
28
- AND
29
- (#{self.table_name}.unpublished_at IS NULL OR #{self.table_name}.unpublished_at <= ?)",
30
- at_time, at_time
31
- ]
32
- end
33
- end
34
-
35
- module InstanceMethods
36
-
37
- def is_published?(at_time = Time.now.utc)
38
- published_at && published_at <= at_time && !(unpublished_at && unpublished_at <= at_time)
39
- end
40
-
41
- def published_status
42
- is_published? ? "published" : "unpublished"
43
- end
44
-
45
- def publish!(at_time = Time.now.utc)
46
- update_attributes(
47
- :published_at => at_time,
48
- :unpublished_at => nil
49
- )
50
- end
51
-
52
- def unpublish!(at_time = Time.now.utc)
53
- update_attributes(
54
- :unpublished_at => at_time
55
- )
56
- end
57
- end
58
- end
59
-
60
- ActiveRecord::Base.extend(ActsAsPublished::StubMethods)
@@ -1,3 +0,0 @@
1
- class CmsTag::Attachment < CmsTag::Tag
2
-
3
- end
@@ -1,117 +0,0 @@
1
- class CmsTag::Block < CmsTag::Tag
2
-
3
- FORMAT = {
4
- :text => {
5
- :db_column => :content_text,
6
- :description => '',
7
- :form_output => lambda { |tag|
8
- tag.view.text_area_tag "cms_page[blocks][#{tag.label}][content_text]", tag.content,
9
- :rows => 20
10
- }
11
- },
12
- :string => {
13
- :db_column => :content_string,
14
- :description => '',
15
- :form_output => lambda { |tag|
16
- tag.view.text_field_tag "cms_page[blocks][#{tag.label}][content_string]", tag.content
17
- }
18
- },
19
- :rich_text => {
20
- :db_column => :content_text,
21
- :description => '',
22
- :form_output => lambda { |tag|
23
- tag.view.text_area_tag "cms_page[blocks][#{tag.label}][content_text]", tag.content,
24
- :rows => 20,
25
- :class => 'mceEditor'
26
- }
27
- },
28
- :code => {
29
- :db_column => :content_text,
30
- :description => '',
31
- :form_output => lambda { |tag|
32
- tag.view.content_tag :div, :class => 'codemirror' do
33
- tag.view.text_area_tag "cms_page[blocks][#{tag.label}][content_text]", tag.content,
34
- :rows => 20,
35
- :class => 'codeTextArea'
36
- end
37
- }
38
- },
39
- :integer => {
40
- :db_column => :content_integer,
41
- :description => '',
42
- :form_output => lambda { |tag|
43
- tag.view.text_field_tag "cms_page[blocks][#{tag.label}][content_integer]", tag.content
44
- }
45
- },
46
- :boolean => {
47
- :db_column => :content_boolean,
48
- :description => '',
49
- :form_output => lambda { |tag|
50
- tag.view.check_box_tag "cms_page[blocks][#{tag.label}][content_boolean]", tag.content
51
- }
52
- },
53
- :date => {
54
- :db_column => :content_datetime,
55
- :description => '',
56
- :form_output => lambda { |tag|
57
- tag.view.fields_for "cms_page[blocks][#{tag.label}]" do |field|
58
- field.date_select :content_datetime, :default => tag.content
59
- end
60
- }
61
- },
62
- :time => {
63
- :db_column => :content_datetime,
64
- :description => '',
65
- :form_output => lambda { |tag|
66
- tag.view.fields_for "cms_page[blocks][#{tag.label}]" do |field|
67
- field.datetime_select :content_datetime, :default => tag.content
68
- end
69
- }
70
- }
71
- }
72
-
73
- attr_accessor :format
74
-
75
- def self.regex
76
- /\{\{\s*?(cms_block:.*?)\s*?\}\}/
77
- end
78
-
79
- def regex
80
- /\{\{\s*?cms_block:#{Regexp.escape(label)}.*?\s*?\}\}/
81
- end
82
-
83
- def self.render_priority
84
- 1
85
- end
86
-
87
- def self.has_form?
88
- true
89
- end
90
-
91
- def assign_accessors
92
- tokens = self.tag_signature.split(':')
93
- self.label = tokens[1]
94
- self.format = tokens[2]
95
- end
96
-
97
- def form_label
98
- view.label_tag label.titleize
99
- end
100
-
101
- def form_input
102
- if FORMAT.has_key? self.format.to_sym
103
- FORMAT[self.format.to_sym][:form_output].call(self)
104
- else
105
- 'Unknown tag format'
106
- end
107
- end
108
-
109
- def content
110
- page && page.cms_block_content(self.label, FORMAT[self.format.to_sym][:db_column])
111
- end
112
-
113
- def render
114
- ''
115
- end
116
-
117
- end
@@ -1,3 +0,0 @@
1
- class CmsTag::Helper < CmsTag::Tag
2
-
3
- end
@@ -1,119 +0,0 @@
1
- class CmsTag::PageBlock < CmsTag::Tag
2
-
3
- FORMAT = {
4
- :text => {
5
- :db_column => :content_text,
6
- :description => '',
7
- :form_output => lambda { |tag|
8
- tag.view.text_area_tag "cms_page[blocks][#{tag.label}][content_text]", tag.content,
9
- :rows => 20
10
- }
11
- },
12
- :rich_text => {
13
- :db_column => :content_text,
14
- :description => '',
15
- :form_output => lambda { |tag|
16
- tag.view.text_area_tag "cms_page[blocks][#{tag.label}][content_text]", tag.content,
17
- :rows => 20,
18
- :class => 'mceEditor'
19
- }
20
- },
21
- :code => {
22
- :db_column => :content_text,
23
- :description => '',
24
- :form_output => lambda { |tag|
25
- tag.view.content_tag :div, :class => 'codemirror' do
26
- tag.view.text_area_tag "cms_page[blocks][#{tag.label}][content_text]", tag.content,
27
- :rows => 20,
28
- :class => 'codeTextArea'
29
- end
30
- }
31
- },
32
- :string => {
33
- :db_column => :content_string,
34
- :description => '',
35
- :form_output => lambda { |tag|
36
- tag.view.text_field_tag "cms_page[blocks][#{tag.label}][content_string]", tag.content
37
- }
38
- },
39
- :integer => {
40
- :db_column => :content_integer,
41
- :description => '',
42
- :form_output => lambda { |tag|
43
- tag.view.text_field_tag "cms_page[blocks][#{tag.label}][content_integer]", tag.content
44
- }
45
- },
46
- :boolean => {
47
- :db_column => :content_boolean,
48
- :description => '',
49
- :form_output => lambda { |tag|
50
- tag.view.check_box_tag "cms_page[blocks][#{tag.label}][content_boolean]", tag.content
51
- }
52
- },
53
- :date => {
54
- :db_column => :content_datetime,
55
- :description => '',
56
- :form_output => lambda { |tag|
57
- tag.view.fields_for "cms_page[blocks][#{tag.label}]" do |field|
58
- field.date_select :content_datetime, :default => tag.content
59
- end
60
- }
61
- },
62
- :time => {
63
- :db_column => :content_datetime,
64
- :description => '',
65
- :form_output => lambda { |tag|
66
- tag.view.fields_for "cms_page[blocks][#{tag.label}]" do |field|
67
- field.datetime_select :content_datetime, :default => tag.content
68
- end
69
- }
70
- }
71
- }
72
-
73
- attr_accessor :format
74
-
75
- def self.regex
76
- /\{\{\s*?(cms_page_block:.*?)\s*?\}\}/
77
- end
78
-
79
- def regex
80
- /\{\{\s*?cms_page_block:#{Regexp.escape(label)}.*?\s*?\}\}/
81
- end
82
-
83
- # this shold be the most important tag to render, but let's leave space
84
- # for some unforseen cases
85
- def self.render_priority
86
- 1
87
- end
88
-
89
- def self.has_form?
90
- true
91
- end
92
-
93
- def assign_accessors
94
- tokens = self.tag_signature.split(':')
95
- self.label = tokens[1]
96
- self.format = tokens[2]
97
- end
98
-
99
- def form_label
100
- view.label_tag label.titleize
101
- end
102
-
103
- def form_input
104
- if FORMAT.has_key? self.format.to_sym
105
- FORMAT[self.format.to_sym][:form_output].call(self)
106
- else
107
- 'Unknown tag format'
108
- end
109
- end
110
-
111
- def content
112
- page && page.cms_block_content(self.label, FORMAT[self.format.to_sym][:db_column])
113
- end
114
-
115
- def render
116
- content.to_s
117
- end
118
-
119
- end
@@ -1,19 +0,0 @@
1
- class CmsTag::Partial < CmsTag::Tag
2
-
3
- def self.regex
4
- /\{\{\s*?(cms_partial:.*?)\s*?\}\}/
5
- end
6
-
7
- def self.render_priority
8
- 3
9
- end
10
-
11
- def regex
12
- /\{\{\s*?cms_partial:#{Regexp.escape(label)}.*?\s*?\}\}/
13
- end
14
-
15
- def content
16
- "<%= render :partial => '#{self.label}' %>"
17
- end
18
-
19
- end
@@ -1,19 +0,0 @@
1
- class CmsTag::Snippet < CmsTag::Tag
2
-
3
- def self.regex
4
- /\{\{\s*?(cms_snippet:.*?)\s*?\}\}/
5
- end
6
-
7
- def self.render_priority
8
- 2
9
- end
10
-
11
- def regex
12
- /\{\{\s*?cms_snippet:#{Regexp.escape(label)}.*?\s*?\}\}/
13
- end
14
-
15
- def render
16
- CmsSnippet.content_for(label)
17
- end
18
-
19
- end
data/rails/init.rb DELETED
@@ -1 +0,0 @@
1
- require 'comfortable_mexican_sofa'
@@ -1,7 +0,0 @@
1
- attachment_category_1:
2
- cms_attachment: default
3
- cms_category: category_2
4
-
5
- attachment_category_2:
6
- cms_attachment: default
7
- cms_category: category_2_1