decidim-admin 0.27.3 → 0.27.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/admin/block_user.rb +7 -2
  3. data/app/controllers/concerns/decidim/admin/needs_admin_tos_accepted.rb +78 -0
  4. data/app/controllers/concerns/decidim/moderations/admin/filterable.rb +4 -0
  5. data/app/controllers/decidim/admin/admin_terms_controller.rb +1 -1
  6. data/app/controllers/decidim/admin/application_controller.rb +1 -0
  7. data/app/controllers/decidim/admin/static_page_topics_controller.rb +1 -3
  8. data/app/forms/decidim/admin/organization_form.rb +2 -2
  9. data/app/packs/stylesheets/decidim/admin/_variables.scss +1 -1
  10. data/app/views/decidim/admin/area_types/edit.html.erb +1 -0
  11. data/app/views/decidim/admin/area_types/index.html.erb +1 -0
  12. data/app/views/decidim/admin/area_types/new.html.erb +1 -0
  13. data/app/views/decidim/admin/areas/edit.html.erb +1 -0
  14. data/app/views/decidim/admin/areas/index.html.erb +1 -0
  15. data/app/views/decidim/admin/areas/new.html.erb +1 -0
  16. data/app/views/decidim/admin/attachment_collections/edit.html.erb +1 -0
  17. data/app/views/decidim/admin/attachment_collections/index.html.erb +1 -0
  18. data/app/views/decidim/admin/attachment_collections/new.html.erb +1 -0
  19. data/app/views/decidim/admin/attachments/edit.html.erb +1 -0
  20. data/app/views/decidim/admin/attachments/index.html.erb +1 -0
  21. data/app/views/decidim/admin/attachments/new.html.erb +1 -0
  22. data/app/views/decidim/admin/authorization_workflows/index.html.erb +1 -0
  23. data/app/views/decidim/admin/categories/edit.html.erb +1 -0
  24. data/app/views/decidim/admin/categories/index.html.erb +1 -0
  25. data/app/views/decidim/admin/categories/new.html.erb +1 -0
  26. data/app/views/decidim/admin/components/_actions.html.erb +43 -0
  27. data/app/views/decidim/admin/components/_component.html.erb +3 -41
  28. data/app/views/decidim/admin/components/edit.html.erb +1 -0
  29. data/app/views/decidim/admin/components/index.html.erb +1 -0
  30. data/app/views/decidim/admin/components/new.html.erb +1 -1
  31. data/app/views/decidim/admin/conflicts/index.html.erb +1 -0
  32. data/app/views/decidim/admin/help_sections/show.erb +1 -0
  33. data/app/views/decidim/admin/impersonatable_users/index.html.erb +1 -0
  34. data/app/views/decidim/admin/impersonations/new.html.erb +1 -0
  35. data/app/views/decidim/admin/logs/index.html.erb +1 -0
  36. data/app/views/decidim/admin/moderated_users/index.html.erb +1 -0
  37. data/app/views/decidim/admin/moderations/index.html.erb +1 -0
  38. data/app/views/decidim/admin/newsletter_templates/index.html.erb +1 -0
  39. data/app/views/decidim/admin/newsletter_templates/show.html.erb +1 -0
  40. data/app/views/decidim/admin/newsletters/index.html.erb +1 -0
  41. data/app/views/decidim/admin/newsletters/new.html.erb +1 -0
  42. data/app/views/decidim/admin/newsletters/show.html.erb +1 -0
  43. data/app/views/decidim/admin/officializations/index.html.erb +1 -0
  44. data/app/views/decidim/admin/officializations/new.html.erb +1 -0
  45. data/app/views/decidim/admin/organization/edit.html.erb +1 -0
  46. data/app/views/decidim/admin/organization_appearance/edit.html.erb +1 -0
  47. data/app/views/decidim/admin/organization_external_domain_whitelist/edit.html.erb +1 -0
  48. data/app/views/decidim/admin/scope_types/edit.html.erb +1 -0
  49. data/app/views/decidim/admin/scope_types/index.html.erb +1 -0
  50. data/app/views/decidim/admin/scope_types/new.html.erb +1 -0
  51. data/app/views/decidim/admin/scopes/edit.html.erb +1 -0
  52. data/app/views/decidim/admin/scopes/index.html.erb +1 -0
  53. data/app/views/decidim/admin/scopes/new.html.erb +1 -0
  54. data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +1 -0
  55. data/app/views/decidim/admin/static_page_topics/edit.html.erb +1 -0
  56. data/app/views/decidim/admin/static_page_topics/new.html.erb +1 -0
  57. data/app/views/decidim/admin/static_pages/edit.html.erb +1 -0
  58. data/app/views/decidim/admin/static_pages/index.html.erb +1 -0
  59. data/app/views/decidim/admin/static_pages/new.html.erb +1 -0
  60. data/app/views/decidim/admin/user_groups/index.html.erb +1 -0
  61. data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +1 -0
  62. data/app/views/decidim/admin/users/index.html.erb +1 -0
  63. data/app/views/decidim/admin/users/new.html.erb +1 -0
  64. data/app/views/layouts/decidim/admin/global_moderations.html.erb +1 -0
  65. data/config/environment.rb +3 -0
  66. data/config/locales/ar.yml +8 -13
  67. data/config/locales/bg.yml +0 -1
  68. data/config/locales/ca.yml +12 -9
  69. data/config/locales/cs.yml +9 -6
  70. data/config/locales/de.yml +34 -27
  71. data/config/locales/el.yml +82 -12
  72. data/config/locales/en.yml +6 -3
  73. data/config/locales/es-MX.yml +12 -9
  74. data/config/locales/es-PY.yml +12 -9
  75. data/config/locales/es.yml +12 -9
  76. data/config/locales/eu.yml +317 -286
  77. data/config/locales/fi-plain.yml +8 -5
  78. data/config/locales/fi.yml +9 -6
  79. data/config/locales/fr-CA.yml +12 -9
  80. data/config/locales/fr.yml +15 -12
  81. data/config/locales/ga-IE.yml +0 -1
  82. data/config/locales/gl.yml +2 -13
  83. data/config/locales/hu.yml +2 -12
  84. data/config/locales/id-ID.yml +3 -8
  85. data/config/locales/is-IS.yml +1 -3
  86. data/config/locales/it.yml +0 -11
  87. data/config/locales/ja.yml +13 -10
  88. data/config/locales/kaa.yml +216 -0
  89. data/config/locales/lb.yml +2 -13
  90. data/config/locales/lt.yml +31 -13
  91. data/config/locales/lv.yml +0 -10
  92. data/config/locales/nl.yml +2 -13
  93. data/config/locales/no.yml +0 -11
  94. data/config/locales/pl.yml +31 -6
  95. data/config/locales/pt-BR.yml +110 -11
  96. data/config/locales/pt.yml +3 -14
  97. data/config/locales/ro-RO.yml +2 -13
  98. data/config/locales/ru.yml +3 -9
  99. data/config/locales/sk.yml +0 -11
  100. data/config/locales/sl.yml +0 -1
  101. data/config/locales/sq-AL.yml +66 -0
  102. data/config/locales/sr-CS.yml +10 -6
  103. data/config/locales/sv.yml +1 -11
  104. data/config/locales/th-TH.yml +1 -0
  105. data/config/locales/tr-TR.yml +8 -14
  106. data/config/locales/uk.yml +1 -9
  107. data/config/locales/zh-CN.yml +0 -11
  108. data/config/locales/zh-TW.yml +0 -11
  109. data/config/routes.rb +2 -0
  110. data/lib/decidim/admin/form_builder.rb +1 -2
  111. data/lib/decidim/admin/test/admin_participatory_space_access_examples.rb +49 -0
  112. data/lib/decidim/admin/test/needs_admin_tos_accepted_examples.rb +9 -0
  113. data/lib/decidim/admin/test.rb +1 -0
  114. data/lib/decidim/admin/version.rb +1 -1
  115. metadata +25 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0ec5548d840e8953decfd9aeeae051f255caa5c4b01f502ec20df4217ec09ec6
4
- data.tar.gz: 02ddf027287cbf9e1a4ad10f656770a06727109cee2fca202b27f6ec069019ae
3
+ metadata.gz: ff93ac8455dc2e0c83ea885cffd0167c733c99ef4aa4ecf87c804865274a2fb1
4
+ data.tar.gz: effea866bfcf0e7eeb60917547ae95fb4f880f4e7c6afd877b18a66f28c5a9d8
5
5
  SHA512:
6
- metadata.gz: c53d356a383df26513964eb9f2fa47a86165114ed97e81b157ac48cff7d7b1b64626ac030fcc400ee1fd0a40445e0f8edb1b0e91626c7efec2d9f062d2162d22
7
- data.tar.gz: 0b67f548fed377a1ba35f096988f6ee6f09f94dec3aac33a870cc87ed660cc871297074b5303b59ff5ea1d652745c898d58a35cd4126c3e07028f458b66f70bd
6
+ metadata.gz: e907b4a9858aaa67f5815458c995f85546643d29c79ea9b92ee17bac1d5f621da646c7c23a887cba48114907dee74f5712abe80f207b7ec96e50a6c9f09d7334
7
+ data.tar.gz: 8aab3aa06c560cc2f7b958f188a2f89e7809f66e9e648517b3c54b6df70c84aae10e52305d6e22c9e8f7966b38512a0bedfc7520c4093126cb0e049b4f455597
@@ -20,8 +20,9 @@ module Decidim
20
20
  return broadcast(:invalid) unless form.valid?
21
21
 
22
22
  transaction do
23
- block!
23
+ find_or_create_moderation!
24
24
  register_justification!
25
+ block!
25
26
  notify_user!
26
27
  end
27
28
 
@@ -32,6 +33,10 @@ module Decidim
32
33
 
33
34
  attr_reader :form
34
35
 
36
+ def find_or_create_moderation!
37
+ Decidim::UserModeration.create_or_find_by!(user: form.user)
38
+ end
39
+
35
40
  def register_justification!
36
41
  @current_blocking = UserBlock.create!(
37
42
  justification: form.justification,
@@ -65,7 +70,7 @@ module Decidim
65
70
  ) do
66
71
  form.user.blocked = true
67
72
  form.user.blocked_at = Time.current
68
- form.user.blocking = @current_blocking
73
+ form.user.block_id = @current_blocking.id
69
74
  form.user.extended_data["user_name"] = form.user.name
70
75
  form.user.name = "Blocked user"
71
76
  form.user.save!
@@ -0,0 +1,78 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ # Shared behaviour for signed_in admins that require the latest TOS accepted
6
+ module NeedsAdminTosAccepted
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ before_action :tos_accepted_by_admin
11
+ end
12
+
13
+ private
14
+
15
+ def tos_accepted_by_admin
16
+ return unless request.format.html?
17
+ return unless current_user
18
+ return unless user_has_any_role?
19
+ return if current_user.admin_terms_accepted?
20
+ return if permitted_paths?
21
+
22
+ store_location_for(
23
+ current_user,
24
+ request.path
25
+ )
26
+ redirect_to admin_tos_path
27
+ end
28
+
29
+ def permitted_paths?
30
+ # ensure that path with or without query string pass
31
+ permitted_paths.find { |el| el.split("?").first == request.path }
32
+ end
33
+
34
+ def permitted_paths
35
+ [admin_tos_path, decidim_admin.admin_terms_accept_path]
36
+ end
37
+
38
+ def admin_tos_path
39
+ decidim_admin.admin_terms_show_path
40
+ end
41
+
42
+ def user_has_any_role?
43
+ return true if current_user.admin
44
+ return true if current_user.roles.any?
45
+ return true if participatory_process_user_role?
46
+ return true if assembly_user_role?
47
+ return true if conference_user_role?
48
+ return true if voting_monitoring_commitee_member?
49
+
50
+ false
51
+ end
52
+
53
+ def participatory_process_user_role?
54
+ return false unless Decidim.module_installed?(:participatory_processes)
55
+
56
+ true if Decidim::ParticipatoryProcessUserRole.exists?(user: current_user)
57
+ end
58
+
59
+ def assembly_user_role?
60
+ return false unless Decidim.module_installed?(:assemblies)
61
+
62
+ true if Decidim::AssemblyUserRole.exists?(user: current_user)
63
+ end
64
+
65
+ def conference_user_role?
66
+ return false unless Decidim.module_installed?(:conferences)
67
+
68
+ true if Decidim::ConferenceUserRole.exists?(user: current_user)
69
+ end
70
+
71
+ def voting_monitoring_commitee_member?
72
+ return false unless Decidim.module_installed?(:elections)
73
+
74
+ true if Decidim::Votings::MonitoringCommitteeMember.exists?(user: current_user)
75
+ end
76
+ end
77
+ end
78
+ end
@@ -47,6 +47,10 @@ module Decidim
47
47
  def reportable_types
48
48
  collection.pluck(:decidim_reportable_type).uniq.sort
49
49
  end
50
+
51
+ def extra_allowed_params
52
+ [:hidden]
53
+ end
50
54
  end
51
55
  end
52
56
  end
@@ -9,7 +9,7 @@ module Decidim
9
9
  current_user.admin_terms_accepted_at = Time.current
10
10
  if current_user.save!
11
11
  flash[:notice] = t("accept.success", scope: "decidim.admin.admin_terms_of_use")
12
- redirect_to decidim_admin.root_path
12
+ redirect_to stored_location_for(current_user) || decidim_admin.root_path
13
13
  else
14
14
  flash[:alert] = t("accept.error", scope: "decidim.admin.admin_terms_of_use")
15
15
  redirect_to decidim_admin.admin_terms_show_path
@@ -8,6 +8,7 @@ module Decidim
8
8
  include NeedsPermission
9
9
  include NeedsPasswordChange
10
10
  include NeedsSnippets
11
+ include NeedsAdminTosAccepted
11
12
  include FormFactory
12
13
  include LocaleSwitcher
13
14
  include UseOrganizationTimeZone
@@ -64,9 +64,7 @@ module Decidim
64
64
  private
65
65
 
66
66
  def topic
67
- @topic ||= StaticPageTopic.where(
68
- organization: current_organization
69
- ).find(params[:id])
67
+ @topic ||= current_organization.static_page_topics.find(params[:id])
70
68
  end
71
69
  end
72
70
  end
@@ -21,7 +21,7 @@ module Decidim
21
21
  attribute :default_locale, String
22
22
  attribute :badges_enabled, Boolean
23
23
  attribute :user_groups_enabled, Boolean
24
- attribute :comments_max_length, Integer
24
+ attribute :comments_max_length, Integer, default: 0
25
25
  attribute :rich_text_editor_in_public_views, Boolean
26
26
  attribute :enable_machine_translations, Boolean
27
27
  attribute :machine_translation_display_priority, String
@@ -43,7 +43,7 @@ module Decidim
43
43
  validates :default_locale, :reference_prefix, presence: true
44
44
  validates :default_locale, inclusion: { in: :available_locales }
45
45
  validates :admin_terms_of_use_body, translatable_presence: true
46
- validates :comments_max_length, numericality: { greater_than: 0 }, if: ->(form) { form.comments_max_length.present? }
46
+ validates :comments_max_length, presence: true, numericality: { greater_than_or_equal_to: 0 }
47
47
  validates :machine_translation_display_priority,
48
48
  inclusion: { in: Decidim::Organization::AVAILABLE_MACHINE_TRANSLATION_DISPLAY_PRIORITIES },
49
49
  if: :machine_translation_enabled?
@@ -11,7 +11,7 @@ $-zf-bp-value: null;
11
11
 
12
12
  $brand: #9675ce !default;
13
13
 
14
- $twitter: #55acee !default;
14
+ $twitter: #000 !default;
15
15
  $facebook: #3b5998 !default;
16
16
  $google: #4285f4 !default;
17
17
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("decidim.admin.titles.area_types")) %>
1
2
  <div class="card" id="area-types">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("areas", scope: "decidim.admin.titles")) %>
1
2
  <div class="card" id="areas">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, url: areas_path) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("attachment_collections.edit.title", scope: "decidim.admin")) %>
1
2
  <%= decidim_form_for(@form, url: url_for([@attachment_collection.collection_for, @attachment_collection]), html: { class: "form edit_attachment_collection" }) do |f| %>
2
3
  <%= render partial: "decidim/admin/attachment_collections/form", object: f, locals: { title: t("attachment_collections.edit.title", scope: "decidim.admin") } %>
3
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("attachment_collections.index.attachment_collections_title", scope: "decidim.admin")) %>
1
2
  <div class="card" id="attachment_collections">
2
3
  <div class="card-divider">
3
4
  <h2 class='card-title'>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("attachment_collections.new.title", scope: "decidim.admin")) %>
1
2
  <%= decidim_form_for(@form, url: url_for([collection_for, @form]), html: { class: "form new_attachment_collection" }) do |f| %>
2
3
  <%= render partial: "decidim/admin/attachment_collections/form", object: f, locals: { title: t("attachment_collections.new.title", scope: "decidim.admin") } %>
3
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, url: url_for([@attachment.attached_to, @attachment]), html: { class: "form edit_attachment" }) do |f| %>
2
3
  <%= render partial: "decidim/admin/attachments/form", object: f, locals: { title: t(".title") } %>
3
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".attachments_title")) %>
1
2
  <div class='card' id="attachments">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, url: url_for([attached_to, @form]), html: { class: "form new_attachment" }) do |f| %>
2
3
  <%= render partial: "decidim/admin/attachments/form", object: f, locals: { title: t(".title") } %>
3
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("authorization_workflows", scope: "decidim.admin.titles")) %>
1
2
  <div class="card">
2
3
  <%= cell("decidim/verifications/revocations", @authorizations) %>
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, url: category_path(@category.participatory_space, @category), html: { class: "form edit_category" }) do |f| %>
2
3
  <%= render partial: "form", object: f, locals: { title: t(".title") } %>
3
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("categories.index.categories_title", scope: "decidim.admin")) %>
1
2
  <div class="card" id="categories">
2
3
  <div class="card-divider">
3
4
  <h2 class='card-title'>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("categories.new.title", scope: "decidim.admin")) %>
1
2
  <%= decidim_form_for(@form, url: categories_path(current_participatory_space), html: { class: "form new_category" }) do |f| %>
2
3
  <%= render partial: "form", object: f, locals: { title: t("categories.new.title", scope: "decidim.admin") } %>
3
4
 
@@ -0,0 +1,43 @@
1
+ <% if component.manifest.admin_engine %>
2
+ <%= icon_link_to "pencil", manage_component_path(component), t("actions.manage", scope: "decidim.admin"), class: "action-icon--manage" %>
3
+ <% else %>
4
+ <span class="action-space icon"></span>
5
+ <% end %>
6
+
7
+ <% if allowed_to?(:update, :component, component: component) %>
8
+ <% if component.published? %>
9
+ <%= icon_link_to "x", url_for(action: :unpublish, id: component, controller: "components"), t("actions.unpublish", scope: "decidim.admin"), class: "action-icon--unpublish", method: :put %>
10
+ <% else %>
11
+ <%= icon_link_to "check", url_for(action: :publish, id: component, controller: "components"), t("actions.publish", scope: "decidim.admin"), class: "action-icon--publish", method: :put %>
12
+ <% end %>
13
+ <% else %>
14
+ <span class="action-space icon"></span>
15
+ <% end %>
16
+
17
+ <% if allowed_to? :update, :component, component: component %>
18
+ <%= icon_link_to "cog", url_for(action: :edit, id: component, controller: "components"), t("actions.configure", scope: "decidim.admin"), class: "action-icon--configure" %>
19
+ <% else %>
20
+ <span class="action-space icon"></span>
21
+ <% end %>
22
+
23
+ <% if allowed_to? :update, :component, component: component %>
24
+ <% if component.manifest.actions.empty? %>
25
+ <%= icon "key", class: "action-icon action-icon--disabled" %>
26
+ <% else %>
27
+ <%= icon_link_to "key", url_for(action: :edit, component_id: component, controller: "component_permissions"), t("actions.permissions", scope: "decidim.admin"), class: "action-icon--permissions" %>
28
+ <% end %>
29
+ <% else %>
30
+ <span class="action-space icon"></span>
31
+ <% end %>
32
+
33
+ <% if allowed_to? :share, :component, component: component %>
34
+ <%= icon_link_to "share", url_for(action: :share, id: component, controller: "components"), t("actions.share", scope: "decidim.admin"), class: "action-icon--share", target: "_blank" %>
35
+ <% else %>
36
+ <span class="action-space icon"></span>
37
+ <% end %>
38
+
39
+ <% if allowed_to? :destroy, :component, component: component %>
40
+ <%= icon_link_to "circle-x", url_for(action: :destroy, id: component, controller: "components"), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete %>
41
+ <% else %>
42
+ <span class="action-space icon"></span>
43
+ <% end %>
@@ -10,48 +10,10 @@
10
10
  </td>
11
11
  <%= td_resource_scope_for(component.scope) %>
12
12
  <td class="table-list__actions">
13
- <% if component.manifest.admin_engine %>
14
- <%= icon_link_to "pencil", manage_component_path(component), t("actions.manage", scope: "decidim.admin"), class: "action-icon--manage" %>
13
+ <% if lookup_context.find_all("decidim/#{component.manifest_name}/admin/component/_actions").any? %>
14
+ <%= render partial: "decidim/#{component.manifest_name}/admin/component/actions", locals: { component: component } %>
15
15
  <% else %>
16
- <span class="action-space icon"></span>
17
- <% end %>
18
-
19
- <% if allowed_to?(:update, :component, component: component) %>
20
- <% if component.published? %>
21
- <%= icon_link_to "x", url_for(action: :unpublish, id: component, controller: "components"), t("actions.unpublish", scope: "decidim.admin"), class: "action-icon--unpublish", method: :put %>
22
- <% else %>
23
- <%= icon_link_to "check", url_for(action: :publish, id: component, controller: "components"), t("actions.publish", scope: "decidim.admin"), class: "action-icon--publish", method: :put %>
24
- <% end %>
25
- <% else %>
26
- <span class="action-space icon"></span>
27
- <% end %>
28
-
29
- <% if allowed_to? :update, :component, component: component %>
30
- <%= icon_link_to "cog", url_for(action: :edit, id: component, controller: "components"), t("actions.configure", scope: "decidim.admin"), class: "action-icon--configure" %>
31
- <% else %>
32
- <span class="action-space icon"></span>
33
- <% end %>
34
-
35
- <% if allowed_to? :update, :component, component: component %>
36
- <% if component.manifest.actions.empty? %>
37
- <%= icon "key", class: "action-icon action-icon--disabled" %>
38
- <% else %>
39
- <%= icon_link_to "key", url_for(action: :edit, component_id: component, controller: "component_permissions"), t("actions.permissions", scope: "decidim.admin"), class: "action-icon--permissions" %>
40
- <% end %>
41
- <% else %>
42
- <span class="action-space icon"></span>
43
- <% end %>
44
-
45
- <% if allowed_to? :share, :component, component: component %>
46
- <%= icon_link_to "share", url_for(action: :share, id: component, controller: "components"), t("actions.share", scope: "decidim.admin"), class: "action-icon--share", target: "_blank" %>
47
- <% else %>
48
- <span class="action-space icon"></span>
49
- <% end %>
50
-
51
- <% if allowed_to? :destroy, :component, component: component %>
52
- <%= icon_link_to "circle-x", url_for(action: :destroy, id: component, controller: "components"), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete %>
53
- <% else %>
54
- <span class="action-space icon"></span>
16
+ <%= render partial: "actions", locals: { component: component } %>
55
17
  <% end %>
56
18
  </td>
57
19
  </tr>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title", name: t("#{@component.manifest.name}.name", scope: "decidim.components"))) %>
1
2
  <%= decidim_form_for([current_participatory_space, @form], url: component_path(current_participatory_space, @component), method: "put", html: { class: "form edit_component" }) do |form| %>
2
3
  <%= render partial: "form", object: form, locals: { component: @component, title: t(".title", name: t("#{@component.manifest.name}.name", scope: "decidim.components")) } %>
3
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("components.title", scope: "decidim.admin")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,4 +1,4 @@
1
-
1
+ <% add_decidim_page_title(t(".title", name: t("#{manifest.name}.name", scope: "decidim.components"))) %>
2
2
  <%= decidim_form_for([current_participatory_space, @form], url: components_path(type: params[:type]), method: "post", html: { class: "form new_component" }) do |form| %>
3
3
  <%= render partial: "form", object: form, locals: { component: @component, title: t(".title", name: t("#{manifest.name}.name", scope: "decidim.components")) } %>
4
4
 
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("title", scope: "decidim.admin.conflicts")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1 +1,2 @@
1
+ <% add_decidim_page_title(t("help_sections", scope: "decidim.admin.menu")) %>
1
2
  <%= render partial: "form", object: @form %>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("impersonatable_users", scope: "decidim.admin.titles")) %>
1
2
  <% if current_organization.available_authorizations.empty? %>
2
3
  <div class="section">
3
4
  <div class="callout warning">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("impersonate_new_managed_user", scope: "decidim.admin.impersonations.new")) %>
1
2
  <h2 class="process-title-summary">
2
3
  <% if creating_managed_user? %>
3
4
  <%= t(".impersonate_new_managed_user") %>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("admin_log", scope: "decidim.admin.titles")) %>
1
2
  <div class="content">
2
3
  <div class="row">
3
4
  <%= render partial: "decidim/admin/logs/logs_list", locals: { logs: logs } %>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <div class="card with-overflow">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".preview", template_name: t(template_manifest.public_name_key))) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title"><%= t ".preview", template_name: t(template_manifest.public_name_key) %></h2>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form new_newsletter" }, url: newsletter_template_newsletters_path(newsletter_template_id: params[:newsletter_template_id])) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".preview")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title"><%= t ".preview" %></h2>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("decidim.admin.titles.participants")) %>
1
2
  <div class="card with-overflow" id='user-groups'>
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title"><%= t "decidim.admin.titles.participants" %></h2>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title", name: user.name)) %>
1
2
  <h2 class="process-title-summary">
2
3
  <%= t(".title", name: user.name) %>
3
4
  </h2>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form edit_organization" }, url: organization_path) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("edit_organization_appearance", scope: "decidim.admin.titles")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form edit_organization_appearance" }, url: organization_appearance_path, method: :put) do |f| %>
2
3
  <%= render partial: "form", object: f %>
3
4
  <div class="button--double form-general-submit">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("edit_external_domains", scope: "decidim.admin.titles")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form edit_organization_external_domain_whitelist" }, url: organization_external_domain_whitelist_path, method: :patch) do |f| %>
2
3
  <%= render partial: "form", object: f %>
3
4
  <div class="button--double form-general-submit">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("decidim.admin.titles.scope_types")) %>
1
2
  <div class="card" id="scope-types">
2
3
  <div class="card-divider">
3
4
  <% if allowed_to? :creste, :scope_type %>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("decidim.admin.titles.scopes")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, url: current_scopes_path) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(content_block.public_name_key)) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form edit_content_block" }, url: resource_landing_page_content_block_path) do |form| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form edit_static_page_topic" }) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form new_static_page_topic" }) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title t(".title") %>
1
2
  <%= decidim_form_for(@form, html: { class: "form edit_static_page" }) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("pages", scope: "decidim.admin.titles")) %>
1
2
  <% @topics.each do |topic| %>
2
3
  <%= render partial: "topic", locals: { pages: topic.pages, topic: topic } %>
3
4
  <% end %>
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form new_static_page" }) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("decidim.admin.titles.user_groups")) %>
1
2
  <div class="card" id='user-groups'>
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <div class="card" id='user-groups'>
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t("decidim.admin.titles.users")) %>
1
2
  <div class="card">
2
3
  <div class="card-divider">
3
4
  <h2 class="card-title">
@@ -1,3 +1,4 @@
1
+ <% add_decidim_page_title(t(".title")) %>
1
2
  <%= decidim_form_for(@form, html: { class: "form new_user" }) do |f| %>
2
3
  <div class="card">
3
4
  <div class="card-divider">