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,332 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
- require 'thor'
5
- require 'term/ansicolor'
6
- require 'rails/generators/actions'
7
- require 'active_support/core_ext/string/inflections'
8
- require 'cms/commands/actions'
9
- require 'cms/version'
10
-
11
- class String
12
- include Term::ANSIColor
13
- end
14
-
15
- class App < Thor
16
- include Thor::Actions
17
- include Rails::Generators::Actions
18
- include Cms::Commands::Actions
19
-
20
- desc "check", "Checks the existing module to determine what needs to done."
21
- def check
22
- puts "The following issues are preventing a BrowserCMS/Rails 3 upgrade.\n".red.bold
23
-
24
- # check for Jeweler usage
25
- if File.exists?("Rakefile")
26
- contents = ""
27
- File.open("Rakefile", "rb") { |f| contents = f.read }
28
-
29
- using_jeweler = contents.include?('jeweler')
30
- if using_jeweler
31
- migrate_jeweler
32
- end
33
- end
34
-
35
- # Check for routes usage
36
- if File.exists?("lib/#{name_of_module}/routes.rb")
37
- contents = ""
38
- File.open("lib/#{name_of_module}/routes.rb", "rb") { |f| contents = f.read }
39
-
40
- using_rails2_routes = contents.include?('cms.')
41
- if using_rails2_routes
42
- migrate_routes
43
- end
44
- end
45
-
46
- instructions = <<TEXT
47
- Once there are no remaining changes have been made:
48
- 1. Check in into source control
49
- 2. Run bcms-upgrade rails cleanup bcms
50
- TEXT
51
- puts instructions
52
- end
53
-
54
- desc 'v3_3_x', "Upgrades BrowserCMS files from 3.1.x to 3.3.x (Back up first)"
55
-
56
- def v3_3_x
57
- upgrade_to_3_3_0
58
- end
59
-
60
- desc 'module', "Upgrades a module. "
61
- def module
62
- unless project_is_module?
63
- say "This does not appear to be a BrowserCMS module. Skipping update."
64
- exit 0
65
- end
66
- upgrade_module_from_3_1_x_to_3_3_x if project_is_3_1_x?
67
- upgrade_from_3_3_x_to_3_4_x
68
- end
69
-
70
- desc 'next_steps', "Reprints instructions on final steps (Use after 'upgrade')"
71
-
72
- def next_steps
73
- header = <<TEXT
74
- Next Steps:
75
- ============
76
- TEXT
77
- puts header.red
78
-
79
- instructions = <<TEXT
80
- This module has been upgraded to BrowserCMS 3.3 and Rails 3! Now just do the following to test:
81
-
82
- 1. Verify the Gemfile is correct (it may be using MySQL and/or Jeweler, which your project won't need)
83
- 2. There are several other files you should review that were likely overwritten by rails.
84
- a. README - [Revert | Delete] Either revert this, or delete it. (If you had a README.markdown for instance)
85
- b. test/test_helper [Merge | Keep] If you added anything custom to your test_helper, merge the changes into the new file.
86
- c. config/routes.rb - Any non-standard routes in this file should probably be in your lib/#{name_of_module}/routes.rb so they get packaged with the gem
87
- 3. rake db:drop db:create db:migrate db:seed - Rebuilds the database
88
- 4. rake test - Check that your tests still pass
89
- a. You may get test failure if your tests that don't use 'require 'test_helper' may need it. Just replace existing requires.
90
- 5. rails server - Start the app and test
91
- 6. Make sure the gemspec includes the correct files (lib/tasks/build_gem.rake should not be included)
92
- 7. If you have migrations that need to be in the gem, edit lib/generators/#{name_of_module}/install/install_generators.
93
- 8. Portlets/blocks may need to update their render.html.erb to include .html_safe for any content being output as HTML.
94
- 9. Release the gem (rake release)
95
-
96
- TEXT
97
- puts instructions
98
- end
99
-
100
- private
101
-
102
- def new_rails
103
- puts "Overwriting with Rails 3 code."
104
- run "rails new . -f"
105
- end
106
-
107
- def upgrade_module_from_3_1_x_to_3_3_x
108
- puts "Upgrading to BrowserCMS 3.3.x..."
109
- new_rails
110
- cleanup_rails2_files
111
- cleanup_rails_3
112
- cleanup_module
113
- upgrade_to_3_3_0
114
- generate_bcms_module_for_3_3_x
115
- next_steps
116
- end
117
-
118
- # Removes any files which are Rails 2 specific
119
- def cleanup_rails2_files
120
- %w{about console dbconsole destroy generate performance plugin runner server}.each do |script_name|
121
- remove_file "script/#{script_name}"
122
- end
123
- remove_file "config/initializers/new_rails_defaults.rb"
124
-
125
- end
126
-
127
- # Clean up or revert all files associated with Rails 3 that should be rolled back or removed.
128
- def cleanup_rails_3
129
- remove_file "public/index.html"
130
- end
131
-
132
- def cleanup_module
133
- remove_file "rails/init.rb"
134
- remove_file "rails"
135
- remove_file "db/migrate/20080815014337_browsercms_3_0_0.rb"
136
- remove_file "db/migrate/20081114172307_load_seed_data.rb"
137
- remove_file "db/migrate/20091109175123_browsercms_3_0_5.rb"
138
- remove_file "app/views/layouts/application.html.erb"
139
- remove_file "config/initializers/init_module.rb"
140
-
141
- puts "Reverting some files using git.".red
142
- git :checkout => '.gitignore'
143
- git :checkout => 'doc/README_FOR_APP'
144
- git :checkout => 'config/database.yml'
145
- end
146
-
147
-
148
- def upgrade_from_3_3_x_to_3_4_x
149
- remove_dir "script" # Wipe out any old scripts, using new Rails 3.1 mountable script.
150
- remove_file 'config.ru'
151
- run "rails plugin new . --mountable --force"
152
- revert "lib/#{name_of_module}/engine.rb"
153
- revert "lib/#{name_of_module}/version.rb"
154
- revert "#{name_of_module}.gemspec"
155
-
156
- remove_file "MIT-LICENSE"
157
- remove_file "README.rdoc"
158
- move_file "config/database.yml", "test/dummy/config/database.yml"
159
-
160
- move_file "config/routes.rb", "tmp/routes.rb" # Backup to avoid getting overwritten by plugin
161
- remove_dir "config"
162
- empty_directory "config"
163
- move_file "tmp/routes.rb", "config/routes.rb"
164
-
165
- prepend_to_file "lib/#{name_of_module}/engine.rb", "require 'browsercms'\n"
166
- include_cms_module
167
-
168
- remove_dir "app/views/layouts"
169
- remove_file "app/controllers/application_controller.rb"
170
- remove_file "app/helpers/application_helper.rb"
171
-
172
- move_dir "public/bcms/#{name_of_module.gsub("bcms_", "")}", "app/assets"
173
- remove_dir "public"
174
-
175
- append_to_file "test/dummy/config/routes.rb", "\tmount_browsercms\n", :after=>"/#{name_of_module}\"\n"
176
-
177
- # Clean up db/ folder
178
- remove_file "db/schema.rb"
179
- remove_file "db/seeds.rb"
180
- remove_files "db/migrate/*_browsercms*.rb"
181
- remove_files "db/*.sqlite3"
182
-
183
- # Create a seed data file
184
- create_file "test/dummy/db/seeds.rb", "# Add seed data here"
185
-
186
- end
187
-
188
- # Does a git revert of a file.
189
- def revert(file)
190
- git :checkout => file
191
- end
192
-
193
- # Move all the contents of a given directory into the specified directory
194
- # @param [String] src Relative name of src directory (with project)
195
- # @param [String] dest Relative name of dest directory (with project)
196
- # @param [Hash] config
197
- def move_dir(src, dest, config={})
198
- src_path = File.expand_path(src, destination_root)
199
-
200
- Dir.glob(File.join(src_path, '*')).each do |file|
201
- to = File.join(destination_root, dest, File.basename(file))
202
- FileUtils.mv file, to
203
- say_status :mv, "#{relative_to_original_destination_root(file)} -> #{relative_to_original_destination_root(to)}", config.fetch(:verbose, true)
204
-
205
- end
206
- end
207
-
208
- # Remove a set of files matching a glob pattern.
209
- # @param [String] pattern i.e. db/migrate/*_browsercms_*.rb
210
- def remove_files(pattern)
211
- Dir.glob(File.join(destination_root, pattern)).each do |file|
212
- remove_file file
213
- end
214
- end
215
-
216
- # Move a file within the destination directory
217
- # @param [String] src
218
- # @param [String] dest
219
- # @param [Hash] config
220
- def move_file(src, dest, config={})
221
- src_path = File.expand_path(src, destination_root)
222
- dest_path = File.expand_path(dest, destination_root)
223
- say_status :mv, "#{relative_to_original_destination_root(src_path)} -> #{relative_to_original_destination_root(dest_path)}", config.fetch(:verbose, true)
224
- FileUtils.mv(src_path, dest_path)
225
- end
226
-
227
- def upgrade_to_3_3_0
228
- # Remove public files where are now served from CMS core.
229
- remove_file 'public/bcms/ckeditor'
230
- remove_file 'public/images/cms'
231
- remove_file 'public/javascripts/cms'
232
- remove_file 'public/stylesheets/cms'
233
- %w{jquery jquery.-ui jquery.contextMenu jquery.cookie jquery.dimensions jquery.selectbox-0.5 jquery.taglist jquery.thickbox}.each do |js|
234
- remove_file "public/javascripts/#{js}.js"
235
- end
236
-
237
- end
238
-
239
- def generate_bcms_module_for_3_3_x
240
- gem 'browsercms'
241
- gem 'mysql'
242
- gem 'jeweler', :group=>:development
243
-
244
- # Allows gem to be loaded as a engine for testing.
245
- append_to_file 'Gemfile', 'gemspec'
246
-
247
- create_file "lib/#{name_of_module}/engine.rb", "# Engine goes here"
248
- prepend_to_file "lib/#{name_of_module}.rb" do
249
- "require '#{name_of_module}/engine'\n"
250
- end
251
- route "mount_browsercms"
252
- route "routes_for_#{name_of_module}"
253
-
254
- generate_installation_script
255
-
256
-
257
- run "rails g browser_cms:cms -f"
258
- run 'rails g cms:template default'
259
-
260
-
261
- end
262
-
263
-
264
- def migrate_jeweler
265
-
266
- instructions = <<TEXT
267
- Move Jeweler Code
268
- ============
269
- 1. Copy any Jeweler related files from your Rakefile into lib/tasks/build_gem.rake.
270
- 2. Run rake -T and make sure all Jeweler tasks are still there.
271
-
272
- Alternatively, you may use bundler to handle the packaging.
273
- TEXT
274
- alert("Using Jeweler", instructions, "https://github.com/browsermedia/browsercms/wiki/Upgrading-Jeweler-with-Rails-3", ["Rakefile"])
275
- copy_file 'build_gem.rake', 'lib/tasks/build_gem.rake'
276
-
277
- end
278
-
279
-
280
- def migrate_routes
281
- instructions = <<TEXT
282
- Edit lib/#{name_of_module}/routes.rb
283
- =====
284
- # Make it Rails 3 style
285
- module Cms::Routes
286
- def routes_for_#{name_of_module}
287
- namespace(:cms) do
288
- content_blocks :name_of_blocks
289
- end
290
- end
291
- end
292
- TEXT
293
- alert("Obsolete Routing API", instructions, 'https://github.com/browsermedia/browsercms/wiki/Upgrading-Routes-to-Rails-3', ["lib/#{name_of_module}/routes.rb"])
294
-
295
- end
296
-
297
- def name_of_module
298
- File.basename(Dir.pwd)
299
- end
300
-
301
- def gem_name
302
- name_of_module.camelize
303
- end
304
-
305
- # Borrowed from https://github.com/jm/rails-upgrade/blob/master/lib/rails-upgrade/upgraders/check.rb
306
- def alert(title, text, more_info_url, culprits)
307
- puts title.red.bold
308
- puts text.white
309
- puts "More information: ".white.bold + more_info_url.blue
310
- puts
311
- puts "The culprits: ".white
312
- culprits.each do |c|
313
- puts "\t- #{c}".yellow
314
- end
315
- ensure
316
- puts "".reset
317
- end
318
-
319
- # Determines if the current projects is a BrowserCMS module or not.
320
- def project_is_module?
321
- module_file = File.expand_path(File.join(destination_root, "lib", "#{name_of_module}.rb"))
322
- File.exists?(module_file)
323
- end
324
-
325
- def project_is_3_1_x?
326
- rails_console = File.expand_path(File.join(destination_root, "script", "console"))
327
- File.exists?(rails_console)
328
- end
329
- end
330
-
331
-
332
- App.start
@@ -1,9 +0,0 @@
1
- class Browsercms305 < ActiveRecord::Migration
2
- def self.up
3
- add_column prefix(:users), :reset_token, :string
4
- end
5
-
6
- def self.down
7
- remove_column prefix(:users), :reset_token
8
- end
9
- end
@@ -1,20 +0,0 @@
1
- require 'cms/upgrades/v3_4_0'
2
-
3
- # Retroactively fix for changes that were merged into 3.1.5/3.3.0/3.4.0.
4
- # This originally was for 3.4.0, but needs to be run prior to 3.1.5 migrations.
5
- class Browsercms314 < ActiveRecord::Migration
6
- include Cms::Upgrades::V3_4_0::SchemaStatements
7
-
8
- def change
9
- standardize_foreign_keys_from_versions_tables_to_original_table
10
-
11
- end
12
-
13
- private
14
- def standardize_foreign_keys_from_versions_tables_to_original_table
15
- models = %w[attachment dynamic_view file_block html_block link page ]
16
- models.each do |model|
17
- standardize_version_id_column(model)
18
- end
19
- end
20
- end
@@ -1,95 +0,0 @@
1
- class Browsercms315 < ActiveRecord::Migration
2
- def self.up
3
- generate_ancestry_from_section_id
4
- update_latest_version_cache
5
-
6
- INDEXES.each do |index|
7
- table, column = *index
8
- add_index prefix(table), column
9
- end
10
- end
11
-
12
- def self.down
13
- # This migration is not reversible since it removes the original section_id column.
14
- end
15
-
16
- # Add some very commonly used indexes to improve the site performance as the # of pages/content grows (i.e. several thousand pages)
17
- INDEXES = [
18
- [:pages, :deleted],
19
- [:pages, :path],
20
- [:pages, :version],
21
- [:page_versions, :original_record_id],
22
- [:groups, :code],
23
- [:groups, :group_type_id],
24
- [:group_types, :cms_access],
25
- [:group_sections, :section_id],
26
- [:group_sections, :group_id],
27
- [:users, :expires_at],
28
- [:user_group_memberships, :group_id],
29
- [:user_group_memberships, :user_id],
30
- [:group_permissions, :group_id],
31
- [:group_permissions, :permission_id],
32
- [:group_permissions, [:group_id, :permission_id]],
33
- [:section_nodes, :node_type],
34
- [:section_nodes, :ancestry],
35
- [:connectors, :page_id],
36
- [:connectors, :page_version],
37
- [:html_blocks, :deleted],
38
- [:html_block_versions, :original_record_id],
39
- [:html_block_versions, :version],
40
- [:portlet_attributes, :portlet_id],
41
- [:portlets, :name],
42
- [:sections, :path],
43
- [:redirects, :from_path],
44
- [:connectors, :connectable_version],
45
- [:connectors, :connectable_type],
46
- [:content_types, :content_type_group_id],
47
- [:content_types, :name],
48
- [:file_block_versions, :original_record_id],
49
- [:file_block_versions, :version],
50
- [:file_blocks, :deleted],
51
- [:file_blocks, :type],
52
- [:attachment_versions, :original_record_id],
53
- [:tasks, :page_id],
54
- [:tasks, :completed_at],
55
- [:tasks, :assigned_to_id],
56
- ]
57
-
58
- private
59
-
60
- # v3.1.5 uses Ancestry to manage the parent child relationship between sections and their children.
61
- # This converts the data from the old section_id to use the ancestry column.
62
- def self.generate_ancestry_from_section_id
63
- add_column prefix(:section_nodes), :ancestry, :string
64
- add_column prefix(:section_nodes), :temp_parent_id, :integer
65
-
66
- Cms::SectionNode.reset_column_information
67
- root_section = Cms::Section.root.first
68
- Cms::SectionNode.create!(:node => root_section) if root_section
69
-
70
- all_nodes_but_root = Cms::SectionNode.find(:all, :conditions=>["section_id IS NOT NULL"])
71
- all_nodes_but_root.each do |sn|
72
- parent_node = Cms::SectionNode.find(:first, :conditions => ["node_id = ? and (node_type = 'Section' or node_type = 'Cms::Section')", sn.section_id])
73
- sn.temp_parent_id = parent_node.id
74
- sn.save!
75
- end
76
- rename_column prefix(:section_nodes), :temp_parent_id, :parent_id # Ancestry works off the 'parent_id' column.
77
-
78
- Cms::SectionNode.build_ancestry_from_parent_ids!
79
- remove_column prefix(:section_nodes), :section_id
80
- remove_column prefix(:section_nodes), :parent_id
81
- Cms::SectionNode.reset_column_information
82
- end
83
-
84
- # Adds a 'latest_version' pointer to pages and links. Greatly reduces the number of queries the sitemap requires to determine if pages are in draft/published mode
85
- def self.update_latest_version_cache
86
- add_column prefix(:pages), :latest_version, :integer
87
- add_column prefix(:links), :latest_version, :integer
88
- Cms::Page.all.each do |p|
89
- p.update_latest_version
90
- end
91
- Cms::Link.all.each do |link|
92
- link.update_latest_version
93
- end
94
- end
95
- end