pages_core 3.4.3 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +74 -15
  3. data/Rakefile +2 -0
  4. data/app/assets/javascripts/pages/admin.jsx +17 -0
  5. data/app/assets/javascripts/pages/admin/components.jsx +2 -0
  6. data/app/assets/javascripts/pages/admin/components/attachment.jsx +130 -0
  7. data/app/assets/javascripts/pages/admin/components/attachment_editor.jsx +131 -0
  8. data/app/assets/javascripts/pages/admin/components/attachments.jsx +211 -0
  9. data/app/assets/javascripts/pages/admin/components/date_range_select.jsx +174 -0
  10. data/app/assets/javascripts/pages/admin/components/drag_uploader.jsx +174 -0
  11. data/app/assets/javascripts/pages/admin/components/editable_image.jsx +57 -0
  12. data/app/assets/javascripts/pages/admin/components/file_upload_button.jsx +44 -0
  13. data/app/assets/javascripts/pages/admin/components/focal_point.jsx +82 -0
  14. data/app/assets/javascripts/pages/admin/components/grid_image.jsx +124 -0
  15. data/app/assets/javascripts/pages/admin/components/image_editor.jsx +496 -0
  16. data/app/assets/javascripts/pages/admin/components/image_grid.jsx +306 -0
  17. data/app/assets/javascripts/pages/admin/components/image_uploader.jsx +176 -0
  18. data/app/assets/javascripts/pages/admin/components/modal.jsx +48 -0
  19. data/app/assets/javascripts/pages/admin/components/modal_store.jsx +20 -0
  20. data/app/assets/javascripts/pages/admin/components/page_dates.jsx +58 -0
  21. data/app/assets/javascripts/pages/admin/components/page_files.jsx +14 -0
  22. data/app/assets/javascripts/pages/admin/components/page_images.jsx +16 -0
  23. data/app/assets/javascripts/pages/admin/components/page_tree.jsx +300 -0
  24. data/app/assets/javascripts/pages/admin/components/page_tree_node.jsx +396 -0
  25. data/app/assets/javascripts/pages/admin/components/page_tree_store.jsx +203 -0
  26. data/app/assets/javascripts/pages/admin/components/rich_text_area.jsx +64 -0
  27. data/app/assets/javascripts/pages/admin/components/rich_text_toolbar.jsx +91 -0
  28. data/app/assets/javascripts/pages/admin/components/toast.jsx +34 -0
  29. data/app/assets/javascripts/pages/admin/components/toast_store.jsx +52 -0
  30. data/app/assets/javascripts/pages/admin/features/content_tabs.jsx +72 -0
  31. data/app/assets/javascripts/pages/admin/features/edit_page.jsx +97 -0
  32. data/app/assets/javascripts/pages/admin/features/rich_text.jsx +14 -0
  33. data/app/assets/javascripts/pages/admin/features/tag_editor.jsx +160 -0
  34. data/app/assets/javascripts/pages/admin/lib/tree.jsx +294 -0
  35. data/app/assets/javascripts/pages/login_form.jsx +21 -0
  36. data/app/assets/stylesheets/pages/admin.scss +144 -0
  37. data/app/assets/stylesheets/pages/admin/components/archive.scss +6 -0
  38. data/app/assets/stylesheets/pages/admin/components/attachments.scss +130 -0
  39. data/app/assets/stylesheets/pages/admin/components/buttons.scss +23 -0
  40. data/app/assets/stylesheets/pages/admin/components/forms.scss +169 -0
  41. data/app/assets/stylesheets/pages/admin/components/header.scss +157 -0
  42. data/app/assets/stylesheets/pages/admin/components/image_editor.scss +195 -0
  43. data/app/assets/stylesheets/pages/admin/components/image_grid.scss +181 -0
  44. data/app/assets/stylesheets/pages/admin/components/image_uploader.scss +53 -0
  45. data/app/assets/stylesheets/pages/admin/components/layout.scss +44 -0
  46. data/app/assets/stylesheets/pages/admin/components/links.scss +43 -0
  47. data/app/assets/stylesheets/pages/admin/components/list_table.scss +61 -0
  48. data/app/assets/stylesheets/pages/admin/{login.css.scss.erb → components/login.scss} +3 -9
  49. data/app/assets/stylesheets/pages/admin/components/modal.scss +106 -0
  50. data/app/assets/stylesheets/pages/admin/components/page_tree.scss +179 -0
  51. data/app/assets/stylesheets/pages/admin/components/pagination.scss +49 -0
  52. data/app/assets/stylesheets/pages/admin/components/sidebar.scss +28 -0
  53. data/app/assets/stylesheets/pages/admin/components/tag_editor.scss +59 -0
  54. data/app/assets/stylesheets/pages/admin/components/textarea.scss +6 -0
  55. data/app/assets/stylesheets/pages/admin/components/toast.scss +51 -0
  56. data/app/assets/stylesheets/pages/admin/components/toolbar.scss +108 -0
  57. data/app/assets/stylesheets/pages/admin/controllers/pages.scss +184 -0
  58. data/app/assets/stylesheets/pages/admin/controllers/{users.css.erb → users.scss} +2 -2
  59. data/app/assets/stylesheets/pages/admin/mixins/breakpoints.scss +21 -0
  60. data/app/assets/stylesheets/pages/admin/mixins/clearfix.scss +7 -0
  61. data/app/assets/stylesheets/pages/admin/mixins/gradients.scss +7 -0
  62. data/app/assets/stylesheets/pages/admin/vars.scss +30 -0
  63. data/app/assets/stylesheets/pages/errors.css +2 -0
  64. data/app/controller_dummies/admin/admin_controller.rb +1 -1
  65. data/app/controller_dummies/application_controller.rb +3 -3
  66. data/app/controller_dummies/attachments_controller.rb +4 -0
  67. data/app/controller_dummies/frontend_controller.rb +1 -1
  68. data/app/controller_dummies/images_controller.rb +1 -1
  69. data/app/controller_dummies/page_files_controller.rb +1 -1
  70. data/app/controller_dummies/pages_controller.rb +1 -1
  71. data/app/controller_dummies/sitemaps_controller.rb +1 -1
  72. data/app/controllers/admin/attachments_controller.rb +50 -0
  73. data/app/controllers/admin/categories_controller.rb +3 -4
  74. data/app/controllers/admin/images_controller.rb +29 -18
  75. data/app/controllers/admin/invites_controller.rb +20 -23
  76. data/app/controllers/admin/pages_controller.rb +59 -111
  77. data/app/controllers/admin/password_resets_controller.rb +23 -21
  78. data/app/controllers/admin/users_controller.rb +23 -23
  79. data/app/controllers/concerns/pages_core/admin/news_page_controller.rb +67 -0
  80. data/app/controllers/concerns/pages_core/admin/persistent_params.rb +75 -0
  81. data/app/controllers/concerns/pages_core/authentication.rb +4 -3
  82. data/app/controllers/concerns/pages_core/error_renderer.rb +36 -0
  83. data/app/controllers/concerns/pages_core/error_reporting.rb +36 -0
  84. data/app/controllers/concerns/pages_core/policies_helper.rb +16 -13
  85. data/app/controllers/concerns/pages_core/preview_pages_controller.rb +44 -0
  86. data/app/controllers/concerns/pages_core/process_titler.rb +4 -4
  87. data/app/controllers/concerns/pages_core/rss_controller.rb +25 -0
  88. data/app/controllers/concerns/pages_core/static_cache_controller.rb +48 -0
  89. data/app/controllers/errors_controller.rb +20 -30
  90. data/app/controllers/pages_core/admin_controller.rb +21 -70
  91. data/app/controllers/pages_core/attachments_controller.rb +40 -0
  92. data/app/controllers/pages_core/{application_controller.rb → base_controller.rb} +13 -8
  93. data/app/controllers/pages_core/frontend/page_files_controller.rb +7 -24
  94. data/app/controllers/pages_core/frontend/pages_controller.rb +39 -228
  95. data/app/controllers/pages_core/frontend_controller.rb +10 -3
  96. data/app/controllers/pages_core/images_controller.rb +2 -2
  97. data/app/controllers/pages_core/sitemaps_controller.rb +15 -10
  98. data/app/controllers/sessions_controller.rb +4 -14
  99. data/app/formatters/pages_core/html_formatter.rb +52 -48
  100. data/app/formatters/pages_core/image_embedder.rb +79 -0
  101. data/app/formatters/pages_core/link_renderer.rb +17 -0
  102. data/app/helpers/admin/admin_helper.rb +1 -1
  103. data/app/helpers/admin/menu_helper.rb +19 -16
  104. data/app/helpers/admin/pages_helper.rb +27 -30
  105. data/app/helpers/application_helper.rb +1 -1
  106. data/app/helpers/frontend_helper.rb +1 -1
  107. data/app/helpers/pages_core/admin/admin_helper.rb +44 -71
  108. data/app/helpers/pages_core/admin/content_tabs_helper.rb +28 -0
  109. data/app/helpers/pages_core/admin/date_range_helper.rb +55 -0
  110. data/app/helpers/pages_core/admin/form_builder.rb +44 -0
  111. data/app/helpers/pages_core/admin/image_uploads_helper.rb +48 -0
  112. data/app/helpers/pages_core/admin/labelled_field_helper.rb +19 -19
  113. data/app/helpers/pages_core/admin/page_blocks_helper.rb +66 -0
  114. data/app/helpers/pages_core/admin/page_json_helper.rb +23 -0
  115. data/app/helpers/pages_core/admin/tag_editor_helper.rb +16 -14
  116. data/app/helpers/pages_core/application_helper.rb +15 -26
  117. data/app/helpers/pages_core/attachments_helper.rb +40 -0
  118. data/app/helpers/pages_core/form_builder.rb +71 -134
  119. data/app/helpers/pages_core/frontend_helper.rb +2 -8
  120. data/app/helpers/pages_core/head_tags_helper.rb +36 -169
  121. data/app/helpers/pages_core/images_helper.rb +5 -4
  122. data/app/helpers/pages_core/meta_tags_helper.rb +96 -0
  123. data/app/helpers/pages_core/open_graph_tags_helper.rb +51 -0
  124. data/app/helpers/pages_core/page_path_helper.rb +66 -0
  125. data/app/jobs/pages_core/autopublish_job.rb +2 -2
  126. data/app/jobs/pages_core/sweep_cache_job.rb +3 -3
  127. data/app/mailers/admin_mailer.rb +8 -31
  128. data/app/models/attachment.rb +78 -0
  129. data/app/models/autopublisher.rb +7 -4
  130. data/app/models/category.rb +10 -11
  131. data/app/models/concerns/pages_core/has_roles.rb +5 -4
  132. data/app/models/concerns/pages_core/humanizable_param.rb +11 -8
  133. data/app/models/concerns/pages_core/page_model/attachments.rb +41 -0
  134. data/app/models/concerns/pages_core/page_model/autopublishable.rb +25 -0
  135. data/app/models/concerns/pages_core/page_model/dated_page.rb +59 -0
  136. data/app/models/concerns/pages_core/page_model/images.rb +51 -0
  137. data/app/models/concerns/pages_core/page_model/localizable.rb +38 -0
  138. data/app/models/concerns/pages_core/page_model/pathable.rb +114 -0
  139. data/app/models/concerns/pages_core/page_model/redirectable.rb +36 -0
  140. data/app/models/concerns/pages_core/page_model/sortable.rb +53 -0
  141. data/app/models/concerns/pages_core/page_model/status.rb +50 -0
  142. data/app/models/concerns/pages_core/page_model/templateable.rb +85 -0
  143. data/app/models/concerns/pages_core/page_model/tree.rb +134 -0
  144. data/app/models/concerns/pages_core/sweepable.rb +3 -3
  145. data/app/models/concerns/pages_core/taggable.rb +11 -4
  146. data/app/models/image.rb +15 -1
  147. data/app/models/invite.rb +3 -11
  148. data/app/models/invite_role.rb +5 -3
  149. data/app/models/page.rb +49 -234
  150. data/app/models/page_builder.rb +5 -7
  151. data/app/models/page_category.rb +7 -0
  152. data/app/models/page_exporter.rb +100 -0
  153. data/app/models/page_file.rb +26 -50
  154. data/app/models/page_image.rb +7 -40
  155. data/app/models/page_path.rb +52 -0
  156. data/app/models/password_reset_token.rb +7 -9
  157. data/app/models/role.rb +23 -7
  158. data/app/models/tag.rb +28 -19
  159. data/app/models/tagging.rb +6 -5
  160. data/app/models/user.rb +38 -32
  161. data/app/policies/invite_policy.rb +2 -0
  162. data/app/policies/page_file_policy.rb +15 -17
  163. data/app/policies/page_image_policy.rb +15 -17
  164. data/app/policies/page_policy.rb +29 -23
  165. data/app/policies/policy.rb +4 -8
  166. data/app/policies/user_policy.rb +34 -32
  167. data/app/serializers/admin/attachment_serializer.rb +31 -0
  168. data/app/serializers/admin/image_serializer.rb +55 -6
  169. data/app/serializers/admin/page_file_serializer.rb +8 -0
  170. data/app/serializers/admin/page_image_serializer.rb +3 -1
  171. data/app/serializers/page_export_serializer.rb +32 -0
  172. data/app/serializers/page_file_export_serializer.rb +6 -0
  173. data/app/serializers/page_image_export_serializer.rb +42 -0
  174. data/app/serializers/page_image_serializer.rb +4 -0
  175. data/app/serializers/page_serializer.rb +2 -0
  176. data/app/services/pages_core/create_user_service.rb +39 -0
  177. data/app/services/pages_core/destroy_invite_service.rb +25 -0
  178. data/app/services/pages_core/invite_service.rb +43 -0
  179. data/app/views/admin/images/show.json.jbuilder +8 -0
  180. data/app/views/admin/invites/new.html.erb +2 -1
  181. data/app/views/admin/invites/show.html.erb +3 -4
  182. data/app/views/admin/pages/_edit_content.html.erb +11 -2
  183. data/app/views/admin/pages/_edit_files.html.erb +8 -0
  184. data/app/views/admin/pages/_edit_images.html.erb +8 -84
  185. data/app/views/admin/pages/_edit_metadata.html.erb +23 -12
  186. data/app/views/admin/pages/_edit_options.html.erb +25 -25
  187. data/app/views/admin/pages/_list_item.html.erb +50 -0
  188. data/app/views/admin/pages/deleted.html.erb +42 -0
  189. data/app/views/admin/pages/edit.html.erb +11 -91
  190. data/app/views/admin/pages/index.html.erb +10 -54
  191. data/app/views/admin/pages/new.html.erb +5 -4
  192. data/app/views/admin/pages/news.html.erb +61 -47
  193. data/app/views/admin/password_resets/show.html.erb +6 -9
  194. data/app/views/admin/users/_access_control.html.erb +4 -1
  195. data/app/views/admin/users/_list.html.erb +12 -7
  196. data/app/views/admin/users/edit.html.erb +5 -11
  197. data/app/views/admin/users/login.html.erb +58 -15
  198. data/app/views/admin/users/show.html.erb +1 -1
  199. data/app/views/admin_mailer/invite.text.erb +1 -1
  200. data/app/views/admin_mailer/password_reset.text.erb +1 -1
  201. data/app/views/errors/401.html.erb +6 -0
  202. data/app/views/errors/403.html.erb +1 -1
  203. data/app/views/errors/422.html.erb +7 -0
  204. data/app/views/errors/500.html.erb +2 -15
  205. data/app/views/errors/_generic_help.html.erb +1 -1
  206. data/app/views/feeds/pages.rss.builder +2 -2
  207. data/app/views/layouts/admin.html.erb +83 -79
  208. data/app/views/layouts/admin/_analytics.html.erb +1 -3
  209. data/app/views/layouts/admin/_header.html.erb +4 -4
  210. data/app/views/layouts/errors.html.erb +3 -7
  211. data/app/views/sitemaps/show.xml.builder +2 -0
  212. data/config/locales/en.yml +50 -1
  213. data/config/routes.rb +57 -58
  214. data/db/migrate/20111219033112_create_pages_tables.rb +191 -276
  215. data/lib/pages_core.rb +34 -32
  216. data/lib/pages_core/admin_menu_item.rb +18 -4
  217. data/lib/pages_core/archive_finder.rb +49 -20
  218. data/lib/pages_core/attachment_embedder.rb +36 -0
  219. data/lib/pages_core/cache_sweeper.rb +9 -89
  220. data/lib/pages_core/configuration.rb +3 -3
  221. data/lib/pages_core/configuration/base.rb +8 -9
  222. data/lib/pages_core/configuration/pages.rb +8 -9
  223. data/lib/pages_core/digest_verifier.rb +70 -0
  224. data/lib/pages_core/engine.rb +72 -5
  225. data/lib/pages_core/extensions.rb +2 -3
  226. data/lib/pages_core/extensions/string_extensions.rb +2 -2
  227. data/lib/pages_core/page_path_constraint.rb +23 -0
  228. data/lib/pages_core/pages_plugin.rb +13 -2
  229. data/lib/pages_core/plugin.rb +8 -52
  230. data/lib/pages_core/pub_sub.rb +38 -0
  231. data/lib/pages_core/static_cache.rb +26 -0
  232. data/lib/pages_core/static_cache/null_handler.rb +17 -0
  233. data/lib/pages_core/static_cache/page_cache_handler.rb +56 -0
  234. data/lib/pages_core/static_cache/varnish_handler.rb +55 -0
  235. data/lib/pages_core/templates.rb +10 -10
  236. data/lib/pages_core/templates/block_configuration.rb +4 -3
  237. data/lib/pages_core/templates/configuration.rb +115 -34
  238. data/lib/pages_core/templates/configuration_handler.rb +9 -5
  239. data/lib/pages_core/templates/configuration_proxy.rb +12 -12
  240. data/lib/pages_core/templates/controller_actions.rb +1 -1
  241. data/lib/pages_core/templates/template_configuration.rb +102 -98
  242. data/lib/pages_core/version.rb +2 -2
  243. data/lib/rails/generators/pages_core/frontend/frontend_generator.rb +11 -16
  244. data/lib/rails/generators/pages_core/frontend/templates/application.js.erb +1 -2
  245. data/lib/rails/generators/pages_core/frontend/templates/{application.css.scss.erb → application.scss.erb} +0 -0
  246. data/lib/rails/generators/pages_core/frontend/templates/{base.css.scss.erb → base.scss.erb} +0 -0
  247. data/lib/rails/generators/pages_core/frontend/templates/{breakpoints.css.scss.erb → breakpoints.scss.erb} +0 -0
  248. data/lib/rails/generators/pages_core/frontend/templates/clearfix.scss.erb +7 -0
  249. data/lib/rails/generators/pages_core/frontend/templates/layout.html.erb +0 -3
  250. data/lib/rails/generators/pages_core/install/install_generator.rb +25 -66
  251. data/lib/rails/generators/pages_core/install/templates/active_job_initializer.rb +2 -0
  252. data/lib/rails/generators/pages_core/install/templates/application_controller.rb +2 -2
  253. data/lib/rails/generators/pages_core/install/templates/application_helper.rb +1 -1
  254. data/lib/rails/generators/pages_core/install/templates/delayed_job +1 -0
  255. data/lib/rails/generators/pages_core/install/templates/delayed_job_initializer.rb +16 -1
  256. data/lib/rails/generators/pages_core/install/templates/frontend_controller.rb +1 -1
  257. data/lib/rails/generators/pages_core/install/templates/frontend_helper.rb +1 -1
  258. data/lib/rails/generators/pages_core/install/templates/gitignore.erb +12 -1
  259. data/lib/rails/generators/pages_core/install/templates/page_templates_initializer.rb +9 -15
  260. data/lib/rails/generators/pages_core/install/templates/pages_controller.rb +1 -1
  261. data/lib/rails/generators/pages_core/install/templates/pages_initializer.rb +5 -23
  262. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +19 -14
  263. data/lib/rails/generators/pages_core/rspec/templates/factories.rb +3 -8
  264. data/lib/rails/generators/pages_core/rspec/templates/mailer_macros.rb +2 -0
  265. data/lib/rails/generators/pages_core/rspec/templates/page_templates_spec.rb +26 -0
  266. data/lib/rails/generators/pages_core/rspec/templates/rails_helper.rb +91 -0
  267. data/lib/rails/generators/pages_core/rspec/templates/spec_helper.rb +89 -45
  268. data/lib/tasks/pages.rake +2 -63
  269. data/lib/tasks/pages/cache.rake +12 -5
  270. data/lib/tasks/pages/export.rake +11 -0
  271. data/lib/tasks/pages/page_paths.rake +12 -0
  272. data/template.rb +5 -3
  273. data/vendor/assets/javascripts/ReactCrop.min.js +1 -0
  274. data/vendor/assets/javascripts/reflux.min.js +1 -0
  275. data/vendor/assets/stylesheets/ReactCrop.css +167 -0
  276. metadata +356 -192
  277. data/app/assets/images/pages/admin/description-bg.gif +0 -0
  278. data/app/assets/images/pages/admin/drag-handle.gif +0 -0
  279. data/app/assets/images/pages/admin/flash-error-bg.gif +0 -0
  280. data/app/assets/images/pages/admin/formelement-bg.gif +0 -0
  281. data/app/assets/images/pages/admin/header-tab-current-bg.gif +0 -0
  282. data/app/assets/images/pages/admin/list-table-td-bg.gif +0 -0
  283. data/app/assets/images/pages/admin/sidebar-bg.gif +0 -0
  284. data/app/assets/images/pages/admin/textarea_controls.gif +0 -0
  285. data/app/assets/javascripts/pages/admin.js.coffee +0 -54
  286. data/app/assets/javascripts/pages/admin/controllers/base.js.coffee +0 -4
  287. data/app/assets/javascripts/pages/admin/controllers/pages_controller.js.coffee +0 -139
  288. data/app/assets/javascripts/pages/admin/controllers/users_controller.js.coffee +0 -9
  289. data/app/assets/javascripts/pages/admin/features/content_tabs.js.coffee +0 -47
  290. data/app/assets/javascripts/pages/admin/features/editable_image.js.coffee.erb +0 -122
  291. data/app/assets/javascripts/pages/admin/features/modal.js.coffee +0 -66
  292. data/app/assets/javascripts/pages/admin/features/page_images.js +0 -329
  293. data/app/assets/javascripts/pages/admin/features/rich_text.js.coffee +0 -40
  294. data/app/assets/javascripts/pages/admin/features/tag_editor.js +0 -159
  295. data/app/assets/javascripts/pages/admin/lib/ajax_extensions.js.coffee +0 -17
  296. data/app/assets/javascripts/pages/admin/lib/center_on_screen.js.coffee +0 -21
  297. data/app/assets/javascripts/pages/admin/lib/jrichtextarea.js +0 -57
  298. data/app/assets/javascripts/pages/login_form.js.coffee +0 -17
  299. data/app/assets/stylesheets/pages/admin.css.erb +0 -404
  300. data/app/assets/stylesheets/pages/admin/buttons.css.erb +0 -5
  301. data/app/assets/stylesheets/pages/admin/controllers/artists.css.erb +0 -94
  302. data/app/assets/stylesheets/pages/admin/controllers/files.css.erb +0 -58
  303. data/app/assets/stylesheets/pages/admin/controllers/pages.css.scss.erb +0 -178
  304. data/app/assets/stylesheets/pages/admin/editable_image.css.erb +0 -19
  305. data/app/assets/stylesheets/pages/admin/forms.css.scss.erb +0 -73
  306. data/app/assets/stylesheets/pages/admin/header.css.erb +0 -129
  307. data/app/assets/stylesheets/pages/admin/images.css.scss.erb +0 -160
  308. data/app/assets/stylesheets/pages/admin/links.css.erb +0 -34
  309. data/app/assets/stylesheets/pages/admin/list_table.css.erb +0 -56
  310. data/app/assets/stylesheets/pages/admin/modal.css.erb +0 -14
  311. data/app/assets/stylesheets/pages/admin/pagination.css.scss +0 -22
  312. data/app/assets/stylesheets/pages/admin/print.css.erb +0 -17
  313. data/app/assets/stylesheets/pages/admin/sidebar.css.erb +0 -39
  314. data/app/assets/stylesheets/pages/admin/sortable_images.css.erb +0 -18
  315. data/app/assets/stylesheets/pages/admin/tag_editor.css.scss.erb +0 -48
  316. data/app/assets/stylesheets/pages/admin/textarea.css.erb +0 -55
  317. data/app/controllers/admin/page_comments_controller.rb +0 -61
  318. data/app/controllers/admin/page_files_controller.rb +0 -81
  319. data/app/controllers/admin/page_images_controller.rb +0 -116
  320. data/app/controllers/concerns/pages_core/domain_based_cache.rb +0 -28
  321. data/app/controllers/concerns/pages_core/exception_handler.rb +0 -114
  322. data/app/helpers/pages_core/login_helper.rb +0 -14
  323. data/app/indices/page_file_index.rb +0 -9
  324. data/app/indices/page_index.rb +0 -29
  325. data/app/indices/user_index.rb +0 -11
  326. data/app/models/concerns/pages_core/page_tree.rb +0 -85
  327. data/app/models/concerns/pages_core/searchable_page.rb +0 -33
  328. data/app/models/concerns/pages_core/templateable.rb +0 -85
  329. data/app/models/localization.rb +0 -27
  330. data/app/models/page_comment.rb +0 -18
  331. data/app/views/admin/pages/_edit_comments.html.erb +0 -21
  332. data/app/views/admin/pages/_pagelisting.html.erb +0 -63
  333. data/app/views/admin/users/_login_form.html.erb +0 -47
  334. data/app/views/admin_mailer/comment_notification.text.erb +0 -7
  335. data/app/views/admin_mailer/error_report.html.erb +0 -70
  336. data/app/views/errors/500_critical.html.erb +0 -7
  337. data/app/views/errors/report.html.erb +0 -4
  338. data/config/removed_migrations.yml +0 -60
  339. data/db/migrate/20120627033112_rename_textbits.rb +0 -19
  340. data/db/migrate/20121010055412_drop_removed_tables.rb +0 -83
  341. data/db/migrate/20130130053932_add_queue_to_delayed_jobs.rb +0 -11
  342. data/db/migrate/20130303053932_remove_filter_from_localizations.rb +0 -11
  343. data/db/migrate/20130303160632_remove_imagesets.rb +0 -24
  344. data/db/migrate/20130303161732_remove_sms_subscribers.rb +0 -16
  345. data/db/migrate/20130823133208_update_page_redirect_to.rb +0 -25
  346. data/db/migrate/20140203183900_create_roles.rb +0 -63
  347. data/db/migrate/20140414150500_change_locale_names.rb +0 -13
  348. data/db/migrate/20140515130100_remove_sphinx_deltas.rb +0 -15
  349. data/db/migrate/20140604142100_remove_openid_url.rb +0 -9
  350. data/db/migrate/20140920231700_convert_images_to_dis.rb +0 -79
  351. data/db/migrate/20140922124600_convert_page_files_to_dis.rb +0 -50
  352. data/db/migrate/20141004003100_create_password_reset_tokens.rb +0 -10
  353. data/db/migrate/20141006181300_remove_user_cruft.rb +0 -11
  354. data/db/migrate/20141007173000_create_invites.rb +0 -16
  355. data/db/migrate/20150204130800_update_delayed_job_table.rb +0 -9
  356. data/db/migrate/20150401131300_localize_images.rb +0 -39
  357. data/db/migrate/20150520174300_add_meta_image_to_page.rb +0 -5
  358. data/db/migrate/20150904164200_add_pinned_to_tags.rb +0 -5
  359. data/lib/pages_core/extensions/hash_extensions.rb +0 -23
  360. data/lib/pages_core/localizable.rb +0 -49
  361. data/lib/pages_core/localizable/active_record_extension.rb +0 -41
  362. data/lib/pages_core/localizable/class_methods.rb +0 -51
  363. data/lib/pages_core/localizable/configuration.rb +0 -50
  364. data/lib/pages_core/localizable/instance_methods.rb +0 -130
  365. data/lib/pages_core/localizable/localizer.rb +0 -72
  366. data/lib/pages_core/localizable/scope_extension.rb +0 -22
  367. data/lib/pages_core/paginates.rb +0 -102
  368. data/lib/rails/generators/pages_core/frontend/templates/hidpi.css.scss.erb +0 -8
  369. data/lib/rails/generators/pages_core/install/templates/cache_sweeper_initializer.rb +0 -11
  370. data/lib/rails/generators/pages_core/install/templates/thinking_sphinx.yml +0 -12
  371. data/lib/tasks/db.rake +0 -96
  372. data/lib/tasks/pages/assets.rake +0 -65
  373. data/lib/tasks/pages/update.rake +0 -19
  374. data/vendor/assets/javascripts/jquery.dimscreen.js +0 -77
  375. data/vendor/assets/javascripts/jquery.fieldselection.js +0 -59
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Admin
4
- class PageCommentsController < Admin::AdminController
5
- before_action :find_page
6
- before_action :find_page_comment, only: [:show, :edit, :update, :destroy]
7
-
8
- def index
9
- redirect_to admin_page_path(@locale, @page)
10
- end
11
-
12
- def show
13
- end
14
-
15
- def new
16
- @page_comment = @page.comments.new
17
- end
18
-
19
- def edit
20
- end
21
-
22
- def create
23
- @page_comment = @page.comments.create(page_comment_params)
24
- if @page_comment.valid?
25
- flash[:notice] = "The comment was created"
26
- redirect_to admin_page_path(@locale, @page)
27
- else
28
- render action: :new
29
- end
30
- end
31
-
32
- def update
33
- if @page_comment.update(page_comment_params)
34
- flash[:notice] = "The comment was updated"
35
- redirect_to admin_page_path(@locale, @page)
36
- else
37
- render action: :edit
38
- end
39
- end
40
-
41
- def destroy
42
- @page_comment.destroy
43
- flash[:notice] = "The comment was deleted"
44
- redirect_to admin_page_path(@locale, @page)
45
- end
46
-
47
- protected
48
-
49
- def find_page
50
- @page = Page.find(params[:page_id])
51
- end
52
-
53
- def find_page_comment
54
- @page_comment = @page.comments.find(params[:id])
55
- end
56
-
57
- def page_comment_params
58
- params.require(:page_comment).permit(:name, :email, :url, :body)
59
- end
60
- end
61
- end
@@ -1,81 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Admin
4
- class PageFilesController < Admin::AdminController
5
- before_action :find_page
6
- before_action :find_page_file, only: [:show, :edit, :update, :destroy]
7
- before_action :redirect_to_page, only: [:index, :show, :new, :edit]
8
-
9
- require_authorization(
10
- PageFile,
11
- proc { @page_file },
12
- collection: [:index, :reorder, :new, :create]
13
- )
14
-
15
- def index
16
- end
17
-
18
- def reorder
19
- if params[:ids]
20
- files = Array(params[:ids]).map { |id| PageFile.find(id) }
21
- files.each_with_index do |file, index|
22
- file.update(position: index)
23
- end
24
- end
25
- if request.xhr?
26
- render text: "ok"
27
- else
28
- redirect_to_page
29
- end
30
- end
31
-
32
- def show
33
- end
34
-
35
- def new
36
- end
37
-
38
- def create
39
- @page_file = @page.files.new
40
- @page_file.update(page_file_params.merge(locale: @locale))
41
- flash[:notice] = "Error uploading file!" unless @page_file.valid?
42
- redirect_to_page
43
- end
44
-
45
- def edit
46
- end
47
-
48
- def update
49
- if @page_file.update(page_file_params)
50
- flash[:notice] = "File updated"
51
- else
52
- flash[:notice] = "Error updating file!"
53
- end
54
- redirect_to_page
55
- end
56
-
57
- def destroy
58
- @page_file.destroy
59
- flash[:notice] = "File deleted"
60
- redirect_to_page
61
- end
62
-
63
- protected
64
-
65
- def page_file_params
66
- params.require(:page_file).permit(:name, :filename, :file)
67
- end
68
-
69
- def redirect_to_page
70
- redirect_to(edit_admin_page_path(@locale, @page, anchor: "files"))
71
- end
72
-
73
- def find_page
74
- @page = Page.find(params[:page_id]).localize(@locale)
75
- end
76
-
77
- def find_page_file
78
- @page_file = @page.files.find(params[:id])
79
- end
80
- end
81
- end
@@ -1,116 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Admin
4
- class PageImagesController < Admin::AdminController
5
- before_action :find_page
6
- before_action :find_page_image, only: [:show, :edit, :update, :destroy]
7
-
8
- require_authorization(
9
- PageImage,
10
- proc { @page_image },
11
- collection: [:index, :reorder, :new, :create]
12
- )
13
-
14
- def index
15
- @page_images = @page.page_images
16
- respond_to do |format|
17
- format.json do
18
- render json: @page_images, each_serializer: Admin::PageImageSerializer
19
- end
20
- end
21
- end
22
-
23
- def reorder
24
- @page_images = params[:ids].map { |id| PageImage.find(id) }
25
- @page_images.each_with_index do |pi, i|
26
- pi.update_column(:position, i)
27
- end
28
- respond_to do |format|
29
- format.json do
30
- render json: @page_images, each_serializer: Admin::PageImageSerializer
31
- end
32
- end
33
- end
34
-
35
- def show
36
- end
37
-
38
- def new
39
- @page_image = @page.page_images.new
40
- end
41
-
42
- def create
43
- if page_images_params?
44
- page_images_params.each do |_index, attributes|
45
- if attributes[:image]
46
- @page.page_images.create(attributes.merge(locale: @locale))
47
- end
48
- end
49
- else
50
- @page.page_images.create(page_image_params.merge(locale: @locale))
51
- end
52
- redirect_to(admin_page_path(@locale, @page, anchor: "images"))
53
- end
54
-
55
- def update
56
- if @page_image.update(page_image_params)
57
- respond_to do |format|
58
- format.html do
59
- flash[:notice] = "The image was updated"
60
- redirect_to(admin_page_path(@locale, @page, anchor: "images"))
61
- end
62
- format.json do
63
- render json: @page_image.to_json
64
- end
65
- end
66
- else
67
- render action: :edit
68
- end
69
- end
70
-
71
- def destroy
72
- @page_image.destroy
73
- respond_to do |format|
74
- format.html do
75
- flash[:notice] = "The image was deleted"
76
- redirect_to(admin_page_path(@locale, @page, anchor: "images"))
77
- end
78
- format.json do
79
- render json: @page_image.to_json
80
- end
81
- end
82
- end
83
-
84
- protected
85
-
86
- def find_page
87
- @page = Page.find(params[:page_id]).localize(@locale)
88
- end
89
-
90
- def find_page_image
91
- @page_image = @page.page_images.find(params[:id]).localize(@locale)
92
- end
93
-
94
- def page_image_params
95
- params.require(:page_image).permit(
96
- :image, :primary,
97
- image_attributes: [
98
- :id, :alternative, :caption,
99
- :crop_start_x, :crop_start_y, :crop_width, :crop_height
100
- ]
101
- )
102
- end
103
-
104
- def page_images_params
105
- params.permit(
106
- page_images: [:image, :primary, {
107
- image_attributes: [:alternative, :caption]
108
- }]
109
- )[:page_images]
110
- end
111
-
112
- def page_images_params?
113
- params[:page_images] ? true : false
114
- end
115
- end
116
- end
@@ -1,28 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module PagesCore
4
- module DomainBasedCache
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- before_action :set_domain_based_cache_path
9
- end
10
-
11
- module ClassMethods
12
- def default_page_cache_directory
13
- @default_page_cache_directory ||=
14
- ActionController::Base.page_cache_directory
15
- end
16
- end
17
-
18
- protected
19
-
20
- def set_domain_based_cache_path
21
- return unless PagesCore.config(:domain_based_cache)
22
- ActionController::Base.page_cache_directory = File.join(
23
- ApplicationController.default_page_cache_directory,
24
- request.domain
25
- )
26
- end
27
- end
28
- end
@@ -1,114 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module PagesCore
4
- module ExceptionHandler
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- unless Rails.application.config.consider_all_requests_local
9
- rescue_from Exception, with: :handle_exception
10
- rescue_from PagesCore::NotAuthorized, with: :handle_exception
11
- rescue_from ActiveRecord::RecordNotFound, with: :handle_exception
12
- rescue_from ActionController::RoutingError, with: :handle_exception
13
- rescue_from ActionController::UnknownController, with: :handle_exception
14
- rescue_from AbstractController::ActionNotFound, with: :handle_exception
15
- end
16
- end
17
-
18
- # Renders a fancy error page from app/views/errors. If the error name
19
- # is numeric, it will also be set as the response status. Example:
20
- #
21
- # render_error 404
22
- #
23
- def render_error(error, options = {})
24
- options[:status] ||= error if error.is_a? Numeric
25
- options[:template] ||= "errors/#{error}"
26
- options[:layout] ||= "errors"
27
- @email = logged_in? ? current_user.email : ""
28
- render options
29
- end
30
-
31
- protected
32
-
33
- def log_error(exception)
34
- trace = exception.backtrace
35
- ActiveSupport::Deprecation.silence do
36
- message = "\n#{exception.class} (#{exception.message}):\n"
37
- if exception.respond_to?(:annoted_source_code)
38
- message << exception.annoted_source_code.to_s
39
- end
40
- message << " " << trace.join("\n ")
41
- logger.fatal("#{message}\n\n")
42
- end
43
- end
44
-
45
- def env_as_object
46
- request.env.each_with_object({}) do |hash, value|
47
- if value.first.is_a?(String) && value.last.is_a?(String)
48
- hash[value.first] = value.last
49
- end
50
- end
51
- end
52
-
53
- def filtered_backtrace(exception)
54
- Rails.backtrace_cleaner.send(:filter, exception.backtrace)
55
- end
56
-
57
- def exception_url
58
- [
59
- "http://",
60
- request.env["HTTP_HOST"],
61
- request.env["REQUEST_URI"]
62
- ].compact.join
63
- end
64
-
65
- def error_report(exception)
66
- {
67
- message: exception.to_s,
68
- url: exception_url,
69
- params: params,
70
- env: env_as_object,
71
- session: session.to_hash,
72
- backtrace: filtered_backtrace(exception),
73
- timestamp: Time.now,
74
- user_id: logged_in? ? current_user.id : nil
75
- }
76
- end
77
-
78
- def write_error(str)
79
- sha1_hash = Digest::SHA1.hexdigest(str)
80
- error_report_dir = Rails.root.join("log", "error_reports")
81
- error_report_file = error_report_dir.join("#{sha1_hash}.yml")
82
- `mkdir -p #{error_report_dir}` unless File.exist?(error_report_dir)
83
-
84
- unless File.exist?(error_report_file)
85
- File.open(error_report_file, "w") do |fh|
86
- fh.write str
87
- end
88
- end
89
- sha1_hash
90
- end
91
-
92
- def handle_exception(exception)
93
- log_error exception
94
- if exception.is_a?(ActionController::RoutingError) ||
95
- exception.is_a?(ActiveRecord::RecordNotFound)
96
- render_error 404
97
- elsif exception.is_a?(PagesCore::NotAuthorized)
98
- render_error 403
99
- else
100
- session[:error_report] = @error_id = write_error(
101
- error_report(exception).to_yaml
102
- )
103
- logger.error "Logged error #{@error_id}"
104
-
105
- render_error 500
106
- end
107
- rescue => error
108
- logger.fatal "Error in handle_exception"
109
- log_error(error)
110
- render(template: "errors/500_critical", status: 500, layout: false)
111
- return
112
- end
113
- end
114
- end
@@ -1,14 +0,0 @@
1
- module PagesCore
2
- module LoginHelper
3
- def login_form(success_url:, login_url:)
4
- render(
5
- partial: "admin/users/login_form",
6
- locals: { success_url: success_url, login_url: login_url }
7
- )
8
- end
9
-
10
- def logout_link(name, login_url:)
11
- link_to name, session_path(login_url: login_url), method: "delete"
12
- end
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- ThinkingSphinx::Index.define :page_file, with: :real_time do
2
- indexes name
3
- indexes filename
4
-
5
- has page_id, type: :integer
6
- has created_at, type: :timestamp
7
- has updated_at, type: :timestamp
8
- has published, type: :boolean
9
- end
@@ -1,29 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ThinkingSphinx::Index.define :page, with: :real_time do
4
- indexes localization_values
5
- indexes category_names
6
- indexes tag_list
7
- indexes author.name, as: :author_name
8
- indexes author.email, as: :author_email
9
- indexes comment_names
10
- indexes comment_bodies
11
- indexes file_names
12
- indexes file_filenames
13
-
14
- has category_ids, type: :integer, multi: true
15
- has tag_ids, type: :integer, multi: true
16
-
17
- has published_at, type: :timestamp
18
- has created_at, type: :timestamp
19
- has updated_at, type: :timestamp
20
- has user_id, type: :integer
21
- has parent_page_id, type: :integer
22
- has status, type: :integer
23
- has template, type: :string
24
- has autopublish, type: :boolean
25
- has feed_enabled, type: :boolean
26
- has published, type: :boolean
27
-
28
- set_property group_concat_max_len: 16.megabytes
29
- end