| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { coreModule } from 'app/core/core';
- import { VariableSrv } from 'app/features/templating/variable_srv';
- const template = `
- <div class="gf-form-select-wrapper max-width-18">
- <select class="gf-form-input" ng-model="panel.repeat" ng-options="f.value as f.text for f in variables" ng-change="optionChanged()">
- <option value=""></option>
- </div>
- `;
- /** @ngInject */
- function dashRepeatOptionDirective(variableSrv: VariableSrv) {
- return {
- restrict: 'E',
- template: template,
- scope: {
- panel: '=',
- },
- link: (scope: any, element: JQuery) => {
- element.css({ display: 'block', width: '100%' });
- scope.variables = variableSrv.variables.map((item: any) => {
- return { text: item.name, value: item.name };
- });
- if (scope.variables.length === 0) {
- scope.variables.unshift({
- text: 'No template variables found',
- value: null,
- });
- }
- scope.variables.unshift({ text: 'Disabled', value: null });
- // if repeat is set and no direction set to horizontal
- if (scope.panel.repeat && !scope.panel.repeatDirection) {
- scope.panel.repeatDirection = 'h';
- }
- scope.optionChanged = () => {
- if (scope.panel.repeat) {
- scope.panel.repeatDirection = 'h';
- }
- };
- },
- };
- }
- coreModule.directive('dashRepeatOption', dashRepeatOptionDirective);
|