summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/blob/viewer/index.js
diff options
context:
space:
mode:
authorClement Ho <clemmakesapps@gmail.com>2018-03-01 18:14:53 +0000
committerClement Ho <clemmakesapps@gmail.com>2018-03-01 18:14:53 +0000
commit119cdf3b3b56aa3c237b070ffde856f09992a8a1 (patch)
tree02e6cd5efb2a7f2f2247da0ca811ef70c54f40a9 /app/assets/javascripts/blob/viewer/index.js
parent56e106d47f76c8692bfc2acdd018f5b2d11afd95 (diff)
parentbb41a889487463f626796a390148ae7870c16824 (diff)
downloadgitlab-ce-webpack-registry.tar.gz
Merge branch 'master' into 'webpack-registry'webpack-registry
# Conflicts: # config/webpack.config.js
Diffstat (limited to 'app/assets/javascripts/blob/viewer/index.js')
-rw-r--r--app/assets/javascripts/blob/viewer/index.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/app/assets/javascripts/blob/viewer/index.js b/app/assets/javascripts/blob/viewer/index.js
index 612f604e725..92ea91c45a8 100644
--- a/app/assets/javascripts/blob/viewer/index.js
+++ b/app/assets/javascripts/blob/viewer/index.js
@@ -5,6 +5,7 @@ import axios from '../../lib/utils/axios_utils';
export default class BlobViewer {
constructor() {
BlobViewer.initAuxiliaryViewer();
+ BlobViewer.initRichViewer();
this.initMainViewers();
}
@@ -16,6 +17,38 @@ export default class BlobViewer {
BlobViewer.loadViewer(auxiliaryViewer);
}
+ static initRichViewer() {
+ const viewer = document.querySelector('.blob-viewer[data-type="rich"]');
+ if (!viewer || !viewer.dataset.richType) return;
+
+ const initViewer = promise => promise
+ .then(module => module.default(viewer))
+ .catch((error) => {
+ Flash('Error loading file viewer.');
+ throw error;
+ });
+
+ switch (viewer.dataset.richType) {
+ case 'balsamiq':
+ initViewer(import(/* webpackChunkName: 'balsamiq_viewer' */ '../balsamiq_viewer'));
+ break;
+ case 'notebook':
+ initViewer(import(/* webpackChunkName: 'notebook_viewer' */ '../notebook_viewer'));
+ break;
+ case 'pdf':
+ initViewer(import(/* webpackChunkName: 'pdf_viewer' */ '../pdf_viewer'));
+ break;
+ case 'sketch':
+ initViewer(import(/* webpackChunkName: 'sketch_viewer' */ '../sketch_viewer'));
+ break;
+ case 'stl':
+ initViewer(import(/* webpackChunkName: 'stl_viewer' */ '../stl_viewer'));
+ break;
+ default:
+ break;
+ }
+ }
+
initMainViewers() {
this.$fileHolder = $('.file-holder');
if (!this.$fileHolder.length) return;