From a0f69ec1a1f7bf0c2e1ccaad1dd556d6ede04717 Mon Sep 17 00:00:00 2001 From: Kerwin Bryant Date: Thu, 20 Feb 2025 06:13:11 +0000 Subject: [PATCH] fix --- routers/web/repo/tree.go | 3 ++- web_src/js/components/ViewFileTreeItem.vue | 6 +++--- .../js/features/repo-view-file-tree-sidebar.ts | 16 ++++++++-------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/routers/web/repo/tree.go b/routers/web/repo/tree.go index 78aa5537f6..b4d214e4d0 100644 --- a/routers/web/repo/tree.go +++ b/routers/web/repo/tree.go @@ -4,6 +4,7 @@ package repo import ( + "errors" "net/http" "code.gitea.io/gitea/modules/base" @@ -58,7 +59,7 @@ func Tree(ctx *context.Context) { recursive := ctx.FormBool("recursive") if ctx.Repo.RefFullName == "" { - ctx.Error(http.StatusBadRequest, "RefFullName", "ref_name is invalid") + ctx.ServerError("RefFullName", errors.New("ref_name is invalid")) return } diff --git a/web_src/js/components/ViewFileTreeItem.vue b/web_src/js/components/ViewFileTreeItem.vue index cbfe68ac8e..9240ba45f5 100644 --- a/web_src/js/components/ViewFileTreeItem.vue +++ b/web_src/js/components/ViewFileTreeItem.vue @@ -25,7 +25,7 @@ const doLoadChildren = async () => { collapsed.value = !collapsed.value; if (!collapsed.value && props.loadChildren) { isLoading.value = true; - const _children = await props.loadChildren(props.item); + const _children = await props.loadChildren(props.item.path); children.value = _children; isLoading.value = false; } @@ -33,11 +33,11 @@ const doLoadChildren = async () => { const doLoadDirContent = () => { doLoadChildren(); - props.loadContent(props.item); + props.loadContent(props.item.path); }; const doLoadFileContent = () => { - props.loadContent(props.item); + props.loadContent(props.item.path); }; const doGotoSubModule = () => { diff --git a/web_src/js/features/repo-view-file-tree-sidebar.ts b/web_src/js/features/repo-view-file-tree-sidebar.ts index 22f7978f30..d7fdb3f2d2 100644 --- a/web_src/js/features/repo-view-file-tree-sidebar.ts +++ b/web_src/js/features/repo-view-file-tree-sidebar.ts @@ -10,7 +10,7 @@ import {initTargetPdfViewer} from '../render/pdf.ts'; import {initTargetButtons} from './common-button.ts'; import {initTargetCopyContent} from './copycontent.ts'; -async function toggleSidebar(visibility, isSigned) { +async function toggleSidebar(visibility: boolean, isSigned: boolean) { const sidebarEl = document.querySelector('.repo-view-file-tree-sidebar'); const showBtnEl = document.querySelector('.show-tree-sidebar-button'); const containerClassList = sidebarEl.parentElement.classList; @@ -29,11 +29,11 @@ async function toggleSidebar(visibility, isSigned) { }); } -async function loadChildren(item, recursive?: boolean) { +async function loadChildren(path: string, recursive?: boolean) { const fileTree = document.querySelector('#view-file-tree'); const apiBaseUrl = fileTree.getAttribute('data-api-base-url'); const refTypeNameSubURL = fileTree.getAttribute('data-current-ref-type-name-sub-url'); - const response = await GET(`${apiBaseUrl}/tree/${refTypeNameSubURL}/${item ? item.path : ''}?recursive=${recursive ?? false}`); + const response = await GET(`${apiBaseUrl}/tree/${refTypeNameSubURL}/${path ?? ''}?recursive=${recursive ?? false}`); const json = await response.json(); if (json instanceof Array) { return json.map((i) => ({ @@ -90,12 +90,12 @@ export async function initViewFileTreeSidebar() { const selectedItem = ref(treePath); - const files = await loadChildren({path: treePath}, true); + const files = await loadChildren(treePath, true); fileTree.classList.remove('is-loading'); - const fileTreeView = createApp(ViewFileTree, {files, selectedItem, loadChildren, loadContent: (item) => { - window.history.pushState(null, null, `${baseUrl}/src${refString}/${item.path}`); - selectedItem.value = item.path; + const fileTreeView = createApp(ViewFileTree, {files, selectedItem, loadChildren, loadContent: (path: string) => { + window.history.pushState(null, null, `${baseUrl}/src${refString}/${path}`); + selectedItem.value = path; loadContent(); }}); fileTreeView.mount(fileTree); @@ -106,7 +106,7 @@ export async function initViewFileTreeSidebar() { }); } -function extractPath(url) { +function extractPath(url: string) { // Create a URL object const urlObj = new URL(url);