Implement unified file editing for all non-media files
Major improvements: - Remove separate view/edit modes - editing state can view content too - Expand text editing support to ALL file types except media/binary files - Add realistic undo functionality for copy/cut operations - Implement moveSSHItem API for proper cross-directory file moves - Add file existence checks to prevent copy failures - Enhanced error logging with full command and path information Key changes: - FileWindow: Expand editable file types to exclude only media extensions - FileViewer: Remove view mode toggle, direct editing interface - Backend: Add moveItem API endpoint for cut operations - Backend: Add file existence verification before copy operations - Frontend: Complete undo system for copy (delete copied files) and cut (move back to original location) File type handling: - Media files (jpg, mp3, mp4, etc.) → Display only - All other files → Direct text editing (js, py, txt, config files, unknown extensions) 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1178,6 +1178,29 @@ export async function renameSSHItem(
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "rename SSH item");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export async function moveSSHItem(
|
||||
sessionId: string,
|
||||
oldPath: string,
|
||||
newPath: string,
|
||||
hostId?: number,
|
||||
userId?: string,
|
||||
): Promise<any> {
|
||||
try {
|
||||
const response = await fileManagerApi.put("/ssh/moveItem", {
|
||||
sessionId,
|
||||
oldPath,
|
||||
newPath,
|
||||
hostId,
|
||||
userId,
|
||||
});
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
handleApiError(error, "move SSH item");
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user