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
@@ -2,18 +2,33 @@
2
2
  # There are other routes that will be added at the root of the site (i.e. /) which can
3
3
  # be found in lib/cms/route_extensions.rb
4
4
  Cms::Engine.routes.draw do
5
- match '/dashboard', :to=>"dashboard#index", :as=>'dashboard'
6
- match '/', :to => 'home#index', :as=>'home'
7
- match '/sitemap', :to=>"section_nodes#index", :as=>'sitemap'
8
- match '/content_library', :to=>"html_blocks#index", :as=>'content_library'
9
- match '/administration', :to=>"users#index", :as=>'administration'
10
- match '/logout', :to=>"sessions#destroy", :as=>'logout'
11
- get '/login', :to=>"sessions#new", :as=>'login'
12
- post '/login', :to=>"sessions#create"
13
-
14
- match '/toolbar', :to=>"toolbar#index", :as=>'toolbar'
15
- match '/content_types', :to=>"content_types#index", :as=>'content_types'
5
+ get 'fakemap', to: 'section_nodes#fake'
6
+ get '/content/:id/edit', :to => "content#edit", :as => 'edit_content'
7
+ get '/dashboard', :to => "dashboard#index", :as => 'dashboard'
8
+ get '/', :to => 'home#index', :as => 'home'
9
+ get '/sitemap', :to => "section_nodes#index", :as => 'sitemap'
10
+ get '/content_library', :to => "html_blocks#index", :as => 'content_library'
11
+ get '/administration', :to => "users#index", :as => 'administration'
16
12
 
13
+ devise_for :cms_users,
14
+ skip: [:sessions],
15
+ path: :users,
16
+ class_name: 'Cms::PersistentUser',
17
+ controllers: { passwords: 'cms/passwords' },
18
+ module: :devise
19
+
20
+ devise_scope :cms_user do
21
+ get '/login' => "sessions#new", :as => 'login'
22
+ get '/login' => "sessions#new", :as => :new_cms_user_session
23
+ post '/login' => "sessions#create", :as => :cms_user_session
24
+ get '/logout' => "sessions#destroy", :as => 'logout'
25
+
26
+ end
27
+
28
+ get '/toolbar', :to => "toolbar#index", :as => 'toolbar'
29
+
30
+ put "/inline_content/:content_name/:id", to: "inline_content#update", as: "update_inline_content"
31
+ resources :page_components
17
32
  resources :connectors do
18
33
  member do
19
34
  put :move_up
@@ -36,8 +51,9 @@ Cms::Engine.routes.draw do
36
51
  end
37
52
  resources :tasks
38
53
  end
39
- get '/pages/:id/version/:version', :to=>'pages#version', :as=>'version_cms_page'
40
- put '/pages/:id/revert_to/:version', :to=>'pages#revert_to', :as=>'revert_page'
54
+ get '/pages/:id/preview', to: 'content#preview', as: 'preview_page'
55
+ get '/pages/:id/version/:version', :to => 'pages#version', :as => 'version_page'
56
+ put '/pages/:id/revert_to/:version', :to => 'pages#revert_to', :as => 'revert_page'
41
57
  resources :tasks do
42
58
  member do
43
59
  put :complete
@@ -52,20 +68,33 @@ Cms::Engine.routes.draw do
52
68
 
53
69
  resources :section_nodes do
54
70
  member do
55
- put :move_before
56
- put :move_after
57
- put :move_to_beginning
58
- put :move_to_end
59
- put :move_to_root
71
+ put :move_to_position
60
72
  end
61
73
  end
62
74
 
63
- resources :attachments, :only=>[:show, :create, :destroy]
75
+ resources :attachments, :only => [:show, :create, :destroy]
64
76
 
65
- match '/content_library', :to=>'html_blocks#index', :as=>'content_library'
66
77
  content_blocks :html_blocks
78
+ content_blocks :forms
79
+ resources :form_fields do
80
+ member do
81
+ get :confirm_delete
82
+ end
83
+ end
84
+ post "form_fields/:id/insert_at/:position" => 'form_fields#insert_at'
85
+ get "/forms/:id/fields/preview" => 'form_fields#preview', as: 'preview_form_field'
86
+
87
+ resources :form_entries do
88
+ collection do
89
+ post :submit
90
+ end
91
+ end
92
+
93
+ # Faux nested resource for forms (not sure if #content_blocks allows for it.)
94
+ get 'forms/:id/entries' => 'form_entries#index', as: 'entries'
95
+
67
96
  content_blocks :portlets
68
- post '/portlet/:id/:handler', :to=>"portlet#execute_handler", :as=>"portlet_handler"
97
+ post '/portlet/:id/:handler', :to => "portlet#execute_handler", :as => "portlet_handler"
69
98
 
70
99
  content_blocks :file_blocks
71
100
  content_blocks :image_blocks
@@ -73,12 +102,11 @@ Cms::Engine.routes.draw do
73
102
  content_blocks :categories
74
103
  content_blocks :tags
75
104
 
76
- match '/administration', :to => 'users#index', :as=>'administration'
77
-
78
- resources :users do
105
+ get 'user' => "user#show", as: :current_user
106
+ resources :users, except: :show do
79
107
  member do
80
108
  get :change_password
81
- put :update_password
109
+ patch :update_password
82
110
  put :disable
83
111
  put :enable
84
112
  end
@@ -88,14 +116,15 @@ Cms::Engine.routes.draw do
88
116
  resources :redirects
89
117
  resources :page_partials, :controller => 'dynamic_views'
90
118
  resources :page_templates, :controller => 'dynamic_views'
91
- resources :page_routes do
119
+ resources :page_routes, except: :show do
92
120
  resources :conditions, :controller => "page_route_conditions"
93
121
  resources :requirements, :controller => "page_route_requirements"
94
122
  end
95
- get 'cache', :to=>'cache#show', :as=>'cache'
96
- delete 'cache', :to=>'cache#destroy'
123
+ get 'cache', :to => 'cache#show', :as => 'cache'
124
+ delete 'cache', :to => 'cache#destroy'
97
125
 
98
- match "/routes", :to => "routes#index", :as=>'routes'
126
+ get "/routes", :to => "routes#index", :as => 'routes'
99
127
 
128
+ add_routes_for_addressable_content_blocks
100
129
  end
101
130
 
@@ -1,5 +1,4 @@
1
1
  require 'cms/data_loader'
2
- extend Cms::DataLoader
3
2
 
4
3
  if %w[development test dev local].include?(Rails.env)
5
4
  pwd = "cmsadmin"
@@ -8,11 +7,6 @@ else
8
7
  end
9
8
  Cms::User.current = create_user(:cmsadmin, :login => "cmsadmin", :first_name => "CMS", :last_name => "Administrator", :email => "cmsadmin@example.com", :password => pwd, :password_confirmation => pwd)
10
9
 
11
- [["Cms::CategoryType", "Categorization"], ["Cms::Category","Categorization"], ["Cms::Tag", "Categorization"],
12
- ["Cms::HtmlBlock", "Core"], ["Cms::Portlet", "Core"], ["Cms::FileBlock", "Core"], ["Cms::ImageBlock", "Core"]
13
- ].each do |type|
14
- create_content_type(type[0].to_sym, :name=>type[0], :group_name=>type[1])
15
- end
16
10
  create_permission(:administrate, :name => "administrate", :full_name => "Administer CMS", :description => "Allows users to administer the CMS, including adding users and groups.")
17
11
  create_permission(:edit_content, :name => "edit_content", :full_name => "Edit Content", :description => "Allows users to Add, Edit and Delete both Pages and Blocks. Can Save (but not Publish) and Assign them as well.")
18
12
  create_permission(:publish_content, :name => "publish_content", :full_name => "Publish Content", :description => "Allows users to Save and Publish, Hide and Archive both Pages and Blocks.")
@@ -1,6 +1,6 @@
1
1
  class Browsercms300 < ActiveRecord::Migration
2
- def self.up
3
- create_table prefix(:users), :force => true do |t|
2
+ def change
3
+ create_table :cms_users, :force => true do |t|
4
4
  t.column :login, :string, :limit => 40
5
5
  t.column :first_name, :string, :limit => 40
6
6
  t.column :last_name, :string, :limit => 40
@@ -12,10 +12,11 @@ class Browsercms300 < ActiveRecord::Migration
12
12
  t.column :expires_at, :datetime
13
13
  t.column :remember_token, :string, :limit => 40
14
14
  t.column :remember_token_expires_at, :datetime
15
+ t.column :reset_token, :string
15
16
  end
16
- add_index prefix(:users), :login, :unique => true
17
+ add_index :cms_users, :login, :unique => true
17
18
 
18
- create_content_table :dynamic_views do |t|
19
+ create_content_table :cms_dynamic_views do |t|
19
20
  t.string :type
20
21
  t.string :name
21
22
  t.string :format
@@ -24,7 +25,7 @@ class Browsercms300 < ActiveRecord::Migration
24
25
  t.timestamps
25
26
  end
26
27
 
27
- create_content_table :pages do |t|
28
+ create_content_table :cms_pages do |t|
28
29
  t.string :name
29
30
  t.string :title
30
31
  t.string :path
@@ -35,32 +36,33 @@ class Browsercms300 < ActiveRecord::Migration
35
36
  t.boolean :cacheable, :default => false
36
37
  t.boolean :hidden, :default => false
37
38
  end
39
+ add_column :cms_pages, :latest_version, :integer
38
40
 
39
- create_table prefix(:content_type_groups) do |t|
41
+ create_table :cms_content_type_groups do |t|
40
42
  t.string :name
41
43
  t.timestamps
42
44
  end
43
45
 
44
- create_table prefix(:content_types) do |t|
46
+ create_table :cms_content_types do |t|
45
47
  t.string :name
46
48
  t.belongs_to :content_type_group
47
49
  t.integer :priority, :default => 2
48
50
  t.timestamps
49
51
  end
50
52
 
51
- create_table prefix(:category_types) do |t|
53
+ create_table :cms_category_types do |t|
52
54
  t.string :name
53
55
  t.timestamps
54
56
  end
55
57
 
56
- create_table prefix(:categories) do |t|
58
+ create_table :cms_categories do |t|
57
59
  t.belongs_to :category_type
58
60
  t.belongs_to :parent
59
61
  t.string :name
60
62
  t.timestamps
61
63
  end
62
64
 
63
- create_table prefix(:connectors) do |t|
65
+ create_table :cms_connectors do |t|
64
66
  t.integer :page_id
65
67
  t.integer :page_version
66
68
  t.integer :connectable_id
@@ -71,12 +73,11 @@ class Browsercms300 < ActiveRecord::Migration
71
73
  t.timestamps
72
74
  end
73
75
 
74
- create_versioned_table :html_blocks do |t|
75
- t.string :name
76
+ create_content_table :cms_html_blocks do |t|
76
77
  t.text :content, :limit => 64.kilobytes + 1
77
78
  end
78
79
 
79
- create_table prefix(:sections) do |t|
80
+ create_table :cms_sections do |t|
80
81
  t.string :name
81
82
  t.string :path
82
83
  t.boolean :root, :default => false
@@ -84,7 +85,7 @@ class Browsercms300 < ActiveRecord::Migration
84
85
  t.timestamps
85
86
  end
86
87
 
87
- create_table prefix(:portlets) do |t|
88
+ create_table :cms_portlets do |t|
88
89
  t.string :type
89
90
  t.string :name
90
91
  t.boolean :archived, :default => false
@@ -92,99 +93,106 @@ class Browsercms300 < ActiveRecord::Migration
92
93
  t.integer :created_by_id, :updated_by_id
93
94
  t.timestamps
94
95
  end
95
- create_table prefix(:portlet_attributes) do |t|
96
+ create_table :cms_portlet_attributes do |t|
96
97
  t.integer :portlet_id
97
98
  t.string :name
98
99
  t.text :value
99
100
  end
100
101
 
101
- create_table prefix(:redirects) do |t|
102
+ create_table :cms_redirects do |t|
102
103
  t.string :from_path
103
104
  t.string :to_path
104
105
  t.timestamps
105
106
  end
106
107
 
107
- create_content_table :attachments do |t|
108
- t.string :file_path
108
+ create_content_table :cms_attachments, name: false do |t|
109
+ t.string :data_file_name
110
+ t.string :data_file_path
109
111
  t.string :file_location
110
- t.string :file_extension
111
- t.string :file_type
112
- t.integer :file_size
113
- t.timestamps
112
+ t.string :data_content_type
113
+ t.integer :data_file_size
114
+ t.string :data_fingerprint
115
+ t.string :attachable_type
116
+ t.string :attachment_name
117
+ t.integer :attachable_id
118
+ t.integer :attachable_version
119
+ t.string :cardinality
114
120
  end
115
121
 
116
- create_content_table :file_blocks do |t|
122
+ create_content_table :cms_file_blocks do |t|
117
123
  t.string :type
118
124
  t.string :name
119
125
  t.integer :attachment_id
120
126
  t.integer :attachment_version
121
127
  end
122
128
 
123
- create_table prefix(:group_types) do |t|
129
+ create_table :cms_group_types do |t|
124
130
  t.string :name
125
131
  t.boolean :guest, :default => false
126
132
  t.boolean :cms_access, :default => false
127
133
  t.timestamps
128
134
  end
129
- create_table prefix(:groups) do |t|
135
+ create_table :cms_groups do |t|
130
136
  t.string :name
131
137
  t.string :code
132
138
  t.integer :group_type_id
133
139
  t.timestamps
134
140
  end
135
- create_table prefix(:user_group_memberships) do |t|
141
+ create_table :cms_user_group_memberships do |t|
136
142
  t.integer :user_id
137
143
  t.integer :group_id
138
144
  end
139
145
 
140
- create_table prefix(:permissions) do |t|
146
+ create_table :cms_permissions do |t|
141
147
  t.string :name
142
148
  t.string :full_name
143
149
  t.string :description
144
150
  t.string :for_module
145
151
  t.timestamps
146
152
  end
147
- create_table prefix(:group_permissions) do |t|
153
+ create_table :cms_group_permissions do |t|
148
154
  t.integer :group_id
149
155
  t.integer :permission_id
150
156
  end
151
- create_table prefix(:group_type_permissions) do |t|
157
+ create_table :cms_group_type_permissions do |t|
152
158
  t.integer :group_type_id
153
159
  t.integer :permission_id
154
160
  end
155
- create_table prefix(:group_sections) do |t|
161
+ create_table :cms_group_sections do |t|
156
162
  t.integer :group_id
157
163
  t.integer :section_id
158
164
  end
159
165
 
160
- create_table prefix(:sites) do |t|
166
+ create_table :cms_sites do |t|
161
167
  t.string :name
162
168
  t.string :domain
163
169
  t.boolean :the_default
164
170
  t.timestamps
165
171
  end
166
172
 
167
- create_table prefix(:section_nodes) do |t|
168
- t.integer :section_id
173
+ create_table :cms_section_nodes do |t|
169
174
  t.string :node_type
170
175
  t.integer :node_id
171
176
  t.integer :position
177
+ t.string :ancestry
172
178
  t.timestamps
173
179
  end
174
180
 
175
- create_content_table :links do |t|
181
+ create_content_table :cms_links do |t|
176
182
  t.string :name
177
183
  t.string :url
178
184
  t.boolean :new_window, :default => false
179
185
  t.timestamps
180
186
  end
187
+ add_column :cms_links, :latest_version, :integer
188
+
181
189
 
182
- create_table prefix(:tags) do |t|
190
+ create_table :cms_tags do |t|
183
191
  t.string :name
184
192
  t.timestamps
185
193
  end
186
194
 
187
- create_table prefix(:taggings) do |t|
195
+ create_table :cms_taggings do |t|
188
196
  t.integer :tag_id
189
197
  t.integer :taggable_id
190
198
  t.string :taggable_type
@@ -192,7 +200,7 @@ class Browsercms300 < ActiveRecord::Migration
192
200
  t.timestamps
193
201
  end
194
202
 
195
- create_table prefix(:email_messages) do |t|
203
+ create_table :cms_email_messages do |t|
196
204
  t.string :sender
197
205
  t.text :recipients
198
206
  t.text :subject
@@ -204,7 +212,7 @@ class Browsercms300 < ActiveRecord::Migration
204
212
  t.timestamps
205
213
  end
206
214
 
207
- create_table prefix(:tasks) do |t|
215
+ create_table :cms_tasks do |t|
208
216
  t.integer :assigned_by_id
209
217
  t.integer :assigned_to_id
210
218
  t.integer :page_id
@@ -214,53 +222,66 @@ class Browsercms300 < ActiveRecord::Migration
214
222
  t.timestamps
215
223
  end
216
224
 
217
- create_table prefix(:page_routes) do |t|
225
+ create_table :cms_page_routes do |t|
218
226
  t.string :name
219
227
  t.string :pattern
220
228
  t.belongs_to :page
221
229
  t.text :code
222
230
  t.timestamps
223
231
  end
224
- create_table prefix(:page_route_options) do |t|
232
+ create_table :cms_page_route_options do |t|
225
233
  t.belongs_to :page_route
226
234
  t.string :type
227
235
  t.string :name
228
236
  t.string :value
229
237
  t.timestamps
230
238
  end
231
- end
232
239
 
233
- def self.down
234
- drop_table prefix(:page_route_options)
235
- drop_table prefix(:page_routes)
236
- drop_table prefix(:tasks)
237
- drop_table prefix(:email_messages)
238
- drop_table prefix(:taggings)
239
- drop_table prefix(:tags)
240
- drop_versioned_table :links
241
- drop_table prefix(:section_nodes)
242
- drop_table prefix(:sites)
243
- drop_table prefix(:group_sections)
244
- drop_table prefix(:group_type_permissions)
245
- drop_table prefix(:group_permissions)
246
- drop_table prefix(:permissions)
247
- drop_table prefix(:user_group_memberships)
248
- drop_table prefix(:groups)
249
- drop_table prefix(:group_types)
250
- drop_versioned_table :file_blocks
251
- drop_versioned_table :attachments
252
- drop_table prefix(:redirects)
253
- drop_table prefix(:portlet_attributes)
254
- drop_table prefix(:portlets)
255
- drop_table prefix(:sections)
256
- drop_versioned_table :html_blocks
257
- drop_table prefix(:connectors)
258
- drop_table prefix(:categories)
259
- drop_table prefix(:category_types)
260
- drop_table prefix(:content_types)
261
- drop_table prefix(:content_type_groups)
262
- drop_versioned_table :pages
263
- drop_versioned_table :dynamic_views
264
- drop_table prefix(:users)
240
+ INDEXES.each do |index|
241
+ table_name, column = *index
242
+ add_index cms_(table_name), column
243
+ end
265
244
  end
245
+
246
+ # Add some very commonly used indexes to improve the site performance as the # of pages/content grows (i.e. several thousand pages)
247
+ INDEXES = [
248
+ [:pages, :deleted],
249
+ [:pages, :path],
250
+ [:pages, :version],
251
+ [:page_versions, :original_record_id],
252
+ [:groups, :code],
253
+ [:groups, :group_type_id],
254
+ [:group_types, :cms_access],
255
+ [:group_sections, :section_id],
256
+ [:group_sections, :group_id],
257
+ [:users, :expires_at],
258
+ [:user_group_memberships, :group_id],
259
+ [:user_group_memberships, :user_id],
260
+ [:group_permissions, :group_id],
261
+ [:group_permissions, :permission_id],
262
+ [:group_permissions, [:group_id, :permission_id]],
263
+ [:section_nodes, :node_type],
264
+ [:section_nodes, :ancestry],
265
+ [:connectors, :page_id],
266
+ [:connectors, :page_version],
267
+ [:html_blocks, :deleted],
268
+ [:html_block_versions, :original_record_id],
269
+ [:html_block_versions, :version],
270
+ [:portlet_attributes, :portlet_id],
271
+ [:portlets, :name],
272
+ [:sections, :path],
273
+ [:redirects, :from_path],
274
+ [:connectors, :connectable_version],
275
+ [:connectors, :connectable_type],
276
+ [:content_types, :content_type_group_id],
277
+ [:content_types, :name],
278
+ [:file_block_versions, :original_record_id],
279
+ [:file_block_versions, :version],
280
+ [:file_blocks, :deleted],
281
+ [:file_blocks, :type],
282
+ [:attachment_versions, :original_record_id],
283
+ [:tasks, :page_id],
284
+ [:tasks, :completed_at],
285
+ [:tasks, :assigned_to_id],
286
+ ]
266
287
  end