-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Motivation
At the moment, the modal of events for exporting shows the event title, which is the same title used when creating the events for Google/Outlook/ICS/etc. Note that if the user changes the title formatting, it also affects how events are shown in the lists.
I personally think the modals should show all the necessary information so that the user can easily identify the events. For example, consider the exams. The default title format is Exam [${subject.acronym}] - ${location}. So the list looks like this:

A few problems. First, the course name/acronym is not sufficient to identify which exam is which. For instance, note the two exams for the course AC. Is the first AC exam a "mini teste"? a special exam? is it the same exam but split in two turns? In my opinion, it would be more meaningful to show richer information such as:
- Course name
- Type of exam ("mini teste", "época normal", ...)
- Date and time
Back to the example AC, and with the richer information, it would be obvious it is the same exam but it has two turns.
Proposal
So in my opinion we should separate these two concerns:
- How events are created in calendar clients (user customisable)?
- How do we list/represent events in the UI for exporting? Must show all the information to correctly identify the events. Will vary from extractor to extractor.
As we migrate event related extractors to EventExtractor, I think is not very difficult to solve this problem. Extend the current createEventsModal to take an additional and optional argument that is a callback function.
SigTools/src/js/utils/modal.js
Line 133 in ffe3959
| function createEventsModal(events, from, to) { |
The callback is called to generate HTML per event, replacing the code below:
SigTools/src/js/utils/modal.js
Lines 174 to 178 in ffe3959
| const $item = createElementFromString(` | |
| <li> | |
| <input type="checkbox" id="event_${i}"> | |
| <label for="event_${i}" title="${start} to ${end}">${event.title}</label> | |
| </li>`); |