browsercms 3.5.7 → 4.0.0.alpha

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 (523) hide show
  1. checksums.yaml +7 -0
  2. data/COPYRIGHT.txt +2 -1
  3. data/README.markdown +3 -3
  4. data/app/assets/fonts/icomoon.dev.svg +61 -0
  5. data/app/assets/fonts/icomoon.eot +0 -0
  6. data/app/assets/fonts/icomoon.svg +61 -0
  7. data/app/assets/fonts/icomoon.ttf +0 -0
  8. data/app/assets/fonts/icomoon.woff +0 -0
  9. data/app/assets/images/ckeditor/plugins/delete_content/icons/deletecontent.png +0 -0
  10. data/app/assets/images/ckeditor/plugins/edit_content/icons/editcontent.png +0 -0
  11. data/app/assets/images/ckeditor/plugins/move_content/icons/movecontentdown.png +0 -0
  12. data/app/assets/images/ckeditor/plugins/move_content/icons/movecontentup.png +0 -0
  13. data/app/assets/images/cms/arrow-down.png +0 -0
  14. data/app/assets/images/cms/arrow-up.png +0 -0
  15. data/app/assets/images/cms/cogs.png +0 -0
  16. data/app/assets/images/cms/dashboard/home.png +0 -0
  17. data/app/assets/images/cms/home.png +0 -0
  18. data/app/assets/images/cms/logo.png +0 -0
  19. data/app/assets/images/cms/pencil.png +0 -0
  20. data/app/assets/images/cms/plus.png +0 -0
  21. data/app/assets/images/cms/user.png +0 -0
  22. data/app/assets/javascripts/bcms/ckeditor_inline.js +23 -0
  23. data/app/assets/javascripts/bcms/ckeditor_standard_config.js +1 -1
  24. data/app/assets/javascripts/ckeditor/plugins/delete_content/plugin.js +36 -0
  25. data/app/assets/javascripts/ckeditor/plugins/edit_content/plugin.js +24 -0
  26. data/app/assets/javascripts/ckeditor/plugins/move_content/plugin.js +25 -0
  27. data/app/assets/javascripts/cms/ajax.js +60 -0
  28. data/app/assets/javascripts/cms/application.js +6 -1
  29. data/app/assets/javascripts/cms/attachment_manager.js.erb +3 -10
  30. data/app/assets/javascripts/cms/content_library.js +31 -12
  31. data/app/assets/javascripts/cms/core_library.js.erb +68 -36
  32. data/app/assets/javascripts/cms/form_builder.js +250 -0
  33. data/app/assets/javascripts/cms/namespace.js +2 -0
  34. data/app/assets/javascripts/cms/new_content_button.js +27 -0
  35. data/app/assets/javascripts/cms/page_editor.js +188 -0
  36. data/app/assets/javascripts/cms/page_toolbar.js +13 -0
  37. data/app/assets/javascripts/cms/site.js +2 -0
  38. data/app/assets/javascripts/cms/sitemap.js +219 -0
  39. data/app/assets/javascripts/cms/toolbar.js +17 -1
  40. data/app/assets/javascripts/cms/user.js +40 -0
  41. data/app/assets/javascripts/jquery.exists.js +5 -0
  42. data/app/assets/javascripts/jquery.taglist.js +37 -23
  43. data/app/assets/stylesheets/cms/_assets.css.scss +55 -0
  44. data/app/assets/stylesheets/cms/_base.css.scss +42 -0
  45. data/app/assets/stylesheets/cms/_cms-buttons.css.scss +73 -0
  46. data/app/assets/stylesheets/cms/_cms-forms.css.scss +70 -0
  47. data/app/assets/stylesheets/cms/_colors.css.scss +20 -0
  48. data/app/assets/stylesheets/cms/_dashboard.css.scss +25 -0
  49. data/app/assets/stylesheets/cms/_glyph.css.scss +60 -0
  50. data/app/assets/stylesheets/cms/_main-area.css.scss +62 -0
  51. data/app/assets/stylesheets/cms/_nav.css.scss +197 -0
  52. data/app/assets/stylesheets/cms/_sidebar.css.scss +64 -0
  53. data/app/assets/stylesheets/cms/_sitemap.css.scss +196 -0
  54. data/app/assets/stylesheets/cms/_submenu.css.scss +48 -0
  55. data/app/assets/stylesheets/cms/application.css.scss +49 -0
  56. data/app/assets/stylesheets/cms/core.css.scss +96 -0
  57. data/app/assets/stylesheets/cms/default-forms.css.scss +3 -0
  58. data/app/assets/stylesheets/cms/includes/_animation.css.scss +2 -0
  59. data/app/assets/stylesheets/cms/includes/_rem.css.scss +120 -0
  60. data/app/assets/stylesheets/cms/includes/animation/_animate.css.scss +31 -0
  61. data/app/assets/stylesheets/cms/includes/animation/_core.css.scss +127 -0
  62. data/app/assets/stylesheets/cms/includes/animation/_shared.css.scss +22 -0
  63. data/app/assets/stylesheets/cms/includes/animation/animate/_attention-seekers.css.scss +152 -0
  64. data/app/assets/stylesheets/cms/includes/animation/animate/_bouncing.css.scss +3 -0
  65. data/app/assets/stylesheets/cms/includes/animation/animate/_classes.css.scss +21 -0
  66. data/app/assets/stylesheets/cms/includes/animation/animate/_fading.css.scss +3 -0
  67. data/app/assets/stylesheets/cms/includes/animation/animate/_flippers.css.scss +87 -0
  68. data/app/assets/stylesheets/cms/includes/animation/animate/_lightspeed.css.scss +24 -0
  69. data/app/assets/stylesheets/cms/includes/animation/animate/_rotating.css.scss +3 -0
  70. data/app/assets/stylesheets/cms/includes/animation/animate/_specials.css.scss +42 -0
  71. data/app/assets/stylesheets/cms/includes/animation/animate/bouncing/_bouncing-entrances.css.scss +68 -0
  72. data/app/assets/stylesheets/cms/includes/animation/animate/bouncing/_bouncing-exits.css.scss +60 -0
  73. data/app/assets/stylesheets/cms/includes/animation/animate/fading/_fading-entrances.css.scss +86 -0
  74. data/app/assets/stylesheets/cms/includes/animation/animate/fading/_fading-exits.css.scss +86 -0
  75. data/app/assets/stylesheets/cms/includes/animation/animate/rotating/_rotating-entrances.css.scss +58 -0
  76. data/app/assets/stylesheets/cms/includes/animation/animate/rotating/_rotating-exits.css.scss +58 -0
  77. data/app/assets/stylesheets/cms/page_content_editing.css.scss +4 -0
  78. data/app/assets/stylesheets/cms/page_editor.css.scss +4 -0
  79. data/app/assets/stylesheets/cms/style.css.scss +138 -0
  80. data/app/assets/stylesheets/cms/styles/_alerts.css.scss +150 -0
  81. data/app/assets/stylesheets/cms/styles/_base-grid.css.scss +299 -0
  82. data/app/assets/stylesheets/cms/styles/_buttons.css.scss +247 -0
  83. data/app/assets/stylesheets/cms/styles/_dropdown.css.scss +155 -0
  84. data/app/assets/stylesheets/cms/styles/_forms.css.scss +728 -0
  85. data/app/assets/stylesheets/cms/styles/_glyph.css.scss +86 -0
  86. data/app/assets/stylesheets/cms/styles/_images.css.scss +75 -0
  87. data/app/assets/stylesheets/cms/styles/_lists.css.scss +115 -0
  88. data/app/assets/stylesheets/cms/styles/_modal.css.scss +174 -0
  89. data/app/assets/stylesheets/cms/styles/_progress.css.scss +43 -0
  90. data/app/assets/stylesheets/cms/styles/_tables.css.scss +141 -0
  91. data/app/assets/stylesheets/cms/styles/_text.css.scss +134 -0
  92. data/app/controllers/cms/application_controller.rb +3 -68
  93. data/app/controllers/cms/attachments_controller.rb +5 -5
  94. data/app/controllers/cms/base_controller.rb +20 -13
  95. data/app/controllers/cms/cache_controller.rb +16 -17
  96. data/app/controllers/cms/category_types_controller.rb +6 -1
  97. data/app/controllers/cms/connectors_controller.rb +12 -7
  98. data/app/controllers/cms/content_block_controller.rb +128 -71
  99. data/app/controllers/cms/content_controller.rb +54 -56
  100. data/app/controllers/cms/dashboard_controller.rb +5 -6
  101. data/app/controllers/cms/dynamic_views_controller.rb +12 -9
  102. data/app/controllers/cms/email_messages_controller.rb +18 -13
  103. data/app/controllers/cms/form_entries_controller.rb +119 -0
  104. data/app/controllers/cms/form_fields_controller.rb +74 -0
  105. data/app/controllers/cms/forms_controller.rb +35 -0
  106. data/app/controllers/cms/groups_controller.rb +13 -16
  107. data/app/controllers/cms/html_blocks_controller.rb +2 -2
  108. data/app/controllers/cms/inline_content_controller.rb +48 -0
  109. data/app/controllers/cms/links_controller.rb +58 -46
  110. data/app/controllers/cms/page_components_controller.rb +20 -0
  111. data/app/controllers/cms/page_routes_controller.rb +44 -40
  112. data/app/controllers/cms/pages_controller.rb +111 -97
  113. data/app/controllers/cms/passwords_controller.rb +17 -0
  114. data/app/controllers/cms/portlet_controller.rb +0 -1
  115. data/app/controllers/cms/portlets_controller.rb +20 -27
  116. data/app/controllers/cms/redirects_controller.rb +13 -9
  117. data/app/controllers/cms/resource_controller.rb +15 -4
  118. data/app/controllers/cms/routes_controller.rb +2 -4
  119. data/app/controllers/cms/section_nodes_controller.rb +6 -37
  120. data/app/controllers/cms/sections_controller.rb +13 -8
  121. data/app/controllers/cms/sessions_controller.rb +8 -66
  122. data/app/controllers/cms/sites/passwords_controller.rb +27 -0
  123. data/app/controllers/cms/sites/sessions_controller.rb +20 -0
  124. data/app/controllers/cms/tags_controller.rb +12 -12
  125. data/app/controllers/cms/tasks_controller.rb +45 -46
  126. data/app/controllers/cms/user_controller.rb +8 -0
  127. data/app/controllers/cms/users_controller.rb +91 -68
  128. data/app/helpers/cms/application_helper.rb +58 -52
  129. data/app/helpers/cms/content_block_helper.rb +8 -7
  130. data/app/helpers/cms/form_tag_helper.rb +21 -25
  131. data/app/helpers/cms/menu_helper.rb +1 -3
  132. data/app/helpers/cms/mobile_helper.rb +12 -2
  133. data/app/helpers/cms/nav_menu_helper.rb +23 -0
  134. data/app/helpers/cms/page_helper.rb +72 -30
  135. data/app/helpers/cms/path_helper.rb +46 -70
  136. data/app/helpers/cms/rendering_helper.rb +68 -12
  137. data/app/helpers/cms/section_nodes_helper.rb +92 -31
  138. data/app/helpers/cms/sites/authentication_helper.rb +25 -0
  139. data/app/helpers/cms/sites/devise_shim_helper.rb +31 -0
  140. data/app/helpers/cms/template_support.rb +1 -7
  141. data/app/helpers/cms/ui_elements_helper.rb +147 -6
  142. data/app/helpers/forgot_password_portlet_helper.rb +9 -0
  143. data/app/helpers/login_portlet_helper.rb +10 -0
  144. data/app/inputs/attachments_input.rb +14 -0
  145. data/app/inputs/cms_text_area_input.rb +10 -0
  146. data/app/inputs/cms_text_field_input.rb +29 -0
  147. data/app/inputs/date_picker_input.rb +8 -0
  148. data/app/inputs/file_picker_input.rb +75 -0
  149. data/app/inputs/path_input.rb +18 -0
  150. data/app/inputs/tag_list_input.rb +3 -0
  151. data/app/inputs/template_editor_input.rb +24 -0
  152. data/app/inputs/text_editor_input.rb +19 -0
  153. data/app/models/cms/abstract_file_block.rb +10 -6
  154. data/app/models/cms/attachment.rb +20 -27
  155. data/app/models/cms/category.rb +17 -7
  156. data/app/models/cms/category_type.rb +8 -4
  157. data/app/models/cms/connector.rb +32 -20
  158. data/app/models/cms/content.rb +31 -0
  159. data/app/models/cms/content_type.rb +114 -62
  160. data/app/models/cms/dynamic_view.rb +19 -45
  161. data/app/models/cms/email_message.rb +32 -2
  162. data/app/models/cms/external_user.rb +60 -0
  163. data/app/models/cms/file_block.rb +1 -0
  164. data/app/models/cms/form.rb +47 -0
  165. data/app/models/cms/form_entry.rb +71 -0
  166. data/app/models/cms/form_field.rb +78 -0
  167. data/app/models/cms/group.rb +19 -9
  168. data/app/models/cms/group_permission.rb +1 -1
  169. data/app/models/cms/group_section.rb +1 -1
  170. data/app/models/cms/group_type.rb +5 -5
  171. data/app/models/cms/group_type_permission.rb +1 -1
  172. data/app/models/cms/html_block.rb +14 -19
  173. data/app/models/cms/image_block.rb +1 -0
  174. data/app/models/cms/link.rb +8 -6
  175. data/app/models/cms/page.rb +156 -59
  176. data/app/models/cms/page_component.rb +43 -0
  177. data/app/models/cms/page_partial.rb +16 -8
  178. data/app/models/cms/page_route.rb +1 -1
  179. data/app/models/cms/page_route_condition.rb +1 -1
  180. data/app/models/cms/page_route_option.rb +1 -1
  181. data/app/models/cms/page_route_requirement.rb +1 -1
  182. data/app/models/cms/page_template.rb +14 -9
  183. data/app/models/cms/permission.rb +4 -2
  184. data/app/models/cms/persistent_user.rb +208 -0
  185. data/app/models/cms/portlet.rb +56 -9
  186. data/app/models/cms/redirect.rb +1 -1
  187. data/app/models/cms/search_filter.rb +18 -0
  188. data/app/models/cms/section.rb +39 -28
  189. data/app/models/cms/section_node.rb +32 -5
  190. data/app/models/cms/site.rb +3 -3
  191. data/app/models/cms/tag.rb +14 -12
  192. data/app/models/cms/tagging.rb +2 -2
  193. data/app/models/cms/task.rb +14 -21
  194. data/app/models/cms/templates.rb +1 -2
  195. data/app/models/cms/user.rb +21 -160
  196. data/app/models/cms/user_group_membership.rb +2 -2
  197. data/app/portlets/deprecated_placeholder.rb +12 -0
  198. data/app/portlets/dynamic_portlet.rb +1 -1
  199. data/app/portlets/email_page_portlet.rb +10 -3
  200. data/app/portlets/forgot_password_portlet.rb +9 -28
  201. data/app/portlets/login_portlet.rb +8 -5
  202. data/app/portlets/tag_cloud_portlet.rb +3 -1
  203. data/app/presenters/cms/user_presenter.rb +24 -0
  204. data/app/views/cms/application/_add_content_modal.html.erb +3 -0
  205. data/app/views/cms/application/_buttons.html.erb +7 -0
  206. data/app/views/cms/{shared → application}/_exception.html.erb +0 -0
  207. data/app/views/cms/application/_form_errors.html.erb +7 -0
  208. data/app/views/cms/application/_form_with_buttons.html.erb +10 -0
  209. data/app/views/cms/application/_main_content.html.erb +3 -0
  210. data/app/views/cms/application/_main_with_sidebar.html.erb +8 -0
  211. data/app/views/cms/application/_mobile_toolbar.html.erb +16 -0
  212. data/app/views/cms/application/_page_title.html.erb +5 -0
  213. data/app/views/cms/application/_pagination.html.erb +26 -0
  214. data/app/views/cms/application/_row.html.erb +1 -0
  215. data/app/views/cms/application/_save_buttons.html.erb +7 -0
  216. data/app/views/cms/application/_sidebar_layout.html.erb +3 -0
  217. data/app/views/cms/application/_version.html.erb +23 -0
  218. data/app/views/cms/{shared → application}/_version_conflict_diff.html.erb +0 -0
  219. data/app/views/cms/{shared → application}/_version_conflict_error.html.erb +0 -0
  220. data/app/views/cms/attachments/_attachment_manager.html.erb +22 -0
  221. data/app/views/cms/attachments/_no_attachments_defined.html.erb +1 -0
  222. data/app/views/cms/cache/show.html.erb +5 -10
  223. data/app/views/cms/categories/_form.html.erb +15 -24
  224. data/app/views/cms/category_types/_form.html.erb +1 -1
  225. data/app/views/cms/connectors/new.html.erb +33 -64
  226. data/app/views/cms/content/editing_frame.html.erb +1 -0
  227. data/app/views/cms/content/no_page.html.erb +9 -27
  228. data/app/views/cms/content/show.html.erb +14 -15
  229. data/app/views/cms/content_block/_block_form.html.erb +15 -0
  230. data/app/views/cms/content_block/_buttonbar.html.erb +29 -0
  231. data/app/views/cms/content_block/_buttons.html.erb +13 -0
  232. data/app/views/cms/content_block/_hidden_fields.html.erb +13 -0
  233. data/app/views/cms/content_block/_sidebar.html.erb +35 -0
  234. data/app/views/cms/content_block/edit.html.erb +3 -0
  235. data/app/views/cms/content_block/index.html.erb +87 -0
  236. data/app/views/cms/content_block/new.html.erb +3 -0
  237. data/app/views/cms/content_block/render_block_in_main_container.html.erb +10 -0
  238. data/app/views/cms/content_block/show.html.erb +1 -0
  239. data/app/views/cms/content_block/show_in_isolation.html.erb +15 -0
  240. data/app/views/cms/content_block/versions.html.erb +24 -0
  241. data/app/views/cms/dashboard/_page_drafts.html.erb +12 -22
  242. data/app/views/cms/dashboard/_tasks.html.erb +32 -45
  243. data/app/views/cms/dashboard/index.html.erb +11 -13
  244. data/app/views/cms/dynamic_views/_form.html.erb +8 -10
  245. data/app/views/cms/dynamic_views/edit.html.erb +2 -3
  246. data/app/views/cms/dynamic_views/index.html.erb +22 -44
  247. data/app/views/cms/dynamic_views/new.html.erb +2 -3
  248. data/app/views/cms/email_messages/index.html.erb +31 -34
  249. data/app/views/cms/email_messages/show.html.erb +45 -52
  250. data/app/views/cms/file_blocks/_form.html.erb +2 -4
  251. data/app/views/cms/form_entries/_buttons.html.erb +2 -0
  252. data/app/views/cms/form_entries/_form.html.erb +7 -0
  253. data/app/views/cms/form_entries/_internal_form.html.erb +9 -0
  254. data/app/views/cms/form_entries/edit.html.erb +5 -0
  255. data/app/views/cms/form_entries/error.html.erb +3 -0
  256. data/app/views/cms/form_entries/index.html.erb +4 -0
  257. data/app/views/cms/form_entries/new.html.erb +5 -0
  258. data/app/views/cms/form_entries/show.html.erb +13 -0
  259. data/app/views/cms/form_entries/submit.html.erb +1 -0
  260. data/app/views/cms/form_fields/_form.html.erb +8 -0
  261. data/app/views/cms/form_fields/_select.html.erb +3 -0
  262. data/app/views/cms/form_fields/_text_area.html.erb +3 -0
  263. data/app/views/cms/form_fields/_text_field.html.erb +3 -0
  264. data/app/views/cms/form_fields/edit.html.erb +0 -0
  265. data/app/views/cms/form_fields/new.html.erb +26 -0
  266. data/app/views/cms/form_fields/preview.html.erb +16 -0
  267. data/app/views/cms/forms/_form.html.erb +66 -0
  268. data/app/views/cms/forms/render.html.erb +15 -0
  269. data/app/views/cms/forms/show.html.erb +6 -0
  270. data/app/views/cms/groups/_form.html.erb +32 -38
  271. data/app/views/cms/groups/_permissions.html.erb +11 -34
  272. data/app/views/cms/groups/_sections.html.erb +11 -17
  273. data/app/views/cms/groups/edit.html.erb +1 -3
  274. data/app/views/cms/groups/index.html.erb +10 -32
  275. data/app/views/cms/groups/new.html.erb +2 -4
  276. data/app/views/cms/html_blocks/_form.html.erb +2 -2
  277. data/app/views/cms/html_blocks/render.html.erb +1 -1
  278. data/app/views/cms/image_blocks/_form.html.erb +3 -3
  279. data/app/views/cms/links/_form.html.erb +6 -11
  280. data/app/views/cms/links/edit.html.erb +3 -12
  281. data/app/views/cms/links/new.html.erb +4 -13
  282. data/app/views/cms/page_components/_content.html.erb +18 -0
  283. data/app/views/cms/page_components/new.html.erb +12 -0
  284. data/app/views/cms/page_routes/_form.html.erb +11 -10
  285. data/app/views/cms/page_routes/edit.html.erb +2 -3
  286. data/app/views/cms/page_routes/index.html.erb +25 -48
  287. data/app/views/cms/page_routes/new.html.erb +2 -3
  288. data/app/views/cms/pages/_edit_content.html.erb +28 -0
  289. data/app/views/cms/pages/_form.html.erb +20 -37
  290. data/app/views/cms/pages/_main_form.html.erb +23 -0
  291. data/app/views/cms/pages/_simple_container.html.erb +8 -0
  292. data/app/views/cms/pages/edit.html.erb +2 -23
  293. data/app/views/cms/pages/new.html.erb +2 -16
  294. data/app/views/cms/pages/versions.html.erb +18 -87
  295. data/app/views/cms/redirects/_form.html.erb +6 -14
  296. data/app/views/cms/redirects/edit.html.erb +2 -3
  297. data/app/views/cms/redirects/index.html.erb +24 -50
  298. data/app/views/cms/redirects/new.html.erb +2 -3
  299. data/app/views/cms/routes/index.html.erb +15 -20
  300. data/app/views/cms/section_nodes/_children.html.erb +3 -0
  301. data/app/views/cms/section_nodes/_row_buttons.html.erb +11 -0
  302. data/app/views/cms/section_nodes/_section_node.html.erb +24 -10
  303. data/app/views/cms/section_nodes/_sitemap_buttons.html.erb +47 -0
  304. data/app/views/cms/section_nodes/_status.html.erb +5 -0
  305. data/app/views/cms/section_nodes/show.html.erb +9 -0
  306. data/app/views/cms/sections/_buttons.html.erb +6 -0
  307. data/app/views/cms/sections/_form.html.erb +22 -49
  308. data/app/views/cms/sections/edit.html.erb +3 -8
  309. data/app/views/cms/sections/new.html.erb +4 -20
  310. data/app/views/cms/sessions/new.html.erb +16 -31
  311. data/app/views/cms/shared/access_denied.html.erb +1 -2
  312. data/app/views/cms/shared/error.html.erb +5 -5
  313. data/app/views/cms/sites/_flash.html.erb +8 -0
  314. data/app/views/cms/sites/passwords/new.html.erb +2 -0
  315. data/app/views/cms/sites/sessions/new.html.erb +2 -0
  316. data/app/views/cms/tags/_form.html.erb +1 -1
  317. data/app/views/cms/tags/render.html.erb +0 -1
  318. data/app/views/cms/tasks/new.html.erb +18 -32
  319. data/app/views/cms/toolbar/_new_pages_menu.html.erb +10 -0
  320. data/app/views/cms/users/_form.html.erb +8 -11
  321. data/app/views/cms/users/_password.html.erb +2 -8
  322. data/app/views/cms/users/_user_fields.html.erb +7 -20
  323. data/app/views/cms/users/change_password.html.erb +12 -21
  324. data/app/views/cms/users/edit.html.erb +1 -15
  325. data/app/views/cms/users/index.html.erb +61 -58
  326. data/app/views/cms/users/new.html.erb +1 -12
  327. data/app/views/devise/confirmations/new.html.erb +16 -0
  328. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  329. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  330. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  331. data/app/views/devise/passwords/edit.html.erb +19 -0
  332. data/app/views/devise/passwords/new.html.erb +15 -0
  333. data/app/views/devise/registrations/edit.html.erb +28 -0
  334. data/app/views/devise/registrations/new.html.erb +18 -0
  335. data/app/views/devise/shared/_links.erb +25 -0
  336. data/app/views/devise/unlocks/new.html.erb +16 -0
  337. data/app/views/layouts/cms/_content_types.html.erb +13 -0
  338. data/app/views/layouts/cms/_footer.erb +2 -2
  339. data/app/views/layouts/cms/_head.html.erb +8 -18
  340. data/app/views/layouts/cms/_main_menu.html.erb +78 -0
  341. data/app/views/layouts/cms/application.html.erb +19 -24
  342. data/app/views/layouts/cms/content_page.html.erb +5 -0
  343. data/app/views/layouts/cms/page_editor.html.erb +90 -0
  344. data/app/views/portlets/deprecated_placeholders/_form.html.erb +1 -0
  345. data/app/views/portlets/deprecated_placeholders/render.html.erb +8 -0
  346. data/app/views/portlets/dynamic/_form.html.erb +3 -3
  347. data/app/views/portlets/email_page/_form.html.erb +5 -6
  348. data/app/views/portlets/forgot_password/_form.html.erb +2 -3
  349. data/app/views/portlets/forgot_password/render.html.erb +2 -14
  350. data/app/views/portlets/login/_form.html.erb +4 -6
  351. data/app/views/portlets/login/render.html.erb +8 -27
  352. data/app/views/portlets/portlets/_form.html.erb +7 -6
  353. data/app/views/portlets/tag_cloud/_form.html.erb +4 -4
  354. data/app/views/tests/pretend/open_with_layout.html.erb +1 -1
  355. data/bin/bcms +13 -16
  356. data/config/routes.rb +58 -29
  357. data/db/browsercms.seeds.rb +0 -6
  358. data/db/migrate/{20080815014337_browsercms_3_0_0.rb → 20080815014337_browsercms300.rb} +94 -73
  359. data/db/migrate/20130327184912_browsercms400.rb +90 -0
  360. data/db/migrate/20131206214021_devise_create_users.rb +47 -0
  361. data/db/migrate/20131211223908_kill_reset_password.rb +5 -0
  362. data/db/migrate/20131218222005_create_cms_external_users.rb +10 -0
  363. data/doc/features/design_integration.md +45 -0
  364. data/doc/features/external_user.md +7 -0
  365. data/doc/features/form_builder.md +40 -0
  366. data/doc/features/simple_form_refactor.md +60 -0
  367. data/doc/release_notes.md +224 -10
  368. data/lib/acts_as_list.rb +72 -71
  369. data/lib/browsercms.rb +41 -1
  370. data/lib/cms/acts/content_block.rb +12 -2
  371. data/lib/cms/acts/content_page.rb +3 -4
  372. data/lib/cms/admin_tab.rb +15 -0
  373. data/lib/cms/attachments/configuration.rb +1 -1
  374. data/lib/cms/authentication/controller.rb +83 -177
  375. data/lib/cms/authentication/test_password_strategy.rb +19 -0
  376. data/lib/cms/behaviors.rb +1 -0
  377. data/lib/cms/behaviors/archiving.rb +2 -2
  378. data/lib/cms/behaviors/attaching.rb +21 -45
  379. data/lib/cms/behaviors/connecting.rb +14 -4
  380. data/lib/cms/behaviors/dynamic_attributes.rb +3 -3
  381. data/lib/cms/behaviors/hiding.rb +2 -2
  382. data/lib/cms/behaviors/namespacing.rb +6 -36
  383. data/lib/cms/behaviors/publishing.rb +92 -45
  384. data/lib/cms/behaviors/rendering.rb +15 -7
  385. data/lib/cms/behaviors/searching.rb +5 -4
  386. data/lib/cms/behaviors/soft_deleting.rb +13 -16
  387. data/lib/cms/behaviors/taggable.rb +17 -10
  388. data/lib/cms/behaviors/versioning.rb +12 -16
  389. data/lib/cms/commands/to_version400.rb +10 -0
  390. data/lib/cms/concerns.rb +7 -0
  391. data/lib/cms/concerns/can_be_addressable.rb +326 -0
  392. data/lib/cms/concerns/has_content_type.rb +46 -0
  393. data/lib/cms/concerns/ignores_publishing.rb +9 -0
  394. data/lib/cms/configuration.rb +14 -4
  395. data/lib/cms/configuration/configurable_template.rb +24 -0
  396. data/lib/cms/configuration/devise.rb +256 -0
  397. data/lib/cms/configure_simple_form.rb +142 -0
  398. data/lib/cms/configure_simple_form_bootstrap.rb +49 -0
  399. data/lib/cms/content_filter.rb +18 -0
  400. data/lib/cms/content_page.rb +77 -0
  401. data/lib/cms/content_rendering_support.rb +25 -16
  402. data/lib/cms/controllers/admin_controller.rb +78 -0
  403. data/lib/cms/data_loader.rb +30 -11
  404. data/lib/cms/default_accessible.rb +6 -6
  405. data/lib/cms/domain_support.rb +0 -4
  406. data/lib/cms/engine.rb +52 -20
  407. data/lib/cms/engine_helper.rb +41 -51
  408. data/{app/controllers → lib}/cms/error_handling.rb +11 -5
  409. data/lib/cms/extensions.rb +2 -1
  410. data/lib/cms/extensions/active_model/name.rb +13 -0
  411. data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +49 -89
  412. data/lib/cms/extensions/hash.rb +0 -12
  413. data/lib/cms/form_builder/content_block_form_builder.rb +45 -0
  414. data/lib/cms/form_builder/default_input.rb +13 -0
  415. data/lib/cms/form_builder/deprecated_inputs.rb +40 -0
  416. data/lib/cms/form_builder/workflow_buttons.rb +38 -0
  417. data/lib/cms/module.rb +1 -7
  418. data/lib/cms/polymorphic_single_table_inheritance.rb +19 -0
  419. data/lib/cms/publish_workflow.rb +26 -0
  420. data/lib/cms/responders/content_responder.rb +14 -0
  421. data/lib/cms/route_extensions.rb +112 -20
  422. data/lib/cms/version.rb +1 -1
  423. data/lib/generators/browser_cms/demo_site/templates/demo.seeds.rb +0 -2
  424. data/lib/generators/cms/content_block/content_block_generator.rb +19 -46
  425. data/lib/generators/cms/content_block/templates/_form.html.erb +22 -28
  426. data/lib/generators/cms/project/templates/devise.rb.erb +7 -0
  427. metadata +383 -150
  428. data/app/assets/javascripts/cms/sitemap.js.erb +0 -464
  429. data/app/assets/stylesheets/browsercms/application.css +0 -7
  430. data/app/assets/stylesheets/cms/administration.css.erb +0 -91
  431. data/app/assets/stylesheets/cms/application.css.erb +0 -171
  432. data/app/assets/stylesheets/cms/attachment_manager.css.scss +0 -28
  433. data/app/assets/stylesheets/cms/block.css +0 -26
  434. data/app/assets/stylesheets/cms/buttons.css.erb +0 -120
  435. data/app/assets/stylesheets/cms/content_library.css.erb +0 -139
  436. data/app/assets/stylesheets/cms/content_types.css +0 -4
  437. data/app/assets/stylesheets/cms/dashboard.css.erb +0 -118
  438. data/app/assets/stylesheets/cms/data_table.css.erb.erb +0 -156
  439. data/app/assets/stylesheets/cms/date_picker.css.erb +0 -82
  440. data/app/assets/stylesheets/cms/form_layout.css.erb +0 -282
  441. data/app/assets/stylesheets/cms/login.css.erb +0 -78
  442. data/app/assets/stylesheets/cms/menu.css.erb +0 -116
  443. data/app/assets/stylesheets/cms/nav.css.erb +0 -99
  444. data/app/assets/stylesheets/cms/page_toolbar.css.erb +0 -135
  445. data/app/assets/stylesheets/cms/reset.css +0 -46
  446. data/app/assets/stylesheets/cms/selectbox.css.erb +0 -56
  447. data/app/assets/stylesheets/cms/sitemap.css.erb +0 -390
  448. data/app/assets/stylesheets/cms/taglist.css +0 -18
  449. data/app/controllers/application_controller.rb +0 -14
  450. data/app/controllers/cms/content_types_controller.rb +0 -9
  451. data/app/helpers/application_helper.rb +0 -5
  452. data/app/helpers/cms/form_builder.rb +0 -241
  453. data/app/models/cms/content_type_group.rb +0 -15
  454. data/app/models/cms/forgot_password_mailer.rb +0 -14
  455. data/app/portlets/reset_password_portlet.rb +0 -28
  456. data/app/views/cms/blocks/_hidden_fields.html.erb +0 -10
  457. data/app/views/cms/blocks/_toolbar.html.erb +0 -9
  458. data/app/views/cms/blocks/_toolbar_for_collection.html.erb +0 -23
  459. data/app/views/cms/blocks/_toolbar_for_member.html.erb +0 -36
  460. data/app/views/cms/blocks/edit.html.erb +0 -28
  461. data/app/views/cms/blocks/index.html.erb +0 -86
  462. data/app/views/cms/blocks/new.html.erb +0 -19
  463. data/app/views/cms/blocks/show.html.erb +0 -43
  464. data/app/views/cms/blocks/usages.html.erb +0 -44
  465. data/app/views/cms/blocks/versions.html.erb +0 -90
  466. data/app/views/cms/content_types/index.html.erb +0 -14
  467. data/app/views/cms/form_builder/_cms_attachment_manager.html.erb +0 -27
  468. data/app/views/cms/form_builder/_cms_check_box.html.erb +0 -7
  469. data/app/views/cms/form_builder/_cms_date_picker.html.erb +0 -12
  470. data/app/views/cms/form_builder/_cms_datetime_select.html.erb +0 -12
  471. data/app/views/cms/form_builder/_cms_drop_down.html.erb +0 -12
  472. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +0 -9
  473. data/app/views/cms/form_builder/_cms_file_field.html.erb +0 -28
  474. data/app/views/cms/form_builder/_cms_instructions.html.erb +0 -4
  475. data/app/views/cms/form_builder/_cms_tag_list.html.erb +0 -15
  476. data/app/views/cms/form_builder/_cms_template_editor.html.erb +0 -9
  477. data/app/views/cms/form_builder/_cms_text_area.html.erb +0 -10
  478. data/app/views/cms/form_builder/_cms_text_editor.html.erb +0 -19
  479. data/app/views/cms/form_builder/_cms_text_field.html.erb +0 -12
  480. data/app/views/cms/links/destroy.js.rjs +0 -2
  481. data/app/views/cms/page_routes/show.html.erb +0 -10
  482. data/app/views/cms/pages/_edit_connector.html.erb +0 -19
  483. data/app/views/cms/pages/_edit_container.html.erb +0 -11
  484. data/app/views/cms/section_nodes/_link.html.erb +0 -14
  485. data/app/views/cms/section_nodes/_node.html.erb +0 -44
  486. data/app/views/cms/section_nodes/_page.html.erb +0 -20
  487. data/app/views/cms/section_nodes/_section.html.erb +0 -28
  488. data/app/views/cms/section_nodes/index.html.erb +0 -43
  489. data/app/views/cms/sections/_page.html.erb +0 -4
  490. data/app/views/cms/sections/_section.html.erb +0 -8
  491. data/app/views/cms/sections/destroy.js.rjs +0 -2
  492. data/app/views/cms/sections/index.html.erb +0 -23
  493. data/app/views/cms/shared/_admin_sidebar.html.erb +0 -36
  494. data/app/views/cms/shared/_pagination.html.erb +0 -31
  495. data/app/views/cms/toolbar/_mobile_toggle.html.erb +0 -33
  496. data/app/views/cms/toolbar/index.html.erb +0 -1
  497. data/app/views/cms/users/_groups.html.erb +0 -12
  498. data/app/views/cms/users/_toolbar.html.erb +0 -24
  499. data/app/views/cms/users/show.html.erb +0 -50
  500. data/app/views/layouts/_cms_toolbar.html.erb +0 -54
  501. data/app/views/layouts/_page_toolbar.html.erb +0 -119
  502. data/app/views/layouts/cms/administration.html.erb +0 -51
  503. data/app/views/layouts/cms/content_library.html.erb +0 -96
  504. data/app/views/layouts/cms/dashboard.html.erb +0 -16
  505. data/app/views/layouts/cms/login.html.erb +0 -31
  506. data/app/views/layouts/cms/section_nodes.html.erb +0 -20
  507. data/app/views/layouts/cms/toolbar.html.erb +0 -23
  508. data/app/views/portlets/reset_password/_form.html.erb +0 -3
  509. data/app/views/portlets/reset_password/render.html.erb +0 -22
  510. data/bin/bcms-upgrade +0 -332
  511. data/db/migrate/20091109175123_browsercms_3_0_5.rb +0 -9
  512. data/db/migrate/20100117144038_browsercms314.rb +0 -20
  513. data/db/migrate/20100117144039_browsercms315.rb +0 -95
  514. data/db/migrate/20100705083859_browsercms_3_3_0.rb +0 -56
  515. data/db/migrate/20111130221145_browsercms340.rb +0 -56
  516. data/db/migrate/20120329144406_browsercms350.rb +0 -32
  517. data/db/migrate/20120717182827_browsercms353.rb +0 -19
  518. data/db/migrate/20120813180110_browsercms354.rb +0 -9
  519. data/lib/cms/addressable.rb +0 -93
  520. data/lib/cms/authentication/model.rb +0 -116
  521. data/lib/cms/behaviors/pagination.rb +0 -212
  522. data/lib/cms/upgrades/v3_4_0.rb +0 -31
  523. data/lib/cms/upgrades/v3_5_0.rb +0 -227
@@ -1,18 +0,0 @@
1
- ul.tag-list {
2
- position: absolute;
3
- list-style-type: none;
4
- margin: 0;
5
- padding: 0;
6
- border: 1px solid #C6C6C6;
7
- border-bottom: none;
8
- }
9
- ul.tag-list li {
10
- margin: 0;
11
- padding: 5px;
12
- cursor: pointer;
13
- border-bottom: 1px dotted #8D8E90;
14
- background: #FFF;
15
- }
16
- ul.tag-list li.selected {
17
- background-color: #EAF2FB;
18
- }
@@ -1,14 +0,0 @@
1
- # Filters added to this controller apply to all controllers in the application.
2
- # Likewise, all the methods added will be available for all controllers.
3
-
4
- class ApplicationController < ActionController::Base
5
-
6
- # See ActionController::RequestForgeryProtection for details
7
- # Uncomment the :secret if you're not using the cookie session store
8
- #protect_from_forgery # :secret => '41948d307525ce0f10b2e716ff820465'
9
-
10
- # See ActionController::Base for details
11
- # Uncomment this to filter the contents of submitted sensitive data parameters
12
- # from your application log (in this case, all fields with names like "password").
13
- # filter_parameter_logging :password
14
- end
@@ -1,9 +0,0 @@
1
- module Cms
2
- class ContentTypesController < Cms::BaseController
3
-
4
- def index
5
- @content_types = ContentType.find(:all, :order => 'name')
6
- end
7
-
8
- end
9
- end
@@ -1,5 +0,0 @@
1
- # Any code for core CMS should go in /cms/application_helper.rb rather than here.
2
- #
3
- # Really, don't anything in here as all BrowserCMS projects will have a generated file that obscures this one.
4
- module ApplicationHelper
5
- end
@@ -1,241 +0,0 @@
1
- #
2
- # Adds additional form fields to the Rails FormBuilder which can be used to create CMS forms.
3
- #
4
- class Cms::FormBuilder < ActionView::Helpers::FormBuilder
5
-
6
-
7
- # Renders a CMS styled JavaScript/CSS styled select box, by itself with no label or other markup besides the js.
8
- #
9
- # Options:
10
- # * All standard select tag options plus:
11
- # * :default_value - The default item to have selected (defaults to the value of the underlying model)
12
- # * :width - The width for the select (defaults to 455px).
13
- #
14
- def drop_down(method, choices, options = {}, html_options = {})
15
- select_class = "#{@object_name}_#{method}"
16
- h_opts = add_tabindex!(@default_options.merge(html_options))
17
- h_opts[:class] = select_class
18
-
19
- opts = objectify_options(options)
20
- set_default_value!(method, options)
21
- cms_options = options.extract_only!(:default_value, :width)
22
- render_cms_form_partial :fancy_drop_down,
23
- :object_name => @object_name, :method => method,
24
- :choices => choices, :options => opts,
25
- :cms_options => cms_options, :html_options => h_opts
26
- end
27
-
28
- def date_picker(method, options={})
29
- text_field(method, {:size => 10, :class => "date_picker", :value => Cms::DatePicker.format_for_ui(@object.send(method))}.merge(options))
30
- end
31
-
32
- def tag_list(options={})
33
- field_name = options.delete(:name) || :tag_list
34
- text_field(field_name, {:size => 50, :class => "tag-list"}.merge(options))
35
- end
36
-
37
- # These are the higher-level fields,
38
- # that get wrapped in divs with labels, instructions, etc.
39
-
40
- %w[date_picker datetime_select text_area text_field file_field].each do |f|
41
- src = <<-end_src
42
- def cms_#{f}(method, options={})
43
- add_tabindex!(options)
44
- set_default_value!(method, options)
45
- cms_options = options.extract!(:label, :instructions, :default_value, :fancy)
46
- render_cms_form_partial :#{f},
47
- :object_name => @object_name, :method => method,
48
- :options => options, :cms_options => cms_options
49
- end
50
- end_src
51
- class_eval src, __FILE__, __LINE__
52
- end
53
-
54
- # Returns a label for a given field
55
- # @param [Symbol] field Name of the field
56
- # @param [String] label_value If nil, will use default logic for Rails::FormBuilder#label
57
- def cms_label(field, label_value)
58
- if label_value
59
- label field, label_value
60
- else
61
- label field
62
- end
63
- end
64
-
65
- # Returns a file upload input tag for a given block, along with label and instructions.
66
- #
67
- # @param [Symbol] method The name of the model this form upload is associated with
68
- # @param [Hash] options
69
- # @option options [String] :label (method) If no label is specified, the human readable name for method will be used.
70
- # @option options [String] :instructions (blank) Helpful tips for the person entering the field, appears blank if nothing is specified.
71
- # @option options [Boolean] :edit_path (false) If true, render a text field to allow users to edit path for this file.
72
- # @option options [Boolean] :edit_section (false) If true, render a select box which allows users to choose which section this attachment should be placed in.
73
- def cms_file_field(method, options={})
74
- @object.ensure_attachment_exists if @object.respond_to?(:ensure_attachment_exists)
75
-
76
- unless options[:label]
77
- options[:label] = method.to_s.humanize
78
- end
79
- render_form_field("file_field", method, options)
80
- end
81
-
82
- # Renders a multiple file uploader for attachments. Allows users to add as many attachments to this model as needed.
83
- def cms_attachment_manager
84
- defs = Cms::Attachment.definitions_for(object.class.name, :multiple)
85
- names = defs.keys.sort
86
- return if names.empty?
87
-
88
- names.unshift "Select a type to upload a file" if names.size > 1
89
- render_cms_form_partial :attachment_manager, :asset_definitions => defs, :asset_types => names
90
- end
91
-
92
- # @params html_options
93
- # @options html_option [:class] - This will be overridden, so don't bother to set it
94
- def cms_drop_down(method, choices, options={}, html_options={})
95
- add_tabindex!(html_options)
96
- set_default_value!(method, options)
97
- cms_options = options.extract_only!(:label, :instructions, :default_value)
98
- render_cms_form_partial :drop_down,
99
- :object_name => @object_name, :method => method,
100
- :choices => choices, :options => options,
101
- :cms_options => cms_options, :html_options => html_options
102
- end
103
-
104
- def cms_tag_list(options={})
105
- add_tabindex!(options)
106
- set_default_value!(:tag_list, options)
107
- cms_options = options.extract_only!(:label, :instructions, :default_value)
108
- render_cms_form_partial :tag_list,
109
- :options => options, :cms_options => cms_options
110
- end
111
-
112
- #
113
- # Renders a WYWIWYG editor without the 'type' selector.
114
- #
115
- def text_editor(method, options = {})
116
- @template.send(
117
- "text_editor",
118
- @object_name,
119
- method,
120
- objectify_options(options))
121
- end
122
-
123
- # Renders a WYWIWYG editor with the 'type' selector.
124
- def cms_text_editor(method, options = {})
125
- add_tabindex!(options)
126
- set_default_value!(method, options)
127
- cms_options = options.extract_only!(:label, :instructions, :default_value)
128
- render_cms_form_partial :text_editor,
129
- :id => (options[:id] || "#{@object_name}_#{method}"),
130
- :editor_enabled => (cookies["editorEnabled"].blank? ? true : (cookies["editorEnabled"] == 'true' || cookies["editorEnabled"] == ['true'])),
131
- :object_name => @object_name, :method => method,
132
- :options => options, :cms_options => cms_options
133
- end
134
-
135
- # Renders instructions for a given field below the field itself. Instructions can be used to provide helpful
136
- # guidance to content editors including formatting help or just explaining what a field is for.
137
- #
138
- # If instructions are blank/nil, then nothing will be shown.
139
- #
140
- # @param [String] instructions (blank) The help text to show
141
- def cms_instructions(instructions)
142
- render_cms_form_partial :instructions, :instructions => instructions
143
- end
144
-
145
- # Renders a label and checkbox suitable for allow editors to update a boolean field.
146
- #
147
- # Params:
148
- # * method - The name of the field this check_box will update.
149
- # * options - Hash of values including:
150
- # - :label
151
- # - :instructions
152
- # - :default_value
153
- # - Any other standard FormBuilder.check_box options that will be passed directly to the check_box method.
154
- def cms_check_box(method, options={})
155
- add_tabindex!(options)
156
- set_default_value!(method, options)
157
- cms_options = options.extract_only!(:label, :instructions, :default_value)
158
- render_cms_form_partial "check_box", :method => method, :options => options, :cms_options => cms_options
159
- end
160
-
161
- #
162
- # Renders a template editor that allows developers to edit the view used to render a specific block. Render both
163
- # a 'Handler' select box (erb, builder, etc) and a text_area for editing. Will not display the editor if the underlying
164
- # object is marked as 'render_inline(false)'. This allows developers to edit the render.html.erb directly to update
165
- # how the model displays.
166
- #
167
- # For example, Portlets will often specify a :template to allow runtime update of their view.
168
- #
169
- # Options:
170
- # :default_handler - Which handler will be the default when creating new instances. (Defaults to erb)
171
- # :instructions - Instructions that will be displayed below the text area. (Blank by default)
172
- # :label - The name for the label (Defaults to humanized version of field name)
173
- #
174
- def cms_template_editor(method, options={})
175
- if object.class.render_inline
176
-
177
- # Set some defaults
178
- options[:default_value] = @object.class.default_template
179
- set_default_value!(method, options)
180
- options[:default_handler] = "erb" unless options[:default_handler]
181
-
182
- cms_options = options.extract_only!(:label, :instructions)
183
- dropdown_options = options.extract_only!(:default_handler)
184
- add_tabindex!(options)
185
- render_cms_form_partial :template_editor, :method => method, :dropdown_options => dropdown_options, :options => options, :cms_options => cms_options
186
- end
187
- end
188
-
189
-
190
- # Basic replacement for the error_messages provided by Rails 2, which were deprecated/removed in Rails 3.
191
- def cms_error_messages
192
- return unless object.respond_to?(:errors) && object.errors.any?
193
-
194
- errors_list = ""
195
- errors_list << @template.content_tag(:h2, "#{object.errors.size} error prohibited this #{object_name.humanize} from being saved.".html_safe)
196
- errors_list << @template.content_tag(:p, "There were problems with the following fields:")
197
- errors_list << @template.content_tag(:ul, object.errors.full_messages.map { |message| @template.content_tag(:li, message).html_safe }.join("\n").html_safe).html_safe
198
-
199
- @template.content_tag(:div, errors_list.html_safe, :class => "errorExplanation", :id => "errorExplanation")
200
- end
201
-
202
- private
203
-
204
- def render_form_field(form_control_name, method, options)
205
- add_tabindex!(options)
206
- set_default_value!(method, options)
207
- cms_options = options.extract!(:label, :instructions, :default_value)
208
- render_cms_form_partial form_control_name.to_sym,
209
- :model_object => @object,
210
- :object_name => @object_name,
211
- :method => method,
212
- :options => options,
213
- :cms_options => cms_options
214
- end
215
-
216
- def set_default_value!(method, options={})
217
- if options.has_key?(:default_value) && @object.send(method).blank?
218
- @object.send("#{method}=", options[:default_value])
219
- end
220
- end
221
-
222
- def add_tabindex!(options)
223
- if options.has_key?(:tabindex)
224
- options.delete(:tabindex) if options[:tabindex].blank?
225
- else
226
- options[:tabindex] = @template.next_tabindex
227
- end
228
- options
229
- end
230
-
231
- def cookies
232
- #Ugly, is there an easier way to get to the cookies?
233
- @template.instance_variable_get("@_request").cookies || {}
234
- end
235
-
236
- def render_cms_form_partial(field_type_name, locals)
237
- @template.render :partial => "cms/form_builder/cms_#{field_type_name}", :locals => {:f => self}.merge(locals)
238
- end
239
-
240
- end
241
-
@@ -1,15 +0,0 @@
1
- module Cms
2
- class ContentTypeGroup < ActiveRecord::Base
3
- attr_accessible :name
4
-
5
- has_many :content_types, :order => "#{ContentType.table_name}.id", :class_name => 'Cms::ContentType'
6
-
7
- has_many :types, :order=>"priority, name", :class_name => 'Cms::ContentType'
8
-
9
- def self.menu_list
10
- order(:id).all
11
- end
12
-
13
-
14
- end
15
- end
@@ -1,14 +0,0 @@
1
- module Cms
2
- class ForgotPasswordMailer < ActionMailer::Base
3
-
4
- def reset_password(link, email)
5
- @subject = "Account Management"
6
- @body[:url] = link
7
- @recipients = email
8
- @from = 'do_not_reply@domain.com'
9
- @sent_on = Time.now
10
- template "cms/forgot_password_mailer/reset_password"
11
- end
12
-
13
- end
14
- end
@@ -1,28 +0,0 @@
1
- class ResetPasswordPortlet < Cms::Portlet
2
-
3
- def render
4
- flash[:reset_password] = {}
5
-
6
- unless params[:token]
7
- flash[:reset_password][:error] = "No password token given"
8
- return
9
- end
10
-
11
- @user = Cms::User.find_by_reset_token(params[:token])
12
-
13
- unless @user
14
- flash[:reset_password][:notice] = "Invalid password token"
15
- return
16
- end
17
-
18
- if request.post?
19
- @user.password = params[:password]
20
- @user.password_confirmation = params[:password_confirmation]
21
-
22
- if @user.save
23
- flash[:reset_password][:notice] = 'Password has been reset'
24
- end
25
- end
26
- end
27
-
28
- end
@@ -1,10 +0,0 @@
1
- <% if params[:_redirect_to] %>
2
- <%= hidden_field_tag :_redirect_to, params[:_redirect_to] %>
3
- <% end -%>
4
- <% if @block.respond_to?(:lock_version) %>
5
- <%= f.hidden_field :lock_version, :value => (@other_version ? @other_version.lock_version : @block.lock_version) %>
6
- <% end -%>
7
- <% if @block.class.connectable? %>
8
- <%= f.hidden_field :connect_to_page_id %>
9
- <%= f.hidden_field :connect_to_container %>
10
- <% end -%>
@@ -1,9 +0,0 @@
1
- <%= content_for :html_head, stylesheet_link_tag('cms/form_layout') %>
2
-
3
- <%= content_for :functions do %>
4
- <% if @block && !@block.new_record? %>
5
- <%= render :partial => 'cms/blocks/toolbar_for_member' %>
6
- <% else %>
7
- <%= render :partial => 'cms/blocks/toolbar_for_collection' %>
8
- <% end %>
9
- <% end %>
@@ -1,23 +0,0 @@
1
- <%= able_to? :publish_content do -%>
2
- <%= link_to span_tag('Publish'), "#",
3
- :class => "http_put button disabled left",
4
- :id => "publish_button" %>
5
- <% end -%>
6
-
7
- <%= link_to span_tag("View Content"), "#",
8
- :id => "view_button",
9
- :class => "button disabled#{ ' off' if action_name == 'show'} middle" %>
10
-
11
- <%= link_to span_tag("Edit Content"), "#",
12
- :id => "edit_button",
13
- :class => "button disabled#{ ' off' if action_name == 'edit'} right" %>
14
-
15
- <%= link_to span_tag("add new content"), cms_new_path_for(content_type),
16
- :id => "add_button",
17
- :class => "spacer button#{ ' off' if action_name == 'new'}" %>
18
-
19
- <%= link_to span_tag("List Versions"), "#",
20
- :id => "revisions_button",
21
- :class => "button #{ action_name == 'revisions' ? ' off' : ' disabled'}" %>
22
-
23
- <%= delete_button :title=>true %>
@@ -1,36 +0,0 @@
1
- <%= able_to? :publish_content do -%>
2
- <% if @block.respond_to?(:live?) && !@block.live? %>
3
- <%= link_to span_tag('Publish'), block_path(@block,:publish),
4
- :class => "http_put button left#{' disabled' unless (current_user.able_to_publish?(@block) && @block.publishable?)}",
5
- :id => "publish_button" %>
6
- <% else %>
7
- <%= link_to span_tag('Publish'), "#",
8
- :class => "http_put button disabled left",
9
- :id => "publish_button" %>
10
- <% end %>
11
- <% end -%>
12
-
13
- <%= link_to span_tag('View Content'), block_path(@block),
14
- :class => "button middle#{ ' off' if action_name == 'show'}",
15
- :id => "view_button" %>
16
-
17
- <%= link_to span_tag('Edit Content'), block_path(@block,:edit),
18
- :class => "button right#{ ' off' if action_name == 'edit'}#{' disabled' unless current_user.able_to_edit?(@block)}",
19
- :id => "edit_button" %>
20
-
21
- <%= link_to span_tag("Add New Content"), new_block_path(@block),
22
- :class => "button#{ ' off' if action_name == 'new'}",
23
- :id => "add_button" %>
24
-
25
- <% if @block.class.versioned? %>
26
- <%= link_to span_tag('List Versions'), block_path(@block,:versions),
27
- :class => "button#{ ' off' if action_name == 'revisions'}",
28
- :id => "list_versions" %>
29
- <% else %>
30
- <%= link_to span_tag('List Versions'), '#',
31
- :class => "button disabled",
32
- :id => "list_versions" %>
33
- <% end %>
34
-
35
- <%= delete_button :path=>block_path(@block), :title=>"Are you sure you want to delete '#{@block.name}'?", :enabled=>current_user.able_to_publish?(@block) %>
36
-
@@ -1,28 +0,0 @@
1
- <%= content_for :html_head do %>
2
- <%= stylesheet_link_tag('cms/form_layout') %>
3
- <%= stylesheet_link_tag('cms/content_library') %>
4
- <% end %>
5
- <% page_title "Content Library / Edit #{content_type.display_name}" %>
6
- <% @toolbar_title = "Edit #{content_type.display_name} '#{@block.name}'".html_safe %>
7
- <%= content_for :functions, render(:partial => 'cms/blocks/toolbar') %>
8
-
9
- <% if @block.respond_to?(:deleted) && @block.deleted %>
10
- <div class="header">This <%= @block.class.name %> has been deleted.</div>
11
- <% else %>
12
- <%= form_for(@block, :url => block_path(@block), :html => {:multipart => true}) do |f| %>
13
- <%= f.cms_error_messages %>
14
- <%= render :partial => 'cms/shared/exception', :object => @exception if @exception %>
15
- <% if @other_version %>
16
- <%= render :partial => 'cms/shared/version_conflict_error', :locals => {:other_version => @other_version, :your_version => @block} %>
17
- <% end %>
18
- <%= render :partial => 'cms/blocks/hidden_fields', :locals => { :f => f } %>
19
- <%= render :partial => block_form, :locals => {:f => f} %>
20
- <% if @other_version %>
21
- <%= render :partial => "cms/shared/version_conflict_diff", :locals => {:other_version => @other_version, :your_version => @block} %>
22
- <% end %>
23
- <div class="buttons">
24
- <%= save_and_publish_button(@block, content_type) %>
25
- <%= lt_button_wrapper(f.submit("Save", :class => "submit", :tabindex => next_tabindex)) %>
26
- </div>
27
- <% end %>
28
- <% end %>