decidim-admin 0.10.1 → 0.11.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-admin might be problematic. Click here for more details.

Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/assets/config/decidim_admin_manifest.js +1 -0
  4. data/app/assets/javascripts/decidim/admin/application.js.es6 +13 -5
  5. data/app/assets/javascripts/decidim/admin/auto_buttons_by_position.component.js.es6 +42 -0
  6. data/app/assets/javascripts/decidim/admin/auto_label_by_position.component.js.es6 +33 -0
  7. data/app/assets/javascripts/decidim/admin/dynamic_fields.component.js.es6 +163 -0
  8. data/app/assets/javascripts/decidim/admin/field_dependent_inputs.component.js.es6 +39 -0
  9. data/app/assets/javascripts/decidim/admin/managed_users.js.es6 +12 -0
  10. data/app/assets/javascripts/decidim/admin/sort_list.component.js.es6 +1 -1
  11. data/app/assets/javascripts/decidim/admin/subform_toggler.component.js.es6 +35 -0
  12. data/app/assets/javascripts/decidim/admin/tab_focus.js.es6 +4 -4
  13. data/app/assets/stylesheets/decidim/admin/application.scss.erb +1 -1
  14. data/app/assets/stylesheets/decidim/admin/extra/_dropdown_inverted.scss +7 -5
  15. data/app/assets/stylesheets/decidim/admin/modules/_agenda.scss +34 -0
  16. data/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +5 -0
  17. data/app/assets/stylesheets/decidim/admin/modules/_cards.scss +15 -0
  18. data/app/assets/stylesheets/decidim/admin/modules/_forms.scss +4 -0
  19. data/app/assets/stylesheets/decidim/admin/modules/_modules.scss +1 -0
  20. data/app/assets/stylesheets/decidim/admin/modules/_typography.scss +8 -0
  21. data/app/assets/stylesheets/decidim/admin/utils/_flex.scss +2 -2
  22. data/app/assets/stylesheets/decidim/admin/utils/_helpers.scss +28 -0
  23. data/app/assets/stylesheets/decidim/admin/utils/_mixins.scss +44 -0
  24. data/app/commands/decidim/admin/create_area.rb +3 -1
  25. data/app/commands/decidim/admin/{create_feature.rb → create_component.rb} +11 -11
  26. data/app/commands/decidim/admin/create_oauth_application.rb +36 -0
  27. data/app/commands/decidim/admin/create_participatory_space_private_user.rb +85 -0
  28. data/app/commands/decidim/admin/destroy_area.rb +42 -0
  29. data/app/commands/decidim/admin/{destroy_feature.rb → destroy_component.rb} +11 -11
  30. data/app/commands/decidim/admin/destroy_oauth_application.rb +39 -0
  31. data/app/commands/decidim/admin/{impersonate_managed_user.rb → impersonate_user.rb} +19 -13
  32. data/app/commands/decidim/admin/publish_component.rb +51 -0
  33. data/app/commands/decidim/admin/{unpublish_feature.rb → unpublish_component.rb} +12 -12
  34. data/app/commands/decidim/admin/update_area.rb +5 -1
  35. data/app/commands/decidim/admin/update_component.rb +62 -0
  36. data/app/commands/decidim/admin/{update_feature_permissions.rb → update_component_permissions.rb} +10 -10
  37. data/app/commands/decidim/admin/update_oauth_application.rb +39 -0
  38. data/app/controllers/decidim/admin/application_controller.rb +1 -1
  39. data/app/controllers/decidim/admin/areas_controller.rb +6 -4
  40. data/app/controllers/decidim/admin/{feature_permissions_controller.rb → component_permissions_controller.rb} +12 -12
  41. data/app/controllers/decidim/admin/{features → components}/base_controller.rb +9 -9
  42. data/app/controllers/decidim/admin/components_controller.rb +142 -0
  43. data/app/controllers/decidim/admin/concerns/has_private_users.rb +102 -0
  44. data/app/controllers/decidim/admin/dashboard_controller.rb +1 -1
  45. data/app/controllers/decidim/admin/exports_controller.rb +6 -6
  46. data/app/controllers/decidim/admin/impersonatable_users_controller.rb +29 -0
  47. data/app/controllers/decidim/admin/impersonations_controller.rb +122 -0
  48. data/app/controllers/decidim/admin/logs_controller.rb +1 -1
  49. data/app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb +25 -0
  50. data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +3 -5
  51. data/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
  52. data/app/controllers/decidim/admin/oauth_applications_controller.rb +90 -0
  53. data/app/controllers/decidim/admin/officializations_controller.rb +4 -3
  54. data/app/events/decidim/component_published_event.rb +6 -0
  55. data/app/forms/decidim/admin/{feature_form.rb → component_form.rb} +3 -3
  56. data/app/forms/decidim/admin/impersonate_user_form.rb +26 -0
  57. data/app/forms/decidim/admin/oauth_application_form.rb +32 -0
  58. data/app/forms/decidim/admin/organization_appearance_form.rb +6 -1
  59. data/app/forms/decidim/admin/organization_form.rb +1 -1
  60. data/app/forms/decidim/admin/participatory_space_private_user_form.rb +18 -0
  61. data/app/forms/decidim/admin/permissions_form.rb +1 -1
  62. data/app/helpers/decidim/admin/attributes_display_helper.rb +10 -3
  63. data/app/helpers/decidim/admin/bulk_actions_helper.rb +36 -0
  64. data/app/helpers/decidim/admin/exports_helper.rb +10 -10
  65. data/app/helpers/decidim/admin/settings_helper.rb +1 -1
  66. data/app/models/decidim/admin/abilities/admin_ability.rb +12 -9
  67. data/app/models/decidim/admin/abilities/participatory_process_admin_ability.rb +2 -2
  68. data/app/models/decidim/admin/abilities/user_manager_ability.rb +7 -6
  69. data/app/queries/decidim/admin/user_filter.rb +59 -0
  70. data/app/views/decidim/admin/area_types/edit.html.erb +1 -1
  71. data/app/views/decidim/admin/area_types/index.html.erb +2 -2
  72. data/app/views/decidim/admin/area_types/new.html.erb +1 -1
  73. data/app/views/decidim/admin/areas/edit.html.erb +1 -1
  74. data/app/views/decidim/admin/areas/index.html.erb +2 -2
  75. data/app/views/decidim/admin/areas/new.html.erb +1 -1
  76. data/app/views/decidim/admin/attachment_collections/edit.html.erb +1 -1
  77. data/app/views/decidim/admin/attachment_collections/index.html.erb +2 -2
  78. data/app/views/decidim/admin/attachment_collections/new.html.erb +1 -1
  79. data/app/views/decidim/admin/attachment_collections/show.html.erb +2 -3
  80. data/app/views/decidim/admin/attachments/edit.html.erb +1 -1
  81. data/app/views/decidim/admin/attachments/index.html.erb +1 -1
  82. data/app/views/decidim/admin/attachments/new.html.erb +1 -1
  83. data/app/views/decidim/admin/attachments/show.html.erb +2 -3
  84. data/app/views/decidim/admin/bulk_actions/_recategorize.html.erb +1 -1
  85. data/app/views/decidim/admin/categories/edit.html.erb +1 -1
  86. data/app/views/decidim/admin/categories/index.html.erb +2 -2
  87. data/app/views/decidim/admin/categories/new.html.erb +1 -1
  88. data/app/views/decidim/admin/categories/show.html.erb +2 -3
  89. data/app/views/decidim/admin/{feature_permissions → component_permissions}/edit.html.erb +3 -3
  90. data/app/views/decidim/admin/components/_component.html.erb +37 -0
  91. data/app/views/decidim/admin/{features → components}/_form.html.erb +6 -6
  92. data/app/views/decidim/admin/{features → components}/_settings_fields.html.erb +2 -2
  93. data/app/views/decidim/admin/components/edit.html.erb +7 -0
  94. data/app/views/decidim/admin/{features → components}/index.html.erb +6 -6
  95. data/app/views/decidim/admin/components/new.html.erb +8 -0
  96. data/app/views/decidim/admin/devise/mailers/reset_password_instructions.html.erb +1 -1
  97. data/app/views/decidim/admin/exports/_dropdown.html.erb +3 -3
  98. data/app/views/decidim/admin/impersonatable_users/index.html.erb +84 -0
  99. data/app/views/decidim/admin/impersonations/_form.html.erb +40 -0
  100. data/app/views/decidim/admin/impersonations/_handler_form.html.erb +5 -0
  101. data/app/views/decidim/admin/impersonations/new.html.erb +23 -0
  102. data/app/views/decidim/admin/managed_users/{impersonations → impersonation_logs}/index.html.erb +2 -0
  103. data/app/views/decidim/admin/managed_users/promotions/new.html.erb +4 -4
  104. data/app/views/decidim/admin/moderations/index.html.erb +2 -2
  105. data/app/views/decidim/admin/newsletters/_form.html.erb +1 -1
  106. data/app/views/decidim/admin/newsletters/edit.html.erb +1 -1
  107. data/app/views/decidim/admin/newsletters/index.html.erb +1 -1
  108. data/app/views/decidim/admin/newsletters/new.html.erb +1 -1
  109. data/app/views/decidim/admin/newsletters/show.html.erb +1 -1
  110. data/app/views/decidim/admin/oauth_applications/_form.html.erb +19 -0
  111. data/app/views/decidim/admin/oauth_applications/edit.html.erb +13 -0
  112. data/app/views/decidim/admin/oauth_applications/index.html.erb +38 -0
  113. data/app/views/decidim/admin/oauth_applications/new.html.erb +13 -0
  114. data/app/views/decidim/admin/oauth_applications/show.html.erb +27 -0
  115. data/app/views/decidim/admin/officializations/index.html.erb +2 -2
  116. data/app/views/decidim/admin/officializations/new.html.erb +2 -2
  117. data/app/views/decidim/admin/organization/_form.html.erb +1 -1
  118. data/app/views/decidim/admin/organization/edit.html.erb +1 -2
  119. data/app/views/decidim/admin/organization_appearance/edit.html.erb +1 -2
  120. data/app/views/decidim/admin/participatory_space_private_users/_form.html.erb +18 -0
  121. data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +59 -0
  122. data/app/views/decidim/admin/participatory_space_private_users/new.html.erb +7 -0
  123. data/app/views/decidim/admin/scope_types/edit.html.erb +1 -1
  124. data/app/views/decidim/admin/scope_types/index.html.erb +2 -2
  125. data/app/views/decidim/admin/scope_types/new.html.erb +1 -1
  126. data/app/views/decidim/admin/scopes/edit.html.erb +1 -1
  127. data/app/views/decidim/admin/scopes/index.html.erb +3 -3
  128. data/app/views/decidim/admin/scopes/new.html.erb +1 -1
  129. data/app/views/decidim/admin/static_pages/edit.html.erb +1 -1
  130. data/app/views/decidim/admin/static_pages/index.html.erb +3 -3
  131. data/app/views/decidim/admin/static_pages/new.html.erb +1 -1
  132. data/app/views/decidim/admin/static_pages/show.html.erb +2 -3
  133. data/app/views/decidim/admin/user_groups/index.html.erb +3 -3
  134. data/app/views/decidim/admin/users/_form.html.erb +3 -3
  135. data/app/views/decidim/admin/users/index.html.erb +2 -2
  136. data/app/views/decidim/admin/users/new.html.erb +1 -1
  137. data/app/views/layouts/decidim/admin/_application.html.erb +9 -9
  138. data/app/views/layouts/decidim/admin/_header.html.erb +3 -4
  139. data/app/views/layouts/decidim/admin/_template_top.html.erb +1 -1
  140. data/app/views/layouts/decidim/admin/_title_bar.html.erb +1 -1
  141. data/app/views/layouts/decidim/admin/login.html.erb +1 -1
  142. data/app/views/layouts/decidim/admin/pages.html.erb +1 -1
  143. data/app/views/layouts/decidim/admin/users.html.erb +5 -3
  144. data/config/locales/ca.yml +119 -50
  145. data/config/locales/en.yml +119 -50
  146. data/config/locales/es.yml +120 -51
  147. data/config/locales/eu.yml +122 -53
  148. data/config/locales/fi.yml +121 -52
  149. data/config/locales/fr.yml +159 -90
  150. data/config/locales/gl.yml +119 -50
  151. data/config/locales/it.yml +120 -51
  152. data/config/locales/nl.yml +207 -138
  153. data/config/locales/pl.yml +119 -50
  154. data/config/locales/pt-BR.yml +120 -51
  155. data/config/locales/pt.yml +120 -51
  156. data/config/locales/ru.yml +7 -51
  157. data/config/locales/sv.yml +120 -51
  158. data/config/locales/uk.yml +7 -52
  159. data/config/routes.rb +6 -2
  160. data/db/migrate/20180413233318_add_reason_to_decidim_impersonation_logs.rb +7 -0
  161. data/lib/decidim/admin/components.rb +11 -0
  162. data/lib/decidim/admin/engine.rb +12 -3
  163. data/lib/decidim/admin/test/forms/attachment_collection_form_examples.rb +9 -9
  164. data/lib/decidim/admin/test/forms/attachment_form_examples.rb +1 -1
  165. data/lib/decidim/admin/test/forms/category_form_examples.rb +11 -11
  166. data/lib/decidim/admin/test/{manage_feature_permissions_examples.rb → manage_component_permissions_examples.rb} +9 -9
  167. data/lib/decidim/admin/test/manage_moderations_examples.rb +2 -2
  168. data/lib/decidim/admin/test.rb +1 -1
  169. data/lib/decidim/admin/version.rb +1 -1
  170. data/lib/decidim/admin.rb +1 -1
  171. metadata +66 -43
  172. data/app/commands/decidim/admin/create_managed_user.rb +0 -69
  173. data/app/commands/decidim/admin/publish_feature.rb +0 -51
  174. data/app/commands/decidim/admin/update_feature.rb +0 -62
  175. data/app/controllers/decidim/admin/features_controller.rb +0 -142
  176. data/app/controllers/decidim/admin/managed_users/impersonations_controller.rb +0 -78
  177. data/app/controllers/decidim/admin/managed_users_controller.rb +0 -83
  178. data/app/events/decidim/feature_published_event.rb +0 -6
  179. data/app/forms/decidim/admin/impersonate_managed_user_form.rb +0 -20
  180. data/app/forms/decidim/admin/managed_user_form.rb +0 -24
  181. data/app/queries/decidim/admin/users_officialization.rb +0 -56
  182. data/app/views/decidim/admin/features/_feature.html.erb +0 -37
  183. data/app/views/decidim/admin/features/edit.html.erb +0 -7
  184. data/app/views/decidim/admin/features/new.html.erb +0 -8
  185. data/app/views/decidim/admin/managed_users/_form.html.erb +0 -12
  186. data/app/views/decidim/admin/managed_users/impersonations/_form.html.erb +0 -10
  187. data/app/views/decidim/admin/managed_users/impersonations/new.html.erb +0 -15
  188. data/app/views/decidim/admin/managed_users/index.html.erb +0 -44
  189. data/app/views/decidim/admin/managed_users/new.html.erb +0 -47
  190. data/lib/decidim/admin/features.rb +0 -11
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_dependency "decidim/admin/application_controller"
4
-
5
- module Decidim
6
- module Admin
7
- module ManagedUsers
8
- # Controller that allows impersonating managed users at the admin panel.
9
- #
10
- class ImpersonationsController < Admin::ApplicationController
11
- layout "decidim/admin/users"
12
-
13
- skip_authorization_check only: [:index, :close_session]
14
-
15
- def index
16
- @impersonation_logs = Decidim::ImpersonationLog.where(user: user).order(started_at: :desc).page(params[:page]).per(15)
17
- end
18
-
19
- def new
20
- authorize! :impersonate, user
21
-
22
- if handler_name.present?
23
- @form = form(ImpersonateManagedUserForm).from_params(
24
- authorization: {
25
- handler_name: handler_name
26
- }
27
- )
28
- end
29
- end
30
-
31
- def create
32
- authorize! :impersonate, user
33
-
34
- @form = form(ImpersonateManagedUserForm).from_params(params)
35
-
36
- ImpersonateManagedUser.call(@form, user) do
37
- on(:ok) do
38
- redirect_to decidim.root_path
39
- end
40
-
41
- on(:invalid) do
42
- flash.now[:alert] = I18n.t("managed_users.impersonate.error", scope: "decidim.admin")
43
- render :new
44
- end
45
- end
46
- end
47
-
48
- def close_session
49
- CloseSessionManagedUser.call(user, current_user) do
50
- on(:ok) do
51
- flash[:notice] = I18n.t("managed_users.close_session.success", scope: "decidim.admin")
52
- redirect_to managed_users_path
53
- end
54
-
55
- on(:invalid) do
56
- flash.now[:alert] = I18n.t("managed_users.close_session.error", scope: "decidim.admin")
57
- redirect_to decidim.root_path
58
- end
59
- end
60
- end
61
-
62
- private
63
-
64
- def user
65
- @user ||= current_organization.users.managed.find(params[:managed_user_id])
66
- end
67
-
68
- def handler_name
69
- authorization.name
70
- end
71
-
72
- def authorization
73
- @authorization ||= Authorization.where(user: user).first
74
- end
75
- end
76
- end
77
- end
78
- end
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_dependency "decidim/admin/application_controller"
4
-
5
- module Decidim
6
- module Admin
7
- # Controller that allows managing managed users at the admin panel.
8
- #
9
- class ManagedUsersController < Admin::ApplicationController
10
- layout "decidim/admin/users"
11
-
12
- helper_method :available_authorization_handlers,
13
- :more_than_one_authorization_handler?,
14
- :select_authorization_handler_step?
15
-
16
- def index
17
- authorize! :index, :managed_users
18
- @managed_users = collection.page(params[:page]).per(15)
19
- end
20
-
21
- def new
22
- authorize! :new, :managed_users
23
-
24
- if available_authorization_handlers.blank?
25
- flash[:alert] = I18n.t("managed_users.new.no_authorization_handlers", scope: "decidim.admin")
26
- redirect_to action: :index
27
- end
28
-
29
- unless select_authorization_handler_step?
30
- @form = form(ManagedUserForm).from_params(
31
- authorization: {
32
- handler_name: handler_name
33
- }
34
- )
35
- end
36
- end
37
-
38
- def create
39
- authorize! :create, :managed_users
40
-
41
- @form = form(ManagedUserForm).from_params(params)
42
-
43
- CreateManagedUser.call(@form) do
44
- on(:ok) do
45
- flash[:notice] = I18n.t("managed_users.create.success", scope: "decidim.admin")
46
- redirect_to decidim.root_path
47
- end
48
-
49
- on(:invalid) do
50
- flash.now[:alert] = I18n.t("managed_users.create.error", scope: "decidim.admin")
51
- render :new
52
- end
53
- end
54
- end
55
-
56
- private
57
-
58
- def select_authorization_handler_step?
59
- handler_name.blank? && params[:managed_user].blank?
60
- end
61
-
62
- def collection
63
- @collection ||= current_organization.users.managed
64
- end
65
-
66
- def handler_name
67
- return if available_authorization_handlers.blank?
68
- return params[:handler_name] if more_than_one_authorization_handler?
69
- available_authorization_handlers.first.name
70
- end
71
-
72
- def available_authorization_handlers
73
- Decidim::Verifications::Adapter.from_collection(
74
- current_organization.available_authorizations & Decidim.authorization_handlers.map(&:name)
75
- )
76
- end
77
-
78
- def more_than_one_authorization_handler?
79
- available_authorization_handlers.length > 1
80
- end
81
- end
82
- end
83
- end
@@ -1,6 +0,0 @@
1
- # frozen-string_literal: true
2
-
3
- module Decidim
4
- class FeaturePublishedEvent < Decidim::Events::SimpleEvent
5
- end
6
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # A form object used to impersonate managed users from the admin dashboard.
6
- #
7
- # This form will contain a dynamic attribute for the user authorization.
8
- # This authorization will be selected by the admin user if more than one exists.
9
- class ImpersonateManagedUserForm < Form
10
- def initialize(attributes)
11
- extend(Virtus.model)
12
-
13
- # Set the authorization dynamic attribute as a nested form class based on the handler name.
14
- attribute(:authorization, Decidim::AuthorizationHandler.handler_for(attributes.dig(:authorization, :handler_name)))
15
-
16
- super
17
- end
18
- end
19
- end
20
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # A form object used to create managed users from the admin dashboard.
6
- #
7
- # This form will contain a dynamic attribute for the user authorization.
8
- # This authorization will be selected by the admin user if more than one exists.
9
- class ManagedUserForm < Form
10
- attribute :name, String
11
-
12
- validates :name, presence: true
13
-
14
- def initialize(attributes)
15
- extend(Virtus.model)
16
-
17
- # Set the authorization dynamic attribute as a nested form class based on the handler name.
18
- attribute(:authorization, Decidim::AuthorizationHandler.handler_for(attributes.dig(:authorization, :handler_name)))
19
-
20
- super
21
- end
22
- end
23
- end
24
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # A class used to filter User's by their officialization state.
6
- class UsersOfficialization < Rectify::Query
7
- # Syntactic sugar to initialize the class and return the queried objects.
8
- #
9
- # organization - the Decidim::Organization where search will be scoped to
10
- # name_query - query to filter user group names
11
- # state - evaluation state to be used as a filter
12
- def self.for(organization, name_query = nil, state = nil)
13
- new(organization, name_query, state).query
14
- end
15
-
16
- # Initializes the class.
17
- #
18
- # organization - the Decidim::Organization where search will be scoped to
19
- # name_query - query to filter user group names
20
- # state - officialization state to be used as a filter
21
- def initialize(organization, name_query = nil, state = nil)
22
- @organization = organization
23
- @name_query = name_query
24
- @state = state
25
- end
26
-
27
- # List the User groups by the diferents filters.
28
- def query
29
- users = Decidim::User.where(organization: organization)
30
- users = filter_by_search(users)
31
- users = filter_by_state(users)
32
- users
33
- end
34
-
35
- private
36
-
37
- attr_reader :name_query, :state, :organization
38
-
39
- def filter_by_search(users)
40
- return users if name_query.blank?
41
- users.where("LOWER(name) LIKE LOWER(?)", "%#{name_query}%")
42
- end
43
-
44
- def filter_by_state(users)
45
- case state
46
- when "officialized"
47
- users.where.not(officialized_at: nil)
48
- when "not_officialized"
49
- users.where(officialized_at: nil)
50
- else
51
- users
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,37 +0,0 @@
1
- <tr class="feature-<%= feature.id %>">
2
- <td>
3
- <%= link_to main_feature_path(feature), target: "_blank" do %>
4
- <%= translated_attribute feature.name %>
5
- <% end %>
6
- </td>
7
- <td>
8
- <%= t "decidim.features.#{feature.manifest.name}.name" %>
9
- </td>
10
- <td class="table-list__actions">
11
- <% if feature.manifest.admin_engine %>
12
- <%= icon_link_to "pencil", manage_feature_path(feature), t("actions.manage", scope: "decidim.admin"), class: "action-icon--manage" %>
13
- <% end %>
14
-
15
- <% if can?(:update, feature) %>
16
- <% if feature.published? %>
17
- <%= icon_link_to "x", url_for(action: :unpublish, id: feature, controller: "features"), t("actions.unpublish", scope: "decidim.admin"), class: "action-icon--unpublish", method: :put %>
18
- <% else %>
19
- <%= icon_link_to "check", url_for(action: :publish, id: feature, controller: "features"), t("actions.publish", scope: "decidim.admin"), class: "action-icon--publish", method: :put %>
20
- <% end %>
21
- <% end %>
22
-
23
- <% if can? :update, feature %>
24
- <%= icon_link_to "cog", url_for(action: :edit, id: feature, controller: "features"), t("actions.configure", scope: "decidim.admin"), class: "action-icon--configure" %>
25
- <% end %>
26
-
27
- <% if can? :update, feature %>
28
- <% if feature.manifest.actions.empty? %>
29
- <%= icon "key", class: "action-icon action-icon--disabled" %>
30
- <% else %>
31
- <%= icon_link_to "key", url_for(action: :edit, feature_id: feature, controller: "feature_permissions"), t("actions.permissions", scope: "decidim.admin"), class: "action-icon--permissions" %>
32
- <% end %>
33
- <% end %>
34
-
35
- <%= icon_link_to "circle-x", url_for(action: :destroy, id: feature, controller: "features"), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete %>
36
- </td>
37
- </tr>
@@ -1,7 +0,0 @@
1
- <%= decidim_form_for([current_participatory_space, @form], url: feature_path(current_participatory_space, @feature), method: "put", html: { class: "form edit_feature" }) do |form| %>
2
- <%= render partial: 'form', object: form, locals: { feature: @feature, title: t(".title", name: t("#{@feature.manifest.name}.name", scope: "decidim.features"))} %>
3
-
4
- <div class="button--double form-general-submit">
5
- <%= form.submit t(".update") %>
6
- </div>
7
- <% end %>
@@ -1,8 +0,0 @@
1
-
2
- <%= decidim_form_for([current_participatory_space, @form], url: features_path(type: params[:type]), method: "post", html: { class: "form new_feature" }) do |form| %>
3
- <%= render partial: 'form', object: form, locals: { feature: @feature, title: t(".title", name: t("#{manifest.name}.name", scope: "decidim.features"))} %>
4
-
5
- <div class="button--double form-general-submit">
6
- <%= form.submit t(".add") %>
7
- </div>
8
- <% end %>
@@ -1,12 +0,0 @@
1
- <div class="row column">
2
- <%= form.text_field :name, label: t('.name') %>
3
-
4
- <%= form.fields_for :authorization, form.object.authorization, builder: Decidim::AuthorizationFormBuilder do |f| %>
5
- <% if lookup_context.exists?(form.object.authorization.to_partial_path, [], true) %>
6
- <%= render partial: form.object.authorization.to_partial_path, locals: { handler: form.object.authorization, form: f } %>
7
- <% else %>
8
- <%= f.all_fields %>
9
- <% end %>
10
- <%= f.hidden_field :handler_name %>
11
- <% end %>
12
- </div>
@@ -1,10 +0,0 @@
1
- <div class="row column">
2
- <%= form.fields_for :authorization, form.object.authorization, builder: Decidim::AuthorizationFormBuilder do |f| %>
3
- <% if lookup_context.exists?(form.object.authorization.to_partial_path, [], true) %>
4
- <%= render partial: form.object.authorization.to_partial_path, locals: { handler: form.object.authorization, form: f } %>
5
- <% else %>
6
- <%= f.all_fields %>
7
- <% end %>
8
- <%= f.hidden_field :handler_name %>
9
- <% end %>
10
- </div>
@@ -1,15 +0,0 @@
1
- <h2 class="process-title-summary">
2
- <%= t('.new_managed_user_impersonation') %>
3
- </h2>
4
-
5
- <%= decidim_form_for(@form, url: managed_user_impersonations_path, html: { class: "form new_managed_user_impersonation" }) do |f| %>
6
- <div class="card">
7
- <div class="card-section">
8
- <%= render partial: 'form', object: f %>
9
- </div>
10
- </div>
11
-
12
- <div class="button--double form-general-submit">
13
- <%= f.submit t(".impersonate") %>
14
- </div>
15
- <% end %>
@@ -1,44 +0,0 @@
1
- <% if current_organization.available_authorizations.empty? %>
2
- <div class="section">
3
- <div class="callout warning">
4
- <p><%= t('.needs_authoriation_warning') %></p>
5
- </div>
6
- </div>
7
- <% end %>
8
- <div class="card">
9
- <div class="card-divider">
10
- <h2 class="card-title">
11
- <%= t "decidim.admin.titles.managed_users" %>
12
- <%= link_to t("actions.new", scope: "decidim.admin", name: t("models.managed_user.name", scope: "decidim.admin")), ['new', 'managed_user'], class: "button tiny button--title #{'disabled' if current_organization.available_authorizations.empty?}" %>
13
- </h2>
14
- </div>
15
- <div class="card-section">
16
- <div class="table-scroll">
17
- <table class="table-list">
18
- <thead>
19
- <tr>
20
- <th><%= t("models.user.fields.name", scope: "decidim.admin") %></th>
21
- <th></th>
22
- </tr>
23
- </thead>
24
- <tbody>
25
- <% @managed_users.each do |user| %>
26
- <tr>
27
- <td><%= user.name %></td>
28
- <td class="table-list__actions">
29
- <% if can? :impersonate, user %>
30
- <%= icon_link_to "account-login", new_managed_user_impersonation_path(user), t(".impersonate"), class: "action-icon--impersonate" %>
31
- <% end %>
32
- <%= icon_link_to "clock", managed_user_impersonations_path(user), t(".view_logs"), class: "action-icon--view-logs" %>
33
- <% if can? :promote, user %>
34
- <%= icon_link_to "badge", new_managed_user_promotion_path(user), t(".promote"), class: "action-icon--promote" %>
35
- <% end %>
36
- </td
37
- </tr>
38
- <% end %>
39
- </tbody>
40
- </table>
41
- <%= paginate @managed_users, theme: "decidim" %>
42
- </div>
43
- </div>
44
- </div>
@@ -1,47 +0,0 @@
1
- <h2 class="process-title-summary">
2
- <%= t('.new_managed_user') %>
3
- <% if more_than_one_authorization_handler? %>
4
- <span class="text-muted float-right"><%= t('.step', current: params[:handler_name].present? ? 2 : 1, total: 2) %></span>
5
- <% end %>
6
- </h2>
7
-
8
- <% if select_authorization_handler_step? %>
9
- <div class="card card--list">
10
- <div class="card-divider">
11
- <h2 class="card-title"><%= t ".select_authorization_method" %></h2>
12
- </div>
13
- <div class="card-section">
14
- <% available_authorization_handlers.each do |handler| %>
15
- <div class="card--list__item">
16
- <div class="card--list__text">
17
- <a href="#">
18
- <%= icon "lock-locked", class: "card--list__icon" %>
19
- </a>
20
- <div>
21
- <h5 class="card--list__heading">
22
- <%= link_to handler.fullname, new_managed_user_path(handler_name: handler.name) %>
23
- </h5>
24
- </div>
25
- </div>
26
- <div class="card--list__data">
27
- <%= link_to new_managed_user_path(handler_name: handler.name), class: "card--list__data__icon" do %>
28
- <%= icon "chevron-right" %>
29
- <% end %>
30
- </div>
31
- </div>
32
- <% end %>
33
- </div>
34
- </div>
35
- <% else %>
36
- <%= decidim_form_for(@form, html: { class: "form new_managed_user" }) do |f| %>
37
- <div class="card">
38
- <div class="card-section">
39
- <%= render partial: 'form', object: f %>
40
- </div>
41
- </div>
42
-
43
- <div class="button--double form-general-submit">
44
- <%= f.submit t(".create") %>
45
- </div>
46
- <% end %>
47
- <% end %>
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- # This module contains all logic related to Features and how they're handled
6
- # at the admin panel level.
7
- module Features
8
- autoload :BaseController, "decidim/admin/features/base_controller"
9
- end
10
- end
11
- end