summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-04-13 12:14:15 -0500
committerDouwe Maan <douwe@selenight.nl>2017-04-27 12:23:26 -0500
commit44cf2470a97221955679e4975897667c21ff1727 (patch)
tree0b247aca514b8cb9f5c4932160bbc275d793e68a
parent30db305dcedfe23635f9fd779a59746fdd5f2e61 (diff)
downloadgitlab-ce-44cf2470a97221955679e4975897667c21ff1727.tar.gz
Render blob using blob viewers
-rw-r--r--app/views/projects/blob/_blob.html.haml7
-rw-r--r--app/views/projects/blob/_content.html.haml8
-rw-r--r--app/views/projects/blob/_viewer.html.haml5
-rw-r--r--app/views/projects/blob/_viewer_wrapper.html.haml8
4 files changed, 22 insertions, 6 deletions
diff --git a/app/views/projects/blob/_blob.html.haml b/app/views/projects/blob/_blob.html.haml
index 9aafff343f0..3f12d64d044 100644
--- a/app/views/projects/blob/_blob.html.haml
+++ b/app/views/projects/blob/_blob.html.haml
@@ -26,9 +26,4 @@
%article.file-holder
= render "projects/blob/header", blob: blob
- - if blob.empty?
- .file-content.code
- .nothing-here-block
- Empty file
- - else
- = render blob.to_partial_path(@project), blob: blob
+ = render 'projects/blob/content', blob: blob
diff --git a/app/views/projects/blob/_content.html.haml b/app/views/projects/blob/_content.html.haml
new file mode 100644
index 00000000000..7bbc8627a2b
--- /dev/null
+++ b/app/views/projects/blob/_content.html.haml
@@ -0,0 +1,8 @@
+- simple_viewer = blob.simple_viewer
+- rich_viewer = blob.rich_viewer
+- active_viewer = rich_viewer && params[:viewer] != 'simple' ? :rich : :simple
+
+= render 'projects/blob/viewer_wrapper', viewer: simple_viewer, hidden: (active_viewer != :simple)
+
+- if rich_viewer
+ = render 'projects/blob/viewer_wrapper', viewer: rich_viewer, hidden: (active_viewer != :rich)
diff --git a/app/views/projects/blob/_viewer.html.haml b/app/views/projects/blob/_viewer.html.haml
new file mode 100644
index 00000000000..19f1d1251ae
--- /dev/null
+++ b/app/views/projects/blob/_viewer.html.haml
@@ -0,0 +1,5 @@
+- if error = viewer.render_error(override_max_size: params[:override_max_size])
+ = render 'projects/blob/render_error', viewer: viewer, error: error
+- else
+ - viewer.prepare!
+ = render viewer.partial_path, viewer: viewer
diff --git a/app/views/projects/blob/_viewer_wrapper.html.haml b/app/views/projects/blob/_viewer_wrapper.html.haml
new file mode 100644
index 00000000000..8da5022fbea
--- /dev/null
+++ b/app/views/projects/blob/_viewer_wrapper.html.haml
@@ -0,0 +1,8 @@
+- hidden = local_assigns.fetch(:hidden, false)
+- url = url_for(params.merge(format: :json, viewer: viewer.type)) if viewer.server_side?
+.blob-viewer{ data: { type: viewer.type, url: url }, class: ('hidden' if hidden) }
+ - if viewer.server_side?
+ .text-center.prepend-top-default.append-bottom-default
+ = icon('spinner spin 2x', 'aria-hidden' => 'true', 'aria-label' => 'Loading content')
+ - else
+ = render 'projects/blob/viewer', viewer: viewer