decidim-meetings 0.27.8 → 0.28.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (251) hide show
  1. checksums.yaml +4 -4
  2. data/app/cells/decidim/meetings/attending_organizations_list_cell.rb +32 -0
  3. data/app/cells/decidim/meetings/cancel_registration_meeting_button/cancelation_modal.erb +21 -0
  4. data/app/cells/decidim/meetings/cancel_registration_meeting_button/show.erb +10 -13
  5. data/app/cells/decidim/meetings/cancel_registration_meeting_button_cell.rb +2 -2
  6. data/app/cells/decidim/meetings/content_blocks/highlighted_meetings_cell.rb +8 -18
  7. data/app/cells/decidim/meetings/dates_and_map/show.erb +25 -0
  8. data/app/cells/decidim/meetings/dates_and_map/static_map.erb +1 -0
  9. data/app/cells/decidim/meetings/dates_and_map_cell.rb +35 -0
  10. data/app/cells/decidim/meetings/highlighted_meetings_for_component/show.erb +32 -30
  11. data/app/cells/decidim/meetings/highlighted_meetings_for_component_cell.rb +76 -16
  12. data/app/cells/decidim/meetings/join_meeting_button/registration_modal.erb +25 -0
  13. data/app/cells/decidim/meetings/join_meeting_button/remaining_slots.erb +4 -0
  14. data/app/cells/decidim/meetings/join_meeting_button/show.erb +6 -4
  15. data/app/cells/decidim/meetings/join_meeting_button_cell.rb +3 -7
  16. data/app/cells/decidim/meetings/meeting_activity_cell.rb +1 -12
  17. data/app/cells/decidim/meetings/meeting_card_metadata_cell.rb +64 -0
  18. data/app/cells/decidim/meetings/meeting_cell.rb +2 -6
  19. data/app/cells/decidim/meetings/meeting_l/image.erb +5 -0
  20. data/app/cells/decidim/meetings/meeting_l_cell.rb +33 -0
  21. data/app/cells/decidim/meetings/meeting_month/show.erb +33 -0
  22. data/app/cells/decidim/meetings/meeting_month_cell.rb +72 -0
  23. data/app/cells/decidim/meetings/meeting_s_cell.rb +5 -37
  24. data/app/cells/decidim/meetings/meetings_map/show.erb +9 -24
  25. data/app/cells/decidim/meetings/meetings_map_cell.rb +1 -1
  26. data/app/cells/decidim/meetings/online_meeting_cell.rb +1 -0
  27. data/app/cells/decidim/meetings/online_meeting_link/show.erb +18 -41
  28. data/app/cells/decidim/meetings/public_participants_list/show.erb +4 -15
  29. data/app/commands/decidim/meetings/admin/copy_meeting.rb +1 -1
  30. data/app/commands/decidim/meetings/admin/create_meeting.rb +1 -1
  31. data/app/commands/decidim/meetings/admin/invite_user_to_join_meeting.rb +5 -5
  32. data/app/commands/decidim/meetings/admin/publish_meeting.rb +1 -1
  33. data/app/commands/decidim/meetings/admin/unpublish_meeting.rb +1 -1
  34. data/app/commands/decidim/meetings/create_meeting.rb +14 -3
  35. data/app/commands/decidim/meetings/decline_invitation.rb +1 -1
  36. data/app/commands/decidim/meetings/join_meeting.rb +5 -5
  37. data/app/commands/decidim/meetings/update_meeting.rb +13 -3
  38. data/app/controllers/concerns/decidim/meetings/component_filterable.rb +4 -4
  39. data/app/controllers/decidim/meetings/admin/agenda_controller.rb +6 -6
  40. data/app/controllers/decidim/meetings/admin/invites_controller.rb +3 -3
  41. data/app/controllers/decidim/meetings/admin/meeting_closes_controller.rb +2 -4
  42. data/app/controllers/decidim/meetings/admin/meeting_copies_controller.rb +3 -3
  43. data/app/controllers/decidim/meetings/admin/meetings_controller.rb +7 -7
  44. data/app/controllers/decidim/meetings/admin/meetings_poll_controller.rb +4 -4
  45. data/app/controllers/decidim/meetings/admin/registrations_controller.rb +6 -6
  46. data/app/controllers/decidim/meetings/application_controller.rb +11 -0
  47. data/app/controllers/decidim/meetings/calendars_controller.rb +0 -1
  48. data/app/controllers/decidim/meetings/directory/application_controller.rb +12 -0
  49. data/app/controllers/decidim/meetings/directory/meetings_controller.rb +5 -30
  50. data/app/controllers/decidim/meetings/live_events_controller.rb +1 -0
  51. data/app/controllers/decidim/meetings/meeting_closes_controller.rb +2 -3
  52. data/app/controllers/decidim/meetings/meetings_controller.rb +75 -7
  53. data/app/controllers/decidim/meetings/polls/answers_controller.rb +2 -2
  54. data/app/controllers/decidim/meetings/polls/questions_controller.rb +1 -1
  55. data/app/controllers/decidim/meetings/registrations_controller.rb +5 -5
  56. data/app/events/decidim/meetings/close_meeting_event.rb +1 -1
  57. data/app/events/decidim/meetings/meeting_event.rb +1 -1
  58. data/app/events/decidim/meetings/meeting_registration_notification_event.rb +3 -3
  59. data/app/events/decidim/meetings/meeting_registrations_enabled_event.rb +1 -1
  60. data/app/events/decidim/meetings/meeting_registrations_over_percentage_event.rb +1 -1
  61. data/app/events/decidim/meetings/registration_code_validated_event.rb +1 -1
  62. data/app/forms/decidim/meetings/admin/meeting_form.rb +5 -1
  63. data/app/forms/decidim/meetings/admin/meeting_registrations_form.rb +2 -2
  64. data/app/forms/decidim/meetings/admin/validate_registration_code_form.rb +1 -1
  65. data/app/forms/decidim/meetings/base_meeting_form.rb +1 -1
  66. data/app/forms/decidim/meetings/meeting_form.rb +3 -3
  67. data/app/helpers/decidim/meetings/admin/application_helper.rb +1 -0
  68. data/app/helpers/decidim/meetings/application_helper.rb +18 -25
  69. data/app/helpers/decidim/meetings/directory/application_helper.rb +11 -59
  70. data/app/helpers/decidim/meetings/map_helper.rb +2 -9
  71. data/app/helpers/decidim/meetings/meetings_helper.rb +6 -5
  72. data/app/jobs/decidim/meetings/hide_all_created_by_author_job.rb +13 -0
  73. data/app/mailers/decidim/meetings/admin/invite_join_meeting_mailer.rb +1 -1
  74. data/app/mailers/decidim/meetings/registration_mailer.rb +1 -1
  75. data/app/models/decidim/meetings/meeting.rb +11 -32
  76. data/app/models/decidim/meetings/question.rb +1 -1
  77. data/app/packs/entrypoints/decidim_meetings.js +3 -0
  78. data/app/packs/images/decidim/gamification/badges/decidim_gamification_badges_attended_meetings.svg +42 -1
  79. data/app/packs/src/decidim/meetings/admin/agendas.js +3 -4
  80. data/app/packs/src/decidim/meetings/admin/registrations_form.js +12 -4
  81. data/app/packs/src/decidim/meetings/meetings_form.js +1 -1
  82. data/app/packs/src/decidim/meetings/poll.component.js +1 -28
  83. data/app/packs/stylesheets/decidim/meetings/_calendar.scss +47 -0
  84. data/app/packs/stylesheets/decidim/meetings/_item.scss +177 -0
  85. data/app/packs/stylesheets/decidim/meetings/_list.scss +58 -0
  86. data/app/packs/stylesheets/decidim/meetings/_live_event.scss +128 -0
  87. data/app/packs/stylesheets/decidim/meetings/meetings.scss +4 -0
  88. data/app/permissions/decidim/meetings/permissions.rb +15 -12
  89. data/app/presenters/decidim/meetings/admin_log/invite_presenter.rb +2 -2
  90. data/app/presenters/decidim/meetings/admin_log/meeting_presenter.rb +6 -2
  91. data/app/presenters/decidim/meetings/admin_log/questionnaire_presenter.rb +2 -2
  92. data/app/presenters/decidim/meetings/admin_log/value_types/meeting_title_description_presenter.rb +1 -1
  93. data/app/presenters/decidim/meetings/log/resource_presenter.rb +18 -0
  94. data/app/presenters/decidim/meetings/meeting_presenter.rb +8 -2
  95. data/app/services/decidim/meetings/calendar/component_calendar.rb +1 -1
  96. data/app/services/decidim/meetings/close_meeting_reminder_generator.rb +7 -13
  97. data/app/services/decidim/meetings/meeting_iframe_embedder.rb +1 -1
  98. data/app/views/decidim/meetings/_calendar_modal.html.erb +19 -21
  99. data/app/views/decidim/meetings/admin/agenda/_agenda_item.html.erb +12 -12
  100. data/app/views/decidim/meetings/admin/agenda/_agenda_item_child.html.erb +8 -8
  101. data/app/views/decidim/meetings/admin/agenda/_agenda_item_child_template.html.erb +1 -1
  102. data/app/views/decidim/meetings/admin/agenda/_agenda_item_fields.html.erb +3 -3
  103. data/app/views/decidim/meetings/admin/agenda/_form.html.erb +54 -50
  104. data/app/views/decidim/meetings/admin/agenda/edit.html.erb +18 -6
  105. data/app/views/decidim/meetings/admin/agenda/new.html.erb +17 -5
  106. data/app/views/decidim/meetings/admin/invite_join_meeting_mailer/invite.html.erb +11 -2
  107. data/app/views/decidim/meetings/admin/invites/_form.html.erb +38 -28
  108. data/app/views/decidim/meetings/admin/invites/index.html.erb +77 -81
  109. data/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +26 -28
  110. data/app/views/decidim/meetings/admin/meeting_closes/edit.html.erb +17 -5
  111. data/app/views/decidim/meetings/admin/meeting_copies/new.html.erb +17 -6
  112. data/app/views/decidim/meetings/admin/meetings/_form.html.erb +76 -83
  113. data/app/views/decidim/meetings/admin/meetings/_service.html.erb +14 -10
  114. data/app/views/decidim/meetings/admin/meetings/_services.html.erb +9 -5
  115. data/app/views/decidim/meetings/admin/meetings/edit.html.erb +17 -7
  116. data/app/views/decidim/meetings/admin/meetings/index.html.erb +133 -129
  117. data/app/views/decidim/meetings/admin/meetings/new.html.erb +16 -6
  118. data/app/views/decidim/meetings/admin/poll/_answer_option.html.erb +1 -1
  119. data/app/views/decidim/meetings/admin/poll/_answer_option_template.html.erb +1 -1
  120. data/app/views/decidim/meetings/admin/poll/_form.html.erb +17 -32
  121. data/app/views/decidim/meetings/admin/poll/_question.html.erb +81 -75
  122. data/app/views/decidim/meetings/admin/poll/edit.html.erb +28 -8
  123. data/app/views/decidim/meetings/admin/registrations/_form.html.erb +32 -55
  124. data/app/views/decidim/meetings/admin/registrations/edit.html.erb +59 -26
  125. data/app/views/decidim/meetings/directory/meetings/index.html.erb +15 -20
  126. data/app/views/decidim/meetings/directory/meetings/index.js.erb +1 -23
  127. data/app/views/decidim/meetings/layouts/_aside_block.html.erb +8 -0
  128. data/app/views/decidim/meetings/layouts/live_event.html.erb +20 -19
  129. data/app/views/decidim/meetings/live_events/show.html.erb +4 -5
  130. data/app/views/decidim/meetings/meeting_closes/_form.html.erb +3 -10
  131. data/app/views/decidim/meetings/meeting_closes/edit.html.erb +17 -21
  132. data/app/views/decidim/meetings/meetings/_actions.html.erb +6 -0
  133. data/app/views/decidim/meetings/meetings/_add_to_calendar_modal.html.erb +17 -0
  134. data/app/views/decidim/meetings/meetings/_form.html.erb +26 -34
  135. data/app/views/decidim/meetings/meetings/_linked_meetings.html.erb +3 -22
  136. data/app/views/decidim/meetings/meetings/_meeting.html.erb +74 -0
  137. data/app/views/decidim/meetings/meetings/_meeting_agenda.html.erb +28 -26
  138. data/app/views/decidim/meetings/meetings/_meeting_aside.html.erb +98 -0
  139. data/app/views/decidim/meetings/meetings/_meeting_minutes.html.erb +23 -36
  140. data/app/views/decidim/meetings/meetings/edit.html.erb +17 -21
  141. data/app/views/decidim/meetings/meetings/index.html.erb +15 -33
  142. data/app/views/decidim/meetings/meetings/index.js.erb +1 -23
  143. data/app/views/decidim/meetings/meetings/new.html.erb +17 -21
  144. data/app/views/decidim/meetings/meetings/show.html.erb +8 -167
  145. data/app/views/decidim/meetings/polls/answers/_multiple_option.html.erb +9 -13
  146. data/app/views/decidim/meetings/polls/answers/_single_option.html.erb +4 -4
  147. data/app/views/decidim/meetings/polls/answers/create.js.erb +1 -1
  148. data/app/views/decidim/meetings/polls/questions/_index.html.erb +1 -1
  149. data/app/views/decidim/meetings/polls/questions/_index_admin.html.erb +5 -5
  150. data/app/views/decidim/meetings/polls/questions/_published_question.html.erb +9 -11
  151. data/app/views/decidim/meetings/polls/questions/_question.html.erb +3 -3
  152. data/app/views/decidim/meetings/polls/questions/index_admin.js.erb +1 -1
  153. data/app/views/decidim/meetings/shared/_filters.html.erb +20 -0
  154. data/app/views/decidim/meetings/shared/_index.html.erb +24 -0
  155. data/app/views/decidim/meetings/shared/_index.js.erb +16 -0
  156. data/app/views/decidim/meetings/shared/_meetings.html.erb +33 -0
  157. data/app/views/decidim/meetings/shared/_meetings_aside.html.erb +18 -0
  158. data/app/views/decidim/meetings/versions/show.html.erb +14 -4
  159. data/app/views/decidim/participatory_spaces/_conference_venues.html.erb +13 -15
  160. data/config/assets.rb +0 -2
  161. data/config/locales/ar.yml +6 -94
  162. data/config/locales/bg.yml +0 -673
  163. data/config/locales/ca.yml +52 -75
  164. data/config/locales/cs.yml +49 -71
  165. data/config/locales/de.yml +53 -76
  166. data/config/locales/el.yml +48 -51
  167. data/config/locales/en.yml +51 -74
  168. data/config/locales/es-MX.yml +50 -73
  169. data/config/locales/es-PY.yml +48 -71
  170. data/config/locales/es.yml +53 -76
  171. data/config/locales/eu.yml +52 -75
  172. data/config/locales/fi-plain.yml +46 -69
  173. data/config/locales/fi.yml +44 -67
  174. data/config/locales/fr-CA.yml +43 -69
  175. data/config/locales/fr.yml +48 -71
  176. data/config/locales/ga-IE.yml +2 -16
  177. data/config/locales/gl.yml +5 -63
  178. data/config/locales/hu.yml +6 -92
  179. data/config/locales/id-ID.yml +4 -60
  180. data/config/locales/is-IS.yml +1 -22
  181. data/config/locales/it.yml +6 -86
  182. data/config/locales/ja.yml +44 -73
  183. data/config/locales/lb.yml +6 -67
  184. data/config/locales/lt.yml +42 -65
  185. data/config/locales/lv.yml +4 -61
  186. data/config/locales/nl.yml +4 -92
  187. data/config/locales/no.yml +4 -80
  188. data/config/locales/pl.yml +2 -199
  189. data/config/locales/pt-BR.yml +4 -200
  190. data/config/locales/pt.yml +5 -85
  191. data/config/locales/ro-RO.yml +11 -81
  192. data/config/locales/ru.yml +5 -60
  193. data/config/locales/sk.yml +4 -61
  194. data/config/locales/sl.yml +0 -3
  195. data/config/locales/sr-CS.yml +0 -6
  196. data/config/locales/sv.yml +10 -90
  197. data/config/locales/tr-TR.yml +5 -78
  198. data/config/locales/uk.yml +5 -53
  199. data/config/locales/zh-CN.yml +3 -70
  200. data/config/locales/zh-TW.yml +24 -51
  201. data/db/migrate/20201016065302_fix_meetings_registration_terms.rb +1 -1
  202. data/db/migrate/20230427105701_change_types_and_registration_types_on_meetings.rb +49 -0
  203. data/lib/decidim/meetings/admin_engine.rb +2 -2
  204. data/lib/decidim/meetings/component.rb +4 -216
  205. data/lib/decidim/meetings/content_blocks/registry_manager.rb +17 -0
  206. data/lib/decidim/meetings/directory_engine.rb +4 -6
  207. data/lib/decidim/meetings/engine.rb +62 -27
  208. data/lib/decidim/meetings/meeting_serializer.rb +3 -3
  209. data/lib/decidim/meetings/seeds.rb +188 -0
  210. data/lib/decidim/meetings/test/factories.rb +124 -54
  211. data/lib/decidim/meetings/test/notifications_handling.rb +3 -3
  212. data/lib/decidim/meetings/test/translated_event.rb +1 -1
  213. data/lib/decidim/meetings/version.rb +1 -1
  214. metadata +58 -58
  215. data/app/cells/decidim/meetings/content_blocks/highlighted_meetings/elements.erb +0 -16
  216. data/app/cells/decidim/meetings/content_blocks/highlighted_meetings/heading.erb +0 -1
  217. data/app/cells/decidim/meetings/content_blocks/upcoming_meetings/show.erb +0 -26
  218. data/app/cells/decidim/meetings/content_blocks/upcoming_meetings_cell.rb +0 -63
  219. data/app/cells/decidim/meetings/join_meeting_button/registration_confirm.erb +0 -31
  220. data/app/cells/decidim/meetings/meeting_highlighted_list_item/show.erb +0 -21
  221. data/app/cells/decidim/meetings/meeting_highlighted_list_item_cell.rb +0 -10
  222. data/app/cells/decidim/meetings/meeting_list_item/show.erb +0 -14
  223. data/app/cells/decidim/meetings/meeting_list_item_cell.rb +0 -44
  224. data/app/cells/decidim/meetings/meeting_m/address.erb +0 -5
  225. data/app/cells/decidim/meetings/meeting_m/data.erb +0 -2
  226. data/app/cells/decidim/meetings/meeting_m/date.erb +0 -8
  227. data/app/cells/decidim/meetings/meeting_m/footer.erb +0 -9
  228. data/app/cells/decidim/meetings/meeting_m/multiple_dates.erb +0 -17
  229. data/app/cells/decidim/meetings/meeting_m/single_date.erb +0 -9
  230. data/app/cells/decidim/meetings/meeting_m/tags.erb +0 -1
  231. data/app/cells/decidim/meetings/meeting_m_cell.rb +0 -121
  232. data/app/cells/decidim/meetings/meeting_s/show.erb +0 -27
  233. data/app/controllers/concerns/decidim/meetings/filterable.rb +0 -27
  234. data/app/controllers/decidim/meetings/widgets_controller.rb +0 -30
  235. data/app/packs/stylesheets/decidim/meetings/_header.scss +0 -52
  236. data/app/packs/stylesheets/decidim/meetings/_main.scss +0 -178
  237. data/app/packs/stylesheets/decidim/meetings/_meetings.scss +0 -2
  238. data/app/queries/decidim/meetings/admin/invites.rb +0 -60
  239. data/app/views/decidim/meetings/admin/meeting_closes/proposals_picker.html.erb +0 -1
  240. data/app/views/decidim/meetings/directory/meetings/_filters.html.erb +0 -34
  241. data/app/views/decidim/meetings/directory/meetings/_meetings.html.erb +0 -26
  242. data/app/views/decidim/meetings/meeting_closes/proposals_picker.html.erb +0 -1
  243. data/app/views/decidim/meetings/meetings/_calendar_modal.html.erb +0 -26
  244. data/app/views/decidim/meetings/meetings/_filters.html.erb +0 -40
  245. data/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +0 -18
  246. data/app/views/decidim/meetings/meetings/_meetings.html.erb +0 -48
  247. data/app/views/decidim/meetings/versions/index.html.erb +0 -8
  248. data/app/views/decidim/participatory_spaces/_upcoming_meeting_for_card.html.erb +0 -4
  249. data/config/locales/he-IL.yml +0 -1
  250. data/decidim-meetings.gemspec +0 -36
  251. data/lib/decidim/meetings/seeds/city.jpeg +0 -0
@@ -0,0 +1,74 @@
1
+ <%= render layout: "layouts/decidim/shared/layout_item", locals: nav_paths do %>
2
+ <section class="layout-main__section layout-main__heading">
3
+ <h1 class="h2 decorator"><%= present(meeting).title(links: true, html_escape: true ) %></h1>
4
+
5
+ <%= cell "decidim/meetings/dates_and_map", meeting %>
6
+
7
+ <div class="layout-author">
8
+ <%= cell "decidim/author", author_presenter_for(meeting.normalized_author), from: meeting, context_actions: nil, layout: :compact %>
9
+
10
+ <% if meeting.private_meeting? %>
11
+ <span class="<%= meeting_type_badge_css_class("private") %> label">
12
+ <%= t("private_meeting", scope: "decidim.meetings.types") %>
13
+ </span>
14
+ <% end %>
15
+ <% if meeting.private_meeting? and meeting.transparent? %>
16
+ <span class="<%= meeting_type_badge_css_class("transparent") %> label">
17
+ <%= t("transparent", scope: "decidim.meetings.types") %>
18
+ </span>
19
+ <% end %>
20
+ <% if meeting.withdrawn? %>
21
+ <span class="<%= meeting_type_badge_css_class("withdraw") %> label">
22
+ <%= t("withdraw", scope: "decidim.meetings.types") %>
23
+ </span>
24
+ <% end %>
25
+ </div>
26
+ </section>
27
+
28
+ <section class="layout-main__section">
29
+ <div class="editor-content">
30
+ <%= render_meeting_body(@meeting) %>
31
+ </div>
32
+ </section>
33
+
34
+ <section class="layout-main__section">
35
+ <% unless meeting.in_person? || meeting.withdrawn? %>
36
+ <%= cell "decidim/meetings/online_meeting_link", meeting %>
37
+ <% end %>
38
+ </section>
39
+
40
+ <%= cell "decidim/tab_panels", tab_panel_items %>
41
+
42
+ <% if meeting.agenda.present? && meeting.agenda.visible? %>
43
+ <section class="layout-main__section">
44
+ <%= render "meeting_agenda" %>
45
+ </section>
46
+ <% end %>
47
+
48
+ <% if meeting.closed? && meeting.closing_visible? %>
49
+ <section class="layout-main__section">
50
+ <%= render "meeting_minutes" %>
51
+ </section>
52
+ <% end %>
53
+
54
+ <section class="layout-main__section layout-main__buttons" data-buttons>
55
+ <%= render partial: "actions" %>
56
+ </section>
57
+
58
+ <%= pad_iframe_for meeting %>
59
+
60
+ <% content_for :aside do %>
61
+ <%= render partial: "meeting_aside" %>
62
+ <% end %>
63
+
64
+ <% content_for :item_footer do %>
65
+ <%= comments_for meeting %>
66
+ <ul class="metadata__container layout-main__section" data-metadata-footer>
67
+ <%= content_tag :li, resource_reference(meeting), class: "metadata__item" %>
68
+ <%= content_tag :li, resource_version(meeting, versions_path: meeting_version_path(meeting, meeting.versions.count)), class: "metadata__item" %>
69
+ <%= content_tag :li, link_to(t("add_to_calendar", scope: "decidim.meetings.meetings.calendar_modal"), nil, remote: true, data: { dialog_open: "calendarShare_#{meeting.id}" }), class: "metadata__item" %>
70
+ </ul>
71
+ <% end %>
72
+ <% end %>
73
+
74
+ <%= render partial: "add_to_calendar_modal", locals: { ics_url: calendar_meeting_url(meeting), google_url: google_calendar_event_url(meeting), id: meeting.id } %>
@@ -1,31 +1,33 @@
1
- <div class="section agenda-section">
2
- <div class="flex--sbe">
3
- <h2 class="section-heading"><%= translated_attribute(meeting.agenda.title) %></h2>
1
+ <section data-meeting-agenda>
2
+ <div class="meeting__agenda-title">
3
+ <%= icon "list-ordered" %>
4
+ <h2 class="h4"><%= translated_attribute(meeting.agenda.title) %></h2>
4
5
  </div>
5
- <div class="card">
6
- <div class="card__content scroll">
7
- <% agenda_items_times = calculate_start_and_end_time_of_agenda_items(meeting.agenda.agenda_items.first_class, meeting) %>
8
- <% meeting.agenda.agenda_items.first_class.each_with_index do |agenda_item, index| %>
9
- <h5 class="agenda-item--title heading5">
10
- <strong><%= translated_attribute(agenda_item.title) %></strong>&nbsp;
11
- <span class="text-small"><%= display_duration_agenda_items(agenda_item.id, index, agenda_items_times) %></span>
12
- </h5>
13
- <hr class="reset m-none mb-s">
14
- <p><%= decidim_sanitize_translated(agenda_item.description).html_safe %></p>
15
6
 
16
- <% if agenda_item.agenda_item_children.presence %>
17
- <% parent_start_time = agenda_items_times[index][:start_time] %>
18
- <% agenda_item_children_times = calculate_start_and_end_time_of_agenda_items(agenda_item.agenda_item_children, meeting, parent_start_time) %>
7
+ <% agenda_items_times = calculate_start_and_end_time_of_agenda_items(meeting.agenda.agenda_items.first_class, meeting) %>
8
+ <% meeting.agenda.agenda_items.first_class.each_with_index do |agenda_item, index| %>
9
+ <div class="meeting__agenda-item">
10
+ <h3 class="meeting__agenda-item__title">
11
+ <span><%= translated_attribute(agenda_item.title) %></span>
12
+ <span><%= display_duration_agenda_items(agenda_item.id, index, agenda_items_times) %></span>
13
+ </h3>
19
14
 
20
- <% agenda_item.agenda_item_children.each_with_index do |agenda_item_child, index_child| %>
21
- <h6 class="heading6">
22
- <strong><%= translated_attribute(agenda_item_child.title) %></strong>&nbsp;
23
- <span class="text-small"><%= display_duration_agenda_items(agenda_item_child.id, index_child, agenda_item_children_times) %></span>
24
- </h6>
25
- <p><%= decidim_sanitize_translated(agenda_item_child.description).html_safe %></p>
26
- <% end %>
27
- <% end %>
15
+ <div class="meeting__agenda-item__description editor-content"><%= decidim_sanitize(translated_attribute(agenda_item.description)).html_safe %></div>
16
+
17
+ <% if agenda_item.agenda_item_children.presence %>
18
+ <% parent_start_time = agenda_items_times[index][:start_time] %>
19
+ <% agenda_item_children_times = calculate_start_and_end_time_of_agenda_items(agenda_item.agenda_item_children, meeting, parent_start_time) %>
20
+
21
+ <% agenda_item.agenda_item_children.each_with_index do |agenda_item_child, index_child| %>
22
+ <div class="meeting__agenda-subitem">
23
+ <h4 class="meeting__agenda-item__title">
24
+ <span><%= translated_attribute(agenda_item_child.title) %></span>
25
+ <span><%= display_duration_agenda_items(agenda_item_child.id, index_child, agenda_item_children_times) %></span>
26
+ </h4>
27
+ <div class="meeting__agenda-item__description"><%= decidim_sanitize(translated_attribute(agenda_item_child.description)).html_safe %></div>
28
+ </div>
28
29
  <% end %>
29
- </div>
30
+ <% end %>
30
31
  </div>
31
- </div>
32
+ <% end %>
33
+ </section>
@@ -0,0 +1,98 @@
1
+ <% if meeting.can_be_joined_by?(current_user) || meeting.on_different_platform? %>
2
+ <section class="layout-aside__section layout-aside__buttons">
3
+ <%= cell "decidim/meetings/join_meeting_button", meeting, show_remaining_slots: true %>
4
+ </section>
5
+ <% end %>
6
+
7
+ <% if allowed_to?(:update, :meeting, meeting: meeting) || allowed_to?(:close, :meeting, meeting: meeting) || meeting.withdrawable_by?(current_user) %>
8
+ <section class="layout-aside__section layout-aside__buttons">
9
+ <% if allowed_to?(:update, :meeting, meeting: meeting) %>
10
+ <%= link_to edit_meeting_path(meeting), class: "button button__sm button__transparent-secondary w-full" do %>
11
+ <span><%= t("edit_meeting", scope: "decidim.meetings.meetings.meeting") %></span>
12
+ <%= icon "pencil-line" %>
13
+ <% end %>
14
+ <% end %>
15
+
16
+ <% if allowed_to?(:close, :meeting, meeting: meeting) %>
17
+ <% caption = meeting.closed? ? t("edit_close_meeting", scope: "decidim.meetings.meetings.meeting") : t("close_meeting", scope: "decidim.meetings.meetings.meeting") %>
18
+
19
+ <%= link_to edit_meeting_meeting_close_path(meeting_id: meeting.id, id: meeting.id), class: "button button__sm button__transparent-secondary w-full" do %>
20
+ <span><%= caption %></span>
21
+ <%= icon "pencil-line" %>
22
+ <% end %>
23
+ <% end %>
24
+
25
+ <% if meeting.withdrawable_by?(current_user) %>
26
+ <%= action_authorized_link_to(
27
+ :withdraw,
28
+ withdraw_meeting_path(meeting),
29
+ method: :put,
30
+ class: "button button__sm button__transparent-secondary w-full",
31
+ title: t("withdraw_btn_hint", scope: "decidim.meetings.meetings.show"),
32
+ data: { confirm: t("withdraw_confirmation_html", scope: "decidim.meetings.meetings.show") }
33
+ ) do %>
34
+ <span><%= t("withdraw_meeting", scope:"decidim.meetings.meetings.show") %></span>
35
+ <%= icon "pencil-line" %>
36
+ <% end %>
37
+ <% end %>
38
+ </section>
39
+ <% end %>
40
+
41
+ <% if (meeting.closed? && meeting.closing_visible?) || (registration.present? && registration.meeting.component.settings.registration_code_enabled) || (meeting.services.any?) %>
42
+ <section class="layout-aside__section layout-aside__buttons">
43
+ <% if meeting.closed? && meeting.closing_visible? %>
44
+ <% if meeting.has_contributions? %>
45
+ <%= render layout: "decidim/meetings/layouts/aside_block", locals: { emoji: "add-box-line" } do %>
46
+ <h3 class="meeting__aside-block__title"><%= t("contributions", scope: "decidim.meetings.meetings.show") %></h3>
47
+ <div class="meeting__aside-block__large"><%= meeting.contributions_count %></div>
48
+ <% end %>
49
+ <% end %>
50
+
51
+ <% if meeting.has_attendees? %>
52
+ <%= render layout: "decidim/meetings/layouts/aside_block", locals: { emoji: "group-line" } do %>
53
+ <h3 class="meeting__aside-block__title"><%= t("attendees", scope: "decidim.meetings.meetings.show") %></h3>
54
+ <div class="meeting__aside-block__large"><%= meeting.attendees_count %></div>
55
+ <% end %>
56
+ <% end %>
57
+
58
+ <% if meeting.attending_organizations.present? %>
59
+ <%= render layout: "decidim/meetings/layouts/aside_block", locals: { emoji: "community-line" } do %>
60
+ <h3 class="meeting__aside-block__title"><%= t("organizations", scope: "decidim.meetings.meetings.show") %></h3>
61
+ <ul class="meeting__aside-block__list">
62
+ <% meeting.attending_organizations.split("\n").each do |organizations| %>
63
+ <li><%= organizations %></li>
64
+ <% end %>
65
+ </ul>
66
+ <% end %>
67
+ <% end %>
68
+ <% end %>
69
+
70
+ <% if registration.present? && registration.meeting.component.settings.registration_code_enabled %>
71
+ <%= render layout: "decidim/meetings/layouts/aside_block", locals: { emoji: "coupon-line" } do %>
72
+ <h3 class="meeting__aside-block__title"><%= registration_code_help_text %></h3>
73
+ <div class="meeting__aside-block__large"><%= registration.code %></div>
74
+ <% if registration.validated? %>
75
+ <div class="label success"><%= t("validated", scope: "decidim.meetings.meetings.show.registration_state") %></div>
76
+ <% else %>
77
+ <div class="label warning"><%= t("validation_pending", scope: "decidim.meetings.meetings.show.registration_state") %></div>
78
+ <% end %>
79
+ <% end %>
80
+ <% end %>
81
+
82
+ <% if meeting.services.any? %>
83
+ <% meeting.services.each do |service| %>
84
+ <%= render layout: "decidim/meetings/layouts/aside_block", locals: { emoji: "star-line" } do %>
85
+ <h3 class="meeting__aside-block__title"><%= translated_attribute(service["title"]) %></h3>
86
+ <div class="meeting__aside-block__text"><%= translated_attribute(service["description"]) %></div>
87
+ <% end %>
88
+ <% end %>
89
+ <% end %>
90
+ </section>
91
+ <% end %>
92
+
93
+ <section class="layout-aside__section actions__secondary">
94
+ <%= cell "decidim/meetings/cancel_registration_meeting_button", meeting %>
95
+ <%= follow_button_for(meeting) %>
96
+ <%= cell "decidim/share_button", nil %>
97
+ <%= cell "decidim/report_button", meeting %>
98
+ </section>
@@ -1,37 +1,24 @@
1
- <div class="section minutes-section">
2
- <% if meeting.video_url.presence || meeting.audio_url.presence %>
3
- <div class="section">
4
- <h4 class="section-heading"><%= t(".related_information") %></h4>
5
- <div class="card card--list">
6
- <% if meeting.video_url.presence %>
7
- <div class="card--list__item">
8
- <div class="card--list__text">
9
- <div>
10
- <%= link_to decidim_url_escape(meeting.video_url), decidim_html_escape(meeting.video_url), target: "_blank", rel: "noopener" %>
11
- </div>
12
- </div>
13
- <div class="card--list__data" aria-hidden="true">
14
- <%= link_to decidim_url_escape(meeting.video_url), target: "_blank", class: "card--list__data__icon", rel: "noopener" do %>
15
- <%= icon "external-link", role: "img", "aria-hidden": true %>
16
- <% end %>
17
- </div>
18
- </div>
19
- <% end %>
20
- <% if meeting.audio_url.presence %>
21
- <div class="card--list__item">
22
- <div class="card--list__text">
23
- <div>
24
- <%= link_to decidim_url_escape(meeting.audio_url), decidim_html_escape(meeting.audio_url), target: "_blank", rel: "noopener" %>
25
- </div>
26
- </div>
27
- <div class="card--list__data" aria-hidden="true">
28
- <%= link_to decidim_url_escape(meeting.audio_url), target: "_blank", class: "card--list__data__icon", rel: "noopener" do %>
29
- <%= icon "external-link", role: "img", "aria-hidden": true %>
30
- <% end %>
31
- </div>
32
- </div>
33
- <% end %>
1
+ <section>
2
+ <div class="meeting__agenda-title">
3
+ <%= icon "bill-line" %>
4
+ <h2 class="h4"><%= t("meeting_minutes", scope: "decidim.meetings.meetings.show") %></h2>
5
+ </div>
6
+
7
+ <div class="meeting__agenda-item">
8
+ <div class="meeting__agenda-item__description editor-content mb-4"><%= decidim_sanitize_editor translated_attribute meeting.closing_report %></div>
9
+
10
+ <% if meeting.video_url.presence %>
11
+ <div class="flex items-center gap-2 mt-2">
12
+ <%= icon "video-line", class: "w-4 h-4 text-tertiary fill-current" %>
13
+ <%= link_to decidim_url_escape(meeting.video_url), decidim_html_escape(meeting.video_url), target: "_blank", rel: "noopener" %>
34
14
  </div>
35
- </div>
36
- <% end %>
37
- </div>
15
+ <% end %>
16
+
17
+ <% if meeting.audio_url.presence %>
18
+ <div class="flex items-center gap-2 mt-2">
19
+ <%= icon "headphone-line", class: "w-4 h-4 text-tertiary fill-current" %>
20
+ <%= link_to decidim_url_escape(meeting.audio_url), decidim_html_escape(meeting.audio_url), target: "_blank", rel: "noopener" %>
21
+ </div>
22
+ <% end %>
23
+ </div>
24
+ </section>
@@ -1,25 +1,21 @@
1
- <div class="row">
2
- <div class="columns large-3">
3
- <%= link_to :back do %>
4
- <%= icon "chevron-left", class: "icon--small", role: "img", "aria--hidden": true %>
5
- <%= t(".back") %>
6
- <% end %>
1
+ <%= render layout: "layouts/decidim/shared/layout_center" do %>
2
+ <div class="text-center py-10">
3
+ <h1 class="title-decorator inline-block text-left">
4
+ <%= t("title", scope: "decidim.meetings.meetings.edit") %>
5
+ </h1>
7
6
  </div>
8
7
 
9
- <div class="columns large-6">
10
- <h2 class="section-heading"><%= t(".title") %></h2>
11
- <div class="card">
12
- <div class="card__content">
13
- <%= decidim_form_for(@form, html: { class: "meetings_form edit_meeting" }) do |f| %>
14
- <%= render partial: "form", object: f %>
15
-
16
- <div class="actions">
17
- <%= f.submit t(".update"), class: "button expanded", data: { disable: true } %>
18
- </div>
19
- <% end %>
20
- </div>
8
+ <%= decidim_form_for(@form, html: { class: "meetings_form new_meeting" }) do |f| %>
9
+ <div class="form__wrapper">
10
+ <%= render partial: "form", object: f %>
21
11
  </div>
22
- </div>
23
12
 
24
- <div class="columns large-3"></div>
25
- </div>
13
+ <div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
14
+ <%= link_to :back, class: "button button__sm md:button__lg button__text-secondary" do %>
15
+ <%= icon "arrow-left-line" %>
16
+ <%= t("back", scope: "decidim.meetings.meetings.edit") %>
17
+ <% end %>
18
+ <%= f.submit t("update", scope: "decidim.meetings.meetings.edit"), class: "button button__sm md:button__lg button__secondary", data: { disable: true } %>
19
+ </div>
20
+ <% end %>
21
+ <% end %>
@@ -1,33 +1,15 @@
1
- <%= render partial: "decidim/shared/component_announcement" %>
2
-
3
- <% if current_component.settings.maps_enabled? && search.result.not_online.exists? %>
4
- <%= cell "decidim/meetings/meetings_map", search.result %>
5
- <% end %>
6
-
7
- <div class="row columns">
8
- <div class="title-action">
9
- <h2 id="meetings-count" class="title-action__title section-heading">
10
- <%= render partial: "count" %>
11
- </h2>
12
-
13
- <% if try(:component_settings) && component_settings&.creation_enabled_for_participants? && current_component.participatory_space.can_participate?(current_user) %>
14
- <%= action_authorized_link_to :create, new_meeting_path, class: "title-action__action button small", data: { "redirect_url" => new_meeting_path } do %>
15
- <%= t("new_meeting", scope: "decidim.meetings.meetings.index") %>
16
- <%= icon "plus", role: "img", "aria-hidden": true %>
17
- <% end %>
18
- <% end %>
19
- </div>
20
- </div>
21
-
22
- <div class="row">
23
- <div class="columns mediumlarge-4 large-3">
24
- <%= render partial: "filters_small_view" %>
25
- <div class="card card--secondary show-for-mediumlarge">
26
- <%= render partial: "filters" %>
27
- </div>
28
- </div>
29
- <div id="meetings" class="columns mediumlarge-8 large-9" aria-live="polite">
30
-
31
- <%= render partial: "meetings" %>
32
- </div>
33
- </div>
1
+ <%= render partial: "decidim/meetings/shared/index", locals: {
2
+ display_map: Decidim::Map.available?(:geocoding, :dynamic) && current_component.settings.maps_enabled? && search.result.not_online.exists?,
3
+ display_announcement: true,
4
+ component: current_component,
5
+ search_variable: :search_text_cont,
6
+ filter_options: {
7
+ date: !@forced_past_meetings,
8
+ type: true,
9
+ scopes: current_component.has_subscopes?,
10
+ categories: current_component.categories.any?,
11
+ origin: component_settings.creation_enabled_for_participants?,
12
+ space_type: false,
13
+ activity: current_user.present?
14
+ }
15
+ } %>
@@ -1,23 +1 @@
1
- var $meetings = $('#meetings');
2
- var $meetingsCount = $('#meetings-count');
3
-
4
- // make sure that calendar modal will use the updated filter values
5
- var $calendarShare = $('#calendarShare');
6
- $calendarShare.remove();
7
-
8
- $meetings.html('<%= j(render partial: "meetings").strip.html_safe %>');
9
- $meetingsCount.html('<%= j(render partial: "count").strip.html_safe %>');
10
-
11
- var $dropdownMenu = $('.dropdown.menu', $meetings);
12
- $dropdownMenu.foundation();
13
-
14
- var markerData = JSON.parse('<%= escape_javascript meetings_data_for_map(search.result.select(&:geocoded_and_valid?)).to_json.html_safe %>');
15
-
16
- $("#calendarShare").foundation(); // initialize export calendar on the page
17
-
18
- var $map = $("#map");
19
- var controller = $map.data("map-controller");
20
- if (controller) {
21
- controller.clearMarkers();
22
- controller.addMarkers(markerData);
23
- }
1
+ <%= render partial: "decidim/meetings/shared/index", formats: [:js], locals: { component: current_component } %>
@@ -1,25 +1,21 @@
1
- <div class="row">
2
- <div class="columns large-3">
3
- <%= link_to :back do %>
4
- <%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
5
- <%= t(".back") %>
6
- <% end %>
1
+ <%= render layout: "layouts/decidim/shared/layout_center" do %>
2
+ <div class="text-center py-10">
3
+ <h1 class="title-decorator inline-block text-left">
4
+ <%= t("title", scope: "decidim.meetings.meetings.new") %>
5
+ </h1>
7
6
  </div>
8
7
 
9
- <div class="columns large-6">
10
- <h2 class="section-heading"><%= t(".title") %></h2>
11
- <div class="card">
12
- <div class="card__content">
13
- <%= decidim_form_for(@form, html: { class: "meetings_form new_meeting" }) do |f| %>
14
- <%= render partial: "form", object: f %>
15
-
16
- <div class="actions">
17
- <%= f.submit t(".create"), class: "button expanded", data: { disable: true } %>
18
- </div>
19
- <% end %>
20
- </div>
8
+ <%= decidim_form_for(@form, html: { class: "meetings_form new_meeting" }) do |f| %>
9
+ <div class="form__wrapper">
10
+ <%= render partial: "form", object: f %>
21
11
  </div>
22
- </div>
23
12
 
24
- <div class="columns large-3"></div>
25
- </div>
13
+ <div class="form__wrapper-block flex-col-reverse md:flex-row justify-between">
14
+ <%= link_to :back, class: "button button__sm md:button__lg button__text-secondary" do %>
15
+ <%= icon "arrow-left-line" %>
16
+ <%= t("back", scope: "decidim.meetings.meetings.new") %>
17
+ <% end %>
18
+ <%= f.submit t("create", scope: "decidim.meetings.meetings.new"), class: "button button__sm md:button__lg button__secondary", data: { disable: true } %>
19
+ </div>
20
+ <% end %>
21
+ <% end %>