diff --git a/public/app/core/profiler.ts b/public/app/core/profiler.ts index eb05672ec2c..9b07a1b379d 100644 --- a/public/app/core/profiler.ts +++ b/public/app/core/profiler.ts @@ -101,7 +101,8 @@ export class Profiler { renderingCompleted(panelId, panelTimings) { // add render counter to root scope // used by phantomjs render.js to know when panel has rendered - this.$rootScope.panelsRendered = this.panelsRendered + 1; + this.panelsRendered = (this.panelsRendered || 0) + 1; + this.$rootScope.panelsRendered = this.panelsRendered; if (this.enabled) { panelTimings.renderEnd = new Date().getTime(); diff --git a/public/app/features/dashboard/dynamicDashboardSrv.js b/public/app/features/dashboard/dynamicDashboardSrv.js deleted file mode 100644 index f131b47b557..00000000000 --- a/public/app/features/dashboard/dynamicDashboardSrv.js +++ /dev/null @@ -1,182 +0,0 @@ -define([ - 'angular', - 'lodash', -], -function (angular, _) { - 'use strict'; - - var module = angular.module('grafana.services'); - - module.service('dynamicDashboardSrv', function() { - var self = this; - - this.init = function(dashboard) { - if (dashboard.snapshot) { return; } - - this.iteration = new Date().getTime(); - this.process(dashboard); - }; - - this.update = function(dashboard) { - if (dashboard.snapshot) { return; } - - this.iteration = this.iteration + 1; - this.process(dashboard); - }; - - this.process = function(dashboard) { - if (dashboard.templating.list.length === 0) { return; } - this.dashboard = dashboard; - - var i, j, row, panel; - for (i = 0; i < this.dashboard.rows.length; i++) { - row = this.dashboard.rows[i]; - // handle row repeats - if (row.repeat) { - this.repeatRow(row, i); - } - // clean up old left overs - else if (row.repeatRowId && row.repeatIteration !== this.iteration) { - this.dashboard.rows.splice(i, 1); - i = i - 1; - continue; - } - - // repeat panels - for (j = 0; j < row.panels.length; j++) { - panel = row.panels[j]; - if (panel.repeat) { - this.repeatPanel(panel, row); - } - // clean up old left overs - else if (panel.repeatPanelId && panel.repeatIteration !== this.iteration) { - row.panels = _.without(row.panels, panel); - j = j - 1; - } else if (row.repeat || row.repeatRowId) { - continue; - } else if (!_.isEmpty(panel.scopedVars) && panel.repeatIteration !== this.iteration) { - panel.scopedVars = {}; - } - } - } - }; - - // returns a new row clone or reuses a clone from previous iteration - this.getRowClone = function(sourceRow, repeatIndex, sourceRowIndex) { - if (repeatIndex === 0) { - return sourceRow; - } - - var i, panel, row, copy; - var sourceRowId = sourceRowIndex + 1; - - // look for row to reuse - for (i = 0; i < this.dashboard.rows.length; i++) { - row = this.dashboard.rows[i]; - if (row.repeatRowId === sourceRowId && row.repeatIteration !== this.iteration) { - copy = row; - break; - } - } - - if (!copy) { - copy = angular.copy(sourceRow); - this.dashboard.rows.splice(sourceRowIndex + repeatIndex, 0, copy); - - // set new panel ids - for (i = 0; i < copy.panels.length; i++) { - panel = copy.panels[i]; - panel.id = this.dashboard.getNextPanelId(); - } - } - - copy.repeat = null; - copy.repeatRowId = sourceRowId; - copy.repeatIteration = this.iteration; - return copy; - }; - - // returns a new row clone or reuses a clone from previous iteration - this.repeatRow = function(row, rowIndex) { - var variables = this.dashboard.templating.list; - var variable = _.findWhere(variables, {name: row.repeat}); - if (!variable) { - return; - } - - var selected, copy, i, panel; - if (variable.current.text === 'All') { - selected = variable.options.slice(1, variable.options.length); - } else { - selected = _.filter(variable.options, {selected: true}); - } - - _.each(selected, function(option, index) { - copy = self.getRowClone(row, index, rowIndex); - copy.scopedVars = {}; - copy.scopedVars[variable.name] = option; - - for (i = 0; i < copy.panels.length; i++) { - panel = copy.panels[i]; - panel.scopedVars = {}; - panel.scopedVars[variable.name] = option; - } - }, this); - }; - - this.getPanelClone = function(sourcePanel, row, index) { - // if first clone return source - if (index === 0) { - return sourcePanel; - } - - var i, tmpId, panel, clone; - - // first try finding an existing clone to use - for (i = 0; i < row.panels.length; i++) { - panel = row.panels[i]; - if (panel.repeatIteration !== this.iteration && panel.repeatPanelId === sourcePanel.id) { - clone = panel; - break; - } - } - - if (!clone) { - clone = { id: this.dashboard.getNextPanelId() }; - row.panels.push(clone); - } - - // save id - tmpId = clone.id; - // copy properties from source - angular.copy(sourcePanel, clone); - // restore id - clone.id = tmpId; - clone.repeatIteration = this.iteration; - clone.repeatPanelId = sourcePanel.id; - clone.repeat = null; - return clone; - }; - - this.repeatPanel = function(panel, row) { - var variables = this.dashboard.templating.list; - var variable = _.findWhere(variables, {name: panel.repeat}); - if (!variable) { return; } - - var selected; - if (variable.current.text === 'All') { - selected = variable.options.slice(1, variable.options.length); - } else { - selected = _.filter(variable.options, {selected: true}); - } - - _.each(selected, function(option, index) { - var copy = self.getPanelClone(panel, row, index); - copy.span = Math.max(12 / selected.length, panel.minSpan); - copy.scopedVars = copy.scopedVars || {}; - copy.scopedVars[variable.name] = option; - }); - }; - - }); -}); diff --git a/public/app/features/dashboard/dynamic_dashboard_srv.ts b/public/app/features/dashboard/dynamic_dashboard_srv.ts index 3a2405b0e66..790c7310456 100644 --- a/public/app/features/dashboard/dynamic_dashboard_srv.ts +++ b/public/app/features/dashboard/dynamic_dashboard_srv.ts @@ -10,10 +10,6 @@ export class DynamicDashboardSrv { iteration: number; dashboard: any; - constructor() { - this.iteration = new Date().getTime(); - } - init(dashboard) { if (dashboard.snapshot) { return; } this.process(dashboard, {}); @@ -21,14 +17,14 @@ export class DynamicDashboardSrv { update(dashboard) { if (dashboard.snapshot) { return; } - - this.iteration = this.iteration + 1; this.process(dashboard, {}); } process(dashboard, options) { if (dashboard.templating.list.length === 0) { return; } + this.dashboard = dashboard; + this.iteration = (this.iteration || new Date().getTime()) + 1; var cleanUpOnly = options.cleanUpOnly; diff --git a/public/sass/_variables.light.scss b/public/sass/_variables.light.scss index bb38579ce2d..6392586f88e 100644 --- a/public/sass/_variables.light.scss +++ b/public/sass/_variables.light.scss @@ -60,8 +60,8 @@ $page-bg: $white; $body-color: $gray-1; $text-color: $gray-1; $text-color-strong: $white; -$text-color-weak: $gray-2; -$text-color-faint: $gray-3; +$text-color-weak: $gray-3; +$text-color-faint: $gray-4; $text-color-emphasis: $dark-5; $text-shadow-strong: none; diff --git a/public/sass/components/_switch.scss b/public/sass/components/_switch.scss index 72b980a772f..131a971fb2f 100644 --- a/public/sass/components/_switch.scss +++ b/public/sass/components/_switch.scss @@ -64,7 +64,7 @@ $switch-height: 1.5rem; input + label::before { font-family: 'FontAwesome'; content: "\f096"; // square-o - color: $text-color-faint; + color: $text-color-weak; transition: transform 0.4s; backface-visibility: hidden; text-shadow: $text-shadow-faint; diff --git a/public/test/specs/dynamicDashboardSrv-specs.js b/public/test/specs/dynamicDashboardSrv-specs.js index a09c3788377..b6d3a6d52fb 100644 --- a/public/test/specs/dynamicDashboardSrv-specs.js +++ b/public/test/specs/dynamicDashboardSrv-specs.js @@ -1,5 +1,5 @@ define([ - 'app/features/dashboard/dynamicDashboardSrv', + 'app/features/dashboard/dynamic_dashboard_srv', 'app/features/dashboard/dashboardSrv' ], function() { 'use strict'; @@ -12,6 +12,7 @@ define([ ctx.setup = function (setupFunc) { beforeEach(module('grafana.services')); + beforeEach(module('grafana.core')); beforeEach(module(function($provide) { $provide.value('contextSrv', { user: { timezone: 'utc'} diff --git a/public/views/index.html b/public/views/index.html index 2d311ac269a..a54d2c0c166 100644 --- a/public/views/index.html +++ b/public/views/index.html @@ -55,7 +55,7 @@
  • - + Community