Add link to container on attachment preview
When displaying the attachment preview, there's currently no on-page way to navigate back to the attachment container. We're relying on the browser back button here, which might be impossible, if somebody followed a direct link to the attachment.
The reason, why this is currently not implemented, is probably because attachments may belong to many different Redmine records types and generating a link is therefore not straight forward. Also, plugins may bring their own attachable objects, which need to be considered.
The attached patch, adds a general
link_to_record helper, which would generate general purpose links to any object within in Redmine. This is further refined with the
link_to_attachment_container helper, which behaves slightly different for projects and versions.
link_to_record for projects links to the project overview,
link_to_attachment_container links to the files tab.
This method can then be used on the attachment view, to link to the proper container.
These new methods are currently implemented for all records within Redmine core, which are either attachable or customizable (since Redmine 4.0 will also support file custom fields).
The methods are implemented via an Hash of Procs. This should enable plugin authors to extend them easily, if their records can have attachments as well.
In the future,
link_to_record may be further extended to support all Redmine records. It may then become a general purpose helper for whenever a generic link to an object is needed.
The patch provides tests for the new helpers. Futhermore, one other integration test needed to change, since the tested view is now slightly different.
This is how it would look like: