Browse Source

ds: minor fix that resets data source model when switching data source type

Torkel Ödegaard 8 năm trước cách đây
mục cha
commit
546f903141

+ 12 - 2
public/app/features/plugins/ds_edit_ctrl.ts

@@ -58,7 +58,7 @@ export class DataSourceEditCtrl {
   }
 
   initNewDatasourceModel() {
-    this.current = angular.copy(defaults);
+    this.current = _.cloneDeep(defaults);
 
     // We are coming from getting started
     if (this.$location.search().gettingstarted) {
@@ -93,11 +93,21 @@ export class DataSourceEditCtrl {
     });
   }
 
+  userChangedType() {
+    // reset model but keep name & default flag
+    this.current = _.defaults({
+      id: this.current.id,
+      name: this.current.name,
+      isDefault: this.current.isDefault,
+      type: this.current.type,
+    }, _.cloneDeep(defaults));
+    this.typeChanged();
+  }
+
   typeChanged() {
     this.hasDashboards = false;
     return this.backendSrv.get('/api/plugins/' + this.current.type + '/settings').then(pluginInfo => {
       this.datasourceMeta = pluginInfo;
-      console.log(this.datasourceMeta) ;
       this.hasDashboards = _.find(pluginInfo.includes, {type: 'dashboard'});
     });
   }

+ 1 - 1
public/app/features/plugins/partials/ds_edit.html

@@ -42,7 +42,7 @@
 				<div class="gf-form">
 					<span class="gf-form-label width-7">Type</span>
 					<div class="gf-form-select-wrapper max-width-23">
-						<select class="gf-form-input" ng-model="ctrl.current.type" ng-options="v.id as v.name for v in ctrl.types" ng-change="ctrl.typeChanged()"></select>
+						<select class="gf-form-input" ng-model="ctrl.current.type" ng-options="v.id as v.name for v in ctrl.types" ng-change="ctrl.userChangedType()"></select>
 					</div>
 				</div>
 			</div>