Files
Attachments
Preview common files in place and manage attachment storage through a recoverable administrator workflow.
Image and PDF previews
- JPG, JPEG, GIF, PNG, BMP, and PDF support
- Independent image, PDF, gallery, and preview-download switches
- Normal Redmine download icons remain downloads
- Existing attachment visibility checks remain authoritative
Configure and use previews
- Open Configure → Attachments and enable the master preview switch.
- Enable image previews, PDF previews, gallery navigation, and the preview download action independently.
- Apply the settings and open an issue with a permitted attachment.
- Select the normal attachment link to open the overlay. Use previous/next controls for other previewable files and the overlay download action when enabled.
- Use Redmine's explicit download icon when the file should download directly without opening a preview.
The overlay does not create a second authorization path. If Redmine denies access to the attachment, the preview is denied as well. After migrating from another lightbox plugin, disable the old plugin so only one viewer enhances attachment links.
Storage manager and trash
Administrators filter and sort attachments by filename, type, size, age, project, container, and file status. Moving a file to plugin trash keeps its database record and allows restore when the original path is free.
Safely move and restore files
- Open the administrator-only Attachment storage manager and expand the filter panel.
- Filter by filename, type, size, age, project, container, or file status. Review the exact selected rows before taking action.
- Move a file to plugin trash. This moves only the physical file under
Rails.root/files/redmine_ux_toolkit_trash; the Redmine attachment record remains. - To recover it, choose restore. Restore succeeds only when the original destination path is free.
- Use permanent deletion only for a file already recorded in plugin trash. This action is not recoverable through the plugin.
Automated cleanup
Cleanup is disabled by default and runs through the central scheduler. When enabled, it deletes only expired files already registered in plugin trash and processes no more than the configured limit per run.

