| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 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();
- };
- }
- };
- });
- });
|