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