decidim-core 0.30.0 → 0.30.2
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.
- checksums.yaml +4 -4
- data/app/cells/decidim/activity/show.erb +6 -6
- data/app/cells/decidim/address/show.erb +3 -3
- data/app/cells/decidim/author/show.erb +1 -1
- data/app/cells/decidim/content_blocks/participatory_space_extra_data/extra_data.erb +2 -2
- data/app/cells/decidim/content_blocks/participatory_space_main_data/title.erb +11 -2
- data/app/cells/decidim/footer_topics/show.erb +2 -2
- data/app/cells/decidim/group_admins/show.erb +3 -1
- data/app/cells/decidim/group_members/show.erb +6 -2
- data/app/cells/decidim/images_panel/show.erb +5 -2
- data/app/cells/decidim/participatory_space_dropdown_metadata/metadata.erb +4 -4
- data/app/cells/decidim/report_button/flag_modal.erb +11 -9
- data/app/cells/decidim/report_user_button/flag_modal.erb +11 -10
- data/app/cells/decidim/upload_modal/files.erb +4 -4
- data/app/cells/decidim/upload_modal_cell.rb +5 -3
- data/app/commands/decidim/amendable/accept.rb +2 -1
- data/app/commands/decidim/create_omniauth_registration.rb +1 -1
- data/app/commands/decidim/create_report.rb +5 -1
- data/app/commands/decidim/invite_user.rb +1 -1
- data/app/controllers/concerns/decidim/participatory_space_context.rb +4 -1
- data/app/controllers/decidim/amendments_controller.rb +3 -3
- data/app/controllers/decidim/reports_controller.rb +6 -1
- data/app/forms/decidim/ephemeral_user_form.rb +1 -1
- data/app/forms/decidim/omniauth_registration_form.rb +1 -1
- data/app/forms/decidim/registration_form.rb +1 -1
- data/app/helpers/decidim/amendments_helper.rb +2 -1
- data/app/helpers/decidim/filters_helper.rb +25 -0
- data/app/helpers/decidim/layout_helper.rb +6 -0
- data/app/helpers/decidim/menu_helper.rb +2 -2
- data/app/helpers/decidim/paginate_helper.rb +1 -1
- data/app/helpers/decidim/tooltip_helper.rb +4 -1
- data/app/mailers/decidim/notifications_digest_mailer.rb +7 -1
- data/app/mailers/decidim/reported_mailer.rb +17 -2
- data/app/packs/images/decidim/default-avatar.svg +1 -1
- data/app/packs/src/decidim/callout.js +13 -8
- data/app/packs/src/decidim/confirm.js +15 -3
- data/app/packs/src/decidim/datepicker/generate_datepicker.js +2 -0
- data/app/packs/src/decidim/datepicker/generate_timepicker.js +2 -0
- data/app/packs/src/decidim/direct_uploads/upload_field.js +3 -4
- data/app/packs/src/decidim/direct_uploads/upload_modal.js +8 -9
- data/app/packs/src/decidim/dropdown_menu.js +18 -0
- data/app/packs/src/decidim/editor/common/suggestion.js +11 -1
- data/app/packs/src/decidim/index.js +1 -0
- data/app/packs/src/decidim/input_character_counter.js +1 -1
- data/app/packs/stylesheets/decidim/_activity.scss +4 -4
- data/app/packs/stylesheets/decidim/_cards.scss +4 -0
- data/app/packs/stylesheets/decidim/_filters.scss +1 -1
- data/app/packs/stylesheets/decidim/_header.scss +64 -37
- data/app/packs/stylesheets/decidim/_layout.scss +2 -2
- data/app/packs/stylesheets/decidim/_modal.scss +1 -5
- data/app/packs/stylesheets/decidim/_modal_update.scss +5 -1
- data/app/packs/stylesheets/decidim/resource_history.scss +14 -4
- data/app/permissions/decidim/default_permissions.rb +2 -0
- data/app/permissions/decidim/permissions.rb +13 -1
- data/app/presenters/decidim/notification_to_mailer_presenter.rb +7 -3
- data/app/queries/decidim/last_activity.rb +25 -0
- data/app/validators/translated_etiquette_validator.rb +2 -0
- data/app/views/decidim/errors/internal_server_error.html.erb +1 -1
- data/app/views/decidim/errors/not_found.html.erb +1 -1
- data/app/views/decidim/messaging/conversations/_reply_form.html.erb +1 -2
- data/app/views/decidim/messaging/conversations/_start.html.erb +1 -1
- data/app/views/decidim/newsletters/unsubscribe.html.erb +16 -4
- data/app/views/decidim/reported_mailer/hidden_manually.html.erb +25 -0
- data/app/views/decidim/searches/_filters.html.erb +48 -13
- data/app/views/decidim/shared/_component_announcement.html.erb +1 -1
- data/app/views/decidim/shared/_confirm_modal.html.erb +3 -5
- data/app/views/decidim/shared/_filters.html.erb +6 -4
- data/app/views/decidim/shared/_results_per_page.html.erb +1 -1
- data/app/views/kaminari/decidim/_page.html.erb +1 -1
- data/app/views/kaminari/decidim/_paginator.html.erb +1 -1
- data/app/views/layouts/decidim/_logo.html.erb +2 -2
- data/app/views/layouts/decidim/footer/_main.html.erb +1 -1
- data/app/views/layouts/decidim/footer/_main_intro.html.erb +1 -1
- data/app/views/layouts/decidim/footer/_mini.html.erb +2 -2
- data/app/views/layouts/decidim/header/_main.html.erb +2 -2
- data/app/views/layouts/decidim/header/_main_links_desktop.html.erb +6 -0
- data/app/views/layouts/decidim/header/_main_links_dropdown.html.erb +2 -0
- data/app/views/layouts/decidim/header/_main_links_mobile_account.html.erb +1 -1
- data/app/views/layouts/decidim/header/_menu_breadcrumb_main_dropdown_desktop.html.erb +5 -11
- data/app/views/layouts/decidim/header/_menu_breadcrumb_mobile_tablet.html.erb +5 -5
- data/app/views/layouts/decidim/header/_mobile_language_choose.html.erb +1 -1
- data/config/locales/ar.yml +0 -10
- data/config/locales/bg-BG.yml +2 -2
- data/config/locales/bg.yml +0 -12
- data/config/locales/ca-IT.yml +40 -6
- data/config/locales/ca.yml +40 -6
- data/config/locales/cs.yml +37 -17
- data/config/locales/de.yml +76 -29
- data/config/locales/el.yml +0 -11
- data/config/locales/en.yml +40 -6
- data/config/locales/es-MX.yml +41 -7
- data/config/locales/es-PY.yml +41 -7
- data/config/locales/es.yml +40 -6
- data/config/locales/eu.yml +82 -47
- data/config/locales/fi-plain.yml +65 -9
- data/config/locales/fi.yml +66 -10
- data/config/locales/fr-CA.yml +42 -13
- data/config/locales/fr-LU.yml +3 -3
- data/config/locales/fr.yml +42 -13
- data/config/locales/gl.yml +0 -8
- data/config/locales/hu.yml +0 -12
- data/config/locales/id-ID.yml +0 -8
- data/config/locales/is-IS.yml +0 -6
- data/config/locales/it.yml +165 -8
- data/config/locales/ja.yml +47 -14
- data/config/locales/lb-LU.yml +2 -2
- data/config/locales/lb.yml +0 -8
- data/config/locales/lt.yml +0 -12
- data/config/locales/lv.yml +0 -8
- data/config/locales/nl.yml +0 -8
- data/config/locales/no.yml +0 -8
- data/config/locales/pl.yml +0 -12
- data/config/locales/pt-BR.yml +0 -11
- data/config/locales/pt.yml +0 -8
- data/config/locales/ro-RO.yml +0 -18
- data/config/locales/ru.yml +0 -8
- data/config/locales/sk-SK.yml +3 -3
- data/config/locales/sk.yml +2 -8
- data/config/locales/sv.yml +63 -16
- data/config/locales/tr-TR.yml +0 -8
- data/config/locales/uk.yml +0 -7
- data/config/locales/zh-CN.yml +0 -8
- data/config/locales/zh-TW.yml +0 -12
- data/db/migrate/20171212103803_create_unique_nicknames.rb +1 -1
- data/db/migrate/20180221101934_fix_nickname_index.rb +1 -1
- data/db/migrate/20180706104107_add_nickname_to_managed_users.rb +1 -1
- data/db/migrate/20181001124950_move_users_groups_to_users_table.rb +1 -1
- data/db/migrate/20190412131728_fix_user_names.rb +1 -1
- data/lib/decidim/assets/tailwind/tailwind.config.js.erb +2 -1
- data/lib/decidim/core/test/factories.rb +14 -2
- data/lib/decidim/core/test/shared_examples/announcements_examples.rb +4 -0
- data/lib/decidim/core/test/shared_examples/comments_examples.rb +7 -5
- data/lib/decidim/core/test/shared_examples/map_examples.rb +2 -2
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/form_builder.rb +14 -0
- data/lib/decidim/nicknamizable.rb +6 -9
- data/lib/decidim/private_download_helper.rb +3 -3
- data/lib/tasks/upgrade/clean.rake +9 -1
- data/lib/tasks/upgrade/decidim_fix_nickname_uniqueness.rake +1 -1
- data/lib/tasks/upgrade/migrations.rake +2 -0
- metadata +9 -7
- /data/app/views/decidim/reported_mailer/{hide.html.erb → hidden_automatically.html.erb} +0 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
<p class="email-greeting"><%= t(".hello", name: @user.name) %></p>
|
2
|
+
|
3
|
+
<p class="email-instructions">
|
4
|
+
<%= t(".report_html", url: reported_content_url, moderator: @moderator.name) %>
|
5
|
+
</p>
|
6
|
+
|
7
|
+
<p><b><%= t(".participatory_space") %></b></p>
|
8
|
+
<p><%= link_to translated_attribute(@participatory_space.title), resource_locator(@participatory_space).url %></p>
|
9
|
+
|
10
|
+
<p><b><%= t(".reason") %></b></p>
|
11
|
+
<p><%= t(@report.reason, organization_name: organization_name(@participatory_space.organization), scope: "decidim.shared.flag_modal") %></p>
|
12
|
+
|
13
|
+
<% if @report.details.present? %>
|
14
|
+
<p><b><%= t(".details") %></b></p>
|
15
|
+
<blockquote>
|
16
|
+
<%= @report.details %>
|
17
|
+
</blockquote>
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
<p><b><%= t(".content") %></b></p>
|
21
|
+
<%= reported_content_cell %>
|
22
|
+
|
23
|
+
<p class="email-button email-button__cta">
|
24
|
+
<%= link_to t(".manage_moderations"), manage_moderations_url %>
|
25
|
+
</p>
|
@@ -12,35 +12,70 @@
|
|
12
12
|
<%= icon "arrow-down-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
|
13
13
|
<%= icon "arrow-up-s-line", class: "w-8 h-8 flex-none text-secondary fill-current" %>
|
14
14
|
</button>
|
15
|
-
<
|
16
|
-
<
|
17
|
-
<%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}" do %>
|
15
|
+
<ul id="dropdown-menu-search" aria-hidden="true">
|
16
|
+
<li>
|
17
|
+
<%= link_to main_search_path, class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == nil}", "aria-current": params.dig(:filter, :with_resource_type) == nil ? "true" : "" do %>
|
18
18
|
<%= resource_type_icon("all") %>
|
19
19
|
<span><%= t("all", scope: "decidim.searches.filters.state") %></span>
|
20
20
|
<span class="label ml-auto"><%= @results_count %></span>
|
21
21
|
<% end %>
|
22
|
-
</
|
22
|
+
</li>
|
23
23
|
<% @blocks.each do |elements| %>
|
24
|
-
<
|
25
|
-
|
26
|
-
|
24
|
+
<li>
|
25
|
+
<ul>
|
26
|
+
<% elements.each do |type, results| %>
|
27
27
|
<% if results[:count].positive? %>
|
28
|
-
|
28
|
+
<li>
|
29
|
+
<%= link_to search_path_by_resource_type(type), class: "filter#{" is-active" if params.dig(:filter, :with_resource_type) == type}", "aria-current": params.dig(:filter, :with_resource_type) == type ? "true" : "" do %>
|
29
30
|
<%= resource_type_icon(type) %>
|
30
31
|
<span><%= searchable_resource_human_name(type) %></span>
|
31
32
|
<span class="label ml-auto"><%= results[:count] %></span>
|
32
33
|
<% end %>
|
34
|
+
</li>
|
33
35
|
<% else %>
|
34
|
-
<%= content_tag :
|
36
|
+
<%= content_tag :li, class: "filter#{" is-empty" if results[:count].zero?}" do %>
|
35
37
|
<%= resource_type_icon(type) %>
|
36
38
|
<span><%= searchable_resource_human_name(type) %></span>
|
37
39
|
<span class="label ml-auto"><%= results[:count] %></span>
|
38
40
|
<% end %>
|
39
41
|
<% end %>
|
40
|
-
|
41
|
-
|
42
|
-
</
|
42
|
+
<% end %>
|
43
|
+
</ul>
|
44
|
+
</li>
|
43
45
|
<% end %>
|
44
|
-
</
|
46
|
+
</ul>
|
45
47
|
</div>
|
46
48
|
</nav>
|
49
|
+
<script type="text/javascript">
|
50
|
+
const button = document.querySelector('#dropdown-trigger-search');
|
51
|
+
const arrowDown = button.querySelector('svg:first-of-type');
|
52
|
+
const arrowUp = button.querySelector('svg:last-of-type');
|
53
|
+
const list = document.querySelector('#dropdown-menu-search');
|
54
|
+
// the arrow is up when user arrives on the page, with the list displayed
|
55
|
+
arrowUp.addEventListener('click', function(){
|
56
|
+
setTimeout(() => {
|
57
|
+
button.setAttribute('aria-expanded', 'false');
|
58
|
+
list.style.display = "none";
|
59
|
+
}, 300)
|
60
|
+
})
|
61
|
+
arrowDown.addEventListener('click', function(){
|
62
|
+
setTimeout(() => {
|
63
|
+
button.setAttribute('aria-expanded', 'true');
|
64
|
+
list.style.display = "block";
|
65
|
+
}, 300)
|
66
|
+
})
|
67
|
+
// 32 is code for space bar and 13 is code for enter
|
68
|
+
button.addEventListener('keydown', function(e){
|
69
|
+
if ((e.keyCode === 13 || e.keyCode === 32) && button.getAttribute('aria-expanded') === 'true') {
|
70
|
+
setTimeout(() => {
|
71
|
+
button.setAttribute('aria-expanded', 'false');
|
72
|
+
list.style.display = "none";
|
73
|
+
}, 300)
|
74
|
+
} else if ((e.keyCode === 13 || e.keyCode === 32) && button.getAttribute('aria-expanded') === 'false'){
|
75
|
+
setTimeout(() => {
|
76
|
+
button.setAttribute('aria-expanded', 'true');
|
77
|
+
list.style.display = "block";
|
78
|
+
}, 300)
|
79
|
+
}
|
80
|
+
})
|
81
|
+
</script>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% announcement = translated_attribute(current_settings.announcement).presence || translated_attribute(component_settings.announcement).presence %>
|
2
|
-
<% if announcement %>
|
2
|
+
<% if strip_tags(announcement).present? %>
|
3
3
|
<section class="layout-main__section">
|
4
4
|
<%= cell("decidim/announcement", announcement, local_assigns.merge(callout_class: "editor-content")) %>
|
5
5
|
</section>
|
@@ -1,16 +1,14 @@
|
|
1
1
|
<%= decidim_modal id: "confirm-modal" do %>
|
2
2
|
<div data-dialog-container>
|
3
|
-
<%= icon "delete-bin-line" %>
|
4
3
|
<h2 class="h2" data-dialog-title id="dialog-title-confirm-modal"><%= t("title", scope: "decidim.shared.confirm_modal") %></h2>
|
5
|
-
|
6
4
|
<div data-confirm-modal-content></div>
|
7
5
|
</div>
|
8
6
|
|
9
|
-
<div data-dialog-actions>
|
10
|
-
<button class="button button__lg button__transparent-secondary" data-confirm-cancel data-dialog-close="confirm-modal">
|
7
|
+
<div data-dialog-actions class="flex flex-col-reverse md:flex-row">
|
8
|
+
<button class="button button__lg button__transparent-secondary w-full md:w-auto" data-confirm-cancel data-dialog-close="confirm-modal">
|
11
9
|
<span><%= t("cancel", scope: "decidim.shared.confirm_modal") %></span>
|
12
10
|
</button>
|
13
|
-
<button class="button button__lg button__secondary" data-confirm-ok>
|
11
|
+
<button class="button button__lg button__secondary w-full md:w-auto" data-confirm-ok>
|
14
12
|
<span><%= t("ok", scope: "decidim.shared.confirm_modal") %></span>
|
15
13
|
</button>
|
16
14
|
</div>
|
@@ -16,16 +16,18 @@
|
|
16
16
|
<% if local_assigns.has_key?(:skip_to_id) %>
|
17
17
|
<%= link_to t("skip", scope: "decidim.shared.filter_form_help"), "##{skip_to_id}", class: "filter-skip", role: "menuitem" %>
|
18
18
|
<% end %>
|
19
|
-
|
19
|
+
|
20
|
+
<p id="filter-help-text" class="filter-help" role="menuitem" aria-disabled="true"><%= t("help", scope: "decidim.shared.filter_form_help") %></p>
|
20
21
|
|
21
22
|
<% if local_assigns.has_key?(:search_variable) %>
|
22
23
|
<div class="filter-search filter-container" role="menuitem">
|
23
24
|
<%= form.search_field search_variable,
|
24
25
|
label: false,
|
25
26
|
placeholder: search_label,
|
26
|
-
title: search_label,
|
27
|
-
"aria-label": search_label
|
28
|
-
|
27
|
+
title: filter_search_label(search_label, skip_to_id),
|
28
|
+
"aria-label": filter_search_label(search_label, skip_to_id),
|
29
|
+
"aria-describedby": "filter-help-text" %>
|
30
|
+
<button type="submit" aria-label="<%= filter_search_label(search_label, skip_to_id) %>">
|
29
31
|
<%= icon "search-line" %>
|
30
32
|
</button>
|
31
33
|
</div>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% menu_id = "#{SecureRandom.uuid}_results_per_page_menu" %>
|
2
2
|
<div class="flex items-center gap-1">
|
3
3
|
<%= icon "list-check-2", class: "w-4 h-4 text-gray fill-current" %>
|
4
|
-
<
|
4
|
+
<p class="text-gray-2"><%= t("decidim.shared.results_per_page.label") %></p>
|
5
5
|
|
6
6
|
<details class="relative">
|
7
7
|
<summary id="<%= menu_id %>-control" class="flex items-center cursor-pointer text-secondary font-semibold" aria-controls="<%= menu_id %>" aria-haspopup="menu" title="<%= t("decidim.shared.results_per_page.title") %>">
|
@@ -6,6 +6,6 @@
|
|
6
6
|
total_pages: total number of pages
|
7
7
|
per_page: number of items to fetch per page
|
8
8
|
remote: data-remote -%>
|
9
|
-
<li class="w-6 h-6 rounded-full hover:bg-background-3 transition<%= "
|
9
|
+
<li class="w-6 h-6 px-2 rounded-full hover:bg-background-3 transition min-w-fit <%= "bg-background-3 grid place-items-center" if page.current? %>" <%== 'aria-current="page"' if page.current? %> data-page>
|
10
10
|
<%= link_to_unless page.current?, page, url, { class: "w-full h-full grid place-items-center", remote:, rel: page.rel, title: t("views.pagination.title") << page.to_s } %>
|
11
11
|
</li>
|
@@ -8,7 +8,7 @@ paginator: the paginator that renders the pagination tags inside -%>
|
|
8
8
|
|
9
9
|
<% if total_pages > 1 %>
|
10
10
|
<nav aria-label="<%= t("views.pagination.pagination") %>">
|
11
|
-
<ul class="flex items-center text-sm text-secondary" data-pages>
|
11
|
+
<ul class="flex flex-wrap items-center text-sm text-secondary gap-x-1" data-pages>
|
12
12
|
<%= paginator.prev_page_tag unless current_page.first? %>
|
13
13
|
|
14
14
|
<% paginator.each_page do |page| -%>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if organization %>
|
2
|
-
<%= link_to root_url
|
2
|
+
<%= link_to root_url do %>
|
3
3
|
<% if organization.logo.attached? %>
|
4
|
-
<%= image_tag organization.attached_uploader(:logo).variant_url(:medium), alt: t("
|
4
|
+
<%= image_tag organization.attached_uploader(:logo).variant_url(:medium), alt: "#{current_organization_name} (#{t("decidim.errors.not_found.back_home")})" %>
|
5
5
|
<% else %>
|
6
6
|
<span><%= current_organization_name %></span>
|
7
7
|
<% end %>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<nav class="md:w-1/2 lg:w-auto" role="navigation" aria-label="Legal">
|
12
12
|
<%= render partial: "layouts/decidim/footer/main_legal" %>
|
13
13
|
</nav>
|
14
|
-
<nav class="w-full md:w-auto md:ml-auto" role="navigation" aria-label="
|
14
|
+
<nav class="w-full md:w-auto md:ml-auto" role="navigation" aria-label="<%= t("layouts.decidim.footer.social_media") %>">
|
15
15
|
<%= render partial: "layouts/decidim/footer/main_social_media_links" %>
|
16
16
|
</nav>
|
17
17
|
<%= render partial: "layouts/decidim/footer/main_language_chooser" %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<% if current_organization.official_img_footer.attached? %>
|
2
2
|
<%= link_to current_organization.official_url, class: "block mb-6" do %>
|
3
|
-
<%= image_tag current_organization.attached_uploader(:official_img_footer).url, alt: current_organization_name, class: "max-h-16" %>
|
3
|
+
<%= image_tag current_organization.attached_uploader(:official_img_footer).url, alt: t("layouts.decidim.footer.current_organization_img", organization: current_organization_name), class: "max-h-16" %>
|
4
4
|
<% end %>
|
5
5
|
<% end %>
|
6
6
|
<div class="text-sm text-white prose">
|
@@ -4,9 +4,9 @@
|
|
4
4
|
<a rel="decidim noopener noreferrer" href="https://decidim.org/" target="_blank" data-external-link="text-only">
|
5
5
|
<%= image_pack_tag("media/images/decidim-logo.svg", alt: t("layouts.decidim.footer.decidim_logo"), class: "max-h-8 block") %>
|
6
6
|
</a>
|
7
|
-
<
|
7
|
+
<p class="text-xs mt-2 [&_a]:underline">
|
8
8
|
<%= t("layouts.decidim.footer.made_with_open_source").html_safe %>
|
9
|
-
</
|
9
|
+
</p>
|
10
10
|
</div>
|
11
11
|
<a class="flex gap-1 hover:opacity-50" rel="license noopener noreferrer" href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" data-external-link="text-only">
|
12
12
|
<span class="sr-only"><%= t("layouts.decidim.footer.cc_by_license") %></span>
|
@@ -11,10 +11,10 @@
|
|
11
11
|
<% if current_user&.ephemeral? %>
|
12
12
|
<%= render partial: "layouts/decidim/header/close_ephemeral_session" %>
|
13
13
|
<% else %>
|
14
|
-
<div class="main-bar__search">
|
14
|
+
<div role="search" class="main-bar__search">
|
15
15
|
<%= render partial: "layouts/decidim/header/main_search" %>
|
16
16
|
</div>
|
17
|
-
<div class="main-bar__links-desktop">
|
17
|
+
<div role="navigation" class="main-bar__links-desktop">
|
18
18
|
<%= render partial: "layouts/decidim/header/main_links_desktop" %>
|
19
19
|
</div>
|
20
20
|
<div class="main-bar__menu-mobile">
|
@@ -30,6 +30,12 @@
|
|
30
30
|
<% unread_data = current_user_unread_data %>
|
31
31
|
<% if unread_data[:unread_items] %>
|
32
32
|
<%= content_tag :span, "", class: "main-bar__notification", data: unread_data %>
|
33
|
+
<% if unread_data[:unread_notifications] %>
|
34
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_notifications"), class: "sr-only" %>
|
35
|
+
<% end %>
|
36
|
+
<% if unread_data[:unread_conversations] %>
|
37
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_conversations"), class: "sr-only" %>
|
38
|
+
<% end %>
|
33
39
|
<% end %>
|
34
40
|
<% if current_user.avatar.attached? %>
|
35
41
|
<span class="main-bar__avatar">
|
@@ -17,6 +17,7 @@
|
|
17
17
|
<span class="text-secondary"><%= t("layouts.decidim.user_menu.notifications") %></span>
|
18
18
|
<% if unread_data[:unread_notifications] %>
|
19
19
|
<%= content_tag :span, "", class: "main-bar__dropdown-notification", data: unread_data %>
|
20
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_notifications"), class: "sr-only" %>
|
20
21
|
<% end %>
|
21
22
|
<% end %>
|
22
23
|
</li>
|
@@ -26,6 +27,7 @@
|
|
26
27
|
<span class="text-secondary"><%= t("layouts.decidim.user_menu.conversations") %></span>
|
27
28
|
<% if unread_data[:unread_conversations] %>
|
28
29
|
<%= content_tag :span, "", class: "main-bar__dropdown-notification", data: unread_data %>
|
30
|
+
<%= content_tag :span, t("layouts.decidim.user_menu.unread_conversations"), class: "sr-only" %>
|
29
31
|
<% end %>
|
30
32
|
<% end %>
|
31
33
|
</li>
|
@@ -10,7 +10,7 @@
|
|
10
10
|
</div>
|
11
11
|
|
12
12
|
<div>
|
13
|
-
<div class="main-bar__links-mobile__trigger" onclick="document.querySelector('#dropdown-trigger-links-mobile').click();">
|
13
|
+
<div class="main-bar__links-mobile__trigger" onclick="document.querySelector('#dropdown-trigger-links-mobile').click();document.querySelector('#dropdown-menu-account-mobile').removeAttribute('aria-modal')">
|
14
14
|
<%= icon "close-line" %>
|
15
15
|
</div>
|
16
16
|
</div>
|
@@ -1,16 +1,10 @@
|
|
1
1
|
<div id="<%= id %>" class="menu-bar__main-dropdown">
|
2
|
-
<div class="menu-bar__main-
|
3
|
-
<div class="menu-bar__main-
|
2
|
+
<div class="menu-bar__main-dropdown__left">
|
3
|
+
<div class="menu-bar__main-dropdown__left-top">
|
4
4
|
<%= render partial: "layouts/decidim/header/menu_breadcrumb_main_dropdown_top_left" %>
|
5
5
|
</div>
|
6
|
-
<%=
|
7
|
-
|
8
|
-
<div class="menu-bar__main-dropdown__bottom">
|
9
|
-
<div class="menu-bar__main-dropdown__bottom-left">
|
10
|
-
<%= cell("decidim/highlighted_participatory_process", menu_highlighted_participatory_process) %>
|
11
|
-
</div>
|
12
|
-
<div class="menu-bar__main-dropdown__bottom-right">
|
13
|
-
<%= cell "decidim/content_blocks/menu_breadcrumb_last_activity", current_organization %>
|
14
|
-
</div>
|
6
|
+
<%= cell("decidim/highlighted_participatory_process", menu_highlighted_participatory_process) %>
|
7
|
+
<%= cell "decidim/content_blocks/menu_breadcrumb_last_activity", current_organization %>
|
15
8
|
</div>
|
9
|
+
<%= breadcrumb_root_menu.render %>
|
16
10
|
</div>
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<% dropdown_item = breadcrumb_items.select { |item| item[:dropdown_cell].present? }.last %>
|
2
2
|
<div class="menu-bar__breadcrumb-mobile__dropdown-trigger">
|
3
|
-
<span>
|
4
|
-
<% breadcrumb_items.last(2).each_with_index do |item,
|
5
|
-
<% item_label = decidim_escape_translated(item[:label])
|
6
|
-
<% if
|
3
|
+
<span class="inline-block w-full overflow-hidden text-ellipsis align-middle">
|
4
|
+
<% breadcrumb_items.last(2).each_with_index do |item, idx| %>
|
5
|
+
<% item_label = decidim_escape_translated(item[:label]) %>
|
6
|
+
<% if idx.positive? %>
|
7
7
|
<span>/</span>
|
8
8
|
<% end %>
|
9
|
-
<span class="cursor-pointer
|
9
|
+
<span class="cursor-pointer truncate" <%== 'aria-current="page"' if item[:active] %>>
|
10
10
|
<% if item[:url].present? && !is_active_link?(item[:url], :exclusive) %>
|
11
11
|
<%= link_to(item_label, item[:url]) %>
|
12
12
|
<% else %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if available_locales.length > 1 %>
|
2
2
|
<div>
|
3
3
|
<button id="dropdown-trigger-language-chooser-mobile" data-component="dropdown" data-target="dropdown-menu-language-chooser-mobile" class="mt-8 rounded-lg py-0 bg-gray-5 h-10 border border-gray outline outline-1 outline-transparent">
|
4
|
-
<span><%= t("name", scope: "locale" ) %></span>
|
4
|
+
<span class="ml-2"><%= t("name", scope: "locale" ) %></span>
|
5
5
|
<%= icon "arrow-down-s-line" %>
|
6
6
|
<%= icon "arrow-up-s-line" %>
|
7
7
|
<span class="sr-only">
|
data/config/locales/ar.yml
CHANGED
@@ -556,8 +556,6 @@ ar:
|
|
556
556
|
ready: جاهز
|
557
557
|
editor_images:
|
558
558
|
drag_and_drop_help: يمكن إضافة صور عن طريق سحبها وإسقاطها أو لصقها.
|
559
|
-
endorsement_buttons_cell:
|
560
|
-
endorse: يعجبني
|
561
559
|
endorsements:
|
562
560
|
identities:
|
563
561
|
done: تم
|
@@ -841,7 +839,6 @@ ar:
|
|
841
839
|
reject_invitation: رفض
|
842
840
|
group_members:
|
843
841
|
actions:
|
844
|
-
are_you_sure: هل أنت واثق؟
|
845
842
|
promote_to_admin: جعل المشرف
|
846
843
|
remove_from_group: إزالة المشارك
|
847
844
|
index:
|
@@ -1030,10 +1027,8 @@ ar:
|
|
1030
1027
|
unsubscribe:
|
1031
1028
|
success: أنت غير مشترك بنجاح.
|
1032
1029
|
token_error: انتهت صلاحية الرابط.
|
1033
|
-
unsubscribe: إلغاء الاشتراك
|
1034
1030
|
newsletters_opt_in_mailer:
|
1035
1031
|
notify:
|
1036
|
-
body_1: تزداد أهمية معالجة البيانات الشخصية وحمايتها بالنسبة لنا جميعًا. مع اللائحة العامة الجديدة لحماية البيانات (GDPR) المؤرخة 25 مايو 2018 ، أصبح للأفراد سيطرة أفضل على بياناتهم الشخصية. لهذا السبب نحتاج إلى "موافق" لمواصلة إرسال المعلومات ذات الصلة حول أنشطة %{organization_name}.
|
1037
1032
|
body_2: 'كيف يمكنك أن تعطينا موافقتك؟ فقط انقر على الزر التالي:'
|
1038
1033
|
body_3: مع هذه الموافقة ، ستتمكن من متابعة تلقي معلومات حول خدمات النظام الأساسي. على العكس من ذلك ، إذا لم نتلق تأكيدًا إيجابيًا من جانبك ، فسنوقف إرسال رسائلنا إليك. إذا أكدت رغبتك في أن تظل على اطلاع ، فسيكون لديك دائمًا خيار الإلغاء في أي وقت.
|
1039
1034
|
button: نعم ، أرغب في متابعة تلقي المعلومات ذات الصلة
|
@@ -1157,11 +1152,6 @@ ar:
|
|
1157
1152
|
message: الرسالة
|
1158
1153
|
resend_email_confirmation_instructions: إعادة إرسال تعليمات تأكيد البريد الإلكتروني
|
1159
1154
|
reported_mailer:
|
1160
|
-
hide:
|
1161
|
-
hello: مرحبا %{name}،
|
1162
|
-
manage_moderations: إدارة التعديلات
|
1163
|
-
report_html: <p>بعد <a href="%{url}">محتوى</a> تم إخفاء تلقائيا.</p>
|
1164
|
-
subject: تم إخفاء المورد تلقائيًا
|
1165
1155
|
report:
|
1166
1156
|
authors: المؤلفون
|
1167
1157
|
content: محتوى تم الإبلاغ عنه
|
data/config/locales/bg-BG.yml
CHANGED
@@ -405,7 +405,7 @@ bg:
|
|
405
405
|
newsletter: Получавайте извънреден бюлетин с подходяща информация
|
406
406
|
newsletter_title: Разрешение за контакт с Вас
|
407
407
|
nickname_help: Вашя псевдоним в %{organization}
|
408
|
-
password_help: "Минимум %{
|
408
|
+
password_help: "Минимум %{minimum_characters} символа, не трябва да са разпространени (например, 123456) и трябва да са различни от вашите име и ел. поща."
|
409
409
|
sign_in: Вход
|
410
410
|
sign_up: Регистрация
|
411
411
|
sign_up_as:
|
@@ -1315,7 +1315,7 @@ bg:
|
|
1315
1315
|
change_your_password: Промени паролата си
|
1316
1316
|
confirm_new_password: Потвърди нова парола
|
1317
1317
|
new_password: Нова парола
|
1318
|
-
password_help: "Минимум %{
|
1318
|
+
password_help: "Минимум %{minimum_characters} символа, не трябва да са разпространени (например, 123456) и трябва да са различни от вашите име и ел. поща."
|
1319
1319
|
new:
|
1320
1320
|
forgot_your_password: Забравили сте паролата си?
|
1321
1321
|
send_me_reset_password_instructions: Изпрати ми инструкции за възстановяване на паролата
|
data/config/locales/bg.yml
CHANGED
@@ -640,8 +640,6 @@ bg:
|
|
640
640
|
error: Грешка при качването на изображението.
|
641
641
|
success: Изображението е качено успешно.
|
642
642
|
drag_and_drop_help: Добавете изображения чрез плъзгане и пускане или поставяне (paste).
|
643
|
-
endorsement_buttons_cell:
|
644
|
-
endorse: Харесвам
|
645
643
|
endorsements:
|
646
644
|
identities:
|
647
645
|
done: Готово
|
@@ -928,7 +926,6 @@ bg:
|
|
928
926
|
title: Какви са значките?
|
929
927
|
group_admins:
|
930
928
|
actions:
|
931
|
-
are_you_sure: Сигурни ли сте? Това няма да премахне участника от групата.
|
932
929
|
demote_admin: Премахни администратор
|
933
930
|
demote:
|
934
931
|
error: Възникна проблем при премахването на този участник от списъка с администратори.
|
@@ -958,7 +955,6 @@ bg:
|
|
958
955
|
error: Възникна проблем при приемането на заявката за присъединяване.
|
959
956
|
success: Заявката за присъединяване е приета успешно.
|
960
957
|
actions:
|
961
|
-
are_you_sure: Сигурни ли сте?
|
962
958
|
promote_to_admin: Направи администратор
|
963
959
|
remove_from_group: Премахни участник
|
964
960
|
index:
|
@@ -1188,11 +1184,9 @@ bg:
|
|
1188
1184
|
main_image: Основно изображение
|
1189
1185
|
newsletters:
|
1190
1186
|
unsubscribe:
|
1191
|
-
check_subscription: За да зададете предпочитанията си, отидете в страницата <a href="%{link}" target="_blank">настройки</a>.
|
1192
1187
|
error: Възникна проблем при прекратяването на абонамента.
|
1193
1188
|
success: Отписахте се успешно.
|
1194
1189
|
token_error: Срокът на връзката е изтекъл.
|
1195
|
-
unsubscribe: Отписване
|
1196
1190
|
newsletters_opt_in:
|
1197
1191
|
unauthorized: Съжаляваме, този линк вече не е активен.
|
1198
1192
|
update:
|
@@ -1200,7 +1194,6 @@ bg:
|
|
1200
1194
|
success: Настройките за бюлетина са успешно обновени.
|
1201
1195
|
newsletters_opt_in_mailer:
|
1202
1196
|
notify:
|
1203
|
-
body_1: Обработката на личните данни и тяхната защита стават все по-важни за всички нас. С новия Общ регламент за защита на данните (GDPR) от 25 май 2018 г. лицата имат по-добър контрол върху личните си данни. Поради тази причина се нуждаем от вашето съгласие, за да продължим да изпращаме подходяща информация за дейностите на %{organization_name}.
|
1204
1197
|
body_2: 'Как можете да ни дадете своето съгласие? Просто щракнете върху следния бутон:'
|
1205
1198
|
body_3: С това съгласие ще продължите да получавате информация за дейностите в платформата. Ако не получим потвърждение от Ваша страна, ще спрем да ви изпращаме нашите съобщения. Дори да потвърдите, че желаете да бъдете информирани, винаги ще имате възможност да се откажете по всяко време.
|
1206
1199
|
button: Да, желая да продължа да получавам подбрана информация
|
@@ -1356,11 +1349,6 @@ bg:
|
|
1356
1349
|
confirmation_instructions_sent: Изпратени са инструкции за потвърждение по имейл.
|
1357
1350
|
fill_in_email_to_confirm_it: Моля, попълнете електронната поща на групата си, за да я потвърдите.
|
1358
1351
|
reported_mailer:
|
1359
|
-
hide:
|
1360
|
-
hello: Здравейте %{name},
|
1361
|
-
manage_moderations: Управлявай модераторите
|
1362
|
-
report_html: <p>Следното <a href="%{url}">съдържание</a> е скрито автоматично.</p>
|
1363
|
-
subject: Ресурсът е скрит автоматично
|
1364
1352
|
report:
|
1365
1353
|
authors: Автори
|
1366
1354
|
content: Докладвано съдържание
|
data/config/locales/ca-IT.yml
CHANGED
@@ -173,6 +173,13 @@ ca-IT:
|
|
173
173
|
x_seconds:
|
174
174
|
one: 1 segon
|
175
175
|
other: "%{count} segons"
|
176
|
+
widget:
|
177
|
+
label:
|
178
|
+
date: Seleccionar data per %{label}
|
179
|
+
time: Seleccionar hora per %{label}
|
180
|
+
picker:
|
181
|
+
date_button: Obre el selector de calendari per a %{label}
|
182
|
+
time_button: Obre el selector d'hora per a %{label}
|
176
183
|
decidim:
|
177
184
|
accessibility:
|
178
185
|
external_link: Enllaç extern
|
@@ -1163,7 +1170,12 @@ ca-IT:
|
|
1163
1170
|
title: Què són les ensenyes?
|
1164
1171
|
group_admins:
|
1165
1172
|
actions:
|
1166
|
-
|
1173
|
+
confirm_modal:
|
1174
|
+
ok_add: Afegir una administradora
|
1175
|
+
ok_remove: Eliminar l'administradora
|
1176
|
+
title_add: Confirmar la nova administradora
|
1177
|
+
title_remove: Eliminar l'administradora
|
1178
|
+
confirm_remove_from_admin: Segur que vols eliminar a l'avaluadora d'aquest grup?
|
1167
1179
|
demote_admin: Elimina l'administradora
|
1168
1180
|
demote:
|
1169
1181
|
error: S'ha produït un error en eliminar aquesta usuària de la llista d'administradores.
|
@@ -1193,7 +1205,11 @@ ca-IT:
|
|
1193
1205
|
error: S'ha produït un error en acceptar aquesta sol·licitud d'incorporació al grup.
|
1194
1206
|
success: Sol·licitud d'incorporació rebutjada correctament.
|
1195
1207
|
actions:
|
1196
|
-
|
1208
|
+
confirm_modal:
|
1209
|
+
ok_remove: Eliminar membre
|
1210
|
+
title_remove: Eliminar membre
|
1211
|
+
confirm_promote_to_admin: Segur que vols afegir aquesta usuària com a administradora?
|
1212
|
+
confirm_remove_from_group: Segur que vols eliminar a aquesta usuària d'aquest grup?
|
1197
1213
|
promote_to_admin: Fer administradora
|
1198
1214
|
remove_from_group: Eliminar participant
|
1199
1215
|
index:
|
@@ -1435,11 +1451,12 @@ ca-IT:
|
|
1435
1451
|
main_image: Imatge principal
|
1436
1452
|
newsletters:
|
1437
1453
|
unsubscribe:
|
1438
|
-
|
1454
|
+
check_subscription_html: Si els vols tornar a rebre, pots tornar a activar la teva subscripció en qualsevol moment des de la <a href="%{link}" target="_blank">pàgina de configuració</a>.
|
1439
1455
|
error: S'ha produït un error en cancel·lar la subscripció.
|
1456
|
+
subscription_preferences: Hem actualitzat les teves preferències de subscripció i ja no rebràs butlletins informatius de %{organization_name}.
|
1440
1457
|
success: Has cancel·lat la subscripció correctament.
|
1441
1458
|
token_error: L'enllaç ha caducat.
|
1442
|
-
unsubscribe:
|
1459
|
+
unsubscribe: Cancel·lar la subscripció al butlletí informatiu
|
1443
1460
|
newsletters_opt_in:
|
1444
1461
|
unauthorized: Ho sentim, aquest enllaç ja no està disponible.
|
1445
1462
|
update:
|
@@ -1447,7 +1464,7 @@ ca-IT:
|
|
1447
1464
|
success: La configuració del butlletí de notícies s'ha actualitzat correctament.
|
1448
1465
|
newsletters_opt_in_mailer:
|
1449
1466
|
notify:
|
1450
|
-
body_1: El processament de les dades personals i la seva protecció cada vegada és més important per a totes nosaltres. Amb el
|
1467
|
+
body_1: El processament de les dades personals i la seva protecció cada vegada és més important per a totes nosaltres. Amb el Reglament General de Protecció de Dades (GDPR) del 25 de maig de 2018, les persones tenen un major control sobre les seves dades personals. Per aquest motiu, necessitem la teva autorització per continuar enviant informació rellevant sobre les activitats del %{organization_name}.
|
1451
1468
|
body_2: 'Com ens pots donar el teu consentiment? Només cal que facis clic al botó següent:'
|
1452
1469
|
body_3: Donant consentiment podràs continuar rebent informació sobre els serveis de la plataforma. Si, al contrari, no rebem una confirmació positiva de la teva part, deixarem d'enviar-te els nostres missatges. Si confirmes que vols mantenir-te informada, sempre tindràs l'opció de cancel·lar en qualsevol moment.
|
1453
1470
|
button: Sí, vull continuar rebent informació rellevant
|
@@ -1728,7 +1745,7 @@ ca-IT:
|
|
1728
1745
|
confirmation_instructions_sent: Instruccions de confirmació enviades per correu electrònic.
|
1729
1746
|
fill_in_email_to_confirm_it: Si us plau, omple el correu electrònic del teu grup per confirmar-lo.
|
1730
1747
|
reported_mailer:
|
1731
|
-
|
1748
|
+
hidden_automatically:
|
1732
1749
|
content: Contingut reportat
|
1733
1750
|
details: Detalls
|
1734
1751
|
hello: Hola %{name},
|
@@ -1737,6 +1754,15 @@ ca-IT:
|
|
1737
1754
|
reason: Motiu
|
1738
1755
|
report_html: <p>El següent <a href="%{url}">contingut</a> s'ha ocultat automàticament.</p>
|
1739
1756
|
subject: Un contingut s'ha ocultat automàticament
|
1757
|
+
hidden_manually:
|
1758
|
+
content: Contingut reportat
|
1759
|
+
details: Detalls
|
1760
|
+
hello: Hola %{name},
|
1761
|
+
manage_moderations: Gestiona moderacions
|
1762
|
+
participatory_space: Espai de participació
|
1763
|
+
reason: Motiu
|
1764
|
+
report_html: <p>El següent <a href="%{url}">contingut</a> s'ha ocultat automàticament per %{moderator}.</p>
|
1765
|
+
subject: Un recurs ha estat amagat per %{moderator}
|
1740
1766
|
report:
|
1741
1767
|
authors: Autores
|
1742
1768
|
content: Contingut reportat
|
@@ -1754,6 +1780,8 @@ ca-IT:
|
|
1754
1780
|
create:
|
1755
1781
|
error: Hi ha hagut un problema en crear l'informe d'error. Si us plau, torna-ho a provar.
|
1756
1782
|
success: El contingut s'ha denunciat amb èxit i serà revisat per una administradora.
|
1783
|
+
hide:
|
1784
|
+
success: Aquest recurs s'ha amagat.
|
1757
1785
|
parent_hidden:
|
1758
1786
|
report_details: El recurs principal estava amagat
|
1759
1787
|
resource:
|
@@ -1772,6 +1800,7 @@ ca-IT:
|
|
1772
1800
|
searches:
|
1773
1801
|
filters:
|
1774
1802
|
jump_to: 'Salta a:'
|
1803
|
+
resource: "%{label} entre %{collection}"
|
1775
1804
|
search: Cercar
|
1776
1805
|
state:
|
1777
1806
|
active: Actiu
|
@@ -2246,14 +2275,17 @@ ca-IT:
|
|
2246
2275
|
edit: Edita
|
2247
2276
|
footer:
|
2248
2277
|
cc_by_license: Amb llicència Creative Commons
|
2278
|
+
current_organization_img: "%{organization} (Anar a la pàgina d'inici)"
|
2249
2279
|
data_consent_settings: Configuració de les galetes
|
2250
2280
|
decidim_logo: Logo Decidim
|
2251
2281
|
decidim_title: Decidim
|
2282
|
+
help: Ajuda
|
2252
2283
|
log_in: Entra
|
2253
2284
|
made_with_open_source: Web creada amb <a target="_blank" href="https://github.com/decidim/decidim">programari lliure</a>.
|
2254
2285
|
open_data: Dades obertes
|
2255
2286
|
resources: Recursos
|
2256
2287
|
sign_up: Crea un compte
|
2288
|
+
social_media: Xarxes socials
|
2257
2289
|
terms_of_service: Termes i condicions d'ús
|
2258
2290
|
header:
|
2259
2291
|
close: Tancar
|
@@ -2295,6 +2327,8 @@ ca-IT:
|
|
2295
2327
|
profile: El meu compte
|
2296
2328
|
public_profile: El meu perfil públic
|
2297
2329
|
title: Enllaços del perfil
|
2330
|
+
unread_conversations: Tens converses sense llegir
|
2331
|
+
unread_notifications: Tens notificacions sense llegir
|
2298
2332
|
user_profile:
|
2299
2333
|
account: Compte
|
2300
2334
|
authorizations: Autoritzacions
|