decidim-admin 0.23.2 → 0.24.0

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.

Potentially problematic release.


This version of decidim-admin might be problematic. Click here for more details.

Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/decidim_admin_manifest.js +1 -0
  3. data/app/assets/javascripts/decidim/admin/application.js.es6 +3 -1
  4. data/app/assets/javascripts/decidim/admin/budget_rule_toggler.component.js.es6 +23 -20
  5. data/app/assets/javascripts/decidim/admin/bundle.js +10 -17
  6. data/app/assets/javascripts/decidim/admin/bundle.js.map +1 -1
  7. data/app/assets/javascripts/decidim/admin/form.js.es6 +1 -0
  8. data/app/assets/javascripts/decidim/admin/import_guidance.js.es6 +29 -0
  9. data/app/assets/javascripts/decidim/admin/moderations.js.es6 +24 -0
  10. data/app/assets/javascripts/decidim/admin/proposal_infinite_edit.js.es6 +20 -0
  11. data/app/assets/javascripts/decidim/admin/subform_multi_toggler.component.js.es6 +2 -2
  12. data/app/assets/javascripts/decidim/admin/subform_toggler.component.js.es6 +2 -2
  13. data/app/assets/javascripts/decidim/admin/user_moderations.js +2 -0
  14. data/app/assets/stylesheets/decidim/admin/_variables.scss +9 -0
  15. data/app/assets/stylesheets/decidim/admin/components/_dropdown-menu.scss +3 -0
  16. data/app/assets/stylesheets/decidim/admin/extra/_action-icon.scss +13 -0
  17. data/app/assets/stylesheets/decidim/admin/extra/_block_user.scss +5 -0
  18. data/app/assets/stylesheets/decidim/admin/extra/_title_bar.scss +1 -0
  19. data/app/assets/stylesheets/decidim/admin/modules/_moderations.scss +39 -0
  20. data/app/assets/stylesheets/decidim/admin/modules/_modules.scss +2 -0
  21. data/app/assets/stylesheets/decidim/admin/modules/_reveal.scss +5 -0
  22. data/app/assets/stylesheets/decidim/admin/modules/_secondary-nav.scss +6 -3
  23. data/app/assets/stylesheets/decidim/admin/modules/_user-login.scss +2 -2
  24. data/app/assets/stylesheets/decidim/admin/user_moderations.scss +3 -0
  25. data/app/assets/stylesheets/decidim/admin/utils/_settings.scss +1 -0
  26. data/app/cells/decidim/admin/content_block/show.erb +1 -1
  27. data/app/cells/decidim/admin/content_block_cell.rb +4 -0
  28. data/app/commands/decidim/admin/block_user.rb +70 -0
  29. data/app/commands/decidim/admin/create_import.rb +29 -0
  30. data/app/commands/decidim/admin/create_participatory_space_admin_user_actions.rb +98 -0
  31. data/app/commands/decidim/admin/create_participatory_space_private_user.rb +1 -1
  32. data/app/commands/decidim/admin/create_static_page.rb +2 -1
  33. data/app/commands/decidim/admin/hide_resource.rb +21 -0
  34. data/app/commands/decidim/admin/impersonate_user.rb +17 -1
  35. data/app/commands/decidim/admin/promote_managed_user.rb +10 -0
  36. data/app/commands/decidim/admin/reorder_content_blocks.rb +6 -3
  37. data/app/commands/decidim/admin/transfer_user.rb +78 -0
  38. data/app/commands/decidim/admin/unblock_user.rb +48 -0
  39. data/app/commands/decidim/admin/unreport_user.rb +46 -0
  40. data/app/commands/decidim/admin/update_organization_appearance.rb +12 -4
  41. data/app/commands/decidim/admin/update_static_page.rb +2 -1
  42. data/app/commands/decidim/admin/verify_user_group.rb +1 -1
  43. data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
  44. data/app/controllers/concerns/decidim/admin/global_moderation_context.rb +47 -0
  45. data/app/controllers/concerns/decidim/admin/landing_page.rb +105 -0
  46. data/app/controllers/concerns/decidim/admin/landing_page_content_blocks.rb +118 -0
  47. data/app/controllers/concerns/decidim/moderations/admin/filterable.rb +54 -0
  48. data/app/controllers/decidim/admin/block_user_controller.rb +60 -0
  49. data/app/controllers/decidim/admin/components/base_controller.rb +1 -0
  50. data/app/controllers/decidim/admin/conflicts_controller.rb +46 -0
  51. data/app/controllers/decidim/admin/exports_controller.rb +1 -2
  52. data/app/controllers/decidim/admin/global_moderations/reports_controller.rb +18 -0
  53. data/app/controllers/decidim/admin/global_moderations_controller.rb +32 -0
  54. data/app/controllers/decidim/admin/impersonations_controller.rb +1 -1
  55. data/app/controllers/decidim/admin/imports_controller.rb +52 -0
  56. data/app/controllers/decidim/admin/moderated_users_controller.rb +44 -0
  57. data/app/controllers/decidim/admin/moderations/reports_controller.rb +39 -0
  58. data/app/controllers/decidim/admin/moderations_controller.rb +31 -7
  59. data/app/controllers/decidim/admin/officializations_controller.rb +3 -3
  60. data/app/controllers/decidim/admin/organization_homepage_controller.rb +6 -2
  61. data/app/controllers/decidim/admin/static_pages_controller.rb +7 -0
  62. data/app/events/decidim/resource_hidden_event.rb +37 -0
  63. data/app/forms/decidim/admin/block_user_form.rb +25 -0
  64. data/app/forms/decidim/admin/import_form.rb +85 -0
  65. data/app/forms/decidim/admin/organization_appearance_form.rb +1 -2
  66. data/app/forms/decidim/admin/static_page_form.rb +6 -1
  67. data/app/forms/decidim/admin/transfer_user_form.rb +19 -0
  68. data/app/helpers/decidim/admin/admin_terms_helper.rb +0 -7
  69. data/app/helpers/decidim/admin/application_helper.rb +5 -4
  70. data/app/helpers/decidim/admin/exports_helper.rb +2 -2
  71. data/app/helpers/decidim/admin/filterable_helper.rb +3 -2
  72. data/app/helpers/decidim/admin/imports_helper.rb +43 -0
  73. data/app/helpers/decidim/admin/menu_helper.rb +10 -0
  74. data/app/helpers/decidim/admin/moderations/reports_helper.rb +40 -0
  75. data/app/helpers/decidim/admin/moderations_helper.rb +36 -0
  76. data/app/helpers/decidim/admin/newsletters_helper.rb +4 -10
  77. data/app/helpers/decidim/admin/settings_helper.rb +2 -1
  78. data/app/helpers/decidim/admin/sidebar_menu_helper.rb +13 -0
  79. data/app/helpers/decidim/admin/user_moderations_helper.rb +6 -0
  80. data/app/jobs/decidim/admin/import_participatory_space_private_user_csv_job.rb +1 -1
  81. data/app/jobs/decidim/admin/verify_user_group_from_csv_job.rb +1 -1
  82. data/app/permissions/decidim/admin/permissions.rb +7 -6
  83. data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +1 -1
  84. data/app/presenters/decidim/admin/secondary_menu_presenter.rb +26 -0
  85. data/app/queries/decidim/admin/active_users_counter.rb +1 -2
  86. data/app/queries/decidim/admin/user_filter.rb +1 -2
  87. data/app/views/decidim/admin/admin_terms/show.html.erb +1 -1
  88. data/app/views/decidim/admin/attachment_collections/index.html.erb +1 -1
  89. data/app/views/decidim/admin/attachments/index.html.erb +1 -1
  90. data/app/views/decidim/admin/block_user/new.html.erb +22 -0
  91. data/app/views/decidim/admin/categories/index.html.erb +1 -1
  92. data/app/views/decidim/admin/components/_component.html.erb +12 -0
  93. data/app/views/decidim/admin/components/_form.html.erb +1 -1
  94. data/app/views/decidim/admin/conflicts/edit.html.erb +46 -0
  95. data/app/views/decidim/admin/conflicts/index.html.erb +34 -0
  96. data/app/views/decidim/admin/dashboard/show.html.erb +2 -1
  97. data/app/views/decidim/admin/exports/_dropdown.html.erb +1 -1
  98. data/app/views/decidim/admin/imports/_dropdown.html.erb +9 -0
  99. data/app/views/decidim/admin/imports/new.html.erb +57 -0
  100. data/app/views/decidim/admin/moderated_users/_report.html.erb +10 -0
  101. data/app/views/decidim/admin/moderated_users/index.html.erb +78 -0
  102. data/app/views/decidim/admin/moderations/_report.html.erb +1 -1
  103. data/app/views/decidim/admin/moderations/index.html.erb +28 -9
  104. data/app/views/decidim/admin/moderations/reports/index.html.erb +102 -0
  105. data/app/views/decidim/admin/moderations/reports/show.html.erb +62 -0
  106. data/app/views/decidim/admin/newsletters/index.html.erb +1 -1
  107. data/app/views/decidim/admin/newsletters/select_recipients_to_deliver.html.erb +2 -2
  108. data/app/views/decidim/admin/officializations/index.html.erb +13 -4
  109. data/app/views/decidim/admin/organization_appearance/_form.html.erb +0 -4
  110. data/app/views/decidim/admin/organization_appearance/form/_colors.html.erb +1 -1
  111. data/app/views/decidim/admin/organization_appearance/form/_images.html.erb +4 -4
  112. data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +1 -1
  113. data/app/views/decidim/admin/shared/landing_page/edit.html.erb +47 -0
  114. data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +15 -0
  115. data/app/views/decidim/admin/static_pages/_form.html.erb +6 -0
  116. data/app/views/decidim/admin/users/index.html.erb +1 -1
  117. data/app/views/layouts/decidim/admin/_application.html.erb +5 -1
  118. data/app/views/layouts/decidim/admin/_title_bar.html.erb +2 -2
  119. data/app/views/layouts/decidim/admin/global_moderations.html.erb +7 -0
  120. data/app/views/layouts/decidim/admin/newsletters.erb +1 -1
  121. data/app/views/layouts/decidim/admin/settings.html.erb +2 -33
  122. data/app/views/layouts/decidim/admin/users.html.erb +11 -0
  123. data/config/locales/ar.yml +0 -5
  124. data/config/locales/bg.yml +0 -1
  125. data/config/locales/ca.yml +149 -4
  126. data/config/locales/cs.yml +151 -6
  127. data/config/locales/de.yml +150 -5
  128. data/config/locales/el.yml +62 -5
  129. data/config/locales/en.yml +150 -5
  130. data/config/locales/es-MX.yml +148 -3
  131. data/config/locales/es-PY.yml +148 -3
  132. data/config/locales/es.yml +148 -3
  133. data/config/locales/eu.yml +0 -3
  134. data/config/locales/fi-plain.yml +148 -3
  135. data/config/locales/fi.yml +148 -3
  136. data/config/locales/fr-CA.yml +139 -4
  137. data/config/locales/fr.yml +139 -4
  138. data/config/locales/gl.yml +121 -5
  139. data/config/locales/hu.yml +13 -5
  140. data/config/locales/id-ID.yml +0 -3
  141. data/config/locales/is-IS.yml +36 -3
  142. data/config/locales/it.yml +59 -5
  143. data/config/locales/ja.yml +41 -8
  144. data/config/locales/lv.yml +0 -5
  145. data/config/locales/nl.yml +120 -7
  146. data/config/locales/no.yml +11 -5
  147. data/config/locales/pl.yml +166 -20
  148. data/config/locales/pt-BR.yml +0 -3
  149. data/config/locales/pt.yml +0 -5
  150. data/config/locales/ro-RO.yml +21 -5
  151. data/config/locales/ru.yml +0 -3
  152. data/config/locales/sk.yml +0 -5
  153. data/config/locales/sl.yml +0 -1
  154. data/config/locales/sr-CS.yml +0 -3
  155. data/config/locales/sv.yml +50 -4
  156. data/config/locales/tr-TR.yml +81 -4
  157. data/config/locales/uk.yml +0 -3
  158. data/config/locales/zh-CN.yml +0 -5
  159. data/config/routes.rb +21 -1
  160. data/lib/decidim/admin.rb +6 -0
  161. data/lib/decidim/admin/engine.rb +76 -1
  162. data/lib/decidim/admin/import.rb +12 -0
  163. data/lib/decidim/admin/import/creator.rb +82 -0
  164. data/lib/decidim/admin/import/importer.rb +82 -0
  165. data/lib/decidim/admin/import/importer_factory.rb +17 -0
  166. data/lib/decidim/admin/import/readers.rb +39 -0
  167. data/lib/decidim/admin/import/readers/base.rb +31 -0
  168. data/lib/decidim/admin/import/readers/csv.rb +23 -0
  169. data/lib/decidim/admin/import/readers/json.rb +25 -0
  170. data/lib/decidim/admin/import/readers/xls.rb +25 -0
  171. data/lib/decidim/admin/test/commands/create_attachment_collection_examples.rb +6 -6
  172. data/lib/decidim/admin/test/commands/create_category_examples.rb +6 -6
  173. data/lib/decidim/admin/test/filterable_examples.rb +1 -8
  174. data/lib/decidim/admin/test/manage_moderations_examples.rb +68 -4
  175. data/lib/decidim/admin/version.rb +1 -1
  176. metadata +71 -15
  177. data/app/assets/javascripts/decidim/admin/gallery.js.es6 +0 -5
@@ -8,11 +8,12 @@
8
8
  <table class="table-list">
9
9
  <thead>
10
10
  <tr>
11
- <th><%= t(".name") %></th>
12
- <th><%= t(".nickname") %></th>
13
- <th><%= t(".created_at") %></th>
14
- <th><%= t(".status") %></th>
11
+ <th><%= sort_link(query, :name, t(".name"), default_order: :desc) %></th>
12
+ <th><%= sort_link(query, :nickname, t(".nickname"), default_order: :desc) %></th>
13
+ <th><%= sort_link(query, :created_at, t(".created_at"), default_order: :desc) %></th>
14
+ <th><%= sort_link(query, :officialized_at, t(".status"), default_order: :desc) %></th>
15
15
  <th><%= t(".badge") %></th>
16
+ <th><%= sort_link(query, :user_moderation_report_count, t(".reports"), default_order: :desc) %></th>
16
17
  <th><%= t(".actions") %></th>
17
18
  </tr>
18
19
  </thead>
@@ -29,8 +30,16 @@
29
30
  <td><%= l user.created_at, format: :short %></td>
30
31
  <td><%= user.officialized? ? t(".officialized") : t(".not_officialized") %></td>
31
32
  <td><%= translated_attribute(user.officialized_as) %></td>
33
+ <td><%= user.report_count %></td>
32
34
 
33
35
  <td class="table-list__actions">
36
+ <% if allowed_to?(:block, :admin_user) %>
37
+ <% if user.blocked? %>
38
+ <%= icon_link_to "ban", user_block_path(user_id: user.id), t(".unblock"), class: "action-icon action-icon--disabled", method: :delete %>
39
+ <% else %>
40
+ <%= icon_link_to "ban", new_user_block_path(user_id: user.id), t(".block"), class: "action-icon action-icon" %>
41
+ <% end %>
42
+ <% end %>
34
43
  <% if allowed_to? :show_email, :user, user: user %>
35
44
  <%= icon_link_to "envelope-open", show_email_officialization_path(user_id: user.id), t(".show_email"), class: "action-icon action-icon--show-email", data: { full_name: user.name, toggle: "show-email-modal" } %>
36
45
  <% end %>
@@ -5,10 +5,6 @@
5
5
  <h2 class="card-title"><%= t ".homepage_appearance_title" %></h2>
6
6
  </div>
7
7
  <div class="card-section">
8
- <div class="row column">
9
- <%= form.check_box :show_statistics %>
10
- </div>
11
-
12
8
  <div class="row column">
13
9
  <%= form.translated :editor, :description %>
14
10
  </div>
@@ -13,7 +13,7 @@
13
13
  <%= form.color_field :highlight_alternative_color, value: current_organization.colors["highlight-alternative"] %>
14
14
  </div>
15
15
 
16
- <% if true %>
16
+ <% if Decidim.enable_html_header_snippets %>
17
17
  <div class="row column">
18
18
  <%= form.text_area :header_snippets %>
19
19
  <p class="help-text"><%= t(".header_snippets_help") %></p>
@@ -11,19 +11,19 @@
11
11
 
12
12
  <div class="organization-images">
13
13
  <div class="preview">
14
- <%= form.upload :favicon, dimensions_info: current_organization.favicon.dimensions_info, extension_whitelist: current_organization.favicon.extension_whitelist %>
14
+ <%= form.upload :favicon, dimensions_info: current_organization.favicon.dimensions_info, extension_allowlist: current_organization.favicon.extension_allowlist %>
15
15
  </div>
16
16
 
17
17
  <div class="preview">
18
- <%= form.upload :logo, dimensions_info: current_organization.logo.dimensions_info, extension_whitelist: current_organization.favicon.extension_whitelist %>
18
+ <%= form.upload :logo, dimensions_info: current_organization.logo.dimensions_info, extension_allowlist: current_organization.favicon.extension_allowlist %>
19
19
  </div>
20
20
 
21
21
  <div class="preview">
22
- <%= form.upload :official_img_header, dimensions_info: current_organization.official_img_header.dimensions_info, extension_whitelist: current_organization.favicon.extension_whitelist %>
22
+ <%= form.upload :official_img_header, dimensions_info: current_organization.official_img_header.dimensions_info, extension_allowlist: current_organization.favicon.extension_allowlist %>
23
23
  </div>
24
24
 
25
25
  <div class="preview">
26
- <%= form.upload :official_img_footer, dimensions_info: current_organization.official_img_footer.dimensions_info, extension_whitelist: current_organization.favicon.extension_whitelist %>
26
+ <%= form.upload :official_img_footer, dimensions_info: current_organization.official_img_footer.dimensions_info, extension_allowlist: current_organization.favicon.extension_allowlist %>
27
27
  </div>
28
28
  </div>
29
29
  </div>
@@ -4,7 +4,7 @@
4
4
  <%= t(".title") %>
5
5
  <% if allowed_to? :create, :space_private_user %>
6
6
  <%= link_to t(".import_via_csv"), new_participatory_space_private_users_csv_import_path, class: "button tiny button--title import" %>
7
- <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.participatory_space_private_user.name", scope: "decidim.admin")), url_for(action: :new), class: "button tiny button--title new" %>
7
+ <%= link_to t("actions.participatory_space_private_user.new", scope: "decidim.admin"), url_for(action: :new), class: "button tiny button--title new" %>
8
8
  <% end %>
9
9
  </h2>
10
10
  </div>
@@ -0,0 +1,47 @@
1
+ <div class="grid-container full">
2
+ <div class="grid-x grid-margin-x card-grid">
3
+ <div class="cell small-6">
4
+ <div class="card">
5
+ <div class="card-section">
6
+ <h5><%= active_content_blocks_title %></h5>
7
+
8
+ <ul class="draggable-list js-connect js-list-actives" data-sort-url="<%= resource_sort_url %>">
9
+ <% active_blocks.each do |content_block| %>
10
+ <%= cell resource_content_block_cell, content_block %>
11
+ <% end %>
12
+ </ul>
13
+ </div>
14
+ </div>
15
+ </div>
16
+
17
+ <div class="cell small-6">
18
+ <div class="card">
19
+ <div class="card-section">
20
+ <h5><%= inactive_content_blocks_title %></h5>
21
+
22
+ <ul class="draggable-list js-connect js-list-availables">
23
+ <% inactive_blocks.each do |content_block_or_manifest| %>
24
+ <%= cell resource_content_block_cell, content_block_or_manifest %>
25
+ <% end %>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+
33
+ <script>
34
+ document.addEventListener("dragend", function (event) {
35
+ var activeBlocks = Array.prototype.slice.call(document.querySelectorAll(".js-list-actives li"));
36
+ var activeBlocksManifestName = activeBlocks.map(block => block.dataset.contentBlockManifestName);
37
+ var sortUrl = document.querySelector(".js-list-actives").dataset.sortUrl;
38
+ var target = event.target;
39
+
40
+ $.ajax({
41
+ method: "PUT",
42
+ url: sortUrl,
43
+ contentType: "application/json",
44
+ data: JSON.stringify({ manifests: activeBlocksManifestName })
45
+ });
46
+ })
47
+ </script>
@@ -0,0 +1,15 @@
1
+ <%= decidim_form_for(@form, html: { class: "form edit_content_block" }, url: resource_landing_page_content_block_path) do |form| %>
2
+ <div class="card">
3
+ <div class="card-divider">
4
+ <h2 class="card-title"><%= t content_block.public_name_key %></h2>
5
+ </div>
6
+
7
+ <div class="card-section">
8
+ <%= cell content_block.settings_form_cell, form, content_block: content_block %>
9
+ </div>
10
+ </div>
11
+
12
+ <div class="button--double form-general-submit">
13
+ <%= form.submit submit_button_text %>
14
+ </div>
15
+ <% end %>
@@ -27,3 +27,9 @@
27
27
  <div class="row column">
28
28
  <%= form.check_box :show_in_footer %>
29
29
  </div>
30
+
31
+ <% if form.object.control_public_access? %>
32
+ <div class="row column">
33
+ <%= form.check_box :allow_public_access %>
34
+ </div>
35
+ <% end %>
@@ -3,7 +3,7 @@
3
3
  <h2 class="card-title">
4
4
  <%= t "decidim.admin.titles.users" %>
5
5
  <% if allowed_to? :create, :admin_user %>
6
- <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.user.name", scope: "decidim.admin")), ["new", "user"], class: "button tiny button--title" %>
6
+ <%= link_to t("actions.user.new", scope: "decidim.admin"), ["new", "user"], class: "button tiny button--title" %>
7
7
  <% end %>
8
8
  </h2>
9
9
  </div>
@@ -1,3 +1,5 @@
1
+ <% add_decidim_page_title(t("titles.panel", scope: "decidim.admin")) %>
2
+ <% add_decidim_page_title(current_organization.name) %>
1
3
  <!doctype html>
2
4
  <html class="no-js" lang="<%= I18n.locale %>">
3
5
  <head>
@@ -7,15 +9,17 @@
7
9
  <meta name="copyright" content="">
8
10
  <meta name="description" content="">
9
11
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
10
- <title><%= title %></title>
12
+ <title><%= decidim_page_title %></title>
11
13
  <%= render partial: "layouts/decidim/admin/header" %>
12
14
  <%= foundation_datepicker_locale_tag %>
13
15
  </head>
14
16
  <body>
17
+ <%= render partial: "layouts/decidim/timeout_modal" %>
15
18
  <%= render partial: "layouts/decidim/admin/template_top" %>
16
19
  <div class="layout-nav">
17
20
  <%= main_menu.render %>
18
21
  <%= yield :secondary_nav if content_for? :secondary_nav %>
22
+ <%= yield :sidebar_menu_nav if content_for? :sidebar_menu_nav %>
19
23
  </div>
20
24
  <div class="layout-content">
21
25
  <div class="container">
@@ -2,9 +2,9 @@
2
2
  <a href="#menu" class="menu-trigger"><%= icon "menu" %></a>
3
3
  <%= link_to decidim.root_path, class: "logo", target: "_blank" do %>
4
4
  <% if current_organization.logo.present? %>
5
- <%= image_tag current_organization.logo.url, alt: title %>
5
+ <%= image_tag current_organization.logo.url, alt: current_organization.name %>
6
6
  <% else %>
7
- <%= title %>
7
+ <%= current_organization.name %>
8
8
  <% end %>
9
9
  <% end %>
10
10
  <div class='tool-bar'>
@@ -0,0 +1,7 @@
1
+ <% content_for :sidebar_menu_nav do %>
2
+ <%= global_moderation_menu.render(title: t(".title" )) %>
3
+ <% end %>
4
+
5
+ <%= render "layouts/decidim/admin/application" do %>
6
+ <%= yield %>
7
+ <% end %>
@@ -4,7 +4,7 @@
4
4
  <%= t ".title" %>
5
5
  </div>
6
6
  <div class="secondary-nav__actions">
7
- <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.newsletter.name", scope: "decidim.admin")), ["newsletter_templates"], class: "button expanded small new" %>
7
+ <%= link_to t("actions.newsletter.new", scope: "decidim.admin"), ["newsletter_templates"], class: "button expanded small new" %>
8
8
  </div>
9
9
  </div>
10
10
  <% end %>
@@ -1,37 +1,6 @@
1
- <% content_for :secondary_nav do %>
2
- <div class="secondary-nav">
3
- <div class="secondary-nav__title">
4
- <%= t ".title" %>
5
- </div>
6
- <ul>
7
- <li <% if is_active_link?(decidim_admin.edit_organization_path) %> class="is-active" <% end %>>
8
- <%= link_to t("menu.configuration", scope: "decidim.admin"), decidim_admin.edit_organization_path %>
9
- </li>
10
- <li <% if is_active_link?(decidim_admin.edit_organization_appearance_path) %> class="is-active" <% end %>>
11
- <%= link_to t("menu.appearance", scope: "decidim.admin"), decidim_admin.edit_organization_appearance_path %>
12
- </li>
13
- <li <% if is_active_link?(decidim_admin.edit_organization_homepage_path, /^\/admin\/organization\/homepage/) %> class="is-active" <% end %>>
14
- <%= link_to t("menu.homepage", scope: "decidim.admin"), decidim_admin.edit_organization_homepage_path %>
15
- </li>
16
- <li <% if is_active_link?(decidim_admin.scopes_path) %> class="is-active" <% end %>>
17
- <%= link_to t("menu.scopes", scope: "decidim.admin"), decidim_admin.scopes_path %>
18
- </li>
19
- <li <% if is_active_link?(decidim_admin.scope_types_path) %> class="is-active" <% end %>>
20
- <%= link_to t("menu.scope_types", scope: "decidim.admin"), decidim_admin.scope_types_path %>
21
- </li>
22
- <li <% if is_active_link?(decidim_admin.areas_path) %> class="is-active" <% end %>>
23
- <%= link_to t("menu.areas", scope: "decidim.admin"), decidim_admin.areas_path %>
24
- </li>
25
- <li <% if is_active_link?(decidim_admin.area_types_path) %> class="is-active" <% end %>>
26
- <%= link_to t("menu.area_types", scope: "decidim.admin"), decidim_admin.area_types_path %>
27
- </li>
28
- <li <% if allowed_to?(:update, :help_sections) && is_active_link?(decidim_admin.help_sections_path) %> class="is-active" <% end %>>
29
- <%= link_to t("menu.help_sections", scope: "decidim.admin"), decidim_admin.help_sections_path %>
30
- </li>
31
- </ul>
32
- </div>
1
+ <% content_for :sidebar_menu_nav do %>
2
+ <%= organization_settings_menu.render(title: t(".title") ) %>
33
3
  <% end %>
34
-
35
4
  <%= render "layouts/decidim/admin/application" do %>
36
5
  <%= yield %>
37
6
  <% end %>
@@ -22,6 +22,17 @@
22
22
  <% if allowed_to? :index, :impersonatable_user %>
23
23
  <li <% if is_active_link?(decidim_admin.impersonatable_users_path) %> class="is-active" <% end %>>
24
24
  <%= link_to t("menu.impersonations", scope: "decidim.admin"), decidim_admin.impersonatable_users_path %>
25
+ <ul>
26
+ <li <% if is_active_link?(decidim_admin.conflicts_path) %> class="is-active" <% end %>>
27
+ <%= %>
28
+ <%= link_to link_to t("title", scope: "decidim.admin.conflicts"), decidim_admin.conflicts_path %>
29
+ </li>
30
+ </ul>
31
+ </li>
32
+ <% end %>
33
+ <% if allowed_to? :index, :moderate_users %>
34
+ <li <% if is_active_link?(decidim_admin.moderated_users_path) %> class="is-active" <% end %>>
35
+ <%= link_to t("menu.reported_users", scope: "decidim.admin"), decidim_admin.moderated_users_path %>
25
36
  </li>
26
37
  <% end %>
27
38
  <li <% if is_active_link?(decidim_admin.authorization_workflows_path) %> class="is-active" <% end %>>
@@ -63,7 +63,6 @@ ar:
63
63
  rich_text_editor_in_public_views: إتاحة محرر النص الغني للمشارِكين
64
64
  secondary_color: ثانوي
65
65
  send_welcome_notification: إرسال إشعار بالترحيب
66
- show_statistics: عرض الإحصائيات
67
66
  success_color: نجاح
68
67
  time_zone: المنطقة الزمنية
69
68
  tos_version: شروط وأحكام الخدمة
@@ -137,7 +136,6 @@ ar:
137
136
  accept:
138
137
  success: رائع! لقد قمت بالموافقة على شروط الإستخدام للمدير.
139
138
  actions:
140
- accept: أوافق على شروط المدير هذه
141
139
  are_you_sure: هل أنت متأكد مِن أنك رافض لشروط المدير؟
142
140
  refuse: ارفض شروط المدير
143
141
  title: وافق على شروط وأحكام الإستخدام
@@ -522,7 +520,6 @@ ar:
522
520
  instagram: إينستاجرام
523
521
  social_handlers: التواصل الاجتماعي
524
522
  twitter: تويتر
525
- url: العنوان الشبكي
526
523
  youtube: يوتيوب
527
524
  update:
528
525
  error: حدثت مشكلة أثناء تحديث هذه المؤسسة.
@@ -556,7 +553,6 @@ ar:
556
553
  error: حدثت مشكلة في حذف مشارك خاص لهذه المساحة التشاركية.
557
554
  success: المشاركة الفضاء الفضاء وصول المشاركين دمرت بنجاح.
558
555
  index:
559
- import_via_csv: استيراد عبر ملف csv
560
556
  title: المشاركة الفضاء المشارك الخاص
561
557
  new:
562
558
  create: إنشاء
@@ -736,7 +732,6 @@ ar:
736
732
  fields:
737
733
  hidden_at: مخبأة في
738
734
  report_count: عد
739
- reportable: الإبلاغ عنها
740
735
  reported_content_url: تم الإبلاغ عن عنوان URL للمحتوى
741
736
  reports: تقارير
742
737
  visit_url: زيارة العنوان الشبكي
@@ -70,7 +70,6 @@ bg:
70
70
  rich_text_editor_in_public_views: Разреши редактора на rich text за участниците
71
71
  secondary_color: Вторичен
72
72
  send_welcome_notification: Изпращай приветствия
73
- show_statistics: Покажи статистиката
74
73
  success_color: Успешно
75
74
  time_zone: Часова зона
76
75
  tos_version: Версия на условия за ползване
@@ -26,11 +26,14 @@ ca:
26
26
  published_at: Publicat el
27
27
  weight: Pes
28
28
  id: ID
29
+ import:
30
+ user_group_id: Importar com
29
31
  newsletter:
30
32
  body: Cos
31
33
  subject: Assumpte
32
34
  organization:
33
35
  alert_color: Alerta
36
+ available_authorizations: Autoritzacions disponibles
34
37
  badges_enabled: Habilitar les ensenyes
35
38
  comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
36
39
  cta_button_path: URL del botó d'acció
@@ -41,6 +44,8 @@ ca:
41
44
  enable_omnipresent_banner: Mostrar el banner omnipresent
42
45
  facebook_handler: Nom d'usuari de Facebook
43
46
  favicon: Icona
47
+ force_authentication: Forçar autenticació
48
+ force_users_to_authenticate_before_access_organization: Forçar les usuàries a autenticar-se abans d'accedir a l'organització
44
49
  from: Adreça des d'on s'enviaran els correus electrònics
45
50
  github_handler: Nom d'usuari de GitHub
46
51
  header_snippets: Codi personalitzat a la capçalera
@@ -53,6 +58,7 @@ ca:
53
58
  highlighted_content_banner_image: Imatge
54
59
  highlighted_content_banner_short_description: Breu descripció
55
60
  highlighted_content_banner_title: Títol
61
+ host: Host
56
62
  instagram_handler: Nom d'usuari a Instagram
57
63
  logo: Logotip
58
64
  machine_translation_display_priority: Prioritat al mostrar les traduccions automàtiques
@@ -65,17 +71,21 @@ ca:
65
71
  omnipresent_banner_short_description: Breu descripció
66
72
  omnipresent_banner_title: Títol
67
73
  omnipresent_banner_url: URL
74
+ organization_admin_email: Correu electrònic de l'administradora de l'organització
75
+ organization_admin_name: Nom de l'administradora de l'organització
76
+ organization_locales: Idiomes de l'organització
68
77
  primary_color: Primària
69
78
  reference_prefix: prefix de referència
70
79
  rich_text_editor_in_public_views: Habilitar l'editor de text enriquit
71
80
  secondary_color: Secundari
81
+ secondary_hosts: Hosts secundaris
72
82
  send_welcome_notification: Envia la notificació de benvinguda
73
- show_statistics: Mostrar estadístiques
74
83
  success_color: Èxit
75
84
  time_zone: Zona horària
76
85
  tos_version: Versió dels Termes de Servei
77
86
  twitter_handler: Nom d'usuària de Twitter
78
87
  user_groups_enabled: Habilitar grups
88
+ users_registration_mode: Mode registre d'usuàries
79
89
  warning_color: Avís
80
90
  welcome_notification_body: Cos de la notificació de benvinguda
81
91
  welcome_notification_subject: Assumpte de la notificació de benvinguda
@@ -94,6 +104,7 @@ ca:
94
104
  settings:
95
105
  scope_id: Àmbit
96
106
  static_page:
107
+ allow_public_access: Permet l'accés sense autenticació
97
108
  changed_notably: S'han produït canvis notables.
98
109
  content: Contingut
99
110
  organization: Organització
@@ -116,6 +127,10 @@ ca:
116
127
  allowed_file_content_types: Fitxer d'imatge no vàlid
117
128
  official_img_header:
118
129
  allowed_file_content_types: Fitxer d'imatge no vàlid
130
+ new_import:
131
+ attributes:
132
+ file:
133
+ invalid_mime_type: Tipus Mime invàlid
119
134
  activerecord:
120
135
  attributes:
121
136
  decidim/static_page:
@@ -134,21 +149,34 @@ ca:
134
149
  admin:
135
150
  actions:
136
151
  add: Afegir
152
+ attachment:
153
+ new: Nou arxiu adjunt
154
+ attachment_collection:
155
+ new: Nova col·lecció d'arxius adjunts
137
156
  browse: Explorar
157
+ category:
158
+ new: Nova categoria
138
159
  export: Exporta
160
+ import: Importar
139
161
  manage: Gestionar
140
162
  new: Nou %{name}
163
+ newsletter:
164
+ new: Nou butlletí
165
+ participatory_space_private_user:
166
+ new: Nou usuari privat de l'espai participatiu
141
167
  per_page: Per pàgina
142
168
  permissions: Permisos
143
169
  reject: Rebutjar
144
170
  share: Compartir
171
+ user:
172
+ new: Nou usuari
145
173
  verify: Verificar
146
174
  admin_terms_of_use:
147
175
  accept:
148
176
  error: S'ha produït un error en acceptar els Termes i Condicions dell panell d'administració.
149
177
  success: Genial! Has acceptat els Termes i Condicions del panell d'administració.
150
178
  actions:
151
- accept: Estic d'acord amb aquests termes
179
+ accept: Estic d'acord amb els termes següents
152
180
  are_you_sure: Segur que vols rebutjar els Termes i Condicions del panell d'administració?
153
181
  refuse: Rebutjar els termes
154
182
  title: Accepto els Termes i Condicions d'Administració
@@ -227,6 +255,12 @@ ca:
227
255
  autocomplete:
228
256
  no_results: No s'han trobat resultats
229
257
  search_prompt: Escriu com a mínim tres caràcters per cercar
258
+ block_user:
259
+ new:
260
+ action: Bloquejar compte i enviar justificació
261
+ description: El bloqueig d'una usuària deixarà el seu compte inservible, pots facilitar a la teva justificació i directrius les maneres que consideris per tal de desbloquejar a la usuària.
262
+ justification: Justificació
263
+ title: Bloquejar a la usuària %{name}
230
264
  categories:
231
265
  create:
232
266
  error: S'ha produït un error en crear aquesta categoria.
@@ -282,6 +316,21 @@ ca:
282
316
  update:
283
317
  error: S'ha produït un error en actualitzar aquest component.
284
318
  success: El component s'ha actualitzat correctament.
319
+ conflicts:
320
+ attempts: Intents
321
+ 'false': 'No'
322
+ managed_user_name: Usuari gestionat
323
+ solved: Resolt
324
+ title: Conflictes de verificacions
325
+ transfer:
326
+ email: Correu electrònic
327
+ error: S¡ha produït un error en transferir la participant actual a la participant gestionada.
328
+ name: Nom
329
+ reason: Raó
330
+ success: La transferència s'ha completat correctament.
331
+ title: Transferir
332
+ 'true': 'Sí'
333
+ user_name: Usuària
285
334
  dashboard:
286
335
  show:
287
336
  view_more_logs: Veure més registres
@@ -298,6 +347,9 @@ ca:
298
347
  category_id_eq:
299
348
  label: Categoria
300
349
  filter_label: Filtre
350
+ moderations:
351
+ reportable_type_string_eq:
352
+ label: Tipus
301
353
  officialized_at_null:
302
354
  label: Estat
303
355
  values:
@@ -318,9 +370,16 @@ ca:
318
370
  search_label: Cercar
319
371
  search_placeholder:
320
372
  name_or_nickname_or_email_cont: Buscar %{collection} per correu electrònic, nom o àlies.
373
+ reported_id_string_or_reported_content_cont: Cercar %{collection} per id o contingut reportable.
321
374
  title_cont: Buscar %{collection} per títol.
322
375
  state_eq:
323
376
  label: Estat
377
+ forms:
378
+ file_help:
379
+ import:
380
+ explanation: 'Instruccions per a l''arxiu:'
381
+ message_1: Estan suportats els arxius CSV, JSON i Excel (.xls)
382
+ message_2: Pels arxius CSV, el separador entre columnes ha de ser un punt i coma (";")
324
383
  help_sections:
325
384
  error: S'ha produït un error en actualitzar les seccions d'ajuda
326
385
  form:
@@ -359,6 +418,24 @@ ca:
359
418
  impersonate_existing_managed_user: Gestionar la participant "%{name}"
360
419
  impersonate_existing_user: Gestionar la participant "%{name}"
361
420
  impersonate_new_managed_user: Gestionar una nova participant
421
+ imports:
422
+ creators:
423
+ proposalcreator: Creador de la proposta
424
+ error: S'ha produït un error durant la importació
425
+ help:
426
+ proposalcreator: L'arxiu ha d'incloure els noms de columna title/en i body/en (o un altre idioma de preferència per exemple, title/ca i body/ca). També s'admeten les columnes scope/id i category/id.
427
+ import_from_file: Importar d'un arxiu
428
+ invalid_lines: S'ha trobat un error al recurs número %{invalid_lines}
429
+ new:
430
+ accepted_mime_types:
431
+ csv: csv
432
+ json: json
433
+ xls: xls
434
+ actions:
435
+ back: Tornar
436
+ file_legend: Afegir un arxiu d'importació que serà processat.
437
+ import: Importar
438
+ notice: "%{number} %{resource_name} importat correctament"
362
439
  logs:
363
440
  logs_list:
364
441
  no_logs_yet: Encara no hi ha cap registre d'activitat
@@ -382,8 +459,10 @@ ca:
382
459
  help_sections: Seccions d'ajuda
383
460
  homepage: Pàgina d'inici
384
461
  impersonations: Impersonacions
462
+ moderation: Moderacions globals
385
463
  newsletters: Butlletins
386
464
  participants: Participants
465
+ reported_users: Usuàries reportades
387
466
  scope_types: Tipus d'àmbit
388
467
  scopes: Àmbits
389
468
  settings: Configuració
@@ -471,6 +550,26 @@ ca:
471
550
  phone: Telèfon
472
551
  state: Estat
473
552
  users_count: Nombre de participants
553
+ moderated_users:
554
+ index:
555
+ actions:
556
+ block: Bloquejar usuària
557
+ title: Accions
558
+ unblock: Desbloquejar usuària
559
+ unreport: Desfer denúncia
560
+ name: Nom
561
+ nickname: Àlies
562
+ reason: Raó
563
+ reports: Número de denúncies
564
+ title: Llistant usuàries reportades
565
+ report:
566
+ reasons:
567
+ does_not_belong: No pertany
568
+ offensive: Ofensiu
569
+ spam: Spam
570
+ tabs:
571
+ blocked: Bloquejat
572
+ unblocked: No bloquejat
474
573
  moderations:
475
574
  index:
476
575
  title: Moderacions
@@ -479,6 +578,21 @@ ca:
479
578
  does_not_belong: No pertany
480
579
  offensive: Ofensiu
481
580
  spam: Contingut no desitjat
581
+ reports:
582
+ index:
583
+ author: Autor(s)
584
+ callout_html: Un contingut apareix al panell de moderació quan ha estat reportat per una usuària (pot ser qualsevol amb un compte registrat) fent clic en la icona %{icon} al costat de l'element.
585
+ content_original_language: Idioma original del contingut
586
+ participatory_space: Espai de participació
587
+ reported_content: Contingut reportat
588
+ see_current: Veure actual
589
+ see_original: Veure original
590
+ title: Informes de moderació
591
+ show:
592
+ report_details: Detalls del motiu
593
+ report_language: Idioma de l'informe
594
+ report_reason: Motiu
595
+ title: Detalls de l'informe
482
596
  newsletter_templates:
483
597
  index:
484
598
  preview_template: Previsualitzar
@@ -544,6 +658,9 @@ ca:
544
658
  error: S'ha produït un error en actualitzar aquest butlletí.
545
659
  success: Butlletí actualitzat correctament. Si us plau, revisa'l abans d'enviar-lo.
546
660
  officializations:
661
+ block:
662
+ error: S'ha produït un error en bloquejar a la participant
663
+ success: Participant bloqueada correctament
547
664
  create:
548
665
  success: La participant s'ha oficialitzat correctament
549
666
  destroy:
@@ -551,6 +668,7 @@ ca:
551
668
  index:
552
669
  actions: Accions
553
670
  badge: Insígnia
671
+ block: Bloquejar usuària
554
672
  created_at: Creat el
555
673
  name: Nom
556
674
  nickname: Àlies
@@ -558,8 +676,10 @@ ca:
558
676
  officialize: Oficialitza
559
677
  officialized: Oficialitzada
560
678
  reofficialize: Torna a oficialitzar
679
+ reports: Informes
561
680
  show_email: Mostra l'adreça de correu
562
681
  status: Estat
682
+ unblock: Desbloquejar usuària
563
683
  unofficialize: Des-oficialitzar
564
684
  new:
565
685
  badge: Insígnia d'oficialització
@@ -573,6 +693,9 @@ ca:
573
693
  hidden: ocult
574
694
  show: Mostra
575
695
  title: Mostra l'adreça de correu electrònic de la participant
696
+ unblock:
697
+ error: S'ha produït un error al desbloquejar a la participant
698
+ success: Participant desbloquejada correctament
576
699
  organization:
577
700
  edit:
578
701
  title: Edita organització
@@ -619,7 +742,7 @@ ca:
619
742
  error: S'ha produït un error en eliminar una participant participada d'aquest espai participatiu.
620
743
  success: L'accés de la participant a l'espai de participació privat s'ha eliminat correctament.
621
744
  index:
622
- import_via_csv: Importar via csv
745
+ import_via_csv: Importar des de CSV
623
746
  title: Participant de l'espai participatiu privat
624
747
  new:
625
748
  create: Crear
@@ -742,6 +865,7 @@ ca:
742
865
  impersonatable_users: Participants que es poden gestionar
743
866
  impersonations: Gestió de participants
744
867
  metrics: Mètriques
868
+ panel: Administradora
745
869
  participants: Participants
746
870
  scope_types: Tipus d'àmbit
747
871
  scopes: Àmbits
@@ -805,8 +929,19 @@ ca:
805
929
  errors:
806
930
  impersonate_user:
807
931
  reason: Has d'indicar un motiu per a la gestió d'una participant no gestionada
932
+ metrics:
933
+ blocked_users:
934
+ object: usuàries bloquejades
935
+ title: Usuàries bloquejades
936
+ reported_users:
937
+ object: usuàries reportades
938
+ title: Usuàries reportades
939
+ user_reports:
940
+ object: informes d'usuari
941
+ title: Informes d'usuari
808
942
  moderations:
809
943
  actions:
944
+ expand: Expandir
810
945
  hidden: Ocults
811
946
  hide: Amagar
812
947
  not_hidden: No ocult
@@ -827,18 +962,28 @@ ca:
827
962
  models:
828
963
  moderation:
829
964
  fields:
965
+ created_at: Data de creació
830
966
  hidden_at: Data d'ocultació
967
+ participatory_space: Espai de participació
831
968
  report_count: Recompte
832
- reportable: Tipus
969
+ reportable_id: Id
970
+ reportable_type: Tipus
833
971
  reported_content_url: URL contingut del contingut reportat
834
972
  reports: Denúncies
835
973
  visit_url: Visiteu l'URL
974
+ report:
975
+ fields:
976
+ details: Detalls del motiu
977
+ locale: Idioma
978
+ reason: Motiu
836
979
  errors:
837
980
  messages:
838
981
  invalid_json: JSON no vàlid
839
982
  layouts:
840
983
  decidim:
841
984
  admin:
985
+ global_moderations:
986
+ title: Moderacions globals
842
987
  newsletters:
843
988
  title: Butlletins
844
989
  settings: