| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- define([
- 'angular',
- 'lodash',
- './link_srv',
- ],
- function (angular, _) {
- 'use strict';
- angular
- .module('grafana.directives')
- .directive('panelLinksEditor', function() {
- return {
- scope: {
- panel: "="
- },
- restrict: 'E',
- controller: 'PanelLinksEditorCtrl',
- templateUrl: 'public/app/features/panellinks/module.html',
- link: function() {
- }
- };
- }).controller('PanelLinksEditorCtrl', function($scope, backendSrv) {
- $scope.panel.links = $scope.panel.links || [];
- $scope.addLink = function() {
- $scope.panel.links.push({
- type: 'dashboard',
- });
- };
- $scope.searchDashboards = function(queryStr, callback) {
- backendSrv.search({query: queryStr}).then(function(hits) {
- var dashboards = _.map(hits, function(dash) {
- return dash.title;
- });
- callback(dashboards);
- });
- };
- $scope.dashboardChanged = function(link) {
- backendSrv.search({query: link.dashboard}).then(function(hits) {
- var dashboard = _.find(hits, {title: link.dashboard});
- if (dashboard) {
- link.dashUri = dashboard.uri;
- link.title = dashboard.title;
- }
- });
- };
- $scope.deleteLink = function(link) {
- $scope.panel.links = _.without($scope.panel.links, link);
- };
- });
- });
|