Ticket #173 (closed Tasks: fixed)

Opened 2 years ago

Last modified 2 years ago

Review and fix all Move-To/Copy-To use cases

Reported by: octo Owned by: octo
Priority: minor Milestone: 2.0
Component: LogicMail Version:
Keywords: Cc:
Blocked By: Blocking:

Description

There are many different use cases for moving and copying messages between folders. Those cases differ depending on the nature of the source mail store, destination mail store, and loaded message data. All these cases need to be analyzed, described, and implemented correctly. The existing code only handles most of the Copy-To case, and needs to be expanded upon.

Change History

comment:1 Changed 2 years ago by octo

  • Status changed from new to assigned
  • Owner set to octo

comment:2 Changed 2 years ago by octo

This is a complex collection of things that come together to form the complete functionality threads of the Move-To/Copy-To use cases.

Mail store types:

NameFolder appendProtocol copyRaw source
Network (IMAP)YesYesNo*
Network (POP)NoNoYes
LocalYesYesYes

* - As implemented, for the sake of efficiency
- May be truncated if the message is too long

It has been decided to allow Copy-To from any source, and to any destination supporting folder append. Protocol copy will be used if possible, but is not required. Move-To, however, will only be allowed between folders on a mail store that supports protocol copy. This has been decided to simplify the implementation and ensure that no message data is ever lost or corrupted.

The implementation has been broken down into the following major pieces:

  • Clean up menu items on all standard screens, with an emphasis on the MessageActions delegate class. This is intended to make MessageNode-related menu items available wherever they make sense, and in the most sensible order. [615]
  • Implement a mechanism for allowing the mail object model to respond to the success or failure of specific mail-store requests, instead of the existing decoupled notifications used for everything else. [616] [617]
  • Clean up the implementation (within MessageActions) of the actual logic to handle Move-To/Copy-To based on the characteristics of the source and destination mailboxes and mailstores. [618]

Before this task can be completed, several issues still need to be resolved:

  • Message available in local folder, but not yet viewed (not loaded into memory); Only protocol-copy is offered, but full-copy should be possible with on-demand loading of the message.
  • Message available in local cache, but not yet viewed (not loaded into memory); Only protocol-copy is offered, but full-copy should be possible with on-demand loading of the message.
  • If copying/moving to a destination folder on an IMAP server, the object model is not being correctly updated in regards to that folder.

comment:3 Changed 2 years ago by octo

  • Status changed from assigned to closed
  • Resolution set to fixed

Fixed remaining issues in [619] and [620]

Note: See TracTickets for help on using tickets.