import angular from "angular"; import _ from "lodash"; import "./link_srv"; function panelLinksEditor() { return { scope: { panel: "=" }, restrict: "E", controller: "PanelLinksEditorCtrl", templateUrl: "public/app/features/panellinks/module.html", link: function() {} }; } export class PanelLinksEditorCtrl { /** @ngInject */ constructor($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); }; } } angular .module("grafana.directives") .directive("panelLinksEditor", panelLinksEditor) .controller("PanelLinksEditorCtrl", PanelLinksEditorCtrl);