diff --git a/public/app/features/dashboard/dashboardSrv.js b/public/app/features/dashboard/dashboardSrv.js index dc01a328b12..51afefee14a 100644 --- a/public/app/features/dashboard/dashboardSrv.js +++ b/public/app/features/dashboard/dashboardSrv.js @@ -73,7 +73,7 @@ function (angular, $, kbn, _, moment) { for (i = 0; i < this.rows.length; i++) { row = this.rows[i]; for (j = 0; j < row.panels.length; j++) { - callback(row.panels[j], row); + callback(row.panels[j], j, row, i); } } }; diff --git a/public/app/features/dashboard/unsavedChangesSrv.js b/public/app/features/dashboard/unsavedChangesSrv.js index ab933094799..4b4b57ac578 100644 --- a/public/app/features/dashboard/unsavedChangesSrv.js +++ b/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 originalTimepicker = _.findWhere(original.nav, { type: 'timepicker' });