finos / calendar

FINOS Calendar
Apache License 2.0
7 stars 4 forks source link

Filter events by project #63

Open maoo opened 11 months ago

maoo commented 11 months ago

Add the possibility to filter events by projects; visually, the should be a list of projects (either in a dropdown or as a checklist) and by clicking (or enabling/disabling) events should instantly show or hide.

Tasks:

  1. [ ] Define a way to associate events to projects; this can be done by defining string matching between project names and the event title during the event fetching/parsing (googleapi2events.js)
  2. [ ] Populate the project field in events.json
  3. [ ] Render out the list of projects (create a set from the list of all project fields in events.json) as a checklist or drop-down, somewhere in the event grid page
  4. [ ] Filter events in FullCalendar based on the project event field (this code can be partially reused)
  5. [ ] Add the project field in the event details popup

cc @jgavronsky , as she suggested this enhancement

ronaldssebalamu commented 9 months ago

Hey @maoo. I am moving forward with this issue.

Ronald.

maoo commented 9 months ago

Hey @maoo. I am moving forward with this issue.

Ronald.

Awesome, thanks @ronaldssebalamu ! I was reading the approach I proposed in the description, and I believe there may be an easier way, read below.

  1. The React code reads events.json and extracts the unique list of meeting titles, rendering them out as a list of checkboxes, all checked by default (stretch goal, only show titles for events that occur more than 3 times)
  2. When a checkbox is unchecked, React will tell FullCalendar to hide all events with that title

As opposed to the previous approaches, in this case we don't need to change any data in the Google Calendar events, as we only rely on the meeting title.

I'm eager to hear what you think! Also happy to help out with testing and review. Thanks again!

robmoffat commented 4 months ago

Ideally, need a page for each project, like https://calendar.finos.org/FDC3 so that we can link the per-project pages to our microsites or news emails.