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

Unsaved changes improvements: ignore row collapse state, ignore graph legend sort order, Closes #1702

Torkel Ödegaard преди 10 години
родител
ревизия
b291b18a87
променени са 2 файла, в които са добавени 20 реда и са изтрити 1 реда
  1. 1 1
      public/app/features/dashboard/dashboardSrv.js
  2. 19 0
      public/app/features/dashboard/unsavedChangesSrv.js

+ 1 - 1
public/app/features/dashboard/dashboardSrv.js

@@ -73,7 +73,7 @@ function (angular, $, kbn, _, moment) {
       for (i = 0; i < this.rows.length; i++) {
       for (i = 0; i < this.rows.length; i++) {
         row = this.rows[i];
         row = this.rows[i];
         for (j = 0; j < row.panels.length; j++) {
         for (j = 0; j < row.panels.length; j++) {
-          callback(row.panels[j], row);
+          callback(row.panels[j], j, row, i);
         }
         }
       }
       }
     };
     };

+ 19 - 0
public/app/features/dashboard/unsavedChangesSrv.js

@@ -101,6 +101,25 @@ function(angular, _, config) {
         }
         }
       });
       });
 
 
+      // ignore some panel and row stuff
+      current.forEachPanel(function(panel, panelIndex, row, rowIndex) {
+        var originalRow = original.rows[rowIndex];
+        var originalPanel = original.getPanelById(panel.id);
+        // ignore row collapse state
+        if (originalRow) {
+          row.collapse = originalRow.collapse;
+        }
+        if (originalPanel) {
+          // ignore graph legend sort
+          if (originalPanel.legend && panel.legend)  {
+            delete originalPanel.legend.sortDesc;
+            delete originalPanel.legend.sort;
+            delete panel.legend.sort;
+            delete panel.legend.sortDesc;
+          }
+        }
+      });
+
       var currentTimepicker = _.findWhere(current.nav, { type: 'timepicker' });
       var currentTimepicker = _.findWhere(current.nav, { type: 'timepicker' });
       var originalTimepicker = _.findWhere(original.nav, { type: 'timepicker' });
       var originalTimepicker = _.findWhere(original.nav, { type: 'timepicker' });