mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import coreModule from 'app/core/core_module';
|
|
|
|
const obj2string = obj => {
|
|
return Object.keys(obj)
|
|
.reduce((acc, curr) => acc.concat(curr + '=' + obj[curr]), [])
|
|
.join();
|
|
};
|
|
|
|
export class GeneralTabCtrl {
|
|
panelCtrl: any;
|
|
|
|
/** @ngInject */
|
|
constructor($scope) {
|
|
this.panelCtrl = $scope.ctrl;
|
|
|
|
const updatePanel = () => {
|
|
console.log('panel.render()');
|
|
this.panelCtrl.panel.render();
|
|
};
|
|
|
|
const generateValueFromPanel = scope => {
|
|
const { panel } = scope.ctrl;
|
|
const panelPropsToTrack = ['title', 'description', 'transparent', 'repeat', 'repeatDirection', 'minSpan'];
|
|
const panelPropsString = panelPropsToTrack
|
|
.map(prop => prop + '=' + (panel[prop] && panel[prop].toString ? panel[prop].toString() : panel[prop]))
|
|
.join();
|
|
const panelLinks = panel.links || [];
|
|
const panelLinksString = panelLinks.map(obj2string).join();
|
|
return panelPropsString + panelLinksString;
|
|
};
|
|
|
|
$scope.$watch(generateValueFromPanel, updatePanel, true);
|
|
}
|
|
}
|
|
|
|
/** @ngInject */
|
|
export function generalTab() {
|
|
'use strict';
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'public/app/features/panel/partials/general_tab.html',
|
|
controller: GeneralTabCtrl,
|
|
};
|
|
}
|
|
|
|
coreModule.directive('panelGeneralTab', generalTab);
|