Rashid Khan пре 12 година
родитељ
комит
43dc74df4d
3 измењених фајлова са 21 додато и 13 уклоњено
  1. 1 2
      js/services.js
  2. 13 10
      panels/dashcontrol/editor.html
  3. 7 1
      panels/dashcontrol/module.js

+ 1 - 2
js/services.js

@@ -716,8 +716,7 @@ angular.module('kibana.services', [])
       dashboard: angular.toJson(save)
     });
     
-    request = type === 'temp' ? request.ttl(ttl) : request;
-
+    request = type === 'temp' && ttl ? request.ttl(ttl) : request;
 
     // TOFIX: Implement error handling here
     return request.doIndex(

+ 13 - 10
panels/dashcontrol/editor.html

@@ -2,28 +2,28 @@
   <h5>Allow saving to</h5>
   <div class="row-fluid">    
     <div class="span2">
-      <label class="small"> Export </label><input type="checkbox" ng-model="panel.save.local" ng-checked="panel.save.local">
+      <label class="small">Export</label><input type="checkbox" ng-model="panel.save.local" ng-checked="panel.save.local">
     </div>
     <div class="span2">
-      <label class="small"> Defaults </label><input type="checkbox" ng-model="panel.save.default" ng-checked="panel.save.default">
+      <label class="small">Defaults</label><input type="checkbox" ng-model="panel.save.default" ng-checked="panel.save.default">
     </div>
     <div class="span2">
-      <label class="small"> Gist </label><input type="checkbox" ng-model="panel.save.gist" ng-checked="panel.save.gist">
+      <label class="small">Gist <i class="icon-question-sign" bs-tooltip="'Requires your domain to be OAUTH registered with Github'"></i></label><input type="checkbox" ng-model="panel.save.gist" ng-checked="panel.save.gist">
     </div>
     <div class="span2">
-      <label class="small"> Elasticsearch </label><input type="checkbox" ng-model="panel.save.elasticsearch" ng-checked="panel.save.elasticsearch">
+      <label class="small">Elasticsearch</label><input type="checkbox" ng-model="panel.save.elasticsearch" ng-checked="panel.save.elasticsearch">
     </div>
   </div>
   <h5>Allow loading from</h5>
   <div class="row-fluid">    
     <div class="span2">
-      <label class="small"> Local file </label><input type="checkbox" ng-model="panel.load.local" ng-checked="panel.load.local">
+      <label class="small">Local file</label><input type="checkbox" ng-model="panel.load.local" ng-checked="panel.load.local">
     </div>
     <div class="span2">
-      <label class="small"> Gist </label><input type="checkbox" ng-model="panel.load.gist" ng-checked="panel.load.gist">
+      <label class="small">Gist</label><input type="checkbox" ng-model="panel.load.gist" ng-checked="panel.load.gist">
     </div>
     <div class="span2">
-      <label class="small"> Elasticsearch </label><input type="checkbox" ng-model="panel.load.elasticsearch" ng-checked="panel.load.elasticsearch">
+      <label class="small">Elasticsearch</label><input type="checkbox" ng-model="panel.load.elasticsearch" ng-checked="panel.load.elasticsearch">
     </div>
     <div class="span3" ng-show="panel.load.elasticsearch">
       <label class="small">ES list size</label><input class="input-mini" type="number" ng-model="panel.elasticsearch_size">
@@ -31,11 +31,14 @@
   </div>
   <h5>Sharing</h5>
   <div class="row-fluid">    
-    <div class="span3" >
+    <div class="span2" >
       <label class="small">Allow Sharing</label><input type="checkbox" ng-model="panel.temp" ng-checked="panel.temp">
     </div>
-    <div class="span8" ng-show="panel.temp">
-      <label class="small">Shared Link TTL (examples: 1m,1d,1w,30d)</label><input class="input-small" type="text" ng-model="panel.temp_ttl">
+    <div class="span2" ng-show="panel.temp">
+      <label class="small">TTL</label><input type="checkbox" ng-model="panel.ttl_enable" ng-checked="panel.temp">
+    </div>
+    <div class="span5" ng-show="panel.temp && panel.ttl_enable">
+      <label class="small">TTL Duration <i class="icon-question-sign" bs-tooltip="'Elasticsearch date math, eg: 1m,1d,1w,30d'"></i></label><input class="input-small" type="text" ng-model="panel.temp_ttl">
     </div>
   </div>
 </div>

+ 7 - 1
panels/dashcontrol/module.js

@@ -21,6 +21,7 @@
   * hide_control :: Upon save, hide this panel
   * elasticsearch_size :: show this many dashboards under the ES section in the load drop down
   * temp :: Allow saving of temp dashboards
+  * ttl :: Enable setting ttl. 
   * temp_ttl :: How long should temp dashboards persist
 
 */
@@ -48,6 +49,7 @@ angular.module('kibana.dashcontrol', [])
     hide_control: false,
     elasticsearch_size: 20,
     temp: true,
+    ttl_enable: true,
     temp_ttl: '30d'
   };
   _.defaults($scope.panel,_d);
@@ -83,7 +85,11 @@ angular.module('kibana.dashcontrol', [])
   };
 
   $scope.elasticsearch_save = function(type,ttl) {
-    dashboard.elasticsearch_save(type,($scope.elasticsearch.title || dashboard.current.title),ttl).then(
+    dashboard.elasticsearch_save(
+      type,
+      ($scope.elasticsearch.title || dashboard.current.title),
+      ($scope.panel.ttl_enable ? ttl : false)
+      ).then(
       function(result) {
       if(!_.isUndefined(result._id)) {
         $scope.alert('Dashboard Saved','This dashboard has been saved to Elasticsearch as "' +