pages_core 3.5.1 → 3.6.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 (312) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +7 -13
  3. data/app/assets/javascripts/pages/{admin.es6.jsx → admin.jsx} +2 -4
  4. data/app/assets/javascripts/pages/admin/components.jsx +2 -0
  5. data/app/assets/javascripts/pages/admin/components/attachment.jsx +130 -0
  6. data/app/assets/javascripts/pages/admin/components/attachment_editor.jsx +131 -0
  7. data/app/assets/javascripts/pages/admin/components/attachments.jsx +211 -0
  8. data/app/assets/javascripts/pages/admin/components/date_range_select.jsx +174 -0
  9. data/app/assets/javascripts/pages/admin/components/drag_uploader.jsx +174 -0
  10. data/app/assets/javascripts/pages/admin/components/editable_image.jsx +57 -0
  11. data/app/assets/javascripts/pages/admin/components/file_upload_button.jsx +44 -0
  12. data/app/assets/javascripts/pages/admin/components/focal_point.jsx +82 -0
  13. data/app/assets/javascripts/pages/admin/components/grid_image.jsx +124 -0
  14. data/app/assets/javascripts/pages/admin/components/image_editor.jsx +496 -0
  15. data/app/assets/javascripts/pages/admin/components/image_grid.jsx +301 -0
  16. data/app/assets/javascripts/pages/admin/components/image_uploader.jsx +171 -0
  17. data/app/assets/javascripts/pages/admin/components/modal.jsx +48 -0
  18. data/app/assets/javascripts/pages/admin/components/modal_store.jsx +20 -0
  19. data/app/assets/javascripts/pages/admin/components/page_dates.jsx +58 -0
  20. data/app/assets/javascripts/pages/admin/components/page_files.jsx +14 -0
  21. data/app/assets/javascripts/pages/admin/components/page_images.jsx +16 -0
  22. data/app/assets/javascripts/pages/admin/components/{page_tree.es6.jsx → page_tree.jsx} +7 -37
  23. data/app/assets/javascripts/pages/admin/components/{page_tree_node.es6.jsx → page_tree_node.jsx} +32 -10
  24. data/app/assets/javascripts/pages/admin/components/page_tree_store.jsx +203 -0
  25. data/app/assets/javascripts/pages/admin/components/rich_text_area.jsx +63 -0
  26. data/app/assets/javascripts/pages/admin/components/rich_text_toolbar.jsx +58 -0
  27. data/app/assets/javascripts/pages/admin/components/toast.jsx +37 -0
  28. data/app/assets/javascripts/pages/admin/components/toast_store.jsx +52 -0
  29. data/app/assets/javascripts/pages/admin/features/{content_tabs.es6.jsx → content_tabs.jsx} +11 -2
  30. data/app/assets/javascripts/pages/admin/features/{edit_page.es6.jsx → edit_page.jsx} +7 -51
  31. data/app/assets/javascripts/pages/admin/features/rich_text.jsx +14 -0
  32. data/app/assets/javascripts/pages/admin/features/{tag_editor.es6.jsx → tag_editor.jsx} +0 -0
  33. data/app/assets/javascripts/pages/admin/lib/{tree.es6.jsx → tree.jsx} +0 -0
  34. data/app/assets/javascripts/pages/{login_form.es6.jsx → login_form.jsx} +0 -0
  35. data/app/assets/stylesheets/pages/admin.scss +9 -13
  36. data/app/assets/stylesheets/pages/admin/components/archive.scss +6 -0
  37. data/app/assets/stylesheets/pages/admin/components/attachments.scss +130 -0
  38. data/app/assets/stylesheets/pages/admin/components/buttons.scss +18 -0
  39. data/app/assets/stylesheets/pages/admin/components/forms.scss +99 -21
  40. data/app/assets/stylesheets/pages/admin/components/header.scss +16 -28
  41. data/app/assets/stylesheets/pages/admin/components/image_editor.scss +195 -0
  42. data/app/assets/stylesheets/pages/admin/components/image_grid.scss +181 -0
  43. data/app/assets/stylesheets/pages/admin/components/image_uploader.scss +53 -0
  44. data/app/assets/stylesheets/pages/admin/components/links.scss +1 -1
  45. data/app/assets/stylesheets/pages/admin/components/list_table.scss +8 -5
  46. data/app/assets/stylesheets/pages/admin/components/login.scss +2 -8
  47. data/app/assets/stylesheets/pages/admin/components/modal.scss +91 -0
  48. data/app/assets/stylesheets/pages/admin/components/page_tree.scss +12 -6
  49. data/app/assets/stylesheets/pages/admin/components/pagination.scss +34 -16
  50. data/app/assets/stylesheets/pages/admin/components/sidebar.scss +9 -6
  51. data/app/assets/stylesheets/pages/admin/components/tag_editor.scss +20 -15
  52. data/app/assets/stylesheets/pages/admin/components/textarea.scss +1 -71
  53. data/app/assets/stylesheets/pages/admin/components/toast.scss +51 -0
  54. data/app/assets/stylesheets/pages/admin/components/toolbar.scss +108 -0
  55. data/app/assets/stylesheets/pages/admin/controllers/pages.scss +9 -21
  56. data/app/assets/stylesheets/pages/admin/controllers/users.scss +2 -2
  57. data/app/assets/stylesheets/pages/admin/vars.scss +26 -4
  58. data/app/controller_dummies/admin/admin_controller.rb +0 -2
  59. data/app/controller_dummies/application_controller.rb +2 -4
  60. data/app/controller_dummies/attachments_controller.rb +2 -0
  61. data/app/controller_dummies/frontend_controller.rb +0 -2
  62. data/app/controller_dummies/images_controller.rb +0 -2
  63. data/app/controller_dummies/page_files_controller.rb +0 -2
  64. data/app/controller_dummies/pages_controller.rb +0 -2
  65. data/app/controller_dummies/sitemaps_controller.rb +0 -2
  66. data/app/controllers/admin/attachments_controller.rb +48 -0
  67. data/app/controllers/admin/categories_controller.rb +2 -5
  68. data/app/controllers/admin/images_controller.rb +25 -19
  69. data/app/controllers/admin/invites_controller.rb +16 -26
  70. data/app/controllers/admin/pages_controller.rb +50 -32
  71. data/app/controllers/admin/password_resets_controller.rb +11 -18
  72. data/app/controllers/admin/users_controller.rb +16 -22
  73. data/app/controllers/concerns/pages_core/admin/news_page_controller.rb +21 -14
  74. data/app/controllers/concerns/pages_core/authentication.rb +0 -2
  75. data/app/controllers/concerns/pages_core/domain_based_cache.rb +0 -2
  76. data/app/controllers/concerns/pages_core/error_renderer.rb +33 -0
  77. data/app/controllers/concerns/pages_core/policies_helper.rb +9 -13
  78. data/app/controllers/concerns/pages_core/preview_pages_controller.rb +3 -5
  79. data/app/controllers/concerns/pages_core/process_titler.rb +1 -3
  80. data/app/controllers/concerns/pages_core/rss_controller.rb +0 -2
  81. data/app/controllers/errors_controller.rb +52 -26
  82. data/app/controllers/pages_core/admin_controller.rb +22 -13
  83. data/app/controllers/pages_core/attachments_controller.rb +36 -0
  84. data/app/controllers/pages_core/{application_controller.rb → base_controller.rb} +16 -5
  85. data/app/controllers/pages_core/frontend/page_files_controller.rb +5 -24
  86. data/app/controllers/pages_core/frontend/pages_controller.rb +4 -8
  87. data/app/controllers/pages_core/frontend_controller.rb +0 -2
  88. data/app/controllers/pages_core/images_controller.rb +0 -2
  89. data/app/controllers/pages_core/sitemaps_controller.rb +3 -5
  90. data/app/controllers/sessions_controller.rb +3 -15
  91. data/app/formatters/pages_core/html_formatter.rb +60 -16
  92. data/app/formatters/pages_core/link_renderer.rb +15 -0
  93. data/app/helpers/admin/admin_helper.rb +0 -2
  94. data/app/helpers/admin/menu_helper.rb +2 -4
  95. data/app/helpers/admin/pages_helper.rb +47 -9
  96. data/app/helpers/application_helper.rb +0 -2
  97. data/app/helpers/frontend_helper.rb +0 -2
  98. data/app/helpers/pages_core/admin/admin_helper.rb +75 -20
  99. data/app/helpers/pages_core/admin/form_builder.rb +36 -0
  100. data/app/helpers/pages_core/admin/labelled_field_helper.rb +6 -8
  101. data/app/helpers/pages_core/admin/tag_editor_helper.rb +0 -2
  102. data/app/helpers/pages_core/application_helper.rb +1 -2
  103. data/app/helpers/pages_core/attachments_helper.rb +36 -0
  104. data/app/helpers/pages_core/form_builder.rb +7 -11
  105. data/app/helpers/pages_core/frontend_helper.rb +0 -6
  106. data/app/helpers/pages_core/head_tags_helper.rb +8 -4
  107. data/app/helpers/pages_core/images_helper.rb +0 -2
  108. data/app/helpers/pages_core/meta_tags_helper.rb +3 -5
  109. data/app/helpers/pages_core/open_graph_tags_helper.rb +1 -3
  110. data/app/helpers/pages_core/page_path_helper.rb +14 -9
  111. data/app/jobs/pages_core/autopublish_job.rb +0 -2
  112. data/app/jobs/pages_core/sweep_cache_job.rb +0 -2
  113. data/app/mailers/admin_mailer.rb +3 -16
  114. data/app/models/attachment.rb +76 -0
  115. data/app/models/autopublisher.rb +3 -3
  116. data/app/models/category.rb +0 -3
  117. data/app/models/concerns/pages_core/has_roles.rb +1 -2
  118. data/app/models/concerns/pages_core/humanizable_param.rb +4 -4
  119. data/app/models/concerns/pages_core/page_model/attachments.rb +39 -0
  120. data/app/models/concerns/pages_core/page_model/autopublishable.rb +0 -2
  121. data/app/models/concerns/pages_core/page_model/dated_page.rb +59 -0
  122. data/app/models/concerns/pages_core/page_model/images.rb +12 -15
  123. data/app/models/concerns/pages_core/page_model/localizable.rb +10 -3
  124. data/app/models/concerns/pages_core/page_model/pathable.rb +8 -10
  125. data/app/models/concerns/pages_core/page_model/redirectable.rb +0 -2
  126. data/app/models/concerns/pages_core/page_model/sortable.rb +1 -3
  127. data/app/models/concerns/pages_core/page_model/status.rb +1 -3
  128. data/app/models/concerns/pages_core/page_model/templateable.rb +2 -4
  129. data/app/models/concerns/pages_core/page_model/tree.rb +24 -5
  130. data/app/models/concerns/pages_core/sweepable.rb +0 -2
  131. data/app/models/concerns/pages_core/taggable.rb +4 -3
  132. data/app/models/image.rb +1 -0
  133. data/app/models/invite.rb +0 -10
  134. data/app/models/page.rb +17 -21
  135. data/app/models/page_builder.rb +0 -2
  136. data/app/models/page_category.rb +0 -2
  137. data/app/models/page_exporter.rb +87 -0
  138. data/app/models/page_file.rb +24 -48
  139. data/app/models/page_image.rb +3 -37
  140. data/app/models/page_path.rb +0 -2
  141. data/app/models/password_reset_token.rb +0 -4
  142. data/app/models/role.rb +15 -2
  143. data/app/models/tag.rb +15 -6
  144. data/app/models/tagging.rb +1 -3
  145. data/app/models/user.rb +29 -25
  146. data/app/policies/page_file_policy.rb +13 -17
  147. data/app/policies/page_image_policy.rb +13 -17
  148. data/app/policies/page_policy.rb +26 -26
  149. data/app/policies/policy.rb +2 -8
  150. data/app/policies/user_policy.rb +32 -32
  151. data/app/serializers/admin/attachment_serializer.rb +29 -0
  152. data/app/serializers/admin/image_serializer.rb +53 -6
  153. data/app/serializers/admin/page_file_serializer.rb +6 -0
  154. data/app/serializers/admin/page_image_serializer.rb +1 -1
  155. data/app/serializers/page_export_serializer.rb +30 -0
  156. data/app/serializers/page_file_export_serializer.rb +4 -0
  157. data/app/serializers/page_image_export_serializer.rb +40 -0
  158. data/app/serializers/page_image_serializer.rb +2 -0
  159. data/app/services/pages_core/create_user_service.rb +36 -0
  160. data/app/services/pages_core/invite_service.rb +41 -0
  161. data/app/views/admin/images/show.json.jbuilder +6 -0
  162. data/app/views/admin/pages/_edit_content.html.erb +7 -0
  163. data/app/views/admin/pages/_edit_files.html.erb +8 -0
  164. data/app/views/admin/pages/_edit_images.html.erb +8 -95
  165. data/app/views/admin/pages/_edit_options.html.erb +7 -15
  166. data/app/views/admin/pages/_list_item.html.erb +50 -0
  167. data/app/views/admin/pages/deleted.html.erb +42 -0
  168. data/app/views/admin/pages/edit.html.erb +9 -94
  169. data/app/views/admin/pages/index.html.erb +9 -12
  170. data/app/views/admin/pages/new.html.erb +2 -1
  171. data/app/views/admin/pages/news.html.erb +59 -45
  172. data/app/views/admin/password_resets/show.html.erb +6 -9
  173. data/app/views/admin/users/_access_control.html.erb +4 -1
  174. data/app/views/admin/users/_list.html.erb +12 -7
  175. data/app/views/admin/users/edit.html.erb +5 -11
  176. data/app/views/admin/users/login.html.erb +58 -15
  177. data/app/views/admin/users/show.html.erb +1 -1
  178. data/app/views/admin_mailer/invite.text.erb +1 -1
  179. data/app/views/admin_mailer/password_reset.text.erb +1 -1
  180. data/app/views/errors/401.html.erb +6 -0
  181. data/app/views/errors/403.html.erb +1 -1
  182. data/app/views/errors/500.html.erb +11 -6
  183. data/app/views/errors/500_critical.html.erb +1 -1
  184. data/app/views/feeds/pages.rss.builder +1 -3
  185. data/app/views/layouts/admin.html.erb +83 -83
  186. data/app/views/layouts/admin/_analytics.html.erb +1 -3
  187. data/app/views/layouts/admin/_header.html.erb +2 -2
  188. data/app/views/layouts/errors.html.erb +3 -7
  189. data/config/locales/en.yml +12 -0
  190. data/config/routes.rb +38 -55
  191. data/db/migrate/20111219033112_create_pages_tables.rb +6 -8
  192. data/db/migrate/20120627033112_rename_textbits.rb +1 -3
  193. data/db/migrate/20121010055412_drop_removed_tables.rb +1 -3
  194. data/db/migrate/20130130053932_add_queue_to_delayed_jobs.rb +1 -3
  195. data/db/migrate/20130303053932_remove_filter_from_localizations.rb +1 -3
  196. data/db/migrate/20130303160632_remove_imagesets.rb +1 -3
  197. data/db/migrate/20130303161732_remove_sms_subscribers.rb +1 -3
  198. data/db/migrate/20130823133208_update_page_redirect_to.rb +1 -3
  199. data/db/migrate/20140203183900_create_roles.rb +1 -1
  200. data/db/migrate/20140414150500_change_locale_names.rb +1 -3
  201. data/db/migrate/20140604142100_remove_openid_url.rb +1 -1
  202. data/db/migrate/20140920231700_convert_images_to_dis.rb +1 -1
  203. data/db/migrate/20140922124600_convert_page_files_to_dis.rb +1 -1
  204. data/db/migrate/20141004003100_create_password_reset_tokens.rb +1 -1
  205. data/db/migrate/20141006181300_remove_user_cruft.rb +1 -1
  206. data/db/migrate/20141007173000_create_invites.rb +1 -1
  207. data/db/migrate/20150204130800_update_delayed_job_table.rb +1 -1
  208. data/db/migrate/20150401131300_localize_images.rb +1 -1
  209. data/db/migrate/20150520174300_add_meta_image_to_page.rb +1 -1
  210. data/db/migrate/20150904164200_add_pinned_to_tags.rb +1 -1
  211. data/db/migrate/20151002174800_create_page_paths.rb +2 -2
  212. data/db/migrate/20151021103400_drop_binaries_table.rb +1 -1
  213. data/db/migrate/20151204151000_remove_page_content_order.rb +1 -1
  214. data/db/migrate/20160330220900_rename_pages_categories.rb +1 -1
  215. data/db/migrate/20160405202700_change_localization_limit.rb +1 -1
  216. data/db/migrate/20170716040500_remove_page_comments.rb +23 -0
  217. data/db/migrate/20170716213400_remove_sessions.rb +15 -0
  218. data/db/migrate/20180207134000_add_dates_to_pages.rb +11 -0
  219. data/db/migrate/20190211154800_create_attachments.rb +73 -0
  220. data/lib/pages_core.rb +6 -9
  221. data/lib/pages_core/admin_menu_item.rb +0 -2
  222. data/lib/pages_core/archive_finder.rb +21 -15
  223. data/lib/pages_core/attachment_embedder.rb +38 -0
  224. data/lib/pages_core/cache_sweeper.rb +14 -23
  225. data/lib/pages_core/configuration.rb +0 -2
  226. data/lib/pages_core/configuration/base.rb +0 -2
  227. data/lib/pages_core/configuration/pages.rb +2 -8
  228. data/lib/pages_core/digest_verifier.rb +70 -0
  229. data/lib/pages_core/engine.rb +6 -13
  230. data/lib/pages_core/extensions.rb +0 -3
  231. data/lib/pages_core/extensions/string_extensions.rb +0 -2
  232. data/lib/pages_core/page_path_constraint.rb +0 -2
  233. data/lib/pages_core/pages_plugin.rb +0 -2
  234. data/lib/pages_core/plugin.rb +0 -2
  235. data/lib/pages_core/pub_sub.rb +36 -0
  236. data/lib/pages_core/templates.rb +0 -2
  237. data/lib/pages_core/templates/block_configuration.rb +1 -3
  238. data/lib/pages_core/templates/configuration.rb +88 -10
  239. data/lib/pages_core/templates/configuration_handler.rb +6 -4
  240. data/lib/pages_core/templates/configuration_proxy.rb +4 -2
  241. data/lib/pages_core/templates/controller_actions.rb +0 -2
  242. data/lib/pages_core/templates/template_configuration.rb +41 -37
  243. data/lib/pages_core/version.rb +1 -3
  244. data/lib/rails/generators/pages_core/frontend/frontend_generator.rb +10 -17
  245. data/lib/rails/generators/pages_core/frontend/templates/application.js.erb +1 -2
  246. data/lib/rails/generators/pages_core/frontend/templates/{application.css.scss.erb → application.scss.erb} +0 -0
  247. data/lib/rails/generators/pages_core/frontend/templates/{base.css.scss.erb → base.scss.erb} +0 -0
  248. data/lib/rails/generators/pages_core/frontend/templates/{breakpoints.css.scss.erb → breakpoints.scss.erb} +0 -0
  249. data/lib/rails/generators/pages_core/frontend/templates/clearfix.scss.erb +7 -0
  250. data/lib/rails/generators/pages_core/frontend/templates/layout.html.erb +0 -3
  251. data/lib/rails/generators/pages_core/install/install_generator.rb +4 -15
  252. data/lib/rails/generators/pages_core/install/templates/application_controller.rb +1 -3
  253. data/lib/rails/generators/pages_core/install/templates/application_helper.rb +0 -2
  254. data/lib/rails/generators/pages_core/install/templates/cache_sweeper_initializer.rb +0 -5
  255. data/lib/rails/generators/pages_core/install/templates/delayed_job_initializer.rb +0 -2
  256. data/lib/rails/generators/pages_core/install/templates/frontend_controller.rb +0 -2
  257. data/lib/rails/generators/pages_core/install/templates/frontend_helper.rb +0 -2
  258. data/lib/rails/generators/pages_core/install/templates/page_templates_initializer.rb +7 -15
  259. data/lib/rails/generators/pages_core/install/templates/pages_controller.rb +0 -2
  260. data/lib/rails/generators/pages_core/install/templates/pages_initializer.rb +2 -19
  261. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +2 -4
  262. data/lib/rails/generators/pages_core/rspec/templates/factories.rb +1 -1
  263. data/lib/rails/generators/pages_core/rspec/templates/spec_helper.rb +4 -13
  264. data/lib/tasks/pages.rake +0 -62
  265. data/lib/tasks/pages/cache.rake +6 -2
  266. data/lib/tasks/pages/export.rake +9 -0
  267. data/lib/tasks/pages/page_paths.rake +0 -2
  268. data/lib/tasks/pages/update.rake +0 -2
  269. data/template.rb +3 -3
  270. data/vendor/assets/javascripts/ReactCrop.min.js +1 -0
  271. data/vendor/assets/javascripts/reflux.min.js +1 -1
  272. data/vendor/assets/stylesheets/ReactCrop.css +167 -0
  273. metadata +200 -175
  274. data/app/assets/javascripts/pages/admin/components.es6.jsx +0 -1
  275. data/app/assets/javascripts/pages/admin/components/page_tree_actions.es6.jsx +0 -8
  276. data/app/assets/javascripts/pages/admin/components/page_tree_store.es6.jsx +0 -161
  277. data/app/assets/javascripts/pages/admin/features/editable_image.es6.jsx +0 -145
  278. data/app/assets/javascripts/pages/admin/features/modal.es6.jsx +0 -90
  279. data/app/assets/javascripts/pages/admin/features/page_images.es6.jsx +0 -338
  280. data/app/assets/javascripts/pages/admin/features/rich_text.es6.jsx +0 -124
  281. data/app/assets/javascripts/pages/admin/lib/ajax_extensions.es6.jsx +0 -21
  282. data/app/assets/javascripts/pages/admin/lib/center_on_screen.es6.jsx +0 -22
  283. data/app/assets/stylesheets/pages/admin/components/editable_image.scss +0 -18
  284. data/app/assets/stylesheets/pages/admin/components/images.scss +0 -155
  285. data/app/assets/stylesheets/pages/admin/print.scss +0 -17
  286. data/app/controllers/admin/page_comments_controller.rb +0 -61
  287. data/app/controllers/admin/page_files_controller.rb +0 -79
  288. data/app/controllers/admin/page_images_controller.rb +0 -111
  289. data/app/controllers/concerns/pages_core/add_comments_controller.rb +0 -67
  290. data/app/controllers/concerns/pages_core/exception_handler.rb +0 -137
  291. data/app/controllers/concerns/pages_core/search_pages_controller.rb +0 -40
  292. data/app/helpers/pages_core/login_helper.rb +0 -14
  293. data/app/indices/page_file_index.rb +0 -9
  294. data/app/indices/page_index.rb +0 -29
  295. data/app/indices/user_index.rb +0 -11
  296. data/app/models/concerns/pages_core/page_model/commentable.rb +0 -29
  297. data/app/models/concerns/pages_core/page_model/searchable.rb +0 -41
  298. data/app/models/page_comment.rb +0 -18
  299. data/app/serializers/page_tree_serializer.rb +0 -15
  300. data/app/views/admin/pages/_edit_comments.html.erb +0 -37
  301. data/app/views/admin/pages/_pagelisting.html.erb +0 -63
  302. data/app/views/admin/users/_login_form.html.erb +0 -47
  303. data/app/views/admin_mailer/comment_notification.text.erb +0 -7
  304. data/lib/pages_core/extensions/hash_extensions.rb +0 -23
  305. data/lib/pages_core/file_embedder.rb +0 -40
  306. data/lib/pages_core/paginates.rb +0 -102
  307. data/lib/rails/generators/pages_core/frontend/templates/hidpi.css.scss.erb +0 -8
  308. data/lib/rails/generators/pages_core/install/templates/thinking_sphinx.yml +0 -12
  309. data/lib/tasks/db.rake +0 -96
  310. data/lib/tasks/pages/assets.rake +0 -65
  311. data/vendor/assets/javascripts/jquery.dimscreen.js +0 -77
  312. data/vendor/assets/javascripts/jquery.fieldselection.js +0 -59
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module PagesCore
4
2
  module Templates
5
3
  class ConfigurationHandler
@@ -21,7 +19,7 @@ module PagesCore
21
19
  end
22
20
 
23
21
  def method_missing(method_name, *args, &block)
24
- if self.class.handle_blocks.keys.include?(method_name)
22
+ if self.class.handle_blocks.key?(method_name)
25
23
  proxy = PagesCore::Templates::ConfigurationProxy.new(
26
24
  self.class.handle_blocks[method_name],
27
25
  self
@@ -39,6 +37,10 @@ module PagesCore
39
37
  proxy_object
40
38
  end
41
39
 
40
+ def respond_to_missing?(method_name)
41
+ self.class.handle_blocks.key?(method_name)
42
+ end
43
+
42
44
  def set(stack, value)
43
45
  @configuration ||= {}
44
46
  value = true if value == :enabled
@@ -54,7 +56,7 @@ module PagesCore
54
56
  def get(*path)
55
57
  @configuration ||= {}
56
58
  path.inject(@configuration) do |value, key|
57
- (value && value.is_a?(Hash) && value.key?(key)) ? value[key] : nil
59
+ value && value.is_a?(Hash) && value.key?(key) ? value[key] : nil
58
60
  end
59
61
  end
60
62
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module PagesCore
4
2
  module Templates
5
3
  class ConfigurationProxy
@@ -19,6 +17,10 @@ module PagesCore
19
17
  @callback.call(method_name, *args)
20
18
  end
21
19
  end
20
+
21
+ def respond_to_missing?
22
+ true
23
+ end
22
24
  end
23
25
  end
24
26
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module PagesCore
4
2
  module Templates
5
3
  module ControllerActions
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module PagesCore
4
2
  module Templates
5
3
  class TemplateConfiguration
@@ -7,7 +5,38 @@ module PagesCore
7
5
 
8
6
  class << self
9
7
  def all_blocks
10
- new(:index).all_blocks
8
+ (all_templates.map { |t| configured_block_names(t) } +
9
+ all_templates.map { |t| enabled_block_names(t) }).flatten.compact.uniq
10
+ end
11
+
12
+ def all_templates
13
+ Array(config.get(:templates).try(&:keys))
14
+ end
15
+
16
+ def config
17
+ PagesCore::Templates.configuration
18
+ end
19
+
20
+ def localized_blocks
21
+ template_blocks = all_templates.flat_map do |t|
22
+ config.get(:templates, t, :blocks).to_a
23
+ end
24
+
25
+ (config.get(:default, :blocks).to_a + template_blocks)
26
+ .compact
27
+ .select { |_, opts| opts[:localized] }.map(&:first)
28
+ end
29
+
30
+ private
31
+
32
+ def configured_block_names(template)
33
+ Array(config.get(:default, :blocks).try(&:keys)) +
34
+ Array(config.get(:templates, template, :blocks).try(&:keys))
35
+ end
36
+
37
+ def enabled_block_names(template)
38
+ Array(config.get(:default, :enabled_blocks, :value)) +
39
+ Array(config.get(:templates, template, :enabled_blocks, :value))
11
40
  end
12
41
  end
13
42
 
@@ -16,7 +45,7 @@ module PagesCore
16
45
  end
17
46
 
18
47
  def config
19
- PagesCore::Templates.configuration
48
+ self.class.config
20
49
  end
21
50
 
22
51
  def value(*path)
@@ -37,9 +66,9 @@ module PagesCore
37
66
 
38
67
  def block(block_name)
39
68
  default_block_options(block_name)
40
- .deep_merge(config.get(*[:default, :blocks, block_name]) || {})
69
+ .deep_merge(config.get(:default, :blocks, block_name) || {})
41
70
  .deep_merge(
42
- config.get(*[:templates, @template_name, :blocks, block_name]) || {}
71
+ config.get(:templates, @template_name, :blocks, block_name) || {}
43
72
  )
44
73
  end
45
74
 
@@ -60,26 +89,8 @@ module PagesCore
60
89
  blocks
61
90
  end
62
91
 
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
92
  private
72
93
 
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
94
  def default_block_options(block_name)
84
95
  {
85
96
  title: block_name.to_s.humanize,
@@ -87,10 +98,6 @@ module PagesCore
87
98
  size: :small
88
99
  }
89
100
  end
90
-
91
- def all_templates
92
- Array(config.get(:templates).try(&:keys))
93
- end
94
101
  end
95
102
 
96
103
  class << self
@@ -120,12 +127,10 @@ module PagesCore
120
127
  alias config configuration
121
128
 
122
129
  def metadata_block_names
123
- [
124
- :meta_title,
125
- :meta_description,
126
- :open_graph_title,
127
- :open_graph_description
128
- ]
130
+ %i[meta_title
131
+ meta_description
132
+ open_graph_title
133
+ open_graph_description]
129
134
  end
130
135
 
131
136
  private
@@ -133,13 +138,12 @@ module PagesCore
133
138
  def default_configuration(config)
134
139
  config.template :autodetect, root: "index"
135
140
  config.image :enabled, linkable: false
136
- config.comments :disabled
137
- config.comments_allowed :enabled
138
141
  config.files :disabled
139
142
  config.images :disabled
140
143
  config.text_filter :textile
141
- config.enabled_blocks [:headline, :excerpt, :body]
144
+ config.enabled_blocks %i[headline excerpt body]
142
145
  config.tags :disabled
146
+ config.dates :disabled
143
147
  end
144
148
 
145
149
  def default_blocks
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module PagesCore
4
- VERSION = "3.5.1".freeze unless PagesCore.const_defined?("VERSION")
2
+ VERSION = "3.6.0".freeze unless PagesCore.const_defined?("VERSION")
5
3
  end
@@ -1,15 +1,8 @@
1
- # encoding: utf-8
2
-
3
1
  module PagesCore
4
2
  module Generators
5
3
  class FrontendGenerator < Rails::Generators::Base
6
4
  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
5
+ source_root File.expand_path("templates", __dir__)
13
6
 
14
7
  def create_layout
15
8
  copy_file(
@@ -20,8 +13,8 @@ module PagesCore
20
13
 
21
14
  def create_application_scss
22
15
  template(
23
- "application.css.scss.erb",
24
- File.join("app/assets/stylesheets/application.css.scss")
16
+ "application.scss.erb",
17
+ File.join("app/assets/stylesheets/application.scss")
25
18
  )
26
19
  end
27
20
 
@@ -38,22 +31,22 @@ module PagesCore
38
31
 
39
32
  def create_breakpoints_css
40
33
  template(
41
- "breakpoints.css.scss.erb",
42
- File.join("app/assets/stylesheets/mixins/breakpoints.css.scss")
34
+ "breakpoints.scss.erb",
35
+ File.join("app/assets/stylesheets/mixins/breakpoints.scss")
43
36
  )
44
37
  end
45
38
 
46
- def create_hidpi_css
39
+ def create_clearfix_css
47
40
  template(
48
- "hidpi.css.scss.erb",
49
- File.join("app/assets/stylesheets/mixins/hidpi.css.scss")
41
+ "clearfix.scss.erb",
42
+ File.join("app/assets/stylesheets/mixins/clearfix.scss")
50
43
  )
51
44
  end
52
45
 
53
46
  def create_base_css
54
47
  template(
55
- "base.css.scss.erb",
56
- File.join("app/assets/stylesheets/components/base.css.scss")
48
+ "base.scss.erb",
49
+ File.join("app/assets/stylesheets/components/base.scss")
57
50
  )
58
51
  end
59
52
 
@@ -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,8 @@
1
- # encoding: utf-8
2
-
3
1
  module PagesCore
4
2
  module Generators
5
3
  class InstallGenerator < Rails::Generators::Base
6
4
  desc "Creates the Pages configuration"
7
- source_root File.expand_path("../templates", __FILE__)
5
+ source_root File.expand_path("templates", __dir__)
8
6
 
9
7
  def default_app_name
10
8
  Rails.root.to_s.split("/").last
@@ -19,8 +17,7 @@ module PagesCore
19
17
  "Default sender?",
20
18
  "no-reply@#{@domain_name}"
21
19
  )
22
-
23
- @sphinx_port ||= ask_with_fallback("Sphinx port?", "3312")
20
+ nil
24
21
  end
25
22
 
26
23
  def create_active_job_initializer
@@ -60,7 +57,7 @@ module PagesCore
60
57
 
61
58
  def create_delayed_job_script
62
59
  template "delayed_job", File.join("script/delayed_job")
63
- File.chmod(0755, Rails.root.join("script/delayed_job"))
60
+ File.chmod(0o755, Rails.root.join("script", "delayed_job"))
64
61
  end
65
62
 
66
63
  def create_delayed_job_initializer
@@ -86,10 +83,6 @@ module PagesCore
86
83
  File.join("config/initializers/page_templates.rb"))
87
84
  end
88
85
 
89
- def create_sphinx_config
90
- template "thinking_sphinx.yml", File.join("config/thinking_sphinx.yml")
91
- end
92
-
93
86
  def create_gitignore
94
87
  template "gitignore.erb", File.join(".gitignore")
95
88
  end
@@ -98,11 +91,7 @@ module PagesCore
98
91
 
99
92
  def ask_with_fallback(question, default)
100
93
  result = ask(question + " [#{default}]")
101
- if result.blank?
102
- default
103
- else
104
- result
105
- end
94
+ result.presence || default
106
95
  end
107
96
  end
108
97
  end
@@ -1,6 +1,4 @@
1
- # encoding: utf-8
2
-
3
- class ApplicationController < PagesCore::ApplicationController
1
+ class ApplicationController < PagesCore::BaseController
4
2
  # Put frontend specific code in frontend_controller.rb
5
3
 
6
4
  helper :all # include all helpers, all the time
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module ApplicationHelper
4
2
  include PagesCore::ApplicationHelper
5
3
  end
@@ -1,11 +1,6 @@
1
- # encoding: utf-8
2
-
3
1
  # Be sure to restart your web server when you modify this file.
4
2
 
5
3
  PagesCore::CacheSweeper.config do |sweeper|
6
- # Observed models
7
- # sweeper.observe += [Artist, Song]
8
-
9
4
  # Path patterns
10
5
  # sweeper.patterns += [/^\/archive(.*)$/, /^\/tests(.*)$/]
11
6
  end
@@ -1,3 +1 @@
1
- # encoding: utf-8
2
-
3
1
  Delayed::Worker.backend = :active_record
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  # Abstract controller for all frontend controllers.
4
2
  class FrontendController < PagesCore::FrontendController
5
3
  layout "application"
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module FrontendHelper
4
2
  include PagesCore::FrontendHelper
5
3
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  # Be sure to restart your web server when you modify this file.
4
2
 
5
3
  # Templates configuration
@@ -18,10 +16,7 @@ PagesCore::Templates.configure do |config|
18
16
  "Standfirst",
19
17
  description: "An introductory paragraph before the start of the body."
20
18
  )
21
- block.body(
22
- "Body",
23
- size: :large
24
- )
19
+ block.body("Body", size: :large)
25
20
  block.boxout(
26
21
  "Boxout",
27
22
  description: "Part of the page, usually background info or facts " \
@@ -36,19 +31,16 @@ PagesCore::Templates.configure do |config|
36
31
  default.image :enabled, linkable: false
37
32
 
38
33
  # Enables file uploads (default: :disabled)
39
- default.files :disabled
40
-
41
- # Enables comments (default: :disabled)
42
- default.comments :disabled
43
-
44
- # New pages are open for comments by default (default: :enabled)
45
- default.comments_allowed :enabled
34
+ # default.files :enabled
46
35
 
47
36
  # Pages can have tags (default: :disabled)
48
- default.tags :disabled
37
+ # default.tags :enabled
38
+
39
+ # Pages can have dates (default: :disabled)
40
+ # default.dates :enabled
49
41
 
50
42
  # Only use the blocks enabled here by default
51
- default.enabled_blocks [:headline, :excerpt, :body]
43
+ default.enabled_blocks %i[headline excerpt body]
52
44
 
53
45
  # Subpages will have this template. Will fall back to default.template
54
46
  # unless specified. (default: nil)
@@ -1,4 +1,2 @@
1
- # encoding: utf-8
2
-
3
1
  class PagesController < PagesCore::Frontend::PagesController
4
2
  end