decidim-core 0.27.4 → 0.27.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/activity_cell.rb +2 -2
  3. data/app/cells/decidim/card_cell.rb +2 -2
  4. data/app/cells/decidim/card_m/top.erb +1 -1
  5. data/app/cells/decidim/card_m_cell.rb +1 -1
  6. data/app/cells/decidim/scopes_picker/scope_picker_values.erb +1 -1
  7. data/app/cells/decidim/tags_cell.rb +3 -1
  8. data/app/cells/decidim/upload_modal/modal.erb +4 -1
  9. data/app/cells/decidim/upload_modal_cell.rb +8 -4
  10. data/app/cells/decidim/user_profile_cell.rb +1 -1
  11. data/app/cells/decidim/version_cell.rb +1 -1
  12. data/app/cells/decidim/versions_list_cell.rb +1 -1
  13. data/app/commands/decidim/create_omniauth_registration.rb +2 -4
  14. data/app/commands/decidim/endorse_resource.rb +2 -0
  15. data/app/commands/decidim/messaging/reply_to_conversation.rb +3 -0
  16. data/app/commands/decidim/messaging/start_conversation.rb +3 -0
  17. data/app/commands/decidim/search.rb +1 -1
  18. data/app/commands/decidim/unendorse_resource.rb +1 -1
  19. data/app/controllers/concerns/decidim/devise_authentication_methods.rb +36 -0
  20. data/app/controllers/concerns/decidim/force_authentication.rb +6 -2
  21. data/app/controllers/concerns/decidim/paginable.rb +1 -1
  22. data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +1 -22
  23. data/app/controllers/decidim/devise/registrations_controller.rb +1 -1
  24. data/app/controllers/decidim/devise/sessions_controller.rb +1 -24
  25. data/app/controllers/decidim/links_controller.rb +1 -1
  26. data/app/controllers/decidim/searches_controller.rb +1 -1
  27. data/app/controllers/decidim/user_timeline_controller.rb +1 -1
  28. data/app/controllers/decidim/widgets_controller.rb +6 -0
  29. data/app/events/decidim/welcome_notification_event.rb +6 -9
  30. data/app/forms/decidim/account_form.rb +1 -1
  31. data/app/forms/decidim/notifications_settings_form.rb +0 -8
  32. data/app/forms/decidim/registration_form.rb +1 -1
  33. data/app/helpers/decidim/cells_paginate_helper.rb +1 -1
  34. data/app/helpers/decidim/check_boxes_tree_helper.rb +4 -4
  35. data/app/helpers/decidim/decidim_form_helper.rb +1 -0
  36. data/app/helpers/decidim/newsletters_helper.rb +83 -16
  37. data/app/helpers/decidim/omniauth_helper.rb +2 -0
  38. data/app/helpers/decidim/resource_helper.rb +3 -1
  39. data/app/helpers/decidim/sanitize_helper.rb +9 -0
  40. data/app/helpers/decidim/short_link_helper.rb +1 -1
  41. data/app/helpers/decidim/user_profile_helper.rb +7 -2
  42. data/app/jobs/decidim/download_your_data_export_job.rb +2 -1
  43. data/app/jobs/decidim/open_data_job.rb +2 -0
  44. data/app/mailers/decidim/messaging/conversation_mailer.rb +3 -72
  45. data/app/models/decidim/push_notification_message.rb +39 -0
  46. data/app/models/decidim/user.rb +9 -1
  47. data/app/packs/images/decidim/icons.svg +1 -1
  48. data/app/packs/images/decidim/vendor/social-share-button/x.svg +6 -0
  49. data/app/packs/src/decidim/autocomplete.js +11 -2
  50. data/app/packs/src/decidim/data_picker.js +1 -0
  51. data/app/packs/src/decidim/direct_uploads/upload_field.js +6 -4
  52. data/app/packs/src/decidim/direct_uploads/upload_modal.js +10 -8
  53. data/app/packs/src/decidim/direct_uploads/uploader.js +4 -1
  54. data/app/packs/src/decidim/geocoding/attach_input.js +4 -1
  55. data/app/packs/src/decidim/geocoding/provider/here.js +17 -21
  56. data/app/packs/src/decidim/geocoding/provider/photon.js +1 -1
  57. data/app/packs/src/decidim/input_hashtags.js +1 -1
  58. data/app/packs/src/decidim/input_mentions.js +1 -1
  59. data/app/packs/src/decidim/input_multiple_mentions.js +1 -1
  60. data/app/packs/src/decidim/utilities/text.js +17 -0
  61. data/app/packs/src/decidim/vizzs/index.js +1 -1
  62. data/app/packs/stylesheets/decidim/_variables.scss +1 -1
  63. data/app/packs/stylesheets/decidim/plugins/leaflet.scss +118 -114
  64. data/app/packs/stylesheets/decidim/vendor/_social_share_button.scss +4 -0
  65. data/app/presenters/decidim/admin_log/oauth_application_resource_presenter.rb +1 -1
  66. data/app/presenters/decidim/notification_to_mailer_presenter.rb +9 -0
  67. data/app/services/decidim/events_manager.rb +6 -0
  68. data/app/services/decidim/push_notification_message_sender.rb +36 -0
  69. data/app/services/decidim/send_push_notification.rb +22 -8
  70. data/app/views/decidim/devise/registrations/new.html.erb +2 -2
  71. data/app/views/decidim/notifications_digest_mailer/_email_content.html.erb +7 -0
  72. data/app/views/decidim/notifications_settings/show.html.erb +1 -1
  73. data/app/views/decidim/scopes/_scopes_picker_input.html.erb +1 -1
  74. data/app/views/decidim/searches/_filters.html.erb +3 -1
  75. data/app/views/decidim/shared/_address_details.html.erb +2 -2
  76. data/app/views/decidim/shared/_share_modal.html.erb +1 -1
  77. data/app/views/decidim/shared/participatory_space_filters/_filters.html.erb +1 -1
  78. data/app/views/layouts/decidim/_js_configuration.html.erb +1 -0
  79. data/app/views/layouts/decidim/_social_media_links.html.erb +2 -2
  80. data/config/locales/ar.yml +12 -16
  81. data/config/locales/bg.yml +77 -15
  82. data/config/locales/ca.yml +34 -30
  83. data/config/locales/cs.yml +18 -14
  84. data/config/locales/de.yml +62 -58
  85. data/config/locales/el.yml +11 -16
  86. data/config/locales/en.yml +5 -1
  87. data/config/locales/eo.yml +2 -3
  88. data/config/locales/es-MX.yml +15 -11
  89. data/config/locales/es-PY.yml +15 -11
  90. data/config/locales/es.yml +30 -26
  91. data/config/locales/eu.yml +500 -342
  92. data/config/locales/fi-plain.yml +7 -3
  93. data/config/locales/fi.yml +21 -17
  94. data/config/locales/fr-CA.yml +17 -13
  95. data/config/locales/fr.yml +12 -8
  96. data/config/locales/ga-IE.yml +5 -5
  97. data/config/locales/gl.yml +5 -19
  98. data/config/locales/he-IL.yml +1 -0
  99. data/config/locales/hu.yml +63 -23
  100. data/config/locales/id-ID.yml +4 -19
  101. data/config/locales/is-IS.yml +4 -2
  102. data/config/locales/it.yml +15 -17
  103. data/config/locales/ja.yml +26 -22
  104. data/config/locales/lb.yml +15 -17
  105. data/config/locales/lt.yml +55 -10
  106. data/config/locales/lv.yml +4 -16
  107. data/config/locales/nl.yml +12 -12
  108. data/config/locales/no.yml +8 -10
  109. data/config/locales/pl.yml +151 -1
  110. data/config/locales/pt-BR.yml +267 -22
  111. data/config/locales/pt.yml +8 -10
  112. data/config/locales/ro-RO.yml +4 -10
  113. data/config/locales/ru.yml +13 -17
  114. data/config/locales/sk.yml +7 -17
  115. data/config/locales/sl.yml +0 -5
  116. data/config/locales/sq-AL.yml +1 -0
  117. data/config/locales/sv.yml +55 -17
  118. data/config/locales/th-TH.yml +1 -0
  119. data/config/locales/tr-TR.yml +18 -15
  120. data/config/locales/uk.yml +17 -14
  121. data/config/locales/zh-CN.yml +6 -10
  122. data/config/locales/zh-TW.yml +0 -9
  123. data/db/migrate/20231027142329_change_default_value_for_decidim_endorsements.rb +11 -0
  124. data/db/seeds.rb +1 -0
  125. data/decidim-core.gemspec +78 -0
  126. data/lib/decidim/acts_as_tree.rb +14 -1
  127. data/lib/decidim/asset_router/storage.rb +4 -0
  128. data/lib/decidim/attribute_encryptor.rb +6 -4
  129. data/lib/decidim/core/engine.rb +7 -3
  130. data/lib/decidim/core/test/factories.rb +309 -95
  131. data/lib/decidim/core/test/shared_examples/amendable/amendment_created_event_examples.rb +6 -26
  132. data/lib/decidim/core/test/shared_examples/amendable/amendment_promoted_event_examples.rb +8 -26
  133. data/lib/decidim/core/test/shared_examples/comments_examples.rb +56 -0
  134. data/lib/decidim/core/test/shared_examples/embed_resource_examples.rb +187 -11
  135. data/lib/decidim/core/test/shared_examples/errors.rb +2 -0
  136. data/lib/decidim/core/test/shared_examples/has_attachment_collections.rb +8 -6
  137. data/lib/decidim/core/test/shared_examples/has_attachments.rb +4 -4
  138. data/lib/decidim/core/test/shared_examples/has_category.rb +27 -0
  139. data/lib/decidim/core/test/shared_examples/has_reference.rb +1 -1
  140. data/lib/decidim/core/test/shared_examples/has_space_in_mcell_examples.rb +1 -2
  141. data/lib/decidim/core/test/shared_examples/resource_endorsed_event_examples.rb +6 -3
  142. data/lib/decidim/core/test/shared_examples/resource_locator_presenter_examples.rb +134 -0
  143. data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +1 -1
  144. data/lib/decidim/core/test/shared_examples/simple_event.rb +50 -2
  145. data/lib/decidim/core/test.rb +1 -0
  146. data/lib/decidim/core/version.rb +1 -1
  147. data/lib/decidim/core.rb +2 -1
  148. data/lib/decidim/endorsable.rb +1 -1
  149. data/lib/decidim/engine_router.rb +17 -4
  150. data/lib/decidim/events/base_event.rb +5 -2
  151. data/lib/decidim/events/simple_event.rb +3 -17
  152. data/lib/decidim/exporters.rb +10 -1
  153. data/lib/decidim/form_builder.rb +1 -0
  154. data/lib/decidim/has_category.rb +3 -3
  155. data/lib/decidim/has_conversations.rb +91 -0
  156. data/lib/decidim/participable.rb +17 -0
  157. data/lib/decidim/view_model.rb +1 -0
  158. data/lib/decidim/webpacker/webpack/.modernizrrc +9 -0
  159. data/lib/premailer/adapter/decidim.rb +5 -4
  160. data/lib/tasks/decidim_reminders_tasks.rake +1 -0
  161. data/lib/tasks/upgrade/decidim_deduplicate_endorsements.rake +53 -0
  162. data/lib/tasks/upgrade/decidim_fix_categorization.rake +15 -0
  163. data/lib/tasks/upgrade/decidim_fix_short_url_resolver.rake +22 -0
  164. metadata +37 -32
  165. data/app/helpers/decidim/layout_helper.rb.orig +0 -225
  166. data/app/packs/stylesheets/decidim/modules/_dropdown_menu.scss +0 -9
  167. data/app/views/decidim/devise/registrations/new.html.erb.orig +0 -231
  168. /data/{config/environment.rb → app/packs/images/decidim/.keep} +0 -0
@@ -1,231 +0,0 @@
1
- <% add_decidim_page_title(t(".sign_up")) %>
2
-
3
- <% content_for :devise_links do %>
4
- <%= render "decidim/devise/shared/links" %>
5
- <% end %>
6
-
7
- <%= render layout: "layouts/decidim/shared/layout_center" do %>
8
- <div class="flex justify-center">
9
- <h1 class="h3 md:h1 decorator my-12"><%= t("decidim.devise.registrations.new.sign_up") %></h1>
10
- </div>
11
-
12
- <div class="login__info">
13
- <p>
14
- <%= t("decidim.devise.registrations.new.subtitle") %>
15
- </p>
16
- <p class="font-semibold">
17
- <%= t("decidim.devise.registrations.new.already_have_an_account?") %>
18
- <%= link_to t("decidim.devise.registrations.new.sign_in"), new_user_session_path %>
19
- </p>
20
- </div>
21
-
22
- <div class="login__info-required">
23
- <%= form_required_explanation %>
24
- </div>
25
-
26
- <div class="login__omniauth-container">
27
- <% cache current_organization do %>
28
- <%= render "decidim/devise/shared/omniauth_buttons" %>
29
- <% end %>
30
- </div>
31
-
32
- <%= decidim_form_for(@form, namespace: "registration", as: resource_name, url: registration_path(resource_name), html: { id: "register-form" }) do |f| %>
33
- <%= invisible_captcha %>
34
-
35
- <div class="form__wrapper">
36
- <%= f.text_field :name, help_text: t("decidim.devise.registrations.new.username_help"), autocomplete: "name", placeholder: "John Doe" %>
37
-
38
- <%= f.text_field :nickname, help_text: t("decidim.devise.registrations.new.nickname_help", organization: current_organization.name), autocomplete: "nickname", placeholder: "johndoe" %>
39
-
40
- <%= f.email_field :email, autocomplete: "email", placeholder: "hi@email.com" %>
41
-
42
- <%= f.password_field :password, password_field_options_for(:user) %>
43
-
44
- <%= f.password_field :password_confirmation, password_field_options_for(:user).except(:help_text) %>
45
- </div>
46
-
47
- <div id="card__tos" class="form__wrapper-block">
48
- <h4 class="h4"><%= t("decidim.devise.registrations.new.tos_title") %></h4>
49
-
50
- <div class="tos-text">
51
- <% terms_of_service_summary_content_blocks.each do |content_block| %>
52
- <%= cell content_block.manifest.cell, content_block %>
53
- <% end %>
54
- </div>
55
-
56
- <%= f.check_box :tos_agreement, label: t("decidim.devise.registrations.new.tos_agreement", link: link_to(t("decidim.devise.registrations.new.terms"), page_path("terms-of-service"))), label_options: { class: "form__wrapper-checkbox-label" } %>
57
- </div>
58
-
59
- <div id="card__newsletter" class="form__wrapper-block">
60
- <h4 class="h4"><%= t("decidim.devise.registrations.new.newsletter_title") %></h4>
61
- <%= f.check_box :newsletter, label: t("decidim.devise.registrations.new.newsletter"), checked: @form.newsletter, label_options: { class: "form__wrapper-checkbox-label" } %>
62
- </div>
63
-
64
- <div class="form__wrapper-block">
65
- <button type="submit" class="button button__lg button__secondary">
66
- <%= t("decidim.devise.registrations.new.sign_up") %>
67
- <%= icon "arrow-right-line", class: "fill-current" %>
68
- </button>
69
- </div>
70
-
71
- <div class="login__links">
72
- <%= render "decidim/devise/shared/redesigned_links" %>
73
- </div>
74
- <% end %>
75
- <% end %>
76
-
77
- <<<<<<< HEAD
78
- ||||||| parent of 4e14afa36c (add password toggle via unobstructive javascript)
79
- <div class="row">
80
- <div class="columns large-6 medium-10 medium-centered">
81
-
82
- <%= decidim_form_for(@form, namespace: "registration", as: resource_name, url: registration_path(resource_name), html: { class: "register-form new_user", id: "register-form" }) do |f| %>
83
- <%= invisible_captcha %>
84
- <div class="card">
85
- <div class="card__content">
86
- <%= form_required_explanation %>
87
-
88
- <div class="user-person">
89
- <div class="field">
90
- <%= f.text_field :name, help_text: t(".username_help"), autocomplete: "name" %>
91
- </div>
92
- </div>
93
-
94
- <div class="user-nickname">
95
- <div class="field">
96
- <%= f.text_field :nickname, help_text: t(".nickname_help", organization: current_organization.name), prefix: { value: "@", small: 1, large: 1 }, autocomplete: "nickname" %>
97
- </div>
98
- </div>
99
-
100
- <div class="field">
101
- <%= f.email_field :email, autocomplete: "email" %>
102
- </div>
103
-
104
- <div class="field">
105
- <%= f.password_field :password, password_field_options_for(:user) %>
106
- </div>
107
-
108
- <div class="field">
109
- <%= f.password_field :password_confirmation, password_field_options_for(:user).except(:help_text) %>
110
- </div>
111
- </div>
112
- </div>
113
-
114
- <div class="card" id="card__tos">
115
- <div class="card__content">
116
- <h3><%= t(".tos_title") %></h3>
117
-
118
- <p class="tos-text">
119
- <%= strip_tags(translated_attribute(terms_and_conditions_page.content)) %>
120
- </p>
121
-
122
- <div class="field">
123
- <%= f.check_box :tos_agreement, label: t(".tos_agreement", link: link_to(t(".terms"), page_path("terms-and-conditions"))) %>
124
- </div>
125
- </div>
126
- </div>
127
-
128
- <div class="card" id="card__newsletter">
129
- <div class="card__content">
130
- <h3><%= t(".newsletter_title") %></h3>
131
- <div class="field">
132
- <%= f.check_box :newsletter, label: t(".newsletter"), checked: @form.newsletter %>
133
- </div>
134
- </div>
135
- </div>
136
-
137
- <div class="card">
138
- <div class="card__content">
139
- <div class="actions">
140
- <%= f.submit t("devise.registrations.new.sign_up"), class: "button expanded" %>
141
- </div>
142
- <%= yield :devise_links %>
143
- </div>
144
- </div>
145
- <% end %>
146
- </div>
147
- </div>
148
- </div>
149
- </div>
150
- =======
151
- <div class="row">
152
- <div class="columns large-6 medium-10 medium-centered">
153
-
154
- <%= decidim_form_for(@form, namespace: "registration", as: resource_name, url: registration_path(resource_name), html: { class: "register-form new_user", id: "register-form" }) do |f| %>
155
- <%= invisible_captcha %>
156
- <div class="card">
157
- <div class="card__content">
158
- <%= form_required_explanation %>
159
-
160
- <div class="user-person">
161
- <div class="field">
162
- <%= f.text_field :name, help_text: t(".username_help"), autocomplete: "off" %>
163
- </div>
164
- </div>
165
-
166
- <div class="user-nickname">
167
- <div class="field">
168
- <%= f.text_field :nickname, help_text: t(".nickname_help", organization: current_organization.name), prefix: { value: "@", small: 1, large: 1 }, autocomplete: "off" %>
169
- </div>
170
- </div>
171
-
172
- <div class="field">
173
- <%= f.email_field :email, autocomplete: "email" %>
174
- </div>
175
-
176
- <div class="user-password">
177
- <div class="field">
178
- <%= f.password_field :password, password_field_options_for(:user) %>
179
- </div>
180
- </div>
181
-
182
- <div class="user-password-confirmation">
183
- <div class="field">
184
- <%= f.password_field :password_confirmation, password_field_options_for(:user).except(:help_text) %>
185
- </div>
186
- </div>
187
- </div>
188
- </div>
189
-
190
- <div class="card" id="card__tos">
191
- <div class="card__content">
192
- <h3><%= t(".tos_title") %></h3>
193
-
194
- <p class="tos-text">
195
- <%= strip_tags(translated_attribute(terms_and_conditions_page.content)) %>
196
- </p>
197
-
198
- <div class="field">
199
- <%= f.check_box :tos_agreement, label: t(".tos_agreement", link: link_to(t(".terms"), page_path("terms-and-conditions"))) %>
200
- </div>
201
- </div>
202
- </div>
203
-
204
- <div class="card" id="card__newsletter">
205
- <div class="card__content">
206
- <h3><%= t(".newsletter_title") %></h3>
207
- <div class="field">
208
- <%= f.check_box :newsletter, label: t(".newsletter"), checked: @form.newsletter %>
209
- </div>
210
- </div>
211
- </div>
212
-
213
- <div class="card">
214
- <div class="card__content">
215
- <div class="actions">
216
- <%= f.submit t("devise.registrations.new.sign_up"), class: "button expanded" %>
217
- </div>
218
- <%= yield :devise_links %>
219
- </div>
220
- </div>
221
- <% end %>
222
- </div>
223
- </div>
224
- </div>
225
- </div>
226
- >>>>>>> 4e14afa36c (add password toggle via unobstructive javascript)
227
- <%= render "decidim/devise/shared/newsletter_modal" %>
228
-
229
- <% content_for :js_content do %>
230
- <%= javascript_pack_tag "decidim_registrations" %>
231
- <% end %>