فهرست منبع

fix: save as enter key now works and folder selection also works, fixes #10464

Torkel Ödegaard 8 سال پیش
والد
کامیت
42d7308034

+ 1 - 1
public/app/features/dashboard/dashboard_srv.ts

@@ -86,7 +86,7 @@ export class DashboardSrv {
 
 
   save(clone, options) {
   save(clone, options) {
     options = options || {};
     options = options || {};
-    options.folderId = this.dash.meta.folderId;
+    options.folderId = options.folderId || this.dash.meta.folderId;
 
 
     return this.backendSrv
     return this.backendSrv
       .saveDashboard(clone, options)
       .saveDashboard(clone, options)

+ 5 - 13
public/app/features/dashboard/folder_picker/folder_picker.html

@@ -9,29 +9,21 @@
     </div>
     </div>
     <input type="text"
     <input type="text"
       class="gf-form-input max-width-10"
       class="gf-form-input max-width-10"
-      ng-show="ctrl.createNewFolder"
+      ng-if="ctrl.createNewFolder"
       give-focus="ctrl.createNewFolder"
       give-focus="ctrl.createNewFolder"
       ng-model="ctrl.newFolderName"
       ng-model="ctrl.newFolderName"
       ng-model-options="{ debounce: 400 }"
       ng-model-options="{ debounce: 400 }"
-      ng-class="{'validation-error': !ctrl.isNewFolderNameValid()}"
       ng-change="ctrl.newFolderNameChanged()" />
       ng-change="ctrl.newFolderNameChanged()" />
   </div>
   </div>
-  <div class="gf-form" ng-show="ctrl.createNewFolder">
-    <label class="gf-form-label text-success"
-      ng-show="ctrl.newFolderNameTouched && !ctrl.hasValidationError">
-      <i class="fa fa-check"></i>
-    </label>
-  </div>
-  <div class="gf-form" ng-show="ctrl.createNewFolder">
-    <button class="gf-form-label"
+  <div class="gf-form" ng-if="ctrl.createNewFolder">
+    <button class="btn btn-inverse"
       ng-click="ctrl.createFolder($event)"
       ng-click="ctrl.createFolder($event)"
       ng-disabled="!ctrl.newFolderNameTouched || ctrl.hasValidationError">
       ng-disabled="!ctrl.newFolderNameTouched || ctrl.hasValidationError">
       <i class="fa fa-fw fa-save"></i>&nbsp;Create
       <i class="fa fa-fw fa-save"></i>&nbsp;Create
     </button>
     </button>
   </div>
   </div>
-  <div class="gf-form" ng-show="ctrl.createNewFolder">
-    <button class="gf-form-label"
-      ng-click="ctrl.cancelCreateFolder($event)">
+  <div class="gf-form" ng-if="ctrl.createNewFolder">
+    <button class="btn btn-inverse" ng-click="ctrl.cancelCreateFolder($event)">
       Cancel
       Cancel
   </button>
   </button>
   </div>
   </div>

+ 5 - 16
public/app/features/dashboard/save_as_modal.ts

@@ -13,7 +13,7 @@ const template = `
 		</a>
 		</a>
 	</div>
 	</div>
 
 
-	<form name="ctrl.saveForm" ng-submit="ctrl.save()" class="modal-content" novalidate>
+	<form name="ctrl.saveForm" class="modal-content" novalidate>
 		<div class="p-t-2">
 		<div class="p-t-2">
 			<div class="gf-form">
 			<div class="gf-form">
 				<label class="gf-form-label width-7">New name</label>
 				<label class="gf-form-label width-7">New name</label>
@@ -22,8 +22,6 @@ const template = `
       <div class="gf-form">
       <div class="gf-form">
         <folder-picker initial-folder-id="ctrl.folderId"
         <folder-picker initial-folder-id="ctrl.folderId"
                        on-change="ctrl.onFolderChange($folder)"
                        on-change="ctrl.onFolderChange($folder)"
-                       enter-folder-creation="ctrl.onEnterFolderCreation()"
-                       exit-folder-creation="ctrl.onExitFolderCreation()"
                        enable-create-new="true"
                        enable-create-new="true"
                        label-class="width-7">
                        label-class="width-7">
         </folder-picker>
         </folder-picker>
@@ -31,7 +29,7 @@ const template = `
 		</div>
 		</div>
 
 
 		<div class="gf-form-button-row text-center">
 		<div class="gf-form-button-row text-center">
-			<button type="submit" class="btn btn-success" ng-disabled="ctrl.saveForm.$invalid || !ctrl.isValidFolderSelection">Save</button>
+			<button type="submit" class="btn btn-success" ng-click="ctrl.save()">Save</button>
 			<a class="btn-text" ng-click="ctrl.dismiss();">Cancel</a>
 			<a class="btn-text" ng-click="ctrl.dismiss();">Cancel</a>
 		</div>
 		</div>
 	</form>
 	</form>
@@ -41,7 +39,6 @@ const template = `
 export class SaveDashboardAsModalCtrl {
 export class SaveDashboardAsModalCtrl {
   clone: any;
   clone: any;
   folderId: any;
   folderId: any;
-  isValidFolderSelection = true;
   dismiss: () => void;
   dismiss: () => void;
 
 
   /** @ngInject */
   /** @ngInject */
@@ -69,25 +66,17 @@ export class SaveDashboardAsModalCtrl {
   }
   }
 
 
   save() {
   save() {
-    return this.dashboardSrv.save(this.clone).then(this.dismiss);
-  }
-
-  onEnterFolderCreation() {
-    this.isValidFolderSelection = false;
-  }
-
-  onExitFolderCreation() {
-    this.isValidFolderSelection = true;
+    return this.dashboardSrv.save(this.clone, { folderId: this.folderId }).then(this.dismiss);
   }
   }
 
 
   keyDown(evt) {
   keyDown(evt) {
-    if (this.isValidFolderSelection && evt.keyCode === 13) {
+    if (evt.keyCode === 13) {
       this.save();
       this.save();
     }
     }
   }
   }
 
 
   onFolderChange(folder) {
   onFolderChange(folder) {
-    this.clone.folderId = folder.id;
+    this.folderId = folder.id;
   }
   }
 }
 }