playlistCtrl.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. define([
  2. 'angular',
  3. 'lodash',
  4. 'config'
  5. ],
  6. function (angular, _, config) {
  7. 'use strict';
  8. var module = angular.module('grafana.controllers');
  9. module.controller('PlaylistCtrl', function($scope, playlistSrv, backendSrv) {
  10. $scope.init = function() {
  11. $scope.playlist = [];
  12. $scope.timespan = config.playlist_timespan;
  13. $scope.search();
  14. };
  15. $scope.search = function() {
  16. var query = {starred: true, limit: 10};
  17. if ($scope.searchQuery) {
  18. query.query = $scope.searchQuery;
  19. query.starred = false;
  20. }
  21. backendSrv.search(query).then(function(results) {
  22. $scope.searchHits = results.dashboards;
  23. $scope.filterHits();
  24. });
  25. };
  26. $scope.filterHits = function() {
  27. $scope.filteredHits = _.reject($scope.searchHits, function(dash) {
  28. return _.findWhere($scope.playlist, {slug: dash.slug});
  29. });
  30. };
  31. $scope.addDashboard = function(dashboard) {
  32. $scope.playlist.push(dashboard);
  33. $scope.filterHits();
  34. };
  35. $scope.removeDashboard = function(dashboard) {
  36. $scope.playlist = _.without($scope.playlist, dashboard);
  37. $scope.filterHits();
  38. };
  39. $scope.start = function() {
  40. playlistSrv.start($scope.playlist, $scope.timespan);
  41. };
  42. });
  43. });