diff --git a/internal/httpapi/accounts.go b/internal/httpapi/accounts.go index 37def4e..6c69b39 100644 --- a/internal/httpapi/accounts.go +++ b/internal/httpapi/accounts.go @@ -228,11 +228,20 @@ func (s *Server) handleProbeAccountFolders(w http.ResponseWriter, r *http.Reques // handleSetAccountFolderMapping persists one account's rename map + excluded set. func (s *Server) handleSetAccountFolderMapping(w http.ResponseWriter, r *http.Request) { + taskID, err := pathID(r, "id") + if err != nil { + http.Error(w, "bad id", http.StatusBadRequest) + return + } accID, err := pathID(r, "accountId") if err != nil { http.Error(w, "bad account id", http.StatusBadRequest) return } + if _, ok := s.findAccount(r, taskID, accID); !ok { + http.Error(w, "account not found", http.StatusNotFound) + return + } var body struct { Mapping map[string]string `json:"mapping"` Excluded []string `json:"excluded"` diff --git a/web/src/api.ts b/web/src/api.ts index 31108e8..55049ca 100644 --- a/web/src/api.ts +++ b/web/src/api.ts @@ -103,9 +103,6 @@ export const probeFolders = ( creds: { src_login: string; src_pass: string; dst_login: string; dst_pass: string }, ) => api(`/api/tasks/${taskId}/probe`, jsonBody(creds)) -export const setFolderMapping = (taskId: number, mapping: Record) => - api(`/api/tasks/${taskId}/folder-mapping`, { ...jsonBody({ mapping }), method: 'PUT' }) - export const probeAccountFolders = (taskId: number, accId: number) => api(`/api/tasks/${taskId}/accounts/${accId}/probe`, { method: 'POST' }) diff --git a/web/src/components/FolderMappingModal.tsx b/web/src/components/FolderMappingModal.tsx index e8da172..f5addaa 100644 --- a/web/src/components/FolderMappingModal.tsx +++ b/web/src/components/FolderMappingModal.tsx @@ -42,7 +42,7 @@ export function FolderMappingModal({ const valueFor = (src: string) => choice[src] ?? defaultDst(src, dstFolders, initialMapping) function confirm() { - const mapping: Record = { ...initialMapping } + const mapping: Record = {} const excluded: string[] = [] for (const src of srcFolders) { if (synced[src] === false) { diff --git a/web/src/pages/TaskDetail.tsx b/web/src/pages/TaskDetail.tsx index 1689536..204f023 100644 --- a/web/src/pages/TaskDetail.tsx +++ b/web/src/pages/TaskDetail.tsx @@ -577,7 +577,7 @@ export function TaskDetail({ id }: { id: number }) { {a.errors}
- {a.status !== 'running' && ( + {a.status !== 'running' && data?.task.status !== 'running' && (