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
@@ -0,0 +1,26 @@
1
+ class CmsTag::FieldDateTime < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:field:(#{label}):datetime\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_datetime, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_datetime)
20
+ end
21
+
22
+ def render
23
+ ''
24
+ end
25
+
26
+ end
@@ -0,0 +1,26 @@
1
+ class CmsTag::FieldInteger < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:field:(#{label}):integer\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_integer, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_integer)
20
+ end
21
+
22
+ def render
23
+ ''
24
+ end
25
+
26
+ end
@@ -0,0 +1,26 @@
1
+ class CmsTag::FieldString < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:field:(#{label}):?(?:string)?\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_string, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_string)
20
+ end
21
+
22
+ def render
23
+ ''
24
+ end
25
+
26
+ end
@@ -0,0 +1,26 @@
1
+ class CmsTag::FieldText < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*?cms:field:(#{label}):?(?:text)?\s*?\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_text, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_text)
20
+ end
21
+
22
+ def render
23
+ ''
24
+ end
25
+
26
+ end
@@ -0,0 +1,22 @@
1
+ class CmsTag::PageDateTime < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:page:(#{label}):datetime\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_datetime, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_datetime)
20
+ end
21
+
22
+ end
@@ -0,0 +1,22 @@
1
+ class CmsTag::PageInteger < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:page:(#{label}):integer\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_integer, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_integer)
20
+ end
21
+
22
+ end
@@ -0,0 +1,22 @@
1
+ class CmsTag::PageString < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:page:(#{label}):string\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_string, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_string)
20
+ end
21
+
22
+ end
@@ -0,0 +1,22 @@
1
+ class CmsTag::PageText < CmsBlock
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:page:(#{label}):?(?:text)?\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content=(value)
15
+ write_attribute(:content_text, value)
16
+ end
17
+
18
+ def content
19
+ read_attribute(:content_text)
20
+ end
21
+
22
+ end
@@ -0,0 +1,20 @@
1
+ class CmsTag::Partial
2
+
3
+ attr_accessor :label
4
+
5
+ include CmsTag
6
+
7
+ def self.regex_tag_signature(label = nil)
8
+ label ||= /[\w\/]+/
9
+ /<\s*cms:partial:(#{label})\s*\/?>/
10
+ end
11
+
12
+ def regex_tag_signature
13
+ self.class.regex_tag_signature(label)
14
+ end
15
+
16
+ def content
17
+ "<%= render :partial => '#{label}' %>"
18
+ end
19
+
20
+ end
@@ -0,0 +1,18 @@
1
+ class CmsTag::Snippet < CmsSnippet
2
+
3
+ include CmsTag
4
+
5
+ def self.regex_tag_signature(label = nil)
6
+ label ||= /\w+/
7
+ /<\s*cms:snippet:(#{label})\s*\/?>/
8
+ end
9
+
10
+ def regex_tag_signature
11
+ self.class.regex_tag_signature(label)
12
+ end
13
+
14
+ def content
15
+ self.read_attribute(:content)
16
+ end
17
+
18
+ end
@@ -10,23 +10,3 @@
10
10
  |_| |_|\___/_/\_\_|\___\__,_|_| |_| |____/ \___/|_| \__,_|
11
11
 
12
12
  Hey, thanks for being AWESOME!
13
-
14
- Please make sure you got following in your environment.rb file:
15
-
16
- config.gem 'haml'
17
- config.gem 'calendar_date_select'
18
- config.gem 'thoughtbot-paperclip', :lib => 'paperclip'
19
- config.gem 'mislav-will_paginate', :lib => 'will_paginate'
20
- config.gem 'active_link_helper'
21
-
22
- config.gem 'comfortable_mexican_sofa'
23
-
24
- Be sure to check out config/initializers/cms.rb for configuration options!
25
-
26
- Some other things you may want to install if you want some fancy textarea
27
- replacements:
28
-
29
- TinyMCE Editor - http://tinymce.moxiecode.com/
30
- CodeMirror - http://marijn.haverbeke.nl/codemirror/
31
-
32
-
@@ -0,0 +1,28 @@
1
+ class CmsGenerator < Rails::Generators::Base
2
+
3
+ include Rails::Generators::Migration
4
+ include Thor::Actions
5
+
6
+ source_root File.expand_path('../../..', __FILE__)
7
+
8
+ def generate_migration
9
+ migration_template 'db/migrate/01_create_cms.rb', 'db/migrate/create_cms.rb'
10
+ end
11
+
12
+ def generate_public_assets
13
+ directory 'public/stylesheets/comfortable_mexican_sofa', 'public/stylesheets/comfortable_mexican_sofa'
14
+ directory 'public/javascripts/comfortable_mexican_sofa', 'public/javascripts/comfortable_mexican_sofa'
15
+ directory 'public/images/comfortable_mexican_sofa', 'public/images/comfortable_mexican_sofa'
16
+ end
17
+
18
+ def show_readme
19
+ readme 'lib/generators/README'
20
+ end
21
+
22
+ def self.next_migration_number(dirname)
23
+ orm = Rails.configuration.generators.options[:rails][:orm]
24
+ require "rails/generators/#{orm}"
25
+ "#{orm.to_s.camelize}::Generators::Base".constantize.next_migration_number(dirname)
26
+ end
27
+
28
+ end
data/public/404.html ADDED
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
data/public/422.html ADDED
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
data/public/500.html ADDED
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
24
+ </div>
25
+ </body>
26
+ </html>
File without changes
@@ -0,0 +1,53 @@
1
+ $.CMS = function(){
2
+ var current_path = window.location.pathname;
3
+
4
+ $(document).ready(function(){
5
+ // Slugify
6
+ $('input#slugify').bind('keyup.cms', function() {
7
+ $('input#slug').val( $.CMS.slugify( $(this).val() ) );
8
+ });
9
+
10
+ // Expand/Collapse tree function
11
+ $('a.tree_toggle').bind('click.cms', function() {
12
+ $(this).siblings('ul').toggle();
13
+ $(this).toggleClass('closed');
14
+ // object_id are set in the helper (check cms_helper.rb)
15
+ $.ajax({url: [current_path, object_id, 'toggle'].join('/')});
16
+ });
17
+
18
+ // Show/hide details
19
+ $('a.details_toggle').bind('click.cms', function() {
20
+ $(this).parent().siblings('table.details').toggle();
21
+ });
22
+
23
+ // Sortable trees
24
+ $('ul.sortable').each(function(){
25
+ $(this).sortable({ handle: 'div.dragger',
26
+ update: function() {
27
+ $.post(current_path + '/reorder', '_method=put&'+$(this).sortable('serialize'));
28
+ }
29
+ })
30
+ });
31
+
32
+ // Load Page Blocks on layout change
33
+ $('select#cms_page_cms_layout_id').bind('change.cms', function() {
34
+ $.ajax({url: ['/cms-admin/pages', $(this).attr('data-page-id'), 'form_blocks'].join('/'), data: ({ layout_id: $(this).val()})})
35
+ })
36
+
37
+ }); // End $(document).ready()
38
+
39
+
40
+
41
+ return {
42
+ slugify: function(str){
43
+ str = str.replace(/^\s+|\s+$/g, '');
44
+ var from = "ÀÁÄÂÈÉËÊÌÍÏÎÒÓÖÔÙÚÜÛàáäâèéëêìíïîòóöôùúüûÑñÇç·/_,:;";
45
+ var to = "aaaaeeeeiiiioooouuuuaaaaeeeeiiiioooouuuunncc------";
46
+ for (var i=0, l=from.length ; i<l ; i++) {
47
+ str = str.replace(new RegExp(from[i], "g"), to[i]);
48
+ }
49
+ str = str.replace(/[^a-zA-Z0-9 -]/g, '').replace(/\s+/g, '-').toLowerCase();
50
+ return str;
51
+ }
52
+ }
53
+ }();