pages_core 3.6.2 → 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 (232) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -1
  3. data/Rakefile +3 -1
  4. data/app/assets/javascripts/pages/admin/components/grid_image.jsx +1 -1
  5. data/app/assets/javascripts/pages/admin/components/image_editor.jsx +5 -5
  6. data/app/assets/javascripts/pages/admin/components/image_grid.jsx +10 -5
  7. data/app/assets/javascripts/pages/admin/components/image_uploader.jsx +10 -5
  8. data/app/assets/javascripts/pages/admin/components/page_tree.jsx +9 -9
  9. data/app/assets/javascripts/pages/admin/components/page_tree_node.jsx +11 -11
  10. data/app/assets/javascripts/pages/admin/components/rich_text_area.jsx +5 -4
  11. data/app/assets/javascripts/pages/admin/components/rich_text_toolbar.jsx +54 -21
  12. data/app/assets/javascripts/pages/admin/components/toast.jsx +0 -3
  13. data/app/assets/javascripts/pages/admin/components/toast_store.jsx +1 -1
  14. data/app/assets/javascripts/pages/admin/features/edit_page.jsx +3 -3
  15. data/app/assets/javascripts/pages/admin/features/rich_text.jsx +1 -1
  16. data/app/assets/javascripts/pages/admin/features/tag_editor.jsx +28 -28
  17. data/app/assets/javascripts/pages/admin/lib/tree.jsx +9 -9
  18. data/app/assets/javascripts/pages/login_form.jsx +8 -8
  19. data/app/assets/stylesheets/pages/admin/components/forms.scss +20 -0
  20. data/app/assets/stylesheets/pages/errors.css +2 -0
  21. data/app/controller_dummies/admin/admin_controller.rb +2 -0
  22. data/app/controller_dummies/application_controller.rb +2 -0
  23. data/app/controller_dummies/attachments_controller.rb +2 -0
  24. data/app/controller_dummies/frontend_controller.rb +2 -0
  25. data/app/controller_dummies/images_controller.rb +2 -0
  26. data/app/controller_dummies/page_files_controller.rb +2 -0
  27. data/app/controller_dummies/pages_controller.rb +2 -0
  28. data/app/controller_dummies/sitemaps_controller.rb +2 -0
  29. data/app/controllers/admin/attachments_controller.rb +4 -2
  30. data/app/controllers/admin/categories_controller.rb +2 -0
  31. data/app/controllers/admin/images_controller.rb +10 -5
  32. data/app/controllers/admin/invites_controller.rb +4 -1
  33. data/app/controllers/admin/pages_controller.rb +7 -19
  34. data/app/controllers/admin/password_resets_controller.rb +9 -5
  35. data/app/controllers/admin/users_controller.rb +10 -4
  36. data/app/controllers/concerns/pages_core/admin/news_page_controller.rb +13 -11
  37. data/app/controllers/concerns/pages_core/admin/persistent_params.rb +75 -0
  38. data/app/controllers/concerns/pages_core/authentication.rb +4 -1
  39. data/app/controllers/concerns/pages_core/error_renderer.rb +3 -0
  40. data/app/controllers/concerns/pages_core/error_reporting.rb +36 -0
  41. data/app/controllers/concerns/pages_core/policies_helper.rb +4 -1
  42. data/app/controllers/concerns/pages_core/preview_pages_controller.rb +3 -0
  43. data/app/controllers/concerns/pages_core/process_titler.rb +2 -0
  44. data/app/controllers/concerns/pages_core/rss_controller.rb +2 -0
  45. data/app/controllers/concerns/pages_core/static_cache_controller.rb +48 -0
  46. data/app/controllers/errors_controller.rb +5 -53
  47. data/app/controllers/pages_core/admin_controller.rb +7 -67
  48. data/app/controllers/pages_core/attachments_controller.rb +10 -6
  49. data/app/controllers/pages_core/base_controller.rb +11 -17
  50. data/app/controllers/pages_core/frontend/page_files_controller.rb +6 -2
  51. data/app/controllers/pages_core/frontend/pages_controller.rb +9 -15
  52. data/app/controllers/pages_core/frontend_controller.rb +3 -0
  53. data/app/controllers/pages_core/images_controller.rb +3 -1
  54. data/app/controllers/pages_core/sitemaps_controller.rb +11 -5
  55. data/app/controllers/sessions_controller.rb +2 -0
  56. data/app/formatters/pages_core/html_formatter.rb +13 -63
  57. data/app/formatters/pages_core/image_embedder.rb +79 -0
  58. data/app/formatters/pages_core/link_renderer.rb +2 -0
  59. data/app/helpers/admin/admin_helper.rb +2 -0
  60. data/app/helpers/admin/menu_helper.rb +6 -4
  61. data/app/helpers/admin/pages_helper.rb +4 -57
  62. data/app/helpers/application_helper.rb +2 -0
  63. data/app/helpers/frontend_helper.rb +2 -0
  64. data/app/helpers/pages_core/admin/admin_helper.rb +22 -106
  65. data/app/helpers/pages_core/admin/content_tabs_helper.rb +28 -0
  66. data/app/helpers/pages_core/admin/date_range_helper.rb +55 -0
  67. data/app/helpers/pages_core/admin/form_builder.rb +8 -0
  68. data/app/helpers/pages_core/admin/image_uploads_helper.rb +48 -0
  69. data/app/helpers/pages_core/admin/labelled_field_helper.rb +12 -9
  70. data/app/helpers/pages_core/admin/page_blocks_helper.rb +66 -0
  71. data/app/helpers/pages_core/admin/page_json_helper.rb +23 -0
  72. data/app/helpers/pages_core/admin/tag_editor_helper.rb +11 -9
  73. data/app/helpers/pages_core/application_helper.rb +3 -0
  74. data/app/helpers/pages_core/attachments_helper.rb +31 -27
  75. data/app/helpers/pages_core/form_builder.rb +17 -13
  76. data/app/helpers/pages_core/frontend_helper.rb +3 -3
  77. data/app/helpers/pages_core/head_tags_helper.rb +7 -2
  78. data/app/helpers/pages_core/images_helper.rb +3 -0
  79. data/app/helpers/pages_core/meta_tags_helper.rb +3 -1
  80. data/app/helpers/pages_core/open_graph_tags_helper.rb +7 -5
  81. data/app/helpers/pages_core/page_path_helper.rb +24 -3
  82. data/app/jobs/pages_core/autopublish_job.rb +3 -1
  83. data/app/jobs/pages_core/sweep_cache_job.rb +4 -2
  84. data/app/mailers/admin_mailer.rb +4 -14
  85. data/app/models/attachment.rb +10 -8
  86. data/app/models/autopublisher.rb +3 -0
  87. data/app/models/category.rb +3 -1
  88. data/app/models/concerns/pages_core/has_roles.rb +2 -0
  89. data/app/models/concerns/pages_core/humanizable_param.rb +9 -6
  90. data/app/models/concerns/pages_core/page_model/attachments.rb +2 -0
  91. data/app/models/concerns/pages_core/page_model/autopublishable.rb +2 -0
  92. data/app/models/concerns/pages_core/page_model/dated_page.rb +11 -11
  93. data/app/models/concerns/pages_core/page_model/images.rb +5 -1
  94. data/app/models/concerns/pages_core/page_model/localizable.rb +2 -0
  95. data/app/models/concerns/pages_core/page_model/pathable.rb +26 -25
  96. data/app/models/concerns/pages_core/page_model/redirectable.rb +3 -1
  97. data/app/models/concerns/pages_core/page_model/sortable.rb +6 -5
  98. data/app/models/concerns/pages_core/page_model/status.rb +2 -0
  99. data/app/models/concerns/pages_core/page_model/templateable.rb +7 -2
  100. data/app/models/concerns/pages_core/page_model/tree.rb +27 -20
  101. data/app/models/concerns/pages_core/sweepable.rb +4 -2
  102. data/app/models/concerns/pages_core/taggable.rb +8 -2
  103. data/app/models/image.rb +14 -1
  104. data/app/models/invite.rb +3 -1
  105. data/app/models/invite_role.rb +5 -3
  106. data/app/models/page.rb +4 -3
  107. data/app/models/page_builder.rb +2 -0
  108. data/app/models/page_category.rb +3 -1
  109. data/app/models/page_exporter.rb +22 -9
  110. data/app/models/page_file.rb +3 -1
  111. data/app/models/page_image.rb +3 -1
  112. data/app/models/page_path.rb +13 -5
  113. data/app/models/password_reset_token.rb +3 -1
  114. data/app/models/role.rb +8 -5
  115. data/app/models/tag.rb +8 -6
  116. data/app/models/tagging.rb +4 -2
  117. data/app/models/user.rb +7 -4
  118. data/app/policies/invite_policy.rb +2 -0
  119. data/app/policies/page_file_policy.rb +2 -0
  120. data/app/policies/page_image_policy.rb +2 -0
  121. data/app/policies/page_policy.rb +2 -0
  122. data/app/policies/policy.rb +2 -0
  123. data/app/policies/user_policy.rb +2 -0
  124. data/app/serializers/admin/attachment_serializer.rb +4 -2
  125. data/app/serializers/admin/image_serializer.rb +4 -2
  126. data/app/serializers/admin/page_file_serializer.rb +2 -0
  127. data/app/serializers/admin/page_image_serializer.rb +2 -0
  128. data/app/serializers/page_export_serializer.rb +2 -0
  129. data/app/serializers/page_file_export_serializer.rb +2 -0
  130. data/app/serializers/page_image_export_serializer.rb +2 -0
  131. data/app/serializers/page_image_serializer.rb +2 -0
  132. data/app/serializers/page_serializer.rb +2 -0
  133. data/app/services/pages_core/create_user_service.rb +5 -2
  134. data/app/services/pages_core/destroy_invite_service.rb +25 -0
  135. data/app/services/pages_core/invite_service.rb +2 -0
  136. data/app/views/admin/images/show.json.jbuilder +2 -0
  137. data/app/views/admin/pages/news.html.erb +1 -1
  138. data/app/views/errors/500.html.erb +2 -20
  139. data/app/views/errors/_generic_help.html.erb +1 -1
  140. data/app/views/feeds/pages.rss.builder +2 -0
  141. data/app/views/sitemaps/show.xml.builder +2 -0
  142. data/config/routes.rb +5 -5
  143. data/db/migrate/20111219033112_create_pages_tables.rb +192 -271
  144. data/lib/pages_core.rb +10 -0
  145. data/lib/pages_core/admin_menu_item.rb +3 -0
  146. data/lib/pages_core/archive_finder.rb +12 -16
  147. data/lib/pages_core/attachment_embedder.rb +4 -6
  148. data/lib/pages_core/cache_sweeper.rb +10 -108
  149. data/lib/pages_core/configuration.rb +2 -0
  150. data/lib/pages_core/configuration/base.rb +5 -0
  151. data/lib/pages_core/configuration/pages.rb +4 -2
  152. data/lib/pages_core/digest_verifier.rb +5 -5
  153. data/lib/pages_core/engine.rb +52 -0
  154. data/lib/pages_core/extensions.rb +2 -0
  155. data/lib/pages_core/extensions/string_extensions.rb +3 -1
  156. data/lib/pages_core/page_path_constraint.rb +2 -0
  157. data/lib/pages_core/pages_plugin.rb +3 -1
  158. data/lib/pages_core/plugin.rb +4 -52
  159. data/lib/pages_core/pub_sub.rb +2 -0
  160. data/lib/pages_core/static_cache.rb +26 -0
  161. data/lib/pages_core/static_cache/null_handler.rb +17 -0
  162. data/lib/pages_core/static_cache/page_cache_handler.rb +56 -0
  163. data/lib/pages_core/static_cache/varnish_handler.rb +55 -0
  164. data/lib/pages_core/templates.rb +5 -3
  165. data/lib/pages_core/templates/block_configuration.rb +3 -0
  166. data/lib/pages_core/templates/configuration.rb +5 -1
  167. data/lib/pages_core/templates/configuration_handler.rb +4 -2
  168. data/lib/pages_core/templates/configuration_proxy.rb +2 -0
  169. data/lib/pages_core/templates/controller_actions.rb +2 -0
  170. data/lib/pages_core/templates/template_configuration.rb +18 -13
  171. data/lib/pages_core/version.rb +3 -1
  172. data/lib/rails/generators/pages_core/frontend/frontend_generator.rb +2 -0
  173. data/lib/rails/generators/pages_core/install/install_generator.rb +3 -7
  174. data/lib/rails/generators/pages_core/install/templates/active_job_initializer.rb +2 -0
  175. data/lib/rails/generators/pages_core/install/templates/application_controller.rb +2 -0
  176. data/lib/rails/generators/pages_core/install/templates/application_helper.rb +2 -0
  177. data/lib/rails/generators/pages_core/install/templates/delayed_job +1 -0
  178. data/lib/rails/generators/pages_core/install/templates/delayed_job_initializer.rb +17 -0
  179. data/lib/rails/generators/pages_core/install/templates/frontend_controller.rb +2 -0
  180. data/lib/rails/generators/pages_core/install/templates/frontend_helper.rb +2 -0
  181. data/lib/rails/generators/pages_core/install/templates/gitignore.erb +12 -1
  182. data/lib/rails/generators/pages_core/install/templates/page_templates_initializer.rb +2 -0
  183. data/lib/rails/generators/pages_core/install/templates/pages_controller.rb +2 -0
  184. data/lib/rails/generators/pages_core/install/templates/pages_initializer.rb +2 -6
  185. data/lib/rails/generators/pages_core/rspec/rspec_generator.rb +18 -14
  186. data/lib/rails/generators/pages_core/rspec/templates/factories.rb +3 -8
  187. data/lib/rails/generators/pages_core/rspec/templates/mailer_macros.rb +2 -0
  188. data/lib/rails/generators/pages_core/rspec/templates/page_templates_spec.rb +26 -0
  189. data/lib/rails/generators/pages_core/rspec/templates/rails_helper.rb +91 -0
  190. data/lib/rails/generators/pages_core/rspec/templates/spec_helper.rb +89 -36
  191. data/lib/tasks/pages.rake +3 -2
  192. data/lib/tasks/pages/cache.rake +8 -5
  193. data/lib/tasks/pages/export.rake +3 -1
  194. data/lib/tasks/pages/page_paths.rake +2 -0
  195. data/template.rb +2 -0
  196. metadata +127 -77
  197. data/app/controllers/concerns/pages_core/domain_based_cache.rb +0 -26
  198. data/app/views/admin_mailer/error_report.html.erb +0 -70
  199. data/app/views/errors/500_critical.html.erb +0 -7
  200. data/app/views/errors/report.html.erb +0 -4
  201. data/config/removed_migrations.yml +0 -60
  202. data/db/migrate/20120627033112_rename_textbits.rb +0 -17
  203. data/db/migrate/20121010055412_drop_removed_tables.rb +0 -81
  204. data/db/migrate/20130130053932_add_queue_to_delayed_jobs.rb +0 -9
  205. data/db/migrate/20130303053932_remove_filter_from_localizations.rb +0 -9
  206. data/db/migrate/20130303160632_remove_imagesets.rb +0 -22
  207. data/db/migrate/20130303161732_remove_sms_subscribers.rb +0 -14
  208. data/db/migrate/20130823133208_update_page_redirect_to.rb +0 -10
  209. data/db/migrate/20140203183900_create_roles.rb +0 -66
  210. data/db/migrate/20140414150500_change_locale_names.rb +0 -11
  211. data/db/migrate/20140604142100_remove_openid_url.rb +0 -9
  212. data/db/migrate/20140920231700_convert_images_to_dis.rb +0 -81
  213. data/db/migrate/20140922124600_convert_page_files_to_dis.rb +0 -50
  214. data/db/migrate/20141004003100_create_password_reset_tokens.rb +0 -10
  215. data/db/migrate/20141006181300_remove_user_cruft.rb +0 -11
  216. data/db/migrate/20141007173000_create_invites.rb +0 -16
  217. data/db/migrate/20150204130800_update_delayed_job_table.rb +0 -9
  218. data/db/migrate/20150401131300_localize_images.rb +0 -38
  219. data/db/migrate/20150520174300_add_meta_image_to_page.rb +0 -5
  220. data/db/migrate/20150904164200_add_pinned_to_tags.rb +0 -5
  221. data/db/migrate/20151002174800_create_page_paths.rb +0 -10
  222. data/db/migrate/20151021103400_drop_binaries_table.rb +0 -7
  223. data/db/migrate/20151204151000_remove_page_content_order.rb +0 -5
  224. data/db/migrate/20160330220900_rename_pages_categories.rb +0 -6
  225. data/db/migrate/20160405202700_change_localization_limit.rb +0 -9
  226. data/db/migrate/20170716040500_remove_page_comments.rb +0 -23
  227. data/db/migrate/20170716213400_remove_sessions.rb +0 -15
  228. data/db/migrate/20180207134000_add_dates_to_pages.rb +0 -11
  229. data/db/migrate/20190211154800_create_attachments.rb +0 -73
  230. data/db/migrate/20190318115000_fix_page_file_ids.rb +0 -34
  231. data/lib/rails/generators/pages_core/install/templates/cache_sweeper_initializer.rb +0 -6
  232. data/lib/tasks/pages/update.rake +0 -17
@@ -1,50 +0,0 @@
1
- class ConvertPageFilesToDis < ActiveRecord::Migration[4.2]
2
- class PageFile < ActiveRecord::Base; end
3
- class Binary < ActiveRecord::Base; end
4
-
5
- def change
6
- add_column :page_files, :content_hash, :string, null: false
7
- change_column :page_files, :content_type, :string, null: false
8
- rename_column :page_files, :filesize, :content_length
9
- change_column :page_files, :content_length, :integer, null: false
10
- change_column :page_files, :filename, :string, null: false
11
-
12
- PageFile.reset_column_information
13
- reversible do |dir|
14
- dir.up do
15
- PageFile.all.each do |page_file|
16
- binary = Binary.find(page_file.binary_id)
17
- hash = binary.sha1_hash
18
-
19
- if binary_exist?(hash)
20
- f = binary_file(hash)
21
- page_file.content_hash = Dis::Storage.store("page_files", f)
22
- f.close
23
- else
24
- page_file.content_hash = hash
25
- end
26
-
27
- page_file.save
28
- end
29
- end
30
- end
31
-
32
- remove_column :page_files, :binary_id, :integer
33
- end
34
-
35
- private
36
-
37
- def binary_file(hash)
38
- File.open(binary_path(hash), "rb")
39
- end
40
-
41
- def binary_exist?(hash)
42
- File.exist?(binary_path(hash))
43
- end
44
-
45
- def binary_path(hash)
46
- folder = hash[0...2]
47
- filename = hash[2..hash.length]
48
- Rails.root.join("db", "binary-objects", Rails.env, folder, filename)
49
- end
50
- end
@@ -1,10 +0,0 @@
1
- class CreatePasswordResetTokens < ActiveRecord::Migration[4.2]
2
- def change
3
- create_table :password_reset_tokens do |t|
4
- t.belongs_to :user
5
- t.string :token
6
- t.datetime :expires_at
7
- t.timestamps
8
- end
9
- end
10
- end
@@ -1,11 +0,0 @@
1
- class RemoveUserCruft < ActiveRecord::Migration[4.2]
2
- def change
3
- remove_column :users, :token, :string
4
- remove_column :users, :is_deleted, :boolean, default: false, null: false
5
- remove_column :users, :born_on, :date
6
- remove_column :users, :mobile, :string
7
- remove_column :users, :web_link, :string
8
- rename_column :users, :is_activated, :activated
9
- rename_column :users, :realname, :name
10
- end
11
- end
@@ -1,16 +0,0 @@
1
- class CreateInvites < ActiveRecord::Migration[4.2]
2
- def change
3
- create_table :invites do |t|
4
- t.belongs_to :user
5
- t.string :email, :token
6
- t.datetime :sent_at
7
- t.timestamps
8
- end
9
-
10
- create_table :invite_roles do |t|
11
- t.belongs_to :invite
12
- t.string :name
13
- t.timestamps
14
- end
15
- end
16
- end
@@ -1,9 +0,0 @@
1
- class UpdateDelayedJobTable < ActiveRecord::Migration[4.2]
2
- def up
3
- change_column :delayed_jobs, :last_error, :text
4
- end
5
-
6
- def down
7
- change_column :delayed_jobs, :last_error, :string
8
- end
9
- end
@@ -1,38 +0,0 @@
1
- class LocalizeImages < ActiveRecord::Migration[4.2]
2
- def locale
3
- I18n.default_locale
4
- end
5
-
6
- def up
7
- Image.all.in_locale(locale).each do |image|
8
- next if image.attributes["byline"].blank?
9
- Localization.create(
10
- localizable: image,
11
- name: "caption",
12
- locale: locale,
13
- value: image.attributes["byline"]
14
- )
15
- end
16
- remove_column :images, :name, :string
17
- remove_column :images, :byline, :string
18
- remove_column :images, :description, :string
19
- end
20
-
21
- def down
22
- add_column :images, :name, :string
23
- add_column :images, :byline, :string
24
- add_column :images, :description, :string
25
-
26
- Localization.where(
27
- localizable_type: "Image",
28
- name: "caption",
29
- locale: locale
30
- ).each do |localization|
31
- localization.localizable.update_column(
32
- "byline",
33
- localization.value
34
- )
35
- localization.destroy
36
- end
37
- end
38
- end
@@ -1,5 +0,0 @@
1
- class AddMetaImageToPage < ActiveRecord::Migration[4.2]
2
- def change
3
- add_column :pages, :meta_image_id, :integer
4
- end
5
- end
@@ -1,5 +0,0 @@
1
- class AddPinnedToTags < ActiveRecord::Migration[4.2]
2
- def change
3
- add_column :tags, :pinned, :boolean, default: false, null: false
4
- end
5
- end
@@ -1,10 +0,0 @@
1
- class CreatePagePaths < ActiveRecord::Migration[4.2]
2
- def change
3
- create_table :page_paths do |t|
4
- t.belongs_to :page
5
- t.string :locale, :path
6
- t.timestamps null: false
7
- end
8
- add_index :page_paths, %i[locale path], unique: true
9
- end
10
- end
@@ -1,7 +0,0 @@
1
- class DropBinariesTable < ActiveRecord::Migration[4.2]
2
- def change
3
- drop_table :binaries do |t|
4
- t.string "sha1_hash"
5
- end
6
- end
7
- end
@@ -1,5 +0,0 @@
1
- class RemovePageContentOrder < ActiveRecord::Migration[4.2]
2
- def change
3
- remove_column :pages, :content_order, :string
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- class RenamePagesCategories < ActiveRecord::Migration[4.2]
2
- def change
3
- rename_table :pages_categories, :page_categories
4
- add_column :page_categories, :id, :primary_key, first: true
5
- end
6
- end
@@ -1,9 +0,0 @@
1
- class ChangeLocalizationLimit < ActiveRecord::Migration[4.2]
2
- def up
3
- change_column :localizations, :value, :text, limit: 16_777_215
4
- end
5
-
6
- def down
7
- change_column :localizations, :value, :text, limit: 65_535
8
- end
9
- end
@@ -1,23 +0,0 @@
1
- class RemovePageComments < ActiveRecord::Migration[5.0]
2
- def up
3
- drop_table :page_comments
4
- remove_column :pages, :comments_allowed
5
- remove_column :pages, :comments_count
6
- end
7
-
8
- def down
9
- add_column :pages, :comments_allowed, :boolean, default: true, null: false
10
- add_column :pages, :comments_count, :integer,
11
- limit: 4, default: 0, null: false
12
- create_table :page_comments do |t|
13
- t.integer :page_id
14
- t.string :remote_ip
15
- t.string :name
16
- t.string :email
17
- t.string :url
18
- t.text :body
19
- t.datetime :created_at
20
- t.datetime :updated_at
21
- end
22
- end
23
- end
@@ -1,15 +0,0 @@
1
- class RemoveSessions < ActiveRecord::Migration[5.0]
2
- def up
3
- drop_table :sessions
4
- end
5
-
6
- def down
7
- create_table :sessions do |t|
8
- t.string :session_id
9
- t.text :data
10
- t.datetime :updated_at
11
- t.index :session_id
12
- t.index :updated_at
13
- end
14
- end
15
- end
@@ -1,11 +0,0 @@
1
- class AddDatesToPages < ActiveRecord::Migration[5.0]
2
- def change
3
- change_table :pages do |t|
4
- t.datetime :starts_at
5
- t.datetime :ends_at
6
- t.boolean :all_day, null: false, default: false
7
- t.index :starts_at
8
- t.index :ends_at
9
- end
10
- end
11
- end
@@ -1,73 +0,0 @@
1
- class CreateAttachments < ActiveRecord::Migration[5.2]
2
- def up
3
- rename_table :page_files, :attachments
4
- add_column :attachments, :user_id, :integer
5
-
6
- create_table :page_files do |t|
7
- t.references :page
8
- t.references :attachment
9
- t.integer :position
10
- t.timestamps
11
- end
12
-
13
- Attachment.reset_column_information
14
- PageFile.reset_column_information
15
-
16
- locales = [I18n.default_locale,
17
- PagesCore.config.locales&.keys].flatten.compact.map(&:to_sym).uniq
18
-
19
- Attachment.all.each do |a|
20
- begin
21
- Dis::Storage.change_type("page_files", "attachments", a.content_hash)
22
- rescue
23
- puts "Missing attachment: #{a.content_hash}"
24
- end
25
- locales.each do |l|
26
- Localization.create(localizable: a,
27
- locale: l,
28
- name: "name",
29
- value: a.attributes["name"])
30
- end
31
- PageFile.create(attachment_id: a.id,
32
- page_id: a.page_id,
33
- position: a.position,
34
- created_at: a.created_at,
35
- updated_at: a.updated_at)
36
- end
37
-
38
- Localization.where(localizable_type: "PageFile")
39
- .update_all(localizable_type: "Attachment")
40
-
41
- remove_column :attachments, :page_id
42
- remove_column :attachments, :position
43
- remove_column :attachments, :name
44
- end
45
-
46
- def down
47
- add_column :attachments, :name, :string
48
- add_column :attachments, :position, :integer
49
- add_column :attachments, :page_id, :integer
50
-
51
- Attachment.reset_column_information
52
- Attachment.all.in_locale(I18n.default_locale).each do |a|
53
- begin
54
- Dis::Storage.change_type("attachments", "page_files", a.content_hash)
55
- rescue
56
- puts "Missing attachment: #{a.content_hash}"
57
- end
58
-
59
- pf = PageFile.find_by(attachment_id: a.id)
60
- Attachment.where(id: a.id).update_all(name: a.name,
61
- page_id: pf.page_id,
62
- position: pf.position)
63
- end
64
-
65
- Localization.where(localizable_type: "Attachment")
66
- .update_all(localizable_type: "PageFile")
67
- Localization.where(localizable_type: "PageFile", name: "name").destroy_all
68
-
69
- drop_table :page_files
70
- remove_column :attachments, :user_id
71
- rename_table :attachments, :page_files
72
- end
73
- end
@@ -1,34 +0,0 @@
1
- class FixPageFileIds < ActiveRecord::Migration[5.0]
2
- def change
3
- attachment_id = max_id(:attachment_id, :page_files)
4
- pf_id = max_id(:id, :page_files)
5
-
6
- if attachment_id && pf_id
7
- max_id = [attachment_id, pf_id].max
8
-
9
- execute("UPDATE page_files SET id = id + #{max_id + 1}")
10
- execute("UPDATE page_files SET id = attachment_id")
11
- if mysql2?
12
- execute(
13
- "ALTER SEQUENCE page_files_id_seq RESTART WITH #{attachment_id + 1}"
14
- )
15
- end
16
-
17
- PageFile.all.each { |pf| pf.touch }
18
- end
19
- end
20
-
21
- def max_id(attr, table)
22
- query = "SELECT MAX(#{attr}) AS max_id FROM #{table}"
23
- if mysql2?
24
- execute(query).first[0]
25
- else
26
- execute(query)[0]["max_id"]
27
- end
28
- end
29
-
30
- def mysql2?
31
- Object.const_defined?("ActiveRecord::ConnectionAdapters::Mysql2Adapter") &&
32
- connection.instance_of?(ActiveRecord::ConnectionAdapters::Mysql2Adapter)
33
- end
34
- end
@@ -1,6 +0,0 @@
1
- # Be sure to restart your web server when you modify this file.
2
-
3
- PagesCore::CacheSweeper.config do |sweeper|
4
- # Path patterns
5
- # sweeper.patterns += [/^\/archive(.*)$/, /^\/tests(.*)$/]
6
- end
@@ -1,17 +0,0 @@
1
- require "find"
2
- require "open-uri"
3
-
4
- namespace :pages do
5
- namespace :update do
6
- desc "Update migrations"
7
- task migrations: :environment do
8
- removed_migrations = PagesCore::Plugin.remove_old_migrations!
9
- if removed_migrations.any?
10
- puts "\n#{removed_migrations.length} old migrations removed"
11
- end
12
- end
13
- end
14
-
15
- desc "Automated updates for newest version"
16
- task update: ["update:migrations"]
17
- end