decidim-core 0.11.2 → 0.12.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/decidim/notifications.js.es6 +8 -6
- data/app/assets/javascripts/decidim/user_registrations.js.es6 +25 -1
- data/app/assets/stylesheets/decidim/application.scss.erb +4 -0
- data/app/assets/stylesheets/decidim/layouts/_home.scss +79 -0
- data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +2 -1
- data/app/assets/stylesheets/decidim/modules/_cards.scss +82 -38
- data/app/assets/stylesheets/decidim/modules/_collapsible-list.scss +16 -0
- data/app/assets/stylesheets/decidim/modules/_definition-data.scss +27 -0
- data/app/assets/stylesheets/decidim/modules/_fingerprint.scss +8 -0
- data/app/assets/stylesheets/decidim/modules/_horizontal-tabs.scss +51 -0
- data/app/assets/stylesheets/decidim/modules/_inline-filters.scss +5 -3
- data/app/assets/stylesheets/decidim/modules/_margins.scss +6 -4
- data/app/assets/stylesheets/decidim/modules/_modules.scss +3 -0
- data/app/assets/stylesheets/decidim/modules/_navbar.scss +113 -7
- data/app/assets/stylesheets/decidim/modules/_signup.scss +22 -5
- data/app/assets/stylesheets/decidim/modules/_toggle.scss +9 -0
- data/app/assets/stylesheets/decidim/modules/_typography.scss +5 -1
- data/app/assets/stylesheets/decidim/utils/_helpers.scss +42 -0
- data/app/assets/stylesheets/decidim/utils/_mixins.scss +6 -0
- data/app/assets/stylesheets/decidim/utils/_settings.scss +3 -2
- data/app/cells/decidim/announcement/show.erb +11 -0
- data/app/cells/decidim/announcement_cell.rb +32 -0
- data/app/cells/decidim/author/comments.erb +6 -0
- data/app/cells/decidim/author/contact.erb +3 -0
- data/app/cells/decidim/author/date.erb +5 -0
- data/app/cells/decidim/author/flag.erb +5 -0
- data/app/cells/decidim/author/profile.erb +9 -0
- data/app/cells/decidim/{profile → author}/profile_inline.erb +1 -1
- data/app/cells/decidim/author/show.erb +18 -0
- data/app/cells/decidim/author/withdraw.erb +6 -0
- data/app/cells/decidim/author_cell.rb +109 -0
- data/app/cells/decidim/card/show.erb +18 -16
- data/app/cells/decidim/card_cell.rb +17 -4
- data/app/cells/decidim/card_m/author.erb +3 -0
- data/app/cells/decidim/card_m/badge.erb +1 -0
- data/app/cells/decidim/card_m/comments_counter.erb +3 -0
- data/app/cells/decidim/card_m/data.erb +0 -0
- data/app/cells/decidim/card_m/footer.erb +0 -0
- data/app/cells/decidim/card_m/header.erb +17 -0
- data/app/cells/decidim/card_m/image.erb +5 -0
- data/app/cells/decidim/card_m/label.erb +3 -0
- data/app/cells/decidim/card_m/show.erb +24 -0
- data/app/cells/decidim/card_m/status.erb +9 -0
- data/app/cells/decidim/card_m/tags.erb +0 -0
- data/app/cells/decidim/card_m_cell.rb +136 -0
- data/app/cells/decidim/collapsible_list/show.erb +20 -0
- data/app/cells/decidim/collapsible_list_cell.rb +66 -0
- data/app/cells/decidim/fingerprint/show.erb +22 -0
- data/app/cells/decidim/fingerprint_cell.rb +17 -0
- data/app/cells/decidim/follow_button/show.erb +34 -0
- data/app/cells/decidim/follow_button_cell.rb +40 -0
- data/app/cells/decidim/followers/show.erb +9 -0
- data/app/cells/decidim/followers_cell.rb +18 -0
- data/app/cells/decidim/following/show.erb +9 -0
- data/app/cells/decidim/following_cell.rb +24 -0
- data/app/cells/decidim/notifications/show.erb +48 -0
- data/app/cells/decidim/notifications_cell.rb +21 -0
- data/app/cells/decidim/progress_bar/show.erb +17 -0
- data/app/cells/decidim/progress_bar_cell.rb +68 -0
- data/app/cells/decidim/tags/category.erb +1 -0
- data/app/cells/decidim/tags/scope.erb +1 -0
- data/app/cells/decidim/tags/show.erb +5 -0
- data/app/cells/decidim/tags_cell.rb +62 -0
- data/app/cells/decidim/tos_page/announcement.erb +2 -0
- data/app/cells/decidim/tos_page/refuse_btn_modal.erb +23 -0
- data/app/cells/decidim/tos_page/sticky_form.erb +29 -0
- data/app/cells/decidim/tos_page_cell.rb +39 -0
- data/app/cells/decidim/user_profile/footer.erb +5 -0
- data/app/cells/decidim/user_profile/header.erb +20 -0
- data/app/cells/decidim/user_profile_cell.rb +26 -0
- data/app/commands/decidim/create_omniauth_registration.rb +1 -1
- data/app/commands/decidim/create_registration.rb +2 -1
- data/app/commands/decidim/search.rb +45 -0
- data/app/controllers/concerns/decidim/devise_controllers.rb +15 -12
- data/app/controllers/concerns/decidim/http_caching_disabler.rb +21 -0
- data/app/controllers/concerns/decidim/impersonate_users.rb +1 -6
- data/app/controllers/concerns/decidim/locale_switcher.rb +1 -1
- data/app/controllers/concerns/decidim/needs_permission.rb +70 -0
- data/app/controllers/concerns/decidim/needs_tos_accepted.rb +42 -0
- data/app/controllers/concerns/decidim/participatory_space_context.rb +1 -7
- data/app/controllers/concerns/decidim/user_profile.rb +3 -1
- data/app/controllers/decidim/account_controller.rb +4 -4
- data/app/controllers/decidim/application_controller.rb +17 -8
- data/app/controllers/decidim/components/base_controller.rb +14 -9
- data/app/controllers/decidim/cookie_policy_controller.rb +0 -2
- data/app/controllers/decidim/devise/confirmations_controller.rb +13 -0
- data/app/controllers/decidim/devise/invitations_controller.rb +3 -1
- data/app/controllers/decidim/devise/omniauth_registrations_controller.rb +9 -3
- data/app/controllers/decidim/devise/passwords_controller.rb +1 -1
- data/app/controllers/decidim/devise/registrations_controller.rb +1 -7
- data/app/controllers/decidim/doorkeeper/authorizations_controller.rb +0 -2
- data/app/controllers/decidim/doorkeeper/credentials_controller.rb +0 -1
- data/app/controllers/decidim/errors_controller.rb +0 -2
- data/app/controllers/decidim/follows_controller.rb +4 -2
- data/app/controllers/decidim/locales_controller.rb +1 -1
- data/app/controllers/decidim/messaging/conversations_controller.rb +5 -5
- data/app/controllers/decidim/newsletters_controller.rb +0 -2
- data/app/controllers/decidim/notifications_controller.rb +3 -19
- data/app/controllers/decidim/notifications_settings_controller.rb +2 -2
- data/app/controllers/decidim/pages_controller.rb +12 -10
- data/app/controllers/decidim/profiles_controller.rb +10 -4
- data/app/controllers/decidim/reports_controller.rb +14 -1
- data/app/controllers/decidim/scopes_controller.rb +3 -3
- data/app/controllers/decidim/searches_controller.rb +39 -0
- data/app/controllers/decidim/static_map_controller.rb +0 -2
- data/app/controllers/decidim/tos_controller.rb +20 -0
- data/app/controllers/decidim/widgets_controller.rb +0 -1
- data/app/forms/decidim/follow_form.rb +1 -0
- data/app/forms/decidim/registration_form.rb +2 -1
- data/app/helpers/decidim/card_helper.rb +2 -0
- data/app/helpers/decidim/cells_paginate_helper.rb +16 -0
- data/app/helpers/decidim/cta_button_helper.rb +1 -1
- data/app/helpers/decidim/decidim_form_helper.rb +4 -0
- data/app/helpers/decidim/icon_helper.rb +2 -0
- data/app/helpers/decidim/resource_helper.rb +1 -2
- data/app/helpers/decidim/scopes_helper.rb +17 -10
- data/app/helpers/decidim/searches_helper.rb +16 -0
- data/app/helpers/decidim/tooltip_helper.rb +12 -0
- data/app/models/decidim/organization.rb +10 -0
- data/app/models/decidim/permission_action.rb +40 -0
- data/app/models/decidim/searchable_resource.rb +37 -0
- data/app/models/decidim/static_page.rb +4 -0
- data/app/models/decidim/user.rb +39 -3
- data/app/permissions/decidim/default_permissions.rb +61 -0
- data/app/permissions/decidim/permissions.rb +106 -0
- data/app/permissions/decidim/user_manager_permissions.rb +24 -0
- data/app/presenters/decidim/admin_log/organization_presenter.rb +2 -1
- data/app/presenters/decidim/home_stats_presenter.rb +2 -8
- data/app/presenters/decidim/user_presenter.rb +8 -0
- data/app/services/decidim/traceability.rb +6 -9
- data/app/types/decidim/core/user_type.rb +1 -1
- data/app/views/decidim/devise/invitations/edit.html.erb +56 -10
- data/app/views/decidim/devise/registrations/new.html.erb +36 -14
- data/app/views/decidim/devise/shared/_newsletter_modal.html.erb +25 -0
- data/app/views/decidim/follows/update_button.js.erb +2 -2
- data/app/views/decidim/messaging/conversations/_message.html.erb +1 -1
- data/app/views/{pages → decidim/pages}/decidim_page.html.erb +5 -0
- data/app/views/decidim/pages/home.html.erb +17 -0
- data/app/views/{pages → decidim/pages}/home/_extended.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_footer_sub_hero.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_hero.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_highlighted_content_banner.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_highlighted_processes.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_statistics.html.erb +0 -0
- data/app/views/{pages → decidim/pages}/home/_sub_hero.html.erb +0 -0
- data/app/views/decidim/profiles/_followers.html.erb +5 -0
- data/app/views/decidim/profiles/_following.html.erb +5 -0
- data/app/views/decidim/profiles/_notifications.html.erb +0 -0
- data/app/views/decidim/profiles/_user.html.erb +59 -0
- data/app/views/decidim/profiles/_user_follow.erb +32 -0
- data/app/views/decidim/profiles/show.html.erb +32 -59
- data/app/views/decidim/searches/_count.html.erb +1 -0
- data/app/views/decidim/searches/_filters.html.erb +20 -0
- data/app/views/decidim/searches/_filters_small_view.html.erb +18 -0
- data/app/views/decidim/searches/_results.html.erb +5 -0
- data/app/views/decidim/searches/index.html.erb +20 -0
- data/app/views/decidim/searches/index.js.erb +5 -0
- data/app/views/decidim/shared/_address_details.html.erb +7 -9
- data/app/views/decidim/shared/_announcement.html.erb +1 -6
- data/app/views/decidim/shared/_author_reference.html.erb +1 -1
- data/app/views/decidim/shared/_follow_button.html.erb +1 -34
- data/app/views/decidim/shared/_static_map.html.erb +3 -1
- data/app/views/decidim/shared/_tags.html.erb +1 -11
- data/app/views/kaminari/decidim/_paginator.html.erb +16 -15
- data/app/views/layouts/decidim/_head.html.erb +1 -0
- data/app/views/layouts/decidim/_topbar_search.html.erb +8 -0
- data/app/views/layouts/decidim/_user_menu.html.erb +2 -2
- data/app/views/layouts/decidim/_wrapper.html.erb +3 -2
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/rack_attack.rb +28 -0
- data/config/locales/ca.yml +136 -55
- data/config/locales/en.yml +135 -54
- data/config/locales/es.yml +136 -55
- data/config/locales/eu.yml +136 -54
- data/config/locales/fi.yml +135 -54
- data/config/locales/fr.yml +136 -54
- data/config/locales/gl.yml +136 -54
- data/config/locales/it.yml +136 -54
- data/config/locales/nl.yml +136 -54
- data/config/locales/pl.yml +144 -54
- data/config/locales/pt-BR.yml +136 -54
- data/config/locales/pt.yml +136 -54
- data/config/locales/ru.yml +150 -60
- data/config/locales/sv.yml +136 -54
- data/config/locales/uk.yml +146 -57
- data/config/routes.rb +11 -1
- data/db/migrate/20180209122819_create_decidim_searchable_resource.rb +21 -0
- data/db/migrate/20180508111640_add_tos_version_to_organization.rb +19 -0
- data/db/migrate/20180508111710_add_accepted_tos_version_field_to_users.rb +25 -0
- data/db/seeds.rb +33 -26
- data/lib/decidim/component_manifest.rb +35 -27
- data/lib/decidim/content_processor.rb +21 -3
- data/lib/decidim/core.rb +27 -16
- data/lib/decidim/core/engine.rb +8 -19
- data/lib/decidim/core/test.rb +2 -0
- data/lib/decidim/core/test/factories.rb +34 -4
- data/lib/decidim/core/test/shared_examples/fingerprint_examples.rb +15 -0
- data/lib/decidim/core/test/shared_examples/searchable_results_examples.rb +27 -0
- data/lib/decidim/core/version.rb +1 -1
- data/lib/decidim/events/base_event.rb +5 -1
- data/lib/decidim/fingerprint_calculator.rb +42 -0
- data/lib/decidim/fingerprintable.rb +63 -0
- data/lib/decidim/form_builder.rb +1 -0
- data/lib/decidim/manifest_registry.rb +4 -10
- data/lib/decidim/participable.rb +4 -0
- data/lib/decidim/participatory_space_manifest.rb +36 -0
- data/lib/decidim/participatory_space_resourceable.rb +11 -0
- data/lib/decidim/resource_manifest.rb +10 -11
- data/lib/decidim/resourceable.rb +3 -2
- data/lib/decidim/search_resource_fields_mapper.rb +93 -0
- data/lib/decidim/searchable.rb +85 -0
- data/lib/decidim/settings_manifest.rb +3 -2
- data/lib/decidim/traceable.rb +2 -0
- data/lib/decidim/view_model.rb +9 -0
- data/lib/tasks/decidim_tasks.rake +79 -1
- metadata +149 -76
- data/app/assets/stylesheets/decidim/extras/_register_form.scss +0 -9
- data/app/cells/decidim/author_box/show.erb +0 -10
- data/app/cells/decidim/author_box_cell.rb +0 -21
- data/app/cells/decidim/profile/show.erb +0 -13
- data/app/cells/decidim/profile_cell.rb +0 -17
- data/app/controllers/concerns/decidim/needs_authorization.rb +0 -46
- data/app/models/decidim/abilities/admin_ability.rb +0 -29
- data/app/models/decidim/abilities/base_ability.rb +0 -56
- data/app/models/decidim/abilities/everyone_ability.rb +0 -25
- data/app/models/decidim/abilities/participatory_process_admin_ability.rb +0 -28
- data/app/models/decidim/abilities/participatory_process_collaborator_ability.rb +0 -28
- data/app/models/decidim/abilities/participatory_process_moderator_ability.rb +0 -15
- data/app/models/decidim/abilities/user_manager_ability.rb +0 -35
- data/app/views/decidim/notifications/_notification.html.erb +0 -20
- data/app/views/decidim/notifications/index.html.erb +0 -36
- data/app/views/decidim/shared/_author.html.erb +0 -21
- data/app/views/pages/home.html.erb +0 -17
- data/db/migrate/20180613080638_rename_missing_features_to_components.rb +0 -15
- data/lib/decidim/abilities.rb +0 -7
- data/lib/decidim/abilities/participatory_process_role_ability.rb +0 -60
- data/lib/decidim/page_finder.rb +0 -49
@@ -0,0 +1,20 @@
|
|
1
|
+
<main class="wrapper">
|
2
|
+
<div class="row columns">
|
3
|
+
<h2 id="results-count" class="section-heading">
|
4
|
+
<%= render partial: "count" %>
|
5
|
+
</h2>
|
6
|
+
</div>
|
7
|
+
<div class="row">
|
8
|
+
<div class="columns mediumlarge-4 large-3">
|
9
|
+
<%= render partial: "filters_small_view" %>
|
10
|
+
<div class="card card--secondary show-for-mediumlarge">
|
11
|
+
<%= render partial: "filters" %>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
<div id="results" class="columns mediumlarge-8 large-9">
|
15
|
+
<%= render partial: "results" %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</main>
|
19
|
+
<%= javascript_include_tag("decidim/filters") %>
|
20
|
+
<%= javascript_include_tag "decidim/orders" %>
|
@@ -1,9 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<% end %>
|
9
|
-
</div>
|
1
|
+
<% if geolocalizable.respond_to? :location %>
|
2
|
+
<strong><%= translated_attribute geolocalizable.location %></strong><br />
|
3
|
+
<% end %>
|
4
|
+
<span><%= geolocalizable.address %></span><br />
|
5
|
+
<% if geolocalizable.respond_to? :location_hints %>
|
6
|
+
<span><%= translated_attribute geolocalizable.location_hints %></span>
|
7
|
+
<% end %>
|
@@ -1,6 +1 @@
|
|
1
|
-
|
2
|
-
<% callout_class ||= "secondary" %>
|
3
|
-
<%= content_tag :div, class: "callout announcement mb-sm #{callout_class}" do %>
|
4
|
-
<%= decidim_sanitize translated_attribute announcement %>
|
5
|
-
<% end %>
|
6
|
-
</div>
|
1
|
+
<%= cell("decidim/announcement", local_assigns) %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=
|
1
|
+
<%= card_for author, context: {extra_classes: ["author-data--small"]} %>
|
@@ -1,34 +1 @@
|
|
1
|
-
|
2
|
-
<% if current_user %>
|
3
|
-
<% if current_user.follows?(followable) %>
|
4
|
-
<%= button_to decidim.follow_path, class: "button secondary hollow expanded small button--icon follow-button", params: { follow: { followable_gid: followable.to_sgid.to_s }}, data: { disable: true }, method: :delete, remote: true do %>
|
5
|
-
<%= icon "bell" %>
|
6
|
-
<span>
|
7
|
-
<%= t("follows.destroy.button", scope: "decidim") %>
|
8
|
-
</span>
|
9
|
-
<% end %>
|
10
|
-
<% else %>
|
11
|
-
<%= button_to decidim.follow_path, class: "button secondary hollow expanded small button--icon follow-button", params: { follow: { followable_gid: followable.to_sgid.to_s }}, data: { disable: true }, remote: true do %>
|
12
|
-
<%= icon "bell" %>
|
13
|
-
<span>
|
14
|
-
<%= t("follows.create.button", scope: "decidim") %>
|
15
|
-
</span>
|
16
|
-
<% end %>
|
17
|
-
<% end %>
|
18
|
-
<% else %>
|
19
|
-
<%= button_to(
|
20
|
-
decidim.follow_path,
|
21
|
-
class: "button secondary hollow expanded small button--icon follow-button",
|
22
|
-
params: { follow: { followable_gid: followable.to_sgid.to_s }},
|
23
|
-
data: { tooltip: true, disable_hover: false },
|
24
|
-
:'aria-haspopup' => true,
|
25
|
-
title: t(".sign_in_before_follow"),
|
26
|
-
disabled: true,
|
27
|
-
remote: true) do %>
|
28
|
-
<%= icon "bell" %>
|
29
|
-
<span>
|
30
|
-
<%= t("follows.create.button", scope: "decidim") %>
|
31
|
-
</span>
|
32
|
-
<% end %>
|
33
|
-
<% end %>
|
34
|
-
</div>
|
1
|
+
<%= cell "decidim/follow_button", followable, inline: false, context: { current_user: current_user } %>
|
@@ -5,7 +5,9 @@
|
|
5
5
|
<div class="address__icon">
|
6
6
|
<%= icon icon_name, width: 40, height: 70 %>
|
7
7
|
</div>
|
8
|
-
|
8
|
+
<div class="address__details">
|
9
|
+
<%= render partial: "decidim/shared/address_details", locals: { geolocalizable: geolocalizable } %>
|
10
|
+
</div>
|
9
11
|
</div>
|
10
12
|
<% if Decidim.geocoder.present? %>
|
11
13
|
<div class="address__map">
|
@@ -1,11 +1 @@
|
|
1
|
-
|
2
|
-
<ul class="tags <%= tags_class_extra %>">
|
3
|
-
<% if resource.category.present? %>
|
4
|
-
<li><%= link_to translated_attribute(resource.category.name), resource_locator(resource).index(filter: { category_id: resource.category.id }) %></li>
|
5
|
-
<% end %>
|
6
|
-
|
7
|
-
<% if has_visible_scopes?(resource) %>
|
8
|
-
<li><%= link_to translated_attribute(resource.scope.name), resource_locator(resource).index(filter: { scope_id: [resource.scope.id] }) %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
<% end %>
|
1
|
+
<%= cell "decidim/tags", resource, context: {extra_classes: [tags_class_extra]} %>
|
@@ -1,24 +1,25 @@
|
|
1
1
|
<%# The container tag
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
- available local variables
|
3
|
+
current_page: a page object for the currently displayed page
|
4
|
+
total_pages: total number of pages
|
5
|
+
per_page: number of items to fetch per page
|
6
|
+
remote: data-remote
|
7
|
+
paginator: the paginator that renders the pagination tags inside -%>
|
8
|
+
|
9
|
+
<% if total_pages > 1 %>
|
9
10
|
<ul class="pagination text-center" role="navigation" aria-label="Pagination">
|
10
|
-
<%= first_page_tag unless current_page.first? %>
|
11
|
-
<%= prev_page_tag unless current_page.first? %>
|
12
|
-
<% each_page do |page| -%>
|
11
|
+
<%= paginator.first_page_tag unless current_page.first? %>
|
12
|
+
<%= paginator.prev_page_tag unless current_page.first? %>
|
13
|
+
<% paginator.each_page do |page| -%>
|
13
14
|
<% if page.display_tag? -%>
|
14
|
-
<%= page_tag page %>
|
15
|
+
<%= paginator.page_tag page %>
|
15
16
|
<% elsif !page.was_truncated? -%>
|
16
|
-
<%= gap_tag %>
|
17
|
+
<%= paginator.gap_tag %>
|
17
18
|
<% end -%>
|
18
19
|
<% end -%>
|
19
20
|
<% unless current_page.out_of_range? %>
|
20
|
-
<%= next_page_tag unless current_page.last? %>
|
21
|
-
<%= last_page_tag unless current_page.last? %>
|
21
|
+
<%= paginator.next_page_tag unless current_page.last? %>
|
22
|
+
<%= paginator.last_page_tag unless current_page.last? %>
|
22
23
|
<% end %>
|
23
24
|
</ul>
|
24
|
-
<% end
|
25
|
+
<% end %>
|
@@ -20,6 +20,7 @@
|
|
20
20
|
<%= favicon %>
|
21
21
|
<%= stylesheet_link_tag "application", media: "all" %>
|
22
22
|
<%= javascript_include_tag "application" %>
|
23
|
+
<%= foundation_datepicker_locale_tag %>
|
23
24
|
|
24
25
|
<%= render partial: "layouts/decidim/head_extra" %>
|
25
26
|
<%== current_organization.header_snippets if Decidim.enable_html_header_snippets %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="show-for-medium" data-set="nav-search-holder">
|
2
|
+
<div class="topbar__search js-append">
|
3
|
+
<%= icon "magnifying-glass", aria_label: t("decidim.search.term_input_placeholder"), role: "img" %>
|
4
|
+
<%= form_tag(decidim.search_path, method: :get, id: "form-search_topbar") do %>
|
5
|
+
<%= text_field_tag :term, nil, class: "m-none", placeholder: t("decidim.search.term_input_placeholder") %>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
</div>
|
@@ -2,9 +2,9 @@
|
|
2
2
|
<% unless current_user.managed? %>
|
3
3
|
<li><%= link_to t(".public_profile"), decidim.profile_path(current_user.nickname) %></li>
|
4
4
|
<% end %>
|
5
|
-
<li><%= link_to t(".notifications"), decidim.
|
5
|
+
<li><%= link_to t(".notifications"), decidim.profile_notifications_path(current_user.nickname) %></li>
|
6
6
|
<li><%= link_to t(".conversations"), decidim.conversations_path %></li>
|
7
|
-
<% if
|
7
|
+
<% if allowed_to? :read, :admin_dashboard %>
|
8
8
|
<li><%= link_to t(".admin_dashboard"), decidim_admin.root_path %></li>
|
9
9
|
<% end %>
|
10
10
|
<li><%= link_to t(".sign_out"), decidim.destroy_user_session_path, method: :delete, class: "sign-out-link" %></li>
|
@@ -28,6 +28,7 @@
|
|
28
28
|
<div class="logo-wrapper">
|
29
29
|
<%= render partial: "layouts/decidim/logo", locals: { organization: current_organization } %>
|
30
30
|
</div>
|
31
|
+
<%= render partial: "layouts/decidim/topbar_search" %>
|
31
32
|
<%= render partial: "layouts/decidim/language_chooser" %>
|
32
33
|
<div class="hide-for-medium topbar__menu">
|
33
34
|
<button type="button" data-toggle="offCanvas">
|
@@ -36,7 +37,7 @@
|
|
36
37
|
</div>
|
37
38
|
<% if current_user %>
|
38
39
|
<div class="topbar__dropmenu topbar__user__logged">
|
39
|
-
<%= link_to decidim.
|
40
|
+
<%= link_to decidim.profile_notifications_path(current_user.nickname), class: "topbar__notifications #{current_user.notifications.any? ? "is-active" : ""}" do %>
|
40
41
|
<%= icon "bell" %>
|
41
42
|
<% end %>
|
42
43
|
<%= link_to decidim.conversations_path, class: "topbar__conversations #{current_user.unread_conversations.any? ? "is-active" : ""}" do %>
|
@@ -90,7 +91,7 @@
|
|
90
91
|
<div class="medium-8 large-6 large-offset-3 column main__footer__nav">
|
91
92
|
<% if current_organization.static_pages.any? %>
|
92
93
|
<ul class="footer-nav">
|
93
|
-
<% current_organization.static_pages.each do |page| %>
|
94
|
+
<% current_organization.static_pages.sorted_by_i18n_title.each do |page| %>
|
94
95
|
<li><%= link_to translated_attribute(page.title), decidim.page_path(page) %></li>
|
95
96
|
<% end %>
|
96
97
|
</ul>
|
@@ -217,7 +217,7 @@ Devise.setup do |config|
|
|
217
217
|
# ==> Configuration for :timeoutable
|
218
218
|
# The time you want to timeout the user session without activity. After this
|
219
219
|
# time the user will be asked for credentials again. Default is 30 minutes.
|
220
|
-
|
220
|
+
config.timeout_in = 1.week
|
221
221
|
|
222
222
|
# ==> Configuration for :lockable
|
223
223
|
# Defines which strategy will be used to lock an account.
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
if Rails.env.production?
|
4
|
+
require "rack/attack"
|
5
|
+
|
6
|
+
Rails.application.configure do |config|
|
7
|
+
config.middleware.use Rack::Attack
|
8
|
+
end
|
9
|
+
|
10
|
+
Rack::Attack.throttle(
|
11
|
+
"requests by ip",
|
12
|
+
limit: Decidim.throttling_max_requests,
|
13
|
+
period: Decidim.throttling_period,
|
14
|
+
&:ip
|
15
|
+
)
|
16
|
+
|
17
|
+
# Throttle login attempts for a given email parameter to 6 reqs/minute
|
18
|
+
# Return the email as a discriminator on POST /users/sign_in requests
|
19
|
+
Rack::Attack.throttle("limit logins per email", limit: 5, period: 60.seconds) do |request|
|
20
|
+
request.params["user"]["email"] if request.path == "/users/sign_in" && request.post?
|
21
|
+
end
|
22
|
+
|
23
|
+
# Throttle login attempts for a given email parameter to 6 reqs/minute
|
24
|
+
# Return the email as a discriminator on POST /users/sign_in requests
|
25
|
+
Rack::Attack.throttle("limit password recovery attempts per email", limit: 5, period: 60.seconds) do |request|
|
26
|
+
request.params["user"]["email"] if request.path == "/users/password" && request.post?
|
27
|
+
end
|
28
|
+
end
|
data/config/locales/ca.yml
CHANGED
@@ -17,6 +17,10 @@ ca:
|
|
17
17
|
user_group_document_number: Número de document acreditatiu
|
18
18
|
user_group_name: Nom de l'organització
|
19
19
|
user_group_phone: Telèfon de l'organització
|
20
|
+
models:
|
21
|
+
decidim/attachment_created_event: Adjunt
|
22
|
+
decidim/component_published_event: Component actiu
|
23
|
+
decidim/profile_updated_event: Perfil actualitzat
|
20
24
|
activerecord:
|
21
25
|
attributes:
|
22
26
|
decidim/user:
|
@@ -29,12 +33,23 @@ ca:
|
|
29
33
|
user_group_document_number: Número de document acreditatiu
|
30
34
|
user_group_name: Nom de l'organització
|
31
35
|
user_group_phone: Telèfon de l'organització
|
36
|
+
models:
|
37
|
+
decidim/user:
|
38
|
+
one: Usuari
|
39
|
+
other: Usuaris
|
40
|
+
decidim/user_group:
|
41
|
+
one: Grup d'usuaris
|
42
|
+
other: Grups d'usuaris
|
32
43
|
booleans:
|
33
44
|
'false': 'No'
|
34
45
|
'true': 'Sí'
|
35
46
|
carrierwave:
|
36
47
|
errors:
|
37
48
|
image_too_big: La imatge és massa gran
|
49
|
+
date:
|
50
|
+
formats:
|
51
|
+
decidim_short: "%d/%m/%Y"
|
52
|
+
decidim_with_month_name: "%d %B %Y"
|
38
53
|
decidim:
|
39
54
|
account:
|
40
55
|
delete:
|
@@ -108,7 +123,16 @@ ca:
|
|
108
123
|
related_documents: Documents relacionats
|
109
124
|
photos:
|
110
125
|
related_photos: Fotos relacionades
|
126
|
+
author:
|
127
|
+
comments:
|
128
|
+
one: comentari
|
129
|
+
other: comentaris
|
111
130
|
authorization_handlers:
|
131
|
+
another_dummy_authorization_handler:
|
132
|
+
explanation: Obté la verificació introduint un número de passaport que comenci per "A"
|
133
|
+
fields:
|
134
|
+
passport_number: Número de passaport
|
135
|
+
name: Una altra autorització d'exemple
|
112
136
|
dummy_authorization_handler:
|
113
137
|
explanation: Verifica't introduint un número de document que finalitzi amb "X"
|
114
138
|
fields:
|
@@ -128,6 +152,12 @@ ca:
|
|
128
152
|
name: Autorització foo
|
129
153
|
granted_at: Atorgada el %{timestamp}
|
130
154
|
started_at: Iniciat el %{timestamp}
|
155
|
+
collapsible_list:
|
156
|
+
hidden_elements_count:
|
157
|
+
one: i 1 més
|
158
|
+
other: i %{count} més
|
159
|
+
see_less: "(veure menys)"
|
160
|
+
see_more: "(veure més)"
|
131
161
|
components:
|
132
162
|
dummy:
|
133
163
|
actions:
|
@@ -161,6 +191,7 @@ ca:
|
|
161
191
|
new:
|
162
192
|
already_have_an_account?: Ja tens un compte?
|
163
193
|
newsletter: Vull rebre un butlletí ocasional amb informació rellevant
|
194
|
+
newsletter_title: Permís de contacte
|
164
195
|
nickname_help: El vostre identificador curt i únic a %{organization}
|
165
196
|
sign_in: Entra
|
166
197
|
sign_up: Registra't
|
@@ -171,12 +202,19 @@ ca:
|
|
171
202
|
subtitle: Crea un compte per poder participar en els debats i donar suport a les propostes.
|
172
203
|
terms: els termes i condicions d'ús
|
173
204
|
tos_agreement: En registrar-te acceptes %{link}.
|
205
|
+
tos_title: Termes del servei
|
174
206
|
username_help: Nom públic que apareixerà en les teves publicacions. Amb l'objectiu de garantitzar l'anonimat pot ser qualsevol nom.
|
175
207
|
sessions:
|
176
208
|
new:
|
177
209
|
are_you_new?: Ets nou a la plataforma?
|
178
210
|
register: Crea't un compte
|
179
211
|
shared:
|
212
|
+
newsletter_modal:
|
213
|
+
buttons:
|
214
|
+
check: Marca i continua
|
215
|
+
uncheck: Deixa desmarcada
|
216
|
+
notice: Hola, estàs segur que no vols rebre un butlletí informatiu? Si us plau, avalua tornar a fer clic a la casella de verificació que apareix a continuació. Per a nosaltres és molt important que rebis correus ocasionals per fer anuncis importants, i sempre pots canviar-ho a la pàgina de configuració de les notificacions. Si no marques la casella, és possible que no rebis informació rellevant sobre noves oportunitats de participació dins de la plataforma. Si encara vols evitar rebre butlletins, entenem perfectament la teva decisió. Gràcies per llegir això!
|
217
|
+
title: Notificacions de butlletins
|
180
218
|
omniauth_buttons:
|
181
219
|
or: O
|
182
220
|
doorkeeper:
|
@@ -240,6 +278,18 @@ ca:
|
|
240
278
|
project: Projectes
|
241
279
|
proposal: propostes
|
242
280
|
result: Resultats
|
281
|
+
fingerprint:
|
282
|
+
check: Verifica l'empremta digital
|
283
|
+
explanation: El text següent és una representació reduïda amb una funció hash d'aquest contingut. És útil per assegurar-se que el contingut no ha estat manipulat, ja que una sola modificació provocaria un valor totalment diferent.
|
284
|
+
online_calculator_name: Calculadora MD5 en línia
|
285
|
+
replicate_help: Aquesta empremta digital es calcula mitjançant un algoritme de hash SHA256. Per reproduir-lo tu mateix, pots utilitzar una %{online_calculator_link} i copiar-hi les dades d'origen.
|
286
|
+
source: Origen
|
287
|
+
title: Empremta digital
|
288
|
+
value: Valor
|
289
|
+
followers:
|
290
|
+
no_followers: Encara no hi ha seguidors.
|
291
|
+
following:
|
292
|
+
no_followings: No segueix cap persona ni res.
|
243
293
|
follows:
|
244
294
|
create:
|
245
295
|
button: Seguir
|
@@ -318,6 +368,8 @@ ca:
|
|
318
368
|
success: Has cancel·lat la subscripció amb èxit.
|
319
369
|
token_error: L'enllaç ha caducat.
|
320
370
|
unsubscribe: Anul·la la subscripció
|
371
|
+
notifications:
|
372
|
+
no_notifications: Encara no hi ha notificacions.
|
321
373
|
notifications_settings:
|
322
374
|
show:
|
323
375
|
email_on_notification: Vull rebre un correu electrònic cada vegada que rebi una notificació.
|
@@ -332,17 +384,75 @@ ca:
|
|
332
384
|
rejected: Rebutjades
|
333
385
|
verified: Verificada
|
334
386
|
pages:
|
387
|
+
home:
|
388
|
+
extended:
|
389
|
+
debates: Debats
|
390
|
+
debates_explanation: Debat i discuteix, comparteix les teves opinions i enriqueix els temes rellevants.
|
391
|
+
how_to_participate: Com participo en un procés?
|
392
|
+
meetings: Trobades
|
393
|
+
meetings_explanation: Esbrina on i quan pots participar en trobades públiques.
|
394
|
+
more_info: Més informació
|
395
|
+
proposals: Propostes
|
396
|
+
proposals_explanation: Realitza propostes, recolza les ja existents i promociona els canvis que vols veure.
|
397
|
+
footer_sub_hero:
|
398
|
+
footer_sub_hero_body: Construïm una societat més oberta, transparent i col·laborativa.<br />Uneix-te, participa i decideix.
|
399
|
+
footer_sub_hero_headline: Benvinguda i benvingut a la plataforma participativa %{organization}.
|
400
|
+
register: Registra't
|
401
|
+
hero:
|
402
|
+
participate: Participa
|
403
|
+
welcome: Benvingut a %{organization}!
|
404
|
+
statistics:
|
405
|
+
answers_count: Enquestes realitzades
|
406
|
+
assemblies_count: Assemblees
|
407
|
+
comments_count: Comentaris
|
408
|
+
debates_count: Debats
|
409
|
+
endorsements_count: Adhesions
|
410
|
+
headline: Estat actual de %{organization}
|
411
|
+
meetings_count: Trobades
|
412
|
+
orders_count: Vots
|
413
|
+
pages_count: Pàgines
|
414
|
+
processes_count: Processos
|
415
|
+
projects_count: Projectes
|
416
|
+
proposals_accepted: Propostes acceptades
|
417
|
+
proposals_count: Propostes
|
418
|
+
results_count: Resultats
|
419
|
+
surveys_count: Enquestes
|
420
|
+
users_count: Participants
|
421
|
+
votes_count: Vots
|
422
|
+
sub_hero:
|
423
|
+
register: Registra't
|
335
424
|
index:
|
336
425
|
title: Més informació
|
426
|
+
terms_and_conditions:
|
427
|
+
accept:
|
428
|
+
error: S'ha produït un error en acceptar els Termes i Condicions.
|
429
|
+
success: Genial! Has acceptat els Termes i Condicions.
|
430
|
+
form:
|
431
|
+
agreement: Accepto aquests termes
|
432
|
+
legend: Accepto els termes i condicions
|
433
|
+
refuse:
|
434
|
+
modal_body: Si no acceptes, no podràs utilitzar la plataforma, pots <a href="%{data_portability_path}">descarregar les teves dades</a> i / o <a href="%{delete_path}">esborrar el teu compte de</a>.
|
435
|
+
modal_btn_continue: Acceptar els termes i continuar
|
436
|
+
modal_btn_exit: Ho revisaré més tard
|
437
|
+
modal_button: Rebutjar els termes
|
438
|
+
modal_title: Confirmes que no vols acceptar els Termes i Condicions actualitzats?
|
439
|
+
required_review:
|
440
|
+
alert: Hem actualitzat els nostres Termes de Servei, si us plau, revisa'ls.
|
441
|
+
body: Si us plau dedica un moment a revisar l'actualització dels nostres Termes de Servei. En cas contrari, no podràs utilitzar la plataforma.
|
442
|
+
title: 'Obligatori: revisa l''actualització de les nostres Condicions d''Ús'
|
337
443
|
participatory_space_private_users:
|
338
444
|
not_allowed: No tens permís per visualitzar aquest contingut
|
339
445
|
profile:
|
340
446
|
deleted: Usuari eliminat
|
447
|
+
view: Veure
|
341
448
|
profiles:
|
342
449
|
default_officialization_text: Aquesta persona participant està verificada públicament. S'ha verificat que el seu nom o la seva funció es correspon amb el seu nom i funció reals
|
343
450
|
show:
|
344
|
-
|
345
|
-
|
451
|
+
followers: Seguidors
|
452
|
+
following: Segueix
|
453
|
+
notifications: Notificacions
|
454
|
+
user:
|
455
|
+
edit_profile: Edita el perfil
|
346
456
|
reported_mailer:
|
347
457
|
hide:
|
348
458
|
hello: Hola %{name},
|
@@ -366,6 +476,20 @@ ca:
|
|
366
476
|
title: Seleccioneu %{field}
|
367
477
|
prompt: Seleccioneu un àmbit
|
368
478
|
scopes: Àmbits
|
479
|
+
search:
|
480
|
+
filter:
|
481
|
+
all: Tot
|
482
|
+
component: Component
|
483
|
+
results_found_for_term: '%{count} resultats de la cerca: "%{term}"'
|
484
|
+
term_input_placeholder: Cerca
|
485
|
+
searches:
|
486
|
+
filters:
|
487
|
+
search: Cerca
|
488
|
+
filters_small_view:
|
489
|
+
close_modal: Tanca el modal
|
490
|
+
filter: Filtre
|
491
|
+
filter_by: Filtra per
|
492
|
+
unfold: Desplegar
|
369
493
|
shared:
|
370
494
|
action_authorization_modal:
|
371
495
|
expired:
|
@@ -391,8 +515,6 @@ ca:
|
|
391
515
|
invalid_field: "El valor %{field} %{value} no és vàlid."
|
392
516
|
ok: D'acord
|
393
517
|
title: Acció no autoritzada
|
394
|
-
author:
|
395
|
-
deleted: Usuari eliminat
|
396
518
|
embed_modal:
|
397
519
|
close_window: Tanca la finestra
|
398
520
|
embed: Si us plau, enganxa aquest codi a la teva pàgina
|
@@ -424,17 +546,18 @@ ca:
|
|
424
546
|
devise:
|
425
547
|
invitations:
|
426
548
|
edit:
|
427
|
-
header:
|
549
|
+
header: Acabar de crear el teu compte
|
428
550
|
nickname_help: El teu identificador únic a %{organization}.
|
429
551
|
submit_button: Desa
|
552
|
+
subtitle: Si acceptes la invitació, si us plau, estableix el teu nom d'usuari/a i contrasenya.
|
430
553
|
mailer:
|
431
554
|
invitation_instructions:
|
432
555
|
accept: Acceptar invitació
|
433
556
|
accept_until: Aquesta invitació caducarà el dia %{due_date}.
|
434
557
|
hello: Hola %{email},
|
435
558
|
ignore: |-
|
436
|
-
Si no vols acceptar la invitació, ignora aquest correu.<br />
|
437
|
-
El teu compte no es crearà fins que no accedeixis a l'enllaç
|
559
|
+
Si no vols acceptar la invitació, si us plau, ignora aquest correu electrònic.<br />
|
560
|
+
El teu compte no es crearà fins que no accedeixis a l'enllaç anterior i estableixis el teu nom d'usuari/a i contrasenya.
|
438
561
|
invited_you_as_admin: "%{invited_by} t'ha convidat com a administrador de %{application}. Pots acceptar-ho a través de l'enllaç següent."
|
439
562
|
invited_you_as_private_user: "%{invited_by} t'ha convidat com a usuari privat de %{application}. Podeu acceptar-lo a través de l'enllaç següent."
|
440
563
|
someone_invited_you: Algú t'ha convidat a %{application}. Pots acceptar-ho a través de l'enllaç següent.
|
@@ -457,17 +580,15 @@ ca:
|
|
457
580
|
public: La teva informació pública.
|
458
581
|
errors:
|
459
582
|
messages:
|
460
|
-
content_type_whitelist_error:
|
583
|
+
content_type_whitelist_error: el tipus de fitxer no és vàlid
|
461
584
|
cycle_detected: Un dels pares de l'àmbit d'aplicació no pot ser un dels seus descendents
|
462
585
|
file_size_is_less_than_or_equal_to: la mida del fitxer ha de ser menor que o igual a %{count}
|
463
|
-
|
464
|
-
|
465
|
-
long_words: Conté paraules que són massa llargues
|
466
|
-
must_start_with_caps: Ha de començar amb majúscules
|
586
|
+
long_words: conté paraules que són massa llargues
|
587
|
+
must_start_with_caps: ha de començar amb majúscules
|
467
588
|
nesting_too_deep: no pot estar dins d'una subcategoria
|
468
|
-
too_many_marks:
|
469
|
-
too_much_caps:
|
470
|
-
too_short:
|
589
|
+
too_many_marks: hi ha massa signes de puntuació
|
590
|
+
too_much_caps: hi ha massa majúscules
|
591
|
+
too_short: és massa curt
|
471
592
|
forms:
|
472
593
|
required: Obligatori
|
473
594
|
invisible_captcha:
|
@@ -492,8 +613,6 @@ ca:
|
|
492
613
|
expire_time_html: La vostra sessió caducarà en <b><span class="minutes">%{minutes}</span> minutes</b>.
|
493
614
|
notifications_dashboard:
|
494
615
|
mark_all_as_read: Marca tots com a llegits
|
495
|
-
no_notifications: Encara no hi ha notificacions.
|
496
|
-
title: Notificacions
|
497
616
|
user_menu:
|
498
617
|
admin_dashboard: Tauler d'administració
|
499
618
|
conversations: Converses
|
@@ -512,44 +631,6 @@ ca:
|
|
512
631
|
see_more: Veure més
|
513
632
|
locale:
|
514
633
|
name: Català
|
515
|
-
pages:
|
516
|
-
home:
|
517
|
-
extended:
|
518
|
-
debates: Debats
|
519
|
-
debates_explanation: Debat i discuteix, comparteix les teves opinions i enriqueix els temes rellevants.
|
520
|
-
how_to_participate: Com participo en un procés?
|
521
|
-
meetings: Trobades
|
522
|
-
meetings_explanation: Esbrina on i quan pots participar en trobades públiques.
|
523
|
-
more_info: Més informació
|
524
|
-
proposals: propostes
|
525
|
-
proposals_explanation: Realitza propostes, recolza les ja existents i promociona els canvis que vols veure.
|
526
|
-
footer_sub_hero:
|
527
|
-
footer_sub_hero_body: Construïm una societat més oberta, transparent i col·laborativa.<br />Uneix-te, participa i decideix.
|
528
|
-
footer_sub_hero_headline: Benvinguda i benvingut a la plataforma participativa %{organization}.
|
529
|
-
register: Registra't
|
530
|
-
hero:
|
531
|
-
participate: Participa
|
532
|
-
welcome: Benvingut a %{organization}!
|
533
|
-
statistics:
|
534
|
-
answers_count: Enquestes realitzades
|
535
|
-
assemblies_count: Assemblees
|
536
|
-
comments_count: Comentaris
|
537
|
-
debates_count: Debats
|
538
|
-
endorsements_count: Adhesions
|
539
|
-
headline: Estat actual de %{organization}
|
540
|
-
meetings_count: Trobades
|
541
|
-
orders_count: Vots
|
542
|
-
pages_count: Pàgines
|
543
|
-
processes_count: Processos
|
544
|
-
projects_count: Projectes
|
545
|
-
proposals_accepted: Propostes acceptades
|
546
|
-
proposals_count: propostes
|
547
|
-
results_count: Resultats
|
548
|
-
surveys_count: Enquestes
|
549
|
-
users_count: Participants
|
550
|
-
votes_count: Suports
|
551
|
-
sub_hero:
|
552
|
-
register: Registre
|
553
634
|
social_share_button:
|
554
635
|
delicious: Delicious
|
555
636
|
douban: Douban
|