From 8e9a0eddf5c35390d93376ef09331fdd294637b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Sat, 28 Mar 2015 17:53:52 +0100 Subject: [PATCH] Custom snapshot topnav header, new custom dashboard snapshot icon, #1623 --- pkg/api/dashboard_snapshot.go | 6 +++- pkg/api/dtos/models.go | 11 ++++--- src/app/directives/topnav.js | 2 +- src/app/features/dashboard/all.js | 1 + src/app/features/dashboard/dashboardCtrl.js | 6 ++-- .../features/dashboard/dashboardNavCtrl.js | 30 ++---------------- .../dashboard/partials/dashboardTopNav.html} | 0 .../dashboard/partials/shareDashboard.html | 8 +++-- .../dashboard/partials/snapshotTopNav.html | 31 +++++++++++++++++++ .../features/dashboard/snapshotTopNavCtrl.js | 22 +++++++++++++ src/app/panels/timepicker/module.js | 25 +++++++++++++++ src/app/partials/dashboard.html | 4 +-- src/css/less/fonts.less | 22 +++++++++++++ src/css/less/grafana.less | 19 ++++++------ src/css/less/navbar.less | 26 +++++++++++++--- src/vendor/css/font-awesome.min.css | 1 + 16 files changed, 157 insertions(+), 57 deletions(-) rename src/app/{partials/dashboard_topnav.html => features/dashboard/partials/dashboardTopNav.html} (100%) create mode 100644 src/app/features/dashboard/partials/snapshotTopNav.html create mode 100644 src/app/features/dashboard/snapshotTopNavCtrl.js create mode 100644 src/css/less/fonts.less diff --git a/pkg/api/dashboard_snapshot.go b/pkg/api/dashboard_snapshot.go index 8de96ec9f21..fe628d580b1 100644 --- a/pkg/api/dashboard_snapshot.go +++ b/pkg/api/dashboard_snapshot.go @@ -65,7 +65,11 @@ func GetDashboardSnapshot(c *middleware.Context) { dto := dtos.Dashboard{ Model: snapshot.Dashboard, - Meta: dtos.DashboardMeta{IsSnapshot: true}, + Meta: dtos.DashboardMeta{ + IsSnapshot: true, + Created: snapshot.Created, + Expires: snapshot.Expires, + }, } metrics.M_Api_Dashboard_Snapshot_Get.Inc(1) diff --git a/pkg/api/dtos/models.go b/pkg/api/dtos/models.go index 2cb9da0189f..53519631d22 100644 --- a/pkg/api/dtos/models.go +++ b/pkg/api/dtos/models.go @@ -4,6 +4,7 @@ import ( "crypto/md5" "fmt" "strings" + "time" m "github.com/grafana/grafana/pkg/models" ) @@ -27,10 +28,12 @@ type CurrentUser struct { } type DashboardMeta struct { - IsStarred bool `json:"isStarred"` - IsHome bool `json:"isHome"` - IsSnapshot bool `json:"isSnapshot"` - Slug string `json:"slug"` + IsStarred bool `json:"isStarred"` + IsHome bool `json:"isHome"` + IsSnapshot bool `json:"isSnapshot"` + Slug string `json:"slug"` + Expires time.Time `json:"expires"` + Created time.Time `json:"created"` } type Dashboard struct { diff --git a/src/app/directives/topnav.js b/src/app/directives/topnav.js index c871dd085cb..88b98d55984 100644 --- a/src/app/directives/topnav.js +++ b/src/app/directives/topnav.js @@ -25,7 +25,7 @@ function (angular) { '' + '' + - '' + + '' + '' + '' + diff --git a/src/app/features/dashboard/all.js b/src/app/features/dashboard/all.js index d297ce502a8..1380034dd19 100644 --- a/src/app/features/dashboard/all.js +++ b/src/app/features/dashboard/all.js @@ -1,6 +1,7 @@ define([ './dashboardCtrl', './dashboardNavCtrl', + './snapshotTopNavCtrl', './saveDashboardAsCtrl', './playlistCtrl', './rowCtrl', diff --git a/src/app/features/dashboard/dashboardCtrl.js b/src/app/features/dashboard/dashboardCtrl.js index a8e0a2e595b..649fc14ede0 100644 --- a/src/app/features/dashboard/dashboardCtrl.js +++ b/src/app/features/dashboard/dashboardCtrl.js @@ -21,6 +21,7 @@ function (angular, $, config) { $timeout) { $scope.editor = { index: 0 }; + $scope.topNavPartial = 'app/features/dashboard/partials/dashboardTopNav.html'; $scope.panels = config.panels; var resizeEventTimeout; @@ -76,10 +77,7 @@ function (angular, $, config) { } if (dashboard.snapshot) { - meta.canEdit = false; - meta.canSave = false; - meta.canStar = false; - meta.canShare = false; + $scope.topNavPartial = 'app/features/dashboard/partials/snapshotTopNav.html'; } $scope.dashboardMeta = meta; diff --git a/src/app/features/dashboard/dashboardNavCtrl.js b/src/app/features/dashboard/dashboardNavCtrl.js index 17bdfb5efc7..6c017ae856e 100644 --- a/src/app/features/dashboard/dashboardNavCtrl.js +++ b/src/app/features/dashboard/dashboardNavCtrl.js @@ -1,25 +1,20 @@ define([ 'angular', 'lodash', - 'moment', 'config', 'store', 'filesaver' ], -function (angular, _, moment) { +function (angular, _) { 'use strict'; var module = angular.module('grafana.controllers'); - module.controller('DashboardNavCtrl', function($scope, $rootScope, alertSrv, $location, playlistSrv, backendSrv, timeSrv, $timeout) { + module.controller('DashboardNavCtrl', function($scope, $rootScope, alertSrv, $location, playlistSrv, backendSrv, $timeout) { $scope.init = function() { $scope.onAppEvent('save-dashboard', $scope.saveDashboard); $scope.onAppEvent('delete-dashboard', $scope.deleteDashboard); - - $scope.onAppEvent('zoom-out', function() { - $scope.zoom(2); - }); }; $scope.openEditView = function(editview) { @@ -136,27 +131,6 @@ function (angular, _, moment) { window.saveAs(blob, $scope.dashboard.title + '-' + new Date().getTime()); }; - $scope.zoom = function(factor) { - var range = timeSrv.timeRange(); - - var timespan = (range.to.valueOf() - range.from.valueOf()); - var center = range.to.valueOf() - timespan/2; - - var to = (center + (timespan*factor)/2); - var from = (center - (timespan*factor)/2); - - if(to > Date.now() && range.to <= Date.now()) { - var offset = to - Date.now(); - from = from - offset; - to = Date.now(); - } - - timeSrv.setTime({ - from: moment.utc(from).toDate(), - to: moment.utc(to).toDate(), - }); - }; - $scope.snapshot = function() { $scope.dashboard.snapshot = true; $rootScope.$broadcast('refresh'); diff --git a/src/app/partials/dashboard_topnav.html b/src/app/features/dashboard/partials/dashboardTopNav.html similarity index 100% rename from src/app/partials/dashboard_topnav.html rename to src/app/features/dashboard/partials/dashboardTopNav.html diff --git a/src/app/features/dashboard/partials/shareDashboard.html b/src/app/features/dashboard/partials/shareDashboard.html index fefca5a9100..d00f95355ea 100644 --- a/src/app/features/dashboard/partials/shareDashboard.html +++ b/src/app/features/dashboard/partials/shareDashboard.html @@ -47,8 +47,12 @@