decidim-admin 0.23.2 → 0.24.0

Sign up to get free protection for your applications and to get access to all the features.

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: