|
@@ -40,11 +40,11 @@ const DEFAULT_MAX_LINES = 10;
|
|
|
const DEFAULT_TAB_SIZE = 2;
|
|
const DEFAULT_TAB_SIZE = 2;
|
|
|
const DEFAULT_BEHAVIOURS = true;
|
|
const DEFAULT_BEHAVIOURS = true;
|
|
|
|
|
|
|
|
-const GRAFANA_MODULES = ['mode-prometheus', 'snippets-prometheus', 'theme-grafana-dark'];
|
|
|
|
|
|
|
+const GRAFANA_MODULES = ['theme-grafana-dark'];
|
|
|
const GRAFANA_MODULE_BASE = "public/app/core/components/code_editor/";
|
|
const GRAFANA_MODULE_BASE = "public/app/core/components/code_editor/";
|
|
|
|
|
|
|
|
// Trick for loading additional modules
|
|
// Trick for loading additional modules
|
|
|
-function setModuleUrl(moduleType, name) {
|
|
|
|
|
|
|
+function setModuleUrl(moduleType, name, pluginBaseUrl = null) {
|
|
|
let baseUrl = ACE_SRC_BASE;
|
|
let baseUrl = ACE_SRC_BASE;
|
|
|
let aceModeName = `ace/${moduleType}/${name}`;
|
|
let aceModeName = `ace/${moduleType}/${name}`;
|
|
|
let moduleName = `${moduleType}-${name}`;
|
|
let moduleName = `${moduleType}-${name}`;
|
|
@@ -54,6 +54,10 @@ function setModuleUrl(moduleType, name) {
|
|
|
baseUrl = GRAFANA_MODULE_BASE;
|
|
baseUrl = GRAFANA_MODULE_BASE;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if (pluginBaseUrl) {
|
|
|
|
|
+ baseUrl = pluginBaseUrl + '/';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if (moduleType === 'snippets') {
|
|
if (moduleType === 'snippets') {
|
|
|
componentName = `${moduleType}/${name}.js`;
|
|
componentName = `${moduleType}/${name}.js`;
|
|
|
}
|
|
}
|
|
@@ -159,8 +163,8 @@ function link(scope, elem, attrs) {
|
|
|
|
|
|
|
|
function setLangMode(lang) {
|
|
function setLangMode(lang) {
|
|
|
let aceModeName = `ace/mode/${lang}`;
|
|
let aceModeName = `ace/mode/${lang}`;
|
|
|
- setModuleUrl("mode", lang);
|
|
|
|
|
- setModuleUrl("snippets", lang);
|
|
|
|
|
|
|
+ setModuleUrl("mode", lang, scope.datasource.meta.baseUrl || null);
|
|
|
|
|
+ setModuleUrl("snippets", lang, scope.datasource.meta.baseUrl || null);
|
|
|
editorSession.setMode(aceModeName);
|
|
editorSession.setMode(aceModeName);
|
|
|
|
|
|
|
|
ace.config.loadModule("ace/ext/language_tools", (language_tools) => {
|
|
ace.config.loadModule("ace/ext/language_tools", (language_tools) => {
|
|
@@ -210,6 +214,7 @@ export function codeEditorDirective() {
|
|
|
template: editorTemplate,
|
|
template: editorTemplate,
|
|
|
scope: {
|
|
scope: {
|
|
|
content: "=",
|
|
content: "=",
|
|
|
|
|
+ datasource: "=",
|
|
|
codeEditorFocus: "<",
|
|
codeEditorFocus: "<",
|
|
|
onChange: "&",
|
|
onChange: "&",
|
|
|
getCompleter: "&"
|
|
getCompleter: "&"
|