decidim-admin 0.31.4 → 0.31.6

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/admin/create_newsletter.rb +1 -1
  3. data/app/commands/decidim/admin/create_taxonomy_filter.rb +16 -2
  4. data/app/commands/decidim/admin/update_taxonomy_filter.rb +24 -6
  5. data/app/controllers/decidim/admin/block_user_controller.rb +2 -0
  6. data/app/controllers/decidim/admin/newsletters_controller.rb +1 -0
  7. data/app/controllers/decidim/admin/officializations_controller.rb +2 -0
  8. data/app/controllers/decidim/admin/organization_controller.rb +0 -29
  9. data/app/forms/decidim/admin/taxonomy_filter_form.rb +11 -9
  10. data/app/packs/src/decidim/admin/admin_autocomplete.js +16 -10
  11. data/app/packs/stylesheets/decidim/admin/application.scss +1 -1
  12. data/app/views/decidim/admin/attachment_collections/index.html.erb +1 -1
  13. data/app/views/decidim/admin/components/_actions.html.erb +1 -1
  14. data/app/views/decidim/admin/moderations/_moderation-tr.html.erb +1 -1
  15. data/app/views/decidim/admin/officializations/show_email.html.erb +7 -1
  16. data/app/views/decidim/admin/shared/_attachments.html.erb +15 -0
  17. data/app/views/decidim/admin/taxonomy_filters/_table.html.erb +2 -2
  18. data/app/views/layouts/decidim/admin/_application.html.erb +1 -1
  19. data/config/locales/ar.yml +0 -5
  20. data/config/locales/bg.yml +0 -5
  21. data/config/locales/bs-BA.yml +0 -4
  22. data/config/locales/ca-IT.yml +17 -7
  23. data/config/locales/ca.yml +15 -5
  24. data/config/locales/cs.yml +12 -5
  25. data/config/locales/de.yml +4 -5
  26. data/config/locales/el.yml +0 -6
  27. data/config/locales/en.yml +15 -5
  28. data/config/locales/es-MX.yml +15 -5
  29. data/config/locales/es-PY.yml +15 -5
  30. data/config/locales/es.yml +15 -5
  31. data/config/locales/eu.yml +51 -41
  32. data/config/locales/fi-plain.yml +14 -4
  33. data/config/locales/fi.yml +14 -4
  34. data/config/locales/fr-CA.yml +52 -5
  35. data/config/locales/fr.yml +52 -5
  36. data/config/locales/gl.yml +0 -6
  37. data/config/locales/he-IL.yml +0 -1
  38. data/config/locales/hu.yml +0 -6
  39. data/config/locales/it.yml +1 -4
  40. data/config/locales/ja.yml +17 -7
  41. data/config/locales/kaa.yml +0 -4
  42. data/config/locales/ko.yml +0 -6
  43. data/config/locales/lb.yml +0 -5
  44. data/config/locales/lt.yml +0 -6
  45. data/config/locales/lv.yml +0 -4
  46. data/config/locales/nl.yml +0 -6
  47. data/config/locales/no.yml +0 -6
  48. data/config/locales/pl.yml +0 -5
  49. data/config/locales/pt-BR.yml +7 -12
  50. data/config/locales/pt.yml +0 -5
  51. data/config/locales/ro-RO.yml +0 -6
  52. data/config/locales/sk.yml +776 -4
  53. data/config/locales/sl.yml +0 -1
  54. data/config/locales/sq-AL.yml +0 -1
  55. data/config/locales/sr-CS.yml +0 -4
  56. data/config/locales/sv.yml +2 -5
  57. data/config/locales/tr-TR.yml +7 -12
  58. data/config/locales/zh-CN.yml +0 -5
  59. data/config/locales/zh-TW.yml +0 -6
  60. data/config/routes.rb +0 -4
  61. data/lib/decidim/admin/form_builder.rb +1 -3
  62. data/lib/decidim/admin/version.rb +1 -1
  63. metadata +9 -9
  64. data/app/views/decidim/admin/shared/_gallery.html.erb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bec32ec6208a017294c2d3262d2af09309882fdf2bfdaeaa303ec30b57c70d83
4
- data.tar.gz: 7c466c3272dc12f761ad25bf4259f17acc20ed850e1ad1bc459ffe7121aa0280
3
+ metadata.gz: 85a91a0ec3c1ea347bf005fedb3b2ff0a6409a627098fa27f8b2934040d592d9
4
+ data.tar.gz: c84548b46b2c50b89a30db898f810217de60b2d5fb8cf602ad6c764ea6d2d3e1
5
5
  SHA512:
6
- metadata.gz: 7864c436a7a9d8b458c1f82939189ab63c10738034fa90f35f607f9e2feba9fb5075ccc62904f02097881bcab13e23e35581c0ebdca2da9e1e3a246dbe4c2bf6
7
- data.tar.gz: 43f5e4b7af57575dfb558a15db55f6c465696f279dab02830de55ad5a83fce3b3285bcc117c3b1b5b65ea09468206860de662eeac3b28778ed8bc4ca02b96401
6
+ metadata.gz: 0b4dabe28198f4de1d361c820af7cebe1cd5eb02e541bbee7fe4deb0183b79f252177b253bc647157e2857e171dcaaf32265405b1352237a9f13615feb5554af
7
+ data.tar.gz: a661711b289811f7f6890a3afc486c73dd48d13791c57244964bed5dcd1013bdd3574118ced21cad55be8907d0296290e2614ac5086a7a9c817f0a4e6682f27c
@@ -31,7 +31,7 @@ module Decidim
31
31
  @content_block = content_block
32
32
  end
33
33
  on(:invalid) do
34
- raise "There was a problem persisting the changes to the content block"
34
+ raise Decidim::Commands::HookError, "There was a problem persisting the changes to the content block"
35
35
  end
36
36
  end
37
37
  end
@@ -5,20 +5,34 @@ module Decidim
5
5
  # A command with all the business logic to create a new taxonomy filter in the
6
6
  # system.
7
7
  class CreateTaxonomyFilter < Decidim::Commands::CreateResource
8
- fetch_form_attributes :root_taxonomy_id, :filter_items, :internal_name, :name, :participatory_space_manifests
8
+ fetch_form_attributes :root_taxonomy_id, :internal_name, :name, :participatory_space_manifests
9
9
 
10
10
  protected
11
11
 
12
12
  def resource_class = Decidim::TaxonomyFilter
13
13
 
14
+ def run_after_hooks
15
+ create_filter_items!
16
+ end
17
+
14
18
  def extra_params
15
19
  {
16
20
  extra: {
17
21
  taxonomy_name: form.root_taxonomy.name,
18
- filter_items_count: form.filter_items.count
22
+ filter_items_count: selected_taxonomy_item_ids.size
19
23
  }
20
24
  }
21
25
  end
26
+
27
+ private
28
+
29
+ def create_filter_items!
30
+ selected_taxonomy_item_ids.each { |taxonomy_item_id| resource.filter_items.create!(taxonomy_item_id:) }
31
+ end
32
+
33
+ def selected_taxonomy_item_ids
34
+ form.taxonomy_items.map(&:to_i).uniq
35
+ end
22
36
  end
23
37
  end
24
38
  end
@@ -2,27 +2,45 @@
2
2
 
3
3
  module Decidim
4
4
  module Admin
5
- # A command with all the business logic to create a new taxonomy filter in the
6
- # system.
5
+ # A command with all the business logic to update an existing taxonomy filter
6
+ # in the system.
7
7
  class UpdateTaxonomyFilter < Decidim::Commands::UpdateResource
8
- fetch_form_attributes :filter_items, :internal_name, :name, :participatory_space_manifests
8
+ fetch_form_attributes :internal_name, :name, :participatory_space_manifests
9
9
 
10
10
  protected
11
11
 
12
12
  def resource_class = Decidim::TaxonomyFilter
13
13
 
14
- def run_before_hooks
15
- resource.filter_items.destroy_all
14
+ def run_after_hooks
15
+ sync_filter_items!
16
16
  end
17
17
 
18
18
  def extra_params
19
19
  {
20
20
  extra: {
21
21
  taxonomy_name: resource.root_taxonomy.name,
22
- filter_items_count: form.filter_items.count
22
+ filter_items_count: selected_taxonomy_item_ids.size
23
23
  }
24
24
  }
25
25
  end
26
+
27
+ private
28
+
29
+ def sync_filter_items!
30
+ removed_ids = current_taxonomy_item_ids - selected_taxonomy_item_ids
31
+ added_ids = selected_taxonomy_item_ids - current_taxonomy_item_ids
32
+
33
+ resource.filter_items.where(taxonomy_item_id: removed_ids).destroy_all if removed_ids.any?
34
+ added_ids.each { |taxonomy_item_id| resource.filter_items.create!(taxonomy_item_id:) }
35
+ end
36
+
37
+ def current_taxonomy_item_ids
38
+ resource.filter_items.pluck(:taxonomy_item_id)
39
+ end
40
+
41
+ def selected_taxonomy_item_ids
42
+ form.taxonomy_items.map(&:to_i).uniq
43
+ end
26
44
  end
27
45
  end
28
46
  end
@@ -10,6 +10,8 @@ module Decidim
10
10
  def new
11
11
  enforce_permission_to :block, :admin_user
12
12
 
13
+ return redirect_to(officializations_path, alert: I18n.t("officializations.block.no_user", scope: "decidim.admin")) unless user
14
+
13
15
  @form = form(BlockUserForm).from_model(user)
14
16
  @form.hide = params[:hide] || false
15
17
  end
@@ -55,6 +55,7 @@ module Decidim
55
55
 
56
56
  on(:invalid) do |newsletter|
57
57
  @newsletter = newsletter
58
+ @form.images = content_block.images_container
58
59
  flash.now[:error] = I18n.t("newsletters.create.error", scope: "decidim.admin")
59
60
  render action: :new, status: :unprocessable_entity
60
61
  end
@@ -22,6 +22,8 @@ module Decidim
22
22
  def new
23
23
  enforce_permission_to :create, :officialization
24
24
 
25
+ return redirect_to(officializations_path, alert: I18n.t("officializations.create.no_user_found", scope: "decidim.admin")) unless user
26
+
25
27
  @form = form(OfficializationForm).from_model(user)
26
28
  end
27
29
 
@@ -33,35 +33,6 @@ module Decidim
33
33
  end
34
34
  end
35
35
  end
36
-
37
- def users
38
- search(current_organization.users.available)
39
- end
40
-
41
- private
42
-
43
- def search(relation)
44
- respond_to do |format|
45
- format.json do
46
- if (term = params[:term].to_s).present?
47
- query = if term.start_with?("@")
48
- nickname = term.delete("@")
49
- relation.where("nickname LIKE ?", "#{nickname}%")
50
- .order(Arel.sql(ActiveRecord::Base.sanitize_sql_array("similarity(nickname, '#{nickname}') DESC")))
51
- else
52
- relation.where("name ILIKE ?", "%#{term}%").or(
53
- relation.where("email ILIKE ?", "%#{term}%")
54
- )
55
- .order(Arel.sql(ActiveRecord::Base.sanitize_sql_array("GREATEST(similarity(name, '#{term}'), similarity(email, '#{term}')) DESC")))
56
- .order(Arel.sql(ActiveRecord::Base.sanitize_sql_array("(similarity(name, '#{term}') + similarity(email, '#{term}')) / 2 DESC")))
57
- end
58
- render json: query.all.collect { |u| { value: u.id, label: "#{u.name} (@#{u.nickname})" } }
59
- else
60
- render json: []
61
- end
62
- end
63
- end
64
- end
65
36
  end
66
37
  end
67
38
  end
@@ -43,7 +43,7 @@ module Decidim
43
43
  def items_collection
44
44
  return [] unless root_taxonomy
45
45
 
46
- @items_collection ||= map_items_collection(root_taxonomy)
46
+ @items_collection ||= build_items_collection
47
47
  end
48
48
 
49
49
  def root_taxonomy
@@ -61,22 +61,24 @@ module Decidim
61
61
 
62
62
  private
63
63
 
64
- def map_items_collection(taxonomy)
65
- taxonomy.children.map do |item|
64
+ def build_items_collection
65
+ children_by_parent_id = root_taxonomy.all_children.group_by(&:parent_id)
66
+ build_subtree(root_taxonomy.id, children_by_parent_id)
67
+ end
68
+
69
+ def build_subtree(parent_id, children_by_parent_id)
70
+ Array(children_by_parent_id[parent_id]).map do |item|
66
71
  Item.new(
67
72
  name: translated_attribute(item.name),
68
73
  value: item.id,
69
- children: map_items_collection(item)
74
+ children: build_subtree(item.id, children_by_parent_id)
70
75
  )
71
76
  end
72
77
  end
73
78
 
74
79
  def valid_taxonomy_items
75
- return if taxonomy_items.all? do |item|
76
- next unless root_taxonomy
77
-
78
- root_taxonomy.all_children.map(&:id).include?(item.to_i)
79
- end
80
+ valid_ids = root_taxonomy ? root_taxonomy.all_children.pluck(:id).to_set : Set.new
81
+ return if taxonomy_items.all? { |item| valid_ids.include?(item.to_i) }
80
82
 
81
83
  errors.add(:taxonomy_items, :invalid)
82
84
  end
@@ -10,7 +10,6 @@ import AutoComplete from "src/decidim/refactor/moved/autocomplete";
10
10
  * - name: assembly_member[user_id],
11
11
  * - options: [],
12
12
  * - placeholder: "Select a participant",
13
- * - searchURL: "http://..."
14
13
  * - selected: "",
15
14
  *
16
15
  * @param {HTMLElement} el The element to generate the autocomplete for.
@@ -18,7 +17,6 @@ import AutoComplete from "src/decidim/refactor/moved/autocomplete";
18
17
  */
19
18
  const autoConfigure = (el) => {
20
19
  const config = JSON.parse(el.dataset.autocomplete);
21
- const searchUrl = new URL(config.searchURL);
22
20
  const textInput = document.createElement("input");
23
21
  textInput.type = "text";
24
22
  textInput.className = "autocomplete-input";
@@ -46,16 +44,24 @@ const autoConfigure = (el) => {
46
44
  }
47
45
  }
48
46
 
47
+ const graphqlEscapedQuery = (query) => query.replace(/\\/g, "\\\\").replace(/"/g, "\\\"");
48
+
49
49
  const dataSource = (query, callback) => {
50
- const params = new URLSearchParams({
51
- ...Object.fromEntries(searchUrl.searchParams),
52
- term: query
53
- });
54
- fetch(`${searchUrl.origin}${searchUrl.pathname}?${params.toString()}`, {
55
- method: "GET",
56
- headers: { "Content-Type": "application/json" }
50
+ const apiPath = window.Decidim.config.get("api_path");
51
+ fetch(apiPath, {
52
+ method: "POST",
53
+ headers: { "Content-Type": "application/json" },
54
+ body: JSON.stringify({
55
+ query: `{users(filter:{wildcard:"${graphqlEscapedQuery(query)}"}){id,nickname,name,__typename}}`
56
+ })
57
57
  }).then((response) => response.json()).then((data) => {
58
- callback(data)
58
+ const users = data?.data?.users || [];
59
+ callback(users.map((user) => ({
60
+ value: user.id,
61
+ label: `${user.name} (${user.nickname})`
62
+ })))
63
+ }).catch(() => {
64
+ callback([])
59
65
  });
60
66
  };
61
67
 
@@ -24,7 +24,7 @@
24
24
  @use "stylesheets/decidim/admin/datepicker";
25
25
  @use "stylesheets/decidim/admin/minimap";
26
26
  @use "stylesheets/decidim/admin/proposal_status";
27
- @use "stylesheets/decidim/tribute";
27
+ @use "stylesheets/decidim/editor_suggestions";
28
28
 
29
29
  :root {
30
30
  --primary: #e02d2d;
@@ -51,7 +51,7 @@
51
51
  <% end %>
52
52
  <% else %>
53
53
  <div class="dropdown__button-disabled">
54
- <%= with_tooltip t("tooltips.deleted_attachment_collections_info", scope: "decidim.admin") do %>
54
+ <%= with_tooltip t("tooltips.deleted_attachment_collections_info", scope: "decidim.admin"), class: :left do %>
55
55
  <%= icon "delete-bin-line", class: "text-gray" %>
56
56
  <span>
57
57
  <%= t("actions.destroy", scope: "decidim.admin") %>
@@ -98,7 +98,7 @@
98
98
  <hr>
99
99
  <li class="dropdown__item">
100
100
  <div class="dropdown__button-disabled">
101
- <%= with_tooltip t("tooltips.deleted_component_info", scope: "decidim.admin") do %>
101
+ <%= with_tooltip t("tooltips.deleted_component_info", scope: "decidim.admin"), class: :left do %>
102
102
  <%= icon "delete-bin-line", class: "text-gray" %>
103
103
  <span>
104
104
  <%= t("actions.soft_delete", scope: "decidim.admin") %>
@@ -89,7 +89,7 @@
89
89
  <li class="dropdown__item">
90
90
  <% if moderation.reportable.respond_to?(:commentable) && moderation.reportable.commentable.try(:hidden?) %>
91
91
  <div class="dropdown__button-disabled">
92
- <%= with_tooltip(t("actions.parent_hidden", scope: "decidim.moderations"), title: t("actions.parent_hidden", scope: "decidim.moderations")) do %>
92
+ <%= with_tooltip(t("actions.parent_hidden", scope: "decidim.moderations"), title: t("actions.parent_hidden", scope: "decidim.moderations"), class: :left) do %>
93
93
  <%= icon "eye-line", class: "text-gray" %>
94
94
  <span><%= t("actions.unhide", scope: "decidim.moderations") %></span>
95
95
  <% end %>
@@ -1 +1,7 @@
1
- <%= link_to user.email, "mailto:#{user.email}" %>
1
+ <% if user.present? %>
2
+ <%= link_to user.email, "mailto:#{user.email}" %>
3
+ <% else %>
4
+ <div class="flash alert my-0">
5
+ <%= t(".no_user") %>
6
+ </div>
7
+ <% end %>
@@ -0,0 +1,15 @@
1
+ <div class="row column mt-4">
2
+ <fieldset>
3
+ <legend><%= t(".attachment_legend") %></legend>
4
+
5
+ <div>
6
+ <%= form.attachment :attachments,
7
+ multiple: true,
8
+ label: t(".add_attachments"),
9
+ button_label: t(".add_attachments"),
10
+ button_edit_label: t(".edit_attachments"),
11
+ button_class: "button button__sm button__transparent-secondary",
12
+ help_i18n_scope: "decidim.forms.file_help.attachment" %>
13
+ </div>
14
+ </fieldset>
15
+ </div>
@@ -36,7 +36,7 @@
36
36
  </li>
37
37
  <% else %>
38
38
  <div class="dropdown__button-disabled">
39
- <%= with_tooltip t("tooltips.cannot_edit_taxonomy_filter", scope: "decidim.admin") do %>
39
+ <%= with_tooltip t("tooltips.cannot_edit_taxonomy_filter", scope: "decidim.admin"), class: :left do %>
40
40
  <%= icon "pencil-line", class: "text-gray" %>
41
41
  <%= t(".edit") %>
42
42
  <% end %>
@@ -54,7 +54,7 @@
54
54
  </li>
55
55
  <% else %>
56
56
  <div class="dropdown__button-disabled">
57
- <%= with_tooltip t("tooltips.cannot_destroy_taxonomy_filter", scope: "decidim.admin") do %>
57
+ <%= with_tooltip t("tooltips.cannot_destroy_taxonomy_filter", scope: "decidim.admin"), class: :left do %>
58
58
  <%= icon "delete-bin-line", class: "text-gray" %>
59
59
  <%= t(".destroy") %>
60
60
  <% end %>
@@ -11,7 +11,7 @@
11
11
  </head>
12
12
  <body>
13
13
 
14
- <main class="main">
14
+ <main class="main" role="main">
15
15
  <div class="layout-wrapper">
16
16
  <div class="block md:hidden col-start-1 col-end-2">
17
17
  <%= render partial: "layouts/decidim/admin/title_bar_responsive" %>
@@ -44,7 +44,6 @@ ar:
44
44
  alert_color: تنبيه
45
45
  available_authorizations: التراخيص المتاحة
46
46
  badges_enabled: تمكين الشارات
47
- comments_max_length: الحد الأقصى لطول التعليقات (اترك 0 لاستعمال القيمة الافتراضية)
48
47
  customize_welcome_notification: تخصيص إشعار الترحيب
49
48
  default_locale: اللغة الافتراضية
50
49
  description: الوصف
@@ -715,10 +714,6 @@ ar:
715
714
  'true': 'نعم'
716
715
  new:
717
716
  create: إنشاء
718
- shared:
719
- gallery:
720
- add_images: إضافة صور
721
- edit_images: تعديل الصورة
722
717
  static_page_topics:
723
718
  create:
724
719
  error: كانت هناك مشكلة في إنشاء موضوع جديد.
@@ -44,7 +44,6 @@ bg:
44
44
  alert_color: Аларма
45
45
  available_authorizations: Активни оторизации
46
46
  badges_enabled: Включи значките
47
- comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
48
47
  customize_welcome_notification: Персонализирайте приветствието
49
48
  default_locale: Език по подразбиране
50
49
  description: Описание
@@ -850,10 +849,6 @@ bg:
850
849
  next_title: Следващ елемент
851
850
  previous: Предишен
852
851
  previous_title: Предишен елемент
853
- gallery:
854
- add_images: Добави изображения
855
- edit_images: Редактиране на изображения
856
- gallery_legend: Добавяне на галерия с изображения (незадължително)
857
852
  static_page_topics:
858
853
  create:
859
854
  error: Възникна проблем при създаването на нова тема.
@@ -452,10 +452,6 @@ bs:
452
452
  update: Ažuriraj
453
453
  new:
454
454
  create: Stvori
455
- shared:
456
- gallery:
457
- add_images: Dodaj slike
458
- gallery_legend: Dodaj galeriju slika (opciono)
459
455
  titles:
460
456
  area_types: Tipovi oblasti
461
457
  pages: Stranice
@@ -12,6 +12,7 @@ ca-IT:
12
12
  plural: Plural
13
13
  attachment:
14
14
  attachment_collection_id: Carpeta
15
+ attachments: Fitxers adjunts
15
16
  description: Descripció
16
17
  file: Arxiu
17
18
  title: Nom de l'adjunt o imatge
@@ -45,7 +46,7 @@ ca-IT:
45
46
  alert_color: Alerta
46
47
  available_authorizations: Autoritzacions disponibles
47
48
  badges_enabled: Habilitar les ensenyes
48
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
49
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
49
50
  customize_welcome_notification: Personalitza la notificació de benvinguda
50
51
  default_locale: Idioma per defecte
51
52
  description: Descripció
@@ -222,7 +223,7 @@ ca-IT:
222
223
  alert: 'Necessari: revisa les nostres condicions del servei d''administració'
223
224
  callout: Si us plau, dedica un moment a revisar les condicions del servei d'administració. En cas contrari, no podràs administrar la plataforma.
224
225
  cta: Revisar-les ara.
225
- title: Termes i condicions d'ús para administradores
226
+ title: Termes i condicions d'ús per a administradores
226
227
  area_types:
227
228
  create:
228
229
  error: S'ha produït un error en crear un tipus d'àrea nova.
@@ -834,6 +835,7 @@ ca-IT:
834
835
  officializations:
835
836
  block:
836
837
  error: Hi ha hagut un problema en bloquejar a la participant.
838
+ no_user: No s'ha trobat cap usuària
837
839
  success: Participant bloquejada correctament.
838
840
  bulk_action:
839
841
  block:
@@ -843,6 +845,7 @@ ca-IT:
843
845
  invalid: Hi ha hagut un problema en desbloquejar a les participants.
844
846
  success: Participants desbloquejades correctament.
845
847
  create:
848
+ no_user_found: No s'ha trobat aquesta participant.
846
849
  success: Participant oficialitzada correctament.
847
850
  destroy:
848
851
  success: S'ha retirat correctament l'oficialització de la participant.
@@ -867,6 +870,8 @@ ca-IT:
867
870
  badge: Ensenya d'oficialització
868
871
  officialize: Oficialitza
869
872
  title: Oficialitza la participant "%{name}"
873
+ show_email:
874
+ no_user: No s'ha trobat cap usuària
870
875
  show_email_modal:
871
876
  description: Si necessites contactar a una participant directament pots clicar al botó Mostra per veure la seva adreça de correu electrònic. Aquesta acció es registrarà.
872
877
  email_address: Adreça de correu electrònic
@@ -882,7 +887,7 @@ ca-IT:
882
887
  title: Edita organització
883
888
  update: Actualitzar
884
889
  form:
885
- admin_terms_of_service: Termes i condicions d'ús para administradores
890
+ admin_terms_of_service: Termes i condicions d'ús per a administradores
886
891
  basic_configuration: Configuració bàsica
887
892
  colors:
888
893
  choose_color: Triar un color primari
@@ -1067,10 +1072,10 @@ ca-IT:
1067
1072
  next_title: Següent element
1068
1073
  previous: Anterior
1069
1074
  previous_title: Element anterior
1070
- gallery:
1071
- add_images: Afegir imatges
1072
- edit_images: Editar imatges
1073
- gallery_legend: Afegir una galeria d'imatges (opcional)
1075
+ attachments:
1076
+ add_attachments: Afegir fitxer(s) adjunt(s)
1077
+ attachment_legend: Afegir una galeria de fitxers adjunts (opcional)
1078
+ edit_attachments: Edita els fitxers adjunts
1074
1079
  static_page_topics:
1075
1080
  create:
1076
1081
  error: S'ha produït un error en crear un tema nou.
@@ -1285,6 +1290,11 @@ ca-IT:
1285
1290
  errors:
1286
1291
  impersonate_user:
1287
1292
  reason: Has d'indicar un motiu per a la gestió d'una participant no gestionada.
1293
+ file_help:
1294
+ attachment:
1295
+ explanation: 'Instruccions per al fitxer:'
1296
+ message_1: S'admeten fitxers CSV, JSON y Excel (.xlsx)
1297
+ message_2: Pels arxius CSV, el separador entre columnes ha de ser un punt i coma (";")
1288
1298
  moderations:
1289
1299
  actions:
1290
1300
  expand: Expandir
@@ -12,6 +12,7 @@ ca:
12
12
  plural: Plural
13
13
  attachment:
14
14
  attachment_collection_id: Carpeta
15
+ attachments: Fitxers adjunts
15
16
  description: Descripció
16
17
  file: Arxiu
17
18
  title: Nom de l'adjunt o imatge
@@ -45,7 +46,7 @@ ca:
45
46
  alert_color: Alerta
46
47
  available_authorizations: Autoritzacions disponibles
47
48
  badges_enabled: Habilitar les ensenyes
48
- comments_max_length: Longitud màxima dels comentaris (deixa 0 si vols mantenir la configuració per defecte)
49
+ comments_max_length: Caràcters màxims per comentari (deixar a 0 el valor predeterminat)
49
50
  customize_welcome_notification: Personalitza la notificació de benvinguda
50
51
  default_locale: Idioma per defecte
51
52
  description: Descripció
@@ -834,6 +835,7 @@ ca:
834
835
  officializations:
835
836
  block:
836
837
  error: Hi ha hagut un problema en bloquejar a la participant.
838
+ no_user: No s'ha trobat cap usuària
837
839
  success: Participant bloquejada correctament.
838
840
  bulk_action:
839
841
  block:
@@ -843,6 +845,7 @@ ca:
843
845
  invalid: Hi ha hagut un problema en desbloquejar a les participants.
844
846
  success: Participants desbloquejades correctament.
845
847
  create:
848
+ no_user_found: No s'ha trobat aquesta participant.
846
849
  success: Participant oficialitzada correctament.
847
850
  destroy:
848
851
  success: S'ha retirat correctament l'oficialització de la participant.
@@ -867,6 +870,8 @@ ca:
867
870
  badge: Ensenya d'oficialització
868
871
  officialize: Oficialitza
869
872
  title: Oficialitza la participant "%{name}"
873
+ show_email:
874
+ no_user: No s'ha trobat cap usuària
870
875
  show_email_modal:
871
876
  description: Si necessites contactar a una participant directament pots clicar al botó Mostra per veure la seva adreça de correu electrònic. Aquesta acció es registrarà.
872
877
  email_address: Adreça de correu electrònic
@@ -1067,10 +1072,10 @@ ca:
1067
1072
  next_title: Següent element
1068
1073
  previous: Anterior
1069
1074
  previous_title: Element anterior
1070
- gallery:
1071
- add_images: Afegir imatges
1072
- edit_images: Editar imatges
1073
- gallery_legend: Afegir una galeria d'imatges (opcional)
1075
+ attachments:
1076
+ add_attachments: Afegir fitxer(s) adjunt(s)
1077
+ attachment_legend: Afegir una galeria de fitxers adjunts (opcional)
1078
+ edit_attachments: Edita els fitxers adjunts
1074
1079
  static_page_topics:
1075
1080
  create:
1076
1081
  error: S'ha produït un error en crear un tema nou.
@@ -1285,6 +1290,11 @@ ca:
1285
1290
  errors:
1286
1291
  impersonate_user:
1287
1292
  reason: Has d'indicar un motiu per a la gestió d'una participant no gestionada.
1293
+ file_help:
1294
+ attachment:
1295
+ explanation: 'Instruccions per al fitxer:'
1296
+ message_1: S'admeten fitxers CSV, JSON y Excel (.xlsx)
1297
+ message_2: Pels arxius CSV, el separador entre columnes ha de ser un punt i coma (";")
1288
1298
  moderations:
1289
1299
  actions:
1290
1300
  expand: Expandir
@@ -12,6 +12,7 @@ cs:
12
12
  plural: Množné číslo
13
13
  attachment:
14
14
  attachment_collection_id: Složka
15
+ attachments: Přílohy
15
16
  description: Popis
16
17
  file: Soubor
17
18
  title: Název přílohy nebo obrázku
@@ -45,7 +46,7 @@ cs:
45
46
  alert_color: Upozornění
46
47
  available_authorizations: Dostupná oprávnění
47
48
  badges_enabled: Povolit odznaky
48
- comments_max_length: Maximální délka komentáře (ponechte 0 pro výchozí hodnotu)
49
+ comments_max_length: Maximální počet znaků na komentář (ponechte 0 pro výchozí hodnotu)
49
50
  customize_welcome_notification: Přizpůsobit uvítací oznámení
50
51
  default_locale: Výchozí jazyk
51
52
  description: Popis
@@ -842,6 +843,7 @@ cs:
842
843
  officializations:
843
844
  block:
844
845
  error: Při blokování účastníka došlo k chybě.
846
+ no_user: Nebyl nalezen žádný uživatel
845
847
  success: Účastník byl úspěšně zablokován.
846
848
  bulk_action:
847
849
  block:
@@ -875,6 +877,8 @@ cs:
875
877
  badge: Odznak ověření
876
878
  officialize: Ověřit
877
879
  title: Oficializovat účastníka "%{name}"
880
+ show_email:
881
+ no_user: Nebyl nalezen žádný uživatel
878
882
  show_email_modal:
879
883
  description: Pokud potřebujete kontaktovat účastníka, můžete kliknout na tlačítko Zobrazit pro zobrazení e-mailové adresy. Tato akce bude zaznamenána.
880
884
  email_address: E-mailová adresa
@@ -1077,10 +1081,9 @@ cs:
1077
1081
  next_title: Další položka
1078
1082
  previous: Předchozí
1079
1083
  previous_title: Předchozí položka
1080
- gallery:
1081
- add_images: Přidat obrázky
1082
- edit_images: Upravit obrázky
1083
- gallery_legend: Přidat galerii obrázků (volitelné)
1084
+ attachments:
1085
+ add_attachments: Přidat přílohy
1086
+ edit_attachments: Upravit přílohy
1084
1087
  static_page_topics:
1085
1088
  create:
1086
1089
  error: Při vytváření nového tématu došlo k chybě.
@@ -1296,6 +1299,10 @@ cs:
1296
1299
  errors:
1297
1300
  impersonate_user:
1298
1301
  reason: Musíte uvést důvod pro správu neřízeného účastníka.
1302
+ file_help:
1303
+ attachment:
1304
+ explanation: 'Pokyny pro soubor:'
1305
+ message_1: CSV, JSON a Excel (.xlsx) jsou podporovány
1299
1306
  moderations:
1300
1307
  actions:
1301
1308
  expand: Rozbalit