mirror of https://github.com/grafana/grafana.git
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
define([
|
|
'angular',
|
|
],
|
|
function (angular) {
|
|
'use strict';
|
|
|
|
var module = angular.module('grafana.directives');
|
|
|
|
module.directive('pluginConfigLoader', function($compile) {
|
|
return {
|
|
restrict: 'E',
|
|
link: function(scope, elem) {
|
|
var directive = 'grafana-plugin-core';
|
|
//wait for the parent scope to be applied.
|
|
scope.$watch("current", function(newVal) {
|
|
if (newVal) {
|
|
if (newVal.module) {
|
|
directive = 'grafana-plugin-'+newVal.type;
|
|
}
|
|
scope.require([newVal.module], function () {
|
|
var panelEl = angular.element(document.createElement(directive));
|
|
elem.append(panelEl);
|
|
$compile(panelEl)(scope);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
};
|
|
});
|
|
|
|
module.directive('grafanaPluginCore', function() {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'app/features/org/partials/pluginConfigCore.html',
|
|
transclude: true,
|
|
link: function(scope) {
|
|
scope.update = function() {
|
|
//Perform custom save events to the plugins own backend if needed.
|
|
|
|
// call parent update to commit the change to the plugin object.
|
|
// this will cause the page to reload.
|
|
scope._update();
|
|
};
|
|
}
|
|
};
|
|
});
|
|
}); |