Commit c27db7a3 by Torkel Ödegaard

Small updates to share dashboard snapshot feature

parent d7587296
...@@ -9,7 +9,7 @@ import ( ...@@ -9,7 +9,7 @@ import (
) )
func CreateDashboardSnapshot(c *middleware.Context, cmd m.CreateDashboardSnapshotCommand) { func CreateDashboardSnapshot(c *middleware.Context, cmd m.CreateDashboardSnapshotCommand) {
cmd.Key = util.GetRandomString(20) cmd.Key = util.GetRandomString(32)
if err := bus.Dispatch(&cmd); err != nil { if err := bus.Dispatch(&cmd); err != nil {
c.JsonApiErr(500, "Failed to create snaphost", err) c.JsonApiErr(500, "Failed to create snaphost", err)
......
...@@ -50,36 +50,33 @@ ...@@ -50,36 +50,33 @@
<h4 class="share-snapshot-header"> <h4 class="share-snapshot-header">
<i ng-if="!loading" class="fa fa-camera"></i> <i ng-if="!loading" class="fa fa-camera"></i>
<i ng-if="loading" class="fa fa-spinner fa-spin"></i> <i ng-if="loading" class="fa fa-spinner fa-spin"></i>
Create dashboard with embedded data and share with anyone Snapshot dashboard & visible data and share with anyone
</h4> </h4>
<div class="editor-row" style="margin: 11px 20px 33px 20px"> <div class="editor-row" style="margin: 11px 20px 33px 20px">
<div class="section"> <div class="section"ng-if="!snapshotUrl">
<div class="tight-form last">
<div ng-if="!snapshotUrl"> <ul class="tight-form-list">
<div class="tight-form last"> <li class="tight-form-item">
<ul class="tight-form-list"> <strong>Snapshot name</strong>
<li class="tight-form-item"> </li>
<strong>Snapshot name</strong> <li>
</li> <input type="text" ng-model="snapshot.name" class="input-large tight-form-input last" >
<li> </li>
<input type="text" ng-model="snapshot.name" class="input-large tight-form-input last" > </ul>
</li> <div class="clearfix"></div>
</ul>
<div class="clearfix"></div>
</div>
</div> </div>
</div>
<div class="gf-form" ng-if="snapshotUrl"> <div class="gf-form" ng-if="snapshotUrl">
<div class="gf-form-row"> <div class="gf-form-row">
<a href="{{snapshotUrl}}" class="large" target="_blank"> <a href="{{snapshotUrl}}" class="large share-snapshot-link" target="_blank">
<i class="fa fa-external-link-square"></i> <i class="fa fa-external-link-square"></i>
{{snapshotUrl}} {{snapshotUrl}}
</a> </a>
<br> <br>
<br> <br>
<button class="btn btn-inverse btn-large" data-clipboard-text="{{snapshotUrl}}" clipboard-button><i class="fa fa-clipboard"></i> Copy</button> <button class="btn btn-inverse btn-large" data-clipboard-text="{{snapshotUrl}}" clipboard-button><i class="fa fa-clipboard"></i> Copy Link</button>
</div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -6,7 +6,7 @@ function (angular) { ...@@ -6,7 +6,7 @@ function (angular) {
var module = angular.module('grafana.controllers'); var module = angular.module('grafana.controllers');
module.controller('ShareSnapshotCtrl', function($scope, $rootScope, $location, backendSrv, $timeout) { module.controller('ShareSnapshotCtrl', function($scope, $rootScope, $location, backendSrv, $timeout, timeSrv) {
$scope.snapshot = { $scope.snapshot = {
name: $scope.dashboard.title name: $scope.dashboard.title
...@@ -24,8 +24,11 @@ function (angular) { ...@@ -24,8 +24,11 @@ function (angular) {
$scope.saveSnapshot = function(makePublic) { $scope.saveSnapshot = function(makePublic) {
var dash = angular.copy($scope.dashboard); var dash = angular.copy($scope.dashboard);
// change title
dash.title = $scope.snapshot.name; dash.title = $scope.snapshot.name;
// make relative times absolute
dash.time = timeSrv.timeRange();
// remove panel queries & links
dash.forEachPanel(function(panel) { dash.forEachPanel(function(panel) {
panel.targets = []; panel.targets = [];
panel.links = []; panel.links = [];
......
...@@ -97,20 +97,4 @@ ...@@ -97,20 +97,4 @@
} }
} }
.share-snapshot {
text-align: center;
.share-snapshot-header {
.fa {
position: absolute;
font-size: 600%;
left: 41%;
color: @grafanaTargetFuncBackground;
z-index: -1;
}
position: relative;
z-index: 1000;
line-height: 106px;
}
}
...@@ -294,3 +294,30 @@ ...@@ -294,3 +294,30 @@
} }
} }
} }
.share-snapshot {
text-align: center;
.share-snapshot-header {
.fa {
position: absolute;
font-size: 600%;
left: 42%;
color: @grafanaTargetFuncBackground;
z-index: -1;
}
position: relative;
z-index: 1000;
line-height: 106px;
margin: 45px 0 22px 0;
}
.share-snapshot-link {
max-width: 716px;
white-space: nowrap;
overflow: hidden;
display: block;
text-overflow: ellipsis;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment