decidim-core 0.31.5 → 0.31.6

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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/amendable/amend_button_card/show.erb +2 -2
  3. data/app/cells/decidim/author_cell.rb +0 -4
  4. data/app/cells/decidim/content_blocks/cta_settings_form/show.erb +1 -1
  5. data/app/cells/decidim/content_blocks/hero_settings_form/show.erb +2 -2
  6. data/app/cells/decidim/content_blocks/highlighted_content_banner_cell.rb +1 -1
  7. data/app/cells/decidim/content_blocks/highlighted_content_banner_settings_form/show.erb +1 -1
  8. data/app/cells/decidim/content_blocks/highlighted_participatory_spaces_cell.rb +1 -1
  9. data/app/cells/decidim/content_blocks/participatory_space_hero_settings_form/show.erb +1 -1
  10. data/app/cells/decidim/content_blocks/static_page/section_settings_form/show.erb +3 -1
  11. data/app/cells/decidim/content_blocks/static_page/summary_settings_form/show.erb +3 -1
  12. data/app/cells/decidim/content_blocks/static_page/two_pane_section_settings_form/show.erb +4 -2
  13. data/app/cells/decidim/resource_types_filter/show.erb +2 -2
  14. data/app/commands/decidim/destroy_account.rb +12 -1
  15. data/app/commands/decidim/multiple_attachments_methods.rb +28 -27
  16. data/app/controllers/concerns/decidim/devise_controllers.rb +10 -0
  17. data/app/jobs/decidim/process_inactive_participant_job.rb +0 -7
  18. data/app/mailers/decidim/delete_user_mailer.rb +14 -0
  19. data/app/mailers/decidim/participants_account_mailer.rb +0 -16
  20. data/app/models/decidim/moderation.rb +1 -1
  21. data/app/models/decidim/participatory_space_private_user.rb +1 -1
  22. data/app/models/decidim/user_base_entity.rb +17 -2
  23. data/app/models/decidim/user_moderation.rb +1 -1
  24. data/app/packs/src/decidim/controllers/form_validator/form_validator.js +6 -6
  25. data/app/packs/src/decidim/controllers/form_validator/form_validator.test.js +23 -1
  26. data/app/packs/src/decidim/controllers/mention/controller.js +296 -140
  27. data/app/packs/src/decidim/controllers/mention/input_mentions.test.js +120 -457
  28. data/app/packs/src/decidim/controllers/multiple_mentions/controller.js +68 -32
  29. data/app/packs/src/decidim/controllers/multiple_mentions/input_multiple_mentions.test.js +30 -23
  30. data/app/packs/src/decidim/direct_uploads/upload_field.js +4 -4
  31. data/app/packs/src/decidim/direct_uploads/upload_modal.js +11 -7
  32. data/app/packs/src/decidim/geocoding/reverse_geocoding.js +15 -5
  33. data/app/packs/src/decidim/geocoding/reverse_geocoding.test.js +197 -0
  34. data/app/packs/src/decidim/index.js +4 -3
  35. data/app/packs/src/decidim/sw/sw.js +1 -1
  36. data/app/packs/src/decidim/utilities/text.js +6 -6
  37. data/app/packs/stylesheets/decidim/_conversations.scss +14 -0
  38. data/app/packs/stylesheets/decidim/_editor_suggestions.scss +49 -0
  39. data/app/packs/stylesheets/decidim/_floating_help.scss +1 -1
  40. data/app/packs/stylesheets/decidim/_tom_select.scss +23 -0
  41. data/app/packs/stylesheets/decidim/application.scss +2 -0
  42. data/app/packs/stylesheets/decidim/editor.scss +2 -33
  43. data/app/packs/stylesheets/decidim/geocoding_addons.scss +10 -2
  44. data/app/presenters/decidim/menu_item_presenter.rb +9 -3
  45. data/app/presenters/decidim/stats_presenter.rb +1 -1
  46. data/app/uploaders/decidim/image_uploader.rb +1 -1
  47. data/app/views/decidim/delete_user_mailer/delete.html.erb +6 -0
  48. data/app/views/decidim/gamification/badges/index.html.erb +1 -1
  49. data/app/views/decidim/homepage/show.html.erb +1 -1
  50. data/app/views/decidim/last_activities/index.html.erb +1 -1
  51. data/app/views/decidim/messaging/conversations/_error_modal.html.erb +11 -19
  52. data/app/views/decidim/messaging/conversations/error.js.erb +12 -7
  53. data/app/views/decidim/newsletters/unsubscribe.html.erb +1 -1
  54. data/app/views/decidim/offline/show.html.erb +1 -1
  55. data/app/views/decidim/pages/index.html.erb +1 -1
  56. data/app/views/decidim/profiles/show.html.erb +1 -1
  57. data/app/views/decidim/shared/_resource_actions.html.erb +4 -4
  58. data/app/views/decidim/user_activities/index.html.erb +1 -1
  59. data/app/views/layouts/decidim/_wrapper.html.erb +2 -2
  60. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +1 -1
  61. data/app/views/layouts/decidim/shared/_layout_center.html.erb +1 -1
  62. data/app/views/layouts/decidim/shared/_layout_item.html.erb +1 -1
  63. data/app/views/layouts/decidim/shared/_layout_two_col.html.erb +1 -1
  64. data/config/locales/ar.yml +0 -5
  65. data/config/locales/bg.yml +0 -6
  66. data/config/locales/ca-IT.yml +9 -10
  67. data/config/locales/ca.yml +9 -10
  68. data/config/locales/cs.yml +2 -13
  69. data/config/locales/de.yml +5 -17
  70. data/config/locales/el.yml +0 -4
  71. data/config/locales/en.yml +8 -9
  72. data/config/locales/es-MX.yml +8 -9
  73. data/config/locales/es-PY.yml +8 -9
  74. data/config/locales/es.yml +8 -9
  75. data/config/locales/eu.yml +48 -49
  76. data/config/locales/fi-plain.yml +9 -9
  77. data/config/locales/fi.yml +9 -9
  78. data/config/locales/fr-CA.yml +9 -9
  79. data/config/locales/fr.yml +9 -9
  80. data/config/locales/gl.yml +0 -3
  81. data/config/locales/hu.yml +0 -5
  82. data/config/locales/id-ID.yml +0 -3
  83. data/config/locales/it.yml +1 -3
  84. data/config/locales/ja.yml +24 -21
  85. data/config/locales/lb.yml +0 -5
  86. data/config/locales/lt.yml +0 -5
  87. data/config/locales/lv.yml +0 -3
  88. data/config/locales/nl.yml +0 -5
  89. data/config/locales/no.yml +0 -5
  90. data/config/locales/pl.yml +2 -8
  91. data/config/locales/pt-BR.yml +2 -15
  92. data/config/locales/pt.yml +0 -5
  93. data/config/locales/ro-RO.yml +1 -14
  94. data/config/locales/sk.yml +1 -14
  95. data/config/locales/sv.yml +2 -11
  96. data/config/locales/tr-TR.yml +0 -6
  97. data/config/locales/zh-CN.yml +0 -5
  98. data/config/locales/zh-TW.yml +0 -5
  99. data/lib/decidim/api/functions/user_entity_list.rb +2 -0
  100. data/lib/decidim/attachment_attributes.rb +58 -9
  101. data/lib/decidim/command.rb +1 -1
  102. data/lib/decidim/content_renderers/base_renderer.rb +112 -0
  103. data/lib/decidim/content_renderers/blob_renderer.rb +4 -7
  104. data/lib/decidim/content_renderers/mention_resource_renderer.rb +10 -6
  105. data/lib/decidim/content_renderers/resource_renderer.rb +16 -7
  106. data/lib/decidim/content_renderers/user_renderer.rb +11 -9
  107. data/lib/decidim/core/content_blocks/registry_manager.rb +4 -4
  108. data/lib/decidim/core/engine.rb +8 -0
  109. data/lib/decidim/core/test/factories.rb +3 -0
  110. data/lib/decidim/core/test/shared_examples/admin_resource_gallery_examples.rb +10 -10
  111. data/lib/decidim/core/test/shared_examples/comments_examples.rb +6 -6
  112. data/lib/decidim/core/version.rb +1 -1
  113. data/lib/decidim/map/autocomplete.rb +4 -3
  114. data/lib/decidim/searchable.rb +5 -0
  115. data/lib/decidim/view_model.rb +1 -1
  116. data/lib/tasks/decidim_mailers_tasks.rake +31 -9
  117. metadata +11 -10
  118. data/app/commands/decidim/gallery_methods.rb +0 -107
  119. data/app/packs/src/decidim/vendor/tribute.js +0 -1890
  120. data/app/packs/stylesheets/decidim/_tribute.scss +0 -36
  121. data/app/views/decidim/participants_account_mailer/removal_notification.html.erb +0 -11
@@ -88,6 +88,20 @@
88
88
  }
89
89
 
90
90
  &__modal {
91
+ &-error {
92
+ [data-dialog-closable] {
93
+ @apply top-6 right-6;
94
+ }
95
+
96
+ [data-dialog-container] {
97
+ @apply inline grid-cols-none;
98
+ }
99
+
100
+ [data-dialog-title] {
101
+ @apply col-span-2 md:col-span-1 md:col-start-2 grid grid-cols-[auto_1fr] items-start md:items-center gap-2 pb-4 text-left text-xl text-gray-2 md:border-b md:border-gray-3;
102
+ }
103
+ }
104
+
91
105
  &-results {
92
106
  @apply mb-20 flex flex-wrap gap-x-8 gap-y-4;
93
107
  }
@@ -0,0 +1,49 @@
1
+ .editor-suggestions-props {
2
+ --editor-suggestions-border-color: #000;
3
+ --editor-suggestions-background-color: #eee;
4
+ --editor-suggestions-selected-highlight-color: #ccc;
5
+ }
6
+
7
+ .editor-suggestions {
8
+ @apply editor-suggestions-props border-0 bg-[var(--editor-suggestions-background-color)] max-w-sm drop-shadow-md rounded-md;
9
+
10
+ &:hover {
11
+ .editor-suggestions-item[data-selected]:not(:hover) {
12
+ @apply bg-transparent;
13
+ }
14
+ }
15
+
16
+ .editor-suggestions-item {
17
+ @apply flex items-center gap-2 w-full text-left py-[0.375rem] px-1.5 border-0 rounded-none text-sm;
18
+
19
+ &:first-child {
20
+ @apply rounded-t-md;
21
+ }
22
+
23
+ &:last-child {
24
+ @apply rounded-b-md;
25
+ }
26
+
27
+ &:hover,
28
+ &[data-selected] {
29
+ @apply bg-[var(--editor-suggestions-selected-highlight-color)];
30
+ }
31
+
32
+ .editor-suggestions-item-avatar {
33
+ @apply rounded-full w-6 h-6 object-cover flex-none;
34
+ }
35
+
36
+ .editor-suggestions-item-label {
37
+ @apply truncate;
38
+ }
39
+ }
40
+
41
+ .editor-suggestions-item-disabled {
42
+ @apply cursor-default;
43
+
44
+ &:hover,
45
+ &[data-selected] {
46
+ @apply bg-transparent;
47
+ }
48
+ }
49
+ }
@@ -1,5 +1,5 @@
1
1
  [data-floating-help] {
2
- @apply absolute z-10 top-5 md:top-10 right-0 [&_button]:bg-background [&_button]:px-2 [&_button]:rounded-r-none [&_svg]:text-gray [&_svg]:fill-current;
2
+ @apply absolute z-10 top-20 md:top-10 right-0 [&_button]:bg-background [&_button]:px-2 [&_button]:rounded-r-none [&_svg]:text-gray [&_svg]:fill-current;
3
3
 
4
4
  &:hover {
5
5
  @apply [&_svg]:text-white [&_button]:text-white [&_button]:bg-secondary [&_button]:no-underline;
@@ -0,0 +1,23 @@
1
+ @use "tom-select/dist/scss/tom-select";
2
+
3
+ .ts {
4
+ &-control {
5
+ @apply border-gray text-md min-h-[40px];
6
+
7
+ input {
8
+ @apply font-normal text-black text-md;
9
+ }
10
+ }
11
+
12
+ &-dropdown {
13
+ @apply text-md text-gray-2 font-normal;
14
+
15
+ .option img {
16
+ @apply inline;
17
+ }
18
+
19
+ .active {
20
+ @apply bg-gray-3;
21
+ }
22
+ }
23
+ }
@@ -6,6 +6,8 @@
6
6
  // Datepicker
7
7
  @use "stylesheets/decidim/vendor/datepicker_light";
8
8
  @use "stylesheets/decidim/datepicker";
9
+ // TomSelect
10
+ @use "stylesheets/decidim/tom_select";
9
11
  // On the other hand, the following styles match with specific routes
10
12
  @use "stylesheets/decidim/header";
11
13
  @use "stylesheets/decidim/footer";
@@ -1,3 +1,5 @@
1
+ @use "stylesheets/decidim/editor_suggestions";
2
+
1
3
  .editor-props {
2
4
  --editor-active-color: #487bda;
3
5
  --editor-disabled-color: #eee;
@@ -5,12 +7,6 @@
5
7
  --editor-bubble-shadow-color: #333;
6
8
  }
7
9
 
8
- .editor-suggestions-props {
9
- --editor-suggestions-border-color: #000;
10
- --editor-suggestions-background-color: #eee;
11
- --editor-suggestions-selected-highlight-color: #ccc;
12
- }
13
-
14
10
  .editor-active {
15
11
  @apply outline outline-4 outline-[var(--editor-active-color)];
16
12
  }
@@ -186,30 +182,3 @@
186
182
  }
187
183
  }
188
184
  }
189
-
190
- .editor-suggestions {
191
- @apply editor-suggestions-props border-0 bg-[var(--editor-suggestions-background-color)] max-w-sm drop-shadow-md rounded-md;
192
-
193
- &:hover {
194
- .editor-suggestions-item[data-selected]:not(:hover) {
195
- @apply bg-transparent;
196
- }
197
- }
198
-
199
- .editor-suggestions-item {
200
- @apply block w-full text-left py-[0.375rem] px-1.5 border-0 rounded-none truncate text-sm;
201
-
202
- &:first-child {
203
- @apply rounded-t-md;
204
- }
205
-
206
- &:last-child {
207
- @apply rounded-b-md;
208
- }
209
-
210
- &:hover,
211
- &[data-selected] {
212
- @apply bg-[var(--editor-suggestions-selected-highlight-color)];
213
- }
214
- }
215
- }
@@ -1,5 +1,13 @@
1
- .geocoding-container {
2
- .user-device-location button {
1
+ .geocoding {
2
+ &__locate .geocoding__button {
3
3
  @apply mt-4;
4
+
5
+ &--locating {
6
+ @apply opacity-70 cursor-wait;
7
+ }
8
+
9
+ .geocoding__spinner {
10
+ @apply inline-block w-4 h-4 rounded-full animate-spin border-2 border-l-transparent border-y-transparent border-r-secondary align-middle;
11
+ }
4
12
  }
5
13
  }
@@ -29,9 +29,9 @@ module Decidim
29
29
  delegate :content_tag, :safe_join, :link_to, :active_link_to_class, :is_active_link?, :icon, to: :@view
30
30
 
31
31
  def render
32
- content_tag :li, role: menuitem_role, class: link_wrapper_classes do
32
+ content_tag :li, role: wrapper_role, class: link_wrapper_classes do
33
33
  output = if url == "#"
34
- [content_tag(:span, composed_label, class: "sidebar-menu__item-disabled")]
34
+ [content_tag(:span, composed_label, class: "sidebar-menu__item-disabled", role: menuitem_role)]
35
35
  else
36
36
  [link_to(composed_label, url, link_options)]
37
37
  end
@@ -52,7 +52,7 @@ module Decidim
52
52
  { aria: { current: "page" } }
53
53
  else
54
54
  {}
55
- end.merge({ class: link_classes })
55
+ end.merge({ class: link_classes, role: menuitem_role })
56
56
  end
57
57
 
58
58
  def composed_label
@@ -75,6 +75,12 @@ module Decidim
75
75
  @options.role || :menuitem
76
76
  end
77
77
 
78
+ def wrapper_role
79
+ return if menuitem_role.blank?
80
+
81
+ :presentation
82
+ end
83
+
78
84
  def active_class
79
85
  active_link_to_class(
80
86
  url,
@@ -15,7 +15,7 @@ module Decidim
15
15
  hash[name][:data][idx] += value
16
16
  end
17
17
  else
18
- hash[name] = stat
18
+ hash[name] = stat.merge(data: stat[:data].dup)
19
19
  end
20
20
  end.values
21
21
  end
@@ -8,7 +8,7 @@ module Decidim
8
8
  end
9
9
 
10
10
  def content_type_allowlist
11
- extension_allowlist.map { |ext| MiniMime.lookup_by_extension(ext).content_type }.uniq
11
+ extension_allowlist.filter_map { |ext| MiniMime.lookup_by_extension(ext)&.content_type }.uniq
12
12
  end
13
13
 
14
14
  # Fetches info about different variants, their processors and dimensions
@@ -0,0 +1,6 @@
1
+ <p class="email-greeting"><%= t(".hello", username: @user_name) %></p>
2
+
3
+ <p class="email-instructions"><%= t ".body_1" %></p>
4
+ <p class="email-instructions"><%= t ".body_2" %></p>
5
+
6
+ <p class="email-closing"><%= t(".greetings_html", organization_name: organization_name(@organization), organization_url: decidim.root_url(host: @organization.host)) %></p>
@@ -3,7 +3,7 @@
3
3
  description: t(".page_description")
4
4
  ) %>
5
5
 
6
- <main class="layout-1col cols-10">
6
+ <main class="layout-1col cols-10" role="main">
7
7
 
8
8
  <header class="text-center py-10">
9
9
  <h1 class="title-decorator inline-block text-left mb-12">
@@ -7,7 +7,7 @@
7
7
  )
8
8
  %>
9
9
 
10
- <main class="home">
10
+ <main class="home" role="main">
11
11
  <% Decidim::ContentBlock.published.for_scope(:homepage, organization: current_organization).each do |content_block| %>
12
12
  <% next unless content_block.manifest %>
13
13
 
@@ -1,7 +1,7 @@
1
1
  <% add_decidim_page_title(t("last_activity", scope: "decidim.last_activities.index")) %>
2
2
 
3
3
  <%# NOTE: this page does not use a regular layout %>
4
- <main class="container">
4
+ <main class="container" role="main">
5
5
  <h1 class="title-decorator my-12"><%= t("last_activity", scope: "decidim.last_activities.index") %></h1>
6
6
 
7
7
  <div class="profile__activity pb-16">
@@ -1,21 +1,13 @@
1
- <div id="messageErrorModal" data-reveal>
2
- <div>
3
- <h2><%= error %></h2>
4
- <button class="close-button" data-close aria-label="<%= t(".close") %>"
5
- type="button">
6
- <span aria-hidden="true">&times;</span>
7
- </button>
8
- </div>
9
- <div class="reveal__body">
10
- <p><%= t(".intro") %></p>
11
- <p>
12
- <%= messages.join("<br>") %>
13
- </p>
14
- <p><%= t(".correct_errors") %></p>
15
- </div>
16
- <div>
17
- <div>
18
- <a class="button" role="button" href="#" data-close aria-label="<%= t(".ok") %>"><%= t(".ok") %></a>
1
+ <%= decidim_modal id: "messageErrorModal", class: "conversation__modal-error" do %>
2
+ <div data-dialog-container>
3
+ <h2 id="dialog-title-messageErrorModal" tabindex="-1" data-dialog-title><%= error %></h2>
4
+ <div id="dialog-desc-messageErrorModal" class="mt-4">
5
+ <p><%= t(".intro") %></p>
6
+ <p><%= safe_join(messages, tag.br) %></p>
7
+ <p><%= t(".correct_errors") %></p>
8
+ </div>
9
+ <div data-dialog-actions>
10
+ <button type="button" class="button button__sm lg:button__lg button__secondary" data-dialog-close="messageErrorModal" aria-label="<%= t(".ok") %>"><%= t(".ok") %></button>
19
11
  </div>
20
12
  </div>
21
- </div>
13
+ <% end %>
@@ -1,10 +1,15 @@
1
- var $messageError = $("#messageErrorModal");
2
- if ($messageError.length > 0) {
3
- $messageError.foundation("_destroy").remove();
1
+ var messageError = document.getElementById("messageErrorModal")
2
+
3
+ if (messageError) {
4
+ messageError.remove();
4
5
  }
6
+ document.body.insertAdjacentHTML("beforeend", "<%= j(render "error_modal", error:, messages:).html_safe %>");
5
7
 
6
- $("#messages").append("<%= j(render "error_modal", error:, messages:).html_safe %>");
7
- $messageError = $("#messageErrorModal");
8
+ messageError = document.getElementById("messageErrorModal")
9
+ if (messageError) {
10
+ window.createDialog(messageError);
8
11
 
9
- var messageErrorReveal = new Foundation.Reveal($messageError);
10
- messageErrorReveal.open();
12
+ if (Decidim.currentDialogs.messageErrorModal) {
13
+ window.Decidim.currentDialogs.messageErrorModal.open();
14
+ }
15
+ }
@@ -1,4 +1,4 @@
1
- <main class="layout-1col cols-6">
1
+ <main class="layout-1col cols-6" role="main">
2
2
  <div class="text-center py-12">
3
3
  <h1 class="h1 decorator inline-block text-left"><%= t ".unsubscribe" %></h1>
4
4
  </div>
@@ -1,6 +1,6 @@
1
1
  <% add_decidim_page_title(t("decidim.offline.name")) %>
2
2
 
3
- <main id="offline-fallback-html" class="text-center my-8">
3
+ <main id="offline-fallback-html" class="text-center my-8" role="main">
4
4
  <div class="flex justify-center">
5
5
  <svg xmlns="http://www.w3.org/2000/svg" width="5rem" height="r5em" viewBox="0 0 25 25">
6
6
  <path
@@ -42,7 +42,7 @@ edit_link(
42
42
  <div id="accordion-panel-<%= ix %>" class="page__accordion-panel" aria-hidden="true">
43
43
  <ul role="menu">
44
44
  <% topic.pages.each do |page| %>
45
- <li role="menuitem"><%= link_to translated_attribute(page.title), page_path(page), class: "text-secondary" %></li>
45
+ <li role="presentation"><%= link_to translated_attribute(page.title), page_path(page), class: "text-secondary", role: "menuitem" %></li>
46
46
  <% end %>
47
47
  </ul>
48
48
  </div>
@@ -6,6 +6,6 @@
6
6
  <% end %>
7
7
 
8
8
  <%# NOTE: this page does not use a regular layout %>
9
- <main>
9
+ <main role="main">
10
10
  <%= cell "decidim/profile", profile_holder, context: { content_cell: @content_cell } %>
11
11
  </main>
@@ -12,12 +12,12 @@
12
12
  <ul class="dropdown dropdown__bottom divide-y divide-gray-3" role="menu">
13
13
  <%= yield %>
14
14
  <% unless defined?(skip_report) && skip_report %>
15
- <li role="menuitem" class="dropdown__item">
16
- <%= cell "decidim/report_button", resource, button_classes: "dropdown__button" %>
15
+ <li role="presentation" class="dropdown__item">
16
+ <%= cell "decidim/report_button", resource, button_classes: "dropdown__button", html_options: { role: "menuitem" } %>
17
17
  </li>
18
18
  <% end %>
19
- <li role="menuitem" class="dropdown__item">
20
- <%= cell "decidim/follow_button", resource, large: false, button_classes: "dropdown__button" %>
19
+ <li role="presentation" class="dropdown__item">
20
+ <%= cell "decidim/follow_button", resource, large: false, button_classes: "dropdown__button", html_options: { role: "menuitem" } %>
21
21
  </li>
22
22
  </ul>
23
23
  </div>
@@ -6,7 +6,7 @@
6
6
  <% end %>
7
7
 
8
8
  <%# NOTE: this page does not use a regular layout %>
9
- <main>
9
+ <main role="main">
10
10
  <%= cell "decidim/profile", user, context: {
11
11
  content_cell: "decidim/user_activity",
12
12
  activities:,
@@ -11,7 +11,7 @@ end
11
11
  %>
12
12
 
13
13
  <div class="layout-container">
14
- <header <%= "class=with-admin-bar" if current_user && allowed_to?(:read, :admin_dashboard) %>>
14
+ <header <%= "class=with-admin-bar" if current_user && allowed_to?(:read, :admin_dashboard) %> role="banner">
15
15
  <div id="sticky-header-container" data-controller="sticky-header">
16
16
  <%= render partial: "layouts/decidim/impersonation_warning" %>
17
17
  <%= render partial: "layouts/decidim/omnipresent_banner" %>
@@ -37,7 +37,7 @@ end
37
37
  <%= yield %>
38
38
  </div>
39
39
 
40
- <footer>
40
+ <footer role="contentinfo">
41
41
  <% if current_user&.ephemeral? || content_for?(:focus_mode) %>
42
42
  <%= render partial: "layouts/decidim/footer/focus_mode_main" %>
43
43
  <% else %>
@@ -2,7 +2,7 @@
2
2
  <div class="menu-bar__breadcrumb-mobile__dropdown-trigger">
3
3
  <span class="inline-block w-full overflow-hidden text-ellipsis align-middle">
4
4
  <% breadcrumb_items.last(2).each_with_index do |item, idx| %>
5
- <% item_label = decidim_escape_translated(item[:label]) %>
5
+ <% item_label = translated_attribute(item[:label]) %>
6
6
  <% if idx.positive? %>
7
7
  <span>/</span>
8
8
  <% end %>
@@ -10,6 +10,6 @@ css_class = case columns
10
10
  end
11
11
  %>
12
12
 
13
- <%= content_tag main_tag, class: "layout-1col #{css_class}" do %>
13
+ <%= content_tag main_tag, class: "layout-1col #{css_class}", role: (main_enabled ? "main" : nil) do %>
14
14
  <%= yield %>
15
15
  <% end %>
@@ -2,7 +2,7 @@
2
2
  <%= yield :item_header %>
3
3
  </div>
4
4
  <div class="<%= layout_item_classes %>">
5
- <main class="layout-item__main">
5
+ <main class="layout-item__main" role="main">
6
6
  <% if params[:included_in] %>
7
7
  <%= render partial: "layouts/decidim/shared/linked_resource" %>
8
8
  <% end %>
@@ -7,7 +7,7 @@
7
7
  <%= yield :aside %>
8
8
  </aside>
9
9
  <% main_tag = main_enabled ? :main : :div %>
10
- <%= content_tag main_tag, class: "layout-2col__main" do %>
10
+ <%= content_tag main_tag, class: "layout-2col__main", role: (main_enabled ? "main" : nil) do %>
11
11
  <%= content_for :flash_messages %>
12
12
  <%= yield %>
13
13
  <% end %>
@@ -293,9 +293,6 @@ ar:
293
293
  update_draft:
294
294
  error: حدثت هناك مشكلة أثناء تحديث مسودة التعديل.
295
295
  success: تم تحديث مسودة التعديل بنجاح.
296
- wizard_step_form:
297
- steps:
298
- '1': إنشاء التعديل الخاص بك
299
296
  anonymous_user: مجهول
300
297
  application:
301
298
  document:
@@ -410,7 +407,6 @@ ar:
410
407
  global:
411
408
  amendments_enabled: تم تمكين التعديلات
412
409
  comments_enabled: تم تمكين التعليقات
413
- comments_max_length: الحد الأقصى لطول التعليقات
414
410
  dummy_global_attribute1: السمة الدمية 1
415
411
  dummy_global_attribute2: السمة الدمية 2
416
412
  dummy_global_translatable_text: نص افتراضي قابل للترجمة
@@ -813,7 +809,6 @@ ar:
813
809
  modal_title: محادثة جديدة
814
810
  no_results: لا توجد نتائج
815
811
  error_modal:
816
- close: اغلاق النموذج
817
812
  correct_errors: يرجى تصحيح الأخطاء والمحاولة مرة أخرى.
818
813
  intro: 'حدثت الأخطاء التالية في رسالتك:'
819
814
  ok: حسناً
@@ -337,10 +337,6 @@ bg:
337
337
  success: Черновата на поправка е успешно обновена.
338
338
  withdraw:
339
339
  success: Изменението беше оттеглено успешно.
340
- wizard_step_form:
341
- steps:
342
- '1': Създайте Ваша поправка
343
- '2': Публикувайте своето изменение
344
340
  anonymous_user: Анонимен
345
341
  application:
346
342
  document:
@@ -462,7 +458,6 @@ bg:
462
458
  global:
463
459
  amendments_enabled: Поправки разрешени
464
460
  comments_enabled: Коментари разрешени
465
- comments_max_length: Максимална дължина на коментарите
466
461
  dummy_global_attribute1: Макетен атрибут 1
467
462
  dummy_global_attribute2: Макетен атрибут 2
468
463
  dummy_global_translatable_text: Макетен преводим текст
@@ -934,7 +929,6 @@ bg:
934
929
  create:
935
930
  error: Разговора не започна. Опитайте по-късно.
936
931
  error_modal:
937
- close: Затвори прозореца
938
932
  correct_errors: Моля, коригирайте грешките и опитайте отново.
939
933
  intro: 'Имаше следните грешки с вашето съобщение:'
940
934
  ok: ОК
@@ -554,7 +554,7 @@ ca-IT:
554
554
  global:
555
555
  amendments_enabled: Esmenes habilitades
556
556
  comments_enabled: Comentaris habilitats
557
- comments_max_length: Longitud màxima dels comentaris
557
+ comments_max_length: Caràcters màxims per comentari
558
558
  define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
559
559
  dummy_global_attribute1: Atribut de prova 1
560
560
  dummy_global_attribute2: Atribut de prova 2
@@ -661,6 +661,13 @@ ca-IT:
661
661
  all: Tots
662
662
  filter_taxonomy_values:
663
663
  all: Totes
664
+ delete_user_mailer:
665
+ delete:
666
+ body_1: El teu compte s'ha desactivat i ja no és accessible. Les teves dades personals estan programades per eliminar-les permanentment d'acord amb les nostres polítiques de retenció de dades.
667
+ body_2: Per raons de seguretat, es conservaran algunes dades relacionades amb la verificació; d'aquesta manera si creessis un compte nou i el tornes a verificar, es podria vincular l'autorització amb aquest compte nou.
668
+ greetings_html: Atentament,<br/><a href="%{organization_url}">%{organization_name}</a>
669
+ hello: Hola %{username},
670
+ subject: El teu compte ha estat eliminat
664
671
  devise:
665
672
  omniauth_registrations:
666
673
  create:
@@ -1175,7 +1182,7 @@ ca-IT:
1175
1182
  taxonomy_presenter:
1176
1183
  not_found: 'No s''ha trobat la taxonomia a la base de dades (ID: %{id})'
1177
1184
  machine_translations:
1178
- automatic: traducció automàtica a %{locale_name}
1185
+ automatic: traducció automàtica a %{locale_name}
1179
1186
  managed_users:
1180
1187
  expired_session: La sessió actual d'administració d'una participant ha caducat.
1181
1188
  map:
@@ -1212,7 +1219,6 @@ ca-IT:
1212
1219
  create:
1213
1220
  error: No s'ha iniciat la conversa. Torna-ho a provar més tard.
1214
1221
  error_modal:
1215
- close: Tanca la finestra
1216
1222
  correct_errors: Si us plau, corregiu els errors i torneu-ho a intentar.
1217
1223
  intro: 'Hi ha els següents errors al vostre missatge:'
1218
1224
  ok: D'acord
@@ -1524,13 +1530,6 @@ ca-IT:
1524
1530
  log_in: entra
1525
1531
  never_logged_in: mai ha iniciat sessió
1526
1532
  subject: Avís de compte inactiu
1527
- removal_notification:
1528
- body: El teu compte a %{organization_name} s'ha eliminat per inactivitat.
1529
- greetings_html: |
1530
- Atentament,<br>
1531
- %{organization_name}
1532
- hello: Benvolgut/da %{username},
1533
- subject: Avís de compte inactiu
1534
1533
  passwords:
1535
1534
  update:
1536
1535
  error: Hi ha hagut un problema en actualitzar la contrasenya.
@@ -554,7 +554,7 @@ ca:
554
554
  global:
555
555
  amendments_enabled: Esmenes habilitades
556
556
  comments_enabled: Comentaris habilitats
557
- comments_max_length: Longitud màxima dels comentaris
557
+ comments_max_length: Caràcters màxims per comentari
558
558
  define_taxonomy_filters: Si us plau, defineix algunes filtres per aquest espai de participació abans de fer servir aquesta configuració.
559
559
  dummy_global_attribute1: Atribut de prova 1
560
560
  dummy_global_attribute2: Atribut de prova 2
@@ -661,6 +661,13 @@ ca:
661
661
  all: Tots
662
662
  filter_taxonomy_values:
663
663
  all: Totes
664
+ delete_user_mailer:
665
+ delete:
666
+ body_1: El teu compte s'ha desactivat i ja no és accessible. Les teves dades personals estan programades per eliminar-les permanentment d'acord amb les nostres polítiques de retenció de dades.
667
+ body_2: Per raons de seguretat, es conservaran algunes dades relacionades amb la verificació; d'aquesta manera si creessis un compte nou i el tornes a verificar, es podria vincular l'autorització amb aquest compte nou.
668
+ greetings_html: Atentament,<br/><a href="%{organization_url}">%{organization_name}</a>
669
+ hello: Hola %{username},
670
+ subject: El teu compte ha estat eliminat
664
671
  devise:
665
672
  omniauth_registrations:
666
673
  create:
@@ -1212,7 +1219,6 @@ ca:
1212
1219
  create:
1213
1220
  error: No s'ha iniciat la conversa. Torna-ho a provar més tard.
1214
1221
  error_modal:
1215
- close: Tanca la finestra
1216
1222
  correct_errors: Si us plau, corregiu els errors i torneu-ho a intentar.
1217
1223
  intro: 'Hi ha els següents errors al vostre missatge:'
1218
1224
  ok: D'acord
@@ -1524,13 +1530,6 @@ ca:
1524
1530
  log_in: entra
1525
1531
  never_logged_in: mai ha iniciat sessió
1526
1532
  subject: Avís de compte inactiu
1527
- removal_notification:
1528
- body: El teu compte a %{organization_name} s'ha eliminat per inactivitat.
1529
- greetings_html: |
1530
- Atentament,<br>
1531
- %{organization_name}
1532
- hello: Benvolgut/da %{username},
1533
- subject: Avís de compte inactiu
1534
1533
  passwords:
1535
1534
  update:
1536
1535
  error: Hi ha hagut un problema en actualitzar la contrasenya.
@@ -1858,7 +1857,7 @@ ca:
1858
1857
  invite_collaborator:
1859
1858
  subject: T'han convidat a col·laborar a %{organization}
1860
1859
  invite_private_user:
1861
- subject: T'han convidat a participar en un espai de participació privat a%{organization}
1860
+ subject: T'han convidat a participar en un espai de participació privat a %{organization}
1862
1861
  organization_admin_invitation_instructions:
1863
1862
  subject: T'han convidat a administrar %{organization}
1864
1863
  password_change: