decidim-meetings 0.21.0 → 0.23.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/config/decidim_meetings_manifest.js +2 -0
- data/app/assets/images/decidim/gamification/badges/attended_meetings.svg +1 -106
- data/app/assets/images/decidim/meetings/icon.svg +1 -5
- data/app/assets/javascripts/decidim/meetings/admin/destroy_meeting_alert.js.es6 +16 -0
- data/app/assets/javascripts/decidim/meetings/admin/meetings_form.js.es6 +3 -0
- data/app/assets/javascripts/decidim/meetings/meetings_form.js.es6 +9 -0
- data/app/cells/decidim/meetings/content_blocks/upcoming_events_cell.rb +2 -1
- data/app/cells/decidim/meetings/highlighted_meetings_for_component/show.erb +7 -7
- data/app/cells/decidim/meetings/highlighted_meetings_for_component_cell.rb +1 -1
- data/app/cells/decidim/meetings/join_meeting_button/show.erb +2 -2
- data/app/cells/decidim/meetings/meeting_cell.rb +1 -0
- data/app/cells/decidim/meetings/meeting_list_item/show.erb +3 -3
- data/app/cells/decidim/meetings/meeting_list_item_cell.rb +1 -1
- data/app/cells/decidim/meetings/meeting_m/date.erb +1 -1
- data/app/cells/decidim/meetings/meeting_m/footer.erb +1 -1
- data/app/cells/decidim/meetings/meeting_m/multiple_dates.erb +1 -1
- data/app/cells/decidim/meetings/meeting_m_cell.rb +9 -1
- data/app/cells/decidim/meetings/meeting_s/show.erb +6 -6
- data/app/cells/decidim/meetings/meetings_map/show.erb +0 -2
- data/app/cells/decidim/meetings/meetings_map_cell.rb +3 -1
- data/app/commands/decidim/meetings/admin/close_meeting.rb +1 -2
- data/app/commands/decidim/meetings/admin/copy_meeting.rb +38 -28
- data/app/commands/decidim/meetings/admin/create_meeting.rb +36 -24
- data/app/commands/decidim/meetings/admin/destroy_meeting.rb +6 -1
- data/app/commands/decidim/meetings/admin/invite_user_to_join_meeting.rb +2 -1
- data/app/commands/decidim/meetings/admin/update_meeting.rb +9 -3
- data/app/commands/decidim/meetings/create_meeting.rb +78 -0
- data/app/commands/decidim/meetings/update_meeting.rb +94 -0
- data/app/controllers/decidim/meetings/admin/application_controller.rb +1 -1
- data/app/controllers/decidim/meetings/admin/meeting_closes_controller.rb +2 -0
- data/app/controllers/decidim/meetings/admin/meetings_controller.rb +21 -7
- data/app/controllers/decidim/meetings/admin/registration_form_controller.rb +4 -0
- data/app/controllers/decidim/meetings/meetings_controller.rb +76 -13
- data/app/controllers/decidim/meetings/registrations_controller.rb +1 -1
- data/app/controllers/decidim/meetings/versions_controller.rb +14 -0
- data/app/controllers/decidim/meetings/{meeting_widgets_controller.rb → widgets_controller.rb} +2 -2
- data/app/forms/decidim/meetings/admin/close_meeting_form.rb +7 -1
- data/app/forms/decidim/meetings/admin/meeting_copy_form.rb +2 -8
- data/app/forms/decidim/meetings/admin/meeting_form.rb +24 -23
- data/app/forms/decidim/meetings/meeting_form.rb +78 -0
- data/app/helpers/decidim/meetings/admin/application_helper.rb +1 -6
- data/app/helpers/decidim/meetings/application_helper.rb +26 -0
- data/app/helpers/decidim/meetings/map_helper.rb +2 -1
- data/app/helpers/decidim/meetings/meetings_helper.rb +13 -1
- data/app/models/decidim/meetings/agenda.rb +3 -0
- data/app/models/decidim/meetings/agenda_item.rb +3 -0
- data/app/models/decidim/meetings/meeting.rb +79 -23
- data/app/models/decidim/meetings/minutes.rb +3 -0
- data/app/models/decidim/meetings/service.rb +13 -0
- data/app/permissions/decidim/meetings/admin/permissions.rb +2 -0
- data/app/permissions/decidim/meetings/permissions.rb +20 -0
- data/app/presenters/decidim/meetings/admin_log/invite_presenter.rb +5 -1
- data/app/presenters/decidim/meetings/admin_log/meeting_presenter.rb +3 -4
- data/app/presenters/decidim/meetings/meeting_presenter.rb +21 -6
- data/app/presenters/decidim/meetings/official_author_presenter.rb +14 -0
- data/app/queries/decidim/meetings/filtered_meetings.rb +1 -1
- data/app/queries/decidim/meetings/metrics/meetings_metric_manage.rb +2 -8
- data/app/services/decidim/meetings/calendar/meeting_to_event.rb +1 -1
- data/app/services/decidim/meetings/diff_renderer.rb +21 -0
- data/app/services/decidim/meetings/meeting_search.rb +3 -25
- data/app/types/decidim/meetings/meeting_type.rb +1 -1
- data/app/views/decidim/meetings/_calendar_modal.html.erb +4 -4
- data/app/views/decidim/meetings/admin/invites/index.html.erb +2 -2
- data/app/views/decidim/meetings/admin/meeting_closes/_form.html.erb +1 -6
- data/app/views/decidim/meetings/admin/meeting_closes/proposals_picker.html.erb +1 -0
- data/app/views/decidim/meetings/admin/meeting_copies/_form.html.erb +2 -9
- data/app/views/decidim/meetings/admin/meetings/_form.html.erb +5 -12
- data/app/views/decidim/meetings/admin/meetings/edit.html.erb +1 -1
- data/app/views/decidim/meetings/admin/meetings/index.html.erb +22 -3
- data/app/views/decidim/meetings/admin/registrations/_form.html.erb +4 -0
- data/app/views/decidim/meetings/directory/meetings/index.html.erb +5 -3
- data/app/views/decidim/meetings/directory/meetings/index.js.erb +11 -4
- data/app/views/decidim/meetings/meetings/_count.html.erb +1 -0
- data/app/views/decidim/meetings/meetings/_filters.html.erb +13 -7
- data/app/views/decidim/meetings/meetings/_form.html.erb +51 -0
- data/app/views/decidim/meetings/meetings/_linked_meetings.html.erb +2 -2
- data/app/views/decidim/meetings/meetings/_meeting_agenda.html.erb +2 -2
- data/app/views/decidim/meetings/meetings/_meeting_minutes.html.erb +8 -8
- data/app/views/decidim/meetings/meetings/edit.html.erb +25 -0
- data/app/views/decidim/meetings/meetings/index.html.erb +16 -1
- data/app/views/decidim/meetings/meetings/index.js.erb +13 -4
- data/app/views/decidim/meetings/meetings/new.html.erb +25 -0
- data/app/views/decidim/meetings/meetings/show.html.erb +32 -8
- data/app/views/decidim/meetings/versions/index.html.erb +8 -0
- data/app/views/decidim/meetings/versions/show.html.erb +10 -0
- data/app/views/decidim/participatory_processes/participatory_process_groups/_meeting.html.erb +2 -2
- data/app/views/decidim/participatory_spaces/_conference_venues.html.erb +1 -1
- data/app/views/decidim/participatory_spaces/_upcoming_meeting_for_card.html.erb +1 -3
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +0 -8
- data/config/locales/bg-BG.yml +21 -0
- data/config/locales/bg.yml +21 -0
- data/config/locales/ca.yml +60 -7
- data/config/locales/cs.yml +68 -9
- data/config/locales/da-DK.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +128 -71
- data/config/locales/el.yml +448 -0
- data/config/locales/en.yml +61 -8
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +60 -7
- data/config/locales/es-PY.yml +61 -8
- data/config/locales/es.yml +61 -8
- data/config/locales/et-EE.yml +1 -0
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +0 -8
- data/config/locales/fi-plain.yml +60 -7
- data/config/locales/fi.yml +183 -130
- data/config/locales/fr-CA.yml +504 -0
- data/config/locales/fr.yml +60 -7
- data/config/locales/ga-IE.yml +1 -0
- data/config/locales/gl.yml +3 -7
- data/config/locales/hr-HR.yml +1 -0
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +11 -7
- data/config/locales/id-ID.yml +0 -8
- data/config/locales/is-IS.yml +0 -9
- data/config/locales/is.yml +228 -0
- data/config/locales/it.yml +58 -7
- data/config/locales/ja-JP.yml +494 -0
- data/config/locales/ja.yml +496 -0
- data/config/locales/ko-KR.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt-LT.yml +1 -0
- data/config/locales/lt.yml +1 -0
- data/config/locales/lv.yml +452 -0
- data/config/locales/mt-MT.yml +1 -0
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +52 -7
- data/config/locales/no.yml +35 -9
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +210 -147
- data/config/locales/pt-BR.yml +2 -10
- data/config/locales/pt.yml +232 -177
- data/config/locales/ro-RO.yml +500 -0
- data/config/locales/ru.yml +0 -8
- data/config/locales/si-LK.yml +1 -0
- data/config/locales/sk-SK.yml +463 -0
- data/config/locales/sk.yml +458 -0
- data/config/locales/sl.yml +33 -0
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sr-CS.yml +13 -0
- data/config/locales/sv.yml +67 -13
- data/config/locales/sw-KE.yml +1 -0
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +154 -98
- data/config/locales/uk.yml +0 -9
- data/config/locales/vi-VN.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +496 -0
- data/config/locales/zh-TW.yml +1 -0
- data/db/migrate/20200320105922_index_foreign_keys_in_decidim_meetings_registrations.rb +7 -0
- data/db/migrate/20200526110940_add_author_to_meetings.rb +30 -0
- data/db/migrate/20200702123209_create_meeting_services_table.rb +13 -0
- data/db/migrate/20200702123210_move_meeting_services_to_own_model.rb +31 -0
- data/db/migrate/20200827153856_add_commentable_counter_cache_to_meetings.rb +9 -0
- data/db/migrate/20201016065302_fix_meetings_registration_terms.rb +29 -0
- data/db/migrate/20201111133246_add_salt_to_decidim_meetings.rb +8 -0
- data/lib/decidim/api/services_interface.rb +1 -7
- data/lib/decidim/meetings/admin_engine.rb +5 -1
- data/lib/decidim/meetings/component.rb +63 -11
- data/lib/decidim/meetings/engine.rb +3 -6
- data/lib/decidim/meetings/meeting_serializer.rb +1 -1
- data/lib/decidim/meetings/seeds/city.jpeg +0 -0
- data/lib/decidim/meetings/test/factories.rb +46 -8
- data/lib/decidim/meetings/version.rb +1 -1
- data/lib/tasks/decidim_meetings.rake +16 -0
- metadata +88 -23
- data/app/presenters/decidim/meetings/admin_log/value_types/organizer_presenter.rb +0 -70
@@ -18,9 +18,10 @@
|
|
18
18
|
<th><%= t("models.meeting.fields.start_time", scope: "decidim.meetings") %></th>
|
19
19
|
<th><%= t("models.meeting.fields.end_time", scope: "decidim.meetings") %></th>
|
20
20
|
<th><%= t("models.meeting.fields.closed", scope: "decidim.meetings") %></th>
|
21
|
-
<% if Decidim.
|
21
|
+
<% if Decidim::Map.available?(:static, :geocoding) %>
|
22
22
|
<th><%= t("models.meeting.fields.map", scope: "decidim.meetings") %></th>
|
23
23
|
<% end %>
|
24
|
+
<%= th_resource_scope_label %>
|
24
25
|
<th class="actions"><%= t("actions.title", scope: "decidim.meetings") %></th>
|
25
26
|
</tr>
|
26
27
|
</thead>
|
@@ -43,11 +44,12 @@
|
|
43
44
|
<td>
|
44
45
|
<%= humanize_boolean meeting.closed? %>
|
45
46
|
</td>
|
46
|
-
<% if Decidim.
|
47
|
+
<% if Decidim::Map.available?(:static, :geocoding) %>
|
47
48
|
<td>
|
48
49
|
<%= static_map_link(meeting) %>
|
49
50
|
</td>
|
50
51
|
<% end %>
|
52
|
+
<%= td_resource_scope_for(meeting.scope) %>
|
51
53
|
<td class="table-list__actions">
|
52
54
|
<%= icon_link_to "eye", resource_locator(meeting).path, t("actions.preview", scope: "decidim.meetings"), class: "action-icon--preview", target: :blank %>
|
53
55
|
|
@@ -77,7 +79,22 @@
|
|
77
79
|
<%= resource_permissions_link(meeting) %>
|
78
80
|
|
79
81
|
<% if allowed_to? :destroy, :meeting, meeting: meeting %>
|
80
|
-
|
82
|
+
<% if present(meeting).authored_proposals.empty? %>
|
83
|
+
<%= icon_link_to "circle-x", meeting_path(meeting), t("actions.destroy", scope: "decidim.meetings"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.meetings") } %>
|
84
|
+
<% else %>
|
85
|
+
<%=
|
86
|
+
content_tag(:button,
|
87
|
+
class: ["action-icon", "action-icon--remove", "destroy-meeting-alert"],
|
88
|
+
"data-invalid-destroy-message" => t("actions.invalid_destroy.proposals_count", count: present(meeting).authored_proposals.size, scope: "decidim.meetings"),
|
89
|
+
"data-proposal-titles" => present(meeting).formatted_proposals_titles) do
|
90
|
+
content_tag(:span,
|
91
|
+
data: { tooltip: true, disable_hover: false, click_open: false },
|
92
|
+
title: t("actions.destroy", scope: "decidim.meetings")) do
|
93
|
+
icon("circle-x")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
%>
|
97
|
+
<% end %>
|
81
98
|
<% end %>
|
82
99
|
</td>
|
83
100
|
</tr>
|
@@ -88,3 +105,5 @@
|
|
88
105
|
</div>
|
89
106
|
</div>
|
90
107
|
</div>
|
108
|
+
|
109
|
+
<%= javascript_include_tag "decidim/meetings/admin/destroy_meeting_alert" %>
|
@@ -1,3 +1,5 @@
|
|
1
|
+
<% add_decidim_page_title(t(".meetings")) %>
|
2
|
+
|
1
3
|
<div class="wrapper">
|
2
4
|
<div class="row">
|
3
5
|
<h1 class="section-heading"><%= t(".meetings") %></h1>
|
@@ -10,10 +12,10 @@
|
|
10
12
|
<div class="filters__section">
|
11
13
|
<div class="filters__search">
|
12
14
|
<div class="input-group">
|
13
|
-
<%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search") %>
|
15
|
+
<%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search") %>
|
14
16
|
<div class="input-group-button">
|
15
|
-
<button type="submit" class="button
|
16
|
-
<%= icon "magnifying-glass", aria_label: t(".search") %>
|
17
|
+
<button type="submit" class="button">
|
18
|
+
<%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
|
17
19
|
</button>
|
18
20
|
</div>
|
19
21
|
</div>
|
@@ -5,7 +5,14 @@ $meetings.html('<%= j(render partial: "meetings").strip.html_safe %>');
|
|
5
5
|
var $dropdownMenu = $('.dropdown.menu', $meetings);
|
6
6
|
$dropdownMenu.foundation();
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
);
|
8
|
+
var markerData = JSON.parse('<%= escape_javascript meetings_data_for_map(search.results).to_json.html_safe %>');
|
9
|
+
|
10
|
+
var $map = $("#map");
|
11
|
+
var controller = $map.data("map-controller");
|
12
|
+
if (controller) {
|
13
|
+
controller.clearMarkers();
|
14
|
+
controller.addMarkers(markerData);
|
15
|
+
} else {
|
16
|
+
// @deprecated Legacy support
|
17
|
+
window.Decidim.currentMap = window.Decidim.loadMap('map', markerData);
|
18
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= t(".meetings_count", count: search.results.count) %>
|
@@ -1,11 +1,13 @@
|
|
1
|
+
<%= render partial: "decidim/shared/filter_form_help", locals: { skip_to_id: "meetings" } %>
|
2
|
+
|
1
3
|
<%= filter_form_for filter do |form| %>
|
2
4
|
<div class="filters__section">
|
3
5
|
<div class="filters__search">
|
4
6
|
<div class="input-group">
|
5
|
-
<%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search") %>
|
7
|
+
<%= form.search_field :search_text, label: false, class: "input-group-field", placeholder: t(".search"), title: t(".search"), data: { disable_dynamic_change: true } %>
|
6
8
|
<div class="input-group-button">
|
7
|
-
<button type="submit" class="button
|
8
|
-
<%= icon "magnifying-glass", aria_label: t(".search") %>
|
9
|
+
<button type="submit" class="button" aria-controls="meetings">
|
10
|
+
<%= icon "magnifying-glass", aria_label: t(".search"), role: "img" %>
|
9
11
|
</button>
|
10
12
|
</div>
|
11
13
|
</div>
|
@@ -13,14 +15,18 @@
|
|
13
15
|
</div>
|
14
16
|
|
15
17
|
<% unless @forced_past_meetings %>
|
16
|
-
<%= form.
|
18
|
+
<%= form.check_boxes_tree :date, filter_date_values, legend_title: t(".date") %>
|
17
19
|
<% end %>
|
18
20
|
|
19
|
-
<% if
|
20
|
-
<%=
|
21
|
+
<% if current_component.has_subscopes? %>
|
22
|
+
<%= form.check_boxes_tree :scope_id, filter_scopes_values, legend_title: t(".scope") %>
|
21
23
|
<% end %>
|
22
24
|
|
23
25
|
<% if current_component.categories.any? %>
|
24
|
-
<%= form.
|
26
|
+
<%= form.check_boxes_tree :category_id, filter_categories_values, legend_title: t(".category") %>
|
27
|
+
<% end %>
|
28
|
+
|
29
|
+
<% if component_settings.creation_enabled_for_participants? %>
|
30
|
+
<%= form.check_boxes_tree :origin, filter_origin_values, legend_title: t(".origin") %>
|
25
31
|
<% end %>
|
26
32
|
<% end %>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<div class="field hashtags__container">
|
2
|
+
<%= form.text_field :title, autofocus: true, class: "js-hashtags", hashtaggable: true %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="field hashtags__container">
|
6
|
+
<%= text_editor_for(form, :description, hashtaggable: true) %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="field">
|
10
|
+
<%= form.geocoding_field :address %>
|
11
|
+
<p class="help-text"><%= t(".address_help") %></p>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="field">
|
15
|
+
<%= form.text_area :location %>
|
16
|
+
<p class="help-text"><%= t(".location_help") %></p>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="field">
|
20
|
+
<%= form.text_area :location_hints %>
|
21
|
+
<p class="help-text"><%= t(".location_hints_help") %></p>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="field">
|
25
|
+
<%= form.datetime_field :start_time %>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="field">
|
29
|
+
<%= form.datetime_field :end_time %>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<% if current_participatory_space.has_subscopes? %>
|
33
|
+
<div class="field">
|
34
|
+
<%= scopes_picker_field form, :decidim_scope_id %>
|
35
|
+
</div>
|
36
|
+
<% end %>
|
37
|
+
|
38
|
+
<div class="field">
|
39
|
+
<%= form.categories_select :decidim_category_id, current_participatory_space.categories, prompt: t(".select_a_category"), disable_parents: false %>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div class="field">
|
43
|
+
<%= form.select(
|
44
|
+
:user_group_id,
|
45
|
+
Decidim::UserGroups::ManageableUserGroups.for(current_user).verified.map{|g| [g.name, g.id]},
|
46
|
+
prompt: current_user.name,
|
47
|
+
label: t(".create_as")
|
48
|
+
) %>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<%= javascript_include_tag "decidim/meetings/meetings_form" %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div class="row small-up-1 medium-up-2 card-grid">
|
2
2
|
<% resources.each do |meeting| %>
|
3
3
|
<div class="column">
|
4
|
-
<
|
4
|
+
<div class="card card--meeting">
|
5
5
|
<div class="card__content">
|
6
6
|
<%= link_to resource_locator(meeting).path, class: "card__link" do %>
|
7
7
|
<h5 class="card__title"><%= present(meeting).title %></h5>
|
@@ -16,7 +16,7 @@
|
|
16
16
|
</div>
|
17
17
|
<%= decidim_sanitize( present(meeting).description ) %>
|
18
18
|
</div>
|
19
|
-
</
|
19
|
+
</div>
|
20
20
|
</div>
|
21
21
|
<% end %>
|
22
22
|
</div>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<% agenda_items_times = calculate_start_and_end_time_of_agenda_items(meeting.agenda.agenda_items.first_class, meeting) %>
|
8
8
|
<% meeting.agenda.agenda_items.first_class.each_with_index do |agenda_item, index| %>
|
9
9
|
<h5 class="agenda-item--title heading5">
|
10
|
-
<strong
|
10
|
+
<strong><%= translated_attribute(agenda_item.title) %></strong>
|
11
11
|
<span class="text-small"><%= display_duration_agenda_items(agenda_item.id, index, agenda_items_times) %></span>
|
12
12
|
</h5>
|
13
13
|
<hr class="reset m-none mb-s">
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
<% agenda_item.agenda_item_children.each_with_index do |agenda_item_child, index_child| %>
|
21
21
|
<h6 class="heading6">
|
22
|
-
<strong
|
22
|
+
<strong><%= translated_attribute(agenda_item_child.title) %></strong>
|
23
23
|
<span class="text-small"><%= display_duration_agenda_items(agenda_item_child.id, index_child, agenda_item_children_times) %></span>
|
24
24
|
</h6>
|
25
25
|
<p><%= translated_attribute(agenda_item_child.description).html_safe %></p>
|
@@ -18,12 +18,12 @@
|
|
18
18
|
<div class="card--list__item">
|
19
19
|
<div class="card--list__text">
|
20
20
|
<div>
|
21
|
-
<%= link_to meeting.minutes.video_url, meeting.minutes.video_url, target: "_blank", rel: "noopener" %>
|
21
|
+
<%= link_to decidim_url_escape(meeting.minutes.video_url), decidim_html_escape(meeting.minutes.video_url), target: "_blank", rel: "noopener" %>
|
22
22
|
</div>
|
23
23
|
</div>
|
24
|
-
<div class="card--list__data">
|
25
|
-
<%= link_to meeting.minutes.video_url, target: "_blank", class: "card--list__data__icon", rel: "noopener" do %>
|
26
|
-
<%= icon "external-link" %>
|
24
|
+
<div class="card--list__data" aria-hidden="true">
|
25
|
+
<%= link_to decidim_url_escape(meeting.minutes.video_url), target: "_blank", class: "card--list__data__icon", rel: "noopener" do %>
|
26
|
+
<%= icon "external-link", role: "img", "aria-hidden": true %>
|
27
27
|
<% end %>
|
28
28
|
</div>
|
29
29
|
</div>
|
@@ -32,12 +32,12 @@
|
|
32
32
|
<div class="card--list__item">
|
33
33
|
<div class="card--list__text">
|
34
34
|
<div>
|
35
|
-
<%= link_to meeting.minutes.audio_url, meeting.minutes.audio_url, target: "_blank", rel: "noopener" %>
|
35
|
+
<%= link_to decidim_url_escape(meeting.minutes.audio_url), decidim_html_escape(meeting.minutes.audio_url), target: "_blank", rel: "noopener" %>
|
36
36
|
</div>
|
37
37
|
</div>
|
38
|
-
<div class="card--list__data">
|
39
|
-
<%= link_to meeting.minutes.audio_url, target: "_blank", class: "card--list__data__icon", rel: "noopener" do %>
|
40
|
-
<%= icon "external-link" %>
|
38
|
+
<div class="card--list__data" aria-hidden="true">
|
39
|
+
<%= link_to decidim_url_escape(meeting.minutes.audio_url), target: "_blank", class: "card--list__data__icon", rel: "noopener" do %>
|
40
|
+
<%= icon "external-link", role: "img", "aria-hidden": true %>
|
41
41
|
<% end %>
|
42
42
|
</div>
|
43
43
|
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="columns large-3">
|
3
|
+
<%= link_to :back do %>
|
4
|
+
<%= icon "chevron-left", class: "icon--small", role: "img" %>
|
5
|
+
<%= t(".back") %>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
|
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) 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>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="columns large-3"></div>
|
25
|
+
</div>
|
@@ -2,6 +2,21 @@
|
|
2
2
|
|
3
3
|
<%= cell "decidim/meetings/meetings_map", search.results %>
|
4
4
|
|
5
|
+
<div class="row columns">
|
6
|
+
<div class="title-action">
|
7
|
+
<h3 id="meetings-count" class="title-action__title section-heading">
|
8
|
+
<%= render partial: "count" %>
|
9
|
+
</h3>
|
10
|
+
|
11
|
+
<% if allowed_to?(:create, :meeting) %>
|
12
|
+
<%= action_authorized_link_to :create, new_meeting_path, class: "title-action__action button small", data: { "redirect_url" => new_meeting_path } do %>
|
13
|
+
<%= t("new_meeting", scope: "decidim.meetings.meetings.index") %>
|
14
|
+
<%= icon "plus", role: "img" %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
|
5
20
|
<div class="row">
|
6
21
|
<div class="columns mediumlarge-4 large-3">
|
7
22
|
<%= render partial: "filters_small_view" %>
|
@@ -9,7 +24,7 @@
|
|
9
24
|
<%= render partial: "filters" %>
|
10
25
|
</div>
|
11
26
|
</div>
|
12
|
-
<div id="meetings" class="columns mediumlarge-8 large-9">
|
27
|
+
<div id="meetings" class="columns mediumlarge-8 large-9" aria-live="polite">
|
13
28
|
<%= render partial: "meetings" %>
|
14
29
|
</div>
|
15
30
|
</div>
|
@@ -1,11 +1,20 @@
|
|
1
1
|
var $meetings = $('#meetings');
|
2
|
+
var $meetingsCount = $('#meetings-count');
|
2
3
|
|
3
4
|
$meetings.html('<%= j(render partial: "meetings").strip.html_safe %>');
|
5
|
+
$meetingsCount.html('<%= j(render partial: "count").strip.html_safe %>');
|
4
6
|
|
5
7
|
var $dropdownMenu = $('.dropdown.menu', $meetings);
|
6
8
|
$dropdownMenu.foundation();
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
);
|
10
|
+
var markerData = JSON.parse('<%= escape_javascript meetings_data_for_map(search.results.select(&:geocoded?)).to_json.html_safe %>');
|
11
|
+
|
12
|
+
var $map = $("#map");
|
13
|
+
var controller = $map.data("map-controller");
|
14
|
+
if (controller) {
|
15
|
+
controller.clearMarkers();
|
16
|
+
controller.addMarkers(markerData);
|
17
|
+
} else {
|
18
|
+
// @deprecated Legacy support
|
19
|
+
window.Decidim.currentMap = window.Decidim.loadMap('map', markerData);
|
20
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="columns large-3">
|
3
|
+
<%= link_to :back do %>
|
4
|
+
<%= icon "chevron-left", class: "icon--small", role: "img" %>
|
5
|
+
<%= t(".back") %>
|
6
|
+
<% end %>
|
7
|
+
</div>
|
8
|
+
|
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) 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>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="columns large-3"></div>
|
25
|
+
</div>
|
@@ -16,18 +16,33 @@ edit_link(
|
|
16
16
|
%>
|
17
17
|
|
18
18
|
<div class="row column view-header">
|
19
|
+
<div class="m-bottom">
|
20
|
+
<%= link_to meetings_path(filter_link_params), class: "small hollow" do %>
|
21
|
+
<%= icon "chevron-left", class: "icon--small", role: "img", "aria-hidden": true %>
|
22
|
+
<%= t(".back") %>
|
23
|
+
<% end %>
|
24
|
+
</div>
|
25
|
+
|
19
26
|
<h2 class="heading2"><%= present(meeting).title(links: true) %></h2>
|
20
|
-
|
21
|
-
|
22
|
-
|
27
|
+
|
28
|
+
<%= cell "decidim/author", author_presenter_for(meeting.normalized_author), has_actions: true, from: meeting, context: { extra_classes: ["author-data--small"] } %>
|
29
|
+
|
23
30
|
</div>
|
24
31
|
<div class="row">
|
25
32
|
<div class="columns section view-side mediumlarge-4 mediumlarge-push-8
|
26
33
|
large-3 large-push-9">
|
34
|
+
|
35
|
+
<% if allowed_to?(:update, :meeting, meeting: meeting) %>
|
36
|
+
<%= link_to t(".edit_meeting"), edit_meeting_path(meeting), class: "button secondary hollow expanded button-sc button--icon follow-button" %>
|
37
|
+
<% end %>
|
38
|
+
|
27
39
|
<div class="card extra">
|
28
40
|
<div class="card__content">
|
29
41
|
<div class="extra__date">
|
30
|
-
<%= l meeting.start_time, format: "%d" %>
|
42
|
+
<%= l meeting.start_time, format: "%d" %>
|
43
|
+
<span class="extra__month"><%= l meeting.start_time, format: "%B" %>
|
44
|
+
<%= l(meeting.start_time, format: "%Y") if meeting.start_time.year != Date.current.year %>
|
45
|
+
</span>
|
31
46
|
</div>
|
32
47
|
<div class="extra__time">
|
33
48
|
<%= meeting.start_time.strftime("%H:%M") %> - <%= meeting.end_time.strftime("%H:%M") %>
|
@@ -77,9 +92,9 @@ edit_link(
|
|
77
92
|
<% meeting.services.each do |service| %>
|
78
93
|
<div class="card--list__item">
|
79
94
|
<div class="card--list__text card--list__text--top">
|
80
|
-
<%= icon "actions", class: "card--list__icon alert" %>
|
95
|
+
<%= icon "actions", class: "card--list__icon alert", role: "img", "aria-hidden": true %>
|
81
96
|
<div>
|
82
|
-
<
|
97
|
+
<h3 class="card--list__heading heading-small"><%= translated_attribute(service["title"]) %></h3>
|
83
98
|
<span class="text-medium"><%= translated_attribute(service["description"]) %></span>
|
84
99
|
</div>
|
85
100
|
</div>
|
@@ -89,8 +104,9 @@ edit_link(
|
|
89
104
|
<% end %>
|
90
105
|
|
91
106
|
<%= resource_reference(meeting) %>
|
107
|
+
<%= resource_version(meeting, versions_path: meeting_versions_path(meeting)) %>
|
92
108
|
<%= render partial: "decidim/shared/share_modal" %>
|
93
|
-
<%= embed_modal_for
|
109
|
+
<%= embed_modal_for meeting_widget_url(meeting, format: :js) %>
|
94
110
|
</div>
|
95
111
|
<div class="columns mediumlarge-8 mediumlarge-pull-4">
|
96
112
|
<div class="section">
|
@@ -104,7 +120,7 @@ edit_link(
|
|
104
120
|
<%= t("transparent", scope: "decidim.meetings.types") %>
|
105
121
|
</span>
|
106
122
|
<% end %>
|
107
|
-
|
123
|
+
<%= decidim_sanitize(present(meeting).description(links: true)) %>
|
108
124
|
<%= render partial: "decidim/shared/static_map", locals: { icon_name: "meetings", geolocalizable: meeting } %>
|
109
125
|
<%= render partial: "decidim/shared/tags", locals: { resource: meeting, tags_class_extra: "tags--meeting" } %>
|
110
126
|
</div>
|
@@ -146,3 +162,11 @@ edit_link(
|
|
146
162
|
<%= attachments_for meeting %>
|
147
163
|
<%= comments_for meeting %>
|
148
164
|
<%= pad_iframe_for meeting %>
|
165
|
+
|
166
|
+
<%=
|
167
|
+
render partial: "decidim/shared/flag_modal", locals: {
|
168
|
+
reportable: meeting,
|
169
|
+
form: @report_form,
|
170
|
+
url: decidim.report_path(sgid: meeting.to_sgid.to_s)
|
171
|
+
}
|
172
|
+
%>
|