decidim-comments 0.31.6 → 0.31.8

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/decidim/comments/application_controller.rb +2 -0
  3. data/app/controllers/decidim/comments/comments_controller.rb +1 -1
  4. data/app/packs/src/decidim/comments/comments.component.js +1 -1
  5. data/app/packs/src/decidim/comments/comments.component.test.js +6 -0
  6. data/app/views/decidim/comments/comments/reload.js.erb +12 -0
  7. data/config/locales/ar.yml +0 -4
  8. data/config/locales/bg.yml +0 -4
  9. data/config/locales/ca-IT.yml +4 -4
  10. data/config/locales/ca.yml +4 -4
  11. data/config/locales/cs.yml +2 -4
  12. data/config/locales/de.yml +4 -4
  13. data/config/locales/el.yml +0 -4
  14. data/config/locales/en.yml +4 -4
  15. data/config/locales/es-MX.yml +4 -4
  16. data/config/locales/es-PY.yml +4 -4
  17. data/config/locales/es.yml +4 -4
  18. data/config/locales/eu.yml +13 -13
  19. data/config/locales/fi-plain.yml +4 -4
  20. data/config/locales/fi.yml +4 -4
  21. data/config/locales/fr-CA.yml +0 -4
  22. data/config/locales/fr.yml +1 -4
  23. data/config/locales/gl.yml +74 -7
  24. data/config/locales/hu.yml +0 -4
  25. data/config/locales/id-ID.yml +0 -4
  26. data/config/locales/is-IS.yml +0 -4
  27. data/config/locales/it.yml +0 -4
  28. data/config/locales/ja.yml +4 -4
  29. data/config/locales/lb.yml +0 -4
  30. data/config/locales/lt.yml +0 -4
  31. data/config/locales/lv.yml +0 -4
  32. data/config/locales/nl.yml +0 -4
  33. data/config/locales/no.yml +0 -4
  34. data/config/locales/pl.yml +0 -4
  35. data/config/locales/pt-BR.yml +0 -4
  36. data/config/locales/pt.yml +0 -4
  37. data/config/locales/ro-RO.yml +0 -4
  38. data/config/locales/ru.yml +0 -4
  39. data/config/locales/sk.yml +0 -4
  40. data/config/locales/sv.yml +4 -4
  41. data/config/locales/tr-TR.yml +0 -4
  42. data/config/locales/uk.yml +0 -4
  43. data/config/locales/zh-CN.yml +0 -4
  44. data/config/locales/zh-TW.yml +0 -4
  45. data/lib/decidim/comments/mutation_extensions.rb +12 -0
  46. data/lib/decidim/comments/query_extensions.rb +9 -0
  47. data/lib/decidim/comments/test/factories.rb +1 -1
  48. data/lib/decidim/comments/version.rb +1 -1
  49. metadata +8 -8
@@ -69,19 +69,15 @@ ru:
69
69
  email_intro: "%{author_name} оставил комментарий в %{resource_title}. Вы можете прочитать его на странице:"
70
70
  email_outro: Вы получили это уведомление, потому что вы следите за %{author_name}. Вы можете отписаться от таких уведомлений, перейдя на страницу профиля этого участника.
71
71
  email_subject: В %{resource_title} появился новый комментарий от %{author_name}
72
- notification_title: В <a href="%{resource_path}">%{resource_title}</a> появился новый комментарий от <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
73
72
  comment_created:
74
73
  email_intro: "%{resource_title} прокомментировали. Вы можете прочитать комментарий на странице:"
75
74
  email_outro: Вы получили это уведомление, потому что вы следите за «%{resource_title}». Вы можете перестать за ним следить, перейдя по приведенной выше ссылке.
76
75
  email_subject: В %{resource_title} появился новый комментарий от %{author_name}
77
- notification_title: В <a href="%{resource_path}">%{resource_title}</a> появился новый комментарий от <a href="%{author_path}">%{author_name} %{author_nickname}</a>
78
76
  reply_created:
79
77
  email_intro: "%{author_name} ответил на ваш комментарий в %{resource_title}. Вы можете прочитать его на странице:"
80
78
  email_outro: Вы получили это уведомление, потому что на ваш комментарий был дан ответ.
81
79
  email_subject: "%{author_name} ответил на ваш комментарий в %{resource_title}"
82
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> ответил на ваш комментарий в <a href="%{resource_path}">%{resource_title}</a>
83
80
  user_mentioned:
84
81
  email_intro: Вы были упомянуты
85
82
  email_outro: Вы получили это уведомление, потому что вы были упомянуты в %{resource_title}.
86
83
  email_subject: Вы были упомянуты в %{resource_title}
87
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> упомянул вас в <a href="%{resource_path}">%{resource_title}</a>
@@ -182,12 +182,10 @@ sk:
182
182
  email_intro: "%{author_name} komentoval na %{resource_title}. Môžete si to prečítať na stránke:"
183
183
  email_outro: Túto notifikáciu ste dostali, pretože sledujete autora "%{author_name}". Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
184
184
  email_subject: Je nový komentár od %{author_name} na %{resource_title}
185
- notification_title: Je nový komentár od <a href="%{author_path}">%{author_name}%{author_nickname}</a> na <a href="%{resource_path}">%{resource_title}</a>.
186
185
  comment_created:
187
186
  email_intro: "%{resource_title} bol okomentovaný. Komentár si môžete prečítať na stránke:"
188
187
  email_outro: Túto notifikáciu ste dostali, pretože sledujete "%{resource_title}" alebo autora. Notifikácie môžete zrušiť po kliknutí na predchádzajúci odkaz.
189
188
  email_subject: Je nový komentár od %{author_name} na %{resource_title}
190
- notification_title: Je nový komentár od <a href="%{author_path}">%{author_name}%{author_nickname}</a> na <a href="%{resource_path}">%{resource_title}</a>
191
189
  comment_downvoted:
192
190
  email_intro: Váš komentár v „%{resource_title}“ získal negatívny hlas. Teraz má celkovo %{upvotes} pozitívnych hlasov a %{downvotes} negatívnych hlasov.
193
191
  email_outro: Toto upozornenie ste dostali, pretože ste autorom tohto komentára.
@@ -202,12 +200,10 @@ sk:
202
200
  email_intro: "%{author_name} odpovedal na váš komentár na %{resource_title}. Môžete si to prečítať na stránke:"
203
201
  email_outro: Túto notifikáciu ste dostali, pretože niekto odpovedal na Váš komentár.
204
202
  email_subject: "%{author_name} odpovedal na Váš komentár na %{resource_title}"
205
- notification_title: <a href="%{author_path}">%{author_name}%{author_nickname}</a> odpovedal na váš komentár na <a href="%{resource_path}">%{resource_title}</a>
206
203
  user_mentioned:
207
204
  email_intro: Niekto vás spomenul
208
205
  email_outro: Túto notifikáciu ste dostali, pretože ste boli spomenutí na %{resource_title}.
209
206
  email_subject: Boli ste spomenutí na %{resource_title}
210
- notification_title: Boli ste spomenutí <a href="%{author_path}">%{author_name}%{author_nickname}</a> na <a href="%{resource_path}">%{resource_title}</a>
211
207
  errors:
212
208
  messages:
213
209
  cannot_have_comments: nemôže mať komentáre
@@ -166,12 +166,12 @@ sv:
166
166
  email_intro: "%{author_name} har lämnat en kommentar i %{resource_title}. Du kan läsa den på den här sidan:"
167
167
  email_outro: Du har fått den här notisen eftersom du följer %{author_name}. Du kan avfölja den här användaren från deras profilsida.
168
168
  email_subject: Det finns en ny kommentar av %{author_name} i %{resource_title}
169
- notification_title: Det finns en ny kommentar av <a href="%{author_path}">%{author_name} %{author_nickname}</a> i <a href="%{resource_path}">%{resource_title}</a>.
169
+ notification_title: Ny kommentar av <a href="%{author_path}">%{author_name}</a> i <a href="%{resource_path}">%{resource_title}</a>.
170
170
  comment_created:
171
171
  email_intro: "%{resource_title} har kommenterats. Du kan läsa kommentaren på den här sidan:"
172
172
  email_outro: Du har fått det här meddelandet eftersom du följer "%{resource_title}" eller dess författare. Du kan avfölja det från föregående länk.
173
173
  email_subject: Det finns en ny kommentar från %{author_name} i %{resource_title}
174
- notification_title: Det finns en ny kommentar från <a href="%{author_path}">%{author_name} %{author_nickname}</a> i <a href="%{resource_path}">%{resource_title}</a>
174
+ notification_title: Ny kommentar från <a href="%{author_path}">%{author_name}</a> i <a href="%{resource_path}">%{resource_title}</a>
175
175
  comment_downvoted:
176
176
  email_intro: Din kommentar i "%{resource_title}" har blivit nedröstad. Den har nu totalt %{upvotes} uppröster och %{downvotes} nedröster.
177
177
  email_outro: Du har fått det här meddelandet eftersom du är författare till denna kommentar.
@@ -186,12 +186,12 @@ sv:
186
186
  email_intro: "%{author_name} har svarat din kommentar i %{resource_title}. Du kan läsa den på den här sidan:"
187
187
  email_outro: Du har fått denna notis eftersom din kommentar blev besvarad.
188
188
  email_subject: "%{author_name} har svarat din kommentar i %{resource_title}"
189
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> har svarat din kommentar i <a href="%{resource_path}">%{resource_title}</a>
189
+ notification_title: <a href="%{author_path}">%{author_name}</a> har svarat på din kommentar i <a href="%{resource_path}">%{resource_title}</a>
190
190
  user_mentioned:
191
191
  email_intro: Du har nämnts
192
192
  email_outro: Du har fått denna notis eftersom du har nämnts i %{resource_title}.
193
193
  email_subject: Du har nämnts i %{resource_title}
194
- notification_title: Du har nämnts i <a href="%{resource_path}">%{resource_title}</a> av <a href="%{author_path}">%{author_name} %{author_nickname}</a>
194
+ notification_title: Du har nämnts i <a href="%{resource_path}">%{resource_title}</a> av <a href="%{author_path}">%{author_name}</a>
195
195
  errors:
196
196
  messages:
197
197
  cannot_have_comments: kan inte ha kommentarer
@@ -82,19 +82,15 @@ tr:
82
82
  email_intro: "%{author_name} grubu %{resource_title} alanında bir yorum bıraktı. Bu sayfada okuyabilirsiniz:"
83
83
  email_outro: Bu bildirimi %{author_name} adlı yazarı takip ettiğiniz için aldınız. Bu grubu profil sayfasından takip etmeyi bırakabilirsiniz.
84
84
  email_subject: '%{author_name} %{resource_title} alanında yeni bir yorum yaptı'
85
- notification_title: <a href="%{resource_path}">%{resource_title} </a> içinde <a href="%{author_path}">%{author_name} %{author_nickname} </a> tarafından yeni bir yorum var.
86
85
  comment_created:
87
86
  email_intro: "%{resource_title} alanında yorum yapıldı. Bu sayfadaki yorumu okuyabilirsiniz:"
88
87
  email_outro: '"%{resource_title}" alanında veya yazarı takip ettiğiniz için bu bildirimi aldınız. Bunu önceki linkten takip edebilirsiniz.'
89
88
  email_subject: '%{author_name}, %{resource_title} alanında yeni bir yorum yaptı'
90
- notification_title: <a href="%{resource_path}">%{resource_title} </a> içinde <a href="%{author_path}">%{author_name} %{author_nickname} </a> tarafından yeni bir yorum var
91
89
  reply_created:
92
90
  email_intro: "%{author_name}, yorumunuzu %{resource_title} alanında yanıtladı. Bu sayfada okuyabilirsiniz:"
93
91
  email_outro: Yorumunuz yanıtlandığı için bu bildirimi aldınız.
94
92
  email_subject: "%{author_name}, yorumunuzu %{resource_title} alanında yanıtladı"
95
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> <a href="%{resource_path}">%{resource_title}</a> alanında yorumunuzu yanıtladı
96
93
  user_mentioned:
97
94
  email_intro: Sen bahsedildin
98
95
  email_outro: Bu bildirimi, sizden %{resource_title} alanında bahsedildiği için aldınız.
99
96
  email_subject: '%{resource_title} alanında bahsedildiniz'
100
- notification_title: <a href="%{resource_path}">%{resource_title} </a> alanında <a href="%{author_path}">%{author_name} %{author_nickname} </a> tarafından bahsedildi
@@ -64,19 +64,15 @@ uk:
64
64
  email_intro: "%{author_name} залишив коментар у %{resource_title}. Ви можете прочитати його на сторінці:"
65
65
  email_outro: Ви отримали це сповіщення, тому що ви стежите за %{author_name}. Ви можете припинити стежити за ним на сторінці його профілю.
66
66
  email_subject: У %{resource_title} з'явився новий коментар від %{author_name}
67
- notification_title: У <a href="%{resource_path}">%{resource_title}</a> з'явився новий коментар від <a href="%{author_path}">%{author_name} %{author_nickname}</a>.
68
67
  comment_created:
69
68
  email_intro: "%{resource_title} прокоментували. Ви можете прочитати коментар на сторінці:"
70
69
  email_outro: Ви отримали це сповіщення, тому що ви стежите за "%{resource_title}". Ви можете припинити стежити за ним, перейшовши за наведеним вище посиланням.
71
70
  email_subject: У %{resource_title} з'явився новий коментар від %{author_name}
72
- notification_title: У <a href="%{resource_path}">%{resource_title}</a> з'явився новий коментар від <a href="%{author_path}">%{author_name} %{author_nickname}</a>
73
71
  reply_created:
74
72
  email_intro: "%{author_name} відповів на ваш коментар у %{resource_title}. Ви можете прочитати його на сторінці:"
75
73
  email_outro: Ви отримали це сповіщення, оскільки на ваш коментар відповіли.
76
74
  email_subject: "%{author_name} відповів на ваш коментар у %{resource_title}"
77
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> відповів на ваш коментар у <a href="%{resource_path}">%{resource_title}</a>
78
75
  user_mentioned:
79
76
  email_intro: Вас згадали
80
77
  email_outro: Ви отримали це сповіщення, оскільки вас згадали в %{resource_title}.
81
78
  email_subject: Вас згадали у %{resource_title}
82
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> згадав вас у <a href="%{resource_path}">%{resource_title}</a>
@@ -70,19 +70,15 @@ zh-CN:
70
70
  email_intro: "%{author_name} 在 %{resource_title}留下了一条评论。您可以在这个页面阅读:"
71
71
  email_outro: 您收到此通知是因为您正在关注 %{author_name}。您可以从其个人资料页面取消关注此用户。
72
72
  email_subject: '%{author_name} 在 %{resource_title} 有一个新评论'
73
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> 在 <a href="%{resource_path}">%{resource_title}</a> 有新的评论。
74
73
  comment_created:
75
74
  email_intro: "%{resource_title} 已被评论。您可以阅读此页面中的评论:"
76
75
  email_outro: 您收到此通知是因为您正在关注"%{resource_title}"或其作者。您可以从上一个链接取消关注它。
77
76
  email_subject: '%{author_name} 在 %{resource_title} 有一个新评论'
78
- notification_title: 来自 <a href="%{author_path}">%{author_name} %{author_nickname}</a> 的新评论 <a href="%{resource_path}">%{resource_title}</a>
79
77
  reply_created:
80
78
  email_intro: "%{author_name} 在 %{resource_title}回复了您的评论。您可以在这个页面阅读:"
81
79
  email_outro: 您收到此通知是因为您的评论已被回复。
82
80
  email_subject: "%{author_name} 在 %{resource_title} 回复了您的评论"
83
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> 回复了您在 <a href="%{resource_path}">%{resource_title}</a>
84
81
  user_mentioned:
85
82
  email_intro: 您已被提到。
86
83
  email_outro: 您收到此通知是因为您已在 %{resource_title} 中被提及。
87
84
  email_subject: 您已在 %{resource_title} 中被提及了
88
- notification_title: 您在 <a href="%{resource_path}">%{resource_title}中提到</a> <a href="%{author_path}">%{author_name} %{author_nickname}</a>
@@ -114,12 +114,10 @@ zh-TW:
114
114
  email_intro: "%{author_name} 在%{resource_title} 留下了一則評論。您可以在此頁面上閱讀它:"
115
115
  email_outro: 您收到此通知是因為您正在關注%{author_name}。您可以從他們的個人資料頁面取消關注該用戶。
116
116
  email_subject: '%{author_name} 在%{resource_title} 發表了一則新的評論'
117
- notification_title: 在<a href="%{resource_path}">%{resource_title}</a>中,<a href="%{author_path}">%{author_name} %{author_nickname}</a>有了一個新的評論。
118
117
  comment_created:
119
118
  email_intro: "%{resource_title} 已被評論。您可以在此頁面中閱讀評論:"
120
119
  email_outro: 您收到此通知是因為您正在關注「%{resource_title}」或其作者。您可以從上面的連結取消關注。
121
120
  email_subject: '%{resource_title}」有新的評論來自 %{author_name}'
122
- notification_title: 在 <a href="%{resource_path}">%{resource_title}</a>有新的評論來自 <a href="%{author_path}">%{author_name} %{author_nickname}</a>
123
121
  comment_downvoted:
124
122
  email_intro: 您在「%{resource_title}」的評論已經倒讚。它現在的評分是 %{upvotes} 個讚和 %{downvotes} 個倒讚。
125
123
  email_outro: 您收到此通知是因為您是此評論的作者。
@@ -134,12 +132,10 @@ zh-TW:
134
132
  email_intro: "%{author_name} 已回覆你在%{resource_title} 中的評論。你可以在此頁面上閱讀:"
135
133
  email_outro: 你收到此通知是因為有人回覆了你的評論。
136
134
  email_subject: "%{author_name} 回覆了你在 %{resource_title} 中的評論。"
137
- notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> 在 <a href="%{resource_path}">%{resource_title}</a> 中回覆了你的評論。
138
135
  user_mentioned:
139
136
  email_intro: 您已被提及
140
137
  email_outro: 您收到了此通知,因為您被提及在 %{resource_title} 中。
141
138
  email_subject: 您被提及在 %{resource_title} 中
142
- notification_title: 您被 <a href="%{author_path}">%{author_name} %{author_nickname}</a> 在 <a href="%{resource_path}">%{resource_title}</a> 中提及。
143
139
  errors:
144
140
  messages:
145
141
  cannot_have_comments: 無法評論
@@ -30,6 +30,8 @@ module Decidim
30
30
  end
31
31
 
32
32
  def commentable(id:, type:, locale: Decidim.default_locale, toggle_translations: false)
33
+ raise GraphQL::ExecutionError, "Invalid commentable type" unless valid_commentable_type?(type)
34
+
33
35
  I18n.locale = locale.presence
34
36
  RequestStore.store[:toggle_machine_translations] = toggle_translations
35
37
  type.constantize.find(id)
@@ -40,6 +42,16 @@ module Decidim
40
42
  RequestStore.store[:toggle_machine_translations] = toggle_translations
41
43
  Comment.find(id)
42
44
  end
45
+
46
+ private
47
+
48
+ def valid_commentable_type?(type)
49
+ klass = type.safe_constantize
50
+ return false unless klass
51
+ return false unless klass.is_a?(Class)
52
+
53
+ klass.include?(Decidim::Comments::Commentable)
54
+ end
43
55
  end
44
56
  end
45
57
  end
@@ -21,6 +21,7 @@ module Decidim
21
21
 
22
22
  def commentable(id:, locale:, toggle_translations:, type:)
23
23
  raise GraphQL::ExecutionError, "#{locale} is not a valid locale" unless available_locales.include?(locale)
24
+ raise GraphQL::ExecutionError, "Invalid commentable type" unless valid_commentable_type?(type)
24
25
 
25
26
  I18n.locale = locale.presence
26
27
  RequestStore.store[:toggle_machine_translations] = toggle_translations
@@ -29,6 +30,14 @@ module Decidim
29
30
 
30
31
  private
31
32
 
33
+ def valid_commentable_type?(type)
34
+ klass = type.safe_constantize
35
+ return false unless klass
36
+ return false unless klass.is_a?(Class)
37
+
38
+ klass.include?(Decidim::Comments::Commentable)
39
+ end
40
+
32
41
  def available_locales
33
42
  if context[:current_organization].present?
34
43
  context[:current_organization].available_locales
@@ -7,7 +7,7 @@ FactoryBot.define do
7
7
  transient do
8
8
  skip_injection { false }
9
9
  end
10
- author { build(:user, organization: commentable.organization, skip_injection:) }
10
+ author { build(:user, :confirmed, organization: commentable.organization, skip_injection:) }
11
11
  commentable { build(:dummy_resource, :published, skip_injection:) }
12
12
  root_commentable { commentable }
13
13
  body { Decidim::Faker::Localized.paragraph }
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-comments version.
5
5
  module Comments
6
6
  def self.version
7
- "0.31.6"
7
+ "0.31.8"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-comments
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.6
4
+ version: 0.31.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-07-06 00:00:00.000000000 Z
13
+ date: 2026-10-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-core
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.31.6
21
+ version: 0.31.8
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 0.31.6
28
+ version: 0.31.8
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: redcarpet
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -52,28 +52,28 @@ dependencies:
52
52
  requirements:
53
53
  - - '='
54
54
  - !ruby/object:Gem::Version
55
- version: 0.31.6
55
+ version: 0.31.8
56
56
  type: :development
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - '='
61
61
  - !ruby/object:Gem::Version
62
- version: 0.31.6
62
+ version: 0.31.8
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: decidim-dev
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - '='
68
68
  - !ruby/object:Gem::Version
69
- version: 0.31.6
69
+ version: 0.31.8
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - '='
75
75
  - !ruby/object:Gem::Version
76
- version: 0.31.6
76
+ version: 0.31.8
77
77
  description: Pluggable comments system for some components.
78
78
  email:
79
79
  - josepjaume@gmail.com