瀏覽代碼

HUE-4691 [fb] S3 D&D is allowed after a page refresh but not after opening a directory

Enrico Berti 9 年之前
父節點
當前提交
328ebfb710
共有 1 個文件被更改,包括 16 次插入9 次删除
  1. 16 9
      apps/filebrowser/src/filebrowser/templates/listdir_components.mako

+ 16 - 9
apps/filebrowser/src/filebrowser/templates/listdir_components.mako

@@ -520,7 +520,7 @@ from django.utils.translation import ugettext as _
 </div>
 
   <script id="fileTemplate" type="text/html">
-    <tr style="cursor: pointer" data-bind="drop: { enabled: name !== '.' && type !== 'file' && !$root.isS3(), value: $data }, event: { mouseover: toggleHover, mouseout: toggleHover, contextmenu: showContextMenu }, click: $root.viewFile, css: { 'row-selected': selected(), 'row-highlighted': highlighted() }">
+    <tr style="cursor: pointer" data-bind="drop: { enabled: name !== '.' && type !== 'file' && (!$root.isS3() || ($root.isS3() && !$root.isS3Root())), value: $data }, event: { mouseover: toggleHover, mouseout: toggleHover, contextmenu: showContextMenu }, click: $root.viewFile, css: { 'row-selected': selected(), 'row-highlighted': highlighted() }">
       <td class="center" data-bind="click: handleSelect" style="cursor: default">
         <div data-bind="visible: name != '..', css: { hueCheckbox: name != '..', 'fa': name != '..', 'fa-check': selected }"></div>
       </td>
@@ -534,7 +534,7 @@ from django.utils.translation import ugettext as _
         <a href="#" data-bind="click: $root.viewFile"><i class="fa fa-level-up"></i></a>
         <!-- /ko -->
         <!-- ko if: name != '..' -->
-        <strong><a href="#" data-bind="drag: { value: $data }, click: $root.viewFile, text: name, attr: { 'draggable': $.inArray(name, ['.', '..', '.Trash']) === -1 && !$root.isS3()}"></a></strong>
+        <strong><a href="#" data-bind="drag: { enabled: (!$root.isS3() || ($root.isS3() && !$root.isS3Root())), value: $data }, click: $root.viewFile, text: name, attr: { 'draggable': $.inArray(name, ['.', '..', '.Trash']) === -1 && !$root.isS3()}"></a></strong>
         <!-- /ko -->
       </td>
       <td>
@@ -582,13 +582,17 @@ from django.utils.translation import ugettext as _
     var _dropzone;
 
     ko.bindingHandlers.drag = {
-      init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
+      update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
         var dragElement = $(element);
+        try {
+          dragElement.draggable('destroy');
+        }
+        catch (e) {}
         var dragOptions = {
           helper: 'clone',
           revert: true,
           revertDuration: 0,
-          start: function() {
+          start: function () {
             if ($(element).is('[draggable]')) {
               viewModel.selected(true);
             }
@@ -602,16 +606,19 @@ from django.utils.translation import ugettext as _
     };
 
     ko.bindingHandlers.drop = {
-      init: function(element, valueAccessor) {
+      update: function (element, valueAccessor) {
         var dropElement = $(element);
-
-        if (valueAccessor().enabled){
+        try {
+          dropElement.droppable('destroy');
+        }
+        catch (e) {}
+        if (valueAccessor().enabled) {
           var dropOptions = {
             hoverClass: 'drag-hover',
-            drop: function(event, ui) {
+            drop: function (event, ui) {
               var destpath = valueAccessor().value.path;
 
-              dropElement.fadeOut(200, function(){
+              dropElement.fadeOut(200, function () {
                 dropElement.fadeIn(200);
               });