Vote #77353
完了Respond with "No preview available" instead of sending the file when no preview is available
0%
説明
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:
h3. @0001-Add-basic-test-for-image-view-22058.patch@
Adds a test case for #22058 since I was working on this anyway. This patch is not essential in this series.
h3. @0002-Add-view-for-no-preview-repository-files.patch@
It changes @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 @entry@ and @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.
h3. @0003-Show-attachment-view-even-is-no-preview-is-available.patch@
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 @/attachments/:id@ or @/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 @../download/..@ and @../raw/..@ URLs.
journals
!no-preview.png!
--------------------------------------------------------------------------------
Please wait before reviewing/applying this patch series. An internal code review at Planio revealed a regression, that would be introduced by 0002-Add-view-for-no-preview-repository-files.patch.
I plan to update the patch tomorrow.
--------------------------------------------------------------------------------
The initial @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 line
> The private helper method is_entry_text_data? was no longer used and has been removed.
within this issue's description is now obsolete.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
I tried out the patches. I felt that the new behavior is consistent and straightforward.
I think this improvement should be included in Redmine 3.3.0.
--------------------------------------------------------------------------------
Committed, thanks.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
related_issues
relates,Closed,28567,"No preview available"
blocks,Needs feedback,22483,Show PDF attachments and repo entries instead of downloading them