feat: mail UI improvements - folder mapping, display name, resize perf, list header
- Add configurable folder mapping (sent/drafts/spam/trash) per account - Migration 0005_folder_mapping.sql with 4 new columns on mail_accounts - Backend: send_mail uses account.sent_folder_imap_name if set - Backend: _build_folder_hierarchy respects folder_mapping for is_standard - Frontend: MailSettings shows folder mapping editor per account - Frontend: MailSettings allows editing display_name for existing accounts - Frontend: MailFolderTree shows display_name || email, removes MailIcon - Frontend: ResizablePanel isDragging state with contain:strict + pointer-events:none - Frontend: MailList merges select-all and sort controls into one line
This commit is contained in:
@@ -22,6 +22,10 @@ class MailAccountCreate(BaseModel):
|
||||
username: str = Field(default="", min_length=0, max_length=255)
|
||||
password: str = Field(..., min_length=1, max_length=512)
|
||||
is_shared: bool = False
|
||||
sent_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
drafts_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
spam_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
trash_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
|
||||
|
||||
class MailAccountUpdate(BaseModel):
|
||||
@@ -38,6 +42,10 @@ class MailAccountUpdate(BaseModel):
|
||||
password: str | None = Field(None, min_length=1, max_length=512)
|
||||
is_shared: bool | None = None
|
||||
is_active: bool | None = None
|
||||
sent_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
drafts_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
spam_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
trash_folder_imap_name: str | None = Field(None, max_length=255)
|
||||
|
||||
|
||||
class MailAccountResponse(BaseModel):
|
||||
@@ -54,6 +62,10 @@ class MailAccountResponse(BaseModel):
|
||||
username: str
|
||||
is_shared: bool
|
||||
is_active: bool
|
||||
sent_folder_imap_name: str | None = None
|
||||
drafts_folder_imap_name: str | None = None
|
||||
spam_folder_imap_name: str | None = None
|
||||
trash_folder_imap_name: str | None = None
|
||||
created_at: datetime | None = None
|
||||
updated_at: datetime | None = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user