Sha256: 0a68714259f2637d4749e80e76163ba1891e4b2ba28cc22ecd9e289c882bc7a5
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
<% provide :meta_title, t("calendar.index.title", scope: "decidim") %> <%= participatory_space_wrapper do %> <div class="row columns"> <div class="calendar-filters button-group"> <% @resources.each do |t| %> <button class="button tiny cal-filter <%= t %>" id="<%= t %>"><%= I18n.t(t, scope: "decidim.calendar.index.filters") %></button> <% end %> </div> <div id="calendar"></div> </div> <% end %> <%= javascript_include_tag "decidim/calendar/calendar" %> <%= stylesheet_link_tag "decidim/calendar/calendar" %> <script> let filters = ["consultation", "external_event", "meeting", "debate", "participatory_step"]; function removeFilter(filters, filter){ return filters.filter((element) => element !== filter) } const calendarEl = document.getElementById('calendar'); const calendar = new FullCalendar.Calendar(calendarEl, { plugins: ["interaction", "timeGrid", "dayGrid"], defaultView: "dayGridMonth", locale: "es", header: { left: "prev,next today", center: "title", right: "dayGridMonth,dayGridWeek,dayGridDay" }, eventTimeFormat: { hour: "2-digit", minute: "2-digit", hour12: false, omitZeroMinute: false }, events: [ <% @events.each do |e| %> <%= calendar_event(e).html_safe %> <%= "," unless e == @events.last %> <% end %> ], eventRender: function(info) { return filters.includes(info.event.extendedProps.resourceId); } }); $(function() { calendar.setOption('locale', "<%= I18n.locale %>"); calendar.render(); $(".cal-filter").on("click", function() { $(this).toggleClass("hollow"); let filter = $(this).attr("id"); if (filters.includes(filter)) { filters = removeFilter(filters, filter) } else { filters.push(filter) } calendar.rerenderEvents() }); }); </script>
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
decidim-calendar-0.13.1.3 | app/views/decidim/calendar/calendar/index.html.erb |