Drag and drop files between folders

This commit is contained in:
2026-05-22 20:08:09 +02:00
parent a3e4a08281
commit 88eebf6944
5 changed files with 85 additions and 7 deletions
+18
View File
@@ -263,6 +263,24 @@ func (s *Server) handleDeleteFile(w http.ResponseWriter, r *http.Request) {
writeJSON(w, 200, map[string]string{"status": "deleted"})
}
func (s *Server) handleMoveFile(w http.ResponseWriter, r *http.Request) {
var req struct {
From string `json:"from"`
To string `json:"to"`
}
if err := decodeBody(r, &req); err != nil || req.From == "" || req.To == "" {
writeJSON(w, 400, map[string]string{"error": "from and to required"})
return
}
userID := getUserID(r)
if err := files.MoveFile(s.dataDir, userID, req.From, req.To); err != nil {
writeJSON(w, 500, map[string]string{"error": "move failed"})
return
}
writeJSON(w, 200, map[string]string{"status": "moved"})
}
func (s *Server) handleSharedFiles(w http.ResponseWriter, r *http.Request) {
// TODO: query permissions table for files shared with this user
// For now return empty list
+1
View File
@@ -35,6 +35,7 @@ func NewRouter(db *sql.DB, dataDir, secret string) http.Handler {
mux.HandleFunc("POST /api/files/create", s.requireAuth(s.handleCreateFile))
mux.HandleFunc("POST /api/files/create-folder", s.requireAuth(s.handleCreateFolder))
mux.HandleFunc("POST /api/files/delete", s.requireAuth(s.handleDeleteFile))
mux.HandleFunc("POST /api/files/move", s.requireAuth(s.handleMoveFile))
mux.HandleFunc("POST /api/files/search", s.requireAuth(s.handleSearchFiles))
mux.HandleFunc("POST /api/files/shared", s.requireAuth(s.handleListSharedFiles))