pages_core 3.4.3 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +74 -15
  3. data/Rakefile +2 -0
  4. data/app/assets/javascripts/pages/admin.jsx +17 -0
  5. data/app/assets/javascripts/pages/admin/components.jsx +2 -0
  6. data/app/assets/javascripts/pages/admin/components/attachment.jsx +130 -0
  7. data/app/assets/javascripts/pages/admin/components/attachment_editor.jsx +131 -0
  8. data/app/assets/javascripts/pages/admin/components/attachments.jsx +211 -0
  9. data/app/assets/javascripts/pages/admin/components/date_range_select.jsx +174 -0
  10. data/app/assets/javascripts/pages/admin/components/drag_uploader.jsx +174 -0
  11. data/app/assets/javascripts/pages/admin/components/editable_image.jsx +57 -0
  12. data/app/assets/javascripts/pages/admin/components/file_upload_button.jsx +44 -0
  13. data/app/assets/javascripts/pages/admin/components/focal_point.jsx +82 -0
  14. data/app/assets/javascripts/pages/admin/components/grid_image.jsx +124 -0
  15. data/app/assets/javascripts/pages/admin/components/image_editor.jsx +496 -0
  16. data/app/assets/javascripts/pages/admin/components/image_grid.jsx +306 -0
  17. data/app/assets/javascripts/pages/admin/components/image_uploader.jsx +176 -0
  18. data/app/assets/javascripts/pages/admin/components/modal.jsx +48 -0
  19. data/app/assets/javascripts/pages/admin/components/modal_store.jsx +20 -0
  20. data/app/assets/javascripts/pages/admin/components/page_dates.jsx +58 -0
  21. data/app/assets/javascripts/pages/admin/components/page_files.jsx +14 -0
  22. data/app/assets/javascripts/pages/admin/components/page_images.jsx +16 -0
  23. data/app/assets/javascripts/pages/admin/components/page_tree.jsx +300 -0
  24. data/app/assets/javascripts/pages/admin/components/page_tree_node.jsx +396 -0
  25. data/app/assets/javascripts/pages/admin/components/page_tree_store.jsx +203 -0
  26. data/app/assets/javascripts/pages/admin/components/rich_text_area.jsx +64 -0
  27. data/app/assets/javascripts/pages/admin/components/rich_text_toolbar.jsx +91 -0
  28. data/app/assets/javascripts/pages/admin/components/toast.jsx +34 -0
  29. data/app/assets/javascripts/pages/admin/components/toast_store.jsx +52 -0
  30. data/app/assets/javascripts/pages/admin/features/content_tabs.jsx +72 -0
  31. data/app/assets/javascripts/pages/admin/features/edit_page.jsx +97 -0
  32. data/app/assets/javascripts/pages/admin/features/rich_text.jsx +14 -0
  33. data/app/assets/javascripts/pages/admin/features/tag_editor.jsx +160 -0
  34. data/app/assets/javascripts/pages/admin/lib/tree.jsx +294 -0
  35. data/app/assets/javascripts/pages/login_form.jsx +21 -0
  36. data/app/assets/stylesheets/pages/admin.scss +144 -0
  37. data/app/assets/stylesheets/pages/admin/components/archive.scss +6 -0
  38. data/app/assets/stylesheets/pages/admin/components/attachments.scss +130 -0
  39. data/app/assets/stylesheets/pages/admin/components/buttons.scss +23 -0
  40. data/app/assets/stylesheets/pages/admin/components/forms.scss +169 -0
  41. data/app/assets/stylesheets/pages/admin/components/header.scss +157 -0
  42. data/app/assets/stylesheets/pages/admin/components/image_editor.scss +195 -0
  43. data/app/assets/stylesheets/pages/admin/components/image_grid.scss +181 -0
  44. data/app/assets/stylesheets/pages/admin/components/image_uploader.scss +53 -0
  45. data/app/assets/stylesheets/pages/admin/components/layout.scss +44 -0
  46. data/app/assets/stylesheets/pages/admin/components/links.scss +43 -0
  47. data/app/assets/stylesheets/pages/admin/components/list_table.scss +61 -0
  48. data/app/assets/stylesheets/pages/admin/{login.css.scss.erb → components/login.scss} +3 -9
  49. data/app/assets/stylesheets/pages/admin/components/modal.scss +106 -0
  50. data/app/assets/stylesheets/pages/admin/components/page_tree.scss +179 -0
  51. data/app/assets/stylesheets/pages/admin/components/pagination.scss +49 -0
  52. data/app/assets/stylesheets/pages/admin/components/sidebar.scss +28 -0
  53. data/app/assets/stylesheets/pages/admin/components/tag_editor.scss +59 -0
  54. data/app/assets/stylesheets/pages/admin/components/textarea.scss +6 -0
  55. data/app/assets/stylesheets/pages/admin/components/toast.scss +51 -0
  56. data/app/assets/stylesheets/pages/admin/components/toolbar.scss +108 -0
  57. data/app/assets/stylesheets/pages/admin/controllers/pages.scss +184 -0
  58. data/app/assets/stylesheets/pages/admin/controllers/{users.css.erb → users.scss} +2 -2
  59. data/app/assets/stylesheets/pages/admin/mixins/breakpoints.scss +21 -0
  60. data/app/assets/stylesheets/pages/admin/mixins/clearfix.scss +7 -0
  61. data/app/assets/stylesheets/pages/admin/mixins/gradients.scss +7 -0
  62. data/app/assets/stylesheets/pages/admin/vars.scss +30 -0
  63. data/app/assets/stylesheets/pages/errors.css +2 -0
  64. data/app/controller_dummies/admin/admin_controller.rb +1 -1
  65. data/app/controller_dummies/application_controller.rb +3 -3
  66. data/app/controller_dummies/attachments_controller.rb +4 -0
  67. data/app/controller_dummies/frontend_controller.rb +1 -1
  68. data/app/controller_dummies/images_controller.rb +1 -1
  69. data/app/controller_dummies/page_files_controller.rb +1 -1
  70. data/app/controller_dummies/pages_controller.rb +1 -1
  71. data/app/controller_dummies/sitemaps_controller.rb +1 -1
  72. data/app/controllers/admin/attachments_controller.rb +50 -0
  73. data/app/controllers/admin/categories_controller.rb +3 -4
  74. data/app/controllers/admin/images_controller.rb +29 -18
  75. data/app/controllers/admin/invites_controller.rb +20 -23
  76. data/app/controllers/admin/pages_controller.rb +59 -111
  77. data/app/controllers/admin/password_resets_controller.rb +23 -21
  78. data/app/controllers/admin/users_controller.rb +23 -23
  79. data/app/controllers/concerns/pages_core/admin/news_page_controller.rb +67 -0
  80. data/app/controllers/concerns/pages_core/admin/persistent_params.rb +75 -0
  81. data/app/controllers/concerns/pages_core/authentication.rb +4 -3
  82. data/app/controllers/concerns/pages_core/error_renderer.rb +36 -0
  83. data/app/controllers/concerns/pages_core/error_reporting.rb +36 -0
  84. data/app/controllers/concerns/pages_core/policies_helper.rb +16 -13
  85. data/app/controllers/concerns/pages_core/preview_pages_controller.rb +44 -0
  86. data/app/controllers/concerns/pages_core/process_titler.rb +4 -4
  87. data/app/controllers/concerns/pages_core/rss_controller.rb +25 -0
  88. data/app/controllers/concerns/pages_core/static_cache_controller.rb +48 -0
  89. data/app/controllers/errors_controller.rb +20 -30
  90. data/app/controllers/pages_core/admin_controller.rb +21 -70
  91. data/app/controllers/pages_core/attachments_controller.rb +40 -0
  92. data/app/controllers/pages_core/{application_controller.rb → base_controller.rb} +13 -8
  93. data/app/controllers/pages_core/frontend/page_files_controller.rb +7 -24
  94. data/app/controllers/pages_core/frontend/pages_controller.rb +39 -228
  95. data/app/controllers/pages_core/frontend_controller.rb +10 -3
  96. data/app/controllers/pages_core/images_controller.rb +2 -2
  97. data/app/controllers/pages_core/sitemaps_controller.rb +15 -10
  98. data/app/controllers/sessions_controller.rb +4 -14
  99. data/app/formatters/pages_core/html_formatter.rb +52 -48
  100. data/app/formatters/pages_core/image_embedder.rb +79 -0
  101. data/app/formatters/pages_core/link_renderer.rb +17 -0
  102. data/app/helpers/admin/admin_helper.rb +1 -1
  103. data/app/helpers/admin/menu_helper.rb +19 -16
  104. data/app/helpers/admin/pages_helper.rb +27 -30
  105. data/app/helpers/application_helper.rb +1 -1
  106. data/app/helpers/frontend_helper.rb +1 -1
  107. data/app/helpers/pages_core/admin/admin_helper.rb +44 -71
  108. data/app/helpers/pages_core/admin/content_tabs_helper.rb +28 -0
  109. data/app/helpers/pages_core/admin/date_range_helper.rb +55 -0
  110. data/app/helpers/pages_core/admin/form_builder.rb +44 -0
  111. data/app/helpers/pages_core/admin/image_uploads_helper.rb +48 -0
  112. data/app/helpers/pages_core/admin/labelled_field_helper.rb +19 -19
  113. data/app/helpers/pages_core/admin/page_blocks_helper.rb +66 -0
  114. data/app/helpers/pages_core/admin/page_json_helper.rb +23 -0
  115. data/app/helpers/pages_core/admin/tag_editor_helper.rb +16 -14
  116. data/app/helpers/pages_core/application_helper.rb +15 -26
  117. data/app/helpers/pages_core/attachments_helper.rb +40 -0
  118. data/app/helpers/pages_core/form_builder.rb +71 -134
  119. data/app/helpers/pages_core/frontend_helper.rb +2 -8
  120. data/app/helpers/pages_core/head_tags_helper.rb +36 -169
  121. data/app/helpers/pages_core/images_helper.rb +5 -4
  122. data/app/helpers/pages_core/meta_tags_helper.rb +96 -0
  123. data/app/helpers/pages_core/open_graph_tags_helper.rb +51 -0
  124. data/app/helpers/pages_core/page_path_helper.rb +66 -0
  125. data/app/jobs/pages_core/autopublish_job.rb +2 -2
  126. data/app/jobs/pages_core/sweep_cache_job.rb +3 -3
  127. data/app/mailers/admin_mailer.rb +8 -31
  128. data/app/models/attachment.rb +78 -0
  129. data/app/models/autopublisher.rb +7 -4
  130. data/app/models/category.rb +10 -11
  131. data/app/models/concerns/pages_core/has_roles.rb +5 -4
  132. data/app/models/concerns/pages_core/humanizable_param.rb +11 -8
  133. data/app/models/concerns/pages_core/page_model/attachments.rb +41 -0
  134. data/app/models/concerns/pages_core/page_model/autopublishable.rb +25 -0
  135. data/app/models/concerns/pages_core/page_model/dated_page.rb +59 -0
  136. data/app/models/concerns/pages_core/page_model/images.rb +51 -0
  137. data/app/models/concerns/pages_core/page_model/localizable.rb +38 -0
  138. data/app/models/concerns/pages_core/page_model/pathable.rb +114 -0
  139. data/app/models/concerns/pages_core/page_model/redirectable.rb +36 -0
  140. data/app/models/concerns/pages_core/page_model/sortable.rb +53 -0
  141. data/app/models/concerns/pages_core/page_model/status.rb +50 -0
  142. data/app/models/concerns/pages_core/page_model/templateable.rb +85 -0
  143. data/app/models/concerns/pages_core/page_model/tree.rb +134 -0
  144. data/app/models/concerns/pages_core/sweepable.rb +3 -3
  145. data/app/models/concerns/pages_core/taggable.rb +11 -4
  146. data/app/models/image.rb +15 -1
  147. data/app/models/invite.rb +3 -11
  148. data/app/models/invite_role.rb +5 -3
  149. data/app/models/page.rb +49 -234
  150. data/app/models/page_builder.rb +5 -7
  151. data/app/models/page_category.rb +7 -0
  152. data/app/models/page_exporter.rb +100 -0
  153. data/app/models/page_file.rb +26 -50
  154. data/app/models/page_image.rb +7 -40
  155. data/app/models/page_path.rb +52 -0
  156. data/app/models/password_reset_token.rb +7 -9
  157. data/app/models/role.rb +23 -7
  158. data/app/models/tag.rb +28 -19
  159. data/app/models/tagging.rb +6 -5
  160. data/app/models/user.rb +38 -32
  161. data/app/policies/invite_policy.rb +2 -0
  162. data/app/policies/page_file_policy.rb +15 -17
  163. data/app/policies/page_image_policy.rb +15 -17
  164. data/app/policies/page_policy.rb +29 -23
  165. data/app/policies/policy.rb +4 -8
  166. data/app/policies/user_policy.rb +34 -32
  167. data/app/serializers/admin/attachment_serializer.rb +31 -0
  168. data/app/serializers/admin/image_serializer.rb +55 -6
  169. data/app/serializers/admin/page_file_serializer.rb +8 -0
  170. data/app/serializers/admin/page_image_serializer.rb +3 -1
  171. data/app/serializers/page_export_serializer.rb +32 -0
  172. data/app/serializers/page_file_export_serializer.rb +6 -0
  173. data/app/serializers/page_image_export_serializer.rb +42 -0
  174. data/app/serializers/page_image_serializer.rb +4 -0
  175. data/app/serializers/page_serializer.rb +2 -0
  176. data/app/services/pages_core/create_user_service.rb +39 -0
  177. data/app/services/pages_core/destroy_invite_service.rb +25 -0
  178. data/app/services/pages_core/invite_service.rb +43 -0
  179. data/app/views/admin/images/show.json.jbuilder +8 -0
  180. data/app/views/admin/invites/new.html.erb +2 -1
  181. data/app/views/admin/invites/show.html.erb +3 -4
  182. data/app/views/admin/pages/_edit_content.html.erb +11 -2
  183. data/app/views/admin/pages/_edit_files.html.erb +8 -0
  184. data/app/views/admin/pages/_edit_images.html.erb +8 -84
  185. data/app/views/admin/pages/_edit_metadata.html.erb +23 -12
  186. data/app/views/admin/pages/_edit_options.html.erb +25 -25
  187. data/app/views/admin/pages/_list_item.html.erb +50 -0
  188. data/app/views/admin/pages/deleted.html.erb +42 -0
  189. data/app/views/admin/pages/edit.html.erb +11 -91
  190. data/app/views/admin/pages/index.html.erb +10 -54
  191. data/app/views/admin/pages/new.html.erb +5 -4
  192. data/app/views/admin/pages/news.html.erb +61 -47
  193. data/app/views/admin/password_resets/show.html.erb +6 -9
  194. data/app/views/admin/users/_access_control.html.erb +4 -1
  195. data/app/views/admin/users/_list.html.erb +12 -7
  196. data/app/views/admin/users/edit.html.erb +5 -11
  197. data/app/views/admin/users/login.html.erb +58 -15
  198. data/app/views/admin/users/show.html.erb +1 -1
  199. data/app/views/admin_mailer/invite.text.erb +1 -1
  200. data/app/views/admin_mailer/password_reset.text.erb +1 -1
  201. data/app/views/errors/401.html.erb +6 -0
  202. data/app/views/errors/403.html.erb +1 -1
  203. data/app/views/errors/422.html.erb +7 -0
  204. data/app/views/errors/500.html.erb +2 -15
  205. data/app/views/errors/_generic_help.html.erb +1 -1
  206. data/app/views/feeds/pages.rss.builder +2 -2
  207. data/app/views/layouts/admin.html.erb +83 -79
  208. data/app/views/layouts/admin/_analytics.html.erb +1 -3
  209. data/app/views/layouts/admin/_header.html.erb +4 -4
  210. data/app/views/layouts/errors.html.erb +3 -7
  211. data/app/views/sitemaps/show.xml.builder +2 -0
  212. data/config/locales/en.yml +50 -1
  213. data/config/routes.rb +57 -58
  214. data/db/migrate/20111219033112_create_pages_tables.rb +191 -276
  215. data/lib/pages_core.rb +34 -32
  216. data/lib/pages_core/admin_menu_item.rb +18 -4
  217. data/lib/pages_core/archive_finder.rb +49 -20
  218. data/lib/pages_core/attachment_embedder.rb +36 -0
  219. data/lib/pages_core/cache_sweeper.rb +9 -89
  220. data/lib/pages_core/configuration.rb +3 -3
  221. data/lib/pages_core/configuration/base.rb +8 -9
  222. data/lib/pages_core/configuration/pages.rb +8 -9
  223. data/lib/pages_core/digest_verifier.rb +70 -0
  224. data/lib/pages_core/engine.rb +72 -5
  225. data/lib/pages_core/extensions.rb +2 -3
  226. data/lib/pages_core/extensions/string_extensions.rb +2 -2
  227. data/lib/pages_core/page_path_constraint.rb +23 -0
  228. data/lib/pages_core/pages_plugin.rb +13 -2
  229. data/lib/pages_core/plugin.rb +8 -52
  230. data/lib/pages_core/pub_sub.rb +38 -0
  231. data/lib/pages_core/static_cache.rb +26 -0
  232. data/lib/pages_core/static_cache/null_handler.rb +17 -0
  233. data/lib/pages_core/static_cache/page_cache_handler.rb +56 -0
  234. data/lib/pages_core/static_cache/varnish_handler.rb +55 -0
  235. data/lib/pages_core/templates.rb +10 -10
  236. data/lib/pages_core/templates/block_configuration.rb +4 -3
  237. data/lib/pages_core/templates/configuration.rb +115 -34
  238. data/lib/pages_core/templates/configuration_handler.rb +9 -5
  239. data/lib/pages_core/templates/configuration_proxy.rb +12 -12
  240. data/lib/pages_core/templates/controller_actions.rb +1 -1
  241. data/lib/pages_core/templates/template_configuration.rb +102 -98
  242. data/lib/pages_core/version.rb +2 -2
  243. data/lib/rails/generators/pages_core/frontend/frontend_generator.rb +11 -16
  244. data/lib/rails/generators/pages_core/frontend/templates/application.js.erb +1 -2
  245. data/lib/rails/generators/pages_core/frontend/templates/{application.css.scss.erb → application.scss.erb} +0 -0
  246. data/lib/rails/generators/pages_core/frontend/templates/{base.css.scss.erb → base.scss.erb} +0 -0
  247. data/lib/rails/generators/pages_core/frontend/templates/{breakpoints.css.scss.erb → breakpoints.scss.erb} +0 -0
  248. data/lib/rails/generators/pages_core/frontend/templates/clearfix.scss.erb +7 -0
  249. data/lib/rails/generators/pages_core/frontend/templates/layout.html.erb +0 -3
  250. data/lib/rails/generators/pages_core/install/install_generator.rb +25 -66
  251. data/lib/rails/generators/pages_core/install/templates/active_job_initializer.rb +2 -0
  252. data/lib/rails/generators/pages_core/install/templates/application_controller.rb +2 -2
  253. data/lib/rails/generators/pages_core/install/templates/application_helper.rb +1 -1
  254. data/lib/rails/generators/pages_core/install/templates/delayed_job +1 -0
  255. data/lib/rails/generators/pages_core/install/templates/delayed_job_initializer.rb +16 -1
  256. data/lib/rails/generators/pages_core/install/templates/frontend_controller.rb +1 -1
  257. data/lib/rails/generators/pages_core/install/templates/frontend_helper.rb +1 -1
  258. data/lib/rails/generators/pages_core/install/templates/gitignore.erb +12 -1
  259. data/lib/rails/generators/pages_core/install/templates/page_templates_initializer.rb +9 -15
  260. data/lib/rails/generators/pages_core/install/templates/pages_controller.rb +1 -1
  261. data/lib/rails/generators/pages_core/install/templates/pages_initializer.rb +5 -23
  262. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +19 -14
  263. data/lib/rails/generators/pages_core/rspec/templates/factories.rb +3 -8
  264. data/lib/rails/generators/pages_core/rspec/templates/mailer_macros.rb +2 -0
  265. data/lib/rails/generators/pages_core/rspec/templates/page_templates_spec.rb +26 -0
  266. data/lib/rails/generators/pages_core/rspec/templates/rails_helper.rb +91 -0
  267. data/lib/rails/generators/pages_core/rspec/templates/spec_helper.rb +89 -45
  268. data/lib/tasks/pages.rake +2 -63
  269. data/lib/tasks/pages/cache.rake +12 -5
  270. data/lib/tasks/pages/export.rake +11 -0
  271. data/lib/tasks/pages/page_paths.rake +12 -0
  272. data/template.rb +5 -3
  273. data/vendor/assets/javascripts/ReactCrop.min.js +1 -0
  274. data/vendor/assets/javascripts/reflux.min.js +1 -0
  275. data/vendor/assets/stylesheets/ReactCrop.css +167 -0
  276. metadata +356 -192
  277. data/app/assets/images/pages/admin/description-bg.gif +0 -0
  278. data/app/assets/images/pages/admin/drag-handle.gif +0 -0
  279. data/app/assets/images/pages/admin/flash-error-bg.gif +0 -0
  280. data/app/assets/images/pages/admin/formelement-bg.gif +0 -0
  281. data/app/assets/images/pages/admin/header-tab-current-bg.gif +0 -0
  282. data/app/assets/images/pages/admin/list-table-td-bg.gif +0 -0
  283. data/app/assets/images/pages/admin/sidebar-bg.gif +0 -0
  284. data/app/assets/images/pages/admin/textarea_controls.gif +0 -0
  285. data/app/assets/javascripts/pages/admin.js.coffee +0 -54
  286. data/app/assets/javascripts/pages/admin/controllers/base.js.coffee +0 -4
  287. data/app/assets/javascripts/pages/admin/controllers/pages_controller.js.coffee +0 -139
  288. data/app/assets/javascripts/pages/admin/controllers/users_controller.js.coffee +0 -9
  289. data/app/assets/javascripts/pages/admin/features/content_tabs.js.coffee +0 -47
  290. data/app/assets/javascripts/pages/admin/features/editable_image.js.coffee.erb +0 -122
  291. data/app/assets/javascripts/pages/admin/features/modal.js.coffee +0 -66
  292. data/app/assets/javascripts/pages/admin/features/page_images.js +0 -329
  293. data/app/assets/javascripts/pages/admin/features/rich_text.js.coffee +0 -40
  294. data/app/assets/javascripts/pages/admin/features/tag_editor.js +0 -159
  295. data/app/assets/javascripts/pages/admin/lib/ajax_extensions.js.coffee +0 -17
  296. data/app/assets/javascripts/pages/admin/lib/center_on_screen.js.coffee +0 -21
  297. data/app/assets/javascripts/pages/admin/lib/jrichtextarea.js +0 -57
  298. data/app/assets/javascripts/pages/login_form.js.coffee +0 -17
  299. data/app/assets/stylesheets/pages/admin.css.erb +0 -404
  300. data/app/assets/stylesheets/pages/admin/buttons.css.erb +0 -5
  301. data/app/assets/stylesheets/pages/admin/controllers/artists.css.erb +0 -94
  302. data/app/assets/stylesheets/pages/admin/controllers/files.css.erb +0 -58
  303. data/app/assets/stylesheets/pages/admin/controllers/pages.css.scss.erb +0 -178
  304. data/app/assets/stylesheets/pages/admin/editable_image.css.erb +0 -19
  305. data/app/assets/stylesheets/pages/admin/forms.css.scss.erb +0 -73
  306. data/app/assets/stylesheets/pages/admin/header.css.erb +0 -129
  307. data/app/assets/stylesheets/pages/admin/images.css.scss.erb +0 -160
  308. data/app/assets/stylesheets/pages/admin/links.css.erb +0 -34
  309. data/app/assets/stylesheets/pages/admin/list_table.css.erb +0 -56
  310. data/app/assets/stylesheets/pages/admin/modal.css.erb +0 -14
  311. data/app/assets/stylesheets/pages/admin/pagination.css.scss +0 -22
  312. data/app/assets/stylesheets/pages/admin/print.css.erb +0 -17
  313. data/app/assets/stylesheets/pages/admin/sidebar.css.erb +0 -39
  314. data/app/assets/stylesheets/pages/admin/sortable_images.css.erb +0 -18
  315. data/app/assets/stylesheets/pages/admin/tag_editor.css.scss.erb +0 -48
  316. data/app/assets/stylesheets/pages/admin/textarea.css.erb +0 -55
  317. data/app/controllers/admin/page_comments_controller.rb +0 -61
  318. data/app/controllers/admin/page_files_controller.rb +0 -81
  319. data/app/controllers/admin/page_images_controller.rb +0 -116
  320. data/app/controllers/concerns/pages_core/domain_based_cache.rb +0 -28
  321. data/app/controllers/concerns/pages_core/exception_handler.rb +0 -114
  322. data/app/helpers/pages_core/login_helper.rb +0 -14
  323. data/app/indices/page_file_index.rb +0 -9
  324. data/app/indices/page_index.rb +0 -29
  325. data/app/indices/user_index.rb +0 -11
  326. data/app/models/concerns/pages_core/page_tree.rb +0 -85
  327. data/app/models/concerns/pages_core/searchable_page.rb +0 -33
  328. data/app/models/concerns/pages_core/templateable.rb +0 -85
  329. data/app/models/localization.rb +0 -27
  330. data/app/models/page_comment.rb +0 -18
  331. data/app/views/admin/pages/_edit_comments.html.erb +0 -21
  332. data/app/views/admin/pages/_pagelisting.html.erb +0 -63
  333. data/app/views/admin/users/_login_form.html.erb +0 -47
  334. data/app/views/admin_mailer/comment_notification.text.erb +0 -7
  335. data/app/views/admin_mailer/error_report.html.erb +0 -70
  336. data/app/views/errors/500_critical.html.erb +0 -7
  337. data/app/views/errors/report.html.erb +0 -4
  338. data/config/removed_migrations.yml +0 -60
  339. data/db/migrate/20120627033112_rename_textbits.rb +0 -19
  340. data/db/migrate/20121010055412_drop_removed_tables.rb +0 -83
  341. data/db/migrate/20130130053932_add_queue_to_delayed_jobs.rb +0 -11
  342. data/db/migrate/20130303053932_remove_filter_from_localizations.rb +0 -11
  343. data/db/migrate/20130303160632_remove_imagesets.rb +0 -24
  344. data/db/migrate/20130303161732_remove_sms_subscribers.rb +0 -16
  345. data/db/migrate/20130823133208_update_page_redirect_to.rb +0 -25
  346. data/db/migrate/20140203183900_create_roles.rb +0 -63
  347. data/db/migrate/20140414150500_change_locale_names.rb +0 -13
  348. data/db/migrate/20140515130100_remove_sphinx_deltas.rb +0 -15
  349. data/db/migrate/20140604142100_remove_openid_url.rb +0 -9
  350. data/db/migrate/20140920231700_convert_images_to_dis.rb +0 -79
  351. data/db/migrate/20140922124600_convert_page_files_to_dis.rb +0 -50
  352. data/db/migrate/20141004003100_create_password_reset_tokens.rb +0 -10
  353. data/db/migrate/20141006181300_remove_user_cruft.rb +0 -11
  354. data/db/migrate/20141007173000_create_invites.rb +0 -16
  355. data/db/migrate/20150204130800_update_delayed_job_table.rb +0 -9
  356. data/db/migrate/20150401131300_localize_images.rb +0 -39
  357. data/db/migrate/20150520174300_add_meta_image_to_page.rb +0 -5
  358. data/db/migrate/20150904164200_add_pinned_to_tags.rb +0 -5
  359. data/lib/pages_core/extensions/hash_extensions.rb +0 -23
  360. data/lib/pages_core/localizable.rb +0 -49
  361. data/lib/pages_core/localizable/active_record_extension.rb +0 -41
  362. data/lib/pages_core/localizable/class_methods.rb +0 -51
  363. data/lib/pages_core/localizable/configuration.rb +0 -50
  364. data/lib/pages_core/localizable/instance_methods.rb +0 -130
  365. data/lib/pages_core/localizable/localizer.rb +0 -72
  366. data/lib/pages_core/localizable/scope_extension.rb +0 -22
  367. data/lib/pages_core/paginates.rb +0 -102
  368. data/lib/rails/generators/pages_core/frontend/templates/hidpi.css.scss.erb +0 -8
  369. data/lib/rails/generators/pages_core/install/templates/cache_sweeper_initializer.rb +0 -11
  370. data/lib/rails/generators/pages_core/install/templates/thinking_sphinx.yml +0 -12
  371. data/lib/tasks/db.rake +0 -96
  372. data/lib/tasks/pages/assets.rake +0 -65
  373. data/lib/tasks/pages/update.rake +0 -19
  374. data/vendor/assets/javascripts/jquery.dimscreen.js +0 -77
  375. data/vendor/assets/javascripts/jquery.fieldselection.js +0 -59
@@ -1,4 +1,4 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module PagesCore
4
4
  module Templates
@@ -7,7 +7,41 @@ module PagesCore
7
7
 
8
8
  class << self
9
9
  def all_blocks
10
- new(:index).all_blocks
10
+ (config.get(:default, :blocks).keys +
11
+ all_templates.map { |t| configured_block_names(t) } +
12
+ all_templates.map do |t|
13
+ enabled_block_names(t)
14
+ end).flatten.compact.uniq
15
+ end
16
+
17
+ def all_templates
18
+ Array(config.get(:templates).try(&:keys))
19
+ end
20
+
21
+ def config
22
+ PagesCore::Templates.configuration
23
+ end
24
+
25
+ def localized_blocks
26
+ template_blocks = all_templates.flat_map do |t|
27
+ config.get(:templates, t, :blocks).to_a
28
+ end
29
+
30
+ (config.get(:default, :blocks).to_a + template_blocks)
31
+ .compact
32
+ .select { |_, opts| opts[:localized] }.map(&:first)
33
+ end
34
+
35
+ private
36
+
37
+ def configured_block_names(template)
38
+ Array(config.get(:default, :blocks).try(&:keys)) +
39
+ Array(config.get(:templates, template, :blocks).try(&:keys))
40
+ end
41
+
42
+ def enabled_block_names(template)
43
+ Array(config.get(:default, :enabled_blocks, :value)) +
44
+ Array(config.get(:templates, template, :enabled_blocks, :value))
11
45
  end
12
46
  end
13
47
 
@@ -16,7 +50,7 @@ module PagesCore
16
50
  end
17
51
 
18
52
  def config
19
- PagesCore::Templates.configuration
53
+ self.class.config
20
54
  end
21
55
 
22
56
  def value(*path)
@@ -37,9 +71,9 @@ module PagesCore
37
71
 
38
72
  def block(block_name)
39
73
  default_block_options(block_name)
40
- .deep_merge(config.get(*[:default, :blocks, block_name]) || {})
74
+ .deep_merge(config.get(:default, :blocks, block_name) || {})
41
75
  .deep_merge(
42
- config.get(*[:templates, @template_name, :blocks, block_name]) || {}
76
+ config.get(:templates, @template_name, :blocks, block_name) || {}
43
77
  )
44
78
  end
45
79
 
@@ -60,44 +94,23 @@ module PagesCore
60
94
  blocks
61
95
  end
62
96
 
63
- # Returns a list of all configured blocks
64
- def all_blocks
65
- (
66
- all_templates.map { |t| configured_block_names(t) } +
67
- all_templates.map { |t| enabled_block_names(t) }
68
- ).flatten.compact.uniq
69
- end
70
-
71
97
  private
72
98
 
73
- def configured_block_names(template)
74
- Array(config.get(:default, :blocks).try(&:keys)) +
75
- Array(config.get(:templates, template, :blocks).try(&:keys))
76
- end
77
-
78
- def enabled_block_names(template)
79
- Array(config.get(:default, :enabled_blocks, :value)) +
80
- Array(config.get(:templates, template, :enabled_blocks, :value))
81
- end
82
-
83
99
  def default_block_options(block_name)
84
100
  {
85
- title: block_name.to_s.humanize,
101
+ title: block_name.to_s.humanize,
86
102
  optional: true,
87
- size: :small
103
+ size: :small
88
104
  }
89
105
  end
90
-
91
- def all_templates
92
- Array(config.get(:templates).try(&:keys))
93
- end
94
106
  end
95
107
 
96
108
  class << self
97
109
  def configure(options = {}, &_block)
98
- if options[:reset] == :defaults
110
+ case options[:reset]
111
+ when :defaults
99
112
  load_default_configuration
100
- elsif options[:reset] == true
113
+ when true
101
114
  @configuration = PagesCore::Templates::Configuration.new
102
115
  end
103
116
  yield configuration if block_given?
@@ -108,15 +121,7 @@ module PagesCore
108
121
 
109
122
  # Default template options
110
123
  config.default do |default|
111
- default.template :autodetect, root: "index"
112
- default.image :enabled, linkable: false
113
- default.comments :disabled
114
- default.comments_allowed :enabled
115
- default.files :disabled
116
- default.images :disabled
117
- default.text_filter :textile
118
- default.enabled_blocks [:headline, :excerpt, :body]
119
- default.tags :disabled
124
+ default_configuration(default)
120
125
  default_block_configuration(default)
121
126
  end
122
127
  end
@@ -125,74 +130,73 @@ module PagesCore
125
130
  load_default_configuration unless defined? @configuration
126
131
  @configuration
127
132
  end
128
- alias_method :config, :configuration
133
+ alias config configuration
129
134
 
130
135
  def metadata_block_names
131
- [
132
- :meta_title,
133
- :meta_description,
134
- :open_graph_title,
135
- :open_graph_description
136
- ]
136
+ %i[meta_title
137
+ meta_description
138
+ open_graph_title
139
+ open_graph_description]
137
140
  end
138
141
 
139
142
  private
140
143
 
144
+ def default_configuration(config)
145
+ config.template :autodetect, root: "index"
146
+ config.image :enabled, linkable: false
147
+ config.files :disabled
148
+ config.images :disabled
149
+ config.text_filter :textile
150
+ config.enabled_blocks %i[headline excerpt body]
151
+ config.tags :disabled
152
+ config.dates :disabled
153
+ end
154
+
155
+ def default_blocks
156
+ {
157
+ name: { size: :field, class: "page_title" },
158
+ body: { size: :large },
159
+ headline: { size: :field },
160
+ excerpt: {},
161
+ boxout: {}
162
+ }.merge(default_meta_blocks)
163
+ end
164
+
165
+ def default_meta_blocks
166
+ {
167
+ meta_title: { size: :field },
168
+ meta_description: { size: :small },
169
+ open_graph_title: { size: :field },
170
+ open_graph_description: { size: :small }
171
+ }
172
+ end
173
+
141
174
  def default_block_configuration(default)
142
175
  default.blocks do |block|
143
- block.name(
144
- "Name",
145
- size: :field,
146
- description: "This is the name of the page, and it will also " \
147
- "be the name of the link to this page.",
148
- class: "page_title"
149
- )
150
- block.body(
151
- "Body",
152
- size: :large
153
- )
154
- block.headline(
155
- "Headline",
156
- description: "Optional, use if the headline should differ from " \
157
- "the page name.",
158
- size: :field
159
- )
160
- block.excerpt(
161
- "Standfirst",
162
- description: "An introductory paragraph before the start " \
163
- "of the body."
164
- )
165
- block.boxout(
166
- "Boxout",
167
- description: "Part of the page, usually background info or " \
168
- "facts related to the article."
169
- )
170
- block.meta_title(
171
- "Title",
172
- size: :field,
173
- description: "Document title. Will fall back to the page name " \
174
- "if empty. Recommended length: Up to 56 characters."
175
- )
176
- block.meta_description(
177
- "Description",
178
- size: :small,
179
- description: "Description for search engines. Will fall back to " \
180
- "Standfirst if empty. Recommended length: Up to 156 characters."
181
- )
182
- block.open_graph_title(
183
- "Open Graph Title",
184
- size: :field,
185
- description: "Page title for Facebook sharing. Will fall back to " \
186
- "the document title."
187
- )
188
- block.open_graph_description(
189
- "Open Graph Description",
190
- size: :small,
191
- description: "Description for Facebook sharing. Will fall back " \
192
- "to Description or Standfirst if empty."
193
- )
176
+ default_blocks.each_key do |name|
177
+ block.send(
178
+ name,
179
+ template_block_localization("#{name}.name"),
180
+ default_block_options(name)
181
+ )
182
+ end
194
183
  end
195
184
  end
185
+
186
+ def default_block_options(name)
187
+ {
188
+ description: template_block_localization("#{name}.description")
189
+ }.merge(default_blocks[name])
190
+ end
191
+
192
+ def template_block_localization(str)
193
+ # Templates are configured in an initializer, and
194
+ # localizations aren't usually configured at this time. This
195
+ # forces loading of localizations from the plugin.
196
+ PagesCore::PagesPlugin.configure_localizations!
197
+
198
+ I18n.t("templates.default.blocks.#{str}")
199
+ end
196
200
  end
197
201
  end
198
202
  end
@@ -1,5 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module PagesCore
4
- VERSION = "3.4.3" unless PagesCore.const_defined?("VERSION")
4
+ VERSION = "3.7.0" unless PagesCore.const_defined?("VERSION")
5
5
  end
@@ -1,15 +1,10 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module PagesCore
4
4
  module Generators
5
5
  class FrontendGenerator < Rails::Generators::Base
6
6
  desc "Creates the default Pages frontend"
7
- source_root File.expand_path("../templates", __FILE__)
8
-
9
- def install_gems
10
- gem "modernizr-rails"
11
- gem "selectivizr-rails"
12
- end
7
+ source_root File.expand_path("templates", __dir__)
13
8
 
14
9
  def create_layout
15
10
  copy_file(
@@ -20,8 +15,8 @@ module PagesCore
20
15
 
21
16
  def create_application_scss
22
17
  template(
23
- "application.css.scss.erb",
24
- File.join("app/assets/stylesheets/application.css.scss")
18
+ "application.scss.erb",
19
+ File.join("app/assets/stylesheets/application.scss")
25
20
  )
26
21
  end
27
22
 
@@ -38,22 +33,22 @@ module PagesCore
38
33
 
39
34
  def create_breakpoints_css
40
35
  template(
41
- "breakpoints.css.scss.erb",
42
- File.join("app/assets/stylesheets/mixins/breakpoints.css.scss")
36
+ "breakpoints.scss.erb",
37
+ File.join("app/assets/stylesheets/mixins/breakpoints.scss")
43
38
  )
44
39
  end
45
40
 
46
- def create_hidpi_css
41
+ def create_clearfix_css
47
42
  template(
48
- "hidpi.css.scss.erb",
49
- File.join("app/assets/stylesheets/mixins/hidpi.css.scss")
43
+ "clearfix.scss.erb",
44
+ File.join("app/assets/stylesheets/mixins/clearfix.scss")
50
45
  )
51
46
  end
52
47
 
53
48
  def create_base_css
54
49
  template(
55
- "base.css.scss.erb",
56
- File.join("app/assets/stylesheets/components/base.css.scss")
50
+ "base.scss.erb",
51
+ File.join("app/assets/stylesheets/components/base.scss")
57
52
  )
58
53
  end
59
54
 
@@ -12,5 +12,4 @@
12
12
  //
13
13
  //= require jquery
14
14
  //= require jquery_ujs
15
- //= require modernizr
16
- //= require_tree .
15
+ //= require_tree .
@@ -0,0 +1,7 @@
1
+ %clearfix {
2
+ &:after {
3
+ content: "";
4
+ display: table;
5
+ clear: both;
6
+ }
7
+ }
@@ -2,9 +2,6 @@
2
2
  <%# default_meta_image "/images/facebook-share.png" %>
3
3
  <%= stylesheet_link_tag "application" %>
4
4
  <%= javascript_include_tag "application" %>
5
- <!--[if lte IE 8]>
6
- <%= javascript_include_tag 'selectivizr' %>
7
- <![endif]-->
8
5
  <%= feed_tags %>
9
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
10
7
  <%# google_analytics_tags "UA-xxxxxxxx-1" %>
@@ -1,10 +1,10 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  module PagesCore
4
4
  module Generators
5
5
  class InstallGenerator < Rails::Generators::Base
6
6
  desc "Creates the Pages configuration"
7
- source_root File.expand_path("../templates", __FILE__)
7
+ source_root File.expand_path("templates", __dir__)
8
8
 
9
9
  def default_app_name
10
10
  Rails.root.to_s.split("/").last
@@ -19,101 +19,64 @@ module PagesCore
19
19
  "Default sender?",
20
20
  "no-reply@#{@domain_name}"
21
21
  )
22
-
23
- @sphinx_port ||= ask_with_fallback("Sphinx port?", "3312")
24
- end
25
-
26
- def add_gem_source
27
- add_source "http://gems.manualdesign.no/"
22
+ nil
28
23
  end
29
24
 
30
25
  def create_active_job_initializer
31
- template(
32
- "active_job_initializer.rb",
33
- File.join("config/initializers/active_job.rb")
34
- )
26
+ template("active_job_initializer.rb",
27
+ File.join("config/initializers/active_job.rb"))
35
28
  end
36
29
 
37
30
  def create_application_controller
38
- template(
39
- "application_controller.rb",
40
- File.join("app/controllers/application_controller.rb")
41
- )
31
+ template("application_controller.rb",
32
+ File.join("app/controllers/application_controller.rb"))
42
33
  end
43
34
 
44
35
  def create_application_helper
45
- template(
46
- "application_helper.rb",
47
- File.join("app/helpers/application_helper.rb")
48
- )
36
+ template("application_helper.rb",
37
+ File.join("app/helpers/application_helper.rb"))
49
38
  end
50
39
 
51
40
  def create_frontend_controller
52
- template(
53
- "frontend_controller.rb",
54
- File.join("app/controllers/frontend_controller.rb")
55
- )
41
+ template("frontend_controller.rb",
42
+ File.join("app/controllers/frontend_controller.rb"))
56
43
  end
57
44
 
58
45
  def create_frontend_helper
59
- template(
60
- "frontend_helper.rb",
61
- File.join("app/helpers/frontend_helper.rb")
62
- )
46
+ template("frontend_helper.rb",
47
+ File.join("app/helpers/frontend_helper.rb"))
63
48
  end
64
49
 
65
50
  def create_pages_controller
66
- template(
67
- "pages_controller.rb",
68
- File.join("app/controllers/pages_controller.rb")
69
- )
51
+ template("pages_controller.rb",
52
+ File.join("app/controllers/pages_controller.rb"))
70
53
  end
71
54
 
72
55
  def create_default_template
73
- copy_file(
74
- "default_page_template.html.erb",
75
- File.join("app/views/pages/templates/index.html.erb")
76
- )
56
+ copy_file("default_page_template.html.erb",
57
+ File.join("app/views/pages/templates/index.html.erb"))
77
58
  end
78
59
 
79
60
  def create_delayed_job_script
80
61
  template "delayed_job", File.join("script/delayed_job")
81
- File.chmod(0755, Rails.root.join("script/delayed_job"))
62
+ File.chmod(0o755, Rails.root.join("script/delayed_job"))
82
63
  end
83
64
 
84
65
  def create_delayed_job_initializer
85
- template(
86
- "delayed_job_initializer.rb",
87
- File.join("config/initializers/delayed_job.rb")
88
- )
66
+ template("delayed_job_initializer.rb",
67
+ File.join("config/initializers/delayed_job.rb"))
89
68
  end
90
69
 
91
70
  def create_initializer_file
92
71
  read_configuration!
93
- template(
94
- "pages_initializer.rb",
95
- File.join("config/initializers/pages.rb")
96
- )
97
- end
98
-
99
- def create_cache_sweeper_initializer
100
- read_configuration!
101
- template(
102
- "cache_sweeper_initializer.rb",
103
- File.join("config/initializers/cache_sweeper.rb")
104
- )
72
+ template("pages_initializer.rb",
73
+ File.join("config/initializers/pages.rb"))
105
74
  end
106
75
 
107
76
  def create_template_initializer
108
77
  read_configuration!
109
- template(
110
- "page_templates_initializer.rb",
111
- File.join("config/initializers/page_templates.rb")
112
- )
113
- end
114
-
115
- def create_sphinx_config
116
- template "thinking_sphinx.yml", File.join("config/thinking_sphinx.yml")
78
+ template("page_templates_initializer.rb",
79
+ File.join("config/initializers/page_templates.rb"))
117
80
  end
118
81
 
119
82
  def create_gitignore
@@ -124,11 +87,7 @@ module PagesCore
124
87
 
125
88
  def ask_with_fallback(question, default)
126
89
  result = ask(question + " [#{default}]")
127
- if result.blank?
128
- default
129
- else
130
- result
131
- end
90
+ result.presence || default
132
91
  end
133
92
  end
134
93
  end