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,11 +0,0 @@
1
- # encoding: utf-8
2
-
3
- ThinkingSphinx::Index.define :user, with: :real_time do
4
- indexes username
5
- indexes name
6
- indexes email
7
-
8
- has last_login_at, type: :timestamp
9
- has created_at, type: :timestamp
10
- has activated, type: :boolean
11
- end
@@ -1,85 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module PagesCore
4
- module PageTree
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- belongs_to :parent,
9
- class_name: "Page",
10
- foreign_key: :parent_page_id,
11
- inverse_of: :children
12
-
13
- has_many :children,
14
- class_name: "Page",
15
- foreign_key: :parent_page_id,
16
- inverse_of: :parent,
17
- dependent: :destroy
18
-
19
- # This must be included after the belongs_to call in order
20
- # to override the .parent method.
21
- include PagesCore::PageTree::InstanceMethods
22
- end
23
-
24
- module ClassMethods
25
- # Returns all root pages
26
- def roots
27
- where(parent_page_id: nil).order("position ASC")
28
- end
29
-
30
- # Returns the first root page
31
- def root
32
- roots.first
33
- end
34
- end
35
-
36
- module InstanceMethods
37
- # Returns list of ancestors, starting from parent until root.
38
- #
39
- # subchild1.ancestors # => [child1, root]
40
- def ancestors
41
- node, nodes = self, []
42
- nodes << node = node.parent while node.parent
43
- nodes
44
- end
45
-
46
- # Finds the page's next sibling. Returns nil if there isn't one.
47
- def next_sibling
48
- return unless siblings.any?
49
- siblings[(siblings.index(self) + 1)...siblings.length].try(&:first)
50
- end
51
-
52
- # Returns the pages parent
53
- def parent
54
- super.try { |node| node.localize(locale) }
55
- end
56
-
57
- # Finds the page's next sibling. Returns nil if there isn't one.
58
- def previous_sibling
59
- return unless siblings.any?
60
- siblings[0...siblings.index(self)].try(&:last)
61
- end
62
-
63
- # Returns the root node of the tree.
64
- def root
65
- self_and_ancestors.last
66
- end
67
-
68
- # Returns ancestors and current node itself.
69
- #
70
- # subchild1.self_and_ancestors # => [subchild1, child1, root]
71
- def self_and_ancestors
72
- [self] + ancestors
73
- end
74
-
75
- # Returns all siblings, including self.
76
- def siblings
77
- if parent
78
- parent.pages
79
- else
80
- self.class.roots.map { |node| node.localize(locale) }
81
- end
82
- end
83
- end
84
- end
85
- end
@@ -1,33 +0,0 @@
1
- module PagesCore
2
- module SearchablePage
3
- extend ActiveSupport::Concern
4
-
5
- def localization_values
6
- localizations.map(&:value)
7
- end
8
-
9
- def category_names
10
- categories.map(&:name)
11
- end
12
-
13
- def comment_names
14
- comments.map(&:name)
15
- end
16
-
17
- def comment_bodies
18
- comments.map(&:body)
19
- end
20
-
21
- def file_names
22
- files.map(&:name)
23
- end
24
-
25
- def file_filenames
26
- files.map(&:filename)
27
- end
28
-
29
- def published
30
- published?
31
- end
32
- end
33
- end
@@ -1,85 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module PagesCore
4
- module Templateable
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- before_validation :ensure_template
9
- end
10
-
11
- def template_config
12
- PagesCore::Templates::TemplateConfiguration.new(template)
13
- end
14
-
15
- def template
16
- !self[:template].blank? ? self[:template] : inherited_or_default_template
17
- end
18
-
19
- def default_subtemplate
20
- template_config.value(:sub_template) ||
21
- default_template ||
22
- subtemplate_with_postfix ||
23
- singularized_subtemplate ||
24
- template
25
- end
26
-
27
- private
28
-
29
- def singularized_subtemplate
30
- singularized = ActiveSupport::Inflector.singularize(base_template)
31
- return if base_template == singularized
32
- find_template_by_expression(
33
- Regexp.new("^" + Regexp.quote(singularized))
34
- )
35
- end
36
-
37
- def subtemplate_with_postfix
38
- find_template_by_expression(
39
- Regexp.new(
40
- "^" + Regexp.quote(base_template) + "_?(post|page|subpage|item)"
41
- )
42
- )
43
- end
44
-
45
- def base_template
46
- template
47
- .split(/_/)
48
- .reject { |w| %w(index list archive liste arkiv).include?(w) }
49
- .join(" ")
50
- end
51
-
52
- def default_template
53
- configured = PagesCore::Templates.configuration.get(
54
- :default, :template, :value
55
- )
56
- configured if configured != :autodetect
57
- end
58
-
59
- def find_template_by_expression(expr)
60
- PagesCore::Templates
61
- .names
62
- .select { |t| t.match(expr) }
63
- .try(&:first)
64
- end
65
-
66
- def inherited_or_default_template
67
- default_options = PagesCore::Templates.configuration.get(
68
- :default, :template, :options
69
- )
70
- if parent
71
- t = parent.default_subtemplate
72
- elsif default_options && default_options[:root]
73
- t = default_options[:root]
74
- elsif default_template
75
- t = default_template
76
- end
77
- t ||= :index
78
- t.to_s
79
- end
80
-
81
- def ensure_template
82
- self[:template] ||= inherited_or_default_template
83
- end
84
- end
85
- end
@@ -1,27 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class Localization < ActiveRecord::Base
4
- belongs_to :localizable, polymorphic: true
5
-
6
- class << self
7
- def locales
8
- select("DISTINCT locale").map(&:locale)
9
- end
10
-
11
- def names
12
- select("DISTINCT name").map(&:name)
13
- end
14
- end
15
-
16
- def to_s
17
- value || ""
18
- end
19
-
20
- def empty?
21
- to_s.empty?
22
- end
23
-
24
- def translate(locale)
25
- localizable.localizations.where(name: name, locale: locale).first
26
- end
27
- end
@@ -1,18 +0,0 @@
1
- # encoding: utf-8
2
-
3
- class PageComment < ActiveRecord::Base
4
- include PagesCore::Sweepable
5
-
6
- belongs_to :page, counter_cache: :comments_count
7
- attr_accessor :invalid_captcha
8
-
9
- def valid_captcha?
10
- (invalid_captcha) ? false : true
11
- end
12
-
13
- after_create do |page_comment|
14
- if page_comment.page && page_comment.valid?
15
- page_comment.page.update(last_comment_at: page_comment.created_at)
16
- end
17
- end
18
- end
@@ -1,21 +0,0 @@
1
- <table class="list comments">
2
- <% @page.comments.each do |c| %>
3
- <tr>
4
- <td>
5
- <p>
6
- <strong><%= c.name %></strong><br />
7
- <% if c.email? %><%= mail_to c.email, c.email %><br /><% end %>
8
- <% if c.url? %><%= link_to c.url, c.url %><br /><% end %>
9
- </p>
10
- <p>
11
- <%= time_ago_in_words c.created_at %> ago<br />
12
- from <%= c.remote_ip %>
13
- </p>
14
- <p>
15
- <%= link_to "Delete comment", admin_page_comment_url(@locale, @page, c), class: :delete, data: {confirm: "Are you sure?"}, method: :delete %>
16
- </p>
17
- </td>
18
- <td><%= c.body %></td>
19
- </tr>
20
- <% end %>
21
- </table>
@@ -1,63 +0,0 @@
1
- <%
2
- if page.news_page?
3
- subpages = []
4
- else
5
- subpages = page.children.visible.in_locale(page.locale).order(page.content_order)
6
- end
7
- page_classes = ['page', 'page_listing']
8
- page_classes << 'hidden' unless page.published?
9
- page_classes << 'page_without_locale' unless page.name?
10
- -%>
11
- <li page_id="<%= page.id %>">
12
- <% if page.reorderable? %>
13
- <div class="drag_handle">
14
- </div>
15
- <% end %>
16
- <div class="<%= page_classes.join(' ') %>" id="pagelisting_<%= page.id %>">
17
- <% if page.published? %>
18
- <%= link_to_if(policy(page).edit?, page_name(page), edit_admin_page_url(@locale, page), class: 'page_name') %>
19
- <% else %>
20
- <%= link_to_if(policy(page).edit?, page_name(page), edit_admin_page_url(@locale, page), class: 'page_name') %>
21
- <small class="status">
22
- (<%= (page.autopublish?) ? "Will publish at "+page.published_at.to_formatted_s(:short) : page.status_label %><% if page.draft? && page.author %> by <%= page.author.name %><% end %>)
23
- </small>
24
- <% end %>
25
-
26
- <%# Feed icon %>
27
- <% if page.feed_enabled? %>
28
- <%= image_tag("pages/feed-icon-14x14.png", size: "10x10") %>
29
- <% end %>
30
-
31
- <div class="actions">
32
- <% if policy(page).edit? %>
33
- &mdash;
34
- <%= link_to "Edit", edit_admin_page_url(@locale, page) %>
35
- <% end %>
36
- <% if policy(Page).new? %>
37
- /
38
- <%= link_to "Create subpage", new_admin_page_url(@locale, parent: page ) %>
39
- <% end %>
40
- &mdash;
41
- <small>last updated <%= time_ago_in_words page.updated_at %> ago</small>
42
- </div>
43
- </div>
44
- <% if page.news_page? %>
45
- <ul>
46
- <li><div class="page_listing">
47
- <em>(<%= page.children.visible.count %> items)</em>
48
- <div class="actions">
49
- <% if policy(Page).new? %>
50
- &mdash;
51
- <%= link_to "Create new", new_news_admin_pages_url(@locale, parent: page) %>
52
- <% end %>
53
- </div>
54
- </div></li>
55
- </ul>
56
- <% elsif subpages.length > 0 %>
57
- <ul <%= 'class="reorderable"'.html_safe if page.reorderable_children? %> parent_page_id="<%= page.id %>"><% subpages.each do |subpage| %>
58
- <%= render partial: "pagelisting", locals: { page: subpage } %>
59
- <% end %></ul>
60
- <% else %>
61
- <ul></ul>
62
- <% end %>
63
- </li>
@@ -1,47 +0,0 @@
1
- <div class="login-form">
2
-
3
- <div class="login-tab password">
4
- <%= form_tag session_path do %>
5
- <%= hidden_field_tag :success_url, success_url %>
6
- <%= hidden_field_tag :login_url, login_url %>
7
- <p>
8
- <label>Email address</label>
9
- <%= text_field_tag :username, '' %>
10
- </p>
11
- <p>
12
- <label>Password</label>
13
- <%= password_field_tag :password, '' %>
14
- </p>
15
- <p>
16
- <button type="submit">Sign in</button>
17
- </p>
18
- <ul>
19
- <li>
20
- <%= link_to "<b>Help!</b> I forgot my password!".html_safe, login_url, class: 'show-password-reset' %>
21
- </li>
22
- </ul>
23
- <% end %>
24
- </div>
25
-
26
- <div class="login-tab password-reset">
27
- <%= form_tag admin_password_resets_path do %>
28
- <%= hidden_field_tag :login_url, login_url %>
29
- <h2>
30
- Forgot your password?
31
- </h2>
32
- <p>
33
- Don't worry, it happens.
34
- Enter your email address below,
35
- and we'll send you a link where you can reset your password.
36
- </p>
37
- <p>
38
- <%= text_field_tag :username, '' %>
39
- </p>
40
- <p>
41
- <button type="submit">
42
- Send
43
- </button>
44
- </p>
45
- <% end %>
46
- </div>
47
- </div>
@@ -1,7 +0,0 @@
1
- <%= @comment.name %> has made a comment on <%= @page.name %>:
2
-
3
- <%= @comment.body %>
4
-
5
- From IP address: <%= @comment.remote_ip %>
6
-
7
- <%= @url %>
@@ -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>