fixes:#14282 - Do not change folder for persisted dashboards

This commit is contained in:
Hugo Häggmark 2019-01-22 13:07:03 +01:00
parent 9c8dea062a
commit 151b838f0b
3 changed files with 14 additions and 3 deletions

View File

@ -21,6 +21,7 @@ export class FolderPickerCtrl {
hasValidationError: boolean;
validationError: any;
isEditor: boolean;
dashboardId?: number;
/** @ngInject */
constructor(private backendSrv, private validationSrv, private contextSrv) {
@ -131,6 +132,7 @@ export class FolderPickerCtrl {
private loadInitialValue() {
const resetFolder = { text: this.initialTitle, value: null };
const rootFolder = { text: this.rootName, value: 0 };
const emptyFolder = { text: '', value: null };
this.getOptions('').then(result => {
let folder;
@ -144,7 +146,13 @@ export class FolderPickerCtrl {
if (this.isEditor) {
folder = rootFolder;
} else {
folder = result.length > 0 ? result[0] : resetFolder;
// We shouldn't assign a random folder without the user actively choosing it on a persisted dashboard
const isPersistedDashBoard = this.dashboardId ? true : false;
if (isPersistedDashBoard) {
folder = emptyFolder;
} else {
folder = result.length > 0 ? result[0] : resetFolder;
}
}
}
@ -176,6 +184,7 @@ export function folderPicker() {
exitFolderCreation: '&',
enableCreateNew: '@',
enableReset: '@',
dashboardId: '<?',
},
};
}

View File

@ -25,7 +25,8 @@ const template = `
enter-folder-creation="ctrl.onEnterFolderCreation()"
exit-folder-creation="ctrl.onExitFolderCreation()"
enable-create-new="true"
label-class="width-7">
label-class="width-7"
dashboard-id="ctrl.clone.id">
</folder-picker>
</div>
</div>

View File

@ -51,7 +51,8 @@
on-change="ctrl.onFolderChange($folder)"
enable-create-new="true"
is-valid-selection="true"
label-class="width-7">
label-class="width-7"
dashboard-id="ctrl.dashboard.id">
</folder-picker>
<gf-form-switch class="gf-form" label="Editable" tooltip="Uncheck, then save and reload to disable all dashboard editing" checked="ctrl.dashboard.editable" label-class="width-7">
</gf-form-switch>