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,9 +1,9 @@
1
1
  module Cms
2
2
  class UserGroupMembership < ActiveRecord::Base
3
3
 
4
- include Cms::DefaultAccessible
4
+ extend Cms::DefaultAccessible
5
5
 
6
6
  belongs_to :group, :class_name => 'Cms::Group'
7
- belongs_to :user, :class_name => 'Cms::User'
7
+ belongs_to :user, :class_name => 'Cms::PersistentUser'
8
8
  end
9
9
  end
@@ -0,0 +1,12 @@
1
+ # A portlet type that can be used to deprecate and remove old portlets.
2
+ # During migrations, change existing portlet types with this and remove the old classes.
3
+ #
4
+ # This will not appear as a selectable portlet type, but can render itself
5
+ class DeprecatedPlaceholder < Cms::Portlet
6
+
7
+ enable_template_editor false
8
+
9
+ def render
10
+
11
+ end
12
+ end
@@ -1,5 +1,5 @@
1
1
  class DynamicPortlet < Cms::Portlet
2
-
2
+ description "Allows user to create custom logic via the user interface. Require ruby/erb to define the controller and view."
3
3
  def render
4
4
  eval(@portlet.code) unless @portlet.code.blank?
5
5
  end
@@ -1,5 +1,7 @@
1
1
  class EmailPagePortlet < Cms::Portlet
2
2
 
3
+ description "Display a form that allows visitors to email the current page to a friend."
4
+
3
5
  def render
4
6
  pmap = flash[instance_name] || params
5
7
  @email_message = Cms::EmailMessage.new pmap[:email_message]
@@ -10,9 +12,10 @@ class EmailPagePortlet < Cms::Portlet
10
12
 
11
13
  #----- Handlers --------------------------------------------------------------
12
14
  def deliver
13
- message = Cms::EmailMessage.new(params[:email_message])
15
+ message = Cms::EmailMessage.new(email_message_params())
14
16
  message.subject = self.subject
15
- message.body = "#{params[:email_page_portlet_url]}\n\n#{message.body}"
17
+ message.body = "#{params[:email_page_portlet_url]}\n\n#{message.body}"
18
+ message.sender = self.sender
16
19
  if message.save
17
20
  url_for_success
18
21
  else
@@ -21,5 +24,9 @@ class EmailPagePortlet < Cms::Portlet
21
24
  url_for_failure
22
25
  end
23
26
  end
24
-
27
+
28
+ def email_message_params
29
+ params.require(:email_message).permit(Cms::EmailMessage.permitted_params)
30
+ end
31
+
25
32
  end
@@ -1,34 +1,15 @@
1
+ # Shows a 'Forgot Password' form.
2
+ #
3
+ # This portlet is not typically necessary in CMS 4.0 or later since there is a built
4
+ # in /forgot-password route built in. In previous versions this portlet would have worked with a page that handled
5
+ # the reset password functionality.
6
+ #
1
7
  class ForgotPasswordPortlet < Cms::Portlet
2
- require 'digest/sha1'
3
8
 
4
- enable_template_editor true
9
+ enable_template_editor false
10
+ description "Displays the forgot password form. (Consider using /forgot-password instead of this)"
5
11
 
12
+ # Just shows the core CMS forgot password form.
6
13
  def render
7
- logger.warn "Handling Class #{request.class}"
8
- logger.warn "Handling FORGOT as #{request.method}"
9
- logger.warn "Am I a POST? #{request.post?}"
10
- flash[:forgot_password] = {}
11
-
12
- return unless request.post?
13
- user = Cms::User.find_by_email(params[:email])
14
-
15
- logger.warn "Send email "
16
-
17
- unless user
18
- flash[:forgot_password][:error] = "We were unable to verify your account. Please make sure your email address is accurate."
19
- return
20
- end
21
-
22
- user.reset_token = generate_reset_token
23
- if user.save
24
- flash[:forgot_password][:notice] = "Your password has been sent to #{params[:email]}"
25
- Cms::ForgotPasswordMailer.deliver_reset_password(self.reset_password_url + '?token=' + user.reset_token, user.email)
26
- end
27
14
  end
28
-
29
- private
30
- def generate_reset_token
31
- Digest::SHA1.hexdigest(Time.now.to_s.split(//).sort_by {rand}.join)
32
- end
33
-
34
15
  end
@@ -1,10 +1,13 @@
1
+ # Shows a 'Login' form.
2
+ #
3
+ # This portlet should not typically necessary in CMS 4.0 or later since there is a built
4
+ # in /login route built in.
1
5
  class LoginPortlet < Cms::Portlet
2
-
6
+
7
+ enable_template_editor false
8
+ description "Display a login form (Consider using /login instead)."
9
+
3
10
  def render
4
- @success_url = (flash[:success_url] || self.success_url)
5
- @failure_url = self.failure_url
6
- @login = flash[:login] || params[:login]
7
- @remember_me = flash[:remember_me] || params[:remember_me]
8
11
  end
9
12
 
10
13
  end
@@ -1,5 +1,7 @@
1
1
  class TagCloudPortlet < Cms::Portlet
2
-
2
+
3
+ description "Generates a Tag cloud by based the tags used on content blocks."
4
+
3
5
  def self.default_sizes
4
6
  (0..4).map{|n| "size-#{n}" }.join(" ")
5
7
  end
@@ -0,0 +1,24 @@
1
+ module Cms
2
+
3
+ # Wrap User for JSON formatting.
4
+ class UserPresenter
5
+
6
+ attr_reader :resource
7
+
8
+ def initialize(user)
9
+ @resource = user
10
+ end
11
+
12
+ def as_json(options)
13
+ hash = resource.as_json(
14
+ :only => [:id, :email, :login, :first_name, :last_name],
15
+ :methods => [:full_name])
16
+ hash[:is_logged_in] = logged_in?
17
+ hash
18
+ end
19
+
20
+ def logged_in?
21
+ !@resource.guest?
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,3 @@
1
+ <div id="modal-add-content" class="modal fade modal-content" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
2
+
3
+ </div>
@@ -0,0 +1,7 @@
1
+ <%= button_menu location do %>
2
+ <%= f.button :publish, location: location %>
3
+ <div class="btn-group right">
4
+ <%= cancel_button location %>
5
+ <%= f.button :save_draft, location: location %>
6
+ </div>
7
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%# Shows error message and any errors on the base model. Can be included in any CMS form view. %>
2
+ <div class="row-fluid padded">
3
+ <%= form.error_notification %>
4
+ <span id="base-errors">
5
+ <%= form.error :base %>
6
+ </span>
7
+ </div>
@@ -0,0 +1,10 @@
1
+ <%= page_title_with_buttons(f, yield(:buttons)) %>
2
+ <div class="padded row-fluid">
3
+ <div class="span8 main-content">
4
+ <%= yield %>
5
+ </div>
6
+ <div class="span4">
7
+ <%= yield :sidebar %>
8
+ </div>
9
+ </div>
10
+ <%= bottom_buttons f, yield(:buttons) %>
@@ -0,0 +1,3 @@
1
+ <div class="main-content padded row-fluid clearfix">
2
+ <%= yield %>
3
+ </div>
@@ -0,0 +1,8 @@
1
+ <div class="padded row-fluid">
2
+ <div class="span8 main-content">
3
+ <%= yield %>
4
+ </div>
5
+ <div class="span4">
6
+ <%= yield :sidebar %>
7
+ </div>
8
+ </div>
@@ -0,0 +1,16 @@
1
+ <%# Mobile toggle will only appear if a Page template has a mobile counterpart. %>
2
+ <% if mobile_template_exists?(@page) %>
3
+ <%
4
+ mobile_state = session[:mobile_mode] == true ? "Mobile" : "Desktop"
5
+ %>
6
+ <div class="btn-group">
7
+ <button class="btn dropdown-toggle btn-small btn-info btn-solo" data-toggle="dropdown">
8
+ <%= mobile_state %>
9
+ <span class="caret"></span>
10
+ </button>
11
+ <ul class="dropdown-menu" role="menu">
12
+ <li><%= link_to "View as Mobile", "#{@page.path}?template=mobile", :target => "_top" %></li>
13
+ <li><%= link_to "View as Desktop", "#{@page.path}?template=full", :target => "_top" %></li>
14
+ </ul>
15
+ </div>
16
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% span = 'span6' unless local_assigns.has_key? :span %>
2
+ <div class="row-fluid padded">
3
+ <h1 class="<%= span %>"><%= page_title %></h1>
4
+ <%= yield %>
5
+ </div>
@@ -0,0 +1,26 @@
1
+ <p>
2
+ Displaying
3
+ <%= collection.offset + 1 %>
4
+ -
5
+ <%= collection.offset + collection.size %>
6
+ of
7
+ <%= collection.total_entries %>
8
+ </p>
9
+ <div>
10
+ <%= link_to "<< &nbsp;".html_safe, first_page_path, :id => "first_page_link" %>
11
+ <%= link_to "< &nbsp;".html_safe, previous_page_path, :id => "previous_page_link" %>
12
+ <% url = URI.parse(current_page_path) %>
13
+ <%= form_tag url.path, :method => :get, :class => "current_page", style: 'display:inline' do %>
14
+ <% url.query.to_s.split('&').each do |p|
15
+ ; k, v = p.split('=') %>
16
+ <%= hidden_field_tag(k, CGI::unescape(v.to_s), :id => "pagination_hidden_#{k}") unless k == "page" %>
17
+ <% end %>
18
+ <%= label_tag "current_page_number", "Page", style: 'display:inline' %>
19
+ <%= text_field_tag "page", collection.current_page, :id => "current_page_number", style: 'display:inline' %>
20
+ <p style="display: inline">of
21
+ <%= collection.total_pages %></p>
22
+ <% end %>
23
+ <%= link_to "&nbsp; >".html_safe, next_page_path, :id => "next_page_link" %>
24
+ <%= link_to "&nbsp; >>".html_safe, last_page_path, :id => "last_page_link" %>
25
+ </div>
26
+
@@ -0,0 +1 @@
1
+ <div class="row-fluid"><%= yield %></div>
@@ -0,0 +1,7 @@
1
+ <%# Generic Save/Cancel used by a number of views. %>
2
+ <%= button_menu location do %>
3
+ <%= f.button :save, location: location %>
4
+ <div class="btn-group right">
5
+ <%= cancel_button location %>
6
+ </div>
7
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <div class="span4">
2
+ <%= yield %>
3
+ </div>
@@ -0,0 +1,23 @@
1
+ <% live = original.version == revision.version %>
2
+ <% current = i == 0 %>
3
+ <%= tag :tr, {:id => "revision_#{revision.version}"}, false %>
4
+ <td>
5
+ <%= link_to "v.#{revision.version}", engine(original).polymorphic_path([:version, original], version: revision.version), target: '_blank' %>
6
+ <%= '(LIVE)' if live %>
7
+ <%= '(CURRENT)' if current %>
8
+ </td>
9
+ <td>
10
+ <%= revision.version_comment %>
11
+ </td>
12
+ <td>
13
+ <%= revision.created_at.strftime("%b %d, %Y %I:%M %p") if revision.created_at %>
14
+ </td>
15
+ <td>
16
+ <%= revision.updated_by.login if revision.updated_by %>
17
+ </td>
18
+ <td>
19
+ <% unless current %>
20
+ <%= link_to 'Revert to', engine(original).polymorphic_path([:revert, original], version: revision.version), class: 'btn btn-mini btn-danger', method: :put %>
21
+ <% end %>
22
+ </td>
23
+ </tr>
@@ -0,0 +1,22 @@
1
+ <%= render :partial => 'cms/attachments/attachment_table', :locals => {:block => @block, :can_delete => true} %>
2
+ <div class="fields">
3
+ <p>Upload a new attachment:</p>
4
+ </div>
5
+
6
+ <div class="fields select_fields">
7
+ <%= label_tag "Attachment Type" %>
8
+ <%= select_tag :asset_types, options_for_select(asset_types) %>
9
+ </div>
10
+ <%= f.hidden_field :attachment_id_list, :id => "attachment_manager_ids_list" %>
11
+ <%= f.hidden_field :attachments_changed, :id => "attachments_manager_changed" %>
12
+
13
+ <div id="asset_add" class="fields file_fields" style="display:<%= asset_types.size > 1 ? "none" : "block" %>">
14
+ <label for="asset_add">Choose file</label>
15
+
16
+ <div id="asset_add_div">
17
+ <input type="file" name="attachment[data]" id="asset_add_file" onchange="$.cms.AttachmentManager.upload(this)"/>
18
+ <input type="hidden" id="asset_attachable_id" name="asset[attachable_id]" value="<%= object.id %>"/>
19
+ <input type="hidden" id="asset_attachable_class" value="<%= object.class.name %>"/>
20
+ <iframe src="javascript:false" name="asset_add_uploader" id="asset_add_uploader"></iframe>
21
+ </div>
22
+ </div>
@@ -0,0 +1 @@
1
+ <p>Error: This content type (<%= object.class.name %>) is not configured to use attachments.<p>
@@ -1,12 +1,7 @@
1
- <% page_title @toolbar_title = "Page Cache Info" %>
2
-
3
- <%= content_for :html_head do %>
4
- <%= stylesheet_link_tag("cms/form_layout") %>
1
+ <% use_page_title "Page Cache" %>
2
+ <%= render layout: 'page_title' do %>
3
+ <%= link_to "Clear", cache_path, class: 'btn btn-primary right http_delete', :rel=>'clear-cache' %>
5
4
  <% end %>
6
-
7
- <%= content_for :functions do %>
8
- <%= link_to(span_tag("Clear Page Cache"), cache_path,
9
- :class => "button http_delete") %>
5
+ <%= render layout: 'main_content' do %>
6
+ <p>The CMS caches pages which are frequently accessed by guest users to increase throughput. If a page appears stale, you may manually clear this page cache.</p>
10
7
  <% end %>
11
-
12
- <p style="font-size: larger; margin: 10px; line-height: 20px;">The CMS System caches pages which are frequently accessed by guest users to increase throughput. If data appears stale, you may manually clear this page cache.</p>
@@ -1,36 +1,27 @@
1
1
  <% if Cms::CategoryType.count > 0 %>
2
- <%= content_for :html_head do %>
3
- <script type="text/javascript">
4
- jQuery(function($){
5
- var categoriesByType = <%= Cms::CategoryType.category_map.to_json %>
6
- $("#cms_category_category_type_id").change(function(){
7
- $("#cms_category_parent_id option").remove()
8
- $.each(categoriesByType[$(this).val()], function(){
9
- $("#cms_category_parent_id").append($.createElement("option", this[0], {value: this[1]}))
10
- })
11
- })
12
- })
13
- </script>
14
- <% end %>
15
2
 
16
- <% @block.category_type ||= (Cms::Category.last(:include => :category_type) && Cms::Category.last.category_type) %>
17
- <%= f.cms_drop_down :category_type_id, Cms::CategoryType.all(:order => "name").map{|c| [c.name, c.id]}, :prompt => "Select a Type of Category", :label => "Type" %>
3
+ <% @block.category_type ||= (Cms::Category.includes(:category_type).last && Cms::Category.last.category_type) %>
4
+ <%= f.association :category_type,
5
+ collection: Cms::CategoryType.order("name"),
6
+ :prompt => "Select a Type of Category",
7
+ :label => "Type" %>
18
8
 
19
- <% categories = @block.category_type ? @block.category_type.category_list.map{|c| [c.path, c.id]} : [] %>
9
+ <% categories = @block.category_type ? @block.category_type.category_list : [] %>
20
10
  <% unless categories.empty? %>
21
- <%= f.cms_drop_down :parent_id, categories, :include_blank => true %>
11
+ <%= f.association :parent, collection: categories, :include_blank => true %>
22
12
  <% end %>
23
-
24
- <%= f.cms_text_field :name %>
13
+
14
+ <%= f.input :name %>
25
15
 
26
16
  <% else %>
27
- <% page_title "Please Create A Category Type" %>
17
+ <% use_page_title "Please Create A Category Type" %>
28
18
  <%= content_for :html_head do %>
29
19
  <script type="text/javascript">
30
- jQuery(function($){
31
- $('.buttons').remove()
32
- })
20
+ $(function(){
21
+ $('.form-actions, .top-buttons').remove();
22
+ });
33
23
  </script>
34
24
  <% end %>
35
- <p>Before you can create a category, you must <%= link_to "create a category type", new_category_type_path %>. Each category must have a category type. For example, if you plan to categorize your news releases, you might create a "News Release" category type.</p>
25
+ <p>Before you can create a category, you must create at least one category type for that category. For example, if you plan to categorize your news releases, you might create a "News Release" category type.</p>
26
+ <%= link_to "Add a New Category Type", new_category_type_path, class: 'btn btn-primary btn-small' %>
36
27
  <% end %>
@@ -1 +1 @@
1
- <%= f.cms_text_field :name %>
1
+ <%= f.input :name %>
@@ -1,69 +1,38 @@
1
- <% @toolbar_title = @page_title = "Add Existing Content to '#{@page.page_title}' Page".html_safe %>
2
-
3
- <%= content_for :html_head do %>
4
- <%= stylesheet_link_tag("cms/content_library") %>
5
- <%= javascript_tag do %>
6
- jQuery(function($){
7
- var collectionName = '<%= @block_type.content_block_type %>'
8
- $('table.data tbody tr').hover(function(){
9
- $(this).addClass('hover');
10
- }, function(){
11
- $(this).removeClass('hover');
12
- }).click(function(){
13
- var match = this.id.match(/(.*)_(\d+)/);
14
- var type = match[1];
15
- var id = match[2];
16
- $('table.data tbody tr').removeClass('selected');
17
- $(this).addClass('selected');
18
- $('#connectable_type').attr('value', type);
19
- $('#connectable_id').attr('value', id);
20
- $('#add_button').removeClass('disabled').click(function(){
21
- $('#connect_form').submit();
22
- return false;
23
- });
24
- $('#view_button').removeClass('disabled').attr('href', '/cms/'+collectionName+'/'+id);
25
- })
26
- })
27
- <% end %>
28
- <% end %>
29
-
30
- <%= content_for :functions do %>
31
- <h1><%=h @toolbar_title %></h1>
32
- <%= link_to span_tag("Add to Page"), "#", :id => "add_button", :class => "button disabled" %>
33
- <%= link_to span_tag("View Content"), "#", :id => "view_button", :class => "button disabled" %>
34
- <%= form_tag connectors_path, :id => 'connect_form' do %>
35
- <%= hidden_field_tag :page_id, @page.to_param %>
36
- <%= hidden_field_tag :container, @container %>
37
- <%= hidden_field_tag :connectable_type, '' %>
38
- <%= hidden_field_tag :connectable_id, '' %>
39
- <% end %>
40
- <br clear="all" />
1
+ <%
2
+ use_page_title"Reuse Content"
3
+ %>
4
+ <%= render layout: 'page_title' do %>
5
+ <%= link_to "Back to Page", page_path(@page), class: 'btn btn-small right' %>
41
6
  <% end %>
42
7
 
43
8
  <%= form_tag new_connector_path, :method => :get do %>
44
- <%= hidden_field_tag :page_id, @page.to_param %>
45
- <%= hidden_field_tag :container, @container %>
46
- <div style="margin: 20px 2px;">
47
- <label>
48
- Choose Type of Content
49
- <%= select_tag "block_type", options_for_select(Cms::ContentType.connectable.all.map{|ct| [ct.display_name, ct.content_block_type]}, @block_type.content_block_type), :onchange => 'this.form.submit()' %>
50
- </label>
51
- </div>
9
+ <%= hidden_field_tag :page_id, @page.to_param %>
10
+ <%= hidden_field_tag :container, @container %>
11
+ <div class="row-fluid padded">
12
+ <label for="block_type">
13
+ Choose Type of Content
14
+ <%= select_tag "block_type", options_for_select(Cms::ContentType.connectable.to_a.map { |ct| [ct.display_name, ct.content_block_type] }, @block_type.content_block_type), :onchange => 'this.form.submit()' %>
15
+ </label>
16
+ </div>
52
17
  <% end %>
53
18
 
54
- <table class="data">
55
- <thead>
56
- <tr>
57
- <th class="name first"><div class="dividers">Name</div></th>
58
- <th class="updated"><div class="dividers">Updated</div></th>
59
- <th class="used last">Uses</th>
60
- </tr>
61
- </thead>
62
- <% @blocks.each do |block| %>
63
- <tr id="<%= @block_type.content_block_type.singularize %>_<%= block.id %>">
64
- <td class="name"><%= block.name %></td>
65
- <td class="updated"><%= block.updated_at.to_formatted_s(:date) %></td>
66
- <td class="used"><%= link_to_usages(block) %></td>
67
- </tr>
68
- <% end %>
69
- </table>
19
+ <%= render layout: 'main_content' do %>
20
+ <table class="table table-bordered">
21
+ <thead>
22
+ <tr>
23
+ <th>Add?</th>
24
+ <th>Name</th>
25
+ <th>Updated</th>
26
+ <th>Uses</th>
27
+ </tr>
28
+ </thead>
29
+ <% @blocks.each do |block| %>
30
+ <tr>
31
+ <td><%= link_to "Add", connectors_path(page_id: @page.to_param, container: @container, :connectable_type => @block_type.content_block_type, connectable_id: block.id), class: "btn btn-mini btn-primary", method: :post %></td>
32
+ <td><%= link_to block.name, engine_aware_path(block), target: '_blank' %></td>
33
+ <td><%= block.updated_at.to_formatted_s(:date) %></td>
34
+ <td><%= block.connected_pages.count %></td>
35
+ </tr>
36
+ <% end %>
37
+ </table>
38
+ <% end %>