From a9363e8c067d603dc636971f3479b5c857579563 Mon Sep 17 00:00:00 2001 From: Peaceultime Date: Mon, 18 Nov 2024 00:10:23 +0100 Subject: [PATCH] Progressing on the draggable tree for the project configuration --- bun.lockb | Bin 405416 -> 405918 bytes components/base/DraggableTree.vue | 80 ++++++++ components/base/DraggableTreeItem.vue | 140 ++++++++++++++ db.sqlite | Bin 569344 -> 569344 bytes db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 168952 -> 168952 bytes package.json | 1 + pages/explore/edit/[...path].vue | 9 +- pages/explore/edit/index.vue | 258 +++++++++++++++++++++----- server/api/navigation.get.ts | 2 +- shared/general.utils.ts | 4 + 11 files changed, 444 insertions(+), 50 deletions(-) create mode 100644 components/base/DraggableTree.vue create mode 100644 components/base/DraggableTreeItem.vue diff --git a/bun.lockb b/bun.lockb index d0453b3e91bf39d2effabede9f037e80f8387402..ea2c86aaa598dc4b1a1baf95d146ad0e94bc80d6 100644 GIT binary patch delta 59221 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 + + + + + + + + + \ No newline at end of file diff --git a/components/base/DraggableTreeItem.vue b/components/base/DraggableTreeItem.vue new file mode 100644 index 0000000..7649ebe --- /dev/null +++ b/components/base/DraggableTreeItem.vue @@ -0,0 +1,140 @@ + + + \ No newline at end of file diff --git a/db.sqlite b/db.sqlite index d23b34bf6166fe78061a3f434b7f02875fcfb7aa..cc605738ef2a0c28b0ce9db56958069649d593b1 100644 GIT binary patch delta 55 zcmZp8pw#d{X~X$=PBZ0Z9Y&T=PL|1c@>N*U&B_>>650|N+Y*@C5}4Z(SlSX;+Y;E? L64;j|a0CDV9O4oh delta 55 zcmZp8pw#d{X~X$=PSa-+I*cr#oGg>?U9p0l#dCA!UEiN@9s_Z_xvRQ4bKb3~AorbFH0lG4+Sl1eU$H%CqH8Y|s z+cW#iJ)ia$sBUYHLsxcKz1qTchYG4sn={dsT}_{>mDf87HQbuB(3QDr-?`FWt2z(G z3$6RmmF*DnzQ%RU8P#pAU(uDF3z!<9>vAFv#k4kebY*kwrjq0|}E_7uQP3vCFzI_nYr=8vC%7X8mk&6EL2sPX~r=u&A z;+n^@qg6u=#iyM!(3SPL?{a%`eL`3EbE_Or%FGRDreP%Vugo{~=3Qh&bK7rp(>xD2cwBo~i|SKb zIdo+o<(z*_Eq;L-ZnnSBm7PAXlrlYFj~t3moiHLRiT9`4BOf(Xw*_xSH?8t^DHP4+(70@_bsMVi zl{YSh8!q)5>rWJ7hbnv{fJ@2`#&zz+VQ}_;-!j~_%O(;2<3=7A%?{O(?l|OZMd1W*+)WmmjxD@*9*o86u+Nusy z7>`R~dkpK8u0uu6P=)Wsa49SlzGd~t>Ulg&p)D?jT1iV+1eL6?hAFherO@o%g}mR| z{nLR8FYq(T<4m`w_cqsqvEfn|>b>Ylps`*d)r+xUXbpy236sDG7oaj8odbUk=)rWQBUeTKNy$^J7tXa2X~Jye|$E_Fwj z99u3oOKCP#oewT`H5aFCt-N9bO3@ej85M9TJF;ck>h+q8py&lEQ^ck0y}Q=S%goC` bsRgL4374{-01p4+x^>w=Wq - + @@ -51,12 +51,13 @@ import FakeA from '~/components/prose/FakeA.vue'; const route = useRouter().currentRoute; const path = computed(() => Array.isArray(route.value.params.path) ? route.value.params.path[0] : route.value.params.path); const { user, loggedIn } = useUserSession(); +const sessionContent = useSessionStorage(path.value, undefined); const toaster = useToast(); const saveStatus = ref<'idle' | 'pending' | 'success' | 'error'>('idle'); const { data: page, status, error } = await useLazyFetch(`/api/file/${encodeURIComponent(path.value)}`, { watch: [ route, path ]}); -const content = computed(() => page.value?.content); +const content = computed(() => sessionContent.value ?? page.value?.content); const debounced = useDebounce(content, 250); if(!loggedIn || (page.value && page.value.owner !== user.value?.id)) @@ -64,6 +65,10 @@ if(!loggedIn || (page.value && page.value.owner !== user.value?.id)) useRouter().replace({ name: 'explore-path', params: { path: path.value } }); } +watch(debounced, (value) => { + sessionContent.value = value; +}); + async function save(): Promise { saveStatus.value = 'pending'; diff --git a/pages/explore/edit/index.vue b/pages/explore/edit/index.vue index a24c1d6..6e27d9d 100644 --- a/pages/explore/edit/index.vue +++ b/pages/explore/edit/index.vue @@ -1,37 +1,49 @@ \ No newline at end of file diff --git a/server/api/navigation.get.ts b/server/api/navigation.get.ts index e386e92..12fe548 100644 --- a/server/api/navigation.get.ts +++ b/server/api/navigation.get.ts @@ -2,7 +2,7 @@ import useDatabase from '~/composables/useDatabase'; import { explorerContentTable } from '~/db/schema'; import type { NavigationItem } from '~/schemas/navigation'; -export type NavigationTreeItem = NavigationItem & { children?: NavigationItem[] }; +export type NavigationTreeItem = NavigationItem & { children?: NavigationTreeItem[] }; export default defineEventHandler(async (e) => { const { user } = await getUserSession(e); diff --git a/shared/general.utils.ts b/shared/general.utils.ts index 6643232..58fabe4 100644 --- a/shared/general.utils.ts +++ b/shared/general.utils.ts @@ -2,6 +2,10 @@ export function unifySlug(slug: string | string[]): string { return (Array.isArray(slug) ? slug.join('/') : slug); } +export function parsePath(path: string): string +{ + return path.toLowerCase().replaceAll(" ", "-").normalize("NFD").replace(/[\u0300-\u036f]/g, ""); +} export function parseId(id: string | undefined): string |undefined { return id?.normalize('NFD')?.replace(/[\u0300-\u036f]/g, '')?.replace(/^\d\. */g, '')?.replace(/\s/g, "-")?.replace(/%/g, "-percent")?.replace(/\?/g, "-q")?.toLowerCase();