decidim-admin 0.7.4 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/README.md +10 -5
- data/app/assets/javascripts/decidim/admin/application.js.es6 +1 -1
- data/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +5 -9
- data/app/assets/stylesheets/decidim/admin/modules/_cards.scss +1 -0
- data/app/assets/stylesheets/decidim/admin/modules/_modules.scss +1 -0
- data/app/assets/stylesheets/decidim/admin/modules/_pics.scss +5 -0
- data/app/assets/stylesheets/decidim/admin/modules/_table-list.scss +7 -0
- data/app/commands/decidim/admin/create_managed_user.rb +1 -1
- data/app/controllers/decidim/admin/authorization_workflows_controller.rb +15 -0
- data/app/controllers/decidim/admin/feature_permissions_controller.rb +3 -1
- data/app/forms/decidim/admin/impersonate_managed_user_form.rb +1 -1
- data/app/forms/decidim/admin/managed_user_form.rb +1 -1
- data/app/forms/decidim/admin/organization_appearance_form.rb +1 -1
- data/app/helpers/decidim/admin/icon_link_helper.rb +6 -4
- data/app/models/decidim/admin/abilities/admin_ability.rb +3 -0
- data/app/views/decidim/admin/authorization_workflows/index.html.erb +32 -0
- data/app/views/decidim/admin/exports/_dropdown.html.erb +1 -1
- data/app/views/decidim/admin/feature_permissions/edit.html.erb +1 -1
- data/app/views/decidim/admin/moderations/index.html.erb +1 -3
- data/app/views/decidim/admin/newsletters/_form.html.erb +1 -1
- data/app/views/decidim/admin/newsletters/index.html.erb +3 -9
- data/app/views/layouts/decidim/admin/users.html.erb +12 -0
- data/config/locales/ca.yml +4 -1
- data/config/locales/en.yml +4 -1
- data/config/locales/es.yml +4 -1
- data/config/locales/eu.yml +4 -1
- data/config/locales/fi.yml +4 -1
- data/config/locales/fr.yml +4 -1
- data/config/locales/it.yml +16 -13
- data/config/locales/nl.yml +75 -72
- data/config/locales/pl.yml +4 -1
- data/config/locales/pt.yml +471 -0
- data/config/locales/ru.yml +4 -3
- data/config/locales/uk.yml +5 -2
- data/config/routes.rb +6 -0
- data/lib/decidim/admin/engine.rb +1 -1
- data/lib/decidim/admin/test/forms/category_form_examples.rb +3 -3
- data/lib/decidim/admin/test/manage_attachments_examples.rb +5 -11
- data/lib/decidim/admin/test/manage_feature_permissions_examples.rb +3 -3
- data/lib/decidim/admin/version.rb +1 -1
- metadata +30 -40
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f46260aa0ada7f6abf12a2fbcbeb49ad934ab96b
|
4
|
+
data.tar.gz: dfc683ac1696fb03f7cfe3692a4463bf7686b6ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e2a00a75e46ffe964dc4d597e283d0c865600bef3fa8f9f6fe541e0e00b5ae521ae562a790da203be8ba88602190fec50b96b1ba99783c5ddeded915569eae4
|
7
|
+
data.tar.gz: ed7f0eeae02b8fb07eea69b636552a6a0335338266b9ff91ce17d2a1a4f8d0d9a0bf1cf8a3b3188318a2483981065a120f2200aa3dae58ed0de6bd3827a54584
|
data/README.md
CHANGED
@@ -4,10 +4,12 @@ This library adds an administration dashboard so users can manage their
|
|
4
4
|
organization, participatory processes and all other entities.
|
5
5
|
|
6
6
|
## Usage
|
7
|
+
|
7
8
|
This will add an admin dashboard to manage an organization an all its entities.
|
8
9
|
It's included by default with Decidim.
|
9
10
|
|
10
11
|
## Installation
|
12
|
+
|
11
13
|
Add this line to your application's Gemfile:
|
12
14
|
|
13
15
|
```ruby
|
@@ -15,8 +17,9 @@ gem 'decidim-admin'
|
|
15
17
|
```
|
16
18
|
|
17
19
|
And then execute:
|
20
|
+
|
18
21
|
```bash
|
19
|
-
|
22
|
+
bundle
|
20
23
|
```
|
21
24
|
|
22
25
|
## Features
|
@@ -26,10 +29,10 @@ $ bundle
|
|
26
29
|
This feature allows an admin to create pages to serve static content. Some
|
27
30
|
example of this kind of pages could be:
|
28
31
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
32
|
+
* Terms and Conditions
|
33
|
+
* FAQ
|
34
|
+
* Accessibility guidelines
|
35
|
+
* About the project
|
33
36
|
|
34
37
|
All the pages can be created with I18n support and will be accessible as
|
35
38
|
`/pages/:page-slug`. You can link them at your website the same way you link
|
@@ -40,7 +43,9 @@ are links to them inside the Decidim framework, see `Decidim::StaticPage` for
|
|
40
43
|
the default list.
|
41
44
|
|
42
45
|
## Contributing
|
46
|
+
|
43
47
|
See [Decidim](https://github.com/decidim/decidim).
|
44
48
|
|
45
49
|
## License
|
50
|
+
|
46
51
|
See [Decidim](https://github.com/decidim/decidim).
|
@@ -20,9 +20,7 @@
|
|
20
20
|
|
21
21
|
.button--title{
|
22
22
|
margin-bottom: 0;
|
23
|
-
|
24
|
-
float: right;
|
25
|
-
}
|
23
|
+
float: right;
|
26
24
|
&:not(:first-child){
|
27
25
|
margin-right: 1rem;
|
28
26
|
}
|
@@ -33,12 +31,10 @@
|
|
33
31
|
.button:not(:last-child){
|
34
32
|
margin-right: 1rem;
|
35
33
|
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
margin-bottom: 0;
|
41
|
-
}
|
34
|
+
display: flex;
|
35
|
+
align-items: center;
|
36
|
+
.button{
|
37
|
+
margin-bottom: 0;
|
42
38
|
}
|
43
39
|
}
|
44
40
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Admin
|
5
|
+
class AuthorizationWorkflowsController < Decidim::Admin::ApplicationController
|
6
|
+
layout "decidim/admin/users"
|
7
|
+
|
8
|
+
def index
|
9
|
+
authorize! :index, :authorization_workflows
|
10
|
+
|
11
|
+
@workflows = Decidim::Verifications.admin_workflows
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -46,7 +46,9 @@ module Decidim
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def authorizations
|
49
|
-
|
49
|
+
Verifications::Adapter.from_collection(
|
50
|
+
current_organization.available_authorizations
|
51
|
+
)
|
50
52
|
end
|
51
53
|
|
52
54
|
def feature
|
@@ -11,7 +11,7 @@ module Decidim
|
|
11
11
|
extend(Virtus.model)
|
12
12
|
|
13
13
|
# Set the authorization dynamic attribute as a nested form class based on the handler name.
|
14
|
-
attribute(:authorization, attributes.dig(:authorization, :handler_name)
|
14
|
+
attribute(:authorization, Decidim::AuthorizationHandler.handler_for(attributes.dig(:authorization, :handler_name)))
|
15
15
|
|
16
16
|
super
|
17
17
|
end
|
@@ -16,7 +16,7 @@ module Decidim
|
|
16
16
|
extend(Virtus.model)
|
17
17
|
|
18
18
|
# Set the authorization dynamic attribute as a nested form class based on the handler name.
|
19
|
-
attribute(:authorization, attributes.dig(:authorization, :handler_name)
|
19
|
+
attribute(:authorization, Decidim::AuthorizationHandler.handler_for(attributes.dig(:authorization, :handler_name)))
|
20
20
|
|
21
21
|
super
|
22
22
|
end
|
@@ -29,7 +29,7 @@ module Decidim
|
|
29
29
|
translatable_attribute :description, String
|
30
30
|
translatable_attribute :welcome_text, String
|
31
31
|
|
32
|
-
validates :cta_button_path, format: { with: %r{\A[a-zA-Z]+[a-zA-Z0-9
|
32
|
+
validates :cta_button_path, format: { with: %r{\A[a-zA-Z]+[a-zA-Z0-9\-/]+\z} }, allow_blank: true
|
33
33
|
validates :official_img_header,
|
34
34
|
:official_img_footer,
|
35
35
|
:homepage_image,
|
@@ -18,12 +18,14 @@ module Decidim
|
|
18
18
|
link_to(link,
|
19
19
|
method: options[:method],
|
20
20
|
class: "action-icon #{options[:class]}",
|
21
|
-
data:
|
22
|
-
tooltip: true,
|
23
|
-
disable_hover: false,
|
21
|
+
data: options[:data] || {},
|
24
22
|
title: title,
|
25
23
|
target: options[:target]) do
|
26
|
-
|
24
|
+
content_tag(:span, class: "simple-has-tip",
|
25
|
+
data: { tooltip: true, disable_hover: false, click_open: false },
|
26
|
+
title: title) do
|
27
|
+
icon(icon_name)
|
28
|
+
end
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<div class="card">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title">
|
4
|
+
<%= t("decidim.admin.titles.authorization_workflows") %>
|
5
|
+
</h2>
|
6
|
+
</div>
|
7
|
+
<div class="card-section">
|
8
|
+
<table class="table-list table-list--lastleft">
|
9
|
+
<thead>
|
10
|
+
<tr>
|
11
|
+
<th><%= t("decidim.authorization_handlers.name") %></th>
|
12
|
+
<th><%= t("decidim.authorization_handlers.help") %></th>
|
13
|
+
</tr>
|
14
|
+
</thead>
|
15
|
+
<tbody>
|
16
|
+
<% @workflows.each do |manifest| %>
|
17
|
+
<tr>
|
18
|
+
<% workflow = Decidim::Verifications::Adapter.new(manifest) %>
|
19
|
+
<td><%= link_to workflow.fullname, workflow.admin_root_path %></td>
|
20
|
+
<td>
|
21
|
+
<ul>
|
22
|
+
<% t("decidim.authorization_handlers.admin.#{workflow.key}.help").each do |tip| %>
|
23
|
+
<li><%= tip %></li>
|
24
|
+
<% end %>
|
25
|
+
</ul>
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
<% end %>
|
29
|
+
</tbody>
|
30
|
+
</table>
|
31
|
+
</div>
|
32
|
+
</div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<span class="exports dropdown tiny button button--simple" data-toggle="export-dropdown"><%= t "actions.export", scope: "decidim.admin" %></span>
|
2
|
-
<div class="dropdown-pane" id="export-dropdown" data-dropdown data-auto-focus="true" data-close-on-click="true">
|
2
|
+
<div class="dropdown-pane" id="export-dropdown" data-dropdown data-position=bottom data-alignment=right data-auto-focus="true" data-close-on-click="true">
|
3
3
|
<ul class="vertical menu add-features">
|
4
4
|
<% feature.manifest.export_manifests.each do |manifest| %>
|
5
5
|
<% %w{CSV JSON Excel}.each do |format| %>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<div class="card-section">
|
15
15
|
<%= form.select :authorization_handler_name,
|
16
16
|
authorizations.map { |authorization|
|
17
|
-
[
|
17
|
+
[authorization.description, authorization.key]
|
18
18
|
}, include_blank: t(".everyone") %>
|
19
19
|
<%= form.text_field :options %>
|
20
20
|
</div>
|
@@ -34,9 +34,7 @@
|
|
34
34
|
</td>
|
35
35
|
<td>
|
36
36
|
<%=
|
37
|
-
link_to moderation.
|
38
|
-
(moderation.reportable.reported_content_url + " " + icon("external-link")).html_safe
|
39
|
-
end
|
37
|
+
link_to t("models.moderation.fields.visit_url", scope: "decidim.moderations"), moderation.reportable.reported_content_url
|
40
38
|
%>
|
41
39
|
</td>
|
42
40
|
<td>
|
@@ -30,19 +30,13 @@
|
|
30
30
|
</td>
|
31
31
|
<td class="table-list__actions">
|
32
32
|
<% if can?(:update, newsletter) && !newsletter.sent? %>
|
33
|
-
<%=
|
34
|
-
<%= icon "pencil" %>
|
35
|
-
<% end %>
|
33
|
+
<%= icon_link_to "pencil", decidim_admin.edit_newsletter_path(newsletter), t("actions.edit", scope: "decidim.admin"), class: "edit" %>
|
36
34
|
<% end %>
|
37
35
|
|
38
|
-
<%=
|
39
|
-
<%= icon "eye" %>
|
40
|
-
<% end %>
|
36
|
+
<%= icon_link_to "eye", decidim_admin.newsletter_path(newsletter), t("actions.preview", scope: "decidim.admin"), class: "preview" %>
|
41
37
|
|
42
38
|
<% if can?(:destroy, newsletter) && !newsletter.sent? %>
|
43
|
-
<%=
|
44
|
-
<%= icon "circle-x" %>
|
45
|
-
<% end %>
|
39
|
+
<%= icon_link_to "circle-x", decidim_admin.newsletter_path(newsletter), t("actions.destroy", scope: "decidim.admin"), method: :delete, data: { confirm: t(".confirm_delete") }, class: "action-icon--remove" %>
|
46
40
|
<% end %>
|
47
41
|
</td>
|
48
42
|
</tr>
|
@@ -17,6 +17,18 @@
|
|
17
17
|
<li <% if is_active_link?(decidim_admin.managed_users_path) %> class="is-active" <% end %>>
|
18
18
|
<%= link_to t("menu.managed_users", scope: "decidim.admin"), decidim_admin.managed_users_path %>
|
19
19
|
</li>
|
20
|
+
<li <% if is_active_link?(decidim_admin.authorization_workflows_path) %> class="is-active" <% end %>>
|
21
|
+
<%= link_to t("menu.authorization_workflows", scope: "decidim.admin"), decidim_admin.authorization_workflows_path %>
|
22
|
+
<ul>
|
23
|
+
<% Decidim::Verifications.admin_workflows.each do |manifest| %>
|
24
|
+
<% workflow = Decidim::Verifications::Adapter.new(manifest) %>
|
25
|
+
|
26
|
+
<li <% if is_active_link?(workflow.admin_root_path) %> class="is-active" <% end %>>
|
27
|
+
<%= link_to workflow.fullname, workflow.admin_root_path %>
|
28
|
+
</li>
|
29
|
+
<% end %>
|
30
|
+
</ul>
|
31
|
+
</li>
|
20
32
|
</ul>
|
21
33
|
</div>
|
22
34
|
<% end %>
|
data/config/locales/ca.yml
CHANGED
@@ -13,6 +13,7 @@ ca:
|
|
13
13
|
feature:
|
14
14
|
name: Nom
|
15
15
|
weight: Pes
|
16
|
+
id: ID
|
16
17
|
newsletter:
|
17
18
|
body: Cos
|
18
19
|
subject: Assumpte
|
@@ -132,7 +133,7 @@ ca:
|
|
132
133
|
success: Categoria actualitzada correctament.
|
133
134
|
dashboard:
|
134
135
|
show:
|
135
|
-
welcome: Benvingut al
|
136
|
+
welcome: Benvingut al tauler d'administració de Decidim.
|
136
137
|
exports:
|
137
138
|
export_as: "%{name} com a %{export_format}"
|
138
139
|
notice: La teva exportació està actualment en curs. Rebràs un correu electrònic quan hagi finalitzat.
|
@@ -386,6 +387,7 @@ ca:
|
|
386
387
|
error: S'ha produït un error en l'actualització d'aquests pàgina.
|
387
388
|
success: La pàgina s'ha actualitzat correctament.
|
388
389
|
titles:
|
390
|
+
authorization_workflows: Mètodes de verificació
|
389
391
|
dashboard: Tauler de control
|
390
392
|
impersonations: Suplantacions
|
391
393
|
managed_users: Usuaris gestionats
|
@@ -451,6 +453,7 @@ ca:
|
|
451
453
|
reportable: Tipus
|
452
454
|
reported_content_url: URL contingut del contingut reportat
|
453
455
|
reports: Denúncies
|
456
|
+
visit_url: Visiteu l'URL
|
454
457
|
errors:
|
455
458
|
messages:
|
456
459
|
invalid_json: JSON no vàlid
|
data/config/locales/en.yml
CHANGED
@@ -13,6 +13,7 @@ en:
|
|
13
13
|
feature:
|
14
14
|
name: Name
|
15
15
|
weight: Weight
|
16
|
+
id: ID
|
16
17
|
newsletter:
|
17
18
|
body: Body
|
18
19
|
subject: Subject
|
@@ -132,7 +133,7 @@ en:
|
|
132
133
|
success: Category updated successfully.
|
133
134
|
dashboard:
|
134
135
|
show:
|
135
|
-
welcome: Welcome to the
|
136
|
+
welcome: Welcome to the Decidim Admin Panel.
|
136
137
|
exports:
|
137
138
|
export_as: "%{name} as %{export_format}"
|
138
139
|
notice: Your export is currently in progress. You'll receive an email when it's complete.
|
@@ -386,6 +387,7 @@ en:
|
|
386
387
|
error: There was an error when updating this page.
|
387
388
|
success: Page updated successfully
|
388
389
|
titles:
|
390
|
+
authorization_workflows: Verification methods
|
389
391
|
dashboard: Dashboard
|
390
392
|
impersonations: Impersonations
|
391
393
|
managed_users: Managed users
|
@@ -451,6 +453,7 @@ en:
|
|
451
453
|
reportable: Reportable
|
452
454
|
reported_content_url: Reported content URL
|
453
455
|
reports: Reports
|
456
|
+
visit_url: Visit URL
|
454
457
|
errors:
|
455
458
|
messages:
|
456
459
|
invalid_json: Invalid JSON
|
data/config/locales/es.yml
CHANGED
@@ -13,6 +13,7 @@ es:
|
|
13
13
|
feature:
|
14
14
|
name: Nombre
|
15
15
|
weight: Peso
|
16
|
+
id: ID
|
16
17
|
newsletter:
|
17
18
|
body: Cuerpo
|
18
19
|
subject: Asunto
|
@@ -132,7 +133,7 @@ es:
|
|
132
133
|
success: Categoría actualizada correctamente.
|
133
134
|
dashboard:
|
134
135
|
show:
|
135
|
-
welcome: Bienvenido al
|
136
|
+
welcome: Bienvenido al panel de administración de Decidim.
|
136
137
|
exports:
|
137
138
|
export_as: "%{name} como %{export_format}"
|
138
139
|
notice: Su exportación está actualmente en curso. Recibirá un correo electrónico cuando esté completo.
|
@@ -386,6 +387,7 @@ es:
|
|
386
387
|
error: Se ha producido un error en la actualización de ésta página.
|
387
388
|
success: La página se ha actualizado correctamente.
|
388
389
|
titles:
|
390
|
+
authorization_workflows: Métodos de verificación
|
389
391
|
dashboard: Panel de control
|
390
392
|
impersonations: Suplantaciones
|
391
393
|
managed_users: Usuarios gestionados
|
@@ -451,6 +453,7 @@ es:
|
|
451
453
|
reportable: Tipo
|
452
454
|
reported_content_url: URL del contenido reportado
|
453
455
|
reports: Denuncias
|
456
|
+
visit_url: Visita la URL
|
454
457
|
errors:
|
455
458
|
messages:
|
456
459
|
invalid_json: JSON no válido
|