nx-webmail: improve post-login full mailbox sync
Some checks failed
Publish nx-webmail Image (Gitea) / publish (push) Has been cancelled
Some checks failed
Publish nx-webmail Image (Gitea) / publish (push) Has been cancelled
This commit is contained in:
@@ -30,7 +30,7 @@ Umbrel installation is most reliable when your app uses a prebuilt image from a
|
|||||||
- `git.weektab.org/nexus/nx-webmail:latest`
|
- `git.weektab.org/nexus/nx-webmail:latest`
|
||||||
3. The workflow then pins `nx-webmail/docker-compose.yml` to `tag@sha256:digest` automatically.
|
3. The workflow then pins `nx-webmail/docker-compose.yml` to `tag@sha256:digest` automatically.
|
||||||
4. Manual fallback:
|
4. Manual fallback:
|
||||||
docker buildx build --platform linux/amd64,linux/arm64 -t git.weektab.org/nexus/nx-webmail:1.0.4 --push .
|
docker buildx build --platform linux/amd64,linux/arm64 -t git.weektab.org/nexus/nx-webmail:1.0.5 --push .
|
||||||
|
|
||||||
## Umbrel app packaging
|
## Umbrel app packaging
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ This repository is prepared for Umbrel app-store usage.
|
|||||||
Notes:
|
Notes:
|
||||||
- Umbrel uses the `app_proxy` service in `docker-compose.yml`.
|
- Umbrel uses the `app_proxy` service in `docker-compose.yml`.
|
||||||
- Internal app port is `3001`.
|
- Internal app port is `3001`.
|
||||||
- `server` uses a prebuilt registry image (`git.weektab.org/nexus/nx-webmail:1.0.4`).
|
- `server` uses a prebuilt registry image (`git.weektab.org/nexus/nx-webmail:1.0.5`).
|
||||||
- If your store prefix changes, update `id` in `umbrel-app.yml` and `APP_HOST` in `docker-compose.yml`.
|
- If your store prefix changes, update `id` in `umbrel-app.yml` and `APP_HOST` in `docker-compose.yml`.
|
||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ services:
|
|||||||
APP_PORT: 3001
|
APP_PORT: 3001
|
||||||
|
|
||||||
server:
|
server:
|
||||||
image: git.weektab.org/nexus/nx-webmail:1.0.4@sha256:a5a57deade7005e775a8a6b370d2b3cb8fea2f1d370d65048f2bd580224636ed
|
image: git.weektab.org/nexus/nx-webmail:1.0.5@sha256:5bd160a20d844a2b4a74607423b951859eccee38cb6b47c2f4264640ac23f3eb
|
||||||
init: true
|
init: true
|
||||||
restart: on-failure
|
restart: on-failure
|
||||||
stop_grace_period: 1m
|
stop_grace_period: 1m
|
||||||
|
|||||||
@@ -569,20 +569,12 @@ export default function Webmail() {
|
|||||||
foldersMeta: normalized
|
foldersMeta: normalized
|
||||||
});
|
});
|
||||||
|
|
||||||
if (skipInitialFetchIfCached && cachedDefaultEmails) {
|
|
||||||
await fetchInbox(defaultFolder, auth, true, credOverride, {
|
await fetchInbox(defaultFolder, auth, true, credOverride, {
|
||||||
keepSelection: true,
|
keepSelection: true,
|
||||||
silent: true,
|
silent: Boolean(cachedDefaultEmails) || skipInitialFetchIfCached,
|
||||||
syncOnly: true,
|
fetchAll: true,
|
||||||
resetToFirstPage: true
|
resetToFirstPage: true
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
await fetchInbox(defaultFolder, auth, true, credOverride, {
|
|
||||||
keepSelection: true,
|
|
||||||
silent: Boolean(cachedDefaultEmails),
|
|
||||||
resetToFirstPage: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
saveSession(credOverride, defaultFolder);
|
saveSession(credOverride, defaultFolder);
|
||||||
upsertAccount(credOverride, defaultFolder);
|
upsertAccount(credOverride, defaultFolder);
|
||||||
return true;
|
return true;
|
||||||
@@ -1318,9 +1310,12 @@ export default function Webmail() {
|
|||||||
const handleManualRefresh = async () => {
|
const handleManualRefresh = async () => {
|
||||||
setIsRefreshingInbox(true);
|
setIsRefreshingInbox(true);
|
||||||
try {
|
try {
|
||||||
|
const shouldFetchAll = !Boolean(activeFolderPaging?.loadedAll);
|
||||||
await fetchInbox(activeFolder, authPayload, true, credentials, {
|
await fetchInbox(activeFolder, authPayload, true, credentials, {
|
||||||
keepSelection: true,
|
keepSelection: true,
|
||||||
syncOnly: true
|
syncOnly: !shouldFetchAll,
|
||||||
|
fetchAll: shouldFetchAll,
|
||||||
|
forceRefresh: shouldFetchAll
|
||||||
});
|
});
|
||||||
await fetchFolderSizes(authPayload);
|
await fetchFolderSizes(authPayload);
|
||||||
await fetchQuota(authPayload);
|
await fetchQuota(authPayload);
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
id: nx-webmail
|
id: nx-webmail
|
||||||
name: Webmail
|
name: Webmail
|
||||||
tagline: Self-hosted IMAP/SMTP webmail client
|
tagline: Self-hosted IMAP/SMTP webmail client
|
||||||
icon: logo.svg
|
icon: https://git.weektab.org/nexus/umbrel-apps/raw/branch/main/gallery/webmail/icon.png
|
||||||
category: utilities
|
category: utilities
|
||||||
version: "1.0.4"
|
version: "1.0.5"
|
||||||
port: 3001
|
port: 3001
|
||||||
description: >-
|
description: >-
|
||||||
Webmail is a lightweight, self-hosted webmail app for connecting to external
|
Webmail is a lightweight, self-hosted webmail app for connecting to external
|
||||||
@@ -17,7 +17,7 @@ repo: https://git.weektab.org/nexus/webmail
|
|||||||
support: https://git.weektab.org/nexus/webmail/issues
|
support: https://git.weektab.org/nexus/webmail/issues
|
||||||
gallery: []
|
gallery: []
|
||||||
releaseNotes: >-
|
releaseNotes: >-
|
||||||
Refined login visuals with rounded hero edges, modern typography, and updated styling.
|
Improved inbox synchronization to load complete mailbox data right after login.
|
||||||
dependencies: []
|
dependencies: []
|
||||||
path: ""
|
path: ""
|
||||||
defaultUsername: ""
|
defaultUsername: ""
|
||||||
|
|||||||
Reference in New Issue
Block a user