Преглед на файлове

HUE-7949 [dashboard] Set widgets previous sizes on right assist drag too

Enrico Berti преди 7 години
родител
ревизия
f0cc6fa91b
променени са 1 файла, в които са добавени 33 реда и са изтрити 29 реда
  1. 33 29
      desktop/libs/dashboard/src/dashboard/templates/common_search.mako

+ 33 - 29
desktop/libs/dashboard/src/dashboard/templates/common_search.mako

@@ -3816,10 +3816,10 @@ $(document).ready(function () {
       var isEmptyWidget = false;
       $('li.gs-w').each(function () {
         var dimensions = {
-          col: parseInt($(this).attr('data-immutable-col')),
-          row: parseInt($(this).attr('data-immutable-row')),
-          sizex: parseInt($(this).attr('data-immutable-sizex')),
-          sizey: parseInt($(this).attr('data-immutable-sizey'))
+          col: parseInt($(this).attr('data-previous-col')),
+          row: parseInt($(this).attr('data-previous-row')),
+          sizex: parseInt($(this).attr('data-previous-sizex')),
+          sizey: parseInt($(this).attr('data-previous-sizey'))
         }
         var $widget = $(this);
         isEmptyWidget = $widget.children('.empty-gridster-widget').length > 0;
@@ -3900,8 +3900,8 @@ $(document).ready(function () {
             }
             $huePreviewHolder.attr('data-overlapzone', overlapZone);
             $huePreviewHolder.attr('data-widgetid', $widget.attr('data-widgetid'));
-            $huePreviewHolder.attr('data-widgetrow', $widget.attr('data-immutable-row'));
-            $huePreviewHolder.attr('data-widgetcol', $widget.attr('data-immutable-col'));
+            $huePreviewHolder.attr('data-widgetrow', $widget.attr('data-previous-row'));
+            $huePreviewHolder.attr('data-widgetcol', $widget.attr('data-previous-col'));
             skipRestoreOnStop = false;
           }
           else {
@@ -3949,8 +3949,8 @@ $(document).ready(function () {
           var maxRow = 1;
           $('li.gs-w').each(function () {
             var $widget = $(this);
-            if (parseInt($widget.attr('data-immutable-row')) + parseInt($widget.attr('data-immutable-sizey')) - 1 > maxRow) {
-              maxRow = parseInt($widget.attr('data-immutable-row')) + parseInt($widget.attr('data-immutable-sizey')) - 1;
+            if (parseInt($widget.attr('data-previous-row')) + parseInt($widget.attr('data-previous-sizey')) - 1 > maxRow) {
+              maxRow = parseInt($widget.attr('data-previous-row')) + parseInt($widget.attr('data-previous-sizey')) - 1;
             }
           });
           for (var i = coords.row; i <= maxRow; i++) {
@@ -3988,13 +3988,13 @@ $(document).ready(function () {
     widgetGridWidth = parseInt(hueUtils.getStyleFromCSSClass('[data-sizex="1"]').width);
   }, 'dashboard');
 
-  function restoreWidgetSizes() {
+  function restoreWidgetSizes () {
     $('li.gs-w').each(function () {
       var $widget = $(this);
-      $widget.attr('data-sizex', $widget.attr('data-immutable-sizex'));
-      $widget.attr('data-sizey', $widget.attr('data-immutable-sizey'));
-      $widget.attr('data-col', $widget.attr('data-immutable-col'));
-      $widget.attr('data-row', $widget.attr('data-immutable-row'));
+      $widget.attr('data-sizex', $widget.attr('data-previous-sizex'));
+      $widget.attr('data-sizey', $widget.attr('data-previous-sizey'));
+      $widget.attr('data-col', $widget.attr('data-previous-col'));
+      $widget.attr('data-row', $widget.attr('data-previous-row'));
       $widget.removeAttr('data-original-sizex');
       $widget.removeAttr('data-original-sizey');
       $widget.removeAttr('data-original-col');
@@ -4002,6 +4002,16 @@ $(document).ready(function () {
     });
   }
 
+  function setPreviousWidgetSizes () {
+    $('li.gs-w').each(function () {
+      var $widget = $(this);
+      $widget.attr('data-previous-sizex', $widget.attr('data-sizex'));
+      $widget.attr('data-previous-sizey', $widget.attr('data-sizey'));
+      $widget.attr('data-previous-col', $widget.attr('data-col'));
+      $widget.attr('data-previous-row', $widget.attr('data-row'));
+    });
+  }
+
   window.setInterval(function () {
     if (searchViewModel.isGridster() && !isDraggingOrResizingWidgets) {
       var $gridster = $('.gridster>ul').data('gridster');
@@ -4019,14 +4029,7 @@ $(document).ready(function () {
   var skipRestoreOnStop = false;
   huePubSub.subscribe('dashboard.top.widget.drag.start', function (options) {
     isDraggingOrResizingWidgets = true;
-    $('li.gs-w').each(function () {
-      var $widget = $(this);
-      $widget.attr('data-immutable-sizex', $widget.attr('data-sizex'));
-      $widget.attr('data-immutable-sizey', $widget.attr('data-sizey'));
-      $widget.attr('data-immutable-col', $widget.attr('data-col'));
-      $widget.attr('data-immutable-row', $widget.attr('data-row'));
-    });
-
+    setPreviousWidgetSizes();
     skipRestoreOnStop = false;
     var widgetClone = ko.mapping.toJS(options.widget);
     widgetClone.id = UUID();
@@ -4051,6 +4054,7 @@ $(document).ready(function () {
 
   huePubSub.subscribe('draggable.text.meta', function(options) {
     if (searchViewModel.isGridster()) {
+      setPreviousWidgetSizes();
       addPreviewHolder(options);
     }
   }, 'dashboard');
@@ -4216,10 +4220,10 @@ $(document).ready(function () {
             item.size_y(targetHeight);
             $gridster.resize_widget($(item.gridsterElement), parseInt(item.size_x()), parseInt(item.size_y()), function () {
               var $widget = $(item.gridsterElement);
-              $widget.attr('data-immutable-sizex', $widget.attr('data-sizex'));
-              $widget.attr('data-immutable-sizey', $widget.attr('data-sizey'));
-              $widget.attr('data-immutable-col', $widget.attr('data-col'));
-              $widget.attr('data-immutable-row', $widget.attr('data-row'));
+              $widget.attr('data-previous-sizex', $widget.attr('data-sizex'));
+              $widget.attr('data-previous-sizey', $widget.attr('data-sizey'));
+              $widget.attr('data-previous-col', $widget.attr('data-col'));
+              $widget.attr('data-previous-row', $widget.attr('data-row'));
               huePubSub.publish('gridster.clean.whitespace');
             });
           }
@@ -4236,10 +4240,10 @@ $(document).ready(function () {
             widget: widget,
             callback: function ($el) {
               $gridster.move_widget($el, 1, 1);
-              $el.attr('data-immutable-sizex', $widget.attr('data-sizex'));
-              $el.attr('data-immutable-sizey', $widget.attr('data-sizey'));
-              $el.attr('data-immutable-col', $widget.attr('data-col'));
-              $el.attr('data-immutable-row', $widget.attr('data-row'));
+              $el.attr('data-previous-sizex', $widget.attr('data-sizex'));
+              $el.attr('data-previous-sizey', $widget.attr('data-sizey'));
+              $el.attr('data-previous-col', $widget.attr('data-col'));
+              $el.attr('data-previous-row', $widget.attr('data-row'));
               huePubSub.publish('gridster.clean.whitespace');
             }
           })