decidim-admin 0.28.1 → 0.28.3

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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -13
  3. data/app/commands/decidim/admin/destroy_component.rb +1 -0
  4. data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
  5. data/app/controllers/concerns/decidim/admin/verification_conflicts/filterable.rb +31 -0
  6. data/app/controllers/decidim/admin/application_controller.rb +1 -1
  7. data/app/controllers/decidim/admin/authorization_workflows_controller.rb +3 -1
  8. data/app/controllers/decidim/admin/conflicts_controller.rb +13 -5
  9. data/app/controllers/decidim/admin/organization_controller.rb +7 -4
  10. data/app/helpers/decidim/admin/application_helper.rb +13 -0
  11. data/app/packs/src/decidim/admin/application.js +6 -1
  12. data/app/packs/src/decidim/admin/choose_language.js +2 -0
  13. data/app/packs/src/decidim/admin/dynamic_fields.component.js +2 -1
  14. data/app/views/decidim/admin/block_user/new.html.erb +1 -1
  15. data/app/views/decidim/admin/components/index.html.erb +5 -1
  16. data/app/views/decidim/admin/conflicts/index.html.erb +29 -6
  17. data/app/views/decidim/admin/exports/_dropdown.html.erb +5 -5
  18. data/app/views/decidim/admin/imports/_dropdown.html.erb +6 -4
  19. data/app/views/decidim/admin/imports/new.html.erb +5 -4
  20. data/app/views/decidim/admin/organization_appearance/form/_minimap.html.erb +3 -3
  21. data/app/views/decidim/admin/shared/_js-callout.html.erb +2 -2
  22. data/app/views/layouts/decidim/admin/_application.html.erb +1 -1
  23. data/app/views/layouts/decidim/admin/_sidebar_menu.html.erb +2 -2
  24. data/config/locales/ar.yml +1 -0
  25. data/config/locales/bg.yml +1000 -3
  26. data/config/locales/ca.yml +6 -2
  27. data/config/locales/cs.yml +9 -0
  28. data/config/locales/de.yml +12 -8
  29. data/config/locales/el.yml +1 -0
  30. data/config/locales/en.yml +4 -0
  31. data/config/locales/es-MX.yml +11 -7
  32. data/config/locales/es-PY.yml +11 -7
  33. data/config/locales/es.yml +22 -18
  34. data/config/locales/eu.yml +4 -0
  35. data/config/locales/fi-plain.yml +5 -1
  36. data/config/locales/fi.yml +9 -5
  37. data/config/locales/fr-CA.yml +4 -0
  38. data/config/locales/fr.yml +4 -0
  39. data/config/locales/ga-IE.yml +1 -0
  40. data/config/locales/gl.yml +1 -0
  41. data/config/locales/hu.yml +1 -0
  42. data/config/locales/id-ID.yml +1 -0
  43. data/config/locales/is-IS.yml +1 -0
  44. data/config/locales/it.yml +2 -0
  45. data/config/locales/ja.yml +4 -0
  46. data/config/locales/lb.yml +1 -0
  47. data/config/locales/lt.yml +2 -0
  48. data/config/locales/lv.yml +1 -0
  49. data/config/locales/nl.yml +1 -0
  50. data/config/locales/no.yml +1 -0
  51. data/config/locales/pl.yml +3 -0
  52. data/config/locales/pt-BR.yml +1 -0
  53. data/config/locales/pt.yml +1 -0
  54. data/config/locales/ro-RO.yml +10 -3
  55. data/config/locales/ru.yml +1 -0
  56. data/config/locales/sk.yml +1 -0
  57. data/config/locales/sl.yml +1 -0
  58. data/config/locales/sq-AL.yml +413 -0
  59. data/config/locales/sr-CS.yml +1 -0
  60. data/config/locales/sv.yml +303 -162
  61. data/config/locales/th-TH.yml +101 -0
  62. data/config/locales/tr-TR.yml +1 -0
  63. data/config/locales/uk.yml +1 -0
  64. data/config/locales/zh-CN.yml +1 -0
  65. data/config/locales/zh-TW.yml +2 -0
  66. data/lib/decidim/admin/test/admin_participatory_space_access_examples.rb +27 -0
  67. data/lib/decidim/admin/test/invite_participatory_space_admins_shared_examples.rb +180 -0
  68. data/lib/decidim/admin/test/invite_participatory_space_collaborators_shared_examples.rb +67 -0
  69. data/lib/decidim/admin/test/invite_participatory_space_moderators_shared_examples.rb +77 -0
  70. data/lib/decidim/admin/test/invite_participatory_space_users_shared_context.rb +34 -0
  71. data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +12 -11
  72. data/lib/decidim/admin/test/manage_attachments_examples.rb +13 -1
  73. data/lib/decidim/admin/test/manage_categories_examples.rb +11 -8
  74. data/lib/decidim/admin/test/manage_hide_content_examples.rb +4 -0
  75. data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +4 -4
  76. data/lib/decidim/admin/test.rb +1 -0
  77. data/lib/decidim/admin/version.rb +1 -1
  78. data/lib/decidim/admin.rb +0 -15
  79. metadata +17 -15
  80. data/app/controllers/concerns/decidim/admin/paginable.rb +0 -20
  81. data/app/helpers/decidim/admin/paginable/per_page_helper.rb +0 -22
  82. data/app/mailers/decidim/admin/application_mailer.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5cf03aeb983e0ddb8c344dbe1f8b8d21f7fbdfbd2a0f0c75f2ca76010320dd77
4
- data.tar.gz: 91db438a29f5e05315b436f3b1cf96d0d0b2ad6fa03f4ec5955f30605fd99f12
3
+ metadata.gz: 1b4c55445cbf1d61f5aabef092569d33d79906e1de58106cab2d0650cf4046b5
4
+ data.tar.gz: 508c3c95f08c68df503df0b9bd9bb752a9d8c999f048421133da80190a876add
5
5
  SHA512:
6
- metadata.gz: 8fa198551d57ea25461ecd2e86a0f7aae31f4b3e67151ed8e952ed4e91bcfb088c460ebde206520b83c7d13e5ab478b510d5eb6b9fe8e870ef1df2fe92f14cb4
7
- data.tar.gz: cb21f050e6fa924f96579bd440058c7290d2ca29a6a4501e22a3b10c6b5199aa39b686e153e03a32aef78c80cc4c0d9c07746d00bc67656aeb56ba862e3a29c7
6
+ metadata.gz: 5cfe3db6149075c9308985f333d7f9cbd03e7f6878f34545c40c67c40378466e105ec82fe960c1a1625d75f1b8a31870aedc17647d7e7c72677c2cc424f1bd76
7
+ data.tar.gz: 4bd3495d6613ee0619dba4825ad378eba623983bb1f7074649039ab4a7381f07edc4bb6c641722779c8ac57d7057421145049c7a7574ce1b430a1b4f88c5606d
data/README.md CHANGED
@@ -42,19 +42,6 @@ There are some pages that exist by default and cannot be deleted since there
42
42
  are links to them inside the Decidim framework, see `Decidim::StaticPage` for
43
43
  the default list.
44
44
 
45
- ### Pager Configuration
46
-
47
- The number of results shown per page and per page range can be configured in the app `decidim.rb` initializer as follows:
48
-
49
- ```ruby
50
- Decidim::Admin.configure do |config|
51
- config.per_page_range = [15, 50, 100]
52
- end
53
- ```
54
-
55
- * `Decidim::Admin.per_page_range.first` sets the `default_per_page` value for `Decidim::Admin` (in Kaminari)
56
- * `Decidim::Admin.per_page_range.last` sets the `max_per_page` value for `Decidim::Admin` (in Kaminari)
57
-
58
45
  ## Contributing
59
46
 
60
47
  See [Decidim](https://github.com/decidim/decidim).
@@ -44,6 +44,7 @@ module Decidim
44
44
  end
45
45
 
46
46
  def run_before_hooks
47
+ Decidim::Reminder.where(component: @component).destroy_all
47
48
  @component.manifest.run_hooks(:before_destroy, @component)
48
49
  end
49
50
 
@@ -9,7 +9,7 @@ module Decidim
9
9
  extend ActiveSupport::Concern
10
10
 
11
11
  included do
12
- include Decidim::Admin::Paginable
12
+ include Decidim::Paginable
13
13
  include Decidim::TranslatableAttributes
14
14
 
15
15
  helper Decidim::Admin::FilterableHelper
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/concern"
4
+
5
+ module Decidim
6
+ module Admin
7
+ module VerificationConflicts
8
+ module Filterable
9
+ extend ActiveSupport::Concern
10
+
11
+ included do
12
+ include Decidim::Admin::Filterable
13
+
14
+ private
15
+
16
+ def base_query
17
+ collection
18
+ end
19
+
20
+ def search_field_predicate
21
+ :current_user_name_or_current_user_nickname_or_current_user_email_cont
22
+ end
23
+
24
+ def filters
25
+ []
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -17,6 +17,7 @@ module Decidim
17
17
  include Headers::ContentSecurityPolicy
18
18
  include DisableRedirectionToExternalHost
19
19
  include Decidim::Admin::Concerns::HasBreadcrumbItems
20
+ include ActiveStorage::SetCurrent
20
21
 
21
22
  helper Decidim::Admin::ApplicationHelper
22
23
  helper Decidim::Admin::AttributesDisplayHelper
@@ -25,7 +26,6 @@ module Decidim
25
26
  helper Decidim::Admin::IconWithTooltipHelper
26
27
  helper Decidim::Admin::MenuHelper
27
28
  helper Decidim::Admin::ScopesHelper
28
- helper Decidim::Admin::Paginable::PerPageHelper
29
29
  helper Decidim::DecidimFormHelper
30
30
  helper Decidim::ReplaceButtonsHelper
31
31
  helper Decidim::ScopesHelper
@@ -10,7 +10,9 @@ module Decidim
10
10
  def index
11
11
  enforce_permission_to :index, :authorization_workflow
12
12
 
13
- @workflows = Decidim::Verifications.admin_workflows
13
+ @workflows = Decidim::Verifications.admin_workflows.select do |manifest|
14
+ current_organization.available_authorizations.include?(manifest.name.to_s)
15
+ end
14
16
 
15
17
  # Decidim::Verifications::Authorizations Query
16
18
  @authorizations = Decidim::Verifications::Authorizations.new(
@@ -3,18 +3,16 @@
3
3
  module Decidim
4
4
  module Admin
5
5
  class ConflictsController < Decidim::Admin::ApplicationController
6
+ include Decidim::Admin::VerificationConflicts::Filterable
7
+
6
8
  layout "decidim/admin/users"
7
9
 
8
- helper_method :context_breadcrumb_items
10
+ helper_method :context_breadcrumb_items, :conflicts
9
11
 
10
12
  add_breadcrumb_item_from_menu :impersonate_menu
11
13
 
12
14
  def index
13
15
  enforce_permission_to :index, :impersonatable_user
14
-
15
- @conflicts = Decidim::Verifications::Conflict.joins(:current_user).where(
16
- decidim_users: { decidim_organization_id: current_organization.id }
17
- )
18
16
  end
19
17
 
20
18
  def edit
@@ -66,6 +64,16 @@ module Decidim
66
64
  url: decidim_admin.impersonatable_users_path
67
65
  }
68
66
  end
67
+
68
+ def collection
69
+ @collection ||= Decidim::Verifications::Conflict.joins(:current_user).where(
70
+ decidim_users: { decidim_organization_id: current_organization.id }
71
+ )
72
+ end
73
+
74
+ def conflicts
75
+ @conflicts ||= filtered_collection.order(created_at: :desc)
76
+ end
69
77
  end
70
78
  end
71
79
  end
@@ -46,13 +46,16 @@ module Decidim
46
46
  respond_to do |format|
47
47
  format.json do
48
48
  if (term = params[:term].to_s).present?
49
- query = relation.order(name: :asc)
50
49
  query = if term.start_with?("@")
51
- query.where("nickname ILIKE ?", "#{term.delete("@")}%")
50
+ nickname = term.delete("@")
51
+ relation.where("nickname ILIKE ?", "#{nickname}%")
52
+ .order(Arel.sql(ActiveRecord::Base.sanitize_sql_array("similarity(nickname, '#{nickname}') DESC")))
52
53
  else
53
- query.where("name ILIKE ?", "%#{term}%").or(
54
- query.where("email ILIKE ?", "%#{term}%")
54
+ relation.where("name ILIKE ?", "%#{term}%").or(
55
+ relation.where("email ILIKE ?", "%#{term}%")
55
56
  )
57
+ .order(Arel.sql(ActiveRecord::Base.sanitize_sql_array("GREATEST(similarity(name, '#{term}'), similarity(email, '#{term}')) DESC")))
58
+ .order(Arel.sql(ActiveRecord::Base.sanitize_sql_array("(similarity(name, '#{term}') + similarity(email, '#{term}')) / 2 DESC")))
56
59
  end
57
60
  render json: query.all.collect { |u| { value: u.id, label: "#{u.name} (@#{u.nickname})" } }
58
61
  else
@@ -16,6 +16,19 @@ module Decidim
16
16
  include Decidim::Admin::ResourceScopeHelper
17
17
  include Decidim::Admin::SearchFormHelper
18
18
 
19
+ # Public: Overwrites the `cell` helper method to automatically set some
20
+ # common context.
21
+ #
22
+ # name - the name of the cell to render
23
+ # model - the cell model
24
+ # options - a Hash with options
25
+ #
26
+ # Renders the cell contents.
27
+ def cell(name, model, options = {}, &)
28
+ options = { context: { view_context: self, current_user: } }.deep_merge(options)
29
+ super
30
+ end
31
+
19
32
  def participatory_space_active_link?(component)
20
33
  endpoints = component.manifest.admin_engine.try(:participatory_space_endpoints)
21
34
  endpoints && is_active_link?(decidim_admin_participatory_processes.components_path(current_participatory_space), %r{/\d+/manage/(#{endpoints.join("|")})\b})
@@ -12,8 +12,13 @@ window.Decidim.managedUsersForm = managedUsersForm
12
12
  window.Decidim.config = new Configuration()
13
13
  window.Decidim.InputCharacterCounter = InputCharacterCounter;
14
14
 
15
+ // REDESIGN_PENDING: deprecated
16
+ window.initFoundation = (element) => {
17
+ $(element).foundation();
18
+ };
19
+
15
20
  $(() => {
16
- $(document).foundation();
21
+ window.initFoundation(document);
17
22
 
18
23
  $(document).on("show.zf.dropdownMenu", function(event, $element) {
19
24
  $element.attr("aria-hidden", "false");
@@ -7,7 +7,9 @@ export default function initLanguageChangeSelect(elements) {
7
7
  let targetTabPaneSelector = select.value;
8
8
  let tabsContent = select.parentElement.parentElement.nextElementSibling;
9
9
 
10
+ tabsContent.querySelector(".is-active").ariaHidden = "true";
10
11
  tabsContent.querySelector(".is-active").classList.remove("is-active");
12
+ tabsContent.querySelector(targetTabPaneSelector).ariaHidden = "false";
11
13
  tabsContent.querySelector(targetTabPaneSelector).classList.add("is-active");
12
14
  })
13
15
  });
@@ -159,7 +159,8 @@ class DynamicFieldsComponent {
159
159
  $newField.appendTo($container);
160
160
  }
161
161
 
162
- $newField.foundation();
162
+ // REDESIGN_PENDING: deprecated
163
+ window.initFoundation($newField);
163
164
 
164
165
  if (this.onAddField) {
165
166
  this.onAddField($newField);
@@ -19,7 +19,7 @@
19
19
  <%= cell("decidim/announcement", t(".already_reported_html"), callout_class: "alert" ) %>
20
20
  <% end %>
21
21
 
22
- <% if defined?(Decidim::Templates) %>
22
+ <% if Decidim.module_installed?(:templates) %>
23
23
  <%= render "decidim/templates/admin/block_user_templates/template_chooser", form: f %>
24
24
  <% end %>
25
25
 
@@ -14,8 +14,12 @@
14
14
  <div class="dropdown-pane" id="add-component-dropdown" data-dropdown data-auto-focus="true" data-close-on-click="true">
15
15
  <ul class="vertical menu add-components font-normal">
16
16
  <% @manifests.each do |manifest| %>
17
- <li><%= link_to t("#{manifest.name}.name", scope: "decidim.components"), new_component_path(type: manifest.name), class: manifest.name %></li>
17
+ <%= link_to new_component_path(type: manifest.name), class: manifest.name do %>
18
+ <li>
19
+ <%= t("#{manifest.name}.name", scope: "decidim.components") %>
20
+ </li>
18
21
  <% end %>
22
+ <% end %>
19
23
  </ul>
20
24
  </div>
21
25
  </div>
@@ -1,10 +1,32 @@
1
1
  <% add_decidim_page_title(t("title", scope: "decidim.admin.conflicts")) %>
2
- <div class="card">
3
- <div class="item_show__header">
4
- <h1 class="item_show__header-title">
5
- <%= t("title", scope: "decidim.admin.conflicts") %>
6
- </h1>
2
+ <div class="item_show__header">
3
+ <h1 class="item_show__header-title">
4
+ <%= t("title", scope: "decidim.admin.conflicts") %>
5
+ </h1>
6
+ </div>
7
+
8
+ <div class="filters__section">
9
+ <div class="fcell search">
10
+ <%= search_form_for(query, url: url_for) do |form| %>
11
+ <%= applied_filters_hidden_field_tags %>
12
+ <div class="input-group">
13
+ <%= form.search_field(
14
+ search_field_predicate,
15
+ class: "input-group-field",
16
+ label: false,
17
+ placeholder: t(".text")
18
+ ) %>
19
+ <div class="input-group-button">
20
+ <button type="submit" class="text-secondary" aria-label="<%= t("decidim.search.term_input_placeholder") %>">
21
+ <%= icon "search-line", class: "fill-secondary w-4 h-4" %>
22
+ </button>
23
+ </div>
24
+ </div>
25
+ <% end %>
7
26
  </div>
27
+ </div>
28
+
29
+ <div class="card">
8
30
  <div class="table-scroll">
9
31
  <table class="table-list">
10
32
  <thead>
@@ -17,7 +39,7 @@
17
39
  </tr>
18
40
  </thead>
19
41
  <tbody>
20
- <% @conflicts.each do |conflict| %>
42
+ <% conflicts.each do |conflict| %>
21
43
  <tr>
22
44
  <td><%= conflict.current_user.name %></td>
23
45
  <td><%= conflict.managed_user.name %></td>
@@ -30,3 +52,4 @@
30
52
  </table>
31
53
  </div>
32
54
  </div>
55
+ <%= decidim_paginate conflicts %>
@@ -10,11 +10,11 @@
10
10
  <ul class="vertical menu add-components">
11
11
  <% component.manifest.export_manifests.each do |manifest| %>
12
12
  <% manifest.formats.each do |format| %>
13
- <li class="exports--format--<%= format.downcase %> exports--<%= manifest.name %>">
14
- <%= link_to t("decidim.admin.exports.export_as", name: t("decidim.#{component.manifest.name}.admin.exports.#{manifest.name}"), export_format: t("decidim.admin.exports.formats.#{format}")),
15
- exports_path(component, id: manifest.name, format:, resource_id:, filters:),
16
- method: :post %>
17
- </li>
13
+ <%= link_to exports_path(component, id: manifest.name, format:, resource_id:, filters:), method: :post do %>
14
+ <li class="exports--format--<%= format.downcase %> exports--<%= manifest.name %>">
15
+ <%= t("decidim.admin.exports.export_as", name: t("decidim.#{component.manifest.name}.admin.exports.#{manifest.name}"), export_format: t("decidim.admin.exports.formats.#{format}")) %>
16
+ </li>
17
+ <% end %>
18
18
  <% end %>
19
19
  <% end %>
20
20
  </ul>
@@ -7,10 +7,12 @@
7
7
  <% if custom %>
8
8
  <%= yield %>
9
9
  <% else %>
10
- <% component.manifest.import_manifests.each do |import_manifest| %>
11
- <li class="imports--file imports--<%= import_manifest.name %>">
12
- <%= link_to import_manifest.message(:label, self), admin_imports_path(component, resource_id:, name: import_manifest.name) %>
13
- </li>
10
+ <% component.manifest.import_manifests.each do |import_manifest| %>
11
+ <%= link_to admin_imports_path(component, resource_id:, name: import_manifest.name) do %>
12
+ <li class="imports--file imports--<%= import_manifest.name %>">
13
+ <%= import_manifest.message(:label, self) %>
14
+ </li>
15
+ <% end %>
14
16
  <% end %>
15
17
  <% end %>
16
18
  </ul>
@@ -12,10 +12,11 @@
12
12
  <div class="dropdown-pane" id="example-dropdown" data-dropdown data-position=bottom data-alignment=right data-auto-focus="true" data-close-on-click="true">
13
13
  <ul class="vertical menu add-components">
14
14
  <% mime_types.each do |format, name| %>
15
- <li class="examples--format--<%= format.downcase %> examples--<%= import_manifest.name %>">
16
- <%= link_to t(".download_example_format", name:),
17
- admin_imports_example_path(@current_component, name: import_manifest.name, format:) %>
18
- </li>
15
+ <%= link_to admin_imports_example_path(@current_component, name: import_manifest.name, format:) do %>
16
+ <li class="examples--format--<%= format.downcase %> examples--<%= import_manifest.name %>">
17
+ <%= t(".download_example_format", name:) %>
18
+ </li>
19
+ <% end %>
19
20
  <% end %>
20
21
  </ul>
21
22
  </div>
@@ -3,7 +3,7 @@
3
3
  <div id="minimap" class="grid grid-cols-1 md:grid-cols-2">
4
4
  <div class="minimap-tab">
5
5
  <% if current_organization.favicon.attached? %>
6
- <%= image_tag current_organization.attached_uploader(:favicon).path, class: "minimap-favicon" %>
6
+ <%= image_tag current_organization.attached_uploader(:favicon).url, class: "minimap-favicon" %>
7
7
  <% else %>
8
8
  <%= content_tag :div, nil, { class: "minimap-favicon placeholder", style: "width: #{image_width(current_organization, :favicon) * size_factor}px; height: #{image_height(current_organization, :favicon) * size_factor}px;" } do %>
9
9
  <span><%= t("favicon", scope: "activemodel.attributes.organization") %></span>
@@ -13,7 +13,7 @@
13
13
 
14
14
  <div class="minimap-header">
15
15
  <% if current_organization.logo.present? %>
16
- <%= image_tag current_organization.attached_uploader(:logo).path, class: "minimap-logo" %>
16
+ <%= image_tag current_organization.attached_uploader(:logo).url, class: "minimap-logo" %>
17
17
  <% else %>
18
18
  <%= content_tag :div, nil, { class: "minimap-logo placeholder", style: "width: #{image_width(current_organization, :logo) * size_factor}px; height: #{image_height(current_organization, :logo) * size_factor}px;" } do %>
19
19
  <span><%= t("logo", scope: "activemodel.attributes.organization") %></span>
@@ -26,7 +26,7 @@
26
26
 
27
27
  <div class="minimap-footer">
28
28
  <% if current_organization.official_img_footer.attached? %>
29
- <%= image_tag current_organization.attached_uploader(:official_img_footer).path, class: "minimap-official_img_footer" %>
29
+ <%= image_tag current_organization.attached_uploader(:official_img_footer).url, class: "minimap-official_img_footer" %>
30
30
  <% else %>
31
31
  <%= content_tag :div, nil, { class: "minimap-official_img_footer placeholder", style: "width: #{image_width(current_organization, :official_img_footer) * size_factor}px; height: #{image_height(current_organization, :official_img_footer) * size_factor}px;" } do %>
32
32
  <span><%= t("official_img_footer", scope: "activemodel.attributes.organization") %></span>
@@ -1,7 +1,7 @@
1
1
  <div class="flash <%= css %>" data-closable>
2
- <span class="flash__message">
2
+ <div class="flash__message">
3
3
  <%= text %>
4
- </span>
4
+ </div>
5
5
  <button class="close-button" type="button" data-close="">
6
6
  <span aria-hidden="true">×</span>
7
7
  </button>
@@ -23,7 +23,7 @@
23
23
  <div class="layout-nav">
24
24
  <%= link_to decidim_admin.root_path, class: "logo hidden md:block", data: { "external-link": false }, aria: { label: t("decidim.accessibility.logo", organization: current_organization.name) } do %>
25
25
  <% if current_organization.logo.present? %>
26
- <%= image_tag current_organization.attached_uploader(:logo).path, alt: current_organization.name %>
26
+ <%= image_tag current_organization.attached_uploader(:logo).url, alt: current_organization.name %>
27
27
  <% else %>
28
28
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 109">
29
29
  <g fill="#fff">
@@ -5,13 +5,13 @@
5
5
  <div class="hidden md:block">
6
6
  <%= sidebar_menu(secondary_root_menu).render %>
7
7
  </div>
8
- <button data-component="dropdown" data-target="dropdown-menu-sidebar" data-auto-close="true" data-disabled-md="true" data-scroll-to-menu="true">
8
+ <button data-component="dropdown" data-target="dropdown-menu-sidebar" data-auto-close="true" data-scroll-to-menu="true">
9
9
  <span><%= t("menu", scope: "decidim.admin.titles") %></span>
10
10
  <%= icon "arrow-down-s-line" %>
11
11
  <%= icon "arrow-up-s-line" %>
12
12
  </button>
13
13
 
14
- <ul id="dropdown-menu-sidebar" class="md:hidden">
14
+ <ul id="dropdown-menu-sidebar" class="md:hidden" aria-hidden="true">
15
15
  <%= sidebar_menu(secondary_root_menu).render %>
16
16
  </ul>
17
17
  </div>
@@ -150,6 +150,7 @@ ar:
150
150
  new: فئة جديدة
151
151
  export: تصدير الكل
152
152
  import: استيراد
153
+ manage: تدبير
153
154
  newsletter:
154
155
  new: رسالة إخبارية جديدة
155
156
  per_page: في كل صفحة