decidim-conferences 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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/conferences/content_blocks/highlighted_conferences_settings_form/show.erb +3 -1
  3. data/app/commands/decidim/conferences/admin/create_conference.rb +1 -1
  4. data/app/commands/decidim/conferences/admin/{copy_conference.rb → duplicate_conference.rb} +15 -16
  5. data/app/commands/decidim/conferences/admin/update_conference.rb +2 -2
  6. data/app/controllers/decidim/conferences/admin/conference_duplicates_controller.rb +35 -0
  7. data/app/controllers/decidim/conferences/admin/conference_invites_controller.rb +1 -1
  8. data/app/controllers/decidim/conferences/admin/conference_speakers_controller.rb +4 -4
  9. data/app/controllers/decidim/conferences/admin/conferences_controller.rb +3 -3
  10. data/app/controllers/decidim/conferences/admin/diplomas_controller.rb +1 -1
  11. data/app/controllers/decidim/conferences/admin/media_links_controller.rb +2 -2
  12. data/app/controllers/decidim/conferences/admin/partners_controller.rb +2 -2
  13. data/app/controllers/decidim/conferences/admin/registration_types_controller.rb +2 -2
  14. data/app/forms/decidim/conferences/admin/{conference_copy_form.rb → conference_duplicate_form.rb} +3 -3
  15. data/app/forms/decidim/conferences/admin/conference_form.rb +0 -4
  16. data/app/helpers/decidim/conferences/conference_helper.rb +1 -0
  17. data/app/jobs/decidim/conferences/upcoming_conference_notification_job.rb +1 -1
  18. data/app/models/decidim/conference.rb +0 -4
  19. data/app/models/decidim/conferences/registration_type.rb +4 -0
  20. data/app/packs/entrypoints/decidim_conferences_admin.js +0 -1
  21. data/app/packs/src/decidim/conferences/admin/conference_invite_form.js +1 -1
  22. data/app/packs/src/decidim/conferences/admin/conference_speakers.js +1 -1
  23. data/app/packs/src/decidim/conferences/admin/conferences.js +1 -1
  24. data/app/packs/stylesheets/decidim/conferences/conferences.scss +5 -5
  25. data/app/permissions/decidim/conferences/permissions.rb +4 -4
  26. data/app/presenters/decidim/conference_speaker_presenter.rb +0 -4
  27. data/app/presenters/decidim/conferences/admin_log/conference_presenter.rb +0 -1
  28. data/app/presenters/decidim/conferences/conference_stats_presenter.rb +1 -3
  29. data/app/queries/decidim/conferences/admin/conference_speakers.rb +2 -2
  30. data/app/queries/decidim/conferences/conferences_stats_followers_count.rb +14 -0
  31. data/app/queries/decidim/conferences/conferences_stats_participants_count.rb +14 -0
  32. data/app/views/decidim/conferences/admin/{conference_copies → conference_duplicates}/_form.html.erb +3 -3
  33. data/app/views/decidim/conferences/admin/conference_duplicates/new.html.erb +19 -0
  34. data/app/views/decidim/conferences/admin/conference_registrations/index.html.erb +34 -20
  35. data/app/views/decidim/conferences/admin/conference_speakers/index.html.erb +51 -22
  36. data/app/views/decidim/conferences/admin/conference_user_roles/index.html.erb +44 -17
  37. data/app/views/decidim/conferences/admin/conferences/_actions.html.erb +108 -33
  38. data/app/views/decidim/conferences/admin/conferences/_conference_row.html.erb +4 -4
  39. data/app/views/decidim/conferences/admin/conferences/_conferences_thead.html.erb +2 -2
  40. data/app/views/decidim/conferences/admin/conferences/_form.html.erb +115 -40
  41. data/app/views/decidim/conferences/admin/conferences/edit.html.erb +0 -8
  42. data/app/views/decidim/conferences/admin/conferences/index.html.erb +2 -2
  43. data/app/views/decidim/conferences/admin/conferences/manage_trash.html.erb +2 -1
  44. data/app/views/decidim/conferences/admin/media_links/index.html.erb +32 -13
  45. data/app/views/decidim/conferences/admin/partners/index.html.erb +33 -14
  46. data/app/views/decidim/conferences/admin/registration_types/index.html.erb +56 -21
  47. data/app/views/decidim/conferences/conference_program/show.html.erb +1 -1
  48. data/app/views/decidim/conferences/conferences/_conference_hero.html.erb +0 -5
  49. data/app/views/decidim/conferences/conferences/show.html.erb +1 -1
  50. data/app/views/layouts/decidim/diploma.html.erb +2 -2
  51. data/config/assets.rb +2 -2
  52. data/config/locales/ar.yml +1 -10
  53. data/config/locales/bg.yml +1 -13
  54. data/config/locales/bs-BA.yml +0 -5
  55. data/config/locales/ca-IT.yml +24 -12
  56. data/config/locales/ca.yml +24 -12
  57. data/config/locales/cs.yml +23 -11
  58. data/config/locales/de.yml +25 -13
  59. data/config/locales/el.yml +1 -10
  60. data/config/locales/en.yml +24 -12
  61. data/config/locales/es-MX.yml +24 -12
  62. data/config/locales/es-PY.yml +24 -12
  63. data/config/locales/es.yml +24 -12
  64. data/config/locales/eu.yml +24 -12
  65. data/config/locales/fi-plain.yml +23 -11
  66. data/config/locales/fi.yml +23 -11
  67. data/config/locales/fr-CA.yml +24 -15
  68. data/config/locales/fr.yml +24 -15
  69. data/config/locales/ga-IE.yml +2 -6
  70. data/config/locales/gl.yml +1 -10
  71. data/config/locales/hu.yml +1 -10
  72. data/config/locales/id-ID.yml +1 -9
  73. data/config/locales/it.yml +1 -10
  74. data/config/locales/ja.yml +25 -13
  75. data/config/locales/lb.yml +1 -7
  76. data/config/locales/lt.yml +1 -10
  77. data/config/locales/lv.yml +1 -10
  78. data/config/locales/nl.yml +1 -10
  79. data/config/locales/no.yml +1 -10
  80. data/config/locales/pl.yml +1 -13
  81. data/config/locales/pt-BR.yml +1 -13
  82. data/config/locales/pt.yml +1 -10
  83. data/config/locales/ro-RO.yml +3 -10
  84. data/config/locales/sk.yml +1 -10
  85. data/config/locales/sl.yml +0 -5
  86. data/config/locales/sr-CS.yml +0 -5
  87. data/config/locales/sv.yml +16 -13
  88. data/config/locales/tr-TR.yml +1 -10
  89. data/config/locales/zh-CN.yml +1 -10
  90. data/config/locales/zh-TW.yml +1 -10
  91. data/db/migrate/20250605094623_remove_hashtag_column_conferences.rb +7 -0
  92. data/lib/decidim/api/conference_registration_type_type.rb +30 -0
  93. data/lib/decidim/api/conference_speaker_type.rb +12 -0
  94. data/lib/decidim/api/conference_type.rb +15 -3
  95. data/lib/decidim/conferences/admin_engine.rb +1 -1
  96. data/lib/decidim/conferences/api.rb +1 -0
  97. data/lib/decidim/conferences/conference_diploma_pdf.rb +1 -1
  98. data/lib/decidim/conferences/engine.rb +5 -3
  99. data/lib/decidim/conferences/participatory_space.rb +14 -0
  100. data/lib/decidim/conferences/seeds.rb +5 -6
  101. data/lib/decidim/conferences/test/factories.rb +2 -2
  102. data/lib/decidim/conferences/version.rb +1 -1
  103. metadata +19 -15
  104. data/app/controllers/decidim/conferences/admin/conference_copies_controller.rb +0 -35
  105. data/app/views/decidim/conferences/admin/conference_copies/new.html.erb +0 -19
@@ -1,26 +1,30 @@
1
1
  <% add_decidim_page_title(t(".registrations")) %>
2
+
2
3
  <div class="card" id="conference-registrations">
3
4
  <div class="item_show__header">
4
5
  <h1 class="item_show__header-title">
5
6
  <%= t(".registrations") %>
6
7
  <% if allowed_to? :export_conference_registrations, :conference, conference: conference %>
7
- <span class="exports button button__sm button__secondary button--title" data-toggle="export-dropdown">
8
- <%= t "actions.export", scope: "decidim.admin" %>
9
- <%= icon "arrow-down-s-line", class: "dropdown-filter-icon" %>
10
- </span>
11
- <div class="dropdown-pane" id="export-dropdown" data-dropdown data-auto-focus="true" data-close-on-click="true">
12
- <ul class="vertical menu add-components">
8
+ <div class="relative">
9
+ <a class="button button__sm button__transparent-secondary" data-controller="dropdown" data-target="export-dropdown">
10
+ <%= t "actions.export", scope: "decidim.admin" %>
11
+ <%= icon "arrow-down-s-line" %>
12
+ <%= icon "arrow-down-s-line" %>
13
+ </a>
14
+ <ul id="export-dropdown" class="dropdown dropdown__bottom" aria-hidden="true">
13
15
  <% %w(CSV JSON Excel).each do |format| %>
14
- <%= link_to export_conference_conference_registrations_path(conference_id: conference, format:) do %>
15
- <li class="exports--format--<%= format.downcase %> exports--registrations"><%= t("decidim.admin.exports.export_as", name: t("decidim.admin.conferences.exports.registrations"), export_format: format) %></li>
16
- <% end %>
16
+ <li class="dropdown__item">>
17
+ <%= link_to export_conference_conference_registrations_path(conference_id: conference, format:), class: "dropdown__button" do %>
18
+ <%= t("decidim.admin.exports.export_as", name: t("decidim.admin.conferences.exports.registrations"), export_format: format) %>
19
+ <% end %>
20
+ </li>
17
21
  <% end %>
18
22
  </ul>
19
23
  </div>
20
24
  <% end %>
21
25
  </h1>
22
26
  </div>
23
- <div class="table-scroll">
27
+ <div class="table-stacked">
24
28
  <table class="table-list">
25
29
  <thead>
26
30
  <tr>
@@ -28,29 +32,39 @@
28
32
  <th><%= t("models.conference_registration.fields.email", scope: "decidim.conferences") %></th>
29
33
  <th><%= t("models.conference_registration.fields.registration_type", scope: "decidim.conferences") %></th>
30
34
  <th><%= t("models.conference_registration.fields.state", scope: "decidim.conferences") %></th>
31
- <th></th>
35
+ <th><%= t("models.conference_registration.fields.actions", scope: "decidim.conferences") %></th>
32
36
  </tr>
33
37
  </thead>
34
38
  <tbody>
35
39
  <% @conference_registrations.each do |registration| %>
36
40
  <tr data-id="<%= registration.id %>">
37
- <td>
41
+ <td data-label="<%= t("models.conference_registration.fields.name", scope: "decidim.conferences") %>">
38
42
  <%= registration.user.name %>
39
43
  </td>
40
- <td>
44
+ <td data-label="<%= t("models.conference_registration.fields.email", scope: "decidim.conferences") %>">
41
45
  <%= registration.user.email %>
42
46
  </td>
43
- <td>
47
+ <td data-label="<%= t("models.conference_registration.fields.registration_type", scope: "decidim.conferences") %>">
44
48
  <%= translated_attribute(registration.registration_type.title) %>
45
49
  </td>
46
- <td>
50
+ <td data-label="<%= t("models.conference_registration.fields.state", scope: "decidim.conferences") %>">
47
51
  <%= t("models.conference_registration.fields.states.#{registration.confirmed? ? "confirmed" : "pending"}", scope: "decidim.conferences") %>
48
52
  </td>
49
- <td>
50
- <% if allowed_to?(:confirm, :conference_registration, conference_registration: registration) %>
51
- <% if !registration.confirmed? %>
52
- <%= icon_link_to "check-line", confirm_conference_conference_registration_path(current_conference, registration), t("actions.confirm", scope: "decidim.admin"), class: "action-icon--publish", method: :post %>
53
- <% end %>
53
+ <td class="table-list__actions" data-label="<%= t("models.conference_registration.fields.actions", scope: "decidim.conferences") %>">
54
+ <% if allowed_to?(:confirm, :conference_registration, conference_registration: registration) && !registration.confirmed? %>
55
+ <button type="button" data-controller="dropdown" data-target="actions-conference-registration-<%= registration.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: registration.user.name) %>">
56
+ <%= icon "more-fill", class: "text-secondary" %>
57
+ </button>
58
+
59
+ <div class="inline-block relative">
60
+ <ul id="actions-conference-registration-<%= registration.id %>" class="dropdown dropdown__action" aria-hidden="true">
61
+ <li class="dropdown__item">
62
+ <%= link_to confirm_conference_conference_registration_path(current_conference, registration), method: :post, class: "dropdown__button" do %>
63
+ <%= icon "check-line" %> <%= t("actions.confirm", scope: "decidim.admin") %>
64
+ <% end %>
65
+ </li>
66
+ </ul>
67
+ </div>
54
68
  <% end %>
55
69
  </td>
56
70
  </tr>
@@ -25,48 +25,77 @@
25
25
  </div>
26
26
  </div>
27
27
 
28
- <div class="table-scroll">
28
+ <div class="table-stacked">
29
29
  <table class="table-list">
30
30
  <thead>
31
31
  <tr>
32
32
  <th><%= t("models.conference_speaker.fields.full_name", scope: "decidim.admin") %></th>
33
33
  <th><%= t("models.conference_speaker.fields.position", scope: "decidim.admin") %></th>
34
34
  <th><%= t("models.conference_speaker.fields.affiliation", scope: "decidim.admin") %></th>
35
-
36
- <th></th>
35
+ <th><%= t("models.conference_speaker.fields.actions", scope: "decidim.admin") %></th>
37
36
  </tr>
38
37
  </thead>
39
38
  <tbody>
40
39
  <% @conference_speakers.each do |speaker| %>
41
40
  <% speaker_presenter = Decidim::Admin::ConferenceSpeakerPresenter.new(speaker) %>
42
41
  <tr>
43
- <td>
42
+ <td data-label="<%= t("models.conference_speaker.fields.full_name", scope: "decidim.admin") %>">
44
43
  <%= speaker_presenter.name %>
45
44
  </td>
46
- <td>
45
+ <td data-label="<%= t("models.conference_speaker.fields.position", scope: "decidim.admin") %>">
47
46
  <%= translated_attribute(speaker.position) %>
48
47
  </td>
49
- <td>
48
+ <td data-label="<%= t("models.conference_speaker.fields.affiliation", scope: "decidim.admin") %>">
50
49
  <%= translated_attribute(speaker.affiliation) %>
51
50
  </td>
52
- <td class="table-list__actions">
53
- <% if allowed_to? :update, :conference_speaker, speaker: speaker %>
54
- <%= icon_link_to "pencil-line", edit_conference_speaker_path(current_conference, speaker), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
55
- <% end %>
51
+ <td class="table-list__actions" data-label="<%= t("models.conference_speaker.fields.actions", scope: "decidim.admin") %>">
52
+ <button type="button" data-controller="dropdown" data-target="actions-conference-speaker-<%= speaker.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: speaker_presenter.name) %>">
53
+ <%= icon "more-fill", class: "text-secondary" %>
54
+ </button>
55
+
56
+ <div class="inline-block relative">
57
+ <ul id="actions-conference-speaker-<%= speaker.id %>" class="dropdown dropdown__action" aria-hidden="true">
58
+ <% if allowed_to? :update, :conference_speaker, speaker: speaker %>
59
+ <li class="dropdown__item">
60
+ <%= link_to edit_conference_speaker_path(current_conference, speaker), class: "dropdown__button" do %>
61
+ <%= icon "pencil-line" %>
62
+ <%= t("actions.edit", scope: "decidim.admin") %>
63
+ <% end %>
64
+ </li>
65
+
66
+ <hr>
67
+ <% end %>
68
+
69
+ <% if allowed_to? :update, :conference_speaker, speaker: speaker %>
70
+ <% if speaker.published? %>
71
+ <li class="dropdown__item">
72
+ <%= link_to unpublish_conference_speaker_path(current_conference, speaker.id), method: :put, class: "dropdown__button" do %>
73
+ <%= icon "close-circle-line" %>
74
+ <%= t("actions.unpublish", scope: "decidim.admin") %>
75
+ <% end %>
76
+ </li>
77
+ <% else %>
78
+ <li class="dropdown__item">
79
+ <%= link_to publish_conference_speaker_path(current_conference, speaker.id), method: :put, class: "dropdown__button" do %>
80
+ <%= icon "check-line" %>
81
+ <%= t("actions.publish", scope: "decidim.admin") %>
82
+ <% end %>
83
+ </li>
84
+ <% end %>
56
85
 
57
- <% if allowed_to? :update, :conference_speaker, speaker: speaker %>
58
- <% if speaker.published? %>
59
- <%= icon_link_to "close-circle-line", unpublish_conference_speaker_path(current_conference, speaker.id), t("actions.unpublish", scope: "decidim.admin"), method: :put, class: "action-icon--unpublish" %>
60
- <% else %>
61
- <%= icon_link_to "check-line", publish_conference_speaker_path(current_conference, speaker.id), t("actions.publish", scope: "decidim.admin"), method: :put, class: "action-icon--publish" %>
62
- <% end %>
63
- <% else %>
64
- <span class="action-space icon"></span>
65
- <% end %>
86
+ <hr>
87
+ <% end %>
66
88
 
67
- <% if allowed_to? :destroy, :conference_speaker, speaker: speaker %>
68
- <%= icon_link_to "delete-bin-line", conference_speaker_path(current_conference, speaker), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
69
- <% end %>
89
+ <% if allowed_to? :destroy, :conference_speaker, speaker: speaker %>
90
+ <li class="dropdown__item">
91
+ <%= link_to conference_speaker_path(current_conference, speaker), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button" do %>
92
+ <%= icon "delete-bin-line" %>
93
+ <%= t("actions.destroy", scope: "decidim.admin") %>
94
+ <% end %>
95
+ </li>
96
+ <% end %>
97
+ </ul>
98
+ </div>
70
99
  </td>
71
100
  </tr>
72
101
  <% end %>
@@ -9,7 +9,7 @@
9
9
  </h1>
10
10
  </div>
11
11
  <%= admin_filter_selector %>
12
- <div class="table-scroll">
12
+ <div class="table-stacked">
13
13
  <table class="stack table-list">
14
14
  <thead>
15
15
  <tr>
@@ -18,43 +18,70 @@
18
18
  <th><%= sort_link(query, :last_sign_in_at, t("models.user.fields.last_sign_in_at", scope: "decidim.admin"), default_order: :desc) %></th>
19
19
  <th><%= sort_link(query, :invitation_accepted_at, t("models.user.fields.invitation_accepted_at", scope: "decidim.admin"), default_order: :desc) %></th>
20
20
  <th><%= sort_link(query, :role, t("models.conference_user_role.fields.role", scope: "decidim.admin"), default_order: :desc) %></th>
21
- <th></th>
21
+ <th><%= t("models.conference_user_role.fields.actions", scope: "decidim.admin") %></th>
22
22
  </tr>
23
23
  </thead>
24
24
  <tbody>
25
25
  <% filtered_collection.each do |role| %>
26
26
  <tr>
27
- <td>
27
+ <td data-label="<%= t("models.conference_user_role.fields.actions", scope: "decidim.admin") %>">
28
28
  <%= role.user.name %><br>
29
29
  </td>
30
- <td>
30
+ <td data-label="<%= t("models.conference_user_role.fields.email", scope: "decidim.admin") %>">
31
31
  <%= role.user.email %><br>
32
32
  </td>
33
- <td>
33
+ <td data-label="<%= t("models.user.fields.last_sign_in_at", scope: "decidim.admin") %>">
34
34
  <% if role.user.invitation_sent_at %>
35
35
  <%= l role.user.invitation_sent_at, format: :short %>
36
36
  <% end %>
37
37
  </td>
38
- <td>
38
+ <td data-label="<%= t("models.user.fields.invitation_accepted_at", scope: "decidim.admin") %>">
39
39
  <% if role.user.invitation_accepted_at %>
40
40
  <%= l role.user.invitation_accepted_at, format: :short %>
41
41
  <% end %>
42
42
  </td>
43
- <td>
43
+ <td data-label="<%= t("models.conference_user_role.fields.role", scope: "decidim.admin") %>">
44
44
  <%= t("#{role.role}", scope: "decidim.admin.models.conference_user_role.roles") %><br>
45
45
  </td>
46
- <td class="table-list__actions">
47
- <% if allowed_to?(:invite, :conference_user_role, user_role: role) && role.user.invited_to_sign_up? %>
48
- <%= icon_link_to "refresh-line", resend_invitation_conference_user_role_path(current_conference, role), t("actions.resend_invitation", scope: "decidim.admin"), class: "resend-invitation", method: :post %>
49
- <% end %>
46
+ <td class="table-list__actions" data-label="<%= t("models.conference_user_role.fields.actions", scope: "decidim.admin") %>">
47
+ <button type="button" data-controller="dropdown" data-target="actions-conference-user-role-<%= role.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: role.user.name) %>">
48
+ <%= icon "more-fill", class: "text-secondary" %>
49
+ </button>
50
50
 
51
- <% if allowed_to? :update, :conference_user_role, user_role: role %>
52
- <%= icon_link_to "pencil-line", edit_conference_user_role_path(current_conference, role), t("actions.edit", scope: "decidim.admin"), class: "action-icon--edit" %>
53
- <% end %>
51
+ <div class="inline-block relative">
52
+ <ul id="actions-conference-user-role-<%= role.id %>" class="dropdown dropdown__action" aria-hidden="true">
53
+ <% if allowed_to?(:invite, :conference_user_role, user_role: role) && role.user.invited_to_sign_up? %>
54
+ <li class="dropdown__item">
55
+ <%= link_to resend_invitation_conference_user_role_path(current_conference, role), method: :post, class: "dropdown__button" do %>
56
+ <%= icon "refresh-line" %>
57
+ <%= t("actions.resend_invitation", scope: "decidim.admin") %>
58
+ <% end %>
59
+ </li>
54
60
 
55
- <% if allowed_to? :destroy, :conference_user_role, user_role: role %>
56
- <%= icon_link_to "delete-bin-line", conference_user_role_path(current_conference, role), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") } %>
57
- <% end %>
61
+ <hr>
62
+ <% end %>
63
+
64
+ <% if allowed_to? :update, :conference_user_role, user_role: role %>
65
+ <li class="dropdown__item">
66
+ <%= link_to edit_conference_user_role_path(current_conference, role), class: "dropdown__button" do %>
67
+ <%= icon "pencil-line" %>
68
+ <%= t("actions.edit", scope: "decidim.admin") %>
69
+ <% end %>
70
+ </li>
71
+
72
+ <hr>
73
+ <% end %>
74
+
75
+ <% if allowed_to? :destroy, :conference_user_role, user_role: role %>
76
+ <li class="dropdown__item">
77
+ <%= link_to conference_user_role_path(current_conference, role), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.admin") }, class: "dropdown__button dropdown__button--danger" do %>
78
+ <%= icon "delete-bin-line" %>
79
+ <%= t("actions.destroy", scope: "decidim.admin") %>
80
+ <% end %>
81
+ </li>
82
+ <% end %>
83
+ </ul>
84
+ </div>
58
85
  </td>
59
86
  </tr>
60
87
  <% end %>
@@ -1,35 +1,110 @@
1
- <% if view == :deleted %>
2
- <% if allowed_to? :restore, :conference, trashable_deleted_resource: conference %>
3
- <%= icon_link_to "refresh-line", restore_conference_path(conference), t("decidim.admin.actions.restore"), method: :patch, class: "action-icon--restore" %>
4
- <% end %>
5
- <% else %>
6
- <% if allowed_to? :read, :share_token, current_participatory_space: conference %>
7
- <%= icon_link_to "share-line", decidim_admin_conferences.conference_share_tokens_path(conference), t("actions.share_tokens", scope: "decidim.admin"), class: "action-icon--new" %>
8
- <% else %>
9
- <span class="action-space icon"></span>
10
- <% end %>
11
-
12
- <% if allowed_to? :update, :conference, conference: conference %>
13
- <%= icon_link_to "pencil-line", edit_conference_path(conference), t("decidim.admin.actions.configure"), class: "action-icon--new" %>
14
- <% end %>
15
-
16
- <% if allowed_to? :create, :conference, conference: conference %>
17
- <%= icon_link_to "file-copy-line", new_conference_copy_path(conference), t("decidim.admin.actions.duplicate"), class: "action-icon--copy" %>
18
- <% end %>
19
-
20
- <% if allowed_to? :preview, :conference, conference: conference %>
21
- <%= icon_link_to "eye-line", decidim_conferences.conference_path(conference), t("decidim.admin.actions.preview"), class: "action-icon--preview", target: "_blank", data: { "external-link": false } %>
22
- <% end %>
23
-
24
- <% if allowed_to? :read, :moderation, conference: conference %>
25
- <%= icon_link_to "flag-line", moderations_path(conference), t("decidim.admin.actions.moderate"), class: "action-icon--moderate" %>
26
- <% end %>
27
-
28
- <% if allowed_to? :soft_delete, :conference, trashable_deleted_resource: conference %>
29
- <% if conference.published? %>
30
- <%= icon "delete-bin-line", class: "action-icon action-icon--disabled", role: "img", aria_label: t("decidim.admin.actions.soft_delete") %>
1
+ <button type="button" data-controller="dropdown" data-target="actions-conference-<%= conference.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: translated_attribute(conference.title)) %>">
2
+ <%= icon "more-fill", class: "text-secondary" %>
3
+ </button>
4
+
5
+ <div class="inline-block relative">
6
+ <ul id="actions-conference-<%= conference.id %>" class="dropdown dropdown__action" aria-hidden="true">
7
+ <% if view == :deleted %>
8
+ <% if allowed_to? :restore, :conference, trashable_deleted_resource: conference %>
9
+ <li class="dropdown__item">
10
+ <%= link_to restore_conference_path(conference), class: "dropdown__button", method: :patch do %>
11
+ <%= icon "refresh-line" %>
12
+ <%= t("decidim.admin.actions.restore") %>
13
+ <% end %>
14
+ </li>
15
+ <% end %>
31
16
  <% else %>
32
- <%= icon_link_to "delete-bin-line", soft_delete_conference_path(conference), t("decidim.admin.actions.soft_delete"), method: :patch, class: "action-icon--delete", data: { confirm: t("decidim.admin.actions.confirm_delete_conference") } %>
17
+ <% if allowed_to? :update, :conference, conference: conference %>
18
+ <li class="dropdown__item">
19
+ <%= link_to edit_conference_path(conference), class: "dropdown__button" do %>
20
+ <%= icon "pencil-line" %>
21
+ <%= t("decidim.admin.actions.edit") %>
22
+ <% end %>
23
+ </li>
24
+
25
+ <hr>
26
+ <% end %>
27
+
28
+ <% if allowed_to? :create, :conference, conference: conference %>
29
+ <li class="dropdown__item">
30
+ <%= link_to new_conference_duplicate_path(conference), class: "dropdown__button" do %>
31
+ <%= icon "file-copy-line" %>
32
+ <%= t("decidim.admin.actions.duplicate") %>
33
+ <% end %>
34
+ </li>
35
+
36
+ <hr>
37
+ <% end %>
38
+
39
+ <% if allowed_to? :preview, :conference, conference: conference %>
40
+ <li class="dropdown__item">
41
+ <%= link_to decidim_conferences.conference_path(conference), class: "dropdown__button", target: "_blank", data: { "external-link": false } do %>
42
+ <%= icon "eye-line" %>
43
+ <%= t("decidim.admin.actions.preview") %>
44
+ <% end %>
45
+ </li>
46
+ <% end %>
47
+
48
+ <% if allowed_to? :publish, :conference, conference: conference %>
49
+ <li class="dropdown__item">
50
+ <% if conference.published? %>
51
+ <%= link_to conference_publish_path(conference), method: :delete, class: "dropdown__button" do %>
52
+ <%= icon "close-circle-line" %>
53
+ <%= t("actions.unpublish", scope: "decidim.admin") %>
54
+ <% end %>
55
+ <% else %>
56
+ <%= link_to conference_publish_path(conference), method: :post, class: "dropdown__button" do %>
57
+ <%= icon "check-line" %>
58
+ <%= t("actions.publish", scope: "decidim.admin") %>
59
+ <% end %>
60
+ <% end %>
61
+ </li>
62
+ <% end %>
63
+
64
+ <hr>
65
+ <% if allowed_to? :read, :share_token, current_participatory_space: conference %>
66
+ <li class="dropdown__item">
67
+ <%= link_to decidim_admin_conferences.conference_share_tokens_path(conference), class: "dropdown__button" do %>
68
+ <%= icon "share-line" %>
69
+ <%= t("actions.share_tokens", scope: "decidim.admin") %>
70
+ <% end %>
71
+ </li>
72
+
73
+ <hr>
74
+ <% end %>
75
+
76
+ <% if allowed_to? :read, :moderation, conference: conference %>
77
+ <li class="dropdown__item">
78
+ <%= link_to moderations_path(conference), class: "dropdown__button" do %>
79
+ <%= icon "flag-line" %>
80
+ <%= t("decidim.admin.actions.moderate") %>
81
+ <% end %>
82
+ </li>
83
+
84
+ <hr>
85
+ <% end %>
86
+
87
+ <% if allowed_to? :soft_delete, :conference, trashable_deleted_resource: conference %>
88
+ <% if conference.published? %>
89
+ <li class="dropdown__item">
90
+ <div class="dropdown__button-disabled">
91
+ <%= with_tooltip t("tooltips.deleted_conferences_info", scope: "decidim.admin") do %>
92
+ <%= icon "delete-bin-line", class: "text-gray" %>
93
+ <span>
94
+ <%= t("decidim.admin.actions.soft_delete") %>
95
+ </span>
96
+ <% end %>
97
+ </div>
98
+ </li>
99
+ <% else %>
100
+ <li class="dropdown__item">
101
+ <%= link_to soft_delete_conference_path(conference), class: "dropdown__button", method: :patch, data: { confirm: t("decidim.admin.actions.confirm_delete_conference") } do %>
102
+ <%= icon "delete-bin-line" %>
103
+ <%= t("decidim.admin.actions.soft_delete") %>
104
+ <% end %>
105
+ </li>
106
+ <% end %>
107
+ <% end %>
33
108
  <% end %>
34
- <% end %>
35
- <% end %>
109
+ </ul>
110
+ </div>
@@ -1,5 +1,5 @@
1
1
  <tr>
2
- <td>
2
+ <td data-label="<%= t("models.conference.fields.title", scope: "decidim.admin") %>">
3
3
  <% if conference.promoted? %>
4
4
  <%= icon_with_tooltip "star-s-fill", t("models.assembly.fields.promoted", scope: "decidim.admin") %>
5
5
  <% end %>
@@ -12,17 +12,17 @@
12
12
  <%= translated_attribute(conference.title) %>
13
13
  <% end %>
14
14
  </td>
15
- <td>
15
+ <td data-label="<%= t("models.conference.fields.created_at", scope: "decidim.admin") %>">
16
16
  <%= l conference.created_at, format: :short %>
17
17
  </td>
18
- <td class="table-list__state">
18
+ <td class="table-list__state" data-label="<%= t("models.conference.fields.published", scope: "decidim.admin") %>">
19
19
  <% if conference.published? %>
20
20
  <span class="label !text-sm success"><%= t("conferences.index.published", scope: "decidim.admin") %></span>
21
21
  <% else %>
22
22
  <span class="label !text-sm alert"><%= t("conferences.index.unpublished", scope: "decidim.admin") %></span>
23
23
  <% end %>
24
24
  </td>
25
- <td class="table-list__actions">
25
+ <td class="table-list__actions" data-label="<%= t("models.conference.fields.actions", scope: "decidim.admin") %>">
26
26
  <%= render partial: "decidim/conferences/admin/conferences/actions", locals: { conference:, view: } %>
27
27
  </td>
28
28
  </tr>
@@ -2,7 +2,7 @@
2
2
  <tr>
3
3
  <th><%= t("models.conference.fields.title", scope: "decidim.admin") %></th>
4
4
  <th><%= sort_link(query, :created_at, t("models.conference.fields.created_at", scope: "decidim.admin"), default_order: :desc) %></th>
5
- <th class="table-list__actions"><%= t("models.conference.fields.published", scope: "decidim.admin") %></th>
6
- <th></th>
5
+ <th><%= t("models.conference.fields.published", scope: "decidim.admin") %></th>
6
+ <th class="table-list__actions"><%= t("models.conference.fields.actions", scope: "decidim.admin") %></th>
7
7
  </tr>
8
8
  </thead>