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
@@ -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,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  xml.instruct!
2
4
  xml.urlset xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9" do |urlset|
3
5
  @entries.each do |entry|
@@ -1,6 +1,55 @@
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:
5
17
  email: Email address
6
- image: Profile picture
18
+ image: Profile picture
19
+ templates:
20
+ default:
21
+ blocks:
22
+ name:
23
+ name: Name
24
+ description: "This is the name of the page, and it will also be the
25
+ name of the link to this page."
26
+ body:
27
+ name: Body
28
+ description: ""
29
+ headline:
30
+ name: Headline
31
+ description: "Optional, use if the headline should differ from the
32
+ page name."
33
+ excerpt:
34
+ name: Standfirst
35
+ description: An introductory paragraph before the start of the body.
36
+ boxout:
37
+ name: Boxout
38
+ description: "Part of the page, usually background info or facts
39
+ related to the article."
40
+ meta_title:
41
+ name: Title
42
+ description: "Document title. Will fall back to the page name if
43
+ empty. Recommended length: Up to 56 characters."
44
+ meta_description:
45
+ name: Description
46
+ description: "Description for search engines. Will fall back to
47
+ Standfirst if empty. Recommended length: Up to 156 characters."
48
+ open_graph_title:
49
+ name: Open Graph Title
50
+ description: "Page title for Facebook sharing. Will fall back to the
51
+ document title."
52
+ open_graph_description:
53
+ name: Open Graph Description
54
+ description: "Description for Facebook sharing. Will fall back to
55
+ Description or Standfirst if empty."
data/config/routes.rb CHANGED
@@ -1,37 +1,40 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  Rails.application.routes.draw do
4
+ Healthcheck.routes(self)
5
+
4
6
  image_resources :images, path: "dynamic_images/:digest(/:size)"
5
7
 
8
+ # Attachment
9
+ resources :attachments, path: "attachments/:digest", only: %i[show] do
10
+ member do
11
+ get :download
12
+ end
13
+ end
14
+
6
15
  # Pages
7
- scope path: PagesCore.config.pages_path_scope do
8
- resources :pages, path: ":locale/pages" do
9
- collection do
10
- get "search"
11
- post "search"
12
- end
13
- member do
14
- post "add_comment"
15
- put "preview"
16
- end
17
- resources :files, controller: "page_files"
16
+ resources :pages, path: ":locale/pages" do
17
+ collection do
18
+ get "search"
19
+ post "search"
20
+ end
21
+ member do
22
+ put "preview"
18
23
  end
24
+ resources :files, controller: "page_files"
25
+ end
19
26
 
20
- get(
21
- "/:locale/pages/:id/:page" => "pages#show",
27
+ get "/:locale/pages/:id/:page" => "pages#show",
22
28
  constraints: { page: /\d+/ }, as: :paginated_page
23
- )
24
29
 
25
- # Redirect hack for backwards compatibility
26
- get "pages/:locale" => redirect("/%{locale}/pages"), locale: /\w\w\w/
27
- get "pages/:locale/*glob" => redirect("/%{locale}/pages/%{glob}"),
28
- locale: /\w\w\w/
30
+ # Redirect hack for backwards compatibility
31
+ get "pages/:locale" => redirect("/%{locale}/pages"), locale: /\w\w\w/
29
32
 
30
- get "(/:locale)" => "pages#index" if PagesCore.config.pages_path_scope?
31
- end
33
+ get "pages/:locale/*glob" => redirect("/%{locale}/pages/%{glob}"),
34
+ locale: /\w\w\w/
32
35
 
33
36
  # Authentication
34
- resource :session, only: [:create, :destroy]
37
+ resource :session, only: %i[create destroy]
35
38
 
36
39
  # Sitemap
37
40
  resource :sitemap, only: [:show]
@@ -48,11 +51,14 @@ Rails.application.routes.draw do
48
51
  end
49
52
 
50
53
  # Password resets
51
- resources :password_resets, only: [:create, :show, :update]
54
+ resources :password_resets, only: %i[create show update]
52
55
  controller :password_resets do
53
56
  get "/password_resets/:id/:token" => :show, as: :password_reset_with_token
54
57
  end
55
58
 
59
+ # Attachments
60
+ resources :attachments, only: %i[create update]
61
+
56
62
  # Images
57
63
  resources :images
58
64
 
@@ -74,54 +80,47 @@ Rails.application.routes.draw do
74
80
  scope ":locale" do
75
81
  resources :pages do
76
82
  collection do
77
- get "news"
83
+ get "news(/:year(/:month)(/page/:page))", action: :news, as: :news
84
+ get "deleted"
78
85
  get "new_news" # TODO: Should be refactored
79
- get "reorder_pages"
80
86
  end
81
87
 
82
88
  member do
83
- delete "delete_meta_image"
89
+ put "move"
84
90
  end
85
91
 
86
92
  get "new/:parent", action: "new"
87
-
88
- # Page Images
89
- resources :images, controller: "page_images" do
90
- collection do
91
- put "reorder"
92
- end
93
- end
94
-
95
- # Page Files
96
- resources :files, controller: "page_files" do
97
- collection do
98
- post "reorder"
99
- end
100
- end
101
-
102
- # Page Files
103
- resources :comments, controller: "page_comments" do
104
- end
105
93
  end
106
94
  end
107
95
  end
108
96
 
109
97
  # Default admin route
110
- get(
111
- "/admin" => redirect do |_env, _req|
112
- "/admin/#{I18n.default_locale}/pages/news"
113
- end,
114
- as: "admin_default"
115
- )
116
- # get '/admin' => 'admin#redirect', as: 'admin_default'
98
+ get("/admin" => redirect do |_env, _req|
99
+ "/admin/#{I18n.default_locale}/pages/news"
100
+ end,
101
+ as: "admin_default")
117
102
 
118
103
  # Errors
119
- resources :errors do
120
- collection do
121
- post "report"
122
- end
123
- end
104
+ resources :errors
105
+
106
+ # Page path routing
107
+ get ":locale/*path/page/:page" => "pages#show",
108
+ constraints: PagesCore::PagePathConstraint.new
109
+
110
+ get ":locale/*path" => "pages#show",
111
+ constraints: PagesCore::PagePathConstraint.new
112
+
113
+ get "*path/page/:page" => "pages#show",
114
+ constraints: PagesCore::PagePathConstraint.new,
115
+ defaults: { locale: I18n.default_locale.to_s }
116
+
117
+ get "*path" => "pages#show",
118
+ constraints: PagesCore::PagePathConstraint.new,
119
+ defaults: { locale: I18n.default_locale.to_s }
124
120
 
125
- # Legacy routes
126
- get "/comments/:action/:type/:id", controller: "comments"
121
+ get "/401", to: "errors#unauthorized"
122
+ get "/403", to: "errors#forbidden"
123
+ get "/404", to: "errors#not_found"
124
+ get "/422", to: "errors#unacceptable"
125
+ get "/500", to: "errors#internal_error"
127
126
  end
@@ -1,281 +1,196 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- class CreatePagesTables < ActiveRecord::Migration
3
+ class CreatePagesTables < ActiveRecord::Migration[5.0]
4
4
  def change
5
- create_table "accounts" do |t|
6
- t.string "name"
7
- t.string "plan"
8
- t.string "key"
9
- t.text "billing_address"
10
- t.integer "account_holder_id"
11
- t.datetime "created_at"
12
- t.datetime "updated_at"
13
- t.datetime "last_billed_at"
14
- t.boolean "is_activated", default: true, null: false
15
- t.string "domain"
5
+ create_table :attachments do |t|
6
+ t.string :filename, null: false
7
+ t.string :content_type, null: false
8
+ t.integer :content_length, null: false
9
+ t.datetime :created_at
10
+ t.datetime :updated_at
11
+ t.string :content_hash, null: false
12
+ t.integer :user_id
13
+ end
14
+
15
+ create_table :categories do |t|
16
+ t.string :name
17
+ t.string :slug
18
+ t.integer :position
19
+ t.datetime :created_at, null: false
20
+ t.datetime :updated_at, null: false
21
+ t.index :slug
22
+ end
23
+
24
+ create_table :delayed_jobs do |t|
25
+ t.integer :priority, default: 0
26
+ t.integer :attempts, default: 0
27
+ t.text :handler
28
+ t.text :last_error
29
+ t.datetime :run_at
30
+ t.datetime :locked_at
31
+ t.datetime :failed_at
32
+ t.string :locked_by
33
+ t.datetime :created_at, null: false
34
+ t.datetime :updated_at, null: false
35
+ t.string :queue
36
+ end
37
+
38
+ create_table :images do |t|
39
+ t.string :filename, null: false
40
+ t.string :content_type, null: false
41
+ t.datetime :created_at
42
+ t.datetime :updated_at
43
+ t.string :content_hash, null: false
44
+ t.integer :content_length, null: false
45
+ t.string :colorspace, null: false
46
+ t.integer :real_width, null: false
47
+ t.integer :real_height, null: false
48
+ t.integer :crop_width
49
+ t.integer :crop_height
50
+ t.integer :crop_start_x
51
+ t.integer :crop_start_y
52
+ t.integer :crop_gravity_x
53
+ t.integer :crop_gravity_y
54
+ end
55
+
56
+ create_table :invite_roles do |t|
57
+ t.integer :invite_id
58
+ t.string :name
59
+ t.datetime :created_at
60
+ t.datetime :updated_at
61
+ end
62
+
63
+ create_table :invites do |t|
64
+ t.integer :user_id
65
+ t.string :email
66
+ t.string :token
67
+ t.datetime :sent_at
68
+ t.datetime :created_at
69
+ t.datetime :updated_at
70
+ end
71
+
72
+ create_table :localizations do |t|
73
+ t.integer :localizable_id
74
+ t.string :localizable_type
75
+ t.string :name
76
+ t.string :locale
77
+ t.text :value
78
+ t.datetime :created_at
79
+ t.datetime :updated_at
80
+ t.index %i[localizable_id localizable_type name locale],
81
+ name: :index_textbits_on_locale,
82
+ unique: true
83
+ t.index %i[localizable_id localizable_type]
84
+ end
85
+
86
+ create_table :page_categories do |t|
87
+ t.integer :page_id
88
+ t.integer :category_id
89
+ t.index :category_id
90
+ t.index :page_id
91
+ end
92
+
93
+ create_table :page_files, force: :cascade do |t|
94
+ t.bigint :page_id
95
+ t.bigint :attachment_id
96
+ t.integer :position
97
+ t.datetime :created_at, null: false
98
+ t.datetime :updated_at, null: false
99
+ t.index :attachment_id
100
+ t.index :page_id
101
+ end
102
+
103
+ create_table :page_images do |t|
104
+ t.integer :page_id
105
+ t.integer :image_id
106
+ t.integer :position
107
+ t.boolean :primary, default: false, null: false
108
+ t.index %i[page_id primary]
109
+ t.index :page_id
110
+ end
111
+
112
+ create_table :page_paths do |t|
113
+ t.integer :page_id
114
+ t.string :locale
115
+ t.string :path
116
+ t.datetime :created_at, null: false
117
+ t.datetime :updated_at, null: false
118
+ t.index %i[locale path], unique: true
119
+ end
120
+
121
+ create_table :pages do |t|
122
+ t.integer :parent_page_id
123
+ t.integer :position
124
+ t.string :byline
125
+ t.string :template
126
+ t.datetime :created_at
127
+ t.datetime :updated_at
128
+ t.integer :user_id
129
+ t.integer :status, default: 0, null: false
130
+ t.boolean :feed_enabled, default: false, null: false
131
+ t.datetime :published_at
132
+ t.string :redirect_to
133
+ t.integer :image_id
134
+ t.string :image_link
135
+ t.boolean :news_page, default: false, null: false
136
+ t.boolean :autopublish, default: false, null: false
137
+ t.string :unique_name
138
+ t.datetime :last_comment_at
139
+ t.boolean :pinned, default: false, null: false
140
+ t.integer :meta_image_id
141
+ t.datetime :starts_at
142
+ t.datetime :ends_at
143
+ t.boolean :all_day, default: false, null: false
144
+ t.index :ends_at
145
+ t.index :parent_page_id
146
+ t.index :position
147
+ t.index :starts_at
148
+ t.index %i[status parent_page_id position]
149
+ t.index :status
150
+ t.index :user_id
151
+ end
152
+
153
+ create_table :password_reset_tokens do |t|
154
+ t.integer :user_id
155
+ t.string :token
156
+ t.datetime :expires_at
157
+ t.datetime :created_at
158
+ t.datetime :updated_at
159
+ end
160
+
161
+ create_table :roles do |t|
162
+ t.integer :user_id
163
+ t.string :name
164
+ t.datetime :created_at
165
+ t.datetime :updated_at
166
+ t.index :user_id
167
+ end
168
+
169
+ create_table :taggings do |t|
170
+ t.integer :tag_id
171
+ t.integer :taggable_id
172
+ t.string :taggable_type
173
+ t.index :tag_id
174
+ t.index %i[taggable_type taggable_id]
175
+ end
176
+
177
+ create_table :tags do |t|
178
+ t.string :name
179
+ t.boolean :pinned, default: false, null: false
180
+ t.index :name
181
+ end
182
+
183
+ create_table :users do |t|
184
+ t.string :username
185
+ t.string :hashed_password
186
+ t.string :name
187
+ t.string :email
188
+ t.datetime :last_login_at
189
+ t.integer :created_by
190
+ t.datetime :created_at
191
+ t.text :persistent_data
192
+ t.boolean :activated, default: false, null: false
193
+ t.integer :image_id
16
194
  end
17
-
18
- create_table "binaries" do |t|
19
- t.string "sha1_hash"
20
- end
21
-
22
- create_table "categories" do |t|
23
- t.string "name"
24
- t.string "slug"
25
- t.integer "position"
26
- t.datetime "created_at", null: false
27
- t.datetime "updated_at", null: false
28
- end
29
-
30
- add_index "categories", ["slug"], name: "index_categories_on_slug"
31
-
32
- create_table "delayed_jobs" do |t|
33
- t.integer "priority", default: 0
34
- t.integer "attempts", default: 0
35
- t.text "handler"
36
- t.string "last_error"
37
- t.datetime "run_at"
38
- t.datetime "locked_at"
39
- t.datetime "failed_at"
40
- t.string "locked_by"
41
- t.datetime "created_at", null: false
42
- t.datetime "updated_at", null: false
43
- end
44
-
45
- create_table "feed_items" do |t|
46
- t.integer "feed_id"
47
- t.string "guid"
48
- t.string "title"
49
- t.string "link"
50
- t.text "description"
51
- t.datetime "pubdate"
52
- t.string "author"
53
- end
54
-
55
- add_index "feed_items", ["feed_id"], name: "index_feed_items_on_feed_id"
56
-
57
- create_table "feeds" do |t|
58
- t.string "url"
59
- t.string "link"
60
- t.string "title"
61
- t.text "description"
62
- t.datetime "refreshed_at"
63
- end
64
-
65
- add_index "feeds", ["url"], name: "index_feeds_on_url"
66
-
67
- create_table "images" do |t|
68
- t.string "name"
69
- t.string "byline"
70
- t.text "description"
71
- t.string "filename"
72
- t.string "content_type"
73
- t.integer "folder"
74
- t.integer "user_id"
75
- t.datetime "created_at"
76
- t.text "filters"
77
- t.string "original_size"
78
- t.string "hotspot"
79
- t.integer "binary_id"
80
- t.string "url"
81
- t.boolean "cropped", default: false, null: false
82
- t.string "crop_start"
83
- t.string "crop_size"
84
- t.integer "original_binary_id"
85
- t.datetime "updated_at"
86
- end
87
-
88
- create_table "images_imagesets" do |t|
89
- t.integer "relation_id"
90
- t.integer "imageset_id"
91
- t.integer "image_id"
92
- t.integer "position"
93
- end
94
-
95
- create_table "imagesets" do |t|
96
- t.string "name"
97
- t.text "description"
98
- t.datetime "created_at"
99
- t.integer "user_id"
100
- end
101
-
102
- create_table "mail_subscribers" do |t|
103
- t.string "email"
104
- t.datetime "created_at"
105
- t.string "group", default: "Default"
106
- end
107
-
108
- create_table "mailings" do |t|
109
- t.string "recipients"
110
- t.string "sender"
111
- t.string "subject"
112
- t.text "body"
113
- t.datetime "created_at"
114
- t.boolean "failed", default: false
115
- t.string "content_type"
116
- t.boolean "in_progress", default: false, null: false
117
- end
118
-
119
- create_table "mailouts" do |t|
120
- t.string "subject"
121
- t.string "sender"
122
- t.string "template"
123
- t.text "body"
124
- t.datetime "created_at"
125
- t.datetime "updated_at"
126
- t.integer "image_id"
127
- t.text "groups"
128
- t.string "host"
129
- end
130
-
131
- create_table "page_comments" do |t|
132
- t.integer "page_id"
133
- t.string "remote_ip"
134
- t.string "name"
135
- t.string "email"
136
- t.string "url"
137
- t.text "body"
138
- t.datetime "created_at"
139
- t.datetime "updated_at"
140
- end
141
-
142
- create_table "page_files" do |t|
143
- t.integer "page_id"
144
- t.integer "position"
145
- t.string "name"
146
- t.string "filename"
147
- t.string "content_type"
148
- t.integer "filesize"
149
- t.integer "binary_id"
150
- t.datetime "created_at"
151
- t.datetime "updated_at"
152
- end
153
-
154
- create_table "page_images" do |t|
155
- t.integer "page_id"
156
- t.integer "image_id"
157
- t.integer "position"
158
- t.boolean "primary", default: false, null: false
159
- end
160
-
161
- add_index "page_images", %w(page_id primary), name: "index_page_images_on_page_id_and_primary"
162
- add_index "page_images", ["page_id"], name: "index_page_images_on_page_id"
163
-
164
- create_table "pages" do |t|
165
- t.integer "parent_page_id"
166
- t.integer "position"
167
- t.string "byline"
168
- t.string "template"
169
- t.datetime "created_at"
170
- t.datetime "updated_at"
171
- t.integer "user_id"
172
- t.integer "status", default: 0, null: false
173
- t.string "content_order"
174
- t.boolean "feed_enabled", default: false, null: false
175
- t.datetime "published_at"
176
- t.text "redirect_to"
177
- t.integer "image_id"
178
- t.boolean "comments_allowed", default: true, null: false
179
- t.string "image_link"
180
- t.boolean "news_page", default: false, null: false
181
- t.boolean "autopublish", default: false, null: false
182
- t.boolean "delta", default: false, null: false
183
- t.string "unique_name"
184
- t.integer "comments_count", default: 0, null: false
185
- t.datetime "last_comment_at"
186
- t.boolean "pinned", default: false, null: false
187
- end
188
-
189
- add_index "pages", ["delta"], name: "delta_index"
190
- add_index "pages", ["parent_page_id"], name: "index_pages_on_parent_page_id"
191
- add_index "pages", ["position"], name: "index_pages_on_position"
192
- add_index "pages", %w(status parent_page_id position), name: "for_find_page"
193
- add_index "pages", ["status"], name: "index_pages_on_status"
194
- add_index "pages", ["user_id"], name: "index_pages_on_user_id"
195
-
196
- create_table "pages_categories", id: false do |t|
197
- t.integer "page_id"
198
- t.integer "category_id"
199
- end
200
-
201
- add_index "pages_categories", ["category_id"], name: "index_pages_categories_on_category_id"
202
- add_index "pages_categories", ["page_id"], name: "index_pages_categories_on_page_id"
203
-
204
- create_table "partials" do |t|
205
- t.string "name"
206
- t.datetime "created_at"
207
- t.datetime "updated_at"
208
- end
209
-
210
- create_table "sessions" do |t|
211
- t.string "session_id"
212
- t.text "data"
213
- t.datetime "updated_at"
214
- end
215
-
216
- add_index "sessions", ["session_id"], name: "index_sessions_on_session_id"
217
- add_index "sessions", ["updated_at"], name: "index_sessions_on_updated_at"
218
-
219
- create_table "sms_subscribers" do |t|
220
- t.string "msisdn"
221
- t.string "group", default: "Default"
222
- t.datetime "created_at"
223
- t.datetime "updated_at"
224
- end
225
-
226
- create_table "taggings" do |t|
227
- t.integer "tag_id"
228
- t.integer "taggable_id"
229
- t.string "taggable_type"
230
- end
231
-
232
- add_index "taggings", ["tag_id"], name: "by_tag_id"
233
- add_index "taggings", %w(taggable_type taggable_id), name: "by_taggable"
234
-
235
- create_table "tags" do |t|
236
- t.string "name"
237
- end
238
-
239
- add_index "tags", ["name"], name: "index_tags_on_name"
240
-
241
- create_table "textbits" do |t|
242
- t.integer "textable_id"
243
- t.string "textable_type"
244
- t.string "name"
245
- t.string "language"
246
- t.string "filter"
247
- t.text "body"
248
- t.datetime "created_at"
249
- t.datetime "updated_at"
250
- end
251
-
252
- add_index "textbits", %w(textable_id textable_type name language), name: "by_foreign_key", unique: true
253
- add_index "textbits", %w(textable_id textable_type), name: "by_association"
254
-
255
- create_table "users" do |t|
256
- t.string "username"
257
- t.string "hashed_password"
258
- t.string "realname"
259
- t.string "email"
260
- t.datetime "last_login_at"
261
- t.integer "created_by"
262
- t.datetime "created_at"
263
- t.boolean "is_admin"
264
- t.text "persistent_data"
265
- t.boolean "sms_sender"
266
- t.boolean "is_activated", default: false, null: false
267
- t.boolean "is_deleted", default: false, null: false
268
- t.string "token"
269
- t.date "born_on"
270
- t.string "mobile"
271
- t.string "web_link"
272
- t.integer "image_id"
273
- t.boolean "is_reviewer", default: false, null: false
274
- t.boolean "is_super_admin", default: false, null: false
275
- t.boolean "delta", default: false, null: false
276
- t.string "openid_url"
277
- end
278
-
279
- add_index "users", ["delta"], name: "delta_index"
280
195
  end
281
196
  end