-
-
Notifications
You must be signed in to change notification settings - Fork 615
Open
Description
Describe the feature
Description
I have added a feature that allows users to rename images directly from the App. Users no longer need to navigate to the file path to rename an image.
Current Problem
- There is no option to rename an image directly within the app.
- If a user wants to rename an image, they must locate the file path and rename it using the traditional method.
Expected Feature
- The app should provide an option to rename images internally, so users do not have to worry about file paths or manually opening folders.
Implementation
Backend
- Added a
PUTendpoint: "/rename-image" inbackend/app/routes/images.py. It accepts an image ID and a new name, and returns a success status and message.
class RenameImageRequest(BaseModel):
image_id: str
rename: str
class RenameImageResponse(BaseModel):
success: bool
message: str- Used
osmodule to rename the Image file.
folder_path = os.path.dirname(image_path)
extention = os.path.splitext(image_path)[1]
new_file = os.path.join(folder_path, rename+extention)
os.rename(image_path, new_file)- The sync microservice automatically updates the database with the new image name.
Frontend
- Added API endpoint in
apiEndpoints.tsand implemented therenameImagefunction infrontend/src/api/api-functions/images.ts
export const renameImage = async (
imageId: string,
newName: string,
): Promise<{ success: boolean; message: string }> => {
const response = await apiClient.put(imagesEndpoints.renameImage, {
image_id: imageId,
rename: newName,
});
return response.data;
};- Added Rename functionality to
MediaInfoPanel.tsx - Disabled shortcut keys while renaming an image (e.g., Rotation r, Media Info Panel i, etc.).
Precautions
- Renaming will fail if the new image name contains unsupported special characters (e.g.,
*,^,!, etc.).
Add ScreenShots
Screenshots
Before
rename_before.mp4
After
rename_after.mp4
Record
- I agree to follow this project's Code of Conduct
- I want to work on this issue
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels