Skip to content

Commit

Permalink
calendar: Toggle external events only
Browse files Browse the repository at this point in the history
- always show internal events
- let a single button toggle external events on and off
- toggle button label with state
- use css to add :hover feedback to the button
  • Loading branch information
donald committed Apr 20, 2021
1 parent 816cf35 commit da43abf
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 9 deletions.
9 changes: 9 additions & 0 deletions mpicms/static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -761,3 +761,12 @@ div.codehilite:not(:last-child) {
width: 100%;
height: 100%;
}

#switch_external {
color: black;
background-color: silver;
}

#switch_external:hover {
background-color: lightgray;
}
22 changes: 13 additions & 9 deletions mpicms/templates/events/event_index.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ <h2 class="title is-2">{{ page.title }}</h2>
<div class="fc-center">
</div>
<div class="fc-right">
<a id="switch_external" class="button" style="background-color: silver; color: black">external events</a>
<a id="switch_internal" class="button" style="background-color: #006c66; color: white">events @MPIMG</a>
<a id="switch_external" class="button">hide external events</a>
</div>
</div>
</div>
Expand All @@ -32,7 +31,7 @@ <h2 class="title is-2">{{ page.title }}</h2>

var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'dayGrid', 'timeGrid' ],
eventSources: [ event_source_internal ],
eventSources: [ event_source_internal , event_source_external ],
locale: '{{ LANGUAGE_CODE }}',
header: {
left: 'dayGridMonth,timeGridWeek,timeGridDay',
Expand All @@ -41,13 +40,18 @@ <h2 class="title is-2">{{ page.title }}</h2>
}
});

var externalEventsShown = 1

document.getElementById('switch_external').addEventListener("click", function() {
calendar.getEventSources()[0].remove()
calendar.addEventSource(event_source_external)
});
document.getElementById('switch_internal').addEventListener("click", function() {
calendar.getEventSources()[0].remove()
calendar.addEventSource(event_source_internal)
if (externalEventsShown) {
calendar.getEventSources()[1].remove()
externalEventsShown = 0
this.innerHTML="show external events"
} else {
calendar.addEventSource(event_source_external)
externalEventsShown = 1
this.innerHTML="hide external events"
}
});

calendar.render();
Expand Down

0 comments on commit da43abf

Please sign in to comment.