浏览代码

HUE-5945 [core] Add a Knockout Dropzone binding to support file upload anywhere

Enrico Berti 8 年之前
父节点
当前提交
4b719fd

+ 0 - 1
apps/filebrowser/src/filebrowser/templates/listdir_components.mako

@@ -664,7 +664,6 @@ from filebrowser.conf import ENABLE_EXTRACT_UPLOADED_ARCHIVE
 
   <script src="${ static('desktop/ext/js/jquery/plugins/jquery-ui-1.10.4.custom.min.js') }" type="text/javascript" charset="utf-8"></script>
   <script src="${ static('desktop/ext/js/datatables-paging-0.1.js') }" type="text/javascript" charset="utf-8"></script>
-  <script src="${ static('desktop/ext/js/dropzone.min.js') }" type="text/javascript" charset="utf-8"></script>
   <script src="${ static('desktop/js/apiHelper.js') }"></script>
 
 

+ 15 - 0
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -5313,4 +5313,19 @@
     }
   };
 
+  ko.bindingHandlers.dropzone = {
+    init: function (element, valueAccessor) {
+      var value = ko.unwrap(valueAccessor());
+
+      var options = {
+        createImageThumbnails: false
+      };
+
+      $.extend(options, value);
+
+      $(element).addClass('dropzone');
+      new Dropzone(element, options);
+    }
+  };
+
 })();

+ 1 - 0
desktop/core/src/desktop/templates/common_header.mako

@@ -149,6 +149,7 @@ if USE_NEW_EDITOR.get():
   <script src="${ static('desktop/ext/js/knockout.validation.min.js') }"></script>
   <script src="${ static('desktop/js/ko.switch-case.js') }"></script>
   <script src="${ static('desktop/js/ko.hue-bindings.js') }"></script>
+  <script src="${ static('desktop/ext/js/dropzone.min.js') }"></script>
 
   ${ koComponents.all() }
 

+ 5 - 0
desktop/core/src/desktop/templates/common_header_footer_components.mako

@@ -91,6 +91,10 @@ from metadata.conf import has_optimizer, OPTIMIZER
       user: '${ user.username }'
     };
 
+    DropzoneGlobals = {
+      homeDir: '${ user.get_home_directory() }'
+    };
+
     AutocompleterGlobals = {
       i18n: {
         category: {
@@ -154,6 +158,7 @@ from metadata.conf import has_optimizer, OPTIMIZER
 
 <%def name="header_pollers(user, is_s3_enabled, apps)">
   <script type="text/javascript">
+    Dropzone.autoDiscover = false;
     moment.locale(window.navigator.userLanguage || window.navigator.language);
     localeFormat = function (time) {
       var mTime = time;

+ 2 - 4
desktop/core/src/desktop/templates/responsive.mako

@@ -481,10 +481,8 @@ ${ hueIcons.symbols() }
 <script src="${ static('desktop/js/jquery.tablescroller.js') }"></script>
 <script src="${ static('desktop/js/jquery.tableextender.js') }"></script>
 <script src="${ static('desktop/js/jquery.tableextender2.js') }"></script>
-
 <script src="${ static('desktop/ext/js/d3.v3.js') }"></script>
 <script src="${ static('desktop/ext/js/d3.v4.js') }"></script>
-
 <script src="${ static('desktop/js/hue.colors.js') }"></script>
 <script src="${ static('desktop/js/apiHelper.js') }"></script>
 <script src="${ static('desktop/js/ko.charts.js') }"></script>
@@ -498,15 +496,14 @@ ${ hueIcons.symbols() }
 <script src="${ static('desktop/js/jquery.scrollup.js') }"></script>
 <script src="${ static('desktop/js/jquery.tour.js') }"></script>
 <script src="${ static('desktop/js/sqlFunctions.js') }"></script>
-
 <script src="${ static('desktop/ext/js/selectize.min.js') }"></script>
 <script src="${ static('desktop/js/ko.selectize.js') }"></script>
-
 <script src="${ static('desktop/js/ace/ace.js') }"></script>
 <script src="${ static('desktop/js/ace/mode-impala.js') }"></script>
 <script src="${ static('desktop/js/ace/mode-hive.js') }"></script>
 <script src="${ static('desktop/js/ace/ext-language_tools.js') }"></script>
 <script src="${ static('desktop/js/ace.extended.js') }"></script>
+<script src="${ static('desktop/ext/js/dropzone.min.js') }"></script>
 
 # Task History
 <script src="${ static('desktop/js/autocomplete/sql.js') }"></script>
@@ -517,6 +514,7 @@ ${ hueIcons.symbols() }
 <script src="${ static('desktop/js/hue.json.js') }"></script>
 <script src="${ static('notebook/js/notebook.ko.js') }"></script>
 
+
 <script type="text/javascript">
 (function () {
     var proxiedKORegister = ko.components.register;