diff --git a/client/components/DatabaseDetail.vue b/client/components/DatabaseDetail.vue index 8e57b53..79e9ba1 100644 --- a/client/components/DatabaseDetail.vue +++ b/client/components/DatabaseDetail.vue @@ -16,17 +16,33 @@ const fields = computed(() => { return [] }) +const search = ref('') const editing = ref(false) +const dbContainer = ref() const selectedDocument = ref() +const filtered = computed(() => { + if (!search.value) + return documents.value + return documents.value.filter((document: any) => { + for (const field of fields.value) { + if (document[field].toString().toLowerCase().includes(search.value.toLowerCase())) + return true + } + return false + }) +}) + function addDocument() { editing.value = true - // add newDocument with fields as keys selectedDocument.value = {} for (const field of fields.value) { if (field !== '_id') selectedDocument.value[field] = '' } + + const parent = dbContainer.value?.parentElement + parent?.scrollTo(0, parent.scrollHeight) } function editDocument(document: any) { @@ -63,61 +79,60 @@ async function deleteDocument(document: any) {