Jelajahi Sumber

HUE-6058 [responsive] Fix left menu dropzone click behavior and existing upload handler

Enrico Berti 8 tahun lalu
induk
melakukan
a9fb8d7fe4

+ 2 - 2
apps/filebrowser/src/filebrowser/views.py

@@ -1256,9 +1256,9 @@ def _upload_file(request):
             except Exception:
               pass
             if already_exists:
-                msg = _('Destination %(name)s already exists.')  % {'name': dest}
+                msg = _('Destination %(name)s already exists.')  % {'name': filepath}
             else:
-                msg = _('Copy to %(name)s failed: %(error)s') % {'name': dest, 'error': ex}
+                msg = _('Copy to %(name)s failed: %(error)s') % {'name': filepath, 'error': ex}
             raise PopupException(msg)
 
         response.update({

+ 6 - 3
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -5399,12 +5399,15 @@
         canceled: function () {
           $.jHueNotify.info(DropzoneGlobals.i18n.uploadCanceled);
         },
-        complete: function (data) {
-          if (data.xhr.response != '') {
-            var response = JSON.parse(data.xhr.response);
+        complete: function (file) {
+          if (file.xhr.response != '') {
+            var response = JSON.parse(file.xhr.response);
             if (response && response.status != null) {
               if (response.status != 0) {
                 $(document).trigger('error', response.data);
+                if (value.onError) {
+                  value.onError(file.name);
+                }
               }
               else {
                 $(document).trigger('info', response.path + ' ' + DropzoneGlobals.i18n.uploadSucceeded);

+ 15 - 1
desktop/core/src/desktop/templates/responsive.mako

@@ -321,7 +321,7 @@ ${ hueIcons.symbols() }
         <li><a href="javascript: void(0);">Custom App 2</a></li>
       </ul>
       <div class="left-nav-drop">
-        <div data-bind="dropzone: { url: '/filebrowser/upload/file?dest=' + DropzoneGlobals.homeDir, params: {dest: DropzoneGlobals.homeDir}, paramName: 'hdfs_file', onComplete: function(path){ onePageViewModel.currentApp('importer'); onePageViewModel.getActiveAppViewModel(function (vm) { vm.createWizard.source.path(path); })  } }" class="pointer" title="${ _('Import data wizard') }">
+        <div data-bind="dropzone: { clickable: false, url: '/filebrowser/upload/file?dest=' + DropzoneGlobals.homeDir, params: {dest: DropzoneGlobals.homeDir}, paramName: 'hdfs_file', onError: onePageViewModel.dropzoneError, onComplete: onePageViewModel.dropzoneComplete }, click: function(){ onePageViewModel.currentApp('importer')}" class="pointer" title="${ _('Import data wizard') }">
           <div class="dz-message" data-dz-message><i class="fa fa-fw fa-cloud-upload"></i> ${ _('Drop files here') }</div>
         </div>
       </div>
@@ -788,6 +788,20 @@ ${ assist.assistPanel() }
           }
         }
 
+        self.dropzoneError = function (filename) {
+          self.currentApp('importer');
+          self.getActiveAppViewModel(function (vm) {
+            vm.createWizard.source.path(DropzoneGlobals.homeDir + '/' + filename);
+          });
+        }
+
+        self.dropzoneComplete = function (path) {
+          self.currentApp('importer');
+          self.getActiveAppViewModel(function (vm) {
+            vm.createWizard.source.path(path);
+          });
+        }
+
         self.loadAppState();
 
         window.onpopstate = function (event) {