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
@@ -18,23 +18,17 @@
18
18
  <% end %>
19
19
  <% end %>
20
20
 
21
- <%= form_for [:admin, @user], html: {multipart: true}, builder: PagesCore::FormBuilder do |f| %>
21
+ <%= form_for([:admin, @user],
22
+ html: { multipart: true },
23
+ builder: PagesCore::Admin::FormBuilder) do |f| %>
22
24
 
23
25
  <h2>Account details</h2>
24
26
  <%= f.labelled_text_field :name %>
25
27
  <%= f.labelled_text_field :email %>
26
28
 
27
- <h2>Picture</h2>
28
- <% if @user.image %>
29
- <p id="user-image-info">
30
- <%= (@user==current_user) ? "You already have" : "#{@user.name} already has" %> a profile picture.
31
- You can
32
- <%= link_to "delete it", delete_image_admin_user_path(@user), method: :delete, class: :delete %>
33
- or upload a new file below to replace it.
34
- </p>
35
- <% end %>
29
+ <h2>Profile picture</h2>
36
30
 
37
- <%= f.labelled_file_field :image %>
31
+ <%= f.image_uploader :image, alternative: @user.name %>
38
32
 
39
33
  <% if policy(@user).change_password? %>
40
34
  <h2>Password</h2>
@@ -1,15 +1,58 @@
1
- <%
2
- self.page_title = "Sign in"
3
- self.page_description = "Please enter your email address and password to sign in"
4
- add_body_class "login"
5
- -%>
6
-
7
- <% content_for :sidebar do %>
8
- <h2>Please note</h2>
9
- <p>
10
- Please contact support if you experience problems logging in or using Pages.
11
- </p>
12
- <% end %>
13
-
14
-
15
- <%= login_form(success_url: admin_default_path, login_url: login_admin_users_path) %>
1
+ <%
2
+ self.page_title = "Sign in"
3
+ self.page_description = "Please enter your email address and password to sign in"
4
+ add_body_class "login"
5
+ -%>
6
+
7
+ <% content_for :sidebar do %>
8
+ <h2>Please note</h2>
9
+ <p>
10
+ Please contact support if you experience problems logging in or using Pages.
11
+ </p>
12
+ <% end %>
13
+
14
+ <div class="login-form">
15
+ <div class="login-tab password">
16
+ <%= form_tag session_path do %>
17
+ <p>
18
+ <label>Email address</label>
19
+ <%= text_field_tag :username, '' %>
20
+ </p>
21
+ <p>
22
+ <label>Password</label>
23
+ <%= password_field_tag :password, '' %>
24
+ </p>
25
+ <p>
26
+ <button type="submit">Sign in</button>
27
+ </p>
28
+ <ul>
29
+ <li>
30
+ <%= link_to("<b>Help!</b> I forgot my password!".html_safe,
31
+ login_admin_users_path,
32
+ class: 'show-password-reset') %>
33
+ </li>
34
+ </ul>
35
+ <% end %>
36
+ </div>
37
+
38
+ <div class="login-tab password-reset">
39
+ <%= form_tag admin_password_resets_path do %>
40
+ <h2>
41
+ Forgot your password?
42
+ </h2>
43
+ <p>
44
+ Don't worry, it happens.
45
+ Enter your email address below,
46
+ and we'll send you a link where you can reset your password.
47
+ </p>
48
+ <p>
49
+ <%= text_field_tag :username, '' %>
50
+ </p>
51
+ <p>
52
+ <button type="submit">
53
+ Send
54
+ </button>
55
+ </p>
56
+ <% end %>
57
+ </div>
58
+ </div>
@@ -25,7 +25,7 @@
25
25
  <div class="content">
26
26
  <% if @user.image -%>
27
27
  <div style="float: right;">
28
- <%= editable_dynamic_image_tag(@user.image, size: '150x150', class: 'thumbnail') %>
28
+ <%= editable_dynamic_image_tag(@user.image) %>
29
29
  </div>
30
30
  <% end -%>
31
31
  <h2><%= @user.name %></h2>
@@ -6,4 +6,4 @@ Click the link below to create your account and get started.
6
6
 
7
7
  <%= @url %>
8
8
 
9
- If you have any further trouble, please don't hesitate in contacting us by sending us an email at support@kord.no (or simply by replying to this message).
9
+ If you have any further trouble, please don't hesitate in contacting us by sending us an email at support@anyone.no (or simply by replying to this message).
@@ -10,4 +10,4 @@ This will take you to a web page where you can set a new password of your choosi
10
10
 
11
11
  If you do not want to change your password, please ignore this email.
12
12
 
13
- If you have any further trouble, please don't hesitate in contacting us by sending us an email at support@kord.no (or simply by replying to this message).
13
+ If you have any further trouble, please don't hesitate in contacting us by sending us an email at support@anyone.no (or simply by replying to this message).
@@ -0,0 +1,6 @@
1
+ <% @page_title = "Unauthorized" %>
2
+ <p>
3
+ You are not authorized to access this resource.
4
+ </p>
5
+
6
+ <%= render partial: 'errors/generic_help' %>
@@ -1,4 +1,4 @@
1
- <% @page_title = "I'm afraid I can't do that." %>
1
+ <% @page_title = "Forbidden" %>
2
2
  <p>
3
3
  You are not authorized to access this resource.
4
4
  </p>
@@ -2,18 +2,23 @@
2
2
  @page_title = "Oh dear..."
3
3
  %>
4
4
  <p>
5
- Something went terribly wrong. Of course, this shouldn't happen, and we'd really appreciate it if you
6
- could click the button below to notify us about the problem.
5
+ Something went terribly wrong. Of course, this shouldn't happen, and
6
+ we'd really appreciate it if you could click the button below to
7
+ notify us about the problem.
7
8
  </p>
8
9
  <p>
9
10
  Please include your email address if you'd like to hear back from us.
10
11
  </p>
11
12
 
12
- <form action="/errors/report" method="post">
13
+ <%= form_tag report_errors_path, method: 'post' do %>
14
+ <%= hidden_field_tag :error_report, @report %>
13
15
  <p>
14
- <input name="email" type="text" class="text" value="<%= @email %>" placeholder="Your email (optional)" />
16
+ <input name="email" type="text" class="text" value="<%= @email %>"
17
+ placeholder="Your email (optional)" />
15
18
  </p>
16
19
  <p>
17
- <button type="submit" class="clean-gray">Report error</button>
20
+ <button type="submit" class="clean-gray">
21
+ Report error
22
+ </button>
18
23
  </p>
19
- </form>
24
+ <% end %>
@@ -3,5 +3,5 @@
3
3
  %>
4
4
  <p>
5
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@kord.no">support@kord.no</a>.
6
+ could notify us at <a href="mailto:support@anyone.no">support@anyone.no</a>.
7
7
  </p>
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  xml << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
4
2
  xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/") do
5
3
  xml.channel do
@@ -19,7 +17,7 @@ xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/") do
19
17
  xml.description { xml.cdata! item.body.to_html }
20
18
  else
21
19
  xml.description do
22
- xml.cdata! (item.extended? ? item.excerpt : item.body).to_html
20
+ xml.cdata!((item.extended? ? item.excerpt : item.body).to_html)
23
21
  end
24
22
  end
25
23
  xml.guid page_url(@locale, item, only_path: false)
@@ -1,83 +1,83 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <title>
6
- Pages
7
- <% if @page_title %>
8
- : <%= @page_title %>
9
- <% end %>
10
- </title>
11
-
12
- <link rel="shortcut icon"
13
- href="<%= asset_path 'pages/favicon.gif' %>"
14
- type="image/gif" />
15
- <link rel="icon"
16
- href="<%= asset_path 'pages/favicon.gif' %>"
17
- type="image/gif" />
18
-
19
- <%= stylesheet_link_tag "pages/admin" %>
20
- <%= stylesheet_link_tag "pages/admin/print", media: 'print' %>
21
-
22
- <% if Dir.glob(Rails.root.join("app/assets/stylesheets/admin.*")).any? %>
23
- <%= stylesheet_link_tag "admin" %>
24
- <% end %>
25
-
26
- <%= javascript_include_tag "pages/admin" %>
27
- <% if Dir.glob(Rails.root.join("app/assets/javascripts/admin.*")).any? %>
28
- <%= javascript_include_tag "admin" %>
29
- <% end %>
30
-
31
- <%= csrf_meta_tag %>
32
- </head>
33
-
34
- <body class="<%= body_classes.join(" ") %>"
35
- data-controller="<%= controller.class.to_s %>"
36
- data-action="<%= controller.action_name %>"
37
- data-locale="<%= @locale %>">
38
-
39
- <div class="wrapper">
40
-
41
- <%= render partial: "layouts/admin/header" %>
42
-
43
- <div class="main-wrapper">
44
- <main>
45
- <% if @page_description || @content_tabs %>
46
- <div id="page-description"<% if @content_tabs %> class="with_content_tabs"<% end %>>
47
- <% if @page_description_links -%>
48
- <div class="links">
49
- <%= @page_description_links.html_safe %>
50
- </div>
51
- <% end %>
52
- <h3>
53
- <%= (@page_description || @page_title).html_safe %>
54
- </h3>
55
- <% if @content_tabs %>
56
- <ul id="content-tabs">
57
- <% @content_tabs.map do |t| %>
58
- <li id="content-tab-link-<%= t[:key] %>" data-tab-name="<%= t[:key] %>">
59
- <% if t[:options][:disabled] == true %>
60
- <%= t[:name] %>
61
- <% else %>
62
- <%= link_to(t[:name], anchor: "#{t[:key]}") %>
63
- <% end %>
64
- </li>
65
- <% end %>
66
- </ul>
67
- <% end %>
68
- </div>
69
- <% end %>
70
-
71
- <%= yield %>
72
- </main>
73
-
74
- <% if content_for?(:sidebar) %>
75
- <aside class="sidebar">
76
- <%= content_for(:sidebar) %>
77
- </aside>
78
- <% end %>
79
- </div>
80
- </div>
81
- <%= render partial: "layouts/admin/analytics" %>
82
- </body>
83
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>
6
+ <%= [@page_title, "Pages"].reject(&:blank?).uniq.join(" - ") %>
7
+ </title>
8
+
9
+ <link rel="shortcut icon"
10
+ href="<%= asset_path 'pages/favicon.gif' %>"
11
+ type="image/gif" />
12
+ <link rel="icon"
13
+ href="<%= asset_path 'pages/favicon.gif' %>"
14
+ type="image/gif" />
15
+
16
+ <%= stylesheet_link_tag "pages/admin" %>
17
+
18
+ <% if Dir.glob(Rails.root.join("app/assets/stylesheets/admin.*")).any? %>
19
+ <%= stylesheet_link_tag "admin" %>
20
+ <% end %>
21
+
22
+ <%= javascript_include_tag "pages/admin" %>
23
+ <% if Dir.glob(Rails.root.join("app/assets/javascripts/admin.*")).any? %>
24
+ <%= javascript_include_tag "admin" %>
25
+ <% end %>
26
+
27
+ <%= csrf_meta_tag %>
28
+ <meta name="viewport"
29
+ content="width=device-width, initial-scale=1, user-scalable=no">
30
+ </head>
31
+
32
+ <body class="<%= body_classes.join(" ") %>"
33
+ data-controller="<%= controller.class.to_s %>"
34
+ data-action="<%= controller.action_name %>"
35
+ data-locale="<%= @locale %>">
36
+
37
+ <div class="wrapper">
38
+
39
+ <%= render partial: "layouts/admin/header" %>
40
+
41
+ <div class="main-wrapper">
42
+ <main>
43
+ <% if @page_description || @content_tabs %>
44
+ <div id="page-description"<% if @content_tabs %> class="with_content_tabs"<% end %>>
45
+ <% if @page_description_links -%>
46
+ <div class="links">
47
+ <%= @page_description_links.html_safe %>
48
+ </div>
49
+ <% end %>
50
+ <h3>
51
+ <%= (@page_description || @page_title).html_safe %>
52
+ </h3>
53
+ <% if @content_tabs %>
54
+ <ul id="content-tabs">
55
+ <% @content_tabs.map do |t| %>
56
+ <li id="content-tab-link-<%= t[:key] %>" data-tab-name="<%= t[:key] %>">
57
+ <% if t[:options][:disabled] == true %>
58
+ <%= t[:name] %>
59
+ <% else %>
60
+ <%= link_to(t[:name], anchor: "#{t[:key]}") %>
61
+ <% end %>
62
+ </li>
63
+ <% end %>
64
+ </ul>
65
+ <% end %>
66
+ </div>
67
+ <% end %>
68
+
69
+ <%= yield %>
70
+ </main>
71
+
72
+ <% if content_for?(:sidebar) %>
73
+ <aside class="sidebar">
74
+ <%= content_for(:sidebar) %>
75
+ </aside>
76
+ <% end %>
77
+ </div>
78
+ </div>
79
+ <%= react_component "Modal", {} %>
80
+ <%= react_component "Toast", { notice: flash[:notice] } %>
81
+ <%= render partial: "layouts/admin/analytics" %>
82
+ </body>
83
+ </html>
@@ -9,9 +9,7 @@
9
9
  var ga = document.createElement('script');
10
10
  ga.type = 'text/javascript';
11
11
  ga.async = true;
12
- ga.src = (
13
- 'https:' == document.location.protocol ? 'https://ssl' : 'http://www'
14
- ) + '.google-analytics.com/ga.js';
12
+ ga.src = 'https://ssl.google-analytics.com/ga.js';
15
13
  var s = document.getElementsByTagName('script')[0];
16
14
  s.parentNode.insertBefore(ga, s);
17
15
  })();
@@ -11,7 +11,7 @@
11
11
  <div class="user">
12
12
  Hello, <%= link_to(current_user.name, admin_user_url(current_user)) %>
13
13
  <%= link_separator %>
14
- <%= logout_link "Log out", login_url: login_admin_users_path %>
14
+ <%= link_to("Log out", session_path, method: "delete") %>
15
15
  </div>
16
16
  <% end %>
17
17
  <div class="tabs">
@@ -30,7 +30,7 @@
30
30
  </div>
31
31
  <% end %>
32
32
 
33
- <% if flash[:notice] %>
33
+ <% if flash[:notice] && false %>
34
34
  <div id="flash-notice">
35
35
  <%= flash[:notice] %>
36
36
  </div>
@@ -4,20 +4,16 @@
4
4
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
5
  <head>
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
8
  <title><%= @page_title || "We're sorry" %></title>
8
9
  <%= stylesheet_link_tag "pages/errors" %>
9
10
  </head>
10
11
  <body>
11
12
  <div id="content">
12
- <% if @page_title -%>
13
+ <% if @page_title %>
13
14
  <h1><%= @page_title %></h1>
14
- <% end -%>
15
- <%= yield %>
16
- <% if @error_id %>
17
- <p class="error_id">
18
- Error ID: <%= @error_id %>
19
- </p>
20
15
  <% end %>
16
+ <%= yield %>
21
17
  </content>
22
18
  </body>
23
19
  </html>
@@ -1,4 +1,16 @@
1
1
  en:
2
+ date:
3
+ formats:
4
+ pages_full: "%e %b %Y"
5
+ pages_date: "%e %b"
6
+ pages_day: "%e"
7
+ pages_time: ""
8
+ time:
9
+ formats:
10
+ pages_full: "%e %b %Y %H:%M"
11
+ pages_date: "%e %b %H:%M"
12
+ pages_day: "%e %H:%M"
13
+ pages_time: "%H:%M"
2
14
  activerecord:
3
15
  attributes:
4
16
  user:
data/config/routes.rb CHANGED
@@ -1,8 +1,13 @@
1
- # encoding: utf-8
2
-
3
1
  Rails.application.routes.draw do
4
2
  image_resources :images, path: "dynamic_images/:digest(/:size)"
5
3
 
4
+ # Attachment
5
+ resources :attachments, path: "attachments/:digest", only: %i[show] do
6
+ member do
7
+ get :download
8
+ end
9
+ end
10
+
6
11
  # Pages
7
12
  resources :pages, path: ":locale/pages" do
8
13
  collection do
@@ -10,26 +15,22 @@ Rails.application.routes.draw do
10
15
  post "search"
11
16
  end
12
17
  member do
13
- post "add_comment"
14
18
  put "preview"
15
19
  end
16
20
  resources :files, controller: "page_files"
17
21
  end
18
22
 
19
- get(
20
- "/:locale/pages/:id/:page" => "pages#show",
21
- constraints: { page: /\d+/ }, as: :paginated_page
22
- )
23
+ get "/:locale/pages/:id/:page" => "pages#show",
24
+ constraints: { page: /\d+/ }, as: :paginated_page
23
25
 
24
26
  # Redirect hack for backwards compatibility
25
27
  get "pages/:locale" => redirect("/%{locale}/pages"), locale: /\w\w\w/
26
- get(
27
- "pages/:locale/*glob" => redirect("/%{locale}/pages/%{glob}"),
28
- locale: /\w\w\w/
29
- )
28
+
29
+ get "pages/:locale/*glob" => redirect("/%{locale}/pages/%{glob}"),
30
+ locale: /\w\w\w/
30
31
 
31
32
  # Authentication
32
- resource :session, only: [:create, :destroy]
33
+ resource :session, only: %i[create destroy]
33
34
 
34
35
  # Sitemap
35
36
  resource :sitemap, only: [:show]
@@ -46,11 +47,14 @@ Rails.application.routes.draw do
46
47
  end
47
48
 
48
49
  # Password resets
49
- resources :password_resets, only: [:create, :show, :update]
50
+ resources :password_resets, only: %i[create show update]
50
51
  controller :password_resets do
51
52
  get "/password_resets/:id/:token" => :show, as: :password_reset_with_token
52
53
  end
53
54
 
55
+ # Attachments
56
+ resources :attachments, only: %i[create update]
57
+
54
58
  # Images
55
59
  resources :images
56
60
 
@@ -72,7 +76,8 @@ Rails.application.routes.draw do
72
76
  scope ":locale" do
73
77
  resources :pages do
74
78
  collection do
75
- get "news"
79
+ get "news(/:year(/:month)(/page/:page))", action: :news, as: :news
80
+ get "deleted"
76
81
  get "new_news" # TODO: Should be refactored
77
82
  end
78
83
 
@@ -82,36 +87,15 @@ Rails.application.routes.draw do
82
87
  end
83
88
 
84
89
  get "new/:parent", action: "new"
85
-
86
- # Page Images
87
- resources :images, controller: "page_images" do
88
- collection do
89
- put "reorder"
90
- end
91
- end
92
-
93
- # Page Files
94
- resources :files, controller: "page_files" do
95
- collection do
96
- post "reorder"
97
- end
98
- end
99
-
100
- # Page Files
101
- resources :comments, controller: "page_comments" do
102
- end
103
90
  end
104
91
  end
105
92
  end
106
93
 
107
94
  # Default admin route
108
- get(
109
- "/admin" => redirect do |_env, _req|
110
- "/admin/#{I18n.default_locale}/pages/news"
111
- end,
112
- as: "admin_default"
113
- )
114
- # get '/admin' => 'admin#redirect', as: 'admin_default'
95
+ get("/admin" => redirect do |_env, _req|
96
+ "/admin/#{I18n.default_locale}/pages/news"
97
+ end,
98
+ as: "admin_default")
115
99
 
116
100
  # Errors
117
101
  resources :errors do
@@ -121,24 +105,23 @@ Rails.application.routes.draw do
121
105
  end
122
106
 
123
107
  # Page path routing
124
- get(
125
- ":locale/*path/page/:page" => "pages#show",
126
- constraints: PagesCore::PagePathConstraint.new
127
- )
128
- get(
129
- ":locale/*path" => "pages#show",
130
- constraints: PagesCore::PagePathConstraint.new
131
- )
132
- get(
133
- "*path" => "pages#show",
134
- constraints: PagesCore::PagePathConstraint.new,
135
- defaults: { locale: I18n.default_locale.to_s }
136
- )
108
+ get ":locale/*path/page/:page" => "pages#show",
109
+ constraints: PagesCore::PagePathConstraint.new
137
110
 
111
+ get ":locale/*path" => "pages#show",
112
+ constraints: PagesCore::PagePathConstraint.new
113
+
114
+ get "*path/page/:page" => "pages#show",
115
+ constraints: PagesCore::PagePathConstraint.new,
116
+ defaults: { locale: I18n.default_locale.to_s }
117
+
118
+ get "*path" => "pages#show",
119
+ constraints: PagesCore::PagePathConstraint.new,
120
+ defaults: { locale: I18n.default_locale.to_s }
121
+
122
+ get "/401", to: "errors#unauthorized"
123
+ get "/403", to: "errors#forbidden"
138
124
  get "/404", to: "errors#not_found"
139
125
  get "/422", to: "errors#unacceptable"
140
126
  get "/500", to: "errors#internal_error"
141
-
142
- # Legacy routes
143
- get "/comments/:action/:type/:id", controller: "comments"
144
127
  end