| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- define([
- 'angular',
- 'lodash',
- ],
- function (angular, _) {
- 'use strict';
- var module = angular.module('grafana.services');
- module.service('pluginSrv', function($rootScope, $timeout, $q, backendSrv) {
- var self = this;
- this.init = function() {
- console.log("pluginSrv init");
- this.plugins = {};
- };
- this.get = function(type) {
- return $q(function(resolve) {
- if (type in self.plugins) {
- return resolve(self.plugins[type]);
- }
- backendSrv.get('/api/plugins').then(function(results) {
- _.forEach(results, function(p) {
- self.plugins[p.type] = p;
- });
- return resolve(self.plugins[type]);
- });
- });
- };
- this.getAll = function() {
- return $q(function(resolve) {
- if (!_.isEmpty(self.plugins)) {
- return resolve(self.plugins);
- }
- backendSrv.get('api/plugins').then(function(results) {
- _.forEach(results, function(p) {
- self.plugins[p.type] = p;
- });
- return resolve(self.plugins);
- });
- });
- };
- this.update = function(plugin) {
- return $q(function(resolve, reject) {
- backendSrv.post('/api/plugins', plugin).then(function(resp) {
- self.plugins[plugin.type] = plugin;
- resolve(resp);
- }, function(resp) {
- reject(resp);
- });
- });
- };
- this.init();
- });
- });
|