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:
- injecting menu item
- 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
- 🪲 Fetching is always applying the filters and moves e-mails 'back'.
- 🪲 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.