From 85c8fbae0fa4151622d1d35f287c40a8df668804 Mon Sep 17 00:00:00 2001 From: Peaceultime Date: Wed, 4 Sep 2024 17:50:03 +0200 Subject: [PATCH] Graph + Private indicator for navigation + ProseA search improvement --- components/explorer/NavigationLink.vue | 13 +++++++++---- components/prose/ProseA.vue | 9 ++++++++- components/prose/ProseTag.vue | 4 ++-- components/standard/Input.vue | 2 +- db.sqlite | Bin 839680 -> 839680 bytes server/tasks/sync.ts | 14 ++++++++++++-- 6 files changed, 32 insertions(+), 10 deletions(-) diff --git a/components/explorer/NavigationLink.vue b/components/explorer/NavigationLink.vue index 0a5af20..6fe4ed9 100644 --- a/components/explorer/NavigationLink.vue +++ b/components/explorer/NavigationLink.vue @@ -19,22 +19,27 @@ const emit = defineEmits(['navigate']); \ No newline at end of file diff --git a/components/prose/ProseA.vue b/components/prose/ProseA.vue index 4128239..2eeba5c 100644 --- a/components/prose/ProseA.vue +++ b/components/prose/ProseA.vue @@ -34,7 +34,8 @@ const props = defineProps({ const route = useRoute(); const { hash, pathname, protocol } = parseURL(props.href); const project = computed(() => parseInt(Array.isArray(route.params.projectId) ? '0' : route.params.projectId)); -const { data, status } = await useFetch(`/api/project/${project.value}/file`, { + +const { data, status, execute } = await useFetch(`/api/project/${project.value}/file`, { method: 'GET', query: { search: `%${pathname}` @@ -43,5 +44,11 @@ const { data, status } = await useFetch(`/api/project/${project.value}/file`, { key: `file:${project.value}:%${pathname}`, dedupe: 'defer', ignoreResponseError: true, + immediate: false, }); + +if(pathname && !protocol) +{ + execute(); +} \ No newline at end of file diff --git a/components/prose/ProseTag.vue b/components/prose/ProseTag.vue index b2b1ff9..d022531 100644 --- a/components/prose/ProseTag.vue +++ b/components/prose/ProseTag.vue @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/components/standard/Input.vue b/components/standard/Input.vue index aefea72..34ee7e5 100644 --- a/components/standard/Input.vue +++ b/components/standard/Input.vue @@ -1,3 +1,3 @@ \ No newline at end of file diff --git a/db.sqlite b/db.sqlite index f3a6135840f1c07f514c1c0a49d73889a89bbf9f..7f7119b4e0d02e0f80070a00f2aa4f47e38834aa 100644 GIT binary patch delta 404 zcmZozVBE04c!IQGEdv9?Ss>;E;us+QFj2>twU$Azs$gTv411Qn+nPK#IYduj^qCxU zL7CBea>Ir9yh1>A{6Gw*H`iQj;bY|8%s7ErU^B~yKk|%Rn;9Ga^G^(5X=hPj1Y#y2 zX5P-Cz{0daY#syu5w16E4V?LW8@V+P?iVODhvMX9BYvlB6i7bC9cJh^s<~V{05tTQ*4B^eLBFls8wfga_=$B; zVf~NN5o!oo@sIFd1BCL_2B^=+UEvu9m|Y}k;48qjP-)?f;Lc+?xLt^c!<~%~nkFgY zxWMTcY0}CHw|3(z5-qi{O1QrV7r^p2+UrX((n5C<-7W05JxEkw3gNOlAt9Vf3|Lc; zjxKv@B@U6QbD6O6EZ9DhhP6M}q}H<~NPs|)Y=-4T8p>);aj9ew;jx-TL)%WYO?oqo zkfZSXJk~?c65a%lMo6|q!_I&ngm1H}Qy^=U+*}E^eT-a%ARzmWQkwQrQj{t$zs*CSgrd@tTyl1jZ%ET>|?=Knh=6 zwJh?bYC+-P?QFFoThp)dsk&9&15w%{7BwGqMnkI~nZf@aC5b^lYL>HBXAIZ_$SOKM zpigop7EVl|B00lC{}g%(HIqokovu2bm}-iEsu?6GtxlaHzHAF4`U2=p8`CH@)#JKI z&)iI0y8}CzOz5iPlf`=ud_V#9@hX+bwqSAzG&Z%dC0(na;3$+7JcWvai0NAO#Na=@ CraS-u diff --git a/server/tasks/sync.ts b/server/tasks/sync.ts index 357061a..5a998e5 100644 --- a/server/tasks/sync.ts +++ b/server/tasks/sync.ts @@ -2,6 +2,7 @@ import useDatabase from "~/composables/useDatabase"; import { extname, basename } from 'node:path'; import type { File, FileType } from '~/types/api'; import { CanvasColor, CanvasContent } from "~/types/canvas"; +import useMarkdown from "~/composables/useMarkdown"; const typeMapping: Record = { ".md": "Markdown", @@ -26,7 +27,7 @@ export default defineTask({ } }) as any; - const files = await Promise.all(tree.tree.filter((e: any) => !e.path.startsWith(".")).map(async (e: any) => { + const files: File[] = await Promise.all(tree.tree.filter((e: any) => !e.path.startsWith(".")).map(async (e: any) => { if(e.type === 'tree') { const title = basename(e.path); @@ -56,11 +57,20 @@ export default defineTask({ } })); + /*let tags = []; + const tagFile = files.find(e => e.path === "tags"); + + if(tagFile) + { + useMarkdown()(tagFile.content); + tags.push() + }*/ + const db = useDatabase(); const oldFiles = db.prepare(`SELECT * FROM explorer_files WHERE project = ?1`).all('1') as File[]; const remove = db.prepare(`DELETE FROM explorer_files WHERE project = ?1 AND path = ?2`); - db.transaction(data => data.forEach(e => { remove.run('1', e.path); /* console.log(`Removing ${e.title}`) */ }))(oldFiles.filter(e => !files.find(f => f.path = e.path))); + db.transaction(data => data.forEach(e => remove.run('1', e.path)))(oldFiles.filter(e => !files.find(f => f.path = e.path))); remove.finalize(); const insert = db.prepare(`INSERT INTO explorer_files("project", "path", "owner", "title", "order", "type", "content") VALUES (1, $path, 1, $title, $order, $type, $content)`);