2023 CW 34 - Development Progress

2023 CW 34 - Development Progress

The summer holiday is over, and I am back to work. This week started slow, and I needed quite a bit of time to get everything together again. I have also spent time on pick up contacts. At the end, in my limited time, I could still make some progress.

Functionality

I have implemented a simple SchedulingService, based on toad-schedule. The Plugins can register recurring, periodic tasks, e.g. fetching the integration by a preset interval. This functionality has been added to the Gmail plugin. Now the emails are retrieved every 3 minutes from Google.

I have improved a bit the scrolling behaviour and now there is a load more button at the top and the bottom of the page. These buttons are not working fully, and they need to be finished.

This week, I focused on preparing the extension points. The extension points are going to enable plugins to interact with the UI. There are two types of extension point is going to be built in the first version:

  1. injecting menu item
  2. intercepting UI events

In order to support the first, a new Menu class has been built. Each plugin can register a callback function to each menu extension point and when the menu is displayed, the registered plugins are called and those can interact with the Menu object (e.g. injecting a new menu item). As a proof of concept, only the menu on moving history item by drag and drop has been defined and the Gmail plugin is already injecting a new menu item into the drop-down menu. Though the implementation of that extension is not finished yet.

I have also put together a Notes plugin in order to better experiment with the extension points. The Notes plugin allows the user to put private notes into the history in Markdown format.

Future work

  1. 🪲 Fetching is always applying the filters and moves e-mails 'back'.
  2. 🪲 On collapsing a History Item the page jumps away.

What was finished

  • ⏫✅ Cron based fetching of integrations
  • ✅ Added Load More buttons to History
  • ⏫✅ UI Plugin: Developed Menu extension point
  • ⏫✅ UI Plugin: Added UI events
  • ⏫✅ Notes plugin

What comes next?

  • Reply functionality on History Items
  • ⏫ Filter e-mails by thread, label and matching subject
  • Improve scrolling behaviour on the UI
    • fetch more items when reaching top or bottom
    • open history at the last read item
    • 🪲 On collapsing a History Item, the page jumps away.
  • Better error handling (probably with i18n support)
Changes

As I was using the platform, I realized how difficult it is to organize my emails when the filters are not set up correctly. I had to move every email one by one. I had the plan already to offer filtering on moving, but it was not implemented yet. That's why I started working on the extension points, so the UI Plugins can define their menu items, e.g. filtering the e-mails.

Backlog

  • 🪲 Fetching is always applying the filters and moves e-mails 'back'
  • 🪲 Old Gmail integration - where historyId might be off (deleted?) is returning 404
  • Select another integration: WhatsApp, Google Meet, Signal ❓
  • ⏬ Email sending:
    • Recipient selection (To, CC, Bcc) - Address book
Not prioritized future changes identified this week

This week was a bit chaotic. Unfortunately, I didn't have the structure to collect the work that was identified this week.