Explorar el Código

change timescaledb to checkbox instead of select

Sven Klemm hace 7 años
padre
commit
c3aad10047

+ 1 - 1
pkg/tsdb/postgres/macros.go

@@ -131,7 +131,7 @@ func (m *postgresMacroEngine) evaluateMacro(name string, args []string) (string,
 			}
 		}
 
-		if m.query.DataSource.JsonData.Get("timescaledb").MustString("auto") == "enabled" {
+		if m.query.DataSource.JsonData.Get("timescaledb").MustBool() {
 			return fmt.Sprintf("time_bucket('%vs',%s) AS time", interval.Seconds(), args[0]), nil
 		} else {
 			return fmt.Sprintf("floor(extract(epoch from %s)/%v)*%v AS time", args[0], interval.Seconds(), interval.Seconds()), nil

+ 1 - 1
pkg/tsdb/postgres/macros_test.go

@@ -17,7 +17,7 @@ func TestMacroEngine(t *testing.T) {
 		engine := newPostgresMacroEngine()
 		query := &tsdb.Query{DataSource: &models.DataSource{JsonData: simplejson.New()}}
 		queryTS := &tsdb.Query{DataSource: &models.DataSource{JsonData: simplejson.New()}}
-		queryTS.DataSource.JsonData.Set("timescaledb", "enabled")
+		queryTS.DataSource.JsonData.Set("timescaledb", true)
 
 		Convey("Given a time range between 2018-04-12 00:00 and 2018-04-12 00:05", func() {
 			from := time.Date(2018, 4, 12, 18, 0, 0, 0, time.UTC)

+ 1 - 19
public/app/plugins/datasource/postgres/datasource.ts

@@ -123,27 +123,9 @@ export class PostgresDatasource {
       .then(data => this.responseParser.parseMetricFindQueryResult(refId, data));
   }
 
-  testDatasource(control) {
+  testDatasource() {
     return this.metricFindQuery('SELECT 1', {})
       .then(res => {
-        if (control.current.jsonData.timescaledb === 'auto') {
-          return this.metricFindQuery("SELECT 1 FROM pg_extension WHERE extname='timescaledb'", {})
-            .then(res => {
-              if (res.length === 1) {
-                control.current.jsonData.timescaledb = 'enabled';
-                return this.backendSrv.put('/api/datasources/' + this.id, control.current).then(settings => {
-                  control.current = settings.datasource;
-                  control.updateFrontendSettings();
-                  return { status: 'success', message: 'Database Connection OK, TimescaleDB found' };
-                });
-              }
-              throw new Error('timescaledb not found');
-            })
-            .catch(err => {
-              // query errored out or empty so timescaledb is not available
-              return { status: 'success', message: 'Database Connection OK' };
-            });
-        }
         return { status: 'success', message: 'Database Connection OK' };
       })
       .catch(err => {

+ 1 - 7
public/app/plugins/datasource/postgres/partials/config.html

@@ -42,13 +42,7 @@
 
 <div class="gf-form-group">
 	<div class="gf-form">
-		<label class="gf-form-label width-7">TimescaleDB</label>
-		<div class="gf-form-select-wrapper max-width-8 gf-form-select-wrapper--has-help-icon">
-			<select class="gf-form-input" ng-model="ctrl.current.jsonData.timescaledb" ng-options="mode for mode in ['auto', 'enabled', 'disabled']" ng-init="ctrl.current.jsonData.timescaledb=ctrl.current.jsonData.timescaledb || 'auto'"></select>
-			<info-popover mode="right-absolute">
-				This option determines whether TimescaleDB features will be used.
-			</info-popover>
-		</div>
+		<gf-form-switch class="gf-form" label="TimescaleDB" tooltip="Use TimescaleDB features in Grafana" label-class="width-9" checked="ctrl.current.jsonData.timescaledb" switch-class="max-width-6"></gf-form-switch>
 	</div>
 </div>