| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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);
|