Respond with "No preview available" instead of sending the file when no preview is available
|Assignee:||Jean-Philippe Lang||% Done:|
For the sake of consistency, I think, that all file types should support "View" within the repository browser. Currently this is only done for images and smaller text files. For other files the View action is similar to Download. I think this behavior is confusing.
The attached patch series, adds this feature.
It does a couple of things:
Adds a test case for #22058 since I was working on this anyway. This patch is not essential in this series.
RepositoriesController#entry_and_raw so that a download is only triggered, when
is_raw is set. Otherwise it always falls back to rendering a template. This might be refactored lateron to remove
entry_and_raw all together since
raw don't share behavior anymore. To keep changes isolated I did not include this refactoring in this patch series.
It adds extends the
entry.html.erb to render the
common/other partial if the file does not match the expected file types or if it is to big for inline rendering.
It adds the
common/other partial which just renders a message "No preview available"
The private helper method
is_entry_text_data? was no longer used and has been removed.
This change is not directly related to the repository browser. But I thought, it would make sense to also support show on all attachments and the change was simple enough.
The changes within the patch series also make integration of Redmine into other services easier, since the other service may safely link to the URL
/repository/revisions/:rev/entry/:file and it will always behave similarly. Before this change, this URL would sometimes render an HTML page, sometimes it would send a file directly. A download can still be forced using the
#3 Updated by Gregor Schmidt over 4 years ago
0002-Add-view-for-no-preview-repository-files.patch patch removed the ability to show the contents of text files without a text file ending, i.e. those that were handled in the second case in
is_entry_text_data?. In this updated patch, I fixed that regression. Furthermore I have changed the implementation, so that file contents are only loaded into memory, when necessary.
The private helper method is_entry_text_data? was no longer used and has been removed.
within this issue's description is now obsolete.
#7 Updated by Jean-Philippe Lang over 4 years ago
- Subject changed from Add View action for all file types within repository browser to Respond with "No preview available" instead of sending the file when no preview is available
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed