fix status bar

This commit is contained in:
fyears 2024-06-22 23:42:36 +08:00
parent 5c1a887b07
commit faa9df1306
4 changed files with 21 additions and 18 deletions

View File

@ -48,8 +48,8 @@
"statusbar_sync_source_manual": "手动:", "statusbar_sync_source_manual": "手动:",
"statusbar_sync_source_dry": "空跑:", "statusbar_sync_source_dry": "空跑:",
"statusbar_sync_source_auto": "自动:", "statusbar_sync_source_auto": "自动:",
"statusbar_sync_source_auto_once_init": "启动时自动", "statusbar_sync_source_auto_once_init": "启动时同步",
"statusbar_sync_source_auto_sync_on_save": "保存时自动", "statusbar_sync_source_auto_sync_on_save": "保存时同步",
"statusbar_sync_status_prefix_success": "同步成功:", "statusbar_sync_status_prefix_success": "同步成功:",
"statusbar_sync_status_prefix_failed": "同步失败:", "statusbar_sync_status_prefix_failed": "同步失败:",
"statusbar_time_years": "{{time}} 年前", "statusbar_time_years": "{{time}} 年前",
@ -58,7 +58,7 @@
"statusbar_time_days": "{{time}} 天前", "statusbar_time_days": "{{time}} 天前",
"statusbar_time_hours": "{{time}} 小时前", "statusbar_time_hours": "{{time}} 小时前",
"statusbar_time_minutes": "{{time}} 分钟前", "statusbar_time_minutes": "{{time}} 分钟前",
"statusbar_time_lessminute": "分钟之内", "statusbar_time_lessminute": "1 分钟之内",
"statusbar_time_now": "刚刚", "statusbar_time_now": "刚刚",
"statusbar_syncing": "正在同步", "statusbar_syncing": "正在同步",
"statusbar_lastsync_label": "日期:{{date}}", "statusbar_lastsync_label": "日期:{{date}}",

View File

@ -47,8 +47,8 @@
"statusbar_sync_source_manual": "手動:", "statusbar_sync_source_manual": "手動:",
"statusbar_sync_source_dry": "空跑:", "statusbar_sync_source_dry": "空跑:",
"statusbar_sync_source_auto": "自動:", "statusbar_sync_source_auto": "自動:",
"statusbar_sync_source_auto_once_init": "啟動時自動", "statusbar_sync_source_auto_once_init": "啟動時同步",
"statusbar_sync_source_auto_sync_on_save": "儲存時自動", "statusbar_sync_source_auto_sync_on_save": "儲存時同步",
"statusbar_sync_status_prefix_success": "同步成功:", "statusbar_sync_status_prefix_success": "同步成功:",
"statusbar_sync_status_prefix_failed": "同步失敗:", "statusbar_sync_status_prefix_failed": "同步失敗:",
"statusbar_time_years": "{{time}} 年前", "statusbar_time_years": "{{time}} 年前",
@ -57,7 +57,7 @@
"statusbar_time_days": "{{time}} 天前", "statusbar_time_days": "{{time}} 天前",
"statusbar_time_hours": "{{time}} 小時前", "statusbar_time_hours": "{{time}} 小時前",
"statusbar_time_minutes": "{{time}} 分鐘前", "statusbar_time_minutes": "{{time}} 分鐘前",
"statusbar_time_lessminute": "分鐘之內", "statusbar_time_lessminute": "1 分鐘之內",
"statusbar_time_now": "剛剛", "statusbar_time_now": "剛剛",
"statusbar_syncing": "正在同步", "statusbar_syncing": "正在同步",
"statusbar_lastsync_label": "日期:{{date}}", "statusbar_lastsync_label": "日期:{{date}}",

View File

@ -420,15 +420,15 @@ export default class RemotelySavePlugin extends Plugin {
) => { ) => {
if (step === 1) { if (step === 1) {
// change status to "syncing..." on statusbar // change status to "syncing..." on statusbar
this.updateLastSyncMsg(s, -1, -1); this.updateLastSyncMsg(s, "syncing", -1, -1);
} else if (step === 8 && everythingOk) { } else if (step === 8 && everythingOk) {
const ts = Date.now(); const ts = Date.now();
await upsertLastSuccessSyncTimeByVault(this.db, this.vaultRandomID, ts); await upsertLastSuccessSyncTimeByVault(this.db, this.vaultRandomID, ts);
this.updateLastSyncMsg(s, ts, null); this.updateLastSyncMsg(s, "not_syncing", ts, null); // hack: 'not_syncing'
} else if (!everythingOk) { } else if (!everythingOk) {
const ts = Date.now(); const ts = Date.now();
await upsertLastFailedSyncTimeByVault(this.db, this.vaultRandomID, ts); await upsertLastFailedSyncTimeByVault(this.db, this.vaultRandomID, ts);
this.updateLastSyncMsg(s, null, ts); // magic number this.updateLastSyncMsg(s, "not_syncing", null, ts);
} }
}; };
@ -1088,17 +1088,21 @@ export default class RemotelySavePlugin extends Plugin {
this.statusBarElement = statusBarItem.createEl("span"); this.statusBarElement = statusBarItem.createEl("span");
this.statusBarElement.setAttribute("data-tooltip-position", "top"); this.statusBarElement.setAttribute("data-tooltip-position", "top");
this.updateLastSyncMsg( if (!this.isSyncing) {
undefined, this.updateLastSyncMsg(
await getLastSuccessSyncTimeByVault(this.db, this.vaultRandomID), undefined,
await getLastFailedSyncTimeByVault(this.db, this.vaultRandomID) "not_syncing",
); await getLastSuccessSyncTimeByVault(this.db, this.vaultRandomID),
await getLastFailedSyncTimeByVault(this.db, this.vaultRandomID)
);
}
// update statusbar text every 30 seconds // update statusbar text every 30 seconds
this.registerInterval( this.registerInterval(
window.setInterval(async () => { window.setInterval(async () => {
if (!this.isSyncing) { if (!this.isSyncing) {
this.updateLastSyncMsg( this.updateLastSyncMsg(
undefined, undefined,
"not_syncing",
await getLastSuccessSyncTimeByVault(this.db, this.vaultRandomID), await getLastSuccessSyncTimeByVault(this.db, this.vaultRandomID),
await getLastFailedSyncTimeByVault(this.db, this.vaultRandomID) await getLastFailedSyncTimeByVault(this.db, this.vaultRandomID)
); );
@ -1798,6 +1802,7 @@ export default class RemotelySavePlugin extends Plugin {
updateLastSyncMsg( updateLastSyncMsg(
s: SyncTriggerSourceType | undefined, s: SyncTriggerSourceType | undefined,
syncStatus: "not_syncing" | "syncing",
lastSuccessSyncMillis: number | null | undefined, lastSuccessSyncMillis: number | null | undefined,
lastFailedSyncMillis: number | null | undefined lastFailedSyncMillis: number | null | undefined
) { ) {
@ -1820,9 +1825,7 @@ export default class RemotelySavePlugin extends Plugin {
const isSuccess = const isSuccess =
(lastSuccessSyncMillis ?? -999) >= (lastFailedSyncMillis ?? -999); (lastSuccessSyncMillis ?? -999) >= (lastFailedSyncMillis ?? -999);
if (this.isSyncing) { if (syncStatus === "syncing") {
// magic number
// otherwise how can we know we are syncing??
lastSyncMsg = lastSyncMsg =
getStatusBarShortMsgFromSyncSource(t, s!) + t("statusbar_syncing"); getStatusBarShortMsgFromSyncSource(t, s!) + t("statusbar_syncing");
} else if (inputTs > 0) { } else if (inputTs > 0) {

View File

@ -2166,7 +2166,7 @@ export class RemotelySaveSettingTab extends PluginSettingTab {
this.plugin.vaultRandomID, this.plugin.vaultRandomID,
-1 -1
); );
this.plugin.updateLastSyncMsg(undefined, null, null); this.plugin.updateLastSyncMsg(undefined, "not_syncing", null, null);
new Notice(t("settings_resetstatusbar_notice")); new Notice(t("settings_resetstatusbar_notice"));
}); });
}); });