decidim-core 0.28.1 → 0.28.2

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/announcement/show.erb +2 -2
  3. data/app/cells/decidim/author/show.erb +5 -5
  4. data/app/cells/decidim/card/show.erb +1 -1
  5. data/app/cells/decidim/card_metadata/show.erb +2 -2
  6. data/app/cells/decidim/data_consent/category.erb +1 -1
  7. data/app/cells/decidim/nav_links/show.erb +2 -2
  8. data/app/cells/decidim/notification/moderated.erb +12 -0
  9. data/app/cells/decidim/notification_cell.rb +5 -1
  10. data/app/cells/decidim/profile/details.erb +1 -1
  11. data/app/cells/decidim/progress_bar/show.erb +1 -1
  12. data/app/cells/decidim/progress_bar_cell.rb +2 -0
  13. data/app/cells/decidim/report_button/flag_modal.erb +5 -1
  14. data/app/cells/decidim/resource_types_filter/show.erb +3 -3
  15. data/app/cells/decidim/statistic/show.erb +2 -2
  16. data/app/cells/decidim/upload_modal/modal.erb +3 -4
  17. data/app/controllers/concerns/decidim/force_authentication.rb +1 -1
  18. data/app/controllers/concerns/decidim/use_organization_time_zone.rb +1 -1
  19. data/app/controllers/decidim/gamification/badges_controller.rb +2 -0
  20. data/app/controllers/decidim/links_controller.rb +15 -2
  21. data/app/helpers/concerns/decidim/flash_helper_extensions.rb +2 -2
  22. data/app/helpers/decidim/check_boxes_tree_helper.rb +1 -2
  23. data/app/mailers/decidim/application_mailer.rb +40 -6
  24. data/app/packs/src/decidim/a11y.js +14 -0
  25. data/app/packs/src/decidim/abide_form_validator_fixer.js +44 -0
  26. data/app/packs/src/decidim/direct_uploads/upload_modal.js +2 -6
  27. data/app/packs/src/decidim/index.js +29 -1
  28. data/app/packs/stylesheets/decidim/_accordion.scss +2 -2
  29. data/app/packs/stylesheets/decidim/_cards.scss +2 -2
  30. data/app/packs/stylesheets/decidim/_layout.scss +3 -3
  31. data/app/packs/stylesheets/decidim/_modal_update.scss +1 -3
  32. data/app/presenters/decidim/admin_log/organization_presenter.rb +1 -1
  33. data/app/presenters/decidim/log/resource_presenter.rb +7 -1
  34. data/app/services/decidim/log/diff_changeset_calculator.rb +1 -1
  35. data/app/views/decidim/account/show.html.erb +2 -2
  36. data/app/views/decidim/application/_document.html.erb +2 -2
  37. data/app/views/decidim/endorsements/update_buttons_and_counters.js.erb +2 -1
  38. data/app/views/decidim/gamification/badges/index.html.erb +34 -33
  39. data/app/views/decidim/links/_modal.html.erb +1 -1
  40. data/app/views/decidim/links/new.html.erb +3 -1
  41. data/app/views/decidim/manifests/show.json.erb +1 -1
  42. data/app/views/decidim/messaging/conversations/create.js.erb +1 -1
  43. data/app/views/decidim/notifications_settings/show.html.erb +6 -6
  44. data/app/views/decidim/pages/_tabbed.html.erb +2 -2
  45. data/app/views/decidim/searches/_filters.html.erb +2 -2
  46. data/app/views/decidim/shared/_filters.html.erb +2 -2
  47. data/app/views/decidim/shared/_orders.html.erb +2 -2
  48. data/app/views/decidim/shared/filters/_collection.html.erb +5 -3
  49. data/app/views/decidim/shared/filters/_dropdown_label.html.erb +21 -19
  50. data/app/views/layouts/decidim/_wrapper.html.erb +1 -1
  51. data/app/views/layouts/decidim/footer/_main_links.html.erb +3 -1
  52. data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +4 -2
  53. data/app/views/layouts/decidim/header/_menu_breadcrumb_items.html.erb +2 -0
  54. data/app/views/layouts/decidim/shared/_layout_user_profile.html.erb +2 -2
  55. data/config/locales/ar.yml +1 -5
  56. data/config/locales/bg.yml +878 -1
  57. data/config/locales/ca.yml +2 -0
  58. data/config/locales/cs.yml +1 -1
  59. data/config/locales/de.yml +3 -1
  60. data/config/locales/el.yml +8 -1
  61. data/config/locales/en.yml +3 -1
  62. data/config/locales/es-MX.yml +8 -6
  63. data/config/locales/es-PY.yml +8 -6
  64. data/config/locales/es.yml +32 -30
  65. data/config/locales/eu.yml +4 -2
  66. data/config/locales/fi-plain.yml +3 -1
  67. data/config/locales/fi.yml +4 -2
  68. data/config/locales/fr-CA.yml +2 -0
  69. data/config/locales/fr.yml +2 -0
  70. data/config/locales/ga-IE.yml +8 -0
  71. data/config/locales/gl.yml +1 -0
  72. data/config/locales/hu.yml +1 -2
  73. data/config/locales/it.yml +7 -1
  74. data/config/locales/ja.yml +3 -1
  75. data/config/locales/kaa.yml +5 -0
  76. data/config/locales/lb.yml +7 -1
  77. data/config/locales/lt.yml +8 -2
  78. data/config/locales/lv.yml +8 -1
  79. data/config/locales/nl.yml +7 -1
  80. data/config/locales/no.yml +7 -1
  81. data/config/locales/pl.yml +35 -0
  82. data/config/locales/pt-BR.yml +0 -1
  83. data/config/locales/pt.yml +7 -1
  84. data/config/locales/ro-RO.yml +8 -0
  85. data/config/locales/ru.yml +8 -0
  86. data/config/locales/sk.yml +8 -1
  87. data/config/locales/sl.yml +8 -0
  88. data/config/locales/sv.yml +8 -1
  89. data/config/locales/tr-TR.yml +21 -4
  90. data/config/locales/uk.yml +10 -0
  91. data/config/locales/zh-CN.yml +0 -1
  92. data/config/locales/zh-TW.yml +8 -1
  93. data/lib/decidim/core/seeds.rb +1 -1
  94. data/lib/decidim/core/test/shared_examples/comments_examples.rb +76 -6
  95. data/lib/decidim/core/test/shared_examples/logo_email.rb +2 -2
  96. data/lib/decidim/core/version.rb +1 -1
  97. data/lib/decidim/core.rb +6 -1
  98. data/lib/decidim/events/base_event.rb +4 -0
  99. data/lib/decidim/organization_settings.rb +10 -2
  100. metadata +12 -10
@@ -5,7 +5,7 @@
5
5
  <% if current_user.unconfirmed_email.present? %>
6
6
  <%# NOTE: announcement cell clean_body method will purge the button %>
7
7
  <div id="email-change-pending" class="flash secondary" data-announcement>
8
- <span class="flash__message flex-none block leading-relaxed">
8
+ <div class="flash__message flex-none block leading-relaxed">
9
9
  <p>
10
10
  <strong><%= t("decidim.account.email_change.title") %></strong>
11
11
  </p>
@@ -18,7 +18,7 @@
18
18
  resend_link: link_to(t("decidim.account.email_change.send_again"), resend_confirmation_instructions_account_path, role: :button, method: :post, remote: true),
19
19
  cancel_link: link_to(t("decidim.account.email_change.cancel"), cancel_email_change_account_path, role: :button, method: :post, remote: true)) %>
20
20
  </p>
21
- </span>
21
+ </div>
22
22
  </div>
23
23
  <% end %>
24
24
 
@@ -7,8 +7,8 @@
7
7
  <div class="card__list-text"><%= decidim_escape_translated(document.description) %></div>
8
8
  <% end %>
9
9
  <div class="card__list-metadata">
10
- <span><%= icon "file-text-line" %><%= document.file_type %></span>
11
- <span><%= icon "scales-2-line" %><%= number_to_human_size(document.file_size) %></span>
10
+ <div><%= icon "file-text-line" %><%= document.file_type %></div>
11
+ <div><%= icon "scales-2-line" %><%= number_to_human_size(document.file_size) %></div>
12
12
  </div>
13
13
  </div>
14
14
  <%= link_to document.url,
@@ -1,5 +1,4 @@
1
1
  updateEndorsementBlock();
2
-
3
2
  function updateEndorsementBlock() {
4
3
  var $endorsementBlock = $('#resource-<%= resource.id %>-endorsement-block');
5
4
  var $endorsementListTrigger = $('#resource-<%= resource.id %>-endorsement-block #dropdown-trigger');
@@ -24,4 +23,6 @@ function updateEndorsementBlock() {
24
23
  } else {
25
24
  $endorsementIdentitiesButton[0].innerHTML = '<%= j(cell("decidim/endorsement_buttons", resource).button_content).strip.html_safe %>';
26
25
  }
26
+ document.dispatchEvent(new CustomEvent("ajax:loaded", { detail: $endorsementBlock[0] }));
27
+ document.dispatchEvent(new CustomEvent("ajax:loaded", { detail: $endorsementListGrid[0] }));
27
28
  }
@@ -1,40 +1,41 @@
1
- <div class="wrapper">
2
- <div class="row column mb-m">
3
- <h1><%= t ".title" %></h1>
4
- <p>
5
- <%= t ".page_description" %>
1
+ <% add_decidim_meta_tags(
2
+ title: t(".title"),
3
+ description: t(".page_description")
4
+ ) %>
5
+
6
+ <main class="layout-1col cols-10">
7
+
8
+ <header class="text-center py-10">
9
+ <h1 class="title-decorator inline-block text-left mb-12">
10
+ <%= t ".title" %>
11
+ </h1>
12
+ <p class="text-lg text-gray-2">
13
+ <%= t ".page_description" %>
6
14
  </p>
7
- </div>
15
+ </header>
16
+
8
17
  <% @badges.each do |badge| %>
9
- <div class="row column mb-m">
10
- <div class="column medium-2">
11
- <div class="card card--badge absolutes">
12
- <div class="card__content">
13
- <div class="card__header">
14
- <div class="badge-container">
15
- <%= image_tag badge.image %>
16
- </div>
17
- </div>
18
- <div class="card__text text-center">
19
- <strong><%= badge.translated_name %></strong>
20
- </div>
18
+ <div class="mb-12">
19
+ <h2 class="h4 mb-4"><%= t ".badge_title", name: badge.translated_name %></h2>
20
+ <div class="grid grid-cols-10 text-gray-2 leading-relaxed">
21
+ <div class="col-span-2">
22
+ <div class="flex justify-center items-center">
23
+ <%= image_tag badge.image, class: "w-32", alt: badge.translated_name %>
24
+ </div>
25
+ <div class="text-center mt-4">
26
+ <strong><%= badge.translated_name %></strong>
21
27
  </div>
22
28
  </div>
23
- </div>
24
- <div class="column medium-10">
25
- <h6>
26
- <strong><%= t ".badge_title", name: badge.translated_name %></strong>
27
- </h6>
28
- <p><%= badge.description(current_organization.name) %></p>
29
- <h6>
30
- <strong><%= t ".how" %></strong>
31
- </h6>
32
- <ol>
33
- <% badge.conditions.each do |condition| %>
34
- <li><%= condition %></li>
35
- <% end %>
36
- </ol>
29
+ <div class="col-span-7 ml-2">
30
+ <p><%= badge.description(current_organization.name) %></p>
31
+ <p class="mt-4"><strong><%= t ".how" %></strong></p>
32
+ <ol class="list-decimal">
33
+ <% badge.conditions.each do |condition| %>
34
+ <li><%= condition %></li>
35
+ <% end %>
36
+ </ol>
37
+ </div>
37
38
  </div>
38
39
  </div>
39
40
  <% end %>
40
- </div>
41
+ </main>
@@ -16,6 +16,6 @@
16
16
  <button class="button button__lg button__transparent-secondary" data-dialog-close="external-domain-warning">
17
17
  <%= t("decidim.links.warning.cancel") %>
18
18
  </button>
19
- <%= link_to t("decidim.links.warning.proceed"), external_url.to_s , target: "_blank", class: "button button__lg button__secondary" %>
19
+ <%= link_to t("decidim.links.warning.proceed"), external_url.to_s , target: "_blank", class: "button button__lg button__secondary", rel: "nofollow noopener noreferrer" %>
20
20
  </div>
21
21
  <% end %>
@@ -1,3 +1,5 @@
1
+ <% add_decidim_page_title t("decidim.links.warning.title") %>
2
+
1
3
  <%= render layout: "layouts/decidim/shared/layout_center" do %>
2
4
 
3
5
  <div class="flex justify-center">
@@ -12,7 +14,7 @@
12
14
  </code>
13
15
 
14
16
  <div class="form__wrapper-block">
15
- <%= link_to t("decidim.links.warning.proceed"), external_url.to_s, class: "button button__lg button__secondary ml-auto" %>
17
+ <%= link_to t("decidim.links.warning.proceed"), external_url.to_s, class: "button button__lg button__secondary ml-auto", rel: "nofollow noopener noreferrer" %>
16
18
  </div>
17
19
 
18
20
  <% end %>
@@ -5,7 +5,7 @@
5
5
  "display": "<%= organization_params.pwa_display %>",
6
6
  "start_url": "<%= organization_params.start_url %>",
7
7
  "theme_color": "<%= organization_params.colors["primary"] %>",
8
- "background_color": "<%= organization_params.colors["primary"] %>",
8
+ "background_color": "#FFFFFF",
9
9
  "icons": [
10
10
  {
11
11
  "src": "<%= current_organization.attached_uploader(:favicon).variant_path :small %>",
@@ -1,4 +1,4 @@
1
1
  $("#messages").append("<%= j(render "messages", sender: conversation.messages.first.sender, messages: [conversation.messages.first]).html_safe %>");
2
2
  $("div[data-add-message]").replaceWith("<%= j(render "reply", form:, conversation:).html_safe %>");
3
- $("#new_message_").foundation();
3
+ window.initFoundation($("#new_message_"));
4
4
  Decidim.addInputEmoji();
@@ -12,7 +12,7 @@
12
12
  <label for="notifications_from_own_activity" class="toggle__switch-toggle">
13
13
  <span>
14
14
  <input
15
- <%= %(checked="checked") if @notifications_settings.notifications_from_own_activity %>
15
+ <%== %(checked="checked") if @notifications_settings.notifications_from_own_activity %>
16
16
  id="notifications_from_own_activity"
17
17
  type="checkbox"
18
18
  name="notifications_from_own_activity">
@@ -30,7 +30,7 @@
30
30
  <label for="notifications_from_followed" class="toggle__switch-toggle">
31
31
  <span>
32
32
  <input
33
- <%= %(checked="checked") if @notifications_settings.notifications_from_followed %>
33
+ <%== %(checked="checked") if @notifications_settings.notifications_from_followed %>
34
34
  id="notifications_from_followed"
35
35
  type="checkbox"
36
36
  name="notifications_from_followed">
@@ -62,7 +62,7 @@
62
62
  <label for="newsletter_notifications" class="toggle__switch-toggle">
63
63
  <span>
64
64
  <input
65
- <%= %(checked="checked") if @notifications_settings.newsletter_notifications %>
65
+ <%== %(checked="checked") if @notifications_settings.newsletter_notifications %>
66
66
  id="newsletter_notifications"
67
67
  type="checkbox"
68
68
  name="newsletter_notifications">
@@ -84,7 +84,7 @@
84
84
  <label for="allow_public_contact" class="toggle__switch-toggle">
85
85
  <span>
86
86
  <input
87
- <%= %(checked="checked") if @notifications_settings.allow_public_contact %>
87
+ <%== %(checked="checked") if @notifications_settings.allow_public_contact %>
88
88
  id="allow_public_contact"
89
89
  type="checkbox"
90
90
  name="allow_public_contact">
@@ -108,7 +108,7 @@
108
108
  <label for="email_on_moderations" class="toggle__switch-toggle">
109
109
  <span>
110
110
  <input
111
- <%= %(checked="checked") if @notifications_settings.email_on_moderations %>
111
+ <%== %(checked="checked") if @notifications_settings.email_on_moderations %>
112
112
  id="email_on_moderations"
113
113
  type="checkbox"
114
114
  name="email_on_moderations">
@@ -156,7 +156,7 @@
156
156
  <label class="toggle__switch-toggle" for="allow_push_notifications">
157
157
  <span>
158
158
  <input
159
- <%= %(checked="checked") if @notifications_settings.meet_push_notifications_requirements? %>
159
+ <%== %(checked="checked") if @notifications_settings.meet_push_notifications_requirements? %>
160
160
  id="allow_push_notifications"
161
161
  type="checkbox"
162
162
  name="allow_push_notifications">
@@ -11,14 +11,14 @@
11
11
 
12
12
  <div class="vertical-tabs">
13
13
  <nav>
14
- <button id="dropdown-trigger-pages" data-component="dropdown" data-target="dropdown-menu-pages" data-auto-close="true" data-disabled-md="true">
14
+ <button id="dropdown-trigger-pages" data-component="dropdown" data-target="dropdown-menu-pages" data-auto-close="true">
15
15
  <span>
16
16
  <%= translated_attribute(page.title) %>
17
17
  </span>
18
18
  <%= icon "arrow-down-s-line" %>
19
19
  <%= icon "arrow-up-s-line" %>
20
20
  </button>
21
- <ul id="dropdown-menu-pages" class="vertical-tabs__list">
21
+ <ul id="dropdown-menu-pages" class="vertical-tabs__list" aria-hidden="true">
22
22
  <% pages.each do |sibling| %>
23
23
  <li class="<%= "is-active" if page == sibling %>">
24
24
  <%= link_to translated_attribute(sibling.title), page_path(sibling.slug) %>
@@ -1,5 +1,5 @@
1
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" data-disabled-md="true">
2
+ <button id="dropdown-trigger-search" data-component="dropdown" data-target="dropdown-menu-search" data-auto-close="true">
3
3
  <%= content_tag :span, t("decidim.searches.filters_small_view.filter_by"), class: "#{"is-active" if params.dig(:filter, :with_resource_type) == nil}" %>
4
4
  <% @blocks.each do |elements| %>
5
5
  <% elements.each do |type, results| %>
@@ -11,7 +11,7 @@
11
11
  <%= icon "arrow-down-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
12
12
  <%= icon "arrow-up-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
13
13
  </button>
14
- <div id="dropdown-menu-search">
14
+ <div id="dropdown-menu-search" aria-hidden="true">
15
15
  <div>
16
16
  <%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}" do %>
17
17
  <%= resource_type_icon("all") %>
@@ -4,7 +4,7 @@
4
4
  <% if filter_sections.present? || local_assigns.has_key?(:search_variable) %>
5
5
  <%= filter_form_for filter, url_for, class: "new_filter self-stretch", data: { filters: "", component: "accordion" } do |form| %>
6
6
 
7
- <button id="dropdown-trigger-filters" data-component="dropdown" data-target="dropdown-menu-filters" data-disabled-md="true">
7
+ <button id="dropdown-trigger-filters" data-component="dropdown" data-target="dropdown-menu-filters">
8
8
  <%= icon "arrow-down-s-line" %>
9
9
  <%= icon "arrow-up-s-line" %>
10
10
  <span>
@@ -12,7 +12,7 @@
12
12
  </span>
13
13
  </button>
14
14
 
15
- <div id="dropdown-menu-filters">
15
+ <div id="dropdown-menu-filters" aria-hidden="true">
16
16
  <% if local_assigns.has_key?(:skip_to_id) %>
17
17
  <%= link_to t("skip", scope: "decidim.shared.filter_form_help"), "##{skip_to_id}", class: "filter-skip" %>
18
18
  <% end %>
@@ -1,9 +1,9 @@
1
- <button class="order-by__button" id="dropdown-trigger-order" data-component="dropdown" data-target="dropdown-menu-order" data-open="false" data-disabled-md="true">
1
+ <button class="order-by__button" id="dropdown-trigger-order" data-component="dropdown" data-target="dropdown-menu-order" data-open="false">
2
2
  <%= icon "arrow-down-s-line" %>
3
3
  <%= icon "arrow-up-s-line" %>
4
4
  <span><%= t("#{i18n_scope}.label") %></span>
5
5
  </button>
6
- <div id="dropdown-menu-order" class="order-by">
6
+ <div id="dropdown-menu-order" class="order-by" aria-hidden="true">
7
7
  <% orders.each do |order_name| %>
8
8
  <%= order_link order_name,
9
9
  i18n_scope:,
@@ -11,8 +11,10 @@
11
11
  collection,
12
12
  :first,
13
13
  :last
14
- ) do |builder|
15
- builder.label(class: "filter") { builder.send(builder_type.singularize, class: "reset-defaults") + filter_text_for(builder.text) }
16
- end %>
14
+ ) do |builder| %>
15
+ <div class="filter">
16
+ <%= builder.label { builder.send(builder_type.singularize, class: "reset-defaults") + filter_text_for(builder.text) } %>
17
+ </div>
18
+ <% end %>
17
19
  </div>
18
20
  </div>
@@ -4,31 +4,33 @@
4
4
  <% data = item.tree_node? && item.node.present? ? { checkboxes_tree: data_checkboxes_tree_id } : {} %>
5
5
  <% check_box_label = capture do %>
6
6
  <%= filter_text_for(leaf.label, id: "dropdown-title-#{data_checkboxes_tree_id}") %>
7
- <% if !is_blank_root && item.tree_node? && item.node.present? %>
8
- <button id="dropdown-trigger-<%= data_checkboxes_tree_id %>" data-controls="panel-dropdown-menu-<%= data_checkboxes_tree_id %>" aria-labelledby="dropdown-title-<%= data_checkboxes_tree_id %>">
9
- <%= icon "arrow-down-s-fill" %>
10
- <%= icon "arrow-up-s-fill" %>
11
- </button>
12
- <% end %>
13
7
  <% end %>
14
8
 
15
9
  <% if leaf.value == "" %>
16
10
  <%= hidden_field_tag "#{form.object_name}[#{method}][]", "", id: "#{form.options[:namespace] rescue "default"}_filter_#{method}_all" %>
17
11
  <% end %>
18
12
 
19
- <%= form.check_box(
20
- method,
21
- check_boxes_tree_options(
22
- leaf.value,
23
- check_box_label,
24
- class: "reset-defaults",
25
- data:,
26
- is_root_check_box: is_blank_root,
27
- parent_id:
28
- ),
29
- leaf.value.to_s,
30
- nil
31
- ) %>
13
+ <div class="filter">
14
+ <%= form.check_box(
15
+ method,
16
+ check_boxes_tree_options(
17
+ leaf.value,
18
+ check_box_label,
19
+ class: "reset-defaults",
20
+ data:,
21
+ is_root_check_box: is_blank_root,
22
+ parent_id:
23
+ ),
24
+ leaf.value.to_s,
25
+ nil
26
+ ) %>
27
+ <% if !is_blank_root && item.tree_node? && item.node.present? %>
28
+ <button id="dropdown-trigger-<%= data_checkboxes_tree_id %>" data-controls="panel-dropdown-menu-<%= data_checkboxes_tree_id %>" aria-labelledby="dropdown-title-<%= data_checkboxes_tree_id %>">
29
+ <%= icon "arrow-down-s-fill" %>
30
+ <%= icon "arrow-up-s-fill" %>
31
+ </button>
32
+ <% end %>
33
+ </div>
32
34
 
33
35
  <% if item.tree_node? && item.node.present? %>
34
36
  <% subitems_content = capture do %>
@@ -12,7 +12,7 @@ end
12
12
 
13
13
  <div class="layout-container">
14
14
  <header>
15
- <%= render partial: "layouts/decidim/admin_links" if current_user&.admin %>
15
+ <%= render partial: "layouts/decidim/admin_links" if current_user && allowed_to?(:read, :admin_dashboard) %>
16
16
  <%= render partial: "layouts/decidim/header/main" %>
17
17
  <% if display_flash_messages.present? %>
18
18
  <div class="container">
@@ -4,7 +4,9 @@
4
4
  <h2 class="h4 mb-4"><%= t("layouts.decidim.footer.resources") %></h2>
5
5
  <ul class="space-y-4 break-inside-avoid">
6
6
  <li class="font-semibold underline"><%= link_to t("decidim.profiles.show.activity"), decidim.last_activities_path %></li>
7
- <li class="font-semibold underline"><%= link_to t("decidim.pages.home.extended.meetings"), Decidim::Meetings::DirectoryEngine.routes.url_helpers.root_path %></li>
7
+ <% if Decidim.module_installed?(:meetings) %>
8
+ <li class="font-semibold underline"><%= link_to t("decidim.pages.home.extended.meetings"), Decidim::Meetings::DirectoryEngine.routes.url_helpers.root_path %></li>
9
+ <% end %>
8
10
  <li class="font-semibold underline"><%= link_to t("layouts.decidim.footer.download_open_data"), decidim.open_data_download_path %></li>
9
11
  </ul>
10
12
  </nav>
@@ -5,8 +5,10 @@
5
5
  </div>
6
6
  <div class="main-bar__links-desktop__item-wrapper">
7
7
  <div>
8
- <%= link_to Decidim::Meetings::DirectoryEngine.routes.url_helpers.root_path, class: "main-bar__links-desktop__item", "aria-label": t("decidim.pages.home.extended.meetings") do %>
9
- <%= icon "road-map-line" %><span><%= t("decidim.pages.home.extended.meetings") %></span>
8
+ <% if Decidim.module_installed?(:meetings) %>
9
+ <%= link_to Decidim::Meetings::DirectoryEngine.routes.url_helpers.root_path, class: "main-bar__links-desktop__item", "aria-label": t("decidim.pages.home.extended.meetings") do %>
10
+ <%= icon "road-map-line" %><span><%= t("decidim.pages.home.extended.meetings") %></span>
11
+ <% end %>
10
12
  <% end %>
11
13
  </div>
12
14
  <div>
@@ -1,4 +1,6 @@
1
1
  <% breadcrumb_items.each_with_index do |item, i| %>
2
+ <% next if item.blank? %>
3
+
2
4
  <% item_label = translated_attribute(item[:label]) %>
3
5
  <span>/</span>
4
6
  <% if item[:dropdown_cell].present? %>
@@ -10,12 +10,12 @@
10
10
 
11
11
  <div class="vertical-tabs">
12
12
  <nav aria-label="menu-vertical">
13
- <button id="dropdown-trigger-profile" data-component="dropdown" data-target="dropdown-menu-profile" data-disabled-md="true">
13
+ <button id="dropdown-trigger-profile" data-component="dropdown" data-target="dropdown-menu-profile">
14
14
  <span><%= user_menu.active_item&.label || t("decidim.searches.filters.jump_to") %></span>
15
15
  <%= icon "arrow-down-s-line" %>
16
16
  <%= icon "arrow-up-s-line" %>
17
17
  </button>
18
- <ul id="dropdown-menu-profile" class="vertical-tabs__list">
18
+ <ul id="dropdown-menu-profile" class="vertical-tabs__list" aria-hidden="true">
19
19
  <%= user_menu.render %>
20
20
  </ul>
21
21
  </nav>
@@ -312,7 +312,6 @@ ar:
312
312
  '1': إنشاء التعديل الخاص بك
313
313
  '2': قارن تعديلك
314
314
  '3': اكمل تعديلك
315
- '4': انشر تعديلك
316
315
  anonymous_user: مجهول
317
316
  application:
318
317
  document:
@@ -809,6 +808,7 @@ ar:
809
808
  filename: اسم الملف
810
809
  remove: حذف
811
810
  replace: إستبدال
811
+ save: حفظ
812
812
  title: العنوان
813
813
  title_required: العنوان مطلوب!
814
814
  uploaded: تم التحميل
@@ -1227,7 +1227,6 @@ ar:
1227
1227
  past: الماضي
1228
1228
  filters_small_view:
1229
1229
  filter: منقي
1230
- filter_and_search: التصفية والبحث
1231
1230
  filter_by: مصنف بواسطة
1232
1231
  results:
1233
1232
  view_all: عرض الكل (%{count})
@@ -1455,7 +1454,6 @@ ar:
1455
1454
  links:
1456
1455
  back: الى الخلف
1457
1456
  forgot_your_password: نسيت رقمك السري؟
1458
- log_in: تسجيل الدخول
1459
1457
  log_in_with_provider: تسجيل الدخول باستخدام %{provider}
1460
1458
  sign_up: انشئ حسابًا
1461
1459
  minimum_password_length:
@@ -1616,13 +1614,11 @@ ar:
1616
1614
  decidim_logo: شعار Decidim
1617
1615
  decidim_title: Decidim
1618
1616
  download_open_data: تحميل ملفات البيانات المفتوحة
1619
- log_in: تسجيل الدخول
1620
1617
  made_with_open_source: موقع تم إنشاؤه <a target="_blank" href="https://github.com/decidim/decidim">بالبرمجيات الحرة</a>.
1621
1618
  resources: الموارد
1622
1619
  sign_up: انشئ حسابًا
1623
1620
  terms_and_conditions: الشروط والأحكام
1624
1621
  header:
1625
- log_in: تسجيل الدخول
1626
1622
  main_menu: القائمة الرئيسية
1627
1623
  user_menu: قائمة المستخدم
1628
1624
  impersonation_warning: