decidim-admin 0.25.2 → 0.26.0.rc1
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.
- checksums.yaml +4 -4
- data/app/commands/decidim/admin/create_import_example.rb +21 -0
- data/app/commands/decidim/admin/create_static_page.rb +9 -3
- data/app/commands/decidim/admin/update_organization_appearance.rb +2 -1
- data/app/controllers/concerns/decidim/admin/user_groups/filterable.rb +45 -0
- data/app/controllers/concerns/decidim/moderated_users/admin/filterable.rb +51 -0
- data/app/controllers/decidim/admin/imports_controller.rb +48 -10
- data/app/controllers/decidim/admin/moderated_users_controller.rb +2 -2
- data/app/controllers/decidim/admin/scopes_controller.rb +2 -1
- data/app/controllers/decidim/admin/user_groups_controller.rb +13 -5
- data/app/forms/decidim/admin/import_example_form.rb +50 -0
- data/app/forms/decidim/admin/import_form.rb +46 -40
- data/app/forms/decidim/admin/organization_appearance_form.rb +1 -0
- data/app/helpers/decidim/admin/imports_helper.rb +16 -6
- data/app/helpers/decidim/admin/resource_scope_helper.rb +9 -0
- data/app/helpers/decidim/admin/settings_helper.rb +13 -0
- data/app/packs/entrypoints/decidim_admin.js +0 -1
- data/app/packs/src/decidim/admin/dynamic_fields.component.js +8 -0
- data/app/permissions/decidim/admin/permissions.rb +1 -0
- data/app/views/decidim/admin/imports/_dropdown.html.erb +9 -4
- data/app/views/decidim/admin/imports/new.html.erb +24 -22
- data/app/views/decidim/admin/moderated_users/_report.html.erb +0 -1
- data/app/views/decidim/admin/moderated_users/index.html.erb +5 -2
- data/app/views/decidim/admin/moderations/_report.html.erb +0 -1
- data/app/views/decidim/admin/moderations/index.html.erb +1 -1
- data/app/views/decidim/admin/organization_appearance/form/_colors.html.erb +7 -0
- data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +12 -4
- data/app/views/decidim/admin/user_groups/index.html.erb +8 -44
- data/app/views/layouts/decidim/admin/_callouts_full.html.erb +4 -0
- data/app/views/layouts/decidim/admin/_title_bar.html.erb +2 -2
- data/config/brakeman.ignore +26 -0
- data/config/locales/ar.yml +0 -7
- data/config/locales/ca.yml +0 -13
- data/config/locales/cs.yml +50 -13
- data/config/locales/de.yml +8 -13
- data/config/locales/el.yml +0 -15
- data/config/locales/en.yml +46 -17
- data/config/locales/es-MX.yml +0 -13
- data/config/locales/es-PY.yml +0 -13
- data/config/locales/es.yml +45 -16
- data/config/locales/eu.yml +8 -13
- data/config/locales/fi-plain.yml +33 -13
- data/config/locales/fi.yml +46 -17
- data/config/locales/fr-CA.yml +42 -13
- data/config/locales/fr.yml +48 -19
- data/config/locales/ga-IE.yml +1 -6
- data/config/locales/gl.yml +33 -13
- data/config/locales/hu.yml +1 -9
- data/config/locales/id-ID.yml +0 -7
- data/config/locales/is-IS.yml +0 -7
- data/config/locales/it.yml +6 -13
- data/config/locales/ja.yml +92 -67
- data/config/locales/lb-LU.yml +1034 -0
- data/config/locales/lb.yml +6 -15
- data/config/locales/lv.yml +0 -7
- data/config/locales/nl.yml +73 -13
- data/config/locales/no.yml +0 -7
- data/config/locales/pl.yml +7 -13
- data/config/locales/pt-BR.yml +1 -14
- data/config/locales/pt.yml +8 -15
- data/config/locales/ro-RO.yml +40 -16
- data/config/locales/ru.yml +0 -7
- data/config/locales/sk.yml +0 -7
- data/config/locales/sr-CS.yml +0 -6
- data/config/locales/sv.yml +33 -13
- data/config/locales/tr-TR.yml +0 -7
- data/config/locales/uk.yml +0 -7
- data/config/locales/val-ES.yml +14 -0
- data/config/locales/zh-CN.yml +0 -7
- data/lib/decidim/admin/engine.rb +5 -0
- data/lib/decidim/admin/form_builder.rb +8 -1
- data/lib/decidim/admin/import/creator.rb +32 -12
- data/lib/decidim/admin/import/importer.rb +32 -14
- data/lib/decidim/admin/import/readers/base.rb +23 -0
- data/lib/decidim/admin/import/readers/csv.rb +15 -0
- data/lib/decidim/admin/import/readers/json.rb +73 -3
- data/lib/decidim/admin/import/readers/xlsx.rb +25 -1
- data/lib/decidim/admin/import/readers.rb +7 -1
- data/lib/decidim/admin/import/verifier.rb +169 -0
- data/lib/decidim/admin/import.rb +3 -0
- data/lib/decidim/admin/test/filters_participatory_space_user_roles_examples.rb +165 -0
- data/lib/decidim/admin/test/manage_paginated_collection_examples.rb +8 -2
- data/lib/decidim/admin/test.rb +1 -0
- data/lib/decidim/admin/version.rb +1 -1
- metadata +19 -12
- data/app/packs/src/decidim/admin/import_guidance.js +0 -28
@@ -1,38 +1,40 @@
|
|
1
|
-
<%= decidim_form_for(@form, url: component_imports_path, class: "form grid-container") do |form| %>
|
1
|
+
<%= decidim_form_for(@form, url: component_imports_path(name: import_manifest.name), class: "form grid-container") do |form| %>
|
2
2
|
<div class="card">
|
3
3
|
<div class="card-divider">
|
4
|
-
<
|
4
|
+
<div class="card-title flex--sbc">
|
5
|
+
<div>
|
6
|
+
<%= import_manifest.message(:title, self) %>
|
7
|
+
</div>
|
5
8
|
<div class="flex--cc flex-gap--1">
|
6
9
|
<div id="js-other-actions-wrapper">
|
10
|
+
<% if import_manifest.has_example? %>
|
11
|
+
<span class="imports-example dropdown tiny button button--simple" data-toggle="example-dropdown"><%= t(".download_example") %></span>
|
12
|
+
<div class="dropdown-pane" id="example-dropdown" data-dropdown data-position=bottom data-alignment=right data-auto-focus="true" data-close-on-click="true">
|
13
|
+
<ul class="vertical menu add-components">
|
14
|
+
<% mime_types.each do |format, name| %>
|
15
|
+
<li class="examples--format--<%= format.downcase %> examples--<%= import_manifest.name %>">
|
16
|
+
<%= link_to t(".download_example_format", name: name),
|
17
|
+
admin_imports_example_path(@current_component, name: import_manifest.name, format: format) %>
|
18
|
+
</li>
|
19
|
+
<% end %>
|
20
|
+
</ul>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
23
|
+
|
7
24
|
<%= link_to t(".actions.back"), manage_component_path(@current_component), class: "button hollow tiny button--simple" %>
|
8
25
|
</div>
|
9
26
|
</div>
|
10
|
-
</
|
27
|
+
</div>
|
11
28
|
</div>
|
12
29
|
<div class="card-section">
|
13
|
-
|
14
|
-
<%=
|
15
|
-
form.select :creator,
|
16
|
-
@form.creators.map { |m| [t("decidim.admin.imports.creators.#{m[:name]}"), m[:creator]] },
|
17
|
-
{ prompt: true }
|
18
|
-
%>
|
19
|
-
</div>
|
20
|
-
<% if current_organization.user_groups_enabled? && Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.any? %>
|
21
|
-
<div class="field">
|
22
|
-
<%= user_group_select_field form, :user_group_id %>
|
23
|
-
</div>
|
24
|
-
<% end %>
|
30
|
+
<%= render partial: import_manifest.form_view, locals: { form: form } if import_manifest.form_view %>
|
25
31
|
<div class="grid-x">
|
26
32
|
<div class="cell">
|
27
33
|
<fieldset>
|
28
34
|
<legend>
|
29
|
-
<%= t(".file_legend", valid_mime_types: mime_types).html_safe %>
|
30
|
-
<div class="
|
31
|
-
|
32
|
-
<%= content_tag :div, class: "guidance creator-#{creator[:name]}" do %>
|
33
|
-
<% t("decidim.admin.imports.help.#{creator[:name]}") %>
|
34
|
-
<% end %>
|
35
|
-
<% end %>
|
35
|
+
<%= t(".file_legend", valid_mime_types: mime_types.values.join(", ")).html_safe %>
|
36
|
+
<div class="guidance">
|
37
|
+
<%= import_manifest.message(:help, self) %>
|
36
38
|
</div>
|
37
39
|
</legend>
|
38
40
|
<div class="row column">
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div class="card">
|
1
|
+
<div class="card with-overflow">
|
2
2
|
<div class="card-divider">
|
3
3
|
<h2 class="card-title">
|
4
4
|
<%= t(".title") %>
|
@@ -27,6 +27,8 @@
|
|
27
27
|
</h2>
|
28
28
|
</div>
|
29
29
|
|
30
|
+
<%= admin_filter_selector(:moderated_users) %>
|
31
|
+
|
30
32
|
<div class="card-section">
|
31
33
|
<div class="table-scroll">
|
32
34
|
<table class="table-list">
|
@@ -59,7 +61,7 @@
|
|
59
61
|
|
60
62
|
<td class="actions">
|
61
63
|
<% if allowed_to?(:unreport, :moderate_users) %>
|
62
|
-
<%= icon_link_to "action-undo",
|
64
|
+
<%= icon_link_to "action-undo", ignore_moderated_user_path(id: moderation), t(".actions.unreport"), class: "action-icon--unreport", method: :put %>
|
63
65
|
<% end %>
|
64
66
|
<% if allowed_to?(:block, :moderate_users) %>
|
65
67
|
<% if moderation.user.blocked? %>
|
@@ -73,6 +75,7 @@
|
|
73
75
|
<% end %>
|
74
76
|
</tbody>
|
75
77
|
</table>
|
78
|
+
<%= paginate @moderated_users, theme: "decidim" %>
|
76
79
|
</div>
|
77
80
|
</div>
|
78
81
|
</div>
|
@@ -49,7 +49,7 @@
|
|
49
49
|
</td>
|
50
50
|
<td>
|
51
51
|
<%=
|
52
|
-
link_to t("models.moderation.fields.visit_url", scope: "decidim.moderations"), moderation.reportable.reported_content_url, data: { tooltip: true },
|
52
|
+
link_to t("models.moderation.fields.visit_url", scope: "decidim.moderations"), moderation.reportable.reported_content_url, data: { tooltip: true }, title: strip_tags(reported_content_excerpt_for(moderation.reportable, limit: 250))
|
53
53
|
%>
|
54
54
|
</td>
|
55
55
|
<td>
|
@@ -2,6 +2,12 @@
|
|
2
2
|
<div class="card-divider">
|
3
3
|
<h2 class="card-title"><%= t ".colors_title" %></h2>
|
4
4
|
</div>
|
5
|
+
<div class="callout warning">
|
6
|
+
<p>
|
7
|
+
<%= icon "warning" %>
|
8
|
+
<%= t ".colors_warning_html", link: "https://webaim.org/resources/contrastchecker" %>
|
9
|
+
</p>
|
10
|
+
</div>
|
5
11
|
<div class="card-section">
|
6
12
|
<div class="organization-colors">
|
7
13
|
<%= form.color_field :primary_color, value: current_organization.colors["primary"] %>
|
@@ -11,6 +17,7 @@
|
|
11
17
|
<%= form.color_field :alert_color, value: current_organization.colors["alert"] %>
|
12
18
|
<%= form.color_field :highlight_color, value: current_organization.colors["highlight"] %>
|
13
19
|
<%= form.color_field :highlight_alternative_color, value: current_organization.colors["highlight-alternative"] %>
|
20
|
+
<%= form.color_field :theme_color, value: current_organization.colors["theme"] %>
|
14
21
|
</div>
|
15
22
|
|
16
23
|
<% if Decidim.enable_html_header_snippets %>
|
@@ -15,10 +15,18 @@
|
|
15
15
|
<table class="stack">
|
16
16
|
<thead>
|
17
17
|
<tr>
|
18
|
-
<th
|
19
|
-
|
20
|
-
|
21
|
-
<th
|
18
|
+
<th>
|
19
|
+
<%= sort_link(query, :name, t("models.user.fields.name", scope: "decidim.admin"), default_order: :desc ) %>
|
20
|
+
</th>
|
21
|
+
<th>
|
22
|
+
<%= sort_link(query, :email, t("models.user.fields.email", scope: "decidim.admin"), default_order: :desc ) %>
|
23
|
+
</th>
|
24
|
+
<th>
|
25
|
+
<%= sort_link(query, :invitation_sent_at, t("models.user.fields.invitation_sent_at", scope: "decidim.admin"), default_order: :desc ) %>
|
26
|
+
</th>
|
27
|
+
<th>
|
28
|
+
<%= sort_link(query, :invitation_accepted_at, t("models.user.fields.invitation_accepted_at", scope: "decidim.admin"), default_order: :desc ) %>
|
29
|
+
</th>
|
22
30
|
<th class="actions"></th>
|
23
31
|
</tr>
|
24
32
|
</thead>
|
@@ -1,41 +1,3 @@
|
|
1
|
-
<div class="filters row">
|
2
|
-
<div class="column medium-3">
|
3
|
-
<span class="dropdown-menu-inverted_label"><%= t(".filter_by") %> :</span>
|
4
|
-
<ul class="dropdown menu dropdown-inverted" data-dropdown-menu data-close-on-click-inside="false">
|
5
|
-
<li class="is-dropdown-submenu-parent">
|
6
|
-
<a href="#">
|
7
|
-
<% if @state.present? %>
|
8
|
-
<%= t(".filter.#{@state}") %>
|
9
|
-
<% else %>
|
10
|
-
<%= t(".filter.all") %>
|
11
|
-
<% end %>
|
12
|
-
</a>
|
13
|
-
<ul class="menu is-dropdown-submenu">
|
14
|
-
<li><%= link_to t(".filter.pending"), url_for(state: "pending", q: @query) %></li>
|
15
|
-
<li><%= link_to t(".filter.rejected"), url_for(state: "rejected", q: @query) %></li>
|
16
|
-
<li><%= link_to t(".filter.verified"), url_for(state: "verified", q: @query) %></li>
|
17
|
-
<li><%= link_to t(".filter.all"), url_for(q: @query) %></li>
|
18
|
-
</ul>
|
19
|
-
</li>
|
20
|
-
</ul>
|
21
|
-
</div>
|
22
|
-
<div class="column medium-4">
|
23
|
-
<%= form_tag "", method: :get do %>
|
24
|
-
<div class="filters__search">
|
25
|
-
<div class="input-group">
|
26
|
-
<%= search_field_tag :q, @query,label: false, class: "input-group-field", placeholder: t(".search") %>
|
27
|
-
<%= hidden_field_tag :state, @state %>
|
28
|
-
<div class="input-group-button">
|
29
|
-
<button type="submit" class="button">
|
30
|
-
<%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
|
31
|
-
</button>
|
32
|
-
</div>
|
33
|
-
</div>
|
34
|
-
</div>
|
35
|
-
<% end %>
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
|
39
1
|
<div class="card" id='user-groups'>
|
40
2
|
<div class="card-divider">
|
41
3
|
<h2 class="card-title">
|
@@ -43,17 +5,19 @@
|
|
43
5
|
<%= link_to t(".verify_via_csv"), new_user_groups_csv_verification_path, class: "button tiny button--title" %>
|
44
6
|
</h2>
|
45
7
|
</div>
|
8
|
+
<%= admin_filter_selector %>
|
9
|
+
|
46
10
|
<div class="card-section">
|
47
11
|
<div class="table-scroll">
|
48
12
|
<table class="table-list">
|
49
13
|
<thead>
|
50
14
|
<tr>
|
51
|
-
<th><%= t("models.user_group.fields.name", scope: "decidim.admin") %></th>
|
52
|
-
<th><%= t("models.user_group.fields.document_number", scope: "decidim.admin") %></th>
|
53
|
-
<th><%= t("models.user_group.fields.phone", scope: "decidim.admin") %></th>
|
54
|
-
<th><%= t("models.user_group.fields.users_count", scope: "decidim.admin") %></th>
|
55
|
-
<th><%= t("models.user_group.fields.created_at", scope: "decidim.admin") %></th>
|
56
|
-
<th><%= t("models.user_group.fields.state", scope: "decidim.admin") %></th>
|
15
|
+
<th><%= sort_link(query, :name, t("models.user_group.fields.name", scope: "decidim.admin"), default_order: :desc) %></th>
|
16
|
+
<th><%= sort_link(query, :document_number, t("models.user_group.fields.document_number", scope: "decidim.admin"), default_order: :desc) %></th>
|
17
|
+
<th><%= sort_link(query, :phone, t("models.user_group.fields.phone", scope: "decidim.admin"), default_order: :desc) %></th>
|
18
|
+
<th><%= sort_link(query, :users_count, t("models.user_group.fields.users_count", scope: "decidim.admin"), default_order: :desc) %></th>
|
19
|
+
<th><%= sort_link(query, :created_at, t("models.user_group.fields.created_at", scope: "decidim.admin"), default_order: :desc) %></th>
|
20
|
+
<th><%= sort_link(query, :state, t("models.user_group.fields.state", scope: "decidim.admin"), default_order: :desc) %></th>
|
57
21
|
<th><%= t("models.user_group.fields.actions", scope: "decidim.admin") %></th>
|
58
22
|
</tr>
|
59
23
|
</thead>
|
@@ -1,5 +1,9 @@
|
|
1
1
|
<div class="callout-wrapper">
|
2
2
|
<% flash.each do |key, value| %>
|
3
|
+
<% if /_html\Z/.match?(key)
|
4
|
+
key = key.gsub(/_html\Z/, "")
|
5
|
+
value = decidim_sanitize(value)
|
6
|
+
end %>
|
3
7
|
<div class="callout <%= FoundationRailsHelper::FlashHelper::DEFAULT_KEY_MATCHING[key.to_sym] %> callout--full" data-closable>
|
4
8
|
<%= value %>
|
5
9
|
<button class="close-button" aria-label="Dismiss alert" type="button" data-close>
|
@@ -17,7 +17,7 @@
|
|
17
17
|
data-close-on-click="true"
|
18
18
|
tabindex="-1">
|
19
19
|
<li class="is-dropdown-submenu-parent" tabindex="-1">
|
20
|
-
<%= link_to t("name", scope: "locale"), "#", id: "admin-user-menu-control", "aria-controls": "admin-user-menu", "aria-haspopup": "
|
20
|
+
<%= link_to t("name", scope: "locale"), "#", id: "admin-user-menu-control", "aria-controls": "admin-user-menu", "aria-haspopup": "menu" %>
|
21
21
|
<ul class="menu is-dropdown-submenu" id="admin-user-menu" role="menu" aria-labelledby="admin-user-menu-control" tabindex="-1">
|
22
22
|
<% (available_locales - [I18n.locale.to_s]).each do |locale| %>
|
23
23
|
<li><%= link_to(locale_name(locale), decidim.locale_path(locale: locale), method: :post, tabindex: "-1") %></li>
|
@@ -36,7 +36,7 @@
|
|
36
36
|
data-close-on-click="true"
|
37
37
|
tabindex="-1">
|
38
38
|
<li class="is-dropdown-submenu-parent" tabindex="-1">
|
39
|
-
<%= link_to current_user.email, "#", id: "admin-language-menu-control", "aria-controls": "admin-language-menu", "aria-haspopup": "
|
39
|
+
<%= link_to current_user.email, "#", id: "admin-language-menu-control", "aria-controls": "admin-language-menu", "aria-haspopup": "menu", "aria-label": t("layouts.decidim.user_menu.account", name: current_user.email) %>
|
40
40
|
<ul class="menu is-dropdown-submenu" id="admin-language-menu" role="menu" aria-labelledby="admin-language-menu-control" tabindex="-1">
|
41
41
|
<li><%= link_to(t("layouts.decidim.user_menu.sign_out"), decidim.destroy_user_session_path, method: :delete, tabindex: "-1") %></li>
|
42
42
|
</ul>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{
|
2
|
+
"ignored_warnings": [
|
3
|
+
{
|
4
|
+
"warning_type": "Mass Assignment",
|
5
|
+
"warning_code": 70,
|
6
|
+
"fingerprint": "699f4c81d452fb04843f59870463bc1fc7cc94a37801a83efd654966b51e7674",
|
7
|
+
"check_name": "MassAssignment",
|
8
|
+
"message": "Specify exact keys allowed for mass assignment instead of using `permit!` which allows any keys",
|
9
|
+
"file": "app/controllers/decidim/admin/components_controller.rb",
|
10
|
+
"line": 131,
|
11
|
+
"link": "https://brakemanscanner.org/docs/warning_types/mass_assignment/",
|
12
|
+
"code": "params[:component].permit!",
|
13
|
+
"render_path": null,
|
14
|
+
"location": {
|
15
|
+
"type": "method",
|
16
|
+
"class": "Decidim::Admin::ComponentsController",
|
17
|
+
"method": "component_params"
|
18
|
+
},
|
19
|
+
"user_input": null,
|
20
|
+
"confidence": "Medium",
|
21
|
+
"note": ""
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"updated": "2021-10-04 17:49:10 +0000",
|
25
|
+
"brakeman_version": "5.1.1"
|
26
|
+
}
|
data/config/locales/ar.yml
CHANGED
@@ -661,13 +661,6 @@ ar:
|
|
661
661
|
success: تم التحقق من المجموعة بنجاح
|
662
662
|
user_groups:
|
663
663
|
index:
|
664
|
-
filter:
|
665
|
-
all: الكل
|
666
|
-
pending: قيد الانتظار
|
667
|
-
rejected: مرفوض
|
668
|
-
verified: التحقق
|
669
|
-
filter_by: مصنف بواسطة
|
670
|
-
search: بحث
|
671
664
|
state:
|
672
665
|
pending: قيد الانتظار
|
673
666
|
rejected: مرفوض
|
data/config/locales/ca.yml
CHANGED
@@ -450,13 +450,7 @@ ca:
|
|
450
450
|
impersonate_existing_user: Gestionar la participant "%{name}"
|
451
451
|
impersonate_new_managed_user: Gestionar una nova participant
|
452
452
|
imports:
|
453
|
-
creators:
|
454
|
-
proposalcreator: Creador de la proposta
|
455
453
|
error: S'ha produït un error durant la importació
|
456
|
-
help:
|
457
|
-
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.
|
458
|
-
import_from_file: Importar d'un arxiu
|
459
|
-
invalid_lines: S'ha trobat un error al recurs número %{invalid_lines}
|
460
454
|
new:
|
461
455
|
accepted_mime_types:
|
462
456
|
csv: csv
|
@@ -928,13 +922,6 @@ ca:
|
|
928
922
|
success: Grup verificat correctament
|
929
923
|
user_groups:
|
930
924
|
index:
|
931
|
-
filter:
|
932
|
-
all: Totes
|
933
|
-
pending: Pendent
|
934
|
-
rejected: Rebutjat
|
935
|
-
verified: Verificat
|
936
|
-
filter_by: Filtra per
|
937
|
-
search: Cercar
|
938
925
|
state:
|
939
926
|
pending: Pendent
|
940
927
|
rejected: Rebutjat
|
data/config/locales/cs.yml
CHANGED
@@ -132,6 +132,7 @@ cs:
|
|
132
132
|
new_import:
|
133
133
|
attributes:
|
134
134
|
file:
|
135
|
+
invalid_file: Neplatný soubor, zkontrolujte, zda je soubor správně naformátován
|
135
136
|
invalid_mime_type: Neplatný typ mime
|
136
137
|
activerecord:
|
137
138
|
attributes:
|
@@ -366,6 +367,13 @@ cs:
|
|
366
367
|
values:
|
367
368
|
'false': 'Ne'
|
368
369
|
'true': 'Ano'
|
370
|
+
moderated_users:
|
371
|
+
reports_reason_eq:
|
372
|
+
label: Důvod hlášení
|
373
|
+
values:
|
374
|
+
does_not_belong: Nepatří
|
375
|
+
offensive: Urážlivý
|
376
|
+
spam: Nevyžádané
|
369
377
|
moderations:
|
370
378
|
reportable_type_string_eq:
|
371
379
|
label: Typ
|
@@ -400,11 +408,18 @@ cs:
|
|
400
408
|
search_label: Hledat
|
401
409
|
search_placeholder:
|
402
410
|
name_or_nickname_or_email_cont: Hledat %{collection} podle e-mailu, jména nebo přezdívky.
|
411
|
+
report_count_eq: Počet nahlášení
|
403
412
|
reported_id_string_or_reported_content_cont: Hledat %{collection} podle nahlášeného Id nebo obsahu.
|
404
413
|
title_cont: Hledat %{collection} podle názvu.
|
405
414
|
user_name_or_user_email_cont: Hledat %{collection} podle jména nebo e-mailu.
|
415
|
+
user_name_or_user_nickname_or_user_email_cont: Hledat %{collection} podle e-mailu, jména nebo přezdívky.
|
406
416
|
state_eq:
|
407
417
|
label: Stav
|
418
|
+
values:
|
419
|
+
all: Vše
|
420
|
+
pending: Čekající
|
421
|
+
rejected: Odmítnuto
|
422
|
+
verified: Ověřeno
|
408
423
|
forms:
|
409
424
|
file_help:
|
410
425
|
import:
|
@@ -450,13 +465,39 @@ cs:
|
|
450
465
|
impersonate_existing_user: Spravovat účastníka "%{name}"
|
451
466
|
impersonate_new_managed_user: Spravovat nového účastníka
|
452
467
|
imports:
|
453
|
-
|
454
|
-
|
468
|
+
and: a
|
469
|
+
data_errors:
|
470
|
+
duplicate_headers:
|
471
|
+
detail: Zkontrolujte, zda soubor obsahuje požadované sloupce nebo záhlaví pouze jednou.
|
472
|
+
message:
|
473
|
+
one: Duplikovat sloupec %{columns}.
|
474
|
+
few: Duplikovat sloupce %{columns}.
|
475
|
+
many: Duplikovat sloupce %{columns}.
|
476
|
+
other: Duplikovat sloupce %{columns}.
|
477
|
+
invalid_indexes:
|
478
|
+
lines:
|
479
|
+
detail: Zkontrolujte, zda jsou tyto řádky správně formátovány a obsahují platné záznamy.
|
480
|
+
message:
|
481
|
+
one: Nalezena chyba v importním souboru na řádku %{indexes}.
|
482
|
+
few: Nalezena chyba v importním souboru na řádcách %{indexes}.
|
483
|
+
many: Nalezena chyba v importním souboru na řádcích %{indexes}.
|
484
|
+
other: Nalezeny chyby v importním souboru na řádcích %{indexes}.
|
485
|
+
records:
|
486
|
+
detail: Zkontrolujte, zda jsou tyto záznamy správně formátovány a obsahují platné záznamy.
|
487
|
+
message:
|
488
|
+
one: Nalezena chyba v importním souboru pro záznamy s pořadovým číslem %{indexes}.
|
489
|
+
few: Nalezeny chyby v importním souboru pro záznamy s pořadovými čísly %{indexes}.
|
490
|
+
many: Nalezeny chyby v importním souboru pro záznamy s pořadovými čísly %{indexes}.
|
491
|
+
other: Nalezeny chyby v importním souboru pro záznamy s pořadovými čísly %{indexes}.
|
492
|
+
missing_headers:
|
493
|
+
detail: Zkontrolujte, zda soubor obsahuje požadované sloupce.
|
494
|
+
message:
|
495
|
+
one: Chybí sloupec %{columns}.
|
496
|
+
few: Chybí sloupce %{columns}.
|
497
|
+
many: Chybí sloupce %{columns}.
|
498
|
+
other: Chybí sloupce %{columns}.
|
455
499
|
error: Při importu došlo k chybě
|
456
|
-
|
457
|
-
proposalcreator: Soubor musí mít názvy sloupců title/en a body/en (nebo jiné lokalizace, které dáváte. title/cs a body/cs). Podporovány jsou také sloupce pro scope/id a category/id.
|
458
|
-
import_from_file: Importovat ze souboru
|
459
|
-
invalid_lines: Nalezena chyba ve zdroji číslo %{invalid_lines}
|
500
|
+
example_error: Nelze vytvořit příklad pro daný typ
|
460
501
|
new:
|
461
502
|
accepted_mime_types:
|
462
503
|
csv: csv
|
@@ -464,6 +505,8 @@ cs:
|
|
464
505
|
xlsx: xlsx
|
465
506
|
actions:
|
466
507
|
back: Zpět
|
508
|
+
download_example: Stáhnout příklad
|
509
|
+
download_example_format: Příklad jako %{name}
|
467
510
|
file_legend: Přidat importovaný soubor, který bude analyzován.
|
468
511
|
import: Importovat
|
469
512
|
notice: "%{number} %{resource_name} úspěšně importováno"
|
@@ -750,6 +793,7 @@ cs:
|
|
750
793
|
form:
|
751
794
|
colors:
|
752
795
|
colors_title: Organizační barvy
|
796
|
+
colors_warning_html: Varování! Změna těchto barev může narušit kontrasty přístupnosti. Můžete zkontrolovat kontrast výběru s <a href="%{link}">kontrolou kontrastu WebAIM Contrast Checker</a> nebo jinými podobnými nástroji.
|
753
797
|
header_snippets_help: Toto pole použijte k přidání věcí do hlavičky HTML. Nejběžnějším používáním je integrace služeb třetích stran, které vyžadují nějaký extra JavaScript nebo CSS. Můžete také použít k přidání dalších metaznaček do HTML. Všimněte si, že to bude vykresleno pouze na veřejných stránkách, nikoliv v sekci admin.
|
754
798
|
cta_button_path_help: 'Můžete přepsat, kde se na domovské stránce odkazuje tlačítko Výzvy k akci. Použijte zde částečné cesty, ne úplné adresy URL. Přijme písmena, čísla, pomlčky a lomítka a musí začínat písmenem. Tlačítko Výzvy k akci se na domovské stránce zobrazí mezi uvítacím textem a popisem. Příklad: %{url}'
|
755
799
|
cta_button_text_help: Text tlačítka výzvy k akci můžete na domovské stránce přepsat pro každý dostupný jazyk ve vaší organizaci. Pokud není nastaveno, bude použita výchozí hodnota. Tlačítko Výzvy k akci se na domovské stránce zobrazí mezi uvítacím textem a popisem.
|
@@ -928,13 +972,6 @@ cs:
|
|
928
972
|
success: Skupina byla úspěšně ověřena
|
929
973
|
user_groups:
|
930
974
|
index:
|
931
|
-
filter:
|
932
|
-
all: Vše
|
933
|
-
pending: čekající
|
934
|
-
rejected: Odmítnuto
|
935
|
-
verified: Ověřeno
|
936
|
-
filter_by: Filtrovat podle
|
937
|
-
search: Hledat
|
938
975
|
state:
|
939
976
|
pending: čekající
|
940
977
|
rejected: Odmítnuto
|
data/config/locales/de.yml
CHANGED
@@ -390,6 +390,11 @@ de:
|
|
390
390
|
user_name_or_user_email_cont: In %{collection} nach Name oder E-Mail suchen.
|
391
391
|
state_eq:
|
392
392
|
label: Bundesland
|
393
|
+
values:
|
394
|
+
all: Alle
|
395
|
+
pending: Ausstehend
|
396
|
+
rejected: Abgelehnt
|
397
|
+
verified: Überprüft
|
393
398
|
forms:
|
394
399
|
file_help:
|
395
400
|
import:
|
@@ -435,13 +440,8 @@ de:
|
|
435
440
|
impersonate_existing_user: Imitieren von Benutzer "%{name}"
|
436
441
|
impersonate_new_managed_user: Sich als neuer verwalteter Benutzer ausgeben
|
437
442
|
imports:
|
438
|
-
|
439
|
-
proposalcreator: Vorschlagsersteller
|
443
|
+
and: und
|
440
444
|
error: Beim Importieren ist ein Fehler aufgetreten
|
441
|
-
help:
|
442
|
-
proposalcreator: Die Datei muss die Spaltennamen title/de und body/de (oder andere Sprachen wie zum Beispiel title/en und body/en) enthalten. Zudem sind scope/id und category/id unterstützt.
|
443
|
-
import_from_file: Aus einer Datei importieren
|
444
|
-
invalid_lines: Fehler in der Ressource Nummer %{invalid_lines}
|
445
445
|
new:
|
446
446
|
accepted_mime_types:
|
447
447
|
csv: CSV
|
@@ -449,6 +449,8 @@ de:
|
|
449
449
|
xlsx: xlsx
|
450
450
|
actions:
|
451
451
|
back: Zurück
|
452
|
+
download_example: Beispiel herunterladen
|
453
|
+
download_example_format: Beispiel als %{name}
|
452
454
|
file_legend: Datei zum Importieren hinzufügen.
|
453
455
|
import: Importieren
|
454
456
|
notice: "%{number}%{resource_name} erfolgreich importiert"
|
@@ -910,13 +912,6 @@ de:
|
|
910
912
|
success: Benutzergruppe erfolgreich verifiziert
|
911
913
|
user_groups:
|
912
914
|
index:
|
913
|
-
filter:
|
914
|
-
all: Alle
|
915
|
-
pending: steht aus
|
916
|
-
rejected: Abgelehnt
|
917
|
-
verified: Überprüft
|
918
|
-
filter_by: Filtern nach
|
919
|
-
search: Suche
|
920
915
|
state:
|
921
916
|
pending: steht aus
|
922
917
|
rejected: Abgelehnt
|
data/config/locales/el.yml
CHANGED
@@ -450,16 +450,8 @@ el:
|
|
450
450
|
impersonate_existing_user: Διαχείριση συμμετέχοντα «%{name}»
|
451
451
|
impersonate_new_managed_user: Διαχείριση νέου συμμετέχοντα
|
452
452
|
imports:
|
453
|
-
creators:
|
454
|
-
proposalcreator: Δημιουργός της πρότασης
|
455
453
|
error: Υπήρξε πρόβλημα κατά την εισαγωγή
|
456
|
-
help:
|
457
|
-
proposalcreator: Το αρχείο πρέπει να έχει ονόματα στηλών title/en και body/en (ή άλλη τοπική γλώσσα που προτιμάτε, π.χ. title/ca και body/ca). Υποστηρίζονται επίσης οι στήλες scope/id και category/id.
|
458
|
-
import_from_file: Εισαγωγή από αρχείο
|
459
|
-
invalid_lines: Βρέθηκε σφάλμα στον αριθμό πόρου %{invalid_lines}
|
460
454
|
new:
|
461
|
-
accepted_mime_types:
|
462
|
-
json: JSON
|
463
455
|
actions:
|
464
456
|
back: Πίσω
|
465
457
|
file_legend: Προσθέστε ένα αρχείο εισαγωγής που θα αναλυθεί.
|
@@ -926,13 +918,6 @@ el:
|
|
926
918
|
success: Η ομάδα επαληθεύτηκε με επιτυχία
|
927
919
|
user_groups:
|
928
920
|
index:
|
929
|
-
filter:
|
930
|
-
all: Όλα
|
931
|
-
pending: Σε εκκρεμότητα
|
932
|
-
rejected: Απορρίφθηκε
|
933
|
-
verified: Επαληθεύτηκε
|
934
|
-
filter_by: Φιλτράρισμα κατά
|
935
|
-
search: Αναζήτηση
|
936
921
|
state:
|
937
922
|
pending: Σε εκκρεμότητα
|
938
923
|
rejected: Απορρίφθηκε
|
data/config/locales/en.yml
CHANGED
@@ -133,6 +133,7 @@ en:
|
|
133
133
|
new_import:
|
134
134
|
attributes:
|
135
135
|
file:
|
136
|
+
invalid_file: Invalid file provided, please check that the file is correctly formatted
|
136
137
|
invalid_mime_type: Invalid mime type
|
137
138
|
activerecord:
|
138
139
|
attributes:
|
@@ -367,6 +368,13 @@ en:
|
|
367
368
|
values:
|
368
369
|
'false': 'No'
|
369
370
|
'true': 'Yes'
|
371
|
+
moderated_users:
|
372
|
+
reports_reason_eq:
|
373
|
+
label: Report reason
|
374
|
+
values:
|
375
|
+
does_not_belong: Does not belong
|
376
|
+
offensive: Offensive
|
377
|
+
spam: Spam
|
370
378
|
moderations:
|
371
379
|
reportable_type_string_eq:
|
372
380
|
label: Type
|
@@ -401,11 +409,18 @@ en:
|
|
401
409
|
search_label: Search
|
402
410
|
search_placeholder:
|
403
411
|
name_or_nickname_or_email_cont: Search %{collection} by email, name or nickname.
|
412
|
+
report_count_eq: Report count eq
|
404
413
|
reported_id_string_or_reported_content_cont: Search %{collection} by reportable id or content.
|
405
414
|
title_cont: Search %{collection} by title.
|
406
415
|
user_name_or_user_email_cont: Search %{collection} by name or email.
|
416
|
+
user_name_or_user_nickname_or_user_email_cont: Search %{collection} by email, name or nickname.
|
407
417
|
state_eq:
|
408
418
|
label: State
|
419
|
+
values:
|
420
|
+
all: All
|
421
|
+
pending: Pending
|
422
|
+
rejected: Rejected
|
423
|
+
verified: Verified
|
409
424
|
forms:
|
410
425
|
file_help:
|
411
426
|
import:
|
@@ -451,23 +466,43 @@ en:
|
|
451
466
|
impersonate_existing_user: Manage participant "%{name}"
|
452
467
|
impersonate_new_managed_user: Manage new participant
|
453
468
|
imports:
|
454
|
-
|
455
|
-
|
469
|
+
and: and
|
470
|
+
data_errors:
|
471
|
+
duplicate_headers:
|
472
|
+
detail: Please check that file contains required columns or headers only once.
|
473
|
+
message:
|
474
|
+
one: Duplicate column %{columns}.
|
475
|
+
other: Duplicate columns %{columns}.
|
476
|
+
invalid_indexes:
|
477
|
+
lines:
|
478
|
+
detail: Please check that these lines are formatted correctly and contain valid records.
|
479
|
+
message:
|
480
|
+
one: Found an error in the import file on line %{indexes}.
|
481
|
+
other: Found errors in the import file on lines %{indexes}.
|
482
|
+
records:
|
483
|
+
detail: Please check that these records are formatted correctly and contain valid records.
|
484
|
+
message:
|
485
|
+
one: Found an error in the import file for records with order numbers %{indexes}.
|
486
|
+
other: Found errors in the import file for records with order numbers %{indexes}.
|
487
|
+
missing_headers:
|
488
|
+
detail: Please check that the file contains required columns.
|
489
|
+
message:
|
490
|
+
one: Missing column %{columns}.
|
491
|
+
other: Missing columns %{columns}.
|
456
492
|
error: There was a problem during the import
|
457
|
-
|
458
|
-
proposalcreator: The file must have column names title/en and body/en (or another locale which you prefer eg. title/ca and body/ca). Also scope/id and category/id columns are supported.
|
459
|
-
import_from_file: Import from a file
|
460
|
-
invalid_lines: Found error in resource number %{invalid_lines}
|
493
|
+
example_error: Could not create an example for the given type
|
461
494
|
new:
|
462
495
|
accepted_mime_types:
|
463
|
-
csv:
|
464
|
-
json:
|
465
|
-
xlsx: xlsx
|
496
|
+
csv: CSV
|
497
|
+
json: JSON
|
498
|
+
xlsx: Excel (.xlsx)
|
466
499
|
actions:
|
467
500
|
back: Back
|
501
|
+
download_example: Download example
|
502
|
+
download_example_format: Example as %{name}
|
468
503
|
file_legend: Add an import file that will be parsed.
|
469
504
|
import: Import
|
470
|
-
notice: "%{
|
505
|
+
notice: "%{count} %{resource_name} successfully imported"
|
471
506
|
logs:
|
472
507
|
logs_list:
|
473
508
|
no_logs_yet: There are no logs yet
|
@@ -751,6 +786,7 @@ en:
|
|
751
786
|
form:
|
752
787
|
colors:
|
753
788
|
colors_title: Organization colors
|
789
|
+
colors_warning_html: Warning! Changing these colors can break the accessibility contrasts. You can check the contrast of your choosing with <a href="%{link}">WebAIM Contrast Checker</a> or other similar tools.
|
754
790
|
header_snippets_help: Use this field to add things to the HTML head. The most common use is to integrate third-party services that require some extra JavaScript or CSS. Also, you can use it to add extra meta tags to the HTML. Note that this will only be rendered in public pages, not in the admin section.
|
755
791
|
cta_button_path_help: 'You can overwrite where the Call To Action button in the homepage links to. Use partial paths, not full URLs here. Accepts letters, numbers, dashes and slashes, and must start with a letter. The Call To Action button is shown in the homepage between the welcome text and the description. Example: %{url}'
|
756
792
|
cta_button_text_help: You can overwrite the Call To Action button text in the homepage for each available language in your organization. If not set, the default value will be used. The Call To Action button is shown in the homepage between the welcome text and the description.
|
@@ -929,13 +965,6 @@ en:
|
|
929
965
|
success: Group successfully verified
|
930
966
|
user_groups:
|
931
967
|
index:
|
932
|
-
filter:
|
933
|
-
all: All
|
934
|
-
pending: Pending
|
935
|
-
rejected: Rejected
|
936
|
-
verified: Verified
|
937
|
-
filter_by: Filter by
|
938
|
-
search: Search
|
939
968
|
state:
|
940
969
|
pending: Pending
|
941
970
|
rejected: Rejected
|