wip: moving option tabs into viz tab

This commit is contained in:
Torkel Ödegaard 2018-09-10 19:04:56 +02:00
parent c82bf7f67f
commit 3ceab9484d
3 changed files with 28 additions and 11 deletions

View File

@ -22,6 +22,7 @@ export class PanelCtrl {
pluginName: string;
pluginId: string;
editorTabs: any;
optionTabs: any;
$scope: any;
$injector: any;
$location: any;
@ -96,9 +97,10 @@ export class PanelCtrl {
initEditMode() {
this.editorTabs = [];
this.addEditorTab('Queries', metricsTabDirective, 0, 'fa fa-database');
this.addEditorTab('Visualization', vizTabDirective, 1, 'fa fa-line-chart');
this.addEditorTab('General', 'public/app/partials/panelgeneral.html');
this.optionTabs = [];
this.addCommonTab('Queries', metricsTabDirective, 0, 'fa fa-database');
this.addCommonTab('Visualization', vizTabDirective, 1, 'fa fa-line-chart');
this.addCommonTab('General', 'public/app/partials/panelgeneral.html');
this.editModeInitiated = true;
this.events.emit('init-edit-mode', null);
@ -120,7 +122,7 @@ export class PanelCtrl {
route.updateParams();
}
addEditorTab(title, directiveFn, index?, icon?) {
addCommonTab(title, directiveFn, index?, icon?) {
const editorTab = { title, directiveFn, icon };
if (_.isString(directiveFn)) {
@ -136,6 +138,18 @@ export class PanelCtrl {
}
}
addEditorTab(title, directiveFn, index?, icon?) {
const editorTab = { title, directiveFn, icon };
if (_.isString(directiveFn)) {
editorTab.directiveFn = () => {
return { templateUrl: directiveFn };
};
}
this.optionTabs.push(editorTab);
}
getMenu() {
const menu = [];
menu.push({

View File

@ -13,11 +13,12 @@ function panelEditorTab(dynamicDirectiveSrv) {
},
directive: scope => {
const pluginId = scope.ctrl.pluginId;
const tabIndex = scope.index;
const tabName = scope.editorTab.title.toLowerCase();
console.log('panelEditorTab', pluginId, tabName);
if (directiveCache[pluginId]) {
if (directiveCache[pluginId][tabIndex]) {
return directiveCache[pluginId][tabIndex];
if (directiveCache[pluginId][tabName]) {
return directiveCache[pluginId][tabName];
}
} else {
directiveCache[pluginId] = [];
@ -25,10 +26,10 @@ function panelEditorTab(dynamicDirectiveSrv) {
const result = {
fn: () => scope.editorTab.directiveFn(),
name: `panel-editor-tab-${pluginId}${tabIndex}`,
name: `panel-editor-tab-${pluginId}${tabName}`,
};
directiveCache[pluginId][tabIndex] = result;
directiveCache[pluginId][tabName] = result;
return result;
},

View File

@ -27,7 +27,10 @@ const template = `
<viz-type-picker currentType="ctrl.panelCtrl.panel.type" onTypeChanged="ctrl.onTypeChanged"></viz-type-picker>
</div>
<div class="viz-editor-col2">
<h5 class="page-heading">Options</h5>
<div ng-repeat="tab in ctrl.panelCtrl.optionTabs" >
<h5 class="page-heading">{{tab.title}}</h5>
<panel-editor-tab editor-tab="tab" ctrl="ctrl.panelCtrl" index="$index"></panel-editor-tab>
</div>
</div>
</div>
`;
@ -37,7 +40,6 @@ export function vizTabDirective() {
'use strict';
return {
restrict: 'E',
scope: true,
template: template,
controller: VizTabCtrl,
};