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