Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-06-09 13:10:44 +0300
committerSean McGivern <sean@mcgivern.me.uk>2017-06-09 13:10:44 +0300
commit66aad16d1aaa426237e52ef19385385566f194dc (patch)
tree47784b6a677d4f8d1fd82bc435e0ea6c9380d775 /app/views
parent288e8c7c42bd9507725637dcf7e5b8e0eaa5229c (diff)
parent370bc86fb007c1683495bdf4082bf5442b517895 (diff)
Merge branch 'dm-blob-binaryness-change' into 'master'
Detect if blob binaryness changes after loading all data See merge request !11981
Diffstat (limited to 'app/views')
-rw-r--r--app/views/projects/blob/_viewer.html.haml14
1 files changed, 10 insertions, 4 deletions
diff --git a/app/views/projects/blob/_viewer.html.haml b/app/views/projects/blob/_viewer.html.haml
index 4252f27d007..013f1c267c8 100644
--- a/app/views/projects/blob/_viewer.html.haml
+++ b/app/views/projects/blob/_viewer.html.haml
@@ -1,13 +1,19 @@
- hidden = local_assigns.fetch(:hidden, false)
- render_error = viewer.render_error
-- load_async = local_assigns.fetch(:load_async, viewer.load_async?)
+- load_async = local_assigns.fetch(:load_async, viewer.load_async? && render_error.nil?)
- viewer_url = local_assigns.fetch(:viewer_url) { url_for(params.merge(viewer: viewer.type, format: :json)) } if load_async
.blob-viewer{ data: { type: viewer.type, url: viewer_url }, class: ('hidden' if hidden) }
- - if load_async
- = render viewer.loading_partial_path, viewer: viewer
- - elsif render_error
+ - if render_error
= render 'projects/blob/render_error', viewer: viewer
+ - elsif load_async
+ = render viewer.loading_partial_path, viewer: viewer
- else
- viewer.prepare!
+
+ -# In the rare case where the first kilobyte of the file looks like text,
+ -# but the file turns out to actually be binary after loading all data,
+ -# we fall back on the binary Download viewer.
+ - viewer = BlobViewer::Download.new(viewer.blob) if viewer.binary_detected_after_load?
+
= render viewer.partial_path, viewer: viewer