diff --git a/public/app/features/dashboard/folder_picker/picker.ts b/public/app/features/dashboard/folder_picker/picker.ts index d79dddd63fb..1113a8f03b1 100644 --- a/public/app/features/dashboard/folder_picker/picker.ts +++ b/public/app/features/dashboard/folder_picker/picker.ts @@ -5,11 +5,13 @@ import appEvents from 'app/core/app_events'; import _ from 'lodash'; export class FolderPickerCtrl { - folders: Folder[]; - selectedOption: any; initialTitle: string; - onChange: any; + initialFolderId: number; labelClass: string; + onChange: any; + rootName = 'Root'; + + private folder: any; /** @ngInject */ constructor(private backendSrv, private $scope, private $sce) { @@ -17,7 +19,13 @@ export class FolderPickerCtrl { this.labelClass = "width-7"; } - this.selectedOption = {text: this.initialTitle, value: null}; + if (this.initialFolderId > 0) { + this.getOptions('').then(result => { + this.folder = _.find(result, {value: this.initialFolderId}); + }); + } else { + this.folder = {text: this.initialTitle, value: null}; + } } getOptions(query) { @@ -28,37 +36,28 @@ export class FolderPickerCtrl { return this.backendSrv.search(params).then(result => { if (query === "") { - result.unshift({title: "Root", value: 0}); + result.unshift({title: this.rootName, value: 0}); } + return _.map(result, item => { return {text: item.title, value: item.id}; }); }); } - folderChanged(option) { + onFolderChange(option) { this.onChange({$folder: {id: option.value, title: option.text}}); } -} -export interface Folder { - id: number; - title: string; - uri?: string; - type: string; - tags?: string[]; - isStarred?: boolean; - parentId?: number; - dashboards?: any; } const template = `
@@ -73,8 +72,10 @@ export function folderPicker() { controllerAs: 'ctrl', scope: { initialTitle: "<", - onChange: "&", - labelClass: "@", + initialFolderId: '<', + labelClass: '@', + rootName: '@', + onChange: '&' } }; } diff --git a/public/app/plugins/panel/dashlist/editor.html b/public/app/plugins/panel/dashlist/editor.html index 72e50d99138..d1f67916e40 100644 --- a/public/app/plugins/panel/dashlist/editor.html +++ b/public/app/plugins/panel/dashlist/editor.html @@ -23,7 +23,8 @@
- diff --git a/public/app/plugins/panel/dashlist/module.ts b/public/app/plugins/panel/dashlist/module.ts index 96ee9976ff6..a52530a75b6 100644 --- a/public/app/plugins/panel/dashlist/module.ts +++ b/public/app/plugins/panel/dashlist/module.ts @@ -10,7 +10,6 @@ class DashListCtrl extends PanelCtrl { groups: any[]; modes: any[]; - folderTitle: any; panelDefaults = { query: '', @@ -66,10 +65,6 @@ class DashListCtrl extends PanelCtrl { this.editorTabIndex = 1; this.modes = ['starred', 'search', 'recently viewed']; this.addEditorTab('Options', 'public/app/plugins/panel/dashlist/editor.html'); - - if (!this.panel.folderId) { - this.folderTitle = "All"; - } } onRefresh() { @@ -131,9 +126,8 @@ class DashListCtrl extends PanelCtrl { }); } - onFolderChange(folder) { + onFolderChange(folder: any) { this.panel.folderId = folder.id; - this.panel.folderTitle = folder.title; this.refresh(); } }