decidim-assemblies 0.30.2 → 0.31.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/cells/decidim/assemblies/content_blocks/highlighted_assemblies_settings_form/show.erb +3 -1
- data/app/commands/decidim/assemblies/admin/create_assembly.rb +1 -1
- data/app/commands/decidim/assemblies/admin/{copy_assembly.rb → duplicate_assembly.rb} +20 -21
- data/app/commands/decidim/assemblies/admin/update_assembly.rb +1 -1
- data/app/controllers/decidim/assemblies/admin/assemblies_controller.rb +3 -3
- data/app/controllers/decidim/assemblies/admin/assembly_duplicates_controller.rb +35 -0
- data/app/controllers/decidim/assemblies/admin/assembly_imports_controller.rb +1 -1
- data/app/controllers/decidim/assemblies/admin/assembly_landing_page_controller.rb +4 -0
- data/app/forms/decidim/assemblies/admin/{assembly_copy_form.rb → assembly_duplicate_form.rb} +4 -4
- data/app/forms/decidim/assemblies/admin/assembly_form.rb +0 -1
- data/app/models/decidim/assembly.rb +0 -4
- data/app/packs/entrypoints/decidim_assemblies_admin.js +0 -1
- data/app/packs/src/decidim/assemblies/admin/assemblies.js +3 -62
- data/app/packs/src/decidim/assemblies/controllers/.gitkeep +0 -0
- data/app/packs/src/decidim/assemblies/controllers/assembly_admin/assembly_admin.test.js +1077 -0
- data/app/packs/src/decidim/assemblies/controllers/assembly_admin/controller.js +66 -0
- data/app/permissions/decidim/assemblies/permissions.rb +7 -7
- data/app/presenters/decidim/assemblies/admin_log/assembly_presenter.rb +0 -1
- data/app/presenters/decidim/assemblies/assembly_stats_presenter.rb +1 -3
- data/app/queries/decidim/assemblies/assemblies_stats_followers_count.rb +14 -0
- data/app/queries/decidim/assemblies/assemblies_stats_participants_count.rb +14 -0
- data/app/serializers/decidim/assemblies/assembly_importer.rb +0 -1
- data/app/views/decidim/assemblies/admin/assemblies/_assembly_row.html.erb +118 -49
- data/app/views/decidim/assemblies/admin/assemblies/_form.html.erb +8 -12
- data/app/views/decidim/assemblies/admin/assemblies/edit.html.erb +1 -9
- data/app/views/decidim/assemblies/admin/assemblies/index.html.erb +2 -2
- data/app/views/decidim/assemblies/admin/assemblies/index.js.erb +4 -0
- data/app/views/decidim/assemblies/admin/assemblies/manage_trash.html.erb +2 -1
- data/app/views/decidim/assemblies/admin/assemblies/new.html.erb +1 -1
- data/app/views/decidim/assemblies/admin/{assembly_copies → assembly_duplicates}/_form.html.erb +4 -4
- data/app/views/decidim/assemblies/admin/assembly_duplicates/new.html.erb +19 -0
- data/app/views/decidim/assemblies/admin/assembly_user_roles/index.html.erb +42 -18
- data/app/views/decidim/assemblies/assemblies/index.html.erb +0 -1
- data/app/views/layouts/decidim/admin/_manage_assemblies.html.erb +1 -1
- data/config/assets.rb +2 -3
- data/config/locales/ar.yml +0 -13
- data/config/locales/bg.yml +0 -17
- data/config/locales/bs-BA.yml +0 -4
- data/config/locales/ca-IT.yml +11 -16
- data/config/locales/ca.yml +11 -16
- data/config/locales/cs.yml +11 -16
- data/config/locales/de.yml +12 -17
- data/config/locales/el.yml +0 -13
- data/config/locales/en.yml +11 -16
- data/config/locales/es-MX.yml +12 -17
- data/config/locales/es-PY.yml +12 -17
- data/config/locales/es.yml +12 -17
- data/config/locales/eu.yml +11 -16
- data/config/locales/fi-plain.yml +11 -16
- data/config/locales/fi.yml +11 -16
- data/config/locales/fr-CA.yml +11 -16
- data/config/locales/fr.yml +11 -16
- data/config/locales/ga-IE.yml +0 -6
- data/config/locales/gl.yml +0 -13
- data/config/locales/he-IL.yml +0 -12
- data/config/locales/hu.yml +0 -14
- data/config/locales/id-ID.yml +0 -12
- data/config/locales/is-IS.yml +0 -10
- data/config/locales/it.yml +4 -17
- data/config/locales/ja.yml +12 -17
- data/config/locales/kaa.yml +0 -3
- data/config/locales/ko.yml +0 -4
- data/config/locales/lb.yml +0 -12
- data/config/locales/lt.yml +0 -14
- data/config/locales/lv.yml +0 -13
- data/config/locales/nl.yml +0 -13
- data/config/locales/no.yml +0 -13
- data/config/locales/pl.yml +0 -17
- data/config/locales/pt-BR.yml +0 -17
- data/config/locales/pt.yml +0 -18
- data/config/locales/ro-RO.yml +2 -14
- data/config/locales/ru.yml +0 -10
- data/config/locales/sk.yml +0 -8
- data/config/locales/sl.yml +0 -12
- data/config/locales/sq-AL.yml +0 -15
- data/config/locales/sr-CS.yml +0 -4
- data/config/locales/sv.yml +10 -16
- data/config/locales/tr-TR.yml +0 -13
- data/config/locales/uk.yml +0 -10
- data/config/locales/zh-CN.yml +0 -13
- data/config/locales/zh-TW.yml +0 -13
- data/db/migrate/20250604081741_remove_hastags_column_assemblies.rb +7 -0
- data/lib/decidim/api/assembly_type.rb +10 -6
- data/lib/decidim/assemblies/admin_engine.rb +1 -1
- data/lib/decidim/assemblies/api.rb +0 -1
- data/lib/decidim/assemblies/engine.rb +5 -14
- data/lib/decidim/assemblies/participatory_space.rb +14 -0
- data/lib/decidim/assemblies/query_extensions.rb +0 -18
- data/lib/decidim/assemblies/seeds.rb +2 -3
- data/lib/decidim/assemblies/test/factories.rb +2 -2
- data/lib/decidim/assemblies/version.rb +1 -1
- metadata +23 -21
- data/app/controllers/decidim/assemblies/admin/assembly_copies_controller.rb +0 -35
- data/app/packs/entrypoints/decidim_assemblies.js +0 -4
- data/app/packs/src/decidim/assemblies/assemblies.js +0 -14
- data/app/queries/decidim/assemblies/metrics/assemblies_metric_manage.rb +0 -27
- data/app/views/decidim/assemblies/admin/assembly_copies/new.html.erb +0 -19
- data/lib/decidim/api/assemblies_type_type.rb +0 -16
@@ -0,0 +1,66 @@
|
|
1
|
+
import { Controller } from "@hotwired/stimulus"
|
2
|
+
|
3
|
+
export default class extends Controller {
|
4
|
+
connect() {
|
5
|
+
const privateSpace = this.element.querySelector("#private_space");
|
6
|
+
|
7
|
+
if (privateSpace) {
|
8
|
+
privateSpace.addEventListener("change", this.toggleDisabledHiddenFields);
|
9
|
+
}
|
10
|
+
this.toggleDisabledHiddenFields();
|
11
|
+
|
12
|
+
this.assignBehavior("assembly_type");
|
13
|
+
this.assignBehavior("created_by");
|
14
|
+
}
|
15
|
+
|
16
|
+
assignBehavior(field) {
|
17
|
+
const assemblyCreatedBy = this.element.querySelector(`#assembly_${field}`);
|
18
|
+
const assemblyCreatedByOther = this.element.querySelector(`#${field}_other`);
|
19
|
+
this.attachVisibility(assemblyCreatedBy, assemblyCreatedByOther);
|
20
|
+
}
|
21
|
+
|
22
|
+
attachVisibility(type, other) {
|
23
|
+
if (type && other) {
|
24
|
+
type.addEventListener("change", (ev) => {
|
25
|
+
this.toggleDependsOnSelect(ev.target, other);
|
26
|
+
});
|
27
|
+
this.toggleDependsOnSelect(type, other);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
toggleDependsOnSelect(target, showDiv) {
|
32
|
+
if (!target || !showDiv) {
|
33
|
+
return;
|
34
|
+
}
|
35
|
+
const value = target.value;
|
36
|
+
|
37
|
+
showDiv.style.display = "none";
|
38
|
+
if (value === "others") {
|
39
|
+
showDiv.style.display = "block";
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
toggleDisabledHiddenFields() {
|
44
|
+
const privateSpace = document.getElementById("private_space");
|
45
|
+
const isTransparent = document.getElementById("is_transparent");
|
46
|
+
const specialFeatures = document.getElementById("special_features");
|
47
|
+
|
48
|
+
const enabledPrivateSpace = privateSpace?.querySelector("input[type='checkbox']")?.checked;
|
49
|
+
const isTransparentCheckbox = isTransparent?.querySelector("input[type='checkbox']");
|
50
|
+
|
51
|
+
if (isTransparentCheckbox) {
|
52
|
+
isTransparentCheckbox.disabled = (enabledPrivateSpace === false);
|
53
|
+
|
54
|
+
if (isTransparentCheckbox.checked) {
|
55
|
+
isTransparentCheckbox.checked = false;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
if (specialFeatures) {
|
60
|
+
specialFeatures.style.display = enabledPrivateSpace
|
61
|
+
? "block"
|
62
|
+
: "none";
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
}
|
@@ -33,7 +33,7 @@ module Decidim
|
|
33
33
|
user_can_read_current_assembly?
|
34
34
|
user_can_create_assembly?
|
35
35
|
user_can_export_assembly?
|
36
|
-
|
36
|
+
user_can_duplicate_assembly?
|
37
37
|
user_can_upload_images_in_assembly?
|
38
38
|
|
39
39
|
# org admins and space admins can do everything in the admin section
|
@@ -45,7 +45,7 @@ module Decidim
|
|
45
45
|
|
46
46
|
moderator_action?
|
47
47
|
collaborator_action?
|
48
|
-
|
48
|
+
evaluator_action?
|
49
49
|
assembly_admin_action?
|
50
50
|
|
51
51
|
permission_action
|
@@ -172,8 +172,8 @@ module Decidim
|
|
172
172
|
toggle_allow(user.admin? || admin_assembly?)
|
173
173
|
end
|
174
174
|
|
175
|
-
def
|
176
|
-
return unless permission_action.action == :
|
175
|
+
def user_can_duplicate_assembly?
|
176
|
+
return unless permission_action.action == :duplicate &&
|
177
177
|
permission_action.subject == :assembly
|
178
178
|
|
179
179
|
toggle_allow(user.admin? || admin_assembly?)
|
@@ -227,9 +227,9 @@ module Decidim
|
|
227
227
|
allow! if permission_action.action == :read || permission_action.action == :preview
|
228
228
|
end
|
229
229
|
|
230
|
-
#
|
231
|
-
def
|
232
|
-
return unless can_manage_assembly?(role: :
|
230
|
+
# Evaluators can only read the assembly components
|
231
|
+
def evaluator_action?
|
232
|
+
return unless can_manage_assembly?(role: :evaluator)
|
233
233
|
|
234
234
|
allow! if permission_action.action == :read && permission_action.subject == :component
|
235
235
|
allow! if permission_action.action == :export && permission_action.subject == :component_data
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Assemblies
|
5
|
+
# This class counts all Followers of a assembly
|
6
|
+
class AssembliesStatsFollowersCount < Decidim::StatsFollowersCount
|
7
|
+
def self.for(participatory_space)
|
8
|
+
return 0 unless participatory_space.is_a?(Decidim::Assemblies)
|
9
|
+
|
10
|
+
new(participatory_space).query
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Assemblies
|
5
|
+
# This class counts unique Participants on a assembly
|
6
|
+
class AssembliesStatsParticipantsCount < Decidim::StatsParticipantsCount
|
7
|
+
def self.for(participatory_space)
|
8
|
+
return 0 unless participatory_space.is_a?(Decidim::Assemblies)
|
9
|
+
|
10
|
+
new(participatory_space).query
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<tr data-assembly-id="<%= assembly.id %>" data-parent-id="<%= assembly.parent_id %>" data-level="<%= assembly.ancestors.count %>">
|
2
|
-
<td class="whitespace-nowrap">
|
2
|
+
<td class="whitespace-nowrap" data-label="<%= t("models.assembly.fields.title", scope: "decidim.admin") %>">
|
3
3
|
<% if parent_assembly_id %>
|
4
4
|
<% [assembly.ancestors.count - 1, 0].max.times do |index| %>
|
5
5
|
<span class="px-3"></span>
|
@@ -30,72 +30,141 @@
|
|
30
30
|
<% end %>
|
31
31
|
<% end %>
|
32
32
|
</td>
|
33
|
-
<td class="table-list__date">
|
33
|
+
<td class="table-list__date" data-label="<%= t("models.assembly.fields.created_at", scope: "decidim.admin") %>">
|
34
34
|
<%= l(assembly.created_at, format: :short) %>
|
35
35
|
</td>
|
36
|
-
<td class="table-list__state">
|
36
|
+
<td class="table-list__state" data-label="<%= t("models.assembly.fields.private", scope: "decidim.admin") %>">
|
37
37
|
<% if assembly.private_space? %>
|
38
38
|
<span><%= t("assemblies.index.private", scope: "decidim.admin") %></span>
|
39
39
|
<% else %>
|
40
40
|
<span><%= t("assemblies.index.public", scope: "decidim.admin") %></span>
|
41
41
|
<% end %>
|
42
42
|
</td>
|
43
|
-
<td class="table-list__state">
|
43
|
+
<td class="table-list__state" data-label="<%= t("models.assembly.fields.published", scope: "decidim.admin") %>">
|
44
44
|
<% if assembly.published? %>
|
45
45
|
<span class="label success !text-sm"><%= t("assemblies.index.published", scope: "decidim.admin") %></span>
|
46
46
|
<% else %>
|
47
47
|
<span class="label alert !text-sm"><%= t("assemblies.index.unpublished", scope: "decidim.admin") %></span>
|
48
48
|
<% end %>
|
49
49
|
</td>
|
50
|
-
<td class="table-list__actions">
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
<% else %>
|
55
|
-
<span class="action-space icon"></span>
|
56
|
-
<% end %>
|
57
|
-
<% else %>
|
58
|
-
<% if allowed_to? :read, :share_token, current_participatory_space: assembly %>
|
59
|
-
<%= icon_link_to "share-line", decidim_admin_assemblies.assembly_share_tokens_path(assembly), t("actions.share_tokens", scope: "decidim.admin"), class: "action-icon--new" %>
|
60
|
-
<% else %>
|
61
|
-
<span class="action-space icon"></span>
|
62
|
-
<% end %>
|
63
|
-
<% if allowed_to? :update, :assembly, assembly: assembly %>
|
64
|
-
<%= icon_link_to "pencil-line", edit_assembly_path(assembly), t("actions.configure", scope: "decidim.admin"), class: "action-icon--new" %>
|
65
|
-
<% else %>
|
66
|
-
<span class="action-space icon"></span>
|
67
|
-
<% end %>
|
68
|
-
<% if allowed_to? :copy, :assembly, assembly: assembly, assembly: parent_assembly %>
|
69
|
-
<%= icon_link_to "file-copy-line", new_assembly_copy_path(assembly), t("actions.duplicate", scope: "decidim.admin"), class: "action-icon--copy" %>
|
70
|
-
<% else %>
|
71
|
-
<span class="action-space icon"></span>
|
72
|
-
<% end %>
|
50
|
+
<td class="table-list__actions" data-label="<%= t("models.assembly.fields.actions", scope: "decidim.admin") %>">
|
51
|
+
<button type="button" data-controller="dropdown" data-target="actions-assembly-<%= assembly.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: translated_attribute(assembly.title)) %>">
|
52
|
+
<%= icon "more-fill", class: "text-secondary" %>
|
53
|
+
</button>
|
73
54
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
55
|
+
<div class="inline-block relative">
|
56
|
+
<ul id="actions-assembly-<%= assembly.id %>" class="dropdown dropdown__action" aria-hidden="true">
|
57
|
+
<% if view == :deleted %>
|
58
|
+
<% if allowed_to? :restore, :assembly, trashable_deleted_resource: assembly %>
|
59
|
+
<li class="dropdown__item">
|
60
|
+
<%= link_to restore_assembly_path(assembly), class: "dropdown__button", method: :patch do %>
|
61
|
+
<%= icon "refresh-line" %>
|
62
|
+
<%= t("actions.restore", scope: "decidim.admin") %>
|
63
|
+
<% end %>
|
64
|
+
</li>
|
65
|
+
<% end %>
|
66
|
+
<% else %>
|
67
|
+
<% if allowed_to? :update, :assembly, assembly: assembly %>
|
68
|
+
<li class="dropdown__item">
|
69
|
+
<%= link_to edit_assembly_path(assembly), class: "dropdown__button" do %>
|
70
|
+
<%= icon "pencil-line" %>
|
71
|
+
<%= t("actions.edit", scope: "decidim.admin") %>
|
72
|
+
<% end %>
|
73
|
+
</li>
|
74
|
+
<% end %>
|
79
75
|
|
80
|
-
|
81
|
-
<%= icon_link_to "eye-line", decidim_assemblies.assembly_path(assembly), t("actions.preview", scope: "decidim.admin"), class: "action-icon--preview", target: "_blank", data: { "external-link": false } %>
|
82
|
-
<% else %>
|
83
|
-
<span class="action-space icon"></span>
|
84
|
-
<% end %>
|
76
|
+
<hr>
|
85
77
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
78
|
+
<% if allowed_to? :duplicate, :assembly, assembly: assembly %>
|
79
|
+
<li class="dropdown__item">
|
80
|
+
<%= link_to new_assembly_duplicate_path(assembly), class: "dropdown__button" do %>
|
81
|
+
<%= icon "file-copy-line" %>
|
82
|
+
<%= t("actions.duplicate", scope: "decidim.admin") %>
|
83
|
+
<% end %>
|
84
|
+
</li>
|
85
|
+
<% end %>
|
91
86
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
87
|
+
<% if allowed_to? :export, :assembly, assembly: assembly %>
|
88
|
+
<li class="dropdown__item">
|
89
|
+
<%= link_to assembly_export_path(assembly), class: "dropdown__button", method: :post do %>
|
90
|
+
<%= icon "download-line" %>
|
91
|
+
<%= t("actions.export", scope: "decidim.admin") %>
|
92
|
+
<% end %>
|
93
|
+
</li>
|
94
|
+
<% end %>
|
95
|
+
|
96
|
+
<hr>
|
97
|
+
|
98
|
+
<% if allowed_to? :preview, :assembly, assembly: assembly %>
|
99
|
+
<li class="dropdown__item">
|
100
|
+
<%= link_to decidim_assemblies.assembly_path(assembly), class: "dropdown__button", target: "_blank", data: { "external-link": false } do %>
|
101
|
+
<%= icon "eye-line" %>
|
102
|
+
<%= t("actions.preview", scope: "decidim.admin") %>
|
103
|
+
<% end %>
|
104
|
+
</li>
|
105
|
+
<% end %>
|
106
|
+
|
107
|
+
<% if allowed_to? :read, :share_token, current_participatory_space: assembly %>
|
108
|
+
<li class="dropdown__item">
|
109
|
+
<%= link_to decidim_admin_assemblies.assembly_share_tokens_path(assembly), class: "dropdown__button" do %>
|
110
|
+
<%= icon "share-line" %>
|
111
|
+
<%= t("actions.share_tokens", scope: "decidim.admin") %>
|
112
|
+
<% end %>
|
113
|
+
</li>
|
114
|
+
<% end %>
|
115
|
+
|
116
|
+
<% if allowed_to? :publish, :assembly, assembly: assembly %>
|
117
|
+
<li class="dropdown__item">
|
118
|
+
<% if assembly.published? %>
|
119
|
+
<%= link_to assembly_publish_path(assembly), method: :delete, class: "dropdown__button" do %>
|
120
|
+
<%= icon "close-circle-line" %>
|
121
|
+
<%= t("actions.unpublish", scope: "decidim.admin") %>
|
122
|
+
<% end %>
|
123
|
+
<% else %>
|
124
|
+
<%= link_to assembly_publish_path(assembly), method: :post, class: "dropdown__button" do %>
|
125
|
+
<%= icon "check-line" %>
|
126
|
+
<%= t("actions.publish", scope: "decidim.admin") %>
|
127
|
+
<% end %>
|
128
|
+
<% end %>
|
129
|
+
</li>
|
130
|
+
<% end %>
|
131
|
+
|
132
|
+
<hr>
|
133
|
+
|
134
|
+
<% if allowed_to? :read, :moderation, assembly: assembly %>
|
135
|
+
<li class="dropdown__item">
|
136
|
+
<%= link_to moderations_path(assembly), class: "dropdown__button" do %>
|
137
|
+
<%= icon "flag-line" %>
|
138
|
+
<%= t("actions.moderate", scope: "decidim.admin") %>
|
139
|
+
<% end %>
|
140
|
+
</li>
|
141
|
+
|
142
|
+
<hr>
|
143
|
+
<% end %>
|
144
|
+
|
145
|
+
<% if allowed_to? :soft_delete, :assembly, trashable_deleted_resource: assembly %>
|
146
|
+
<% if assembly.published? %>
|
147
|
+
<li class="dropdown__item">
|
148
|
+
<div class="dropdown__button-disabled">
|
149
|
+
<%= with_tooltip t("tooltips.deleted_assemblies_info", scope: "decidim.admin") do %>
|
150
|
+
<%= icon "delete-bin-line", class: "text-gray" %>
|
151
|
+
<span>
|
152
|
+
<%= t("actions.soft_delete", scope: "decidim.admin") %>
|
153
|
+
</span>
|
154
|
+
<% end %>
|
155
|
+
</div>
|
156
|
+
</li>
|
157
|
+
<% else %>
|
158
|
+
<li class="dropdown__item">
|
159
|
+
<%= link_to soft_delete_assembly_path(assembly), class: "dropdown__button", method: :patch, data: { confirm: t("actions.confirm_delete_assembly", scope: "decidim.admin") } do %>
|
160
|
+
<%= icon "delete-bin-line" %>
|
161
|
+
<%= t("actions.soft_delete", scope: "decidim.admin") %>
|
162
|
+
<% end %>
|
163
|
+
</li>
|
164
|
+
<% end %>
|
165
|
+
<% end %>
|
97
166
|
<% end %>
|
98
|
-
|
99
|
-
|
167
|
+
</ul>
|
168
|
+
</div>
|
100
169
|
</td>
|
101
170
|
</tr>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="form__wrapper">
|
2
|
-
<div class="card" data-
|
2
|
+
<div class="card" data-controller="accordion" id="accordion-title">
|
3
3
|
<div class="card-divider">
|
4
4
|
<button class="card-divider-button" data-open="true" data-controls="panel-title" type="button">
|
5
5
|
<%= icon "arrow-right-s-line" %>
|
@@ -23,13 +23,9 @@
|
|
23
23
|
</div>
|
24
24
|
|
25
25
|
<div class="row">
|
26
|
-
<div class="columns slug">
|
26
|
+
<div class="columns" data-controller="slug">
|
27
27
|
<%= form.text_field :slug, help_text: t(".slug_help_html", url: decidim_form_slug_url(:assemblies, form.object.slug)) %>
|
28
28
|
</div>
|
29
|
-
|
30
|
-
<div class="columns">
|
31
|
-
<%= form.text_field :hashtag %>
|
32
|
-
</div>
|
33
29
|
</div>
|
34
30
|
|
35
31
|
<div class="row column">
|
@@ -57,7 +53,7 @@
|
|
57
53
|
</div>
|
58
54
|
</div>
|
59
55
|
</div>
|
60
|
-
<div class="card" data-
|
56
|
+
<div class="card" data-controller="accordion" id="accordion-duration">
|
61
57
|
<div class="card-divider">
|
62
58
|
<button class="card-divider-button" data-open="true" data-controls="panel-duration" type="button">
|
63
59
|
<%= icon "arrow-right-s-line" %>
|
@@ -90,7 +86,7 @@
|
|
90
86
|
</div>
|
91
87
|
</div>
|
92
88
|
|
93
|
-
<div class="card" data-
|
89
|
+
<div class="card" data-controller="accordion" id="accordion-images">
|
94
90
|
<div class="card-divider">
|
95
91
|
<button class="card-divider-button" data-open="true" data-controls="panel-images" type="button">
|
96
92
|
<%= icon "arrow-right-s-line" %>
|
@@ -113,7 +109,7 @@
|
|
113
109
|
</div>
|
114
110
|
</div>
|
115
111
|
|
116
|
-
<div class="card" data-
|
112
|
+
<div class="card" data-controller="accordion" id="accordion-metadata">
|
117
113
|
<div class="card-divider">
|
118
114
|
<button class="card-divider-button" data-open="true" data-controls="panel-metadata" type="button">
|
119
115
|
<%= icon "arrow-right-s-line" %>
|
@@ -153,7 +149,7 @@
|
|
153
149
|
</div>
|
154
150
|
</div>
|
155
151
|
|
156
|
-
<div class="card" data-
|
152
|
+
<div class="card" data-controller="accordion" id="accordion-taxonomies">
|
157
153
|
<div class="card-divider">
|
158
154
|
<button class="card-divider-button" data-open="true" data-controls="panel-taxonomies" type="button">
|
159
155
|
<%= icon "arrow-right-s-line" %>
|
@@ -180,7 +176,7 @@
|
|
180
176
|
</div>
|
181
177
|
</div>
|
182
178
|
|
183
|
-
<div class="card" data-
|
179
|
+
<div class="card" data-controller="accordion" id="accordion-visibility">
|
184
180
|
<div class="card-divider">
|
185
181
|
<button class="card-divider-button" data-open="true" data-controls="panel-visibility" type="button">
|
186
182
|
<%= icon "arrow-right-s-line" %>
|
@@ -216,7 +212,7 @@
|
|
216
212
|
</div>
|
217
213
|
</div>
|
218
214
|
|
219
|
-
<div class="card" data-
|
215
|
+
<div class="card" data-controller="accordion" id="accordion-other">
|
220
216
|
<div class="card-divider">
|
221
217
|
<button class="card-divider-button" data-open="true" data-controls="panel-other" type="button">
|
222
218
|
<%= icon "arrow-right-s-line" %>
|
@@ -7,19 +7,11 @@
|
|
7
7
|
|
8
8
|
<div class="item__edit item__edit-1col">
|
9
9
|
<div class="item__edit-form">
|
10
|
-
<%= decidim_form_for(@form, html: { class: "form form-defaults edit_assembly assembly_form_admin" }) do |f| %>
|
10
|
+
<%= decidim_form_for(@form, data: { controller: "assembly-admin" }, html: { class: "form form-defaults edit_assembly assembly_form_admin" }) do |f| %>
|
11
11
|
<%= render partial: "form", object: f %>
|
12
12
|
<div class="item__edit-sticky">
|
13
13
|
<div class="item__edit-sticky-container">
|
14
14
|
<%= f.submit t("assemblies.edit.update", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
|
15
|
-
|
16
|
-
<% if allowed_to? :publish, :assembly, assembly: current_assembly %>
|
17
|
-
<% if current_assembly.published? %>
|
18
|
-
<%= link_to t("actions.unpublish", scope: "decidim.admin"), assembly_publish_path(current_assembly), method: :delete, class: "button button__sm button__secondary" %>
|
19
|
-
<% else %>
|
20
|
-
<%= link_to t("actions.publish", scope: "decidim.admin"), assembly_publish_path(current_assembly), method: :post, class: "button button__sm button__secondary" %>
|
21
|
-
<% end %>
|
22
|
-
<% end %>
|
23
15
|
</div>
|
24
16
|
</div>
|
25
17
|
<% end %>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
<%= admin_filter_selector %>
|
18
18
|
|
19
|
-
<div class="table-
|
19
|
+
<div class="table-stacked">
|
20
20
|
<table class="table-list">
|
21
21
|
<%= render partial: "assemblies_thead" %>
|
22
22
|
<tbody>
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
<% if allowed_to? :read, :assembly, trashable_deleted_resource: @assemblies %>
|
32
32
|
<div class="mt-4">
|
33
|
-
<%= link_to manage_trash_assemblies_path, class: "flex items-center
|
33
|
+
<%= link_to manage_trash_assemblies_path, class: "flex items-center text-secondary" do %>
|
34
34
|
<%= icon "delete-bin-2-line", class: "mr-2 fill-current text-secondary", role: "img" %>
|
35
35
|
<%= t("actions.view_deleted_assemblies", scope: "decidim.admin") %>
|
36
36
|
<span class="ml-2">
|
@@ -5,6 +5,10 @@ $('[data-assembly-id="<%= parent_assembly_id %>"]').after(
|
|
5
5
|
locals: { view: :index }).strip.html_safe %>'
|
6
6
|
);
|
7
7
|
|
8
|
+
// Dispatch the `ajax:loaded` event with the newly inserted element
|
9
|
+
const insertedElement = $('[data-assembly-id="<%= parent_assembly_id %>"]').next()[0];
|
10
|
+
document.dispatchEvent(new CustomEvent("ajax:loaded", { detail: insertedElement }));
|
11
|
+
|
8
12
|
var component = new window.Decidim.AdminAssembliesListComponent();
|
9
13
|
|
10
14
|
component.run();
|
@@ -1,4 +1,5 @@
|
|
1
1
|
<% add_decidim_page_title(t("assemblies_deleted", scope: "decidim.admin.titles")) %>
|
2
|
+
|
2
3
|
<div class="item_show__header">
|
3
4
|
<h1 class="item_show__header-title">
|
4
5
|
<%= t "assemblies.manage_trash.title", scope: "decidim.admin" %>
|
@@ -7,7 +8,7 @@
|
|
7
8
|
<div class="card" id="assemblies">
|
8
9
|
<%= admin_filter_selector %>
|
9
10
|
</div>
|
10
|
-
<div class="table-
|
11
|
+
<div class="table-stacked">
|
11
12
|
<table class="table-list">
|
12
13
|
<%= render partial: "assemblies_thead" %>
|
13
14
|
<tbody>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
<div class="item__edit item__edit-1col">
|
10
10
|
<div class="item__edit-form">
|
11
|
-
<%= decidim_form_for(@form, html: { class: "form-defaults form new_assembly assembly_form_admin" }) do |f| %>
|
11
|
+
<%= decidim_form_for(@form, data: { controller: "assembly-admin" }, html: { class: "form-defaults form new_assembly assembly_form_admin" }) do |f| %>
|
12
12
|
<%= render partial: "form", object: f %>
|
13
13
|
<div class="item__edit-sticky">
|
14
14
|
<div class="item__edit-sticky-container">
|
data/app/views/decidim/assemblies/admin/{assembly_copies → assembly_duplicates}/_form.html.erb
RENAMED
@@ -5,20 +5,20 @@
|
|
5
5
|
<div class="row column">
|
6
6
|
<%= form.translated :text_field, :title, autofocus: true, aria: { label: :title } %>
|
7
7
|
</div>
|
8
|
-
<div class="row column slug">
|
8
|
+
<div class="row column" data-controller="slug">
|
9
9
|
<%= form.text_field :slug, help_text: t(".slug_help_html", url: decidim_form_slug_url(:assemblies, form.object.slug)) %>
|
10
10
|
</div>
|
11
11
|
<div class="card">
|
12
12
|
<div class="card-divider">
|
13
|
-
<legend><%= t("
|
13
|
+
<legend><%= t("assembly_duplicates.new.select", scope: "decidim.admin") %></legend>
|
14
14
|
</div>
|
15
15
|
<div class="card-section">
|
16
16
|
<div class="row">
|
17
17
|
<div class="columns">
|
18
|
-
<%= form.check_box :
|
18
|
+
<%= form.check_box :duplicate_components %>
|
19
19
|
</div>
|
20
20
|
<div class="columns">
|
21
|
-
<%= form.check_box :
|
21
|
+
<%= form.check_box :duplicate_landing_page_blocks %>
|
22
22
|
</div>
|
23
23
|
</div>
|
24
24
|
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% add_decidim_page_title(t("assembly_duplicates.new.title", scope: "decidim.admin")) %>
|
2
|
+
<div class="item_show__header">
|
3
|
+
<h1 class="item_show__header-title">
|
4
|
+
<%= t("assembly_duplicates.new.title", scope: "decidim.admin") %>
|
5
|
+
</h1>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<div class="item__edit item__edit-1col">
|
9
|
+
<div class="item__edit-form">
|
10
|
+
<%= decidim_form_for(@form, url: assembly_duplicates_path(current_assembly), method: :post, html: { class: "form form-defaults duplicate_assembly" }) do |f| %>
|
11
|
+
<%= render partial: "form", object: f %>
|
12
|
+
<div class="item__edit-sticky">
|
13
|
+
<div class="item__edit-sticky-container">
|
14
|
+
<%= f.submit t("assembly_duplicates.new.duplicate", scope: "decidim.admin"), class: "button button__sm button__secondary" %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
</div>
|
19
|
+
</div>
|