2023 CW 28 - Development Progress

2023 CW 28 - Development Progress

This week again I could make great progress with the system. This was the last week before the summer holidays. During the next 5 weeks, I'm not planning to make much (any?) progress.

Functionality

This week, I managed to add Contact Management (Contacts) to the system. This is just a very early version of it. The main purpose is to support Recipient selection in the Composer. The selector has autocomplete feature, but I couldn't find an easy solution for Full Text Search therefore autocomplete is currently a simple string matching (SQL Like) solution.

Email sending (via Gmail) looks now good. I have found a bug in Gmail sync functionality that needs to be addressed.

Future work

  1. 🪲 Fetching is always applying the filters and moves e-mails 'back'.

Apart from the work with on the Contacts feature, I have also added archived and read state to the History Items.

When an item marked archived, it disappears from the list. I have also added a new filter, that can be toggled to get the archived items displayed again.

The read state works as expected. When an item is marked read, it changes the visualization (style) in order to make it obvious for the user, that the item has been already seen. The read state is automatically set when an item is expanded, but can be toggled from the context menu.

Apart from the above bigger feature, I have also worked on a couple of smaller things. I have improved the reading experience. When a History Item is expanded, now it expands to full height. It means that there is no double scrolling any more. Unfortunately, there is a bug when the item is collapsed.

  1. 🪲 On collapsing a History Item the page jumps away.

What was finished

  • ✅ Add Archived state, so the history items can get hid.
  • ✅ Support Read state
    • ✅ add read state to the system
    • ✅ sync read state back to Gmail
  • 🔼✅ Address book - easy way to select recipients (and Activity participants)

What comes next?

  • Reply functionality on History Items
  • ⏫ 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

The scolling behaviour changes got their own task. It was originally part of the History implementation, but I had to realize that it is a more complex issue, and now it got its own task.

I have de-prioritized different recipient categories like CC, BCC. I hardly use BCC, and I'm not sure if it's heavily used in work environment anyway. When it comes to CC, for me, it is not much more different than TO. So for the time being I am going put all recipient into To and not I am not going have Cc field.

Backlog

  • 🪲 Fetching is always applying the filters and moves e-mails 'back'
  • ADR: UI plugins
    • how a plugin can provide UI components
    • how a plugin can be triggered
    • how a plugin can communicate with its service.
  • Cron based fetching of integrations
  • Selected another integration: WhatsApp, Google Meet, Signal ❓
  • ⏬ Email sending:
    • Recipient selection (To, CC, Bcc) - Address book
Not prioritized future changes identified this week

Composer: Recipient selection

  • contacts retrieval hooks (change filter, change result)
  • add context to contact retrieval
  • full text search

Contacts page

  • Implement proper design (icons, better layout)
  • load on scroll / pagination
  • Ability to merge contacts
  • Ability to add new contact by hand

Participants

  • Assign Contacts to Activities. They are so called Participants.