fix file rename

This commit is contained in:
2025-05-31 12:11:06 +02:00
parent 821330eba5
commit e0be56a7f4

View File

@@ -127,21 +127,35 @@ export class FileManager {
/**
* Renames a file on the server.
* @async
* @param {string} fileId - The ID of the file to rename
* @param {string} filename - The name of the file to rename
* @param {string} newName - The new name for the file
* @returns {Promise<Object>} A promise that resolves with the result of the rename operation
* @throws {Error} If the rename operation fails
*/
async renameFile(fileId, newName) {
console.log('[FileManager] Renaming file:', { fileId, newName });
async renameFile(filename, newName) {
console.log('[FileManager] Renaming file:', { filename, newName });
// Check if the file has an extension
const hasExtension = filename.includes('.');
if (hasExtension) {
const oldExt = filename.substring(filename.lastIndexOf('.'));
const newExt = newName.includes('.') ? newName.substring(newName.lastIndexOf('.')) : '';
// If the new name doesn't have the same extension, append the old extension
if (newExt !== oldExt) {
newName = newName + oldExt;
}
}
try {
const response = await fetch(`/api/rooms/${this.roomManager.roomId}/files/${fileId}/rename`, {
const response = await fetch(`/api/rooms/${this.roomManager.roomId}/rename`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
},
body: JSON.stringify({
old_name: filename,
new_name: newName,
path: this.fileToRenamePath
})
@@ -156,7 +170,8 @@ export class FileManager {
console.log('[FileManager] Rename result:', result);
if (result.success) {
const fileIndex = this.currentFiles.findIndex(file => file.id === fileId);
// Update the file's name in currentFiles
const fileIndex = this.currentFiles.findIndex(file => file.name === filename && file.path === this.fileToRenamePath);
if (fileIndex !== -1) {
this.currentFiles[fileIndex].name = newName;
await this.roomManager.viewManager.renderFiles(this.currentFiles);