fix(db): update redis auth and mongo document refresh
This commit is contained in:
1 parent
9574c44d75
commit
4fee45cf8d
3 files changed
+235
-41
No files matched your search
@@ -365,6 +365,8 @@ const customSaveHandler = computed<CustomSaveHandler>(() => ({
|
||||
async function load() {
|
||||
loading.value = true;
|
||||
error.value = "";
|
||||
const previousSelectedIdx = selectedIdx.value;
|
||||
const previousSelectedId = previousSelectedIdx === null ? null : documentIdentity(documents.value[previousSelectedIdx]);
|
||||
try {
|
||||
const filter = currentDocumentFilter();
|
||||
const sort = sortInput.value.trim() || undefined;
|
||||
@@ -382,6 +384,7 @@ async function load() {
|
||||
lastGridColumns.value = [...keySet];
|
||||
}
|
||||
total.value = result.total;
|
||||
syncSelectedDocumentAfterLoad(previousSelectedIdx, previousSelectedId);
|
||||
} catch (e: unknown) {
|
||||
error.value = e instanceof Error ? e.message : String(e);
|
||||
} finally {
|
||||
@@ -414,6 +417,33 @@ function asRecord(value: unknown): JsonRecord {
|
||||
return {};
|
||||
}
|
||||
|
||||
function documentIdentity(doc: JsonRecord | undefined): string | null {
|
||||
const id = doc?._id;
|
||||
if (id === null || id === undefined) return null;
|
||||
return typeof id === "object" ? JSON.stringify(id) : String(id);
|
||||
}
|
||||
|
||||
function syncSelectedDocumentAfterLoad(previousSelectedIdx: number | null, previousSelectedId: string | null) {
|
||||
if (isNew.value || previousSelectedIdx === null) return;
|
||||
if (!documents.value.length) {
|
||||
selectedIdx.value = null;
|
||||
if (!isEditing.value) editJson.value = "";
|
||||
return;
|
||||
}
|
||||
|
||||
const nextIdx = previousSelectedId ? documents.value.findIndex((doc) => documentIdentity(doc) === previousSelectedId) : previousSelectedIdx < documents.value.length ? previousSelectedIdx : -1;
|
||||
if (nextIdx < 0) {
|
||||
selectedIdx.value = null;
|
||||
if (!isEditing.value) editJson.value = "";
|
||||
return;
|
||||
}
|
||||
|
||||
selectedIdx.value = nextIdx;
|
||||
if (!isEditing.value) {
|
||||
editJson.value = JSON.stringify(documents.value[nextIdx], null, 2);
|
||||
}
|
||||
}
|
||||
|
||||
function selectDoc(idx: number) {
|
||||
selectedIdx.value = idx;
|
||||
editJson.value = JSON.stringify(documents.value[idx], null, 2);
|
||||
|
||||
Reference in new issue
Block a user