comfortable_media_surfer 3.1.7 → 3.2.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/claude-code-review.yml +2 -0
  3. data/.github/workflows/claude.yml +99 -1
  4. data/.github/workflows/coveralls.yml +4 -3
  5. data/.github/workflows/rubyonrails.yml +34 -5
  6. data/CHANGELOG.md +12 -1
  7. data/CONTRIBUTING.md +5 -1
  8. data/Gemfile +6 -5
  9. data/README.md +4 -4
  10. data/Rakefile +201 -0
  11. data/app/assets/javascripts/comfy/admin/cms/application.js +3 -0
  12. data/app/assets/javascripts/comfy/admin/cms/base.js +1 -0
  13. data/app/assets/javascripts/comfy/admin/cms/file_link.js +34 -11
  14. data/app/assets/javascripts/comfy/admin/cms/file_upload.js +37 -28
  15. data/app/assets/javascripts/comfy/admin/cms/files_modal.js +76 -26
  16. data/app/controllers/comfy/admin/cms/categories_controller.rb +1 -1
  17. data/app/controllers/comfy/admin/cms/files_controller.rb +1 -1
  18. data/app/controllers/comfy/admin/cms/layouts_controller.rb +1 -1
  19. data/app/controllers/comfy/admin/cms/pages_controller.rb +33 -4
  20. data/app/controllers/comfy/admin/cms/revisions/base_controller.rb +2 -2
  21. data/app/controllers/comfy/admin/cms/revisions/page_controller.rb +5 -5
  22. data/app/controllers/comfy/admin/cms/revisions/translation_controller.rb +5 -5
  23. data/app/controllers/comfy/admin/cms/sites_controller.rb +3 -3
  24. data/app/controllers/comfy/admin/cms/snippets_controller.rb +1 -1
  25. data/app/controllers/comfy/admin/cms/translations_controller.rb +15 -3
  26. data/app/controllers/comfy/cms/base_controller.rb +16 -7
  27. data/app/controllers/comfy/cms/content_controller.rb +4 -4
  28. data/app/controllers/concerns/comfy/reorder_action.rb +3 -4
  29. data/app/models/comfy/cms/categorization.rb +9 -0
  30. data/app/models/comfy/cms/category.rb +1 -1
  31. data/app/models/comfy/cms/fragment.rb +7 -0
  32. data/app/models/comfy/cms/layout.rb +7 -2
  33. data/app/models/comfy/cms/page.rb +13 -4
  34. data/app/models/comfy/cms/site.rb +3 -3
  35. data/app/models/comfy/cms/translation.rb +5 -0
  36. data/app/models/concerns/comfy/cms/with_categories.rb +1 -1
  37. data/app/models/concerns/comfy/cms/with_fragments.rb +1 -1
  38. data/app/views/comfy/admin/cms/pages/edit.html.haml +5 -1
  39. data/config/database.yml +1 -1
  40. data/config/initializers/json.rb +2 -0
  41. data/config/locales/ar.yml +6 -0
  42. data/config/locales/ca.yml +6 -0
  43. data/config/locales/cs.yml +6 -0
  44. data/config/locales/da.yml +6 -0
  45. data/config/locales/de.yml +6 -0
  46. data/config/locales/en.yml +6 -0
  47. data/config/locales/es.yml +6 -0
  48. data/config/locales/fi.yml +6 -0
  49. data/config/locales/fr.yml +6 -0
  50. data/config/locales/gr.yml +6 -0
  51. data/config/locales/hr.yml +6 -0
  52. data/config/locales/it.yml +6 -0
  53. data/config/locales/ja.yml +6 -0
  54. data/config/locales/nb.yml +6 -0
  55. data/config/locales/nl.yml +6 -0
  56. data/config/locales/pl.yml +6 -0
  57. data/config/locales/pt-BR.yml +6 -0
  58. data/config/locales/ru.yml +6 -0
  59. data/config/locales/sk.yml +6 -0
  60. data/config/locales/sv.yml +6 -0
  61. data/config/locales/tr.yml +6 -0
  62. data/config/locales/uk.yml +6 -0
  63. data/config/locales/zh-CN.yml +6 -0
  64. data/config/locales/zh-TW.yml +6 -0
  65. data/config/storage.yml +1 -1
  66. data/gemfiles/7.2.gemfile +1 -0
  67. data/gemfiles/8.0.gemfile +1 -0
  68. data/gemfiles/8.1.gemfile +1 -0
  69. data/lib/comfortable_media_surfer/access_control/admin_authentication.rb +2 -2
  70. data/lib/comfortable_media_surfer/extensions/has_revisions.rb +2 -2
  71. data/lib/comfortable_media_surfer/routing.rb +2 -0
  72. data/lib/comfortable_media_surfer/seeds/page/importer.rb +40 -12
  73. data/lib/comfortable_media_surfer/seeds.rb +1 -3
  74. data/lib/comfortable_media_surfer/version.rb +1 -1
  75. metadata +2 -3
  76. data/gemfiles/7.1.gemfile +0 -35
@@ -86,8 +86,8 @@ protected
86
86
 
87
87
  def clean_path
88
88
  self.path ||= ''
89
- self.path.squeeze!('/')
90
- self.path.gsub!(%r{/$}, '')
91
- self.path = nil if self.path.blank?
89
+ path.squeeze!('/')
90
+ path.gsub!(%r{/$}, '')
91
+ self.path = nil if path.blank?
92
92
  end
93
93
  end
@@ -27,9 +27,14 @@ class Comfy::Cms::Translation < ActiveRecord::Base
27
27
  uniqueness: { scope: :page_id }
28
28
 
29
29
  validate :validate_locale
30
+ validate :layout_belongs_to_site
30
31
 
31
32
  private
32
33
 
34
+ def layout_belongs_to_site
35
+ errors.add(:layout_id, :invalid) if page && layout && page.site_id != layout.site_id
36
+ end
37
+
33
38
  def validate_locale
34
39
  return unless page
35
40
 
@@ -32,7 +32,7 @@ module Comfy::Cms::WithCategories
32
32
  def sync_categories
33
33
  return unless category_ids.is_a?(Array)
34
34
 
35
- scope = Comfy::Cms::Category.of_type(self.class.to_s)
35
+ scope = Comfy::Cms::Category.where(site_id: site_id).of_type(self.class.to_s)
36
36
  existing_ids = scope.pluck(:id)
37
37
 
38
38
  ids_to_add = category_ids.map(&:to_i)
@@ -77,7 +77,7 @@ module Comfy::Cms::WithFragments
77
77
  # duplicate tags on the layout. That's wierd (but still works).
78
78
  def fragment_nodes
79
79
  nodes
80
- .select { |n| n.is_a?(ComfortableMediaSurfer::Content::Tags::Fragment) }
80
+ .grep(ComfortableMediaSurfer::Content::Tags::Fragment)
81
81
  .uniq(&:identifier)
82
82
  end
83
83
 
@@ -3,8 +3,12 @@
3
3
  = render "comfy/admin/cms/revisions/sidebar", record: @page, link: link
4
4
  = render "comfy/admin/cms/translations/sidebar"
5
5
 
6
- .page-header
6
+ .page-header.d-flex.justify-content-between.align-items-center
7
7
  %h2= t('.title')
8
+ - if @page.children.exists?
9
+ .btn-group.btn-group-sm
10
+ = link_to t('.publish_children', default: 'Publish children'), publish_children_comfy_admin_cms_site_page_path(@site, @page), method: :patch, data: {confirm: t('.publish_children_confirmation', default: 'Publish all child pages?')}, class: 'btn btn-success'
11
+ = link_to t('.unpublish_children', default: 'Unpublish children'), unpublish_children_comfy_admin_cms_site_page_path(@site, @page), method: :patch, data: {confirm: t('.unpublish_children_confirmation', default: 'Unpublish all child pages?')}, class: 'btn btn-outline-secondary'
8
12
 
9
13
  = comfy_form_with model: @page, scope: :page, url: {action: :update}, html: {multipart: true} do |form|
10
14
  = render form
data/config/database.yml CHANGED
@@ -6,7 +6,7 @@ development:
6
6
 
7
7
  test:
8
8
  adapter: sqlite3
9
- database: db/test.sqlite3
9
+ database: db/test<%= ENV['TEST_ENV_NUMBER'] %>.sqlite3
10
10
  pool: 5
11
11
  timeout: 10000
12
12
 
@@ -4,6 +4,8 @@ module JSON
4
4
  module_function
5
5
 
6
6
  def parse(source, opts = {})
7
+ opts = opts.dup
8
+ opts.delete(:escape)
7
9
  Parser.new(source, **opts).parse
8
10
  end
9
11
  end
@@ -120,6 +120,8 @@ ar:
120
120
  creation_failure: فشل في إنشاء الصفحة
121
121
  updated: تحديث الصفحة
122
122
  update_failure: فشل في تحديث الصفحة
123
+ children_published: تم نشر الصفحات الفرعية
124
+ children_unpublished: تم إلغاء نشر الصفحات الفرعية
123
125
  deleted: تم حذف الصفحة
124
126
  not_found: الصفحة غير موجودة
125
127
  layout_not_found: لم يتم العثور على تخطيطات يرجى إنشاء واحد.
@@ -137,6 +139,10 @@ ar:
137
139
  title: صفحة جديدة
138
140
  edit:
139
141
  title: تعديل
142
+ publish_children: نشر الصفحات الفرعية
143
+ publish_children_confirmation: هل تريد نشر جميع الصفحات الفرعية؟
144
+ unpublish_children: إلغاء نشر الصفحات الفرعية
145
+ unpublish_children_confirmation: هل تريد إلغاء نشر جميع الصفحات الفرعية؟
140
146
  form:
141
147
  select_target_page: لا إعادة توجيه
142
148
  preview: معاينة
@@ -120,6 +120,8 @@ ca:
120
120
  creation_failure: La pàgina no s'ha pogut crear
121
121
  updated: S'ha actualitzat la pàgina
122
122
  update_failure: La pàgina no s'ha pogut actualitzar
123
+ children_published: S'han publicat les pàgines filles
124
+ children_unpublished: S'ha anul·lat la publicació de les pàgines filles
123
125
  deleted: S'ha esborrat la pàgina
124
126
  not_found: La pàgina no s'ha pogut esborrar
125
127
  layout_not_found: No s'ha trobat cap disseny. Creeu-ne un primer.
@@ -137,6 +139,10 @@ ca:
137
139
  title: Nova pàgina
138
140
  edit:
139
141
  title: Editant pàgina
142
+ publish_children: Publica les pàgines filles
143
+ publish_children_confirmation: Voleu publicar totes les pàgines filles?
144
+ unpublish_children: Anul·la la publicació de les pàgines filles
145
+ unpublish_children_confirmation: Voleu anul·lar la publicació de totes les pàgines filles?
140
146
  form:
141
147
  select_target_page: No redirigir
142
148
  preview: Vista prèvia
@@ -120,6 +120,8 @@ cs:
120
120
  creation_failure: Nepodařilo se vytvořit stránku
121
121
  updated: Stránka upravena
122
122
  update_failure: Nepodařilo se upravit stránku
123
+ children_published: Podstránky byly zveřejněny
124
+ children_unpublished: Zveřejnění podstránek bylo zrušeno
123
125
  deleted: Stránka odstraněna
124
126
  not_found: Stránka nenalezena
125
127
  layout_not_found: "Nebyla nalezena žádná rozložení, vytvořte je prosím."
@@ -137,6 +139,10 @@ cs:
137
139
  title: Nová stránka
138
140
  edit:
139
141
  title: Úprava stránky
142
+ publish_children: Zveřejnit podstránky
143
+ publish_children_confirmation: Zveřejnit všechny podstránky?
144
+ unpublish_children: Zrušit zveřejnění podstránek
145
+ unpublish_children_confirmation: Zrušit zveřejnění všech podstránek?
140
146
  form:
141
147
  select_target_page: Bez přesměrování
142
148
  preview: Náhled
@@ -120,6 +120,8 @@ da:
120
120
  creation_failure: Oprettelse af side mislykkedes
121
121
  updated: Side opdateret
122
122
  update_failure: Opdatering af side mislykkedes
123
+ children_published: Undersider udgivet
124
+ children_unpublished: Undersider trukket tilbage
123
125
  deleted: Side slettet
124
126
  not_found: Side findes ikke
125
127
  layout_not_found: Ingen layouts findes. Opret venligst et layout.
@@ -137,6 +139,10 @@ da:
137
139
  title: Ny side
138
140
  edit:
139
141
  title: Rediger side
142
+ publish_children: Udgiv undersider
143
+ publish_children_confirmation: Udgiv alle undersider?
144
+ unpublish_children: Træk undersider tilbage
145
+ unpublish_children_confirmation: Træk alle undersider tilbage?
140
146
  form:
141
147
  select_target_page: Ingen viderestilling
142
148
  preview: Preview
@@ -120,6 +120,8 @@ de:
120
120
  creation_failure: Fehler beim Erstellen der Seite!
121
121
  updated: Seite aktualisiert
122
122
  update_failure: Fehler beim Aktualisieren der Seite!
123
+ children_published: Untergeordnete Seiten veröffentlicht
124
+ children_unpublished: Veröffentlichung untergeordneter Seiten aufgehoben
123
125
  deleted: Seite gelöscht
124
126
  not_found: Seite nicht gefunden
125
127
  layout_not_found: Bisher wurde keine Vorlage angelegt!
@@ -137,6 +139,10 @@ de:
137
139
  title: Seite erstellen
138
140
  edit:
139
141
  title: Seite bearbeiten
142
+ publish_children: Untergeordnete Seiten veröffentlichen
143
+ publish_children_confirmation: Alle untergeordneten Seiten veröffentlichen?
144
+ unpublish_children: Veröffentlichung untergeordneter Seiten aufheben
145
+ unpublish_children_confirmation: Veröffentlichung aller untergeordneten Seiten aufheben?
140
146
  form:
141
147
  select_target_page: Keine Weiterleitung
142
148
  preview: Vorschau
@@ -120,6 +120,8 @@ en:
120
120
  creation_failure: Failed to create page
121
121
  updated: Page, siblings, and parent updated
122
122
  update_failure: Failed to update page
123
+ children_published: Child pages published
124
+ children_unpublished: Child pages unpublished
123
125
  deleted: Page deleted, siblings, and parent updated
124
126
  not_found: Page not found
125
127
  layout_not_found: No Layouts found. Please create one.
@@ -137,6 +139,10 @@ en:
137
139
  title: New Page
138
140
  edit:
139
141
  title: Editing Page
142
+ publish_children: Publish children
143
+ publish_children_confirmation: Publish all child pages?
144
+ unpublish_children: Unpublish children
145
+ unpublish_children_confirmation: Unpublish all child pages?
140
146
  form:
141
147
  select_target_page: No Redirect
142
148
  preview: Preview
@@ -120,6 +120,8 @@ es:
120
120
  creation_failure: La página no ha podido ser creada
121
121
  updated: Página actualizada
122
122
  update_failure: La página no ha podido ser actualizada
123
+ children_published: Páginas hijas publicadas
124
+ children_unpublished: Páginas hijas despublicadas
123
125
  deleted: Página eliminada
124
126
  not_found: Página no encontrada
125
127
  layout_not_found: No se ha encontrado una plantilla. Cree una primero.
@@ -137,6 +139,10 @@ es:
137
139
  title: Nueva Página
138
140
  edit:
139
141
  title: Editando Página
142
+ publish_children: Publicar páginas hijas
143
+ publish_children_confirmation: ¿Publicar todas las páginas hijas?
144
+ unpublish_children: Despublicar páginas hijas
145
+ unpublish_children_confirmation: ¿Despublicar todas las páginas hijas?
140
146
  form:
141
147
  select_target_page: No Redirigir
142
148
  preview: Vista Previa
@@ -120,6 +120,8 @@ fi:
120
120
  creation_failure: Sivua ei voitu luoda
121
121
  updated: Sivu on päivitetty
122
122
  update_failure: Sivua ei voitu päivittää
123
+ children_published: Alisivut julkaistu
124
+ children_unpublished: Alisivut poistettu julkaisusta
123
125
  deleted: Sivu on poistettu
124
126
  not_found: Sivua ei löydy
125
127
  layout_not_found: Yhtään ulkoasua ei löydy. Ole hyvä ja luo sellainen.
@@ -137,6 +139,10 @@ fi:
137
139
  title: Uusi sivu
138
140
  edit:
139
141
  title: Sivun muokkaus
142
+ publish_children: Julkaise alisivut
143
+ publish_children_confirmation: Julkaistaanko kaikki alisivut?
144
+ unpublish_children: Poista alisivut julkaisusta
145
+ unpublish_children_confirmation: Poistetaanko kaikki alisivut julkaisusta?
140
146
  form:
141
147
  select_target_page: Ei uudelleenohjausta
142
148
  preview: Esikatselu
@@ -120,6 +120,8 @@ fr:
120
120
  creation_failure: Échec de la création de la page
121
121
  updated: Page modifiée
122
122
  update_failure: Échec de la modification de la page
123
+ children_published: Pages enfants publiées
124
+ children_unpublished: Pages enfants dépubliées
123
125
  deleted: Page supprimée
124
126
  not_found: Page introuvable
125
127
  layout_not_found: Aucune mise en page disponible. Créez-en une nouvelle.
@@ -137,6 +139,10 @@ fr:
137
139
  title: Nouvelle page
138
140
  edit:
139
141
  title: Modification de la page
142
+ publish_children: Publier les pages enfants
143
+ publish_children_confirmation: Publier toutes les pages enfants ?
144
+ unpublish_children: Dépublier les pages enfants
145
+ unpublish_children_confirmation: Dépublier toutes les pages enfants ?
140
146
  form:
141
147
  select_target_page: Pas de redirection
142
148
  preview: Prévisualiser
@@ -120,6 +120,8 @@ gr:
120
120
  creation_failure: Αποτυχία δημιουργίας σελίδας
121
121
  updated: Η σελίδα ενημερώθηκε
122
122
  update_failure: Αποτυχία ενημέρωσης σελίδας
123
+ children_published: Οι υποσελίδες δημοσιεύτηκαν
124
+ children_unpublished: Οι υποσελίδες αποσύρθηκαν από τη δημοσίευση
123
125
  deleted: Η σελίδα διαγράφηκε
124
126
  not_found: Η σελίδα δεν βρέθηκε
125
127
  layout_not_found: Η διάταξη δεν βρέθηκε. Προσπαθήστε να δημιουργήσετε μία.
@@ -137,6 +139,10 @@ gr:
137
139
  title: Νέα Σελίδα
138
140
  edit:
139
141
  title: Επεξεργασία Σελίδας
142
+ publish_children: Δημοσίευση υποσελίδων
143
+ publish_children_confirmation: Να δημοσιευτούν όλες οι υποσελίδες;
144
+ unpublish_children: Απόσυρση υποσελίδων από τη δημοσίευση
145
+ unpublish_children_confirmation: Να αποσυρθούν όλες οι υποσελίδες από τη δημοσίευση;
140
146
  form:
141
147
  select_target_page: Καμία Ανακατεύθυνση
142
148
  preview: Προεπισκόπηση
@@ -120,6 +120,8 @@ hr:
120
120
  creation_failure: Kreiranje stranice nije uspjelo
121
121
  updated: Stranica ažurirana
122
122
  update_failure: Ažuriranje nije uspjelo
123
+ children_published: Podređene stranice objavljene
124
+ children_unpublished: Podređene stranice povučene iz objave
123
125
  deleted: Stranica izbrisana
124
126
  not_found: Stranica nije pronađena
125
127
  layout_not_found: Nema aktivnih predložaka. Molimo vas prvo kreirajte predložak.
@@ -137,6 +139,10 @@ hr:
137
139
  title: Nova stranica
138
140
  edit:
139
141
  title: Uređivanje stranice
142
+ publish_children: Objavi podređene stranice
143
+ publish_children_confirmation: Objaviti sve podređene stranice?
144
+ unpublish_children: Povuci podređene stranice iz objave
145
+ unpublish_children_confirmation: Povući sve podređene stranice iz objave?
140
146
  form:
141
147
  select_target_page: Nema redirekcije
142
148
  preview: Pregled
@@ -120,6 +120,8 @@ it:
120
120
  creation_failure: Impossibile creare la pagina
121
121
  updated: Pagina modificata
122
122
  update_failure: Impossibile modificare la pagina
123
+ children_published: Pagine figlie pubblicate
124
+ children_unpublished: Pubblicazione delle pagine figlie annullata
123
125
  deleted: Pagina eliminata
124
126
  not_found: Pagina non trovata
125
127
  layout_not_found: Nessun layout trovato. Creane uno per favore.
@@ -137,6 +139,10 @@ it:
137
139
  title: Nuova Pagina
138
140
  edit:
139
141
  title: Modifica Pagina
142
+ publish_children: Pubblica pagine figlie
143
+ publish_children_confirmation: Pubblicare tutte le pagine figlie?
144
+ unpublish_children: Annulla pubblicazione delle pagine figlie
145
+ unpublish_children_confirmation: Annullare la pubblicazione di tutte le pagine figlie?
140
146
  form:
141
147
  select_target_page: Nessun reindirizzamento
142
148
  preview: Anteprima
@@ -120,6 +120,8 @@ ja:
120
120
  creation_failure: ページの作成に失敗しました
121
121
  updated: ページが更新されました
122
122
  update_failure: ページの更新に失敗しました
123
+ children_published: 子ページを公開しました
124
+ children_unpublished: 子ページを非公開にしました
123
125
  deleted: ページが削除されました
124
126
  not_found: ページが見つかりません
125
127
  layout_not_found: レイアウトが見つかりません。 レイアウトを作成してください。
@@ -137,6 +139,10 @@ ja:
137
139
  title: 新規ページ
138
140
  edit:
139
141
  title: ページを編集
142
+ publish_children: 子ページを公開
143
+ publish_children_confirmation: すべての子ページを公開しますか?
144
+ unpublish_children: 子ページを非公開にする
145
+ unpublish_children_confirmation: すべての子ページを非公開にしますか?
140
146
  form:
141
147
  select_target_page: リダイレクトなし
142
148
  preview: プレビュー
@@ -120,6 +120,8 @@ nb:
120
120
  creation_failure: Klarte ikke å opprette side
121
121
  updated: Side oppdatert
122
122
  update_failure: Klarte ikke å endre side
123
+ children_published: Undersider publisert
124
+ children_unpublished: Undersider avpublisert
123
125
  deleted: Side fjernet
124
126
  not_found: Fant ikke side
125
127
  layout_not_found: Ingen layouter eksisterer. Vennligst opprett en.
@@ -137,6 +139,10 @@ nb:
137
139
  title: Ny side
138
140
  edit:
139
141
  title: Endrer side
142
+ publish_children: Publiser undersider
143
+ publish_children_confirmation: Vil du publisere alle undersider?
144
+ unpublish_children: Avpubliser undersider
145
+ unpublish_children_confirmation: Vil du avpublisere alle undersider?
140
146
  form:
141
147
  select_target_page: Ingen videresending
142
148
  preview: Forhåndsvisning
@@ -120,6 +120,8 @@ nl:
120
120
  creation_failure: Pagina aanmaken mislukt
121
121
  updated: Pagina bijgewerkt
122
122
  update_failure: Pagina bijwerken mislukt
123
+ children_published: Onderliggende pagina's gepubliceerd
124
+ children_unpublished: Publicatie van onderliggende pagina's ingetrokken
123
125
  deleted: Pagina verwijderd
124
126
  not_found: Pagina niet gevonden
125
127
  layout_not_found: Geen Lay-outs gevonden. Maak er a.u.b. een aan.
@@ -137,6 +139,10 @@ nl:
137
139
  title: Nieuwe Pagina
138
140
  edit:
139
141
  title: Pagina Bewerken
142
+ publish_children: Onderliggende pagina's publiceren
143
+ publish_children_confirmation: Alle onderliggende pagina's publiceren?
144
+ unpublish_children: Publicatie van onderliggende pagina's intrekken
145
+ unpublish_children_confirmation: Publicatie van alle onderliggende pagina's intrekken?
140
146
  form:
141
147
  select_target_page: Geen Omleiding
142
148
  preview: Preview
@@ -120,6 +120,8 @@ pl:
120
120
  creation_failure: Błąd przy tworzeniu strony
121
121
  updated: Strona została uaktualniona
122
122
  update_failure: Błąd przy uaktualnianiu strony
123
+ children_published: Opublikowano podstrony
124
+ children_unpublished: Cofnięto publikację podstron
123
125
  deleted: Strona została usunięta
124
126
  not_found: Nie znaleziono strony
125
127
  layout_not_found: Brakuje szablonu. Proszę utworzyć
@@ -137,6 +139,10 @@ pl:
137
139
  title: Nowa strona
138
140
  edit:
139
141
  title: Edytuj stronę
142
+ publish_children: Opublikuj podstrony
143
+ publish_children_confirmation: Opublikować wszystkie podstrony?
144
+ unpublish_children: Cofnij publikację podstron
145
+ unpublish_children_confirmation: Cofnąć publikację wszystkich podstron?
140
146
  form:
141
147
  select_target_page: Bez przekierowania
142
148
  preview: Podgląd
@@ -120,6 +120,8 @@ pt-BR:
120
120
  creation_failure: Não foi possível criar página.
121
121
  updated: Página atualizada com sucesso.
122
122
  update_failure: Não foi possível atualizar página.
123
+ children_published: Páginas filhas publicadas.
124
+ children_unpublished: Páginas filhas despublicadas.
123
125
  deleted: Página excluída com sucesso.
124
126
  not_found: Página não encontrada.
125
127
  layout_not_found: "Nenhum leiaute foi encontrado. Por favor, crie um."
@@ -137,6 +139,10 @@ pt-BR:
137
139
  title: Nova Página
138
140
  edit:
139
141
  title: Editando Página
142
+ publish_children: Publicar Páginas Filhas
143
+ publish_children_confirmation: Publicar todas as páginas filhas?
144
+ unpublish_children: Despublicar Páginas Filhas
145
+ unpublish_children_confirmation: Despublicar todas as páginas filhas?
140
146
  form:
141
147
  select_target_page: Não Redirecionar
142
148
  preview: Pré-visualização
@@ -120,6 +120,8 @@ ru:
120
120
  creation_failure: Не удалось создать страницу
121
121
  updated: Страница обновлена
122
122
  update_failure: Не удалось обновить страницу
123
+ children_published: Дочерние страницы опубликованы
124
+ children_unpublished: Дочерние страницы сняты с публикации
123
125
  deleted: Страница удалена
124
126
  not_found: Страница не найдена
125
127
  layout_not_found: Шаблоны не найдены. Пожалуйста, создайте хотя бы один шаблон.
@@ -137,6 +139,10 @@ ru:
137
139
  title: Новая страница
138
140
  edit:
139
141
  title: Редактирование страницы
142
+ publish_children: Опубликовать дочерние страницы
143
+ publish_children_confirmation: Опубликовать все дочерние страницы?
144
+ unpublish_children: Снять дочерние страницы с публикации
145
+ unpublish_children_confirmation: Снять с публикации все дочерние страницы?
140
146
  form:
141
147
  select_target_page: Без редиректа
142
148
  preview: Предпросмотр
@@ -120,6 +120,8 @@ sk:
120
120
  creation_failure: Nepodarilo sa vytvoriť stránku
121
121
  updated: Stránka upravená
122
122
  update_failure: Nepodarilo sa upraviť stránku
123
+ children_published: Podstránky boli publikované
124
+ children_unpublished: Publikovanie podstránok bolo zrušené
123
125
  deleted: Stránka odstránená
124
126
  not_found: Stránka nenájdená
125
127
  layout_not_found: "Neboli nájdené žiadne rozloženia, vytvorte prosím nejaké."
@@ -137,6 +139,10 @@ sk:
137
139
  title: Nová stránka
138
140
  edit:
139
141
  title: Úprava stránky
142
+ publish_children: Publikovať podstránky
143
+ publish_children_confirmation: Publikovať všetky podstránky?
144
+ unpublish_children: Zrušiť publikovanie podstránok
145
+ unpublish_children_confirmation: Zrušiť publikovanie všetkých podstránok?
140
146
  form:
141
147
  select_target_page: Bez presmerovania
142
148
  preview: Náhľad
@@ -120,6 +120,8 @@ sv:
120
120
  creation_failure: Misslyckades att skapa sida
121
121
  updated: Sida uppdaterad
122
122
  update_failure: Uppdateringen av sidan misslyckades
123
+ children_published: Undersidor publicerade
124
+ children_unpublished: Undersidor avpublicerade
123
125
  deleted: Sidan borttagen
124
126
  not_found: Sida kunde inte hittas
125
127
  layout_not_found: Kunde inte hitta layout. Vänligen skapa en.
@@ -137,6 +139,10 @@ sv:
137
139
  title: Ny sida
138
140
  edit:
139
141
  title: Ändra sida
142
+ publish_children: Publicera undersidor
143
+ publish_children_confirmation: Publicera alla undersidor?
144
+ unpublish_children: Avpublicera undersidor
145
+ unpublish_children_confirmation: Avpublicera alla undersidor?
140
146
  form:
141
147
  select_target_page: Ingen vidarebefodring
142
148
  preview: Förhandsgranska
@@ -120,6 +120,8 @@ tr:
120
120
  creation_failure: Sayfa oluşturulamadı
121
121
  updated: Sayfa güncellendi
122
122
  update_failure: Sayfa güncellenemedi
123
+ children_published: Alt sayfalar yayımlandı
124
+ children_unpublished: Alt sayfalar yayından kaldırıldı
123
125
  deleted: Sayfa silindi
124
126
  not_found: Sayfa bulunamadı
125
127
  layout_not_found: Şablon bulunamadı. Lütfen oluşturun.
@@ -137,6 +139,10 @@ tr:
137
139
  title: Yeni Sayfa
138
140
  edit:
139
141
  title: Sayfa Düzenleniyor
142
+ publish_children: Alt sayfaları yayımla
143
+ publish_children_confirmation: Tüm alt sayfalar yayımlansın mı?
144
+ unpublish_children: Alt sayfaları yayından kaldır
145
+ unpublish_children_confirmation: Tüm alt sayfalar yayından kaldırılsın mı?
140
146
  form:
141
147
  select_target_page: Yönlendirme Yok
142
148
  preview: Önizle
@@ -120,6 +120,8 @@ uk:
120
120
  creation_failure: Не вийшло створити сторінку
121
121
  updated: Сторінку оновлено
122
122
  update_failure: Не вийшло оновити сторінку
123
+ children_published: Дочірні сторінки опубліковано
124
+ children_unpublished: Дочірні сторінки знято з публікації
123
125
  deleted: Сторінка видалена
124
126
  not_found: Сторінку не знайдено
125
127
  layout_not_found: Жодного шаблону не знайдено
@@ -137,6 +139,10 @@ uk:
137
139
  title: Нова сторінка
138
140
  edit:
139
141
  title: Редагування сторінки
142
+ publish_children: Опублікувати дочірні сторінки
143
+ publish_children_confirmation: Опублікувати всі дочірні сторінки?
144
+ unpublish_children: Зняти дочірні сторінки з публікації
145
+ unpublish_children_confirmation: Зняти з публікації всі дочірні сторінки?
140
146
  form:
141
147
  select_target_page: Без редіректу
142
148
  preview: Передперегляд
@@ -120,6 +120,8 @@ zh-CN:
120
120
  creation_failure: 页面创建失败
121
121
  updated: 页面更新成功
122
122
  update_failure: 页面更新失败
123
+ children_published: 子页面已发布
124
+ children_unpublished: 子页面已取消发布
123
125
  deleted: 页面删除成功
124
126
  not_found: 页面不存在
125
127
  layout_not_found: 没有布局,请先创建一个布局。
@@ -137,6 +139,10 @@ zh-CN:
137
139
  title: 新页面
138
140
  edit:
139
141
  title: 编辑页面
142
+ publish_children: 发布子页面
143
+ publish_children_confirmation: 发布所有子页面?
144
+ unpublish_children: 取消发布子页面
145
+ unpublish_children_confirmation: 取消发布所有子页面?
140
146
  form:
141
147
  select_target_page: 没有跳转
142
148
  preview: 预览
@@ -120,6 +120,8 @@ zh-TW:
120
120
  creation_failure: 頁面創建失敗
121
121
  updated: 頁面更新成功
122
122
  update_failure: 頁面更新失敗
123
+ children_published: 子頁面已發佈
124
+ children_unpublished: 子頁面已取消發佈
123
125
  deleted: 頁面刪除成功
124
126
  not_found: 頁面不存在
125
127
  layout_not_found: 沒有佈局,請先創建一個佈局。
@@ -137,6 +139,10 @@ zh-TW:
137
139
  title: 新頁面
138
140
  edit:
139
141
  title: 編輯頁面
142
+ publish_children: 發佈子頁面
143
+ publish_children_confirmation: 發佈所有子頁面?
144
+ unpublish_children: 取消發佈子頁面
145
+ unpublish_children_confirmation: 取消發佈所有子頁面?
140
146
  form:
141
147
  select_target_page: 沒有跳轉
142
148
  preview: 預覽
data/config/storage.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  test:
2
2
  service: Disk
3
- root: <%= Rails.root.join("tmp/storage") %>
3
+ root: <%= Rails.root.join("tmp/storage#{ENV.fetch('TEST_ENV_NUMBER', nil)}") %>
4
4
 
5
5
  local:
6
6
  service: Disk
data/gemfiles/7.2.gemfile CHANGED
@@ -26,6 +26,7 @@ group :test do
26
26
  gem 'minitest-reporters', '>= 1.6.1'
27
27
  gem 'mocha', '>= 2.3.0', require: false
28
28
  gem 'ostruct'
29
+ gem 'parallel_tests', '~> 5.7', require: false
29
30
  gem 'puma'
30
31
  gem 'rails-controller-testing', '~> 1.0.5'
31
32
  gem 'rubocop', '~> 1.81.1', require: false
data/gemfiles/8.0.gemfile CHANGED
@@ -26,6 +26,7 @@ group :test do
26
26
  gem 'minitest-reporters', '>= 1.6.1'
27
27
  gem 'mocha', '>= 2.3.0', require: false
28
28
  gem 'ostruct'
29
+ gem 'parallel_tests', '~> 5.7', require: false
29
30
  gem 'puma'
30
31
  gem 'rails-controller-testing', '~> 1.0.5'
31
32
  gem 'rubocop', '~> 1.81.1', require: false
data/gemfiles/8.1.gemfile CHANGED
@@ -26,6 +26,7 @@ group :test do
26
26
  gem 'minitest-reporters', '>= 1.6.1'
27
27
  gem 'mocha', '>= 2.3.0', require: false
28
28
  gem 'ostruct'
29
+ gem 'parallel_tests', '~> 5.7', require: false
29
30
  gem 'puma'
30
31
  gem 'rails-controller-testing', '~> 1.0.5'
31
32
  gem 'rubocop', '~> 1.81.1', require: false
@@ -7,8 +7,8 @@ module ComfortableMediaSurfer::AccessControl
7
7
  # ComfortableMediaSurfer::AccessControl::AdminAuthentication.username = 'myname'
8
8
  # ComfortableMediaSurfer::AccessControl::AdminAuthentication.password = 'mypassword'
9
9
 
10
- mattr_accessor :username,
11
- :password
10
+ mattr_accessor :username,
11
+ :password
12
12
 
13
13
  # Simple http_auth. When implementing some other form of authentication
14
14
  # this method should return +true+ if everything is great, or redirect user
@@ -32,8 +32,8 @@ module ComfortableMediaSurfer::Extensions::HasRevisions
32
32
 
33
33
  if (respond_to?(:fragments_attributes_changed) && fragments_attributes_changed) ||
34
34
  !!changed.intersect?(revision_fields)
35
- self.revision_data = revision_fields.each_with_object({}) do |field, c|
36
- c[field] = send("#{field}_was")
35
+ self.revision_data = revision_fields.to_h do |field|
36
+ [field, send("#{field}_was")]
37
37
  end
38
38
  end
39
39
  end