Browse Source

Added share link for ES stored dashboards

Rashid Khan 13 years ago
parent
commit
6d2af0d848

+ 2 - 0
panels/dashcontrol/load.html

@@ -1,5 +1,6 @@
 <div>
   <a class="close" ng-click="dismiss()" href="">×</a>
+  <h4>Load</h4>
   <div ng-show='panel.load.local'>
     <h5>Local File</h5>
     <form>
@@ -32,6 +33,7 @@
       <tr ng-repeat="dashboard in elasticsearch.dashboards">
         <td><a ng-click="delete_elasticsearch(dashboard)"><i class="icon-remove"></i></a></td>
         <td><a ng-click="dash_load(dashboard['_source']['dashboard'])">{{dashboard._id}}</a></td>
+        <td><a><i class="icon-share" ng-click="share_link(dashboard._id,'elasticsearch',dashboard._id)" bs-modal="'panels/dashcontrol/share.html'"></i></a></td>
       </tr>
     </table>
   </div>

+ 2 - 2
panels/dashcontrol/module.html

@@ -1,5 +1,5 @@
 <kibana-panel ng-controller='dashcontrol'>
   <label class='small'>Dashboard Control</label>
-  <button class='btn' ng-show="panel.load.gist || panel.load.elasticsearch || panel.load.local" data-placement="bottom" data-unique="1" ng-click="elasticsearch_dblist(elasticsearch.query)" bs-popover="'panels/dashcontrol/load.html'"><i class='icon-folder-open'></i> Load <i class='icon-caret-down'></i></button>
-  <button class='btn' ng-show="panel.save.gist || panel.save.elasticsearch || panel.save.local || panel.save.default" data-placement="bottom" data-unique="1" bs-popover="'panels/dashcontrol/save.html'"><i class='icon-save'></i> Save <i class='icon-caret-down'></i></button>
+  <button class='btn' ng-show="panel.load.gist || panel.load.elasticsearch || panel.load.local" data-placement="bottom" data-unique="1" ng-click="elasticsearch_dblist(elasticsearch.query)" bs-popover="'panels/dashcontrol/load.html'"><i class='icon-folder-open'></i>  <i class='icon-caret-down'></i></button>
+  <button class='btn' ng-show="panel.save.gist || panel.save.elasticsearch || panel.save.local || panel.save.default" data-placement="bottom" data-unique="1" bs-popover="'panels/dashcontrol/save.html'"><i class='icon-save'></i>  <i class='icon-caret-down'></i></button>
 </kibana-panel>

+ 9 - 0
panels/dashcontrol/module.js

@@ -89,6 +89,15 @@ angular.module('kibana.dashcontrol', [])
     }  
   }
 
+  $scope.share_link = function(title,type,id) {
+    $scope.share = {
+      location  : location.href.replace(location.hash,""),
+      type      : type,
+      id        : id,
+      link      : location.href.replace(location.hash,"")+"#dashboard/"+type+"/"+id
+    };
+  }
+
   $scope.purge = function() {
     if (Modernizr.localstorage) {
       localStorage['dashboard'] = '';

+ 1 - 0
panels/dashcontrol/save.html

@@ -1,5 +1,6 @@
 <div>
   <a class="close" ng-click="dismiss()" href="">×</a>
+  <h4>Save</h4>
   <div ng-show="panel.save.default || panel.save.local">
     <h5>Locally</h5>
     <form>

+ 13 - 0
panels/dashcontrol/share.html

@@ -0,0 +1,13 @@
+<div class="modal-header">
+  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
+  <h3>{{share.id}} <small>shareable link</small></h3>
+</div>
+<div class="modal-body">
+  <label>Share this dashboard with this URL</label>
+  <input ng-model='share.link' type="text" style="width:90%" onclick="this.select()" onfocus="this.select()" ng-change="share_link(share.type,share.id)">
+
+  
+</div>
+<div class="modal-footer">
+  <button type="button" class="btn btn-success" ng-click="dismiss();$broadcast('render')">Close</button>
+</div>