Просмотр исходного кода

Merge pull request #3889 from grafana/dashboard-share-menu

New dropdown menu to surface the snapshot feature, basic styling in p…
Daniel Lee 10 лет назад
Родитель
Сommit
7f15e2c167

+ 10 - 2
public/app/features/dashboard/dashnav/dashnav.html

@@ -24,8 +24,16 @@
 			<i class="fa" ng-class="{'fa-star-o': !dashboardMeta.isStarred, 'fa-star': dashboardMeta.isStarred}" style="color: orange;"></i>
 		</a>
 	</li>
-	<li ng-show="dashboardMeta.canShare">
-		<a class="pointer" ng-click="shareDashboard()" bs-tooltip="'Share dashboard'" data-placement="bottom"><i class="fa fa-share-square-o"></i></a>
+	<li ng-show="dashboardMeta.canShare" class="dropdown">
+		<a class="pointer" ng-click="hideTooltip($event)" bs-tooltip="'Share dashboard'" data-placement="bottom" data-toggle="dropdown"><i class="fa fa-share-square-o"></i></a>
+		<ul class="dropdown-menu">
+			<li ng-if="dashboardMeta.canEdit"><a class="pointer" ng-click="shareDashboard(0)">
+				<i class="fa fa-link"></i>
+				Link to Dashboard</a></li>
+			<li ng-if="dashboardMeta.canEdit"><a class="pointer" ng-click="shareDashboard(1)">
+				<i class="gf-icon gf-icon-snap-multi"></i>
+				Snapshot sharing</a></li>
+		</ul>				
 	</li>
 	<li ng-show="dashboardMeta.canSave">
 		<a ng-click="saveDashboard()" bs-tooltip="'Save dashboard'" data-placement="bottom"><i class="fa fa-save"></i></a>

+ 5 - 2
public/app/features/dashboard/dashnav/dashnav.ts

@@ -42,10 +42,13 @@ export class DashNavCtrl {
       }
     };
 
-    $scope.shareDashboard = function() {
+    $scope.shareDashboard = function(tabIndex) {
+      var modalScope = $scope.$new();
+      modalScope.tabIndex = tabIndex;
+
       $scope.appEvent('show-modal', {
         src: './app/features/dashboard/partials/shareModal.html',
-        scope: $scope.$new(),
+        scope: modalScope
       });
     };
 

+ 1 - 1
public/app/features/dashboard/partials/shareModal.html

@@ -89,7 +89,7 @@
 
 <script type="text/ng-template" id="shareLink.html">
 	<div class="share-modal-big-icon">
-		<i class="fa fa-external-link"></i>
+		<i class="fa fa-link"></i>
 	</div>
 
 	<div ng-include src="'shareLinkOptions.html'"></div>

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

@@ -12,7 +12,7 @@ function (angular, _, require, config) {
   module.controller('ShareModalCtrl', function($scope, $rootScope, $location, $timeout, timeSrv, $element, templateSrv, linkSrv) {
 
     $scope.options = { forCurrent: true, includeTemplateVars: true, theme: 'current' };
-    $scope.editor = { index: 0 };
+    $scope.editor = { index: $scope.tabIndex || 0};
 
     $scope.init = function() {
       $scope.modeSharePanel = $scope.panel ? true : false;

+ 1 - 1
public/app/features/panel/panel_menu.js

@@ -123,7 +123,7 @@ function (angular, $, _) {
             }
 
             var menuTemplate;
-            if ($(e.target).hasClass('fa-external-link')) {
+            if ($(e.target).hasClass('fa-link')) {
               menuTemplate = createExternalLinkMenu($scope);
             } else {
               menuTemplate = createMenuTemplate($scope);