Open Bug 1941471 Opened 1 year ago Updated 6 hours ago

Parallel UI for using new folder objects

Categories

(Thunderbird :: Folder and Message Lists, task)

Tracking

(Not tracked)

ASSIGNED
136 Branch

People

(Reporter: darktrojan, Assigned: darktrojan)

References

(Blocks 1 open bug)

Details

(Keywords: leave-open)

Attachments

(18 files, 2 obsolete files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

To use the new database, we're going to have to make a few major changes and many minor changes to the mail tab UI. In this bug I'll create a second version of about:3pane (and maybe about:message) so that we can use both implementations in parallel until we're happy with the new code.

This is the very start of this class which power the message list. With this patch we get messages
from the back end and display them in descending date order. Subsequent patches will add sorting
by other fields and in ascending order as required.

This patch adds notification abilities to the live view and handles messages added to or removed
from the database.

This patch has the beginnings of the sort mechanism for live views.

This is the first textual property we'll be able to sort by.

This adds a SQL function for formatting addresses based on the existing preferences for doing so.
I've implemented it in this way so that SQLite can handle most of the sorting (except when new
messages are added) and we don't have to think about it, because it's just the same as any other
property. It's currently quite slow across a large number of messages but that's mostly due to the
header parsing being implemented in JS. We should fix that.

Keywords: leave-open
Target Milestone: --- → 136 Branch
Pushed by geoff@darktrojan.net: https://hg.mozilla.org/comm-central/rev/478eb4235266 Create an adapter for getting messages from a live view to the message list. r=mkmelin https://hg.mozilla.org/comm-central/rev/808066c0ebd1 Make the live view data adapter live. r=mkmelin https://hg.mozilla.org/comm-central/rev/08b235cc8863 Enable sorting of the message list by ascending date order. r=mkmelin https://hg.mozilla.org/comm-central/rev/7ba87e82d585 Enable sorting of the message list by subject. r=mkmelin https://hg.mozilla.org/comm-central/rev/1f9b324808fe Implement sender column formatting and sorting. r=mkmelin

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/698a72b7ceb3
Split message flags into columns in LiveViewDataAdapter.js. r=mkmelin

Blocks: 1572000

This adds the SQL for using the virtualFolder_folders table, and a mechanism for (in future)
updating the filter when the virtual folder changes. This filter doesn't yet handle virtual folders
that display a subset of the messages (i.e. a saved search).

Pushed by geoff@darktrojan.net: https://hg.mozilla.org/comm-central/rev/a19d2bdfac32 Add virtual folder filter to LiveViews. r=BenC https://hg.mozilla.org/comm-central/rev/9ef72a3e1dc4 Add recipients to live views. r=BenC
Attachment #9512349 - Attachment description: WIP: Bug 1941471 - Panorama view as a separate document. → Bug 1941471 - Panorama view as a separate document.
Attachment #9512350 - Attachment description: WIP: Bug 1941471 - Add live view filter for conversations. → Bug 1941471 - Add live view filter for conversations. r=aleca
Pushed by toby@thunderbird.net: https://hg.mozilla.org/comm-central/rev/6d5c3438cc6d Panorama view as a separate document. r=aleca

Pushed by john@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/63be1fcf8fc3
Add live view filter for conversations. r=aleca

Attachment #9512918 - Attachment description: WIP: Bug 1941471 - Make live views that do threads only. → Bug 1941471 - Make live views that do threads only. r=aleca,freaktechnik

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/e72a6c3b6519
Handle text encoding properly when making LiveView JS objects. r=aleca

Depends on: 1995652
Attachment #9526370 - Attachment description: WIP: Bug 1941471 - Add a threaded view to the Panorama UI. r=#thunderbird-front-end-reviewers → WIP: Bug 1941471 - Add threaded and grouped views to the Panorama UI. r=#thunderbird-front-end-reviewers
Attachment #9526369 - Attachment is obsolete: true
Attachment #9526370 - Attachment description: WIP: Bug 1941471 - Add threaded and grouped views to the Panorama UI. r=#thunderbird-front-end-reviewers → WIP: Bug 1941471 - Add threaded and grouped views to the Panorama UI. r=#thunderbird-back-end-reviewers!,freaktechnik
Attachment #9526370 - Attachment description: WIP: Bug 1941471 - Add threaded and grouped views to the Panorama UI. r=#thunderbird-back-end-reviewers!,freaktechnik → Bug 1941471 - Add threaded and grouped views to the Panorama UI. r=#thunderbird-back-end-reviewers!,freaktechnik
Attachment #9526371 - Attachment description: WIP: Bug 1941471 - Make the unthreaded view load async. r=#thunderbird-back-end-reviewers!,#thunderbird-front-end-reviewers → WIP: Bug 1941471 - Make panorama views load async. r=#thunderbird-back-end-reviewers!,freaktechnik
Pushed by geoff@darktrojan.net: https://hg.mozilla.org/comm-central/rev/0bccdf3167b8 Add threaded and grouped views to the Panorama UI. r=freaktechnik,mkmelin
Pushed by geoff@darktrojan.net: https://hg.mozilla.org/comm-central/rev/638177e0cd04 follow-up - Fix an assertion failure in a test. rs=bustage-fix

Unfortunately if the database querying is going to be async (and it should be) there are problems
with our "create plain JS objects and throw them at the front end" approach. It's possible these
problems could be resolved, but for now at least it's easier if we just use read-only XPCOM objects.

Attachment #9538447 - Attachment description: WIP: Bug 1941471 - Use xpcom objects instead of JS objects for live views. r=#thunderbird-back-end-reviewers → Bug 1941471 - Use xpcom objects instead of JS objects for live views. r=#thunderbird-back-end-reviewers
Attachment #9526371 - Attachment description: WIP: Bug 1941471 - Make panorama views load async. r=#thunderbird-back-end-reviewers!,freaktechnik → Bug 1941471 - Make panorama views load async. r=#thunderbird-back-end-reviewers!,freaktechnik
Attachment #9538447 - Attachment is obsolete: true
Attachment #9526371 - Attachment description: Bug 1941471 - Make panorama views load async. r=#thunderbird-back-end-reviewers!,freaktechnik → Bug 1941471 - Make panorama views load async. r=BenC!,freaktechnik!
Depends on: 2011355

This should improve the performance of the function by running through the haystack only once
looking for the needle, rather than splitting the haystack up and checking if one of the tokens is
the needle.

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/d03967f4602d
Make panorama views load async. r=BenC,freaktechnik

Pushed by kaie@kuix.de:
https://hg.mozilla.org/comm-central/rev/b7414bbfe5cc
Improve the tags matching SQLite function. r=mkmelin

Depends on: 2017764

When selecting messages, the JS objects will be passed to the front end as soon as there is enough
to fill the screen. This dramatically speeds up perceived loading time.

I've broken a few things in the process, but they are not the most important right now.

This patch implements what happens when a message is added to, or removed from, the database and
it is relevant to an active live view. New messages should be added to the appropriate thread or
group, if any.

It doesn't cover ordering the messages within a thread or group, nor reordering the threads or groups.

Pushed by mkmelin@iki.fi:
https://hg.mozilla.org/comm-central/rev/5906a999d0b9
Pass messages to JS incrementally, and simplify LiveViewDataAdapter. r=BenC

Attachment #9550939 - Attachment description: WIP: Bug 1941471 - Reimplement adding and removing messages in LiveViewDataAdapter. r=#thunderbird-reviewers → Bug 1941471 - Reimplement adding and removing messages in LiveViewDataAdapter. r=#thunderbird-reviewers
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: