pages_core 3.6.0 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (330) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -3
  3. data/Rakefile +3 -1
  4. data/app/assets/builds/pages_core/admin-dist.js +55 -0
  5. data/app/assets/stylesheets/pages/admin/components/forms.scss +20 -0
  6. data/app/assets/stylesheets/pages/admin/components/image_editor.scss +1 -0
  7. data/app/assets/stylesheets/pages/admin/components/image_grid.scss +33 -5
  8. data/app/assets/stylesheets/pages/admin/components/layout.scss +2 -1
  9. data/app/assets/stylesheets/pages/admin/components/login.scss +6 -0
  10. data/app/assets/stylesheets/pages/admin/components/tabs.scss +5 -0
  11. data/app/assets/stylesheets/pages/admin/components/tag_editor.scss +13 -7
  12. data/app/assets/stylesheets/pages/admin/controllers/pages.scss +13 -5
  13. data/app/assets/stylesheets/pages/admin.scss +0 -1
  14. data/app/assets/stylesheets/pages/errors.css +2 -0
  15. data/app/controller_dummies/admin/admin_controller.rb +3 -1
  16. data/app/controller_dummies/application_controller.rb +3 -1
  17. data/app/controller_dummies/attachments_controller.rb +3 -1
  18. data/app/controller_dummies/frontend_controller.rb +3 -1
  19. data/app/controller_dummies/images_controller.rb +3 -1
  20. data/app/controller_dummies/page_files_controller.rb +3 -1
  21. data/app/controller_dummies/pages_controller.rb +3 -1
  22. data/app/controller_dummies/sitemaps_controller.rb +3 -1
  23. data/app/controllers/admin/attachments_controller.rb +5 -3
  24. data/app/controllers/admin/categories_controller.rb +2 -0
  25. data/app/controllers/admin/images_controller.rb +16 -8
  26. data/app/controllers/admin/invites_controller.rb +4 -1
  27. data/app/controllers/admin/pages_controller.rb +9 -26
  28. data/app/controllers/admin/password_resets_controller.rb +9 -5
  29. data/app/controllers/admin/users_controller.rb +10 -4
  30. data/app/controllers/concerns/pages_core/admin/news_page_controller.rb +13 -11
  31. data/app/controllers/concerns/pages_core/admin/persistent_params.rb +75 -0
  32. data/app/controllers/concerns/pages_core/authentication.rb +13 -5
  33. data/app/controllers/concerns/pages_core/error_renderer.rb +3 -0
  34. data/app/controllers/concerns/pages_core/error_reporting.rb +36 -0
  35. data/app/controllers/concerns/pages_core/policies_helper.rb +4 -1
  36. data/app/controllers/concerns/pages_core/preview_pages_controller.rb +8 -0
  37. data/app/controllers/concerns/pages_core/process_titler.rb +2 -0
  38. data/app/controllers/concerns/pages_core/rss_controller.rb +2 -0
  39. data/app/controllers/concerns/pages_core/static_cache_controller.rb +48 -0
  40. data/app/controllers/errors_controller.rb +5 -53
  41. data/app/controllers/pages_core/admin_controller.rb +7 -67
  42. data/app/controllers/pages_core/attachments_controller.rb +10 -6
  43. data/app/controllers/pages_core/base_controller.rb +11 -17
  44. data/app/controllers/pages_core/frontend/page_files_controller.rb +6 -2
  45. data/app/controllers/pages_core/frontend/pages_controller.rb +14 -18
  46. data/app/controllers/pages_core/frontend_controller.rb +3 -0
  47. data/app/controllers/pages_core/images_controller.rb +3 -1
  48. data/app/controllers/pages_core/sitemaps_controller.rb +11 -5
  49. data/app/controllers/sessions_controller.rb +3 -1
  50. data/app/formatters/pages_core/html_formatter.rb +13 -63
  51. data/app/formatters/pages_core/image_embedder.rb +79 -0
  52. data/app/formatters/pages_core/link_renderer.rb +4 -2
  53. data/app/helpers/admin/admin_helper.rb +2 -0
  54. data/app/helpers/admin/menu_helper.rb +6 -4
  55. data/app/helpers/admin/pages_helper.rb +4 -57
  56. data/app/helpers/application_helper.rb +3 -1
  57. data/app/helpers/frontend_helper.rb +3 -1
  58. data/app/helpers/pages_core/admin/admin_helper.rb +22 -106
  59. data/app/helpers/pages_core/admin/content_tabs_helper.rb +31 -0
  60. data/app/helpers/pages_core/admin/date_range_helper.rb +55 -0
  61. data/app/helpers/pages_core/admin/form_builder.rb +8 -0
  62. data/app/helpers/pages_core/admin/image_uploads_helper.rb +47 -0
  63. data/app/helpers/pages_core/admin/labelled_field_helper.rb +12 -9
  64. data/app/helpers/pages_core/admin/page_blocks_helper.rb +66 -0
  65. data/app/helpers/pages_core/admin/page_json_helper.rb +23 -0
  66. data/app/helpers/pages_core/admin/tag_editor_helper.rb +11 -39
  67. data/app/helpers/pages_core/application_helper.rb +3 -0
  68. data/app/helpers/pages_core/attachments_helper.rb +31 -27
  69. data/app/helpers/pages_core/form_builder.rb +17 -13
  70. data/app/helpers/pages_core/frontend_helper.rb +3 -3
  71. data/app/helpers/pages_core/head_tags_helper.rb +18 -22
  72. data/app/helpers/pages_core/images_helper.rb +3 -0
  73. data/app/helpers/pages_core/meta_tags_helper.rb +3 -1
  74. data/app/helpers/pages_core/open_graph_tags_helper.rb +8 -6
  75. data/app/helpers/pages_core/page_path_helper.rb +24 -3
  76. data/app/javascript/admin-dist.js +2 -0
  77. data/app/javascript/components/Attachments/Attachment.jsx +121 -0
  78. data/app/javascript/components/Attachments/AttachmentEditor.jsx +116 -0
  79. data/app/javascript/components/Attachments/Placeholder.jsx +10 -0
  80. data/app/javascript/components/Attachments.jsx +165 -0
  81. data/app/{assets/javascripts/pages/admin/components/date_range_select.jsx → javascript/components/DateRangeSelect.jsx} +16 -5
  82. data/app/javascript/components/EditableImage.jsx +61 -0
  83. data/app/{assets/javascripts/pages/admin/components/file_upload_button.jsx → javascript/components/FileUploadButton.jsx} +11 -1
  84. data/app/{assets/javascripts/pages/admin/components/focal_point.jsx → javascript/components/ImageCropper/FocalPoint.jsx} +12 -1
  85. data/app/javascript/components/ImageCropper/Image.jsx +65 -0
  86. data/app/javascript/components/ImageCropper/Toolbar.jsx +73 -0
  87. data/app/javascript/components/ImageCropper/useCrop.js +199 -0
  88. data/app/javascript/components/ImageCropper.jsx +90 -0
  89. data/app/javascript/components/ImageEditor/Form.jsx +98 -0
  90. data/app/javascript/components/ImageEditor.jsx +62 -0
  91. data/app/javascript/components/ImageGrid/DragElement.jsx +30 -0
  92. data/app/javascript/components/ImageGrid/FilePlaceholder.jsx +9 -0
  93. data/app/javascript/components/ImageGrid/GridImage.jsx +103 -0
  94. data/app/javascript/components/ImageGrid/Placeholder.jsx +23 -0
  95. data/app/javascript/components/ImageGrid.jsx +257 -0
  96. data/app/javascript/components/ImageUploader.jsx +171 -0
  97. data/app/{assets/javascripts/pages/admin/components/modal.jsx → javascript/components/Modal.jsx} +13 -2
  98. data/app/javascript/components/ModalStore.jsx +12 -0
  99. data/app/{assets/javascripts/pages/admin/components/page_dates.jsx → javascript/components/PageDates.jsx} +11 -1
  100. data/app/{assets/javascripts/pages/admin/components/page_files.jsx → javascript/components/PageFiles.jsx} +11 -2
  101. data/app/{assets/javascripts/pages/admin/components/page_images.jsx → javascript/components/PageImages.jsx} +11 -2
  102. data/app/{assets/javascripts/pages/admin/components/page_tree_store.jsx → javascript/components/PageTree.jsx} +127 -137
  103. data/app/{assets/javascripts/pages/admin/components/page_tree.jsx → javascript/components/PageTreeDraggable.jsx} +44 -38
  104. data/app/{assets/javascripts/pages/admin/components/page_tree_node.jsx → javascript/components/PageTreeNode.jsx} +46 -31
  105. data/app/javascript/components/RichTextArea.jsx +213 -0
  106. data/app/javascript/components/RichTextToolbarButton.jsx +20 -0
  107. data/app/javascript/components/TagEditor/AddTagForm.jsx +42 -0
  108. data/app/javascript/components/TagEditor/Tag.jsx +32 -0
  109. data/app/javascript/components/TagEditor.jsx +61 -0
  110. data/app/javascript/components/Toast.jsx +72 -0
  111. data/app/javascript/components/ToastStore.jsx +14 -0
  112. data/app/javascript/components/drag/draggedOrder.js +51 -0
  113. data/app/javascript/components/drag/useDragCollection.js +84 -0
  114. data/app/javascript/components/drag/useDragUploader.js +112 -0
  115. data/app/javascript/components/drag/useDraggable.js +17 -0
  116. data/app/javascript/components/drag.js +6 -0
  117. data/app/javascript/components.js +14 -0
  118. data/app/javascript/controllers/EditPageController.js +20 -0
  119. data/app/javascript/controllers/LoginController.js +29 -0
  120. data/app/javascript/controllers/MainController.js +65 -0
  121. data/app/javascript/controllers/PageOptionsController.js +62 -0
  122. data/app/javascript/features/RichText.jsx +34 -0
  123. data/app/javascript/hooks.js +2 -0
  124. data/app/javascript/index.js +33 -0
  125. data/app/{assets/javascripts/pages/admin/lib/tree.jsx → javascript/lib/Tree.js} +64 -63
  126. data/app/javascript/lib/copyToClipboard.js +13 -0
  127. data/app/javascript/lib/readyHandler.js +22 -0
  128. data/app/javascript/lib/request.js +36 -0
  129. data/app/jobs/pages_core/autopublish_job.rb +3 -1
  130. data/app/jobs/pages_core/sweep_cache_job.rb +4 -2
  131. data/app/mailers/admin_mailer.rb +4 -14
  132. data/app/models/attachment.rb +10 -8
  133. data/app/models/autopublisher.rb +3 -0
  134. data/app/models/category.rb +3 -1
  135. data/app/models/concerns/pages_core/has_roles.rb +2 -0
  136. data/app/models/concerns/pages_core/humanizable_param.rb +9 -6
  137. data/app/models/concerns/pages_core/page_model/attachments.rb +2 -0
  138. data/app/models/concerns/pages_core/page_model/autopublishable.rb +2 -0
  139. data/app/models/concerns/pages_core/page_model/dated_page.rb +11 -11
  140. data/app/models/concerns/pages_core/page_model/images.rb +8 -2
  141. data/app/models/concerns/pages_core/page_model/localizable.rb +2 -0
  142. data/app/models/concerns/pages_core/page_model/pathable.rb +26 -25
  143. data/app/models/concerns/pages_core/page_model/redirectable.rb +3 -1
  144. data/app/models/concerns/pages_core/page_model/searchable.rb +19 -0
  145. data/app/models/concerns/pages_core/page_model/sortable.rb +6 -5
  146. data/app/models/concerns/pages_core/page_model/status.rb +2 -0
  147. data/app/models/concerns/pages_core/page_model/templateable.rb +7 -2
  148. data/app/models/concerns/pages_core/page_model/tree.rb +27 -20
  149. data/app/models/concerns/pages_core/searchable_document.rb +71 -0
  150. data/app/models/concerns/pages_core/sweepable.rb +4 -2
  151. data/app/models/concerns/pages_core/taggable.rb +33 -12
  152. data/app/models/image.rb +14 -1
  153. data/app/models/invite.rb +3 -1
  154. data/app/models/invite_role.rb +5 -3
  155. data/app/models/page.rb +6 -3
  156. data/app/models/page_builder.rb +2 -0
  157. data/app/models/page_category.rb +3 -1
  158. data/app/models/page_exporter.rb +23 -10
  159. data/app/models/page_file.rb +3 -1
  160. data/app/models/page_image.rb +3 -3
  161. data/app/models/page_path.rb +13 -5
  162. data/app/models/password_reset_token.rb +3 -1
  163. data/app/models/role.rb +9 -6
  164. data/app/models/search_document.rb +72 -0
  165. data/app/models/tag.rb +9 -6
  166. data/app/models/tagging.rb +4 -2
  167. data/app/models/user.rb +8 -5
  168. data/app/policies/invite_policy.rb +2 -0
  169. data/app/policies/page_file_policy.rb +2 -0
  170. data/app/policies/page_image_policy.rb +2 -0
  171. data/app/policies/page_policy.rb +2 -0
  172. data/app/policies/policy.rb +2 -0
  173. data/app/policies/user_policy.rb +2 -0
  174. data/app/{serializers/admin/attachment_serializer.rb → resources/admin/attachment_resource.rb} +10 -7
  175. data/app/{serializers/admin/image_serializer.rb → resources/admin/image_resource.rb} +13 -11
  176. data/app/resources/admin/page_file_resource.rb +10 -0
  177. data/app/resources/admin/page_image_resource.rb +10 -0
  178. data/app/resources/export/attachment_resource.rb +10 -0
  179. data/app/resources/export/page_image_resource.rb +45 -0
  180. data/app/resources/export/page_resource.rb +42 -0
  181. data/app/{serializers/page_image_serializer.rb → resources/page_image_resource.rb} +10 -16
  182. data/app/resources/page_resource.rb +33 -0
  183. data/app/services/pages_core/create_user_service.rb +5 -2
  184. data/app/services/pages_core/destroy_invite_service.rb +25 -0
  185. data/app/services/pages_core/invite_service.rb +4 -2
  186. data/app/views/admin/images/show.json.jbuilder +2 -0
  187. data/app/views/admin/pages/_edit_content.html.erb +1 -1
  188. data/app/views/admin/pages/_edit_files.html.erb +1 -5
  189. data/app/views/admin/pages/_edit_images.html.erb +1 -5
  190. data/app/views/admin/pages/_edit_metadata.html.erb +1 -12
  191. data/app/views/admin/pages/_edit_options.html.erb +74 -55
  192. data/app/views/admin/pages/_form.html.erb +19 -0
  193. data/app/views/admin/pages/edit.html.erb +35 -61
  194. data/app/views/admin/pages/index.html.erb +0 -1
  195. data/app/views/admin/pages/new.html.erb +32 -32
  196. data/app/views/admin/pages/news.html.erb +1 -1
  197. data/app/views/admin/users/_access_control.html.erb +5 -1
  198. data/app/views/admin/users/login.html.erb +12 -4
  199. data/app/views/errors/500.html.erb +2 -20
  200. data/app/views/errors/_generic_help.html.erb +1 -1
  201. data/app/views/feeds/pages.rss.builder +3 -2
  202. data/app/views/layouts/admin/_header.html.erb +1 -1
  203. data/app/views/layouts/admin/_page_header.html.erb +33 -0
  204. data/app/views/layouts/admin.html.erb +23 -42
  205. data/app/views/pages_core/_google_analytics.html.erb +8 -0
  206. data/app/views/sitemaps/show.xml.builder +2 -0
  207. data/config/routes.rb +5 -6
  208. data/db/migrate/20111219033112_create_pages_tables.rb +192 -271
  209. data/db/migrate/20180625154059_enable_search_extensions.rb +10 -0
  210. data/db/migrate/20210209151400_create_search_configurations.rb +35 -0
  211. data/db/migrate/20210210235200_create_search_documents.rb +74 -0
  212. data/lib/pages_core/admin_menu_item.rb +3 -0
  213. data/lib/pages_core/archive_finder.rb +12 -16
  214. data/lib/pages_core/attachment_embedder.rb +4 -6
  215. data/lib/pages_core/cache_sweeper.rb +10 -108
  216. data/lib/pages_core/configuration/base.rb +5 -0
  217. data/lib/pages_core/configuration/pages.rb +4 -2
  218. data/lib/pages_core/configuration.rb +2 -0
  219. data/lib/pages_core/digest_verifier.rb +5 -5
  220. data/lib/pages_core/engine.rb +53 -5
  221. data/lib/pages_core/extensions/string_extensions.rb +3 -1
  222. data/lib/pages_core/extensions.rb +2 -0
  223. data/lib/pages_core/page_path_constraint.rb +2 -0
  224. data/lib/pages_core/pages_plugin.rb +3 -1
  225. data/lib/pages_core/plugin.rb +4 -52
  226. data/lib/pages_core/pub_sub.rb +2 -0
  227. data/lib/pages_core/static_cache/null_handler.rb +17 -0
  228. data/lib/pages_core/static_cache/page_cache_handler.rb +56 -0
  229. data/lib/pages_core/static_cache/varnish_handler.rb +55 -0
  230. data/lib/pages_core/static_cache.rb +26 -0
  231. data/lib/pages_core/templates/block_configuration.rb +4 -1
  232. data/lib/pages_core/templates/configuration.rb +5 -1
  233. data/lib/pages_core/templates/configuration_handler.rb +5 -3
  234. data/lib/pages_core/templates/configuration_proxy.rb +2 -0
  235. data/lib/pages_core/templates/controller_actions.rb +2 -0
  236. data/lib/pages_core/templates/template_configuration.rb +20 -14
  237. data/lib/pages_core/templates.rb +5 -3
  238. data/lib/pages_core/version.rb +3 -1
  239. data/lib/pages_core.rb +13 -5
  240. data/lib/rails/generators/pages_core/frontend/frontend_generator.rb +2 -7
  241. data/lib/rails/generators/pages_core/install/install_generator.rb +3 -7
  242. data/lib/rails/generators/pages_core/install/templates/active_job_initializer.rb +2 -0
  243. data/lib/rails/generators/pages_core/install/templates/application_controller.rb +2 -0
  244. data/lib/rails/generators/pages_core/install/templates/application_helper.rb +2 -0
  245. data/lib/rails/generators/pages_core/install/templates/delayed_job +1 -0
  246. data/lib/rails/generators/pages_core/install/templates/delayed_job_initializer.rb +17 -0
  247. data/lib/rails/generators/pages_core/install/templates/frontend_controller.rb +2 -0
  248. data/lib/rails/generators/pages_core/install/templates/frontend_helper.rb +2 -0
  249. data/lib/rails/generators/pages_core/install/templates/gitignore.erb +12 -1
  250. data/lib/rails/generators/pages_core/install/templates/page_templates_initializer.rb +4 -2
  251. data/lib/rails/generators/pages_core/install/templates/pages_controller.rb +2 -0
  252. data/lib/rails/generators/pages_core/install/templates/pages_initializer.rb +2 -6
  253. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +18 -14
  254. data/lib/rails/generators/pages_core/rspec/templates/factories.rb +3 -8
  255. data/lib/rails/generators/pages_core/rspec/templates/mailer_macros.rb +2 -0
  256. data/lib/rails/generators/pages_core/rspec/templates/page_templates_spec.rb +26 -0
  257. data/lib/rails/generators/pages_core/rspec/templates/rails_helper.rb +91 -0
  258. data/lib/rails/generators/pages_core/rspec/templates/spec_helper.rb +89 -36
  259. data/lib/tasks/pages/cache.rake +8 -5
  260. data/lib/tasks/pages/export.rake +3 -1
  261. data/lib/tasks/pages/page_paths.rake +2 -0
  262. data/lib/tasks/pages.rake +3 -2
  263. data/template.rb +2 -0
  264. metadata +193 -156
  265. data/app/assets/javascripts/pages/admin/components/attachment.jsx +0 -130
  266. data/app/assets/javascripts/pages/admin/components/attachment_editor.jsx +0 -131
  267. data/app/assets/javascripts/pages/admin/components/attachments.jsx +0 -211
  268. data/app/assets/javascripts/pages/admin/components/drag_uploader.jsx +0 -174
  269. data/app/assets/javascripts/pages/admin/components/editable_image.jsx +0 -57
  270. data/app/assets/javascripts/pages/admin/components/grid_image.jsx +0 -124
  271. data/app/assets/javascripts/pages/admin/components/image_editor.jsx +0 -496
  272. data/app/assets/javascripts/pages/admin/components/image_grid.jsx +0 -301
  273. data/app/assets/javascripts/pages/admin/components/image_uploader.jsx +0 -171
  274. data/app/assets/javascripts/pages/admin/components/modal_store.jsx +0 -20
  275. data/app/assets/javascripts/pages/admin/components/rich_text_area.jsx +0 -63
  276. data/app/assets/javascripts/pages/admin/components/rich_text_toolbar.jsx +0 -58
  277. data/app/assets/javascripts/pages/admin/components/toast.jsx +0 -37
  278. data/app/assets/javascripts/pages/admin/components/toast_store.jsx +0 -52
  279. data/app/assets/javascripts/pages/admin/components.jsx +0 -2
  280. data/app/assets/javascripts/pages/admin/features/content_tabs.jsx +0 -72
  281. data/app/assets/javascripts/pages/admin/features/edit_page.jsx +0 -97
  282. data/app/assets/javascripts/pages/admin/features/rich_text.jsx +0 -14
  283. data/app/assets/javascripts/pages/admin/features/tag_editor.jsx +0 -160
  284. data/app/assets/javascripts/pages/admin.jsx +0 -17
  285. data/app/assets/javascripts/pages/login_form.jsx +0 -21
  286. data/app/controllers/concerns/pages_core/domain_based_cache.rb +0 -26
  287. data/app/serializers/admin/page_file_serializer.rb +0 -6
  288. data/app/serializers/admin/page_image_serializer.rb +0 -6
  289. data/app/serializers/page_export_serializer.rb +0 -30
  290. data/app/serializers/page_file_export_serializer.rb +0 -4
  291. data/app/serializers/page_image_export_serializer.rb +0 -40
  292. data/app/serializers/page_serializer.rb +0 -21
  293. data/app/views/admin_mailer/error_report.html.erb +0 -70
  294. data/app/views/errors/500_critical.html.erb +0 -7
  295. data/app/views/errors/report.html.erb +0 -4
  296. data/app/views/layouts/admin/_analytics.html.erb +0 -16
  297. data/config/removed_migrations.yml +0 -60
  298. data/db/migrate/20120627033112_rename_textbits.rb +0 -17
  299. data/db/migrate/20121010055412_drop_removed_tables.rb +0 -81
  300. data/db/migrate/20130130053932_add_queue_to_delayed_jobs.rb +0 -9
  301. data/db/migrate/20130303053932_remove_filter_from_localizations.rb +0 -9
  302. data/db/migrate/20130303160632_remove_imagesets.rb +0 -22
  303. data/db/migrate/20130303161732_remove_sms_subscribers.rb +0 -14
  304. data/db/migrate/20130823133208_update_page_redirect_to.rb +0 -10
  305. data/db/migrate/20140203183900_create_roles.rb +0 -66
  306. data/db/migrate/20140414150500_change_locale_names.rb +0 -11
  307. data/db/migrate/20140604142100_remove_openid_url.rb +0 -9
  308. data/db/migrate/20140920231700_convert_images_to_dis.rb +0 -81
  309. data/db/migrate/20140922124600_convert_page_files_to_dis.rb +0 -50
  310. data/db/migrate/20141004003100_create_password_reset_tokens.rb +0 -10
  311. data/db/migrate/20141006181300_remove_user_cruft.rb +0 -11
  312. data/db/migrate/20141007173000_create_invites.rb +0 -16
  313. data/db/migrate/20150204130800_update_delayed_job_table.rb +0 -9
  314. data/db/migrate/20150401131300_localize_images.rb +0 -38
  315. data/db/migrate/20150520174300_add_meta_image_to_page.rb +0 -5
  316. data/db/migrate/20150904164200_add_pinned_to_tags.rb +0 -5
  317. data/db/migrate/20151002174800_create_page_paths.rb +0 -10
  318. data/db/migrate/20151021103400_drop_binaries_table.rb +0 -7
  319. data/db/migrate/20151204151000_remove_page_content_order.rb +0 -5
  320. data/db/migrate/20160330220900_rename_pages_categories.rb +0 -6
  321. data/db/migrate/20160405202700_change_localization_limit.rb +0 -9
  322. data/db/migrate/20170716040500_remove_page_comments.rb +0 -23
  323. data/db/migrate/20170716213400_remove_sessions.rb +0 -15
  324. data/db/migrate/20180207134000_add_dates_to_pages.rb +0 -11
  325. data/db/migrate/20190211154800_create_attachments.rb +0 -73
  326. data/lib/rails/generators/pages_core/frontend/templates/application.js.erb +0 -15
  327. data/lib/rails/generators/pages_core/install/templates/cache_sweeper_initializer.rb +0 -6
  328. data/lib/tasks/pages/update.rake +0 -17
  329. data/vendor/assets/javascripts/ReactCrop.min.js +0 -1
  330. data/vendor/assets/javascripts/reflux.min.js +0 -1
@@ -1,72 +0,0 @@
1
- var ContentTabs = {
2
- tabs: [],
3
- ids: [],
4
-
5
- show: function(id, skipPushState) {
6
- let tabs = ContentTabs.tabs;
7
- let tab = tabs[id];
8
- if (tab) {
9
- $.each(ContentTabs.ids, function(i) {
10
- if (tabs[this]) {
11
- $(tabs[this]).hide();
12
- }
13
- $("#content-tab-link-" + this).removeClass("current");
14
- });
15
- $(tab).show();
16
- $("#content-tab-link-" + id).addClass("current");
17
- if (!skipPushState) {
18
- history.pushState({ tabId: id }, "", `${window.location.pathname}#${id}`);
19
- }
20
- }
21
- },
22
-
23
- showFromURL: function(url) {
24
- let tab_expression = /#(.*)$/;
25
- if (url.toString().match(tab_expression)) {
26
- let id = url.toString().match(tab_expression)[1];
27
- if (ContentTabs.tabs[id]) {
28
- ContentTabs.show(id);
29
- }
30
- }
31
- },
32
-
33
- enable: function(ids) {
34
- let tabs = ContentTabs.tabs;
35
- ContentTabs.ids = ids;
36
- $.each(ids, function(i) {
37
- let id = this;
38
- return $("#content-tab-" + this).each(function(i) {
39
- this.id = id;
40
- return tabs[id] = this;
41
- });
42
- });
43
- ContentTabs.show(ids[0], true);
44
- ContentTabs.showFromURL(document.location);
45
- },
46
-
47
- init: function() {
48
- if ($("#content-tabs").length > 0) {
49
- window.addEventListener("popstate", (evt) => {
50
- if (evt.state && evt.state.tabId) {
51
- ContentTabs.show(evt.state.tabId);
52
- }
53
- });
54
-
55
- let tabNames = $("#content-tabs li").map(function() {
56
- return $(this).data("tab-name");
57
- }).get();
58
- ContentTabs.enable(tabNames);
59
- $("#content-tabs a").each(function() {
60
- $(this).click(function() {
61
- ContentTabs.showFromURL(this.href);
62
- return false;
63
- });
64
- });
65
- }
66
- window.showContentTab = ContentTabs.show;
67
- }
68
- };
69
-
70
- $(function() {
71
- ContentTabs.init();
72
- });
@@ -1,97 +0,0 @@
1
- class EditPage {
2
- constructor(container) {
3
- this.container = container;
4
- this.toggleAdvancedOptions();
5
- this.replicateFormElements();
6
- this.checkPublishedStatus();
7
- this.checkPublishedDate();
8
- this.previewButton();
9
- }
10
-
11
- checkPublishedStatus() {
12
- let checkStatus = function() {
13
- var pageStatus = $("#page-form-sidebar #page_status").val();
14
- if (pageStatus === "2") {
15
- return $("#page-form-sidebar .published-date").fadeIn();
16
- } else {
17
- return $("#page-form-sidebar .published-date").hide();
18
- }
19
- };
20
- $("#page-form-sidebar #page_status").change(checkStatus);
21
- checkStatus();
22
- }
23
-
24
- checkPublishedDate() {
25
- $(".autopublish-notice").hide();
26
- let publishedAt = function(i) {
27
- return $(`#page-form-sidebar select[name="page[published_at(${i}i)]"]`)
28
- .val();
29
- };
30
- let checkDate = function() {
31
- var year = publishedAt(1);
32
- var month = publishedAt(2);
33
- var day = publishedAt(3);
34
- var hour = publishedAt(4);
35
- var minute = publishedAt(5);
36
- var publishDate = new Date(year, (month - 1), day, hour, minute);
37
- var now = new Date();
38
- if (publishDate > now) {
39
- return $(".autopublish-notice").fadeIn();
40
- } else {
41
- return $(".autopublish-notice").fadeOut();
42
- }
43
- };
44
- $(".published-date").find("select").change(checkDate);
45
- checkDate();
46
- }
47
-
48
- previewButton() {
49
- $("#previewButton").click(function() {
50
- var button = this;
51
- var form = $(button).closest("form").get(0);
52
- var previewUrl = $(this).data('url');
53
-
54
- // Rewrite the form and submit
55
- form.oldAction = form.action;
56
- form.target = "_blank";
57
- form.action = previewUrl;
58
- $(form).submit();
59
-
60
- // Undo rewrite
61
- form.action = form.oldAction;
62
- form.target = "";
63
- });
64
- }
65
-
66
- replicateFormElements() {
67
- let replicateFormElement = function() {
68
- var newValue = this;
69
- $("#page-form").find("[name=\"" + newValue.name + "\"]")
70
- .each(function() {
71
- if (newValue.type === "checkbox") {
72
- $(this).prop("checked", $(newValue).prop("checked"));
73
- } else {
74
- $(this).val($(newValue).val());
75
- }
76
- });
77
- };
78
-
79
- $("#page-form-sidebar")
80
- .find("input,textarea,select")
81
- .change(replicateFormElement);
82
- }
83
-
84
- toggleAdvancedOptions() {
85
- let container = this.container;
86
- $(container).find(".advanced-options").hide();
87
- $(container).find(".advanced-toggle").click(function() {
88
- return $(container).find(".advanced-options").slideToggle();
89
- });
90
- }
91
- }
92
-
93
- $(function () {
94
- $('.edit-page').each(function() {
95
- new EditPage(this)}
96
- );
97
- });
@@ -1,14 +0,0 @@
1
- $(function() {
2
- $('textarea.rich').each(function () {
3
- let container = document.createElement("div");
4
- this.parentNode.appendChild(container);
5
- ReactDOM.render(
6
- <RichTextArea value={this.value}
7
- name={this.name}
8
- rows={this.rows}
9
- id={this.id} />,
10
- container
11
- );
12
- this.parentNode.removeChild(this);
13
- });
14
- });
@@ -1,160 +0,0 @@
1
- var TagEditor = function(container) {
2
- this.initialize(container);
3
- };
4
-
5
- $.extend(TagEditor.prototype, {
6
- initialize: function(container) {
7
- var tagEditor = this;
8
- tagEditor.container = container;
9
- tagEditor.tags = Array();
10
- tagEditor.serializeField = $(tagEditor.container).find('.serialized_tags').get(0);
11
- tagEditor.findTags(true);
12
-
13
- tagEditor.inputField = $(tagEditor.container).find('.add-tag').get(0);
14
- $(tagEditor.container).find('.add-tag-button').click(function() {
15
- tagEditor.addTag();
16
- $(tagEditor.container).find('.add-tag').blur();
17
- return false;
18
- });
19
- $(tagEditor.container).find('.add-tag').keydown(function(event) {
20
- if (event.which === 13) {
21
- tagEditor.addTag();
22
- return false;
23
- }
24
- });
25
-
26
- $(tagEditor.container).find('.add-tag').each(function(){
27
- var field = this;
28
- field.exampleText = $(field).val();
29
- $(field).addClass('example');
30
- $(field).focus(function(event){
31
- $(tagEditor.container).find('.add-tag-button').fadeIn('fast');
32
- $(field).removeClass('example');
33
- if ($(field).val() === field.exampleText) {
34
- $(field).val('');
35
- }
36
- });
37
- $(field).blur(function(event) {
38
- $(tagEditor.container).find('.add-tag-button').fadeOut('fast');
39
- if (!$(field).val() || $(field).val() === field.exampleText) {
40
- $(field).addClass('example').val(field.exampleText);
41
- }
42
- });
43
- });
44
- $(tagEditor.container).find('.add-tag-button').hide();
45
- },
46
-
47
- addTag: function() {
48
- var tagEditor = this;
49
- var tagName = $(tagEditor.inputField).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
50
- if (tagName) {
51
- if (this.hasTag(tagName)) {
52
- this.enable(this.getTagByName(tagName));
53
- } else {
54
- $(tagEditor.container).find('.tags').append('<span class="tag"><input type="checkbox" name="tag-'+tagName+'" value="1" checked="checked"><span class="name">'+tagName+'</span></span>');
55
- tagEditor.findTags();
56
- }
57
- }
58
- $(tagEditor.inputField).val('');
59
- },
60
-
61
- findTags: function(permanentize) {
62
- var tagEditor = this;
63
- $(this.container).find('.tag').each(function () {
64
- var tag = this;
65
- if (!tag.tagEditorApplied) {
66
- tag.checkBox = $(tag).find('input[type=checkbox]').get(0);
67
- tag.name = $(tag).find('.name').text();
68
- if(tagEditor.isChecked(tag)){
69
- tag.enabled = true;
70
- $(tag).addClass('enabled');
71
- } else {
72
- tag.enabled = false;
73
- }
74
- $(tag).click(function () {
75
- tagEditor.toggle(tag);
76
- });
77
- tagEditor.tags[tagEditor.tags.length] = tag;
78
- tag.tagEditorApplied = true;
79
- }
80
- });
81
- tagEditor.serializeTags();
82
- },
83
-
84
- hasTag: function(tagName) {
85
- var hasTag = false;
86
- $(this.tags).each(function () {
87
- if (tagName.toLowerCase() === this.name.toLowerCase()) {
88
- hasTag = true;
89
- }
90
- });
91
- return hasTag;
92
- },
93
-
94
- setEnabled: function(tag, enabled) {
95
- tag.enabled = enabled;
96
- if (tag.enabled) {
97
- $(tag).addClass('enabled');
98
- } else {
99
- $(tag).removeClass('enabled');
100
- }
101
- $(tag.checkBox).attr('checked', tag.enabled);
102
- this.serializeTags();
103
- },
104
-
105
- toggle: function(tag) {
106
- if (tag.enabled) {
107
- this.disable(tag);
108
- } else {
109
- this.enable(tag);
110
- }
111
- },
112
-
113
- enable: function(tag) {
114
- this.setEnabled(tag, true);
115
- },
116
-
117
- disable: function(tag) {
118
- this.setEnabled(tag, false);
119
- },
120
-
121
- getTagByName: function(tagName) {
122
- var tag = null;
123
- $(this.tags).each(function(){
124
- if (this.name.toLowerCase() === tagName.toLowerCase()) {
125
- tag = this;
126
- }
127
- });
128
- return tag;
129
- },
130
-
131
- isChecked: function(tag) {
132
- return $(tag.checkBox).attr('checked');
133
- },
134
-
135
- enabledTags: function() {
136
- var enabledTags = Array();
137
- $(this.tags).each(function() {
138
- if (this.enabled) {
139
- enabledTags[enabledTags.length] = this;
140
- }
141
- });
142
- return enabledTags;
143
- },
144
-
145
- serializeTags: function() {
146
- var tagNames = Array();
147
- $(this.enabledTags()).each(function() {
148
- tagNames[tagNames.length] = '"' + this.name.replace('"', '\\"') + '"';
149
- });
150
- $(this.serializeField).val('['+tagNames.join(', ')+']');
151
- $(this.container).find('.add-tag').attr('disabled', false);
152
- }
153
- });
154
-
155
- // Apply the tag editor to each instance
156
- $(function() {
157
- $('.tag-editor').each(function() {
158
- this.tagEditor = new TagEditor(this);
159
- });
160
- });
@@ -1,17 +0,0 @@
1
- // Gem assets
2
- //= require jquery
3
- //= require jquery_ujs
4
- //= require jquery-ui
5
- //= require react
6
- //= require react_ujs
7
- //= require reflux.min
8
-
9
- // Vendored assets
10
- //= require ReactCrop.min
11
-
12
- //= require_self
13
- //= require pages/login_form
14
- //= require_tree ./admin/lib
15
-
16
- //= require pages/admin/components
17
- //= require_tree ./admin/features
@@ -1,21 +0,0 @@
1
- $(function () {
2
- $('.login-form').each(function () {
3
- let container = this;
4
-
5
- function showTab(tabName) {
6
- $(container).find('.login-tab').hide();
7
- $(container).find(`.login-tab.${tabName}`).show();
8
- return false
9
- }
10
-
11
- $(container).find('.show-password').click(function () {
12
- return showTab('password');
13
- });
14
-
15
- $(container).find('.show-password-reset').click(function () {
16
- return showTab('password-reset');
17
- });
18
-
19
- showTab('password');
20
- });
21
- });
@@ -1,26 +0,0 @@
1
- module PagesCore
2
- module DomainBasedCache
3
- extend ActiveSupport::Concern
4
-
5
- included do
6
- before_action :set_domain_based_cache_path
7
- end
8
-
9
- module ClassMethods
10
- def default_page_cache_directory
11
- @default_page_cache_directory ||=
12
- ActionController::Base.page_cache_directory
13
- end
14
- end
15
-
16
- protected
17
-
18
- def set_domain_based_cache_path
19
- return unless PagesCore.config(:domain_based_cache)
20
- ActionController::Base.page_cache_directory = File.join(
21
- ApplicationController.default_page_cache_directory,
22
- request.domain
23
- )
24
- end
25
- end
26
- end
@@ -1,6 +0,0 @@
1
- module Admin
2
- class PageFileSerializer < ActiveModel::Serializer
3
- attributes :id, :page_id, :attachment_id, :position
4
- has_one :attachment, serializer: Admin::AttachmentSerializer
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- module Admin
2
- class PageImageSerializer < ActiveModel::Serializer
3
- attributes :id, :page_id, :image_id, :position, :primary
4
- has_one :image, serializer: Admin::ImageSerializer
5
- end
6
- end
@@ -1,30 +0,0 @@
1
- class PageExportSerializer < ActiveModel::Serializer
2
- attributes :id, :path, :locale, :author_name, :status
3
- attributes(*PagesCore::Templates::TemplateConfiguration.all_blocks)
4
- attributes :created_at, :published_at, :pinned, :template, :redirect_to,
5
- :starts_at, :ends_at, :all_day
6
-
7
- has_one :image, serializer: PageImageExportSerializer
8
- has_many :images, serializer: PageImageExportSerializer
9
- has_many :page_files, serializer: PageFileExportSerializer
10
-
11
- def author_name
12
- object&.author&.name
13
- end
14
-
15
- def path
16
- object.full_path || object.to_param
17
- end
18
-
19
- def image
20
- object.page_images.where(primary: true).try(:first)
21
- end
22
-
23
- def images
24
- object.page_images
25
- end
26
-
27
- def status
28
- object.status_label
29
- end
30
- end
@@ -1,4 +0,0 @@
1
- class PageFileExportSerializer < ActiveModel::Serializer
2
- attributes :id, :filename, :name, :description, :content_hash, :content_type,
3
- :position, :created_at
4
- end
@@ -1,40 +0,0 @@
1
- class PageImageExportSerializer < ActiveModel::Serializer
2
- attributes :id, :primary, :content_hash, :content_type, :filename,
3
- :alternative, :caption, :created_at
4
-
5
- def id
6
- object.image.id
7
- end
8
-
9
- def name
10
- object.image.name
11
- end
12
-
13
- def alternative
14
- object.image.alternative
15
- end
16
-
17
- def caption
18
- object.image.caption
19
- end
20
-
21
- def content_hash
22
- object.image.content_hash
23
- end
24
-
25
- def content_type
26
- object.image.content_type
27
- end
28
-
29
- def filename
30
- object.image.filename
31
- end
32
-
33
- def size
34
- object.image.crop_size
35
- end
36
-
37
- def created_at
38
- object.image.created_at
39
- end
40
- end
@@ -1,21 +0,0 @@
1
- class PageSerializer < ActiveModel::Serializer
2
- attributes :id, :param, :parent_page_id, :locale
3
- attributes(*PagesCore::Templates::TemplateConfiguration.all_blocks)
4
- attributes :published_at, :pinned
5
-
6
- has_one :image
7
- has_many :images
8
- has_many :pages
9
-
10
- def param
11
- object.to_param
12
- end
13
-
14
- def image
15
- object.page_images.where(primary: true).try(:first)
16
- end
17
-
18
- def images
19
- object.page_images
20
- end
21
- end
@@ -1,70 +0,0 @@
1
- <style type="text/css">
2
- h3 {
3
- margin-top: 20px;
4
- margin-bottom: 10px;
5
- font-size: 18px;
6
- }
7
- pre {
8
- background: #eee;
9
- border: 1px solid #ccc;
10
- padding: 8px;
11
- background: #f8f8f8;
12
- }
13
- table {
14
- border-collapse: collapse;
15
- }
16
- td {
17
- border: 1px solid #ccc;
18
- padding: 4px 20px 4px 8px;
19
- }
20
- </style>
21
-
22
- <table>
23
- <tr>
24
- <td><strong>Requested URL</strong></td>
25
- <td><a href="<%= @error_report[:url] %>"><%= @error_report[:url] %></td>
26
- </tr>
27
- <tr>
28
- <td><strong>Timestamp</strong></td>
29
- <td><%= @error_report[:timestamp].to_s %></a></td>
30
- </tr>
31
- <tr>
32
- <td><strong>Reported by</strong></td>
33
- <td><a href="mailto:<%= @from %>"><%= @from %></a></td>
34
- </tr>
35
- <% if @error_report[:user] %>
36
- <tr>
37
- <td><strong>User account</strong></td>
38
- <td>#<%= @error_report[:user].id %>: <a href="mailto:<%= @error_report[:user].email %>"><%= @error_report[:user].email %></a></td>
39
- </tr>
40
- <% end %>
41
- </table>
42
-
43
- <h3>Message</h3>
44
- <pre><%= @error_report[:message].gsub('<', '&lt;').gsub('>', '&gt;') %></pre>
45
-
46
- <% if @description && !@description.empty? %>
47
- <h3>Description of error</h3>
48
- <pre><%= @description %></pre>
49
- <% end %>
50
-
51
- <h3>Params</h3>
52
- <pre><%= @error_report[:params].to_yaml %></pre>
53
-
54
- <% if @error_report[:session] %>
55
- <h3>Session data</h3>
56
- <pre><%= @error_report[:session].to_yaml %></pre>
57
- <% end %>
58
-
59
- <h3>Backtrace</h3>
60
- <pre><%= @error_report[:backtrace].join("\n") %></pre>
61
-
62
- <h3>Environment</h3>
63
- <table>
64
- <% @error_report[:env].each do |key,value| %>
65
- <tr>
66
- <td><strong><%= key %></strong></td>
67
- <td><%= (key == 'HTTP_COOKIE' ) ? value.split(/;[\s]*/).reject{|c| c =~ /^[\w\d]+_session=/}.join('<br />') : value %></td>
68
- </tr>
69
- <% end %>
70
- </table>
@@ -1,7 +0,0 @@
1
- <%
2
- @page_title = "Oh dear..."
3
- %>
4
- <p>
5
- Something went terribly wrong. Of course, this shouldn't happen, and we'd really appreciate it if you
6
- could notify us at <a href="mailto:support@anyone.no">support@anyone.no</a>.
7
- </p>
@@ -1,4 +0,0 @@
1
- <% @page_title = "Thank you!" %>
2
- <p>
3
- Your error report has been received.
4
- </p>
@@ -1,16 +0,0 @@
1
- <script type="text/javascript">
2
- var _gaq = _gaq || [];
3
- _gaq.push(['_setAccount', 'UA-5468672-21']);
4
- _gaq.push(['_setDomainName', 'none']);
5
- _gaq.push(['_setAllowLinker', true]);
6
- _gaq.push(['_trackPageview']);
7
-
8
- (function() {
9
- var ga = document.createElement('script');
10
- ga.type = 'text/javascript';
11
- ga.async = true;
12
- ga.src = 'https://ssl.google-analytics.com/ga.js';
13
- var s = document.getElementsByTagName('script')[0];
14
- s.parentNode.insertBefore(ga, s);
15
- })();
16
- </script>
@@ -1,60 +0,0 @@
1
- ---
2
- - "20120823033112_pinned_pages.rb"
3
- - "20121010055412_drop_newsletter_tables.rb"
4
- - "20121011014712_drop_feeds.rb"
5
- - "20121011020112_drop_accounts.rb"
6
- - "20121011023512_drop_partials.rb"
7
- - "20090114130552_create_sessions.rb"
8
- - "20090114130553_add_tag_support.rb"
9
- - "20090114130554_create_images.rb"
10
- - "20090114130555_create_imagesets.rb"
11
- - "20090114130556_create_feeds.rb"
12
- - "20090114130557_create_users.rb"
13
- - "20090114130558_create_textbits.rb"
14
- - "20090114130559_create_pages.rb"
15
- - "20090114130600_create_binaries.rb"
16
- - "20090114130602_create_mail_subscribers.rb"
17
- - "20090114130603_pages_published_at.rb"
18
- - "20090114130604_create_page_fragments.rb"
19
- - "20090114130605_add_page_image.rb"
20
- - "20090114130606_add_sms_flag.rb"
21
- - "20090114130607_image_binaries.rb"
22
- - "20090114130608_image_title_to_name.rb"
23
- - "20090114130609_drop_extra_binary_columns.rb"
24
- - "20090114130610_update_users.rb"
25
- - "20090114130611_create_user_logins.rb"
26
- - "20090114130612_create_mailings.rb"
27
- - "20090114130614_create_partials.rb"
28
- - "20090114130615_create_accounts.rb"
29
- - "20090114130616_add_reviewer_flag.rb"
30
- - "20090114130617_add_indexes.rb"
31
- - "20090114130618_update_accounts.rb"
32
- - "20090114130619_create_page_comments.rb"
33
- - "20090114130620_add_feed_item_fields.rb"
34
- - "20090114130621_add_mail_subscriber_group.rb"
35
- - "20090114130622_add_page_image_link.rb"
36
- - "20090114130623_create_sms_subscriber.rb"
37
- - "20090114130624_create_page_files.rb"
38
- - "20090114130625_mailing_content_type.rb"
39
- - "20090114130626_create_mailouts.rb"
40
- - "20090114130627_add_newsletter_image.rb"
41
- - "20090114130628_drop_cached_dynamic_images.rb"
42
- - "20090114130629_create_categories.rb"
43
- - "20090114130630_add_news_flag.rb"
44
- - "20090211140305_cropped_images.rb"
45
- - "20090212113806_autopublish_page.rb"
46
- - "20090427131345_add_sphinx_deltas.rb"
47
- - "20090515130917_page_unique_name.rb"
48
- - "20090519161958_open_id_login.rb"
49
- - "20091118121627_mailing_in_progress.rb"
50
- - "20100205140826_mailout_recipients.rb"
51
- - "20100205140827_delayed_jobs.rb"
52
- - "20100212061701_dynamic_image_binary_objects.rb"
53
- - "20100427180610_page_comments_counter_cache.rb"
54
- - "20100428153152_page_has_been_published.rb"
55
- - "20100802210833_misc_indexes.rb"
56
- - "20101027020110_remove_user_logins.rb"
57
- - "20111011182907_dynamic_image_add_original_binary_to_images.rb"
58
- - "20111103122938_rename_page_images.rb"
59
- - "20111104195653_remove_autopublish_at.rb"
60
- - "20111219033112_image_updated_at.rb"