decidim-core 0.30.0.rc3 → 0.30.1

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/address/show.erb +3 -3
  3. data/app/cells/decidim/author/show.erb +1 -1
  4. data/app/cells/decidim/content_blocks/participatory_space_extra_data/extra_data.erb +2 -2
  5. data/app/cells/decidim/participatory_space_dropdown_metadata/metadata.erb +4 -4
  6. data/app/cells/decidim/participatory_space_dropdown_metadata/show.erb +5 -3
  7. data/app/commands/decidim/create_report.rb +6 -7
  8. data/app/commands/decidim/invite_user.rb +1 -1
  9. data/app/commands/decidim/search.rb +14 -0
  10. data/app/controllers/concerns/decidim/participatory_space_context.rb +4 -1
  11. data/app/controllers/decidim/reports_controller.rb +7 -2
  12. data/app/forms/decidim/account_form.rb +4 -1
  13. data/app/forms/decidim/ephemeral_user_form.rb +1 -1
  14. data/app/forms/decidim/omniauth_registration_form.rb +1 -1
  15. data/app/forms/decidim/registration_form.rb +1 -1
  16. data/app/helpers/decidim/menu_helper.rb +2 -2
  17. data/app/helpers/decidim/paginate_helper.rb +1 -1
  18. data/app/helpers/decidim/tooltip_helper.rb +4 -1
  19. data/app/mailers/decidim/notifications_digest_mailer.rb +7 -1
  20. data/app/mailers/decidim/reported_mailer.rb +18 -2
  21. data/app/models/decidim/action_log.rb +1 -9
  22. data/app/packs/src/decidim/datepicker/datepicker_functions.js +3 -3
  23. data/app/packs/src/decidim/index.js +4 -2
  24. data/app/packs/src/decidim/input_character_counter.js +1 -1
  25. data/app/packs/stylesheets/decidim/_cards.scss +1 -1
  26. data/app/packs/stylesheets/decidim/_content_blocks.scss +4 -0
  27. data/app/packs/stylesheets/decidim/_header.scss +60 -37
  28. data/app/packs/stylesheets/decidim/resource_history.scss +14 -4
  29. data/app/permissions/decidim/default_permissions.rb +2 -0
  30. data/app/presenters/decidim/log/user_presenter.rb +1 -0
  31. data/app/presenters/decidim/notification_to_mailer_presenter.rb +7 -3
  32. data/app/presenters/decidim/user_presenter.rb +1 -1
  33. data/app/queries/decidim/last_activity.rb +25 -0
  34. data/app/services/decidim/base_diff_renderer.rb +2 -0
  35. data/app/views/decidim/messaging/conversations/_reply_form.html.erb +1 -2
  36. data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
  37. data/app/views/decidim/reported_mailer/hidden_automatically.html.erb +25 -0
  38. data/app/views/decidim/reported_mailer/hidden_manually.html.erb +25 -0
  39. data/app/views/decidim/reported_mailer/report.html.erb +1 -1
  40. data/app/views/decidim/searches/_count.html.erb +1 -1
  41. data/app/views/decidim/searches/_filters.html.erb +40 -38
  42. data/app/views/decidim/shared/_results_per_page.html.erb +1 -1
  43. data/app/views/kaminari/decidim/_page.html.erb +1 -1
  44. data/app/views/kaminari/decidim/_paginator.html.erb +1 -1
  45. data/app/views/layouts/decidim/_logo.html.erb +2 -2
  46. data/app/views/layouts/decidim/footer/_main_legal.html.erb +1 -1
  47. data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_desktop.html.erb +5 -11
  48. data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +5 -5
  49. data/config/locales/ar.yml +3 -10
  50. data/config/locales/bg.yml +2 -9
  51. data/config/locales/bs-BA.yml +2 -0
  52. data/config/locales/ca-IT.yml +2411 -0
  53. data/config/locales/ca.yml +36 -3
  54. data/config/locales/cs.yml +33 -14
  55. data/config/locales/de.yml +39 -15
  56. data/config/locales/el.yml +2 -9
  57. data/config/locales/en.yml +34 -1
  58. data/config/locales/es-MX.yml +38 -5
  59. data/config/locales/es-PY.yml +38 -5
  60. data/config/locales/es.yml +35 -2
  61. data/config/locales/eu.yml +68 -35
  62. data/config/locales/fi-plain.yml +4 -18
  63. data/config/locales/fi.yml +4 -18
  64. data/config/locales/fr-CA.yml +30 -12
  65. data/config/locales/fr.yml +29 -11
  66. data/config/locales/ga-IE.yml +2 -0
  67. data/config/locales/gl.yml +3 -6
  68. data/config/locales/hu.yml +2 -9
  69. data/config/locales/id-ID.yml +2 -7
  70. data/config/locales/is-IS.yml +0 -5
  71. data/config/locales/it.yml +12 -11
  72. data/config/locales/ja.yml +87 -23
  73. data/config/locales/lb.yml +5 -8
  74. data/config/locales/lt.yml +0 -7
  75. data/config/locales/lv.yml +2 -7
  76. data/config/locales/nl.yml +2 -5
  77. data/config/locales/no.yml +2 -5
  78. data/config/locales/pl.yml +2 -9
  79. data/config/locales/pt-BR.yml +3 -10
  80. data/config/locales/pt.yml +2 -5
  81. data/config/locales/ro-RO.yml +165 -7
  82. data/config/locales/ru.yml +0 -5
  83. data/config/locales/sk.yml +2 -7
  84. data/config/locales/sr-CS.yml +2 -0
  85. data/config/locales/sv.yml +54 -12
  86. data/config/locales/tr-TR.yml +3 -8
  87. data/config/locales/uk.yml +0 -5
  88. data/config/locales/zh-CN.yml +2 -7
  89. data/config/locales/zh-TW.yml +2 -7
  90. data/db/migrate/20171212103803_create_unique_nicknames.rb +1 -1
  91. data/db/migrate/20180221101934_fix_nickname_index.rb +1 -1
  92. data/db/migrate/20180706104107_add_nickname_to_managed_users.rb +1 -1
  93. data/db/migrate/20181001124950_move_users_groups_to_users_table.rb +1 -1
  94. data/db/migrate/20190412131728_fix_user_names.rb +1 -1
  95. data/lib/decidim/asset_router/storage.rb +7 -2
  96. data/lib/decidim/attributes/time_with_zone.rb +5 -1
  97. data/lib/decidim/content_parsers/blob_parser.rb +10 -8
  98. data/lib/decidim/core/test/factories.rb +12 -0
  99. data/lib/decidim/core/test/shared_examples/map_examples.rb +2 -2
  100. data/lib/decidim/core/test/shared_examples/reports_examples.rb +8 -15
  101. data/lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb +26 -0
  102. data/lib/decidim/core/test/shared_examples/versions_controller_examples.rb +26 -0
  103. data/lib/decidim/core/version.rb +1 -1
  104. data/lib/decidim/moderation_tools.rb +14 -8
  105. data/lib/decidim/nicknamizable.rb +6 -9
  106. data/lib/decidim/participatory_space_user.rb +1 -3
  107. data/lib/decidim/private_download_helper.rb +3 -3
  108. data/lib/decidim/reportable.rb +6 -2
  109. data/lib/decidim/translatable_attributes.rb +5 -1
  110. data/lib/tasks/upgrade/clean.rake +9 -1
  111. data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +4 -4
  112. data/lib/tasks/upgrade/migrations.rake +2 -0
  113. metadata +9 -8
  114. data/app/views/decidim/reported_mailer/hide.html.erb +0 -9
  115. data/lib/tasks/upgrade/clean_hidden_resources.rake +0 -33
@@ -37,7 +37,7 @@ module Decidim
37
37
  return default_avatar_url if __getobj__.blocked?
38
38
  return default_avatar_url unless avatar.attached?
39
39
 
40
- avatar.path(variant:)
40
+ avatar.url(variant:)
41
41
  end
42
42
 
43
43
  def default_avatar_url
@@ -18,6 +18,7 @@ module Decidim
18
18
  query = filter_moderated(query)
19
19
  query = filter_spaces(query)
20
20
  query = filter_deleted(query)
21
+ query = filter_withdrawn(query)
21
22
  query.with_new_resource_type("all")
22
23
  end
23
24
  end
@@ -48,6 +49,30 @@ module Decidim
48
49
  ).where(decidim_moderations: { id: nil })
49
50
  end
50
51
 
52
+ def filter_withdrawn(query)
53
+ # Filter out the items that have been withdrawn.
54
+ conditions = []
55
+
56
+ ActionLog.public_resource_types.each do |resource_type|
57
+ klass = resource_type.constantize
58
+
59
+ condition = if klass.respond_to?(:not_withdrawn)
60
+ Arel.sql(
61
+ [
62
+ "decidim_action_logs.resource_type = '#{resource_type}'",
63
+ "decidim_action_logs.resource_id IN (#{Arel.sql(klass.not_withdrawn.select(:id).to_sql)})"
64
+ ].join(" AND ")
65
+ ).to_s
66
+ else
67
+ Arel.sql("decidim_action_logs.resource_type = '#{resource_type}'").to_s
68
+ end
69
+
70
+ conditions << "(#{condition})"
71
+ end
72
+
73
+ query.where(Arel.sql(conditions.join(" OR ")).to_s)
74
+ end
75
+
51
76
  def filter_spaces(query)
52
77
  conditions = []
53
78
 
@@ -41,6 +41,8 @@ module Decidim
41
41
  end
42
42
 
43
43
  def parse_i18n_changeset(attribute, values, type, diff)
44
+ return diff unless values.last.is_a?(Hash)
45
+
44
46
  (values.last.keys - ["machine_translations"]).each do |locale, _value|
45
47
  first_value = values.first.try(:[], locale)
46
48
  last_value = values.last.try(:[], locale)
@@ -1,8 +1,7 @@
1
1
  <div data-conversation-reply>
2
2
  <%= decidim_form_for form, url: decidim.conversation_path(conversation.id), method: :put, remote: true do |f| %>
3
3
  <div class="conversation__reply">
4
- <%= f.label :body, nil, class: "sr-only" %>
5
- <%= f.text_area :body, label: false, rows: 4, required: true, placeholder: t(".placeholder"), data: { "input-emoji": true } %>
4
+ <%= f.text_area :body, label: false, rows: 4, required: true, placeholder: t(".placeholder"), data: { "input-emoji": true }, aria: { label: t(".placeholder") } %>
6
5
  <%= f.submit "#{t(".send")} #{icon "arrow-right-line", class: "fill-current"}".html_safe, class: "button button__sm button__secondary self-end mt-4" %>
7
6
  </div>
8
7
  <% end %>
@@ -5,7 +5,7 @@
5
5
  <%= f.hidden_field :recipient_id, id: nil, name: "conversation[recipient_id][]", value: recipient.id %>
6
6
  <% end %>
7
7
  <%= f.label :body, nil, class: "sr-only" %>
8
- <%= f.text_area :body, label: false, rows: 4, required: true, placeholder: t(".placeholder"), data: { "input-emoji": true } %>
8
+ <%= f.text_area :body, label: false, rows: 4, required: true, placeholder: t(".placeholder"), data: { "input-emoji": true }, aria: { label: t(".placeholder") } %>
9
9
  <%= f.submit "#{t(".send")} #{icon "arrow-right-line", class: "fill-current"}".html_safe, class: "button button__sm button__secondary self-end mt-4" %>
10
10
  </div>
11
11
  <% end %>
@@ -0,0 +1,25 @@
1
+ <p class="email-greeting"><%= t(".hello", name: @user.name) %></p>
2
+
3
+ <p class="email-instructions">
4
+ <%= t(".report_html", url: report_url ) %>
5
+ </p>
6
+
7
+ <p><b><%= t(".participatory_space") %></b></p>
8
+ <p><%= link_to translated_attribute(@participatory_space.title), resource_locator(@participatory_space).url %></p>
9
+
10
+ <p><b><%= t(".reason") %></b></p>
11
+ <p><%= t(@report.reason, organization_name: organization_name(@participatory_space.organization), scope: "decidim.shared.flag_modal") %></p>
12
+
13
+ <% if @report.details.present? %>
14
+ <p><b><%= t(".details") %></b></p>
15
+ <blockquote>
16
+ <%= @report.details %>
17
+ </blockquote>
18
+ <% end %>
19
+
20
+ <p><b><%= t(".content") %></b></p>
21
+ <%= reported_content_cell %>
22
+
23
+ <p class="email-button email-button__cta">
24
+ <%= link_to t(".manage_moderations"), manage_moderations_url %>
25
+ </p>
@@ -0,0 +1,25 @@
1
+ <p class="email-greeting"><%= t(".hello", name: @user.name) %></p>
2
+
3
+ <p class="email-instructions">
4
+ <%= t(".report_html", url: reported_content_url, moderator: @moderator.name) %>
5
+ </p>
6
+
7
+ <p><b><%= t(".participatory_space") %></b></p>
8
+ <p><%= link_to translated_attribute(@participatory_space.title), resource_locator(@participatory_space).url %></p>
9
+
10
+ <p><b><%= t(".reason") %></b></p>
11
+ <p><%= t(@report.reason, organization_name: organization_name(@participatory_space.organization), scope: "decidim.shared.flag_modal") %></p>
12
+
13
+ <% if @report.details.present? %>
14
+ <p><b><%= t(".details") %></b></p>
15
+ <blockquote>
16
+ <%= @report.details %>
17
+ </blockquote>
18
+ <% end %>
19
+
20
+ <p><b><%= t(".content") %></b></p>
21
+ <%= reported_content_cell %>
22
+
23
+ <p class="email-button email-button__cta">
24
+ <%= link_to t(".manage_moderations"), manage_moderations_url %>
25
+ </p>
@@ -1,7 +1,7 @@
1
1
  <p class="email-greeting"><%= t(".hello", name: @user.name) %></p>
2
2
 
3
3
  <p class="email-instructions">
4
- <%= t(".report_html", url: reported_content_url) %>
4
+ <%= t(".report_html", url: report_url) %>
5
5
  </p>
6
6
 
7
7
  <br>
@@ -15,6 +15,6 @@
15
15
  <% end %>
16
16
  </div>
17
17
 
18
- <h1 class="h3 decorator mb-10 md:my-10">
18
+ <h1 id="search-results-title" class="h3 decorator mb-10 md:my-10">
19
19
  <%= t("decidim.search.results_found_for_term", count: @results_count, term:) %>
20
20
  </h1>
@@ -1,44 +1,46 @@
1
- <div class="filter-container search__filter">
2
- <button id="dropdown-trigger-search" data-component="dropdown" data-target="dropdown-menu-search" data-auto-close="true">
3
- <%= content_tag :span, t("decidim.searches.filters_small_view.filter_by"), class: "#{"is-active" if params.dig(:filter, :with_resource_type) == nil}" %>
4
- <% @blocks.each do |elements| %>
5
- <% elements.each do |type, results| %>
6
- <%= content_tag :span, class: "#{"is-active" if params.dig(:filter, :with_resource_type) == type}" do %>
7
- <span><%= searchable_resource_human_name(type) %></span>
1
+ <nav role="navigation" aria-labelledby="search-results-title">
2
+ <div class="filter-container search__filter">
3
+ <button id="dropdown-trigger-search" data-component="dropdown" data-target="dropdown-menu-search" data-auto-close="true">
4
+ <%= content_tag :span, t("decidim.searches.filters_small_view.filter_by"), class: "#{"is-active" if params.dig(:filter, :with_resource_type) == nil}" %>
5
+ <% @blocks.each do |elements| %>
6
+ <% elements.each do |type, results| %>
7
+ <%= content_tag :span, class: "#{"is-active" if params.dig(:filter, :with_resource_type) == type}" do %>
8
+ <span><%= searchable_resource_human_name(type) %></span>
9
+ <% end %>
8
10
  <% end %>
9
11
  <% end %>
10
- <% end %>
11
- <%= icon "arrow-down-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
12
- <%= icon "arrow-up-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
13
- </button>
14
- <div id="dropdown-menu-search" aria-hidden="true">
15
- <div>
16
- <%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}" do %>
17
- <%= resource_type_icon("all") %>
18
- <span><%= t("all", scope: "decidim.searches.filters.state") %></span>
19
- <span class="label ml-auto"><%= @results_count %></span>
20
- <% end %>
21
- </div>
22
- <% @blocks.each do |elements| %>
12
+ <%= icon "arrow-down-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
13
+ <%= icon "arrow-up-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
14
+ </button>
15
+ <div id="dropdown-menu-search" aria-hidden="true">
23
16
  <div>
24
- <% elements.each do |type, results| %>
25
- <div>
26
- <% if results[:count].positive? %>
27
- <%= link_to search_path_by_resource_type(type), class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == type}" do %>
28
- <%= resource_type_icon(type) %>
29
- <span><%= searchable_resource_human_name(type) %></span>
30
- <span class="label ml-auto"><%= results[:count] %></span>
31
- <% end %>
32
- <% else %>
33
- <%= content_tag :div, class: "filter#{" is-empty" if results[:count].zero?}" do %>
34
- <%= resource_type_icon(type) %>
35
- <span><%= searchable_resource_human_name(type) %></span>
36
- <span class="label ml-auto"><%= results[:count] %></span>
37
- <% end %>
38
- <% end %>
39
- </div>
17
+ <%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}" do %>
18
+ <%= resource_type_icon("all") %>
19
+ <span><%= t("all", scope: "decidim.searches.filters.state") %></span>
20
+ <span class="label ml-auto"><%= @results_count %></span>
40
21
  <% end %>
41
22
  </div>
42
- <% end %>
23
+ <% @blocks.each do |elements| %>
24
+ <div>
25
+ <% elements.each do |type, results| %>
26
+ <div>
27
+ <% if results[:count].positive? %>
28
+ <%= link_to search_path_by_resource_type(type), class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == type}" do %>
29
+ <%= resource_type_icon(type) %>
30
+ <span><%= searchable_resource_human_name(type) %></span>
31
+ <span class="label ml-auto"><%= results[:count] %></span>
32
+ <% end %>
33
+ <% else %>
34
+ <%= content_tag :div, class: "filter#{" is-empty" if results[:count].zero?}" do %>
35
+ <%= resource_type_icon(type) %>
36
+ <span><%= searchable_resource_human_name(type) %></span>
37
+ <span class="label ml-auto"><%= results[:count] %></span>
38
+ <% end %>
39
+ <% end %>
40
+ </div>
41
+ <% end %>
42
+ </div>
43
+ <% end %>
44
+ </div>
43
45
  </div>
44
- </div>
46
+ </nav>
@@ -1,7 +1,7 @@
1
1
  <% menu_id = "#{SecureRandom.uuid}_results_per_page_menu" %>
2
2
  <div class="flex items-center gap-1">
3
3
  <%= icon "list-check-2", class: "w-4 h-4 text-gray fill-current" %>
4
- <span class="text-gray-2"><%= t("decidim.shared.results_per_page.label") %></span>
4
+ <p class="text-gray-2"><%= t("decidim.shared.results_per_page.label") %></p>
5
5
 
6
6
  <details class="relative">
7
7
  <summary id="<%= menu_id %>-control" class="flex items-center cursor-pointer text-secondary font-semibold" aria-controls="<%= menu_id %>" aria-haspopup="menu" title="<%= t("decidim.shared.results_per_page.title") %>">
@@ -6,6 +6,6 @@
6
6
  total_pages: total number of pages
7
7
  per_page: number of items to fetch per page
8
8
  remote: data-remote -%>
9
- <li class="w-6 h-6 rounded-full hover:bg-background-3 transition<%= "mx-2 bg-background-3 grid place-items-center" if page.current? %>" <%== 'aria-current="page"' if page.current? %> data-page>
9
+ <li class="w-6 h-6 px-2 rounded-full hover:bg-background-3 transition min-w-fit <%= "bg-background-3 grid place-items-center" if page.current? %>" <%== 'aria-current="page"' if page.current? %> data-page>
10
10
  <%= link_to_unless page.current?, page, url, { class: "w-full h-full grid place-items-center", remote:, rel: page.rel, title: t("views.pagination.title") << page.to_s } %>
11
11
  </li>
@@ -8,7 +8,7 @@ paginator: the paginator that renders the pagination tags inside -%>
8
8
 
9
9
  <% if total_pages > 1 %>
10
10
  <nav aria-label="<%= t("views.pagination.pagination") %>">
11
- <ul class="flex items-center text-sm text-secondary" data-pages>
11
+ <ul class="flex flex-wrap items-center text-sm text-secondary gap-x-1" data-pages>
12
12
  <%= paginator.prev_page_tag unless current_page.first? %>
13
13
 
14
14
  <% paginator.each_page do |page| -%>
@@ -1,7 +1,7 @@
1
1
  <% if organization %>
2
- <%= link_to root_url, "aria-label": t("front_page_link", scope: "decidim.accessibility") do %>
2
+ <%= link_to root_url do %>
3
3
  <% if organization.logo.attached? %>
4
- <%= image_tag organization.attached_uploader(:logo).variant_url(:medium), alt: t("logo", scope: "decidim.accessibility", organization: current_organization_name) %>
4
+ <%= image_tag organization.attached_uploader(:logo).variant_url(:medium), alt: "#{current_organization_name} (#{t("decidim.errors.not_found.back_home")})" %>
5
5
  <% else %>
6
6
  <span><%= current_organization_name %></span>
7
7
  <% end %>
@@ -3,6 +3,6 @@
3
3
  <%= link_to t("layouts.decidim.footer.terms_of_service"), decidim.page_path("terms-of-service") %>
4
4
  </li>
5
5
  <li>
6
- <a href="#" data-dialog-open="dc-modal"><%= t("layouts.decidim.footer.data_consent_settings") %></a>
6
+ <a href="#" role="button" data-dialog-open="dc-modal"><%= t("layouts.decidim.footer.data_consent_settings") %></a>
7
7
  </li>
8
8
  </ul>
@@ -1,16 +1,10 @@
1
1
  <div id="<%= id %>" class="menu-bar__main-dropdown">
2
- <div class="menu-bar__main-dropdown__top">
3
- <div class="menu-bar__main-dropdown__top-left">
2
+ <div class="menu-bar__main-dropdown__left">
3
+ <div class="menu-bar__main-dropdown__left-top">
4
4
  <%= render partial: "layouts/decidim/header/menu_breadcrumb_main_dropdown_top_left" %>
5
5
  </div>
6
- <%= breadcrumb_root_menu.render %>
7
- </div>
8
- <div class="menu-bar__main-dropdown__bottom">
9
- <div class="menu-bar__main-dropdown__bottom-left">
10
- <%= cell("decidim/highlighted_participatory_process", menu_highlighted_participatory_process) %>
11
- </div>
12
- <div class="menu-bar__main-dropdown__bottom-right">
13
- <%= cell "decidim/content_blocks/menu_breadcrumb_last_activity", current_organization %>
14
- </div>
6
+ <%= cell("decidim/highlighted_participatory_process", menu_highlighted_participatory_process) %>
7
+ <%= cell "decidim/content_blocks/menu_breadcrumb_last_activity", current_organization %>
15
8
  </div>
9
+ <%= breadcrumb_root_menu.render %>
16
10
  </div>
@@ -1,12 +1,12 @@
1
1
  <% dropdown_item = breadcrumb_items.select { |item| item[:dropdown_cell].present? }.last %>
2
2
  <div class="menu-bar__breadcrumb-mobile__dropdown-trigger">
3
- <span>
4
- <% breadcrumb_items.last(2).each_with_index do |item, i| %>
5
- <% item_label = decidim_escape_translated(item[:label]).html_safe %>
6
- <% if i.positive? %>
3
+ <span class="inline-block w-full overflow-hidden text-ellipsis align-middle">
4
+ <% breadcrumb_items.last(2).each_with_index do |item, idx| %>
5
+ <% item_label = decidim_escape_translated(item[:label]) %>
6
+ <% if idx.positive? %>
7
7
  <span>/</span>
8
8
  <% end %>
9
- <span class="cursor-pointer <%= "truncate" if i.positive? %>" <%== 'aria-current="page"' if item[:active] %>>
9
+ <span class="cursor-pointer truncate" <%== 'aria-current="page"' if item[:active] %>>
10
10
  <% if item[:url].present? && !is_active_link?(item[:url], :exclusive) %>
11
11
  <%= link_to(item_label, item[:url]) %>
12
12
  <% else %>
@@ -488,7 +488,7 @@ ar:
488
488
  metrics:
489
489
  name: مقاييس المنظمة
490
490
  participatory_space_metrics:
491
- name: المقاييس
491
+ name: المشاركة في الأرقام
492
492
  participatory_space_stats:
493
493
  name: الإحصائيات
494
494
  social_networks_metadata:
@@ -556,8 +556,6 @@ ar:
556
556
  ready: جاهز
557
557
  editor_images:
558
558
  drag_and_drop_help: يمكن إضافة صور عن طريق سحبها وإسقاطها أو لصقها.
559
- endorsement_buttons_cell:
560
- endorse: يعجبني
561
559
  endorsements:
562
560
  identities:
563
561
  done: تم
@@ -994,7 +992,7 @@ ar:
994
992
  participants:
995
993
  description: عدد المشاركين النشطين في المنظمة
996
994
  object: المشاركين
997
- title: المشاركين
995
+ title: المشاركون
998
996
  reported_users:
999
997
  description: عدد المشاركين المبلّغ عنهم
1000
998
  user_reports:
@@ -1002,7 +1000,7 @@ ar:
1002
1000
  users:
1003
1001
  description: عدد المشاركين في المنظمة
1004
1002
  object: المشاركين
1005
- title: المشاركين
1003
+ title: المشاركون
1006
1004
  newsletter_mailer:
1007
1005
  newsletter:
1008
1006
  no_reply_notice: تم إرسال هذا البريد الإلكتروني من عنوان بريد إلكتروني للإشعارات لا يستقبل لا بريد إلكتروني وارد. يرجى عدم الرد على هذه الرسالة.
@@ -1157,11 +1155,6 @@ ar:
1157
1155
  message: الرسالة
1158
1156
  resend_email_confirmation_instructions: إعادة إرسال تعليمات تأكيد البريد الإلكتروني
1159
1157
  reported_mailer:
1160
- hide:
1161
- hello: مرحبا %{name}،
1162
- manage_moderations: إدارة التعديلات
1163
- report_html: <p>بعد <a href="%{url}">محتوى</a> تم إخفاء تلقائيا.</p>
1164
- subject: تم إخفاء المورد تلقائيًا
1165
1158
  report:
1166
1159
  authors: المؤلفون
1167
1160
  content: محتوى تم الإبلاغ عنه
@@ -92,7 +92,7 @@ bg:
92
92
  decidim_with_month_name_short: "%d %b"
93
93
  help:
94
94
  date_format: 'Формат: дд/мм/гггг'
95
- order: д-м-г
95
+ order: d-m-y
96
96
  separator: "/"
97
97
  datetime:
98
98
  distance_in_words:
@@ -539,7 +539,7 @@ bg:
539
539
  metrics:
540
540
  name: Показатели за организацията
541
541
  participatory_space_metrics:
542
- name: Метрики
542
+ name: Индикатори
543
543
  participatory_space_stats:
544
544
  name: Статистики
545
545
  social_networks_metadata:
@@ -640,8 +640,6 @@ bg:
640
640
  error: Грешка при качването на изображението.
641
641
  success: Изображението е качено успешно.
642
642
  drag_and_drop_help: Добавете изображения чрез плъзгане и пускане или поставяне (paste).
643
- endorsement_buttons_cell:
644
- endorse: Харесвам
645
643
  endorsements:
646
644
  identities:
647
645
  done: Готово
@@ -1356,11 +1354,6 @@ bg:
1356
1354
  confirmation_instructions_sent: Изпратени са инструкции за потвърждение по имейл.
1357
1355
  fill_in_email_to_confirm_it: Моля, попълнете електронната поща на групата си, за да я потвърдите.
1358
1356
  reported_mailer:
1359
- hide:
1360
- hello: Здравейте %{name},
1361
- manage_moderations: Управлявай модераторите
1362
- report_html: <p>Следното <a href="%{url}">съдържание</a> е скрито автоматично.</p>
1363
- subject: Ресурсът е скрит автоматично
1364
1357
  report:
1365
1358
  authors: Автори
1366
1359
  content: Докладвано съдържание
@@ -25,6 +25,8 @@ bs:
25
25
  hero_settings_form:
26
26
  background_image: Pozadinska slika
27
27
  welcome_text: Tekst dobrodošlice
28
+ participatory_space_metrics:
29
+ name: Metrika
28
30
  stats:
29
31
  name: Statistika organizacije
30
32
  endorsements: