-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
GET _search
+ {
+ "query": { "match_all": {} }
+ }
-
-
-
-
GET _search
-{
- "query": { "match_all": {} }
-}
-
+
︙
+
- ︙
-
-
+
diff --git a/src/core_plugins/console/public/logo.svg b/src/core_plugins/console/public/logo.svg
index 14e4937c9fb7..d208f0f81f90 100644
--- a/src/core_plugins/console/public/logo.svg
+++ b/src/core_plugins/console/public/logo.svg
@@ -1,3 +1,3 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/console/public/src/app.js b/src/core_plugins/console/public/src/app.js
index 114411ce4f78..6833ffe0eddd 100644
--- a/src/core_plugins/console/public/src/app.js
+++ b/src/core_plugins/console/public/src/app.js
@@ -2,114 +2,113 @@ var $ = require('jquery');
let curl = require('./curl');
let history = require('./history');
-let input = require('./input');
let mappings = require('./mappings');
-let output = require('./output');
let es = require('./es');
let utils = require('./utils');
let _ = require('lodash');
-const chrome = require('ui/chrome');
-$(document.body).removeClass('fouc');
+export default function init(input, output) {
+ $(document.body).removeClass('fouc');
-// set the value of the input and clear the output
-function resetToValues(content) {
- if (content != null) {
- input.update(content);
+ // set the value of the input and clear the output
+ function resetToValues(content) {
+ if (content != null) {
+ input.update(content);
+ }
+ output.update("");
}
- output.update("");
-}
-function loadSavedState() {
- var sourceLocation = utils.getUrlParam('load_from') || "stored";
- var previousSaveState = history.getSavedEditorState();
+ function loadSavedState() {
+ var sourceLocation = utils.getUrlParam('load_from') || "stored";
+ var previousSaveState = history.getSavedEditorState();
- if (sourceLocation == "stored") {
- if (previousSaveState) {
- resetToValues(previousSaveState.content);
+ if (sourceLocation == "stored") {
+ if (previousSaveState) {
+ resetToValues(previousSaveState.content);
+ }
+ else {
+ resetToValues();
+ input.autoIndent();
+ }
+ }
+ else if (/^https?:\/\//.test(sourceLocation)) {
+ var loadFrom = {url: sourceLocation, dataType: "text", kbnXsrfToken: false};
+ if (/https?:\/\/api.github.com/.test(sourceLocation)) {
+ loadFrom.headers = {Accept: "application/vnd.github.v3.raw"};
+ }
+ $.ajax(loadFrom).done(function (data) {
+ resetToValues(data);
+ input.moveToNextRequestEdge(true);
+ input.highlightCurrentRequestsAndUpdateActionBar();
+ input.updateActionsBar();
+ });
}
else {
resetToValues();
- input.autoIndent();
}
+ input.moveToNextRequestEdge(true);
}
- else if (/^https?:\/\//.test(sourceLocation)) {
- var loadFrom = {url: sourceLocation, dataType: "text", kbnXsrfToken: false};
- if (/https?:\/\/api.github.com/.test(sourceLocation)) {
- loadFrom.headers = {Accept: "application/vnd.github.v3.raw"};
- }
- $.ajax(loadFrom).done(function (data) {
- resetToValues(data);
- input.moveToNextRequestEdge(true);
- input.highlightCurrentRequestsAndUpdateActionBar();
- input.updateActionsBar();
+
+ function setupAutosave() {
+ var timer;
+ var saveDelay = 500;
+
+ input.getSession().on("change", function onChange(e) {
+ if (timer) {
+ timer = clearTimeout(timer);
+ }
+ timer = setTimeout(saveCurrentState, saveDelay);
});
}
- else {
- resetToValues();
- }
- input.moveToNextRequestEdge(true);
-}
-function setupAutosave() {
- var timer;
- var saveDelay = 500;
-
- input.getSession().on("change", function onChange(e) {
- if (timer) {
- timer = clearTimeout(timer);
+ function saveCurrentState() {
+ try {
+ var content = input.getValue();
+ history.updateCurrentState(content);
+ }
+ catch (e) {
+ console.log("Ignoring saving error: " + e);
}
- timer = setTimeout(saveCurrentState, saveDelay);
- });
-}
-
-function saveCurrentState() {
- try {
- var content = input.getValue();
- history.updateCurrentState(content);
- }
- catch (e) {
- console.log("Ignoring saving error: " + e);
- }
-}
-
-// stupid simple restore function, called when the user
-// chooses to restore a request from the history
-// PREVENTS history from needing to know about the input
-history.restoreFromHistory = function applyHistoryElem(req) {
- var session = input.getSession();
- var pos = input.getCursorPosition();
- var prefix = "";
- var suffix = "\n";
- if (input.parser.isStartRequestRow(pos.row)) {
- pos.column = 0;
- suffix += "\n";
- }
- else if (input.parser.isEndRequestRow(pos.row)) {
- var line = session.getLine(pos.row);
- pos.column = line.length;
- prefix = "\n\n";
- }
- else if (input.parser.isInBetweenRequestsRow(pos.row)) {
- pos.column = 0;
- }
- else {
- pos = input.nextRequestEnd(pos);
- prefix = "\n\n";
}
- var s = prefix + req.method + " " + req.endpoint;
- if (req.data) {
- s += "\n" + req.data;
- }
+ // stupid simple restore function, called when the user
+ // chooses to restore a request from the history
+ // PREVENTS history from needing to know about the input
+ history.restoreFromHistory = function applyHistoryElem(req) {
+ var session = input.getSession();
+ var pos = input.getCursorPosition();
+ var prefix = "";
+ var suffix = "\n";
+ if (input.parser.isStartRequestRow(pos.row)) {
+ pos.column = 0;
+ suffix += "\n";
+ }
+ else if (input.parser.isEndRequestRow(pos.row)) {
+ var line = session.getLine(pos.row);
+ pos.column = line.length;
+ prefix = "\n\n";
+ }
+ else if (input.parser.isInBetweenRequestsRow(pos.row)) {
+ pos.column = 0;
+ }
+ else {
+ pos = input.nextRequestEnd(pos);
+ prefix = "\n\n";
+ }
- s += suffix;
+ var s = prefix + req.method + " " + req.endpoint;
+ if (req.data) {
+ s += "\n" + req.data;
+ }
- session.insert(pos, s);
- input.clearSelection();
- input.moveCursorTo(pos.row + prefix.length, 0);
- input.focus();
+ s += suffix;
+
+ session.insert(pos, s);
+ input.clearSelection();
+ input.moveCursorTo(pos.row + prefix.length, 0);
+ input.focus();
+ };
+
+ loadSavedState();
+ setupAutosave();
};
-
-loadSavedState();
-setupAutosave();
diff --git a/src/core_plugins/console/public/src/autocomplete.js b/src/core_plugins/console/public/src/autocomplete.js
index f706780cb0bc..9eb83f4ad657 100644
--- a/src/core_plugins/console/public/src/autocomplete.js
+++ b/src/core_plugins/console/public/src/autocomplete.js
@@ -6,7 +6,6 @@ let utils = require('./utils');
let autocomplete_engine = require('./autocomplete/engine');
let url_pattern_matcher = require('./autocomplete/url_pattern_matcher');
let _ = require('lodash');
-let $ = require('jquery');
let ext_lang_tools = require('ace/ext-language_tools');
diff --git a/src/core_plugins/console/public/src/controllers/sense_controller.js b/src/core_plugins/console/public/src/controllers/sense_controller.js
index c1da8d192f96..94a1aece4cc8 100644
--- a/src/core_plugins/console/public/src/controllers/sense_controller.js
+++ b/src/core_plugins/console/public/src/controllers/sense_controller.js
@@ -1,5 +1,10 @@
import 'ui/doc_title';
import { useResizeCheckerProvider } from '../sense_editor_resize';
+import $ from 'jquery';
+import { initializeInput } from '../input';
+import { initializeOutput } from '../output';
+import es from '../es';
+import init from '../app';
const module = require('ui/modules').get('app/sense');
@@ -11,23 +16,27 @@ module.run(function (Private, $rootScope) {
};
});
-module.controller('SenseController', function SenseController($scope, docTitle) {
+module.controller('SenseController', function SenseController($scope, $timeout, docTitle) {
docTitle.change('Console');
- // require the root app code, which expects to execute once the dom is loaded up
- require('../app');
+ let input, output;
- const input = require('../input');
- const es = require('../es');
+ // We need to wait for these elements to be rendered before we can select them with jQuery
+ // and then initialize this app
+ $timeout(() => {
+ output = initializeOutput($('#output'));
+ input = initializeInput($('#editor'), $('#editor_actions'), $('#copy_as_curl'), output);
+ init(input, output);
+ });
- this.sendSelected = () => {
+ $scope.sendSelected = () => {
input.focus();
input.sendCurrentRequestToES();
return false;
};
- this.autoIndent = (event) => {
+ $scope.autoIndent = (event) => {
input.autoIndent();
event.preventDefault();
input.focus();
diff --git a/src/core_plugins/console/public/src/directives/sense_navbar.html b/src/core_plugins/console/public/src/directives/sense_navbar.html
index 39b60f44a009..1e812bf049f8 100644
--- a/src/core_plugins/console/public/src/directives/sense_navbar.html
+++ b/src/core_plugins/console/public/src/directives/sense_navbar.html
@@ -1,9 +1 @@
-
-
-
-
- Elasticsearch Console
-
-
-
-
+
diff --git a/src/core_plugins/console/public/src/history.js b/src/core_plugins/console/public/src/history.js
index eb32cc3fa87d..d0787f784a84 100644
--- a/src/core_plugins/console/public/src/history.js
+++ b/src/core_plugins/console/public/src/history.js
@@ -1,7 +1,6 @@
const $ = require('jquery');
const { uniq } = require('lodash');
const storage = require('./storage');
-const chrome = require('ui/chrome');
const history = module.exports = {
restoreFromHistory() {
diff --git a/src/core_plugins/console/public/src/input.js b/src/core_plugins/console/public/src/input.js
index 97a393c04ec6..efd8a22c2c90 100644
--- a/src/core_plugins/console/public/src/input.js
+++ b/src/core_plugins/console/public/src/input.js
@@ -4,7 +4,6 @@ let ZeroClipboard = require('zeroclip');
let ext_searchbox = require('ace/ext-searchbox');
let Autocomplete = require('./autocomplete');
let mappings = require('./mappings');
-let output = require('./output');
let SenseEditor = require('./sense_editor/editor');
let settings = require('./settings');
let storage = require('./storage');
@@ -13,232 +12,238 @@ let es = require('./es');
let history = require('./history');
import uiModules from 'ui/modules';
-var $el = $('#editor');
-var input = new SenseEditor($el);
-uiModules.get('app/sense').setupResizeCheckerForRootEditors($el, input, output);
+let input;
+export function initializeInput($el, $actionsEl, $copyAsCurlEl, output) {
+ input = new SenseEditor($el);
-input.autocomplete = new Autocomplete(input);
+ uiModules.get('app/sense').setupResizeCheckerForRootEditors($el, input, output);
-input.$actions = $("#editor_actions");
+ input.autocomplete = new Autocomplete(input);
-input.commands.addCommand({
- name: 'auto indent request',
- bindKey: {win: 'Ctrl-I', mac: 'Command-I'},
- exec: function () {
- input.autoIndent();
- }
-});
-input.commands.addCommand({
- name: 'move to previous request start or end',
- bindKey: {win: 'Ctrl-Up', mac: 'Command-Up'},
- exec: function () {
- input.moveToPreviousRequestEdge()
- }
-});
-input.commands.addCommand({
- name: 'move to next request start or end',
- bindKey: {win: 'Ctrl-Down', mac: 'Command-Down'},
- exec: function () {
- input.moveToNextRequestEdge()
- }
-});
+ input.$actions = $actionsEl;
-
-/**
- * COPY AS CURL
- *
- * Since the copy functionality is powered by a flash movie (via ZeroClipboard)
- * the only way to trigger the copy is with a litteral mouseclick from the user.
- *
- * The original shortcut will now just open the menu and highlight the
- *
- */
-var $copyAsCURL = $('#copy_as_curl');
-var zc = (function setupZeroClipboard() {
- var zc = new ZeroClipboard($copyAsCURL); // the ZeroClipboard instance
-
- zc.on('wrongflash noflash', function () {
- if (!storage.get('flash_warning_shown')) {
- alert('Console needs flash version 10.0 or greater in order to provide "Copy as cURL" functionality');
- storage.set('flash_warning_shown', 'true');
+ input.commands.addCommand({
+ name: 'auto indent request',
+ bindKey: {win: 'Ctrl-I', mac: 'Command-I'},
+ exec: function () {
+ input.autoIndent();
+ }
+ });
+ input.commands.addCommand({
+ name: 'move to previous request start or end',
+ bindKey: {win: 'Ctrl-Up', mac: 'Command-Up'},
+ exec: function () {
+ input.moveToPreviousRequestEdge()
+ }
+ });
+ input.commands.addCommand({
+ name: 'move to next request start or end',
+ bindKey: {win: 'Ctrl-Down', mac: 'Command-Down'},
+ exec: function () {
+ input.moveToNextRequestEdge()
}
- $copyAsCURL.hide();
});
- zc.on('ready', function () {
- function setupCopyButton(cb) {
- cb = typeof cb === 'function' ? cb : $.noop;
- $copyAsCURL.css('visibility', 'hidden');
- input.getRequestsAsCURL(function (curl) {
- $copyAsCURL.attr('data-clipboard-text', curl);
- $copyAsCURL.css('visibility', 'visible');
- cb();
- });
- }
- input.$actions.on('mouseenter', function () {
- if (!$(this).hasClass('open')) {
- setupCopyButton();
+ /**
+ * COPY AS CURL
+ *
+ * Since the copy functionality is powered by a flash movie (via ZeroClipboard)
+ * the only way to trigger the copy is with a litteral mouseclick from the user.
+ *
+ * The original shortcut will now just open the menu and highlight the
+ *
+ */
+ var zc = (function setupZeroClipboard() {
+ var zc = new ZeroClipboard($copyAsCurlEl); // the ZeroClipboard instance
+
+ zc.on('wrongflash noflash', function () {
+ if (!storage.get('flash_warning_shown')) {
+ alert('Console needs flash version 10.0 or greater in order to provide "Copy as cURL" functionality');
+ storage.set('flash_warning_shown', 'true');
}
+ $copyAsCurlEl.hide();
});
- });
- zc.on('complete', function () {
- $copyAsCURL.click();
- input.focus();
- });
+ zc.on('ready', function () {
+ function setupCopyButton(cb) {
+ cb = typeof cb === 'function' ? cb : $.noop;
+ $copyAsCurlEl.css('visibility', 'hidden');
+ input.getRequestsAsCURL(function (curl) {
+ $copyAsCurlEl.attr('data-clipboard-text', curl);
+ $copyAsCurlEl.css('visibility', 'visible');
+ cb();
+ });
+ }
- return zc;
-}());
+ input.$actions.on('mouseenter', function () {
+ if (!$(this).hasClass('open')) {
+ setupCopyButton();
+ }
+ });
+ });
-/**
- * Setup the "send" shortcut
- */
+ zc.on('complete', function () {
+ $copyAsCurlEl.click();
+ input.focus();
+ });
-var CURRENT_REQ_ID = 0;
+ return zc;
+ }());
-function sendCurrentRequestToES() {
+ /**
+ * Setup the "send" shortcut
+ */
- var req_id = ++CURRENT_REQ_ID;
+ var CURRENT_REQ_ID = 0;
- input.getRequestsInRange(function (requests) {
- if (req_id != CURRENT_REQ_ID) {
- return;
- }
- output.update('');
+ function sendCurrentRequestToES() {
- if (requests.length == 0) {
- return;
- }
+ var req_id = ++CURRENT_REQ_ID;
- var isMultiRequest = requests.length > 1;
- var finishChain = function () { /* noop */ };
-
- var isFirstRequest = true;
-
- var sendNextRequest = function () {
+ input.getRequestsInRange(function (requests) {
if (req_id != CURRENT_REQ_ID) {
return;
}
+ output.update('');
+
if (requests.length == 0) {
- finishChain();
return;
}
- var req = requests.shift();
- var es_path = req.url;
- var es_method = req.method;
- var es_data = req.data.join("\n");
- if (es_data) {
- es_data += "\n";
- } //append a new line for bulk requests.
- es.send(es_method, es_path, es_data).always(function (dataOrjqXHR, textStatus, jqXhrORerrorThrown) {
+ var isMultiRequest = requests.length > 1;
+ var finishChain = function () { /* noop */ };
+
+ var isFirstRequest = true;
+
+ var sendNextRequest = function () {
if (req_id != CURRENT_REQ_ID) {
return;
}
- var xhr;
- if (dataOrjqXHR.promise) {
- xhr = dataOrjqXHR;
+ if (requests.length == 0) {
+ finishChain();
+ return;
}
- else {
- xhr = jqXhrORerrorThrown;
- }
- function modeForContentType(contentType) {
- if (contentType.indexOf("text/plain") >= 0) {
- return "ace/mode/text";
+ var req = requests.shift();
+ var es_path = req.url;
+ var es_method = req.method;
+ var es_data = req.data.join("\n");
+ if (es_data) {
+ es_data += "\n";
+ } //append a new line for bulk requests.
+
+ es.send(es_method, es_path, es_data).always(function (dataOrjqXHR, textStatus, jqXhrORerrorThrown) {
+ if (req_id != CURRENT_REQ_ID) {
+ return;
}
- else if (contentType.indexOf("application/yaml") >= 0) {
- return "ace/mode/yaml";
- }
- return null;
- }
-
- if (typeof xhr.status == "number" &&
- // things like DELETE index where the index is not there are OK.
- ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 404)
- ) {
- // we have someone on the other side. Add to history
- history.addToHistory(es_path, es_method, es_data);
-
-
- let value = xhr.responseText;
- let mode = modeForContentType(xhr.getAllResponseHeaders("Content-Type") || "");
-
- if (mode === null || mode === "application/json") {
- // assume json - auto pretty
- try {
- value = JSON.stringify(JSON.parse(value), null, 2);
- }
- catch (e) {
-
- }
- }
-
- if (isMultiRequest) {
- value = "# " + req.method + " " + req.url + "\n" + value;
- }
- if (isFirstRequest) {
- output.update(value, mode);
+ var xhr;
+ if (dataOrjqXHR.promise) {
+ xhr = dataOrjqXHR;
}
else {
- output.append("\n" + value);
+ xhr = jqXhrORerrorThrown;
}
- isFirstRequest = false;
- // single request terminate via sendNextRequest as well
- sendNextRequest();
- }
- else {
- let value, mode;
- if (xhr.responseText) {
- value = xhr.responseText; // ES error should be shown
- mode = modeForContentType(xhr.getAllResponseHeaders("Content-Type") || "");
- if (value[0] == "{") {
+ function modeForContentType(contentType) {
+ if (contentType.indexOf("text/plain") >= 0) {
+ return "ace/mode/text";
+ }
+ else if (contentType.indexOf("application/yaml") >= 0) {
+ return "ace/mode/yaml";
+ }
+ return null;
+ }
+
+ if (typeof xhr.status == "number" &&
+ // things like DELETE index where the index is not there are OK.
+ ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 404)
+ ) {
+ // we have someone on the other side. Add to history
+ history.addToHistory(es_path, es_method, es_data);
+
+
+ let value = xhr.responseText;
+ let mode = modeForContentType(xhr.getAllResponseHeaders("Content-Type") || "");
+
+ if (mode === null || mode === "application/json") {
+ // assume json - auto pretty
try {
value = JSON.stringify(JSON.parse(value), null, 2);
}
catch (e) {
+
}
}
- } else {
- value = "Request failed to get to the server (status code: " + xhr.status + ")";
- mode = 'ace/mode/text';
- }
- if (isMultiRequest) {
- value = "# " + req.method + " " + req.url + "\n" + value;
- }
- if (isFirstRequest) {
- output.update(value, mode);
+
+ if (isMultiRequest) {
+ value = "# " + req.method + " " + req.url + "\n" + value;
+ }
+ if (isFirstRequest) {
+ output.update(value, mode);
+ }
+ else {
+ output.append("\n" + value);
+ }
+ isFirstRequest = false;
+ // single request terminate via sendNextRequest as well
+ sendNextRequest();
}
else {
- output.append("\n" + value);
+ let value, mode;
+ if (xhr.responseText) {
+ value = xhr.responseText; // ES error should be shown
+ mode = modeForContentType(xhr.getAllResponseHeaders("Content-Type") || "");
+ if (value[0] == "{") {
+ try {
+ value = JSON.stringify(JSON.parse(value), null, 2);
+ }
+ catch (e) {
+ }
+ }
+ } else {
+ value = "Request failed to get to the server (status code: " + xhr.status + ")";
+ mode = 'ace/mode/text';
+ }
+ if (isMultiRequest) {
+ value = "# " + req.method + " " + req.url + "\n" + value;
+ }
+ if (isFirstRequest) {
+ output.update(value, mode);
+ }
+ else {
+ output.append("\n" + value);
+ }
+ finishChain();
}
- finishChain();
- }
- });
- };
+ });
+ };
- sendNextRequest();
+ sendNextRequest();
+ });
+ }
+
+
+ input.commands.addCommand({
+ name: 'send to elasticsearch',
+ bindKey: {win: 'Ctrl-Enter', mac: 'Command-Enter'},
+ exec: sendCurrentRequestToES
});
-}
-input.commands.addCommand({
- name: 'send to elasticsearch',
- bindKey: {win: 'Ctrl-Enter', mac: 'Command-Enter'},
- exec: sendCurrentRequestToES
-});
+ /**
+ * Init the editor
+ */
+ if (settings) {
+ settings.applyCurrentSettings(input);
+ }
+ input.focus();
+ input.highlightCurrentRequestsAndUpdateActionBar();
+ input.sendCurrentRequestToES = sendCurrentRequestToES;
+ require('./input_resize')(input, output);
-/**
- * Init the editor
- */
-if (settings) {
- settings.applyCurrentSettings(input);
-}
-input.focus();
-input.highlightCurrentRequestsAndUpdateActionBar();
+ return input;
+};
-input.sendCurrentRequestToES = sendCurrentRequestToES;
-require('./input_resize')(input, output);
-
-module.exports = input;
+export default function getInput() {
+ return input;
+};
diff --git a/src/core_plugins/console/public/src/output.js b/src/core_plugins/console/public/src/output.js
index 0df74267104a..21b9f498bc52 100644
--- a/src/core_plugins/console/public/src/output.js
+++ b/src/core_plugins/console/public/src/output.js
@@ -4,63 +4,69 @@ let settings = require('./settings');
let OutputMode = require('./sense_editor/mode/output');
const smartResize = require('./smart_resize');
-var $el = $("#output");
-var output = ace.require('ace/ace').edit($el[0]);
+let output;
+export function initializeOutput($el) {
+ output = ace.require('ace/ace').edit($el[0]);
-var outputMode = new OutputMode.Mode();
+ var outputMode = new OutputMode.Mode();
-output.resize = smartResize(output);
-output.update = function (val, mode, cb) {
- if (typeof mode === 'function') {
- cb = mode;
- mode = void 0;
+ output.resize = smartResize(output);
+ output.update = function (val, mode, cb) {
+ if (typeof mode === 'function') {
+ cb = mode;
+ mode = void 0;
+ }
+
+ var session = output.getSession();
+
+ session.setMode(val ? (mode || outputMode) : 'ace/mode/text');
+ session.setValue(val);
+ if (typeof cb === 'function') {
+ setTimeout(cb);
+ }
+ };
+
+ output.append = function (val, fold_previous, cb) {
+ if (typeof fold_previous === 'function') {
+ cb = fold_previous;
+ fold_previous = true;
+ }
+ if (_.isUndefined(fold_previous)) {
+ fold_previous = true;
+ }
+ var session = output.getSession();
+ var lastLine = session.getLength();
+ if (fold_previous) {
+ output.moveCursorTo(Math.max(0, lastLine - 1), 0);
+ session.toggleFold(false);
+
+ }
+ session.insert({row: lastLine, column: 0}, "\n" + val);
+ output.moveCursorTo(lastLine + 1, 0);
+ if (typeof cb === 'function') {
+ setTimeout(cb);
+ }
+ };
+
+ output.$el = $el;
+
+ (function (session) {
+ session.setMode("ace/mode/text");
+ session.setFoldStyle('markbeginend');
+ session.setTabSize(2);
+ session.setUseWrapMode(true);
+ }(output.getSession()));
+
+ output.setShowPrintMargin(false);
+ output.setReadOnly(true);
+
+ if (settings) {
+ settings.applyCurrentSettings(output);
}
- var session = output.getSession();
-
- session.setMode(val ? (mode || outputMode) : 'ace/mode/text');
- session.setValue(val);
- if (typeof cb === 'function') {
- setTimeout(cb);
- }
+ return output;
};
-output.append = function (val, fold_previous, cb) {
- if (typeof fold_previous === 'function') {
- cb = fold_previous;
- fold_previous = true;
- }
- if (_.isUndefined(fold_previous)) {
- fold_previous = true;
- }
- var session = output.getSession();
- var lastLine = session.getLength();
- if (fold_previous) {
- output.moveCursorTo(Math.max(0, lastLine - 1), 0);
- session.toggleFold(false);
-
- }
- session.insert({row: lastLine, column: 0}, "\n" + val);
- output.moveCursorTo(lastLine + 1, 0);
- if (typeof cb === 'function') {
- setTimeout(cb);
- }
+export default function getOutput() {
+ return output;
};
-
-output.$el = $el;
-
-(function (session) {
- session.setMode("ace/mode/text");
- session.setFoldStyle('markbeginend');
- session.setTabSize(2);
- session.setUseWrapMode(true);
-}(output.getSession()));
-
-output.setShowPrintMargin(false);
-output.setReadOnly(true);
-
-if (settings) {
- settings.applyCurrentSettings(output);
-}
-
-module.exports = output;
diff --git a/src/core_plugins/console/public/src/settings.js b/src/core_plugins/console/public/src/settings.js
index 49c11b37c79f..16f128223751 100644
--- a/src/core_plugins/console/public/src/settings.js
+++ b/src/core_plugins/console/public/src/settings.js
@@ -39,8 +39,8 @@ function setAutocomplete(settings) {
function applyCurrentSettings(editor) {
if (typeof editor === 'undefined') {
- applyCurrentSettings(require('./input'));
- applyCurrentSettings(require('./output'));
+ applyCurrentSettings(require('./input')());
+ applyCurrentSettings(require('./output')());
}
if (editor) {
editor.getSession().setUseWrapMode(getWrapMode());
@@ -60,7 +60,7 @@ function updateSettings({ fontSize, wrapMode, autocomplete}) {
setFontSize(fontSize);
setWrapMode(wrapMode);
setAutocomplete(autocomplete);
- require('./input').focus();
+ require('./input')().focus();
return getCurrentSettings();
}
diff --git a/src/core_plugins/console/public/webpackShims/ace.js b/src/core_plugins/console/public/webpackShims/ace.js
index 0dae3d33b1df..bd4f5c34df51 100644
--- a/src/core_plugins/console/public/webpackShims/ace.js
+++ b/src/core_plugins/console/public/webpackShims/ace.js
@@ -1,2 +1,2 @@
require('ace/ace.js');
-module.exports = window.ace;
+module.exports = window.consoleAce;
diff --git a/src/core_plugins/console/public/webpackShims/ace/ace.js b/src/core_plugins/console/public/webpackShims/ace/ace.js
index acf403b4c205..313ee9def944 100644
--- a/src/core_plugins/console/public/webpackShims/ace/ace.js
+++ b/src/core_plugins/console/public/webpackShims/ace/ace.js
@@ -30,7 +30,7 @@
(function() {
-var ACE_NAMESPACE = "ace";
+var ACE_NAMESPACE = "consoleAce";
var global = (function() {
return this;
@@ -169,7 +169,7 @@ exportAce(ACE_NAMESPACE);
})();
-ace.define('ace/ace', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers', 'ace/lib/dom', 'ace/lib/event', 'ace/editor', 'ace/edit_session', 'ace/undomanager', 'ace/virtual_renderer', 'ace/multi_select', 'ace/worker/worker_client', 'ace/keyboard/hash_handler', 'ace/placeholder', 'ace/mode/folding/fold_mode', 'ace/theme/textmate', 'ace/ext/error_marker', 'ace/config'], function(require, exports, module) {
+consoleAce.define('ace/ace', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers', 'ace/lib/dom', 'ace/lib/event', 'ace/editor', 'ace/edit_session', 'ace/undomanager', 'ace/virtual_renderer', 'ace/multi_select', 'ace/worker/worker_client', 'ace/keyboard/hash_handler', 'ace/placeholder', 'ace/mode/folding/fold_mode', 'ace/theme/textmate', 'ace/ext/error_marker', 'ace/config'], function(require, exports, module) {
require("./lib/fixoldbrowsers");
@@ -230,7 +230,7 @@ exports.EditSession = EditSession;
exports.UndoManager = UndoManager;
});
-ace.define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) {
+consoleAce.define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) {
require("./regexp");
@@ -238,7 +238,7 @@ require("./es5-shim");
});
-ace.define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) {
var real = {
exec: RegExp.prototype.exec,
@@ -310,7 +310,7 @@ ace.define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require
});
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
function Empty() {}
@@ -1007,7 +1007,7 @@ var toObject = function (o) {
});
-ace.define('ace/lib/dom', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/dom', ['require', 'exports', 'module' ], function(require, exports, module) {
if (typeof document == "undefined")
@@ -1240,7 +1240,7 @@ exports.getParentWindow = function(document) {
});
-ace.define('ace/lib/event', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/lib/useragent', 'ace/lib/dom'], function(require, exports, module) {
+consoleAce.define('ace/lib/event', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/lib/useragent', 'ace/lib/dom'], function(require, exports, module) {
var keys = require("./keys");
@@ -1555,7 +1555,7 @@ else
};
});
-ace.define('ace/lib/keys', ['require', 'exports', 'module' , 'ace/lib/oop'], function(require, exports, module) {
+consoleAce.define('ace/lib/keys', ['require', 'exports', 'module' , 'ace/lib/oop'], function(require, exports, module) {
var oop = require("./oop");
@@ -1648,7 +1648,7 @@ exports.keyCodeToString = function(keyCode) {
});
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
exports.inherits = function(ctor, superCtor) {
@@ -1676,7 +1676,7 @@ exports.implement = function(proto, mixin) {
});
-ace.define('ace/lib/useragent', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/useragent', ['require', 'exports', 'module' ], function(require, exports, module) {
exports.OS = {
LINUX: "LINUX",
MAC: "MAC",
@@ -1719,7 +1719,7 @@ exports.isTouchPad = ua.indexOf("TouchPad") >= 0;
});
-ace.define('ace/editor', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers', 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/lang', 'ace/lib/useragent', 'ace/keyboard/textinput', 'ace/mouse/mouse_handler', 'ace/mouse/fold_handler', 'ace/keyboard/keybinding', 'ace/edit_session', 'ace/search', 'ace/range', 'ace/lib/event_emitter', 'ace/commands/command_manager', 'ace/commands/default_commands', 'ace/config'], function(require, exports, module) {
+consoleAce.define('ace/editor', ['require', 'exports', 'module' , 'ace/lib/fixoldbrowsers', 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/lang', 'ace/lib/useragent', 'ace/keyboard/textinput', 'ace/mouse/mouse_handler', 'ace/mouse/fold_handler', 'ace/keyboard/keybinding', 'ace/edit_session', 'ace/search', 'ace/range', 'ace/lib/event_emitter', 'ace/commands/command_manager', 'ace/commands/default_commands', 'ace/config'], function(require, exports, module) {
require("./lib/fixoldbrowsers");
@@ -3338,7 +3338,7 @@ config.defineOptions(Editor.prototype, "editor", {
exports.Editor = Editor;
});
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
exports.stringReverse = function(string) {
@@ -3521,7 +3521,7 @@ exports.delayedCall = function(fcn, defaultTimeout) {
};
});
-ace.define('ace/keyboard/textinput', ['require', 'exports', 'module' , 'ace/lib/event', 'ace/lib/useragent', 'ace/lib/dom', 'ace/lib/lang'], function(require, exports, module) {
+consoleAce.define('ace/keyboard/textinput', ['require', 'exports', 'module' , 'ace/lib/event', 'ace/lib/useragent', 'ace/lib/dom', 'ace/lib/lang'], function(require, exports, module) {
var event = require("../lib/event");
@@ -3966,7 +3966,7 @@ var TextInput = function(parentNode, host) {
exports.TextInput = TextInput;
});
-ace.define('ace/mouse/mouse_handler', ['require', 'exports', 'module' , 'ace/lib/event', 'ace/lib/useragent', 'ace/mouse/default_handlers', 'ace/mouse/default_gutter_handler', 'ace/mouse/mouse_event', 'ace/mouse/dragdrop_handler', 'ace/config'], function(require, exports, module) {
+consoleAce.define('ace/mouse/mouse_handler', ['require', 'exports', 'module' , 'ace/lib/event', 'ace/lib/useragent', 'ace/mouse/default_handlers', 'ace/mouse/default_gutter_handler', 'ace/mouse/mouse_event', 'ace/mouse/dragdrop_handler', 'ace/config'], function(require, exports, module) {
var event = require("../lib/event");
@@ -4095,7 +4095,7 @@ config.defineOptions(MouseHandler.prototype, "mouseHandler", {
exports.MouseHandler = MouseHandler;
});
-ace.define('ace/mouse/default_handlers', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/event', 'ace/lib/useragent'], function(require, exports, module) {
+consoleAce.define('ace/mouse/default_handlers', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/event', 'ace/lib/useragent'], function(require, exports, module) {
var dom = require("../lib/dom");
@@ -4332,7 +4332,7 @@ function calcRangeOrientation(range, cursor) {
});
-ace.define('ace/mouse/default_gutter_handler', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/event'], function(require, exports, module) {
+consoleAce.define('ace/mouse/default_gutter_handler', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/event'], function(require, exports, module) {
var dom = require("../lib/dom");
var event = require("../lib/event");
@@ -4464,7 +4464,7 @@ exports.GutterHandler = GutterHandler;
});
-ace.define('ace/mouse/mouse_event', ['require', 'exports', 'module' , 'ace/lib/event', 'ace/lib/useragent'], function(require, exports, module) {
+consoleAce.define('ace/mouse/mouse_event', ['require', 'exports', 'module' , 'ace/lib/event', 'ace/lib/useragent'], function(require, exports, module) {
var event = require("../lib/event");
@@ -4538,7 +4538,7 @@ var MouseEvent = exports.MouseEvent = function(domEvent, editor) {
});
-ace.define('ace/mouse/dragdrop_handler', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/event', 'ace/lib/useragent'], function(require, exports, module) {
+consoleAce.define('ace/mouse/dragdrop_handler', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/event', 'ace/lib/useragent'], function(require, exports, module) {
var dom = require("../lib/dom");
@@ -4911,7 +4911,7 @@ exports.DragdropHandler = DragdropHandler;
});
-ace.define('ace/config', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/lib/net', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/config', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/lib/net', 'ace/lib/event_emitter'], function(require, exports, module) {
"no use strict";
var lang = require("./lib/lang");
@@ -5163,7 +5163,7 @@ exports.setDefaultValues = function(path, optionHash) {
};
});
-ace.define('ace/lib/net', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) {
+consoleAce.define('ace/lib/net', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) {
var dom = require("./dom");
@@ -5196,7 +5196,7 @@ exports.loadScript = function(path, callback) {
});
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
var EventEmitter = {};
@@ -5322,7 +5322,7 @@ exports.EventEmitter = EventEmitter;
});
-ace.define('ace/mouse/fold_handler', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/mouse/fold_handler', ['require', 'exports', 'module' ], function(require, exports, module) {
function FoldHandler(editor) {
@@ -5384,7 +5384,7 @@ exports.FoldHandler = FoldHandler;
});
-ace.define('ace/keyboard/keybinding', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/lib/event'], function(require, exports, module) {
+consoleAce.define('ace/keyboard/keybinding', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/lib/event'], function(require, exports, module) {
var keyUtil = require("../lib/keys");
@@ -5488,7 +5488,7 @@ var KeyBinding = function(editor) {
exports.KeyBinding = KeyBinding;
});
-ace.define('ace/edit_session', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/config', 'ace/lib/event_emitter', 'ace/selection', 'ace/mode/text', 'ace/range', 'ace/document', 'ace/background_tokenizer', 'ace/search_highlight', 'ace/edit_session/folding', 'ace/edit_session/bracket_match'], function(require, exports, module) {
+consoleAce.define('ace/edit_session', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/config', 'ace/lib/event_emitter', 'ace/selection', 'ace/mode/text', 'ace/range', 'ace/document', 'ace/background_tokenizer', 'ace/search_highlight', 'ace/edit_session/folding', 'ace/edit_session/bracket_match'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -7181,7 +7181,7 @@ config.defineOptions(EditSession.prototype, "session", {
exports.EditSession = EditSession;
});
-ace.define('ace/selection', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/lib/event_emitter', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/selection', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/lib/event_emitter', 'ace/range'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -7769,7 +7769,7 @@ var Selection = function(session) {
exports.Selection = Selection;
});
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
var comparePoints = function(p1, p2) {
return p1.row - p2.row || p1.column - p2.column;
@@ -8008,7 +8008,7 @@ Range.comparePoints = function(p1, p2) {
exports.Range = Range;
});
-ace.define('ace/mode/text', ['require', 'exports', 'module' , 'ace/tokenizer', 'ace/mode/text_highlight_rules', 'ace/mode/behaviour', 'ace/unicode', 'ace/lib/lang', 'ace/token_iterator', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/mode/text', ['require', 'exports', 'module' , 'ace/tokenizer', 'ace/mode/text_highlight_rules', 'ace/mode/behaviour', 'ace/unicode', 'ace/lib/lang', 'ace/token_iterator', 'ace/range'], function(require, exports, module) {
var Tokenizer = require("../tokenizer").Tokenizer;
@@ -8360,7 +8360,7 @@ var Mode = function() {
exports.Mode = Mode;
});
-ace.define('ace/tokenizer', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/tokenizer', ['require', 'exports', 'module' ], function(require, exports, module) {
var MAX_TOKEN_COUNT = 1000;
var Tokenizer = function(rules) {
this.states = rules;
@@ -8644,7 +8644,7 @@ var Tokenizer = function(rules) {
exports.Tokenizer = Tokenizer;
});
-ace.define('ace/mode/text_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) {
+consoleAce.define('ace/mode/text_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/lang'], function(require, exports, module) {
var lang = require("../lib/lang");
@@ -8842,7 +8842,7 @@ var TextHighlightRules = function() {
exports.TextHighlightRules = TextHighlightRules;
});
-ace.define('ace/mode/behaviour', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/mode/behaviour', ['require', 'exports', 'module' ], function(require, exports, module) {
var Behaviour = function() {
@@ -8902,7 +8902,7 @@ var Behaviour = function() {
exports.Behaviour = Behaviour;
});
-ace.define('ace/unicode', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/unicode', ['require', 'exports', 'module' ], function(require, exports, module) {
exports.packages = {};
addUnicodePackage({
@@ -8953,7 +8953,7 @@ function addUnicodePackage (pack) {
});
-ace.define('ace/token_iterator', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/token_iterator', ['require', 'exports', 'module' ], function(require, exports, module) {
var TokenIterator = function(session, initialRow, initialColumn) {
this.$session = session;
this.$row = initialRow;
@@ -9025,7 +9025,7 @@ var TokenIterator = function(session, initialRow, initialColumn) {
exports.TokenIterator = TokenIterator;
});
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
+consoleAce.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -9381,7 +9381,7 @@ var Document = function(text) {
exports.Document = Document;
});
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -9528,7 +9528,7 @@ var Anchor = exports.Anchor = function(doc, row, column) {
});
-ace.define('ace/background_tokenizer', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/background_tokenizer', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -9675,7 +9675,7 @@ var BackgroundTokenizer = function(tokenizer, editor) {
exports.BackgroundTokenizer = BackgroundTokenizer;
});
-ace.define('ace/search_highlight', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/search_highlight', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/range'], function(require, exports, module) {
var lang = require("./lib/lang");
@@ -9727,7 +9727,7 @@ var SearchHighlight = function(regExp, clazz, type) {
exports.SearchHighlight = SearchHighlight;
});
-ace.define('ace/edit_session/folding', ['require', 'exports', 'module' , 'ace/range', 'ace/edit_session/fold_line', 'ace/edit_session/fold', 'ace/token_iterator'], function(require, exports, module) {
+consoleAce.define('ace/edit_session/folding', ['require', 'exports', 'module' , 'ace/range', 'ace/edit_session/fold_line', 'ace/edit_session/fold', 'ace/token_iterator'], function(require, exports, module) {
var Range = require("../range").Range;
@@ -10459,7 +10459,7 @@ exports.Folding = Folding;
});
-ace.define('ace/edit_session/fold_line', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/edit_session/fold_line', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
var Range = require("../range").Range;
@@ -10677,7 +10677,7 @@ function FoldLine(foldData, folds) {
exports.FoldLine = FoldLine;
});
-ace.define('ace/edit_session/fold', ['require', 'exports', 'module' , 'ace/range', 'ace/range_list', 'ace/lib/oop'], function(require, exports, module) {
+consoleAce.define('ace/edit_session/fold', ['require', 'exports', 'module' , 'ace/range', 'ace/range_list', 'ace/lib/oop'], function(require, exports, module) {
var Range = require("../range").Range;
@@ -10781,7 +10781,7 @@ function restoreRange(range, anchor) {
});
-ace.define('ace/range_list', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/range_list', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
var Range = require("./range").Range;
var comparePoints = Range.comparePoints;
@@ -10988,7 +10988,7 @@ var RangeList = function() {
exports.RangeList = RangeList;
});
-ace.define('ace/edit_session/bracket_match', ['require', 'exports', 'module' , 'ace/token_iterator', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/edit_session/bracket_match', ['require', 'exports', 'module' , 'ace/token_iterator', 'ace/range'], function(require, exports, module) {
var TokenIterator = require("../token_iterator").TokenIterator;
@@ -11168,7 +11168,7 @@ exports.BracketMatch = BracketMatch;
});
-ace.define('ace/search', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/search', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/lib/oop', 'ace/range'], function(require, exports, module) {
var lang = require("./lib/lang");
@@ -11457,7 +11457,7 @@ var Search = function() {
exports.Search = Search;
});
-ace.define('ace/commands/command_manager', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/keyboard/hash_handler', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/commands/command_manager', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/keyboard/hash_handler', 'ace/lib/event_emitter'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -11557,7 +11557,7 @@ exports.CommandManager = CommandManager;
});
-ace.define('ace/keyboard/hash_handler', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/lib/useragent'], function(require, exports, module) {
+consoleAce.define('ace/keyboard/hash_handler', ['require', 'exports', 'module' , 'ace/lib/keys', 'ace/lib/useragent'], function(require, exports, module) {
var keyUtil = require("../lib/keys");
@@ -11717,7 +11717,7 @@ function HashHandler(config, platform) {
exports.HashHandler = HashHandler;
});
-ace.define('ace/commands/default_commands', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/config'], function(require, exports, module) {
+consoleAce.define('ace/commands/default_commands', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/config'], function(require, exports, module) {
var lang = require("../lib/lang");
@@ -12261,7 +12261,7 @@ exports.commands = [{
});
-ace.define('ace/undomanager', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/undomanager', ['require', 'exports', 'module' ], function(require, exports, module) {
var UndoManager = function() {
this.reset();
};
@@ -12328,7 +12328,7 @@ var UndoManager = function() {
exports.UndoManager = UndoManager;
});
-ace.define('ace/virtual_renderer', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/useragent', 'ace/config', 'ace/layer/gutter', 'ace/layer/marker', 'ace/layer/text', 'ace/layer/cursor', 'ace/scrollbar', 'ace/renderloop', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/virtual_renderer', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/useragent', 'ace/config', 'ace/layer/gutter', 'ace/layer/marker', 'ace/layer/text', 'ace/layer/cursor', 'ace/scrollbar', 'ace/renderloop', 'ace/lib/event_emitter'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -13930,7 +13930,7 @@ config.defineOptions(VirtualRenderer.prototype, "renderer", {
exports.VirtualRenderer = VirtualRenderer;
});
-ace.define('ace/layer/gutter', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/oop', 'ace/lib/lang', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/layer/gutter', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/oop', 'ace/lib/lang', 'ace/lib/event_emitter'], function(require, exports, module) {
var dom = require("../lib/dom");
@@ -14170,7 +14170,7 @@ exports.Gutter = Gutter;
});
-ace.define('ace/layer/marker', ['require', 'exports', 'module' , 'ace/range', 'ace/lib/dom'], function(require, exports, module) {
+consoleAce.define('ace/layer/marker', ['require', 'exports', 'module' , 'ace/range', 'ace/lib/dom'], function(require, exports, module) {
var Range = require("../range").Range;
@@ -14345,7 +14345,7 @@ exports.Marker = Marker;
});
-ace.define('ace/layer/text', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/lang', 'ace/lib/useragent', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/layer/text', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/lang', 'ace/lib/useragent', 'ace/lib/event_emitter'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -14953,7 +14953,7 @@ exports.Text = Text;
});
-ace.define('ace/layer/cursor', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) {
+consoleAce.define('ace/layer/cursor', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) {
var dom = require("../lib/dom");
@@ -15139,7 +15139,7 @@ exports.Cursor = Cursor;
});
-ace.define('ace/scrollbar', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/event', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/scrollbar', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/lib/event', 'ace/lib/event_emitter'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -15262,7 +15262,7 @@ exports.VScrollBar = VScrollBar;
exports.HScrollBar = HScrollBar;
});
-ace.define('ace/renderloop', ['require', 'exports', 'module' , 'ace/lib/event'], function(require, exports, module) {
+consoleAce.define('ace/renderloop', ['require', 'exports', 'module' , 'ace/lib/event'], function(require, exports, module) {
var event = require("./lib/event");
@@ -15299,7 +15299,7 @@ var RenderLoop = function(onRender, win) {
exports.RenderLoop = RenderLoop;
});
-ace.define('ace/multi_select', ['require', 'exports', 'module' , 'ace/range_list', 'ace/range', 'ace/selection', 'ace/mouse/multi_select_handler', 'ace/lib/event', 'ace/lib/lang', 'ace/commands/multi_select_commands', 'ace/search', 'ace/edit_session', 'ace/editor', 'ace/config'], function(require, exports, module) {
+consoleAce.define('ace/multi_select', ['require', 'exports', 'module' , 'ace/range_list', 'ace/range', 'ace/selection', 'ace/mouse/multi_select_handler', 'ace/lib/event', 'ace/lib/lang', 'ace/commands/multi_select_commands', 'ace/search', 'ace/edit_session', 'ace/editor', 'ace/config'], function(require, exports, module) {
var RangeList = require("./range_list").RangeList;
var Range = require("./range").Range;
@@ -16080,7 +16080,7 @@ require("./config").defineOptions(Editor.prototype, "editor", {
});
-ace.define('ace/mouse/multi_select_handler', ['require', 'exports', 'module' , 'ace/lib/event'], function(require, exports, module) {
+consoleAce.define('ace/mouse/multi_select_handler', ['require', 'exports', 'module' , 'ace/lib/event'], function(require, exports, module) {
var event = require("../lib/event");
function isSamePoint(p1, p2) {
@@ -16210,7 +16210,7 @@ exports.onMouseDown = onMouseDown;
});
-ace.define('ace/commands/multi_select_commands', ['require', 'exports', 'module' , 'ace/keyboard/hash_handler'], function(require, exports, module) {
+consoleAce.define('ace/commands/multi_select_commands', ['require', 'exports', 'module' , 'ace/keyboard/hash_handler'], function(require, exports, module) {
exports.defaultCommands = [{
name: "addCursorAbove",
exec: function(editor) { editor.selectMoreLines(-1); },
@@ -16274,7 +16274,7 @@ exports.keyboardHandler = new HashHandler(exports.multiSelectCommands);
});
-ace.define('ace/worker/worker_client', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/config'], function(require, exports, module) {
+consoleAce.define('ace/worker/worker_client', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/config'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -16458,7 +16458,7 @@ exports.UIWorkerClient = UIWorkerClient;
exports.WorkerClient = WorkerClient;
});
-ace.define('ace/placeholder', ['require', 'exports', 'module' , 'ace/range', 'ace/lib/event_emitter', 'ace/lib/oop'], function(require, exports, module) {
+consoleAce.define('ace/placeholder', ['require', 'exports', 'module' , 'ace/range', 'ace/lib/event_emitter', 'ace/lib/oop'], function(require, exports, module) {
var Range = require("./range").Range;
@@ -16630,7 +16630,7 @@ var PlaceHolder = function(session, length, pos, others, mainClass, othersClass)
exports.PlaceHolder = PlaceHolder;
});
-ace.define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
var Range = require("../../range").Range;
@@ -16719,7 +16719,7 @@ var FoldMode = exports.FoldMode = function() {};
});
-ace.define('ace/theme/textmate', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) {
+consoleAce.define('ace/theme/textmate', ['require', 'exports', 'module' , 'ace/lib/dom'], function(require, exports, module) {
exports.isDark = false;
@@ -16849,7 +16849,7 @@ var dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass);
});
-ace.define('ace/ext/error_marker', ['require', 'exports', 'module' , 'ace/line_widgets', 'ace/lib/dom', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/ext/error_marker', ['require', 'exports', 'module' , 'ace/line_widgets', 'ace/lib/dom', 'ace/range'], function(require, exports, module) {
var LineWidgets = require("ace/line_widgets").LineWidgets;
var dom = require("ace/lib/dom");
@@ -17030,7 +17030,7 @@ dom.importCssString("\
});
-ace.define('ace/line_widgets', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/line_widgets', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/dom', 'ace/range'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -17299,12 +17299,11 @@ exports.LineWidgets = LineWidgets;
;
(function() {
- ace.require(["ace/ace"], function(a) {
+ consoleAce.require(["ace/ace"], function(a) {
a && a.config.init();
- if (!window.ace)
- window.ace = {};
+ if (!window.consoleAce)
+ window.consoleAce = {};
for (var key in a) if (a.hasOwnProperty(key))
- ace[key] = a[key];
+ consoleAce[key] = a[key];
});
})();
-
\ No newline at end of file
diff --git a/src/core_plugins/console/public/webpackShims/ace/ext-language_tools.js b/src/core_plugins/console/public/webpackShims/ace/ext-language_tools.js
index c456633497f1..812e26861add 100644
--- a/src/core_plugins/console/public/webpackShims/ace/ext-language_tools.js
+++ b/src/core_plugins/console/public/webpackShims/ace/ext-language_tools.js
@@ -28,7 +28,7 @@
*
* ***** END LICENSE BLOCK ***** */
-ace.define('ace/ext/language_tools', ['require', 'exports', 'module' , 'ace/snippets', 'ace/autocomplete', 'ace/config', 'ace/autocomplete/text_completer', 'ace/editor'], function(require, exports, module) {
+consoleAce.define('ace/ext/language_tools', ['require', 'exports', 'module' , 'ace/snippets', 'ace/autocomplete', 'ace/config', 'ace/autocomplete/text_completer', 'ace/editor'], function(require, exports, module) {
var snippetManager = require("../snippets").snippetManager;
@@ -144,7 +144,7 @@ require("../config").defineOptions(Editor.prototype, "editor", {
});
-ace.define('ace/snippets', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/range', 'ace/keyboard/hash_handler', 'ace/tokenizer', 'ace/lib/dom'], function(require, exports, module) {
+consoleAce.define('ace/snippets', ['require', 'exports', 'module' , 'ace/lib/lang', 'ace/range', 'ace/keyboard/hash_handler', 'ace/tokenizer', 'ace/lib/dom'], function(require, exports, module) {
var lang = require("./lib/lang")
var Range = require("./range").Range
@@ -959,7 +959,7 @@ exports.snippetManager = new SnippetManager();
});
-ace.define('ace/autocomplete', ['require', 'exports', 'module' , 'ace/keyboard/hash_handler', 'ace/autocomplete/popup', 'ace/autocomplete/util', 'ace/lib/event', 'ace/lib/lang', 'ace/snippets'], function(require, exports, module) {
+consoleAce.define('ace/autocomplete', ['require', 'exports', 'module' , 'ace/keyboard/hash_handler', 'ace/autocomplete/popup', 'ace/autocomplete/util', 'ace/lib/event', 'ace/lib/lang', 'ace/snippets'], function(require, exports, module) {
var HashHandler = require("./keyboard/hash_handler").HashHandler;
@@ -1276,7 +1276,7 @@ exports.FilteredList = FilteredList;
});
-ace.define('ace/autocomplete/popup', ['require', 'exports', 'module' , 'ace/edit_session', 'ace/virtual_renderer', 'ace/editor', 'ace/range', 'ace/lib/event', 'ace/lib/lang', 'ace/lib/dom'], function(require, exports, module) {
+consoleAce.define('ace/autocomplete/popup', ['require', 'exports', 'module' , 'ace/edit_session', 'ace/virtual_renderer', 'ace/editor', 'ace/range', 'ace/lib/event', 'ace/lib/lang', 'ace/lib/dom'], function(require, exports, module) {
var EditSession = require("../edit_session").EditSession;
@@ -1575,7 +1575,7 @@ exports.AcePopup = AcePopup;
});
-ace.define('ace/autocomplete/util', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/autocomplete/util', ['require', 'exports', 'module' ], function(require, exports, module) {
exports.parForEach = function(array, fn, callback) {
@@ -1620,7 +1620,7 @@ exports.retrieveFollowingIdentifier = function(text, pos, regex) {
});
-ace.define('ace/autocomplete/text_completer', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/autocomplete/text_completer', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
var Range = require("ace/range").Range;
var splitRegex = /[^a-zA-Z_0-9\$\-]+/;
@@ -1662,4 +1662,4 @@ ace.define('ace/autocomplete/text_completer', ['require', 'exports', 'module' ,
};
}));
};
-});
\ No newline at end of file
+});
diff --git a/src/core_plugins/console/public/webpackShims/ace/ext-searchbox.js b/src/core_plugins/console/public/webpackShims/ace/ext-searchbox.js
index b75c1930e1d7..a1eac722f50d 100644
--- a/src/core_plugins/console/public/webpackShims/ace/ext-searchbox.js
+++ b/src/core_plugins/console/public/webpackShims/ace/ext-searchbox.js
@@ -28,7 +28,7 @@
*
* ***** END LICENSE BLOCK ***** */
-ace.define('ace/ext/searchbox', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/lang', 'ace/lib/event', 'ace/keyboard/hash_handler', 'ace/lib/keys'], function(require, exports, module) {
+consoleAce.define('ace/ext/searchbox', ['require', 'exports', 'module' , 'ace/lib/dom', 'ace/lib/lang', 'ace/lib/event', 'ace/keyboard/hash_handler', 'ace/lib/keys'], function(require, exports, module) {
var dom = require("../lib/dom");
diff --git a/src/core_plugins/console/public/webpackShims/ace/mode-json.js b/src/core_plugins/console/public/webpackShims/ace/mode-json.js
index 1972bd6166e7..06b39f90b23d 100644
--- a/src/core_plugins/console/public/webpackShims/ace/mode-json.js
+++ b/src/core_plugins/console/public/webpackShims/ace/mode-json.js
@@ -28,7 +28,7 @@
*
* ***** END LICENSE BLOCK ***** */
-ace.define('ace/mode/json', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/json_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle', 'ace/worker/worker_client'], function(require, exports, module) {
+consoleAce.define('ace/mode/json', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/json_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle', 'ace/worker/worker_client'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -93,7 +93,7 @@ oop.inherits(Mode, TextMode);
exports.Mode = Mode;
});
-ace.define('ace/mode/json_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
+consoleAce.define('ace/mode/json_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -161,7 +161,7 @@ oop.inherits(JsonHighlightRules, TextHighlightRules);
exports.JsonHighlightRules = JsonHighlightRules;
});
-ace.define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
var Range = require("../range").Range;
@@ -201,7 +201,7 @@ var MatchingBraceOutdent = function() {};
exports.MatchingBraceOutdent = MatchingBraceOutdent;
});
-ace.define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/token_iterator', 'ace/lib/lang'], function(require, exports, module) {
+consoleAce.define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour', 'ace/token_iterator', 'ace/lib/lang'], function(require, exports, module) {
var oop = require("../../lib/oop");
@@ -529,7 +529,7 @@ oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour;
});
-ace.define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
+consoleAce.define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
var oop = require("../../lib/oop");
diff --git a/src/core_plugins/console/public/webpackShims/ace/mode-yaml.js b/src/core_plugins/console/public/webpackShims/ace/mode-yaml.js
index f1650fc1c26c..e517111c4d27 100644
--- a/src/core_plugins/console/public/webpackShims/ace/mode-yaml.js
+++ b/src/core_plugins/console/public/webpackShims/ace/mode-yaml.js
@@ -28,7 +28,7 @@
*
* ***** END LICENSE BLOCK ***** */
-ace.define('ace/mode/yaml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/yaml_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/folding/coffee'], function(require, exports, module) {
+consoleAce.define('ace/mode/yaml', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/yaml_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/folding/coffee'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -78,7 +78,7 @@ exports.Mode = Mode;
});
-ace.define('ace/mode/yaml_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
+consoleAce.define('ace/mode/yaml_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -162,7 +162,7 @@ oop.inherits(YamlHighlightRules, TextHighlightRules);
exports.YamlHighlightRules = YamlHighlightRules;
});
-ace.define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
var Range = require("../range").Range;
@@ -202,7 +202,7 @@ var MatchingBraceOutdent = function() {};
exports.MatchingBraceOutdent = MatchingBraceOutdent;
});
-ace.define('ace/mode/folding/coffee', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode', 'ace/range'], function(require, exports, module) {
+consoleAce.define('ace/mode/folding/coffee', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/folding/fold_mode', 'ace/range'], function(require, exports, module) {
var oop = require("../../lib/oop");
diff --git a/src/core_plugins/console/public/webpackShims/ace/worker-json.js b/src/core_plugins/console/public/webpackShims/ace/worker-json.js
index d9e7127bfdef..508c852fd37c 100644
--- a/src/core_plugins/console/public/webpackShims/ace/worker-json.js
+++ b/src/core_plugins/console/public/webpackShims/ace/worker-json.js
@@ -173,7 +173,7 @@ window.onmessage = function(e) {
};
})(this);// https://github.com/kriskowal/es5-shim
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
function Empty() {}
@@ -870,7 +870,7 @@ var toObject = function (o) {
});
-ace.define('ace/mode/json_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/json/json_parse'], function(require, exports, module) {
+consoleAce.define('ace/mode/json_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/json/json_parse'], function(require, exports, module) {
var oop = require("../lib/oop");
@@ -908,7 +908,7 @@ oop.inherits(JsonWorker, Mirror);
});
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
exports.inherits = function(ctor, superCtor) {
@@ -935,7 +935,7 @@ exports.implement = function(proto, mixin) {
};
});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
+consoleAce.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
var Document = require("../document").Document;
@@ -984,7 +984,7 @@ var Mirror = exports.Mirror = function(sender) {
});
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
+consoleAce.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -1340,7 +1340,7 @@ var Document = function(text) {
exports.Document = Document;
});
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
var EventEmitter = {};
@@ -1466,7 +1466,7 @@ exports.EventEmitter = EventEmitter;
});
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
var comparePoints = function(p1, p2) {
return p1.row - p2.row || p1.column - p2.column;
@@ -1705,7 +1705,7 @@ Range.comparePoints = function(p1, p2) {
exports.Range = Range;
});
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
+consoleAce.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
var oop = require("./lib/oop");
@@ -1852,7 +1852,7 @@ var Anchor = exports.Anchor = function(doc, row, column) {
});
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
exports.stringReverse = function(string) {
@@ -2035,7 +2035,7 @@ exports.delayedCall = function(fcn, defaultTimeout) {
};
});
-ace.define('ace/mode/json/json_parse', ['require', 'exports', 'module' ], function(require, exports, module) {
+consoleAce.define('ace/mode/json/json_parse', ['require', 'exports', 'module' ], function(require, exports, module) {
var at, // The index of the current character
ch, // The current character
diff --git a/src/core_plugins/elasticsearch/index.js b/src/core_plugins/elasticsearch/index.js
index a536fa3f1dcc..46cce51c73d5 100644
--- a/src/core_plugins/elasticsearch/index.js
+++ b/src/core_plugins/elasticsearch/index.js
@@ -33,7 +33,6 @@ module.exports = function ({ Plugin }) {
key: string()
}).default(),
apiVersion: Joi.string().default('master'),
- engineVersion: Joi.string().valid('^5.0.0').default('^5.0.0')
}).default();
},
diff --git a/src/core_plugins/elasticsearch/lib/__tests__/check_es_version.js b/src/core_plugins/elasticsearch/lib/__tests__/check_es_version.js
index b40634d51fb4..ffe96632d11b 100644
--- a/src/core_plugins/elasticsearch/lib/__tests__/check_es_version.js
+++ b/src/core_plugins/elasticsearch/lib/__tests__/check_es_version.js
@@ -8,17 +8,20 @@ import SetupError from '../setup_error';
import serverConfig from '../../../../../test/server_config';
import checkEsVersion from '../check_es_version';
-describe('plugins/elasticsearch', function () {
- describe('lib/check_es_version', function () {
+describe('plugins/elasticsearch', () => {
+ describe('lib/check_es_version', () => {
+ const KIBANA_VERSION = '5.1.0';
+
let server;
let plugin;
beforeEach(function () {
- const get = sinon.stub().withArgs('elasticsearch.engineVersion').returns('^1.4.3');
- const config = function () { return { get: get }; };
server = {
log: _.noop,
- config: config,
+ // This is required or else we get a SetupError.
+ config: () => ({
+ get: sinon.stub(),
+ }),
plugins: {
elasticsearch: {
client: {
@@ -44,7 +47,9 @@ describe('plugins/elasticsearch', function () {
const node = {
version: version,
- http_address: 'http_address',
+ http: {
+ publish_address: 'http_address',
+ },
ip: 'ip'
};
@@ -54,40 +59,41 @@ describe('plugins/elasticsearch', function () {
const client = server.plugins.elasticsearch.client;
client.nodes.info = sinon.stub().returns(Promise.resolve({ nodes: nodes }));
-
}
- it('passes with single a node that matches', function () {
- setNodes('1.4.3');
- return checkEsVersion(server);
+ it('returns true with single a node that matches', async () => {
+ setNodes('5.1.0');
+ const result = await checkEsVersion(server, KIBANA_VERSION);
+ expect(result).to.be(true);
});
- it('passes with multiple nodes that satisfy', function () {
- setNodes('1.4.3', '1.4.4', '1.4.3-Beta1');
- return checkEsVersion(server);
+ it('returns true with multiple nodes that satisfy', async () => {
+ setNodes('5.1.0', '5.2.0', '5.1.1-Beta1');
+ const result = await checkEsVersion(server, KIBANA_VERSION);
+ expect(result).to.be(true);
});
- it('fails with a single node that is out of date', function () {
- setNodes('1.4.4', '1.4.2', '1.4.5');
-
- checkEsVersion(server)
- .catch(function (e) {
+ it('throws an error with a single node that is out of date', async () => {
+ // 5.0.0 ES is too old to work with a 5.1.0 version of Kibana.
+ setNodes('5.1.0', '5.2.0', '5.0.0');
+ try {
+ await checkEsVersion(server, KIBANA_VERSION);
+ } catch (e) {
expect(e).to.be.a(SetupError);
- });
+ }
});
- it('fails if that single node is a client node', function () {
+ it('fails if that single node is a client node', async () => {
setNodes(
- '1.4.4',
- { version: '1.4.2', attributes: { client: 'true' } },
- '1.4.5'
+ '5.1.0',
+ '5.2.0',
+ { version: '5.0.0', attributes: { client: 'true' } },
);
-
- checkEsVersion(server)
- .catch(function (e) {
+ try {
+ await checkEsVersion(server, KIBANA_VERSION);
+ } catch (e) {
expect(e).to.be.a(SetupError);
- });
+ }
});
-
});
});
diff --git a/src/core_plugins/elasticsearch/lib/__tests__/health_check.js b/src/core_plugins/elasticsearch/lib/__tests__/health_check.js
index 1e81b524975e..58382d2b6852 100644
--- a/src/core_plugins/elasticsearch/lib/__tests__/health_check.js
+++ b/src/core_plugins/elasticsearch/lib/__tests__/health_check.js
@@ -6,22 +6,24 @@ import url from 'url';
const NoConnections = require('elasticsearch').errors.NoConnections;
import healthCheck from '../health_check';
+import kibanaVersion from '../kibana_version';
import serverConfig from '../../../../../test/server_config';
const esPort = serverConfig.servers.elasticsearch.port;
const esUrl = url.format(serverConfig.servers.elasticsearch);
-describe('plugins/elasticsearch', function () {
- describe('lib/health_check', function () {
-
+describe('plugins/elasticsearch', () => {
+ describe('lib/health_check', () => {
let health;
let plugin;
- let server;
- let get;
- let set;
let client;
- beforeEach(function () {
+ beforeEach(() => {
+ const COMPATIBLE_VERSION_NUMBER = '5.0.0';
+
+ // Stub the Kibana version instead of drawing from package.json.
+ sinon.stub(kibanaVersion, 'get').returns(COMPATIBLE_VERSION_NUMBER);
+
// setup the plugin stub
plugin = {
name: 'elasticsearch',
@@ -31,9 +33,7 @@ describe('plugins/elasticsearch', function () {
yellow: sinon.stub()
}
};
- // setup the config().get()/.set() stubs
- get = sinon.stub();
- set = sinon.stub();
+
// set up the elasticsearch client stub
client = {
cluster: { health: sinon.stub() },
@@ -45,17 +45,26 @@ describe('plugins/elasticsearch', function () {
get: sinon.stub().returns(Promise.resolve({ found: false })),
search: sinon.stub().returns(Promise.resolve({ hits: { hits: [] } })),
};
+
client.nodes.info.returns(Promise.resolve({
nodes: {
'node-01': {
- version: '1.5.0',
+ version: COMPATIBLE_VERSION_NUMBER,
http_address: `inet[/127.0.0.1:${esPort}]`,
ip: '127.0.0.1'
}
}
}));
+
+ // setup the config().get()/.set() stubs
+ const get = sinon.stub();
+ get.withArgs('elasticsearch.url').returns(esUrl);
+ get.withArgs('kibana.index').returns('.my-kibana');
+
+ const set = sinon.stub();
+
// Setup the server mock
- server = {
+ const server = {
log: sinon.stub(),
info: { port: 5601 },
config: function () { return { get, set }; },
@@ -65,9 +74,11 @@ describe('plugins/elasticsearch', function () {
health = healthCheck(plugin, server);
});
+ afterEach(() => {
+ kibanaVersion.get.restore();
+ });
+
it('should set the cluster green if everything is ready', function () {
- get.withArgs('elasticsearch.engineVersion').returns('^1.4.4');
- get.withArgs('kibana.index').returns('.my-kibana');
client.ping.returns(Promise.resolve());
client.cluster.health.returns(Promise.resolve({ timed_out: false, status: 'green' }));
return health.run()
@@ -83,10 +94,6 @@ describe('plugins/elasticsearch', function () {
});
it('should set the cluster red if the ping fails, then to green', function () {
-
- get.withArgs('elasticsearch.url').returns(esUrl);
- get.withArgs('elasticsearch.engineVersion').returns('^1.4.4');
- get.withArgs('kibana.index').returns('.my-kibana');
client.ping.onCall(0).returns(Promise.reject(new NoConnections()));
client.ping.onCall(1).returns(Promise.resolve());
client.cluster.health.returns(Promise.resolve({ timed_out: false, status: 'green' }));
@@ -104,13 +111,9 @@ describe('plugins/elasticsearch', function () {
sinon.assert.calledOnce(plugin.status.green);
expect(plugin.status.green.args[0][0]).to.be('Kibana index ready');
});
-
});
it('should set the cluster red if the health check status is red, then to green', function () {
- get.withArgs('elasticsearch.url').returns(esUrl);
- get.withArgs('elasticsearch.engineVersion').returns('^1.4.4');
- get.withArgs('kibana.index').returns('.my-kibana');
client.ping.returns(Promise.resolve());
client.cluster.health.onCall(0).returns(Promise.resolve({ timed_out: false, status: 'red' }));
client.cluster.health.onCall(1).returns(Promise.resolve({ timed_out: false, status: 'green' }));
@@ -131,9 +134,6 @@ describe('plugins/elasticsearch', function () {
});
it('should set the cluster yellow if the health check timed_out and create index', function () {
- get.withArgs('elasticsearch.url').returns(esUrl);
- get.withArgs('elasticsearch.engineVersion').returns('^1.4.4');
- get.withArgs('kibana.index').returns('.my-kibana');
client.ping.returns(Promise.resolve());
client.cluster.health.onCall(0).returns(Promise.resolve({ timed_out: true, status: 'red' }));
client.cluster.health.onCall(1).returns(Promise.resolve({ timed_out: false, status: 'green' }));
diff --git a/src/core_plugins/elasticsearch/lib/__tests__/is_es_compatible_with_kibana.js b/src/core_plugins/elasticsearch/lib/__tests__/is_es_compatible_with_kibana.js
new file mode 100644
index 000000000000..6445f3245168
--- /dev/null
+++ b/src/core_plugins/elasticsearch/lib/__tests__/is_es_compatible_with_kibana.js
@@ -0,0 +1,40 @@
+import expect from 'expect.js';
+import sinon from 'sinon';
+
+import isEsCompatibleWithKibana from '../is_es_compatible_with_kibana';
+
+describe('plugins/elasticsearch', () => {
+ describe('lib/is_es_compatible_with_kibana', () => {
+ describe('returns false', () => {
+ it('when ES major is greater than Kibana major', () => {
+ expect(isEsCompatibleWithKibana('1.0.0', '0.0.0')).to.be(false);
+ });
+
+ it('when ES major is less than Kibana major', () => {
+ expect(isEsCompatibleWithKibana('0.0.0', '1.0.0')).to.be(false);
+ });
+
+ it('when majors are equal, but ES minor is less than Kibana minor', () => {
+ expect(isEsCompatibleWithKibana('1.0.0', '1.1.0')).to.be(false);
+ });
+
+ it('when majors and minors are equal, but ES patch is less than Kibana patch', () => {
+ expect(isEsCompatibleWithKibana('1.1.0', '1.1.1')).to.be(false);
+ });
+ });
+
+ describe('returns true', () => {
+ it('when version numbers are the same', () => {
+ expect(isEsCompatibleWithKibana('1.1.1', '1.1.1')).to.be(true);
+ });
+
+ it('when majors are equal, and ES minor is greater than Kibana minor', () => {
+ expect(isEsCompatibleWithKibana('1.1.0', '1.0.0')).to.be(true);
+ });
+
+ it('when majors and minors are equal, and ES patch is greater than Kibana patch', () => {
+ expect(isEsCompatibleWithKibana('1.1.1', '1.1.0')).to.be(true);
+ });
+ });
+ });
+});
diff --git a/src/core_plugins/elasticsearch/lib/__tests__/routes.js b/src/core_plugins/elasticsearch/lib/__tests__/routes.js
index b70531bc6cff..1c4397fbe6ae 100644
--- a/src/core_plugins/elasticsearch/lib/__tests__/routes.js
+++ b/src/core_plugins/elasticsearch/lib/__tests__/routes.js
@@ -6,29 +6,30 @@ import fromRoot from '../../../../utils/from_root';
describe('plugins/elasticsearch', function () {
describe('routes', function () {
-
let kbnServer;
- before(function () {
- this.timeout(60000); // sometimes waiting for server takes longer than 10
+ before(async function () {
+ // Sometimes waiting for server takes longer than 10s.
+ // NOTE: This can't be a fat-arrow function because `this` needs to refer to the execution
+ // context, not to the parent context.
+ this.timeout(60000);
kbnServer = kbnTestServer.createServer({
plugins: {
scanDirs: [
fromRoot('src/core_plugins')
]
- }
+ },
});
- return kbnServer.ready()
- .then(() => kbnServer.server.plugins.elasticsearch.waitUntilReady());
- });
+ await kbnServer.ready();
+ await kbnServer.server.plugins.elasticsearch.waitUntilReady();
+ });
after(function () {
return kbnServer.close();
});
-
function testRoute(options) {
if (typeof options.payload === 'object') {
options.payload = JSON.stringify(options.payload);
@@ -49,7 +50,6 @@ describe('plugins/elasticsearch', function () {
});
}
-
testRoute({
method: 'GET',
url: '/elasticsearch/_nodes'
diff --git a/src/core_plugins/elasticsearch/lib/__tests__/version_satisfies.js b/src/core_plugins/elasticsearch/lib/__tests__/version_satisfies.js
deleted file mode 100644
index 58d14e39175f..000000000000
--- a/src/core_plugins/elasticsearch/lib/__tests__/version_satisfies.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import versionSatisfies from '../version_satisfies';
-import expect from 'expect.js';
-
-const versionChecks = [
- // order is: ['actual version', 'match expression', satisfied (true/false)]
- ['0.90.0', '>=0.90.0', true],
- ['1.2.0', '>=1.2.1 <2.0.0', false],
- ['1.2.1', '>=1.2.1 <2.0.0', true],
- ['1.4.4', '>=1.2.1 <2.0.0', true],
- ['1.7.4', '>=1.3.1 <2.0.0', true],
- ['2.0.0', '>=1.3.1 <2.0.0', false],
- ['1.4.3', '^1.4.3', true],
- ['1.4.3-Beta1', '^1.4.3', true],
- ['1.4.4', '^1.4.3', true],
- ['1.1.12', '^1.0.0', true],
- ['1.1.12', '~1.0.0', false],
- ['1.6.1-SNAPSHOT', '1.6.1', true],
- ['1.6.1-SNAPSHOT', '1.6.2', false],
- ['1.7.1-SNAPSHOT', '^1.3.1', true],
- ['1.3.4', '^1.4.0', false],
- ['2.0.1', '^2.0.0', true],
- ['2.1.1', '^2.1.0', true],
- ['2.2.0', '^2.1.0', true],
- ['3.0.0-SNAPSHOT', '^2.1.0', false],
- ['3.0.0', '^2.1.0', false],
- ['2.10.20-SNAPSHOT', '^2.10.20', true],
- ['2.10.999', '^2.10.20', true],
-];
-
-describe('plugins/elasticsearch', function () {
- describe('lib/version_satisfies', function () {
- versionChecks.forEach(function (spec) {
- const actual = spec[0];
- const match = spec[1];
- const satisfied = spec[2];
- const desc = actual + ' satisfies ' + match;
-
- describe(desc, function () {
- it('should be ' + satisfied, function () {
- expect(versionSatisfies(actual, match)).to.be(satisfied);
- });
- });
- });
- });
-});
diff --git a/src/core_plugins/elasticsearch/lib/check_es_version.js b/src/core_plugins/elasticsearch/lib/check_es_version.js
index 287132324e6a..66eb58f1b569 100644
--- a/src/core_plugins/elasticsearch/lib/check_es_version.js
+++ b/src/core_plugins/elasticsearch/lib/check_es_version.js
@@ -1,31 +1,78 @@
+/**
+ * ES and Kibana versions are locked, so Kibana should require that ES has the same version as
+ * that defined in Kibana's package.json.
+ */
+
import _ from 'lodash';
import esBool from './es_bool';
-import versionSatisfies from './version_satisfies';
+import semver from 'semver';
+import isEsCompatibleWithKibana from './is_es_compatible_with_kibana';
import SetupError from './setup_error';
-module.exports = function (server) {
+module.exports = function checkEsVersion(server, kibanaVersion) {
server.log(['plugin', 'debug'], 'Checking Elasticsearch version');
const client = server.plugins.elasticsearch.client;
- const engineVersion = server.config().get('elasticsearch.engineVersion');
return client.nodes.info()
.then(function (info) {
- const badNodes = _.filter(info.nodes, function (node) {
- // remove nodes that satify required engine version
- return !versionSatisfies(node.version, engineVersion);
+ // Aggregate incompatible ES nodes.
+ const incompatibleNodes = [];
+
+ // Aggregate ES nodes which should prompt a Kibana upgrade.
+ const warningNodes = [];
+
+ _.forEach(info.nodes, esNode => {
+ if (!isEsCompatibleWithKibana(esNode.version, kibanaVersion)) {
+ // Exit early to avoid collecting ES nodes with newer major versions in the `warningNodes`.
+ return incompatibleNodes.push(esNode);
+ }
+
+ // It's acceptable if ES is ahead of Kibana, but we want to prompt users to upgrade Kibana
+ // to match it.
+ if (semver.gt(esNode.version, kibanaVersion)) {
+ warningNodes.push(esNode);
+ }
});
- if (!badNodes.length) return true;
+ function getHumanizedNodeNames(nodes) {
+ return nodes.map(node => {
+ return 'v' + node.version + ' @ ' + node.http.publish_address + ' (' + node.ip + ')';
+ });
+ }
- const badNodeNames = badNodes.map(function (node) {
- return 'Elasticsearch v' + node.version + ' @ ' + node.http_address + ' (' + node.ip + ')';
- });
+ if (warningNodes.length) {
+ const simplifiedNodes = warningNodes.map(node => ({
+ version: node.version,
+ http: {
+ publish_address: node.http.publish_address,
+ },
+ ip: node.ip,
+ }));
- const message = `This version of Kibana requires Elasticsearch ` +
- `${engineVersion} on all nodes. I found ` +
- `the following incompatible nodes in your cluster: ${badNodeNames.join(',')}`;
+ server.log(['warning'], {
+ tmpl: (
+ 'You\'re running Kibana <%= kibanaVersion %> with some newer versions of ' +
+ 'Elasticsearch. Update Kibana to the latest version to prevent compatibility issues: ' +
+ '<%= getHumanizedNodeNames(nodes).join(", ") %>'
+ ),
+ kibanaVersion,
+ getHumanizedNodeNames,
+ nodes: simplifiedNodes,
+ });
+ }
- throw new SetupError(server, message);
+ if (incompatibleNodes.length) {
+ const incompatibleNodeNames = getHumanizedNodeNames(incompatibleNodes);
+
+ const errorMessage =
+ `This version of Kibana requires Elasticsearch v` +
+ `${kibanaVersion} on all nodes. I found ` +
+ `the following incompatible nodes in your cluster: ${incompatibleNodeNames.join(',')}`;
+
+ throw new SetupError(server, errorMessage);
+ }
+
+ return true;
});
};
diff --git a/src/core_plugins/elasticsearch/lib/health_check.js b/src/core_plugins/elasticsearch/lib/health_check.js
index cca77e2f2398..4f1555893d87 100644
--- a/src/core_plugins/elasticsearch/lib/health_check.js
+++ b/src/core_plugins/elasticsearch/lib/health_check.js
@@ -5,6 +5,8 @@ import exposeClient from './expose_client';
import migrateConfig from './migrate_config';
import createKibanaIndex from './create_kibana_index';
import checkEsVersion from './check_es_version';
+import kibanaVersion from './kibana_version';
+
const NoConnections = elasticsearch.errors.NoConnections;
import util from 'util';
const format = util.format;
@@ -85,7 +87,7 @@ module.exports = function (plugin, server) {
function check() {
return waitForPong()
- .then(_.partial(checkEsVersion, server))
+ .then(() => checkEsVersion(server, kibanaVersion.get()))
.then(waitForShards)
.then(setGreenStatus)
.then(_.partial(migrateConfig, server))
diff --git a/src/core_plugins/elasticsearch/lib/is_es_compatible_with_kibana.js b/src/core_plugins/elasticsearch/lib/is_es_compatible_with_kibana.js
new file mode 100644
index 000000000000..21bec63869e5
--- /dev/null
+++ b/src/core_plugins/elasticsearch/lib/is_es_compatible_with_kibana.js
@@ -0,0 +1,38 @@
+/**
+ * Let's weed out the ES versions that won't work with a given Kibana version.
+ * 1. Major version differences will never work together.
+ * 2. Older versions of ES won't work with newer versions of Kibana.
+ */
+
+import semver from 'semver';
+
+export default function isEsCompatibleWithKibana(esVersion, kibanaVersion) {
+ const esVersionNumbers = {
+ major: semver.major(esVersion),
+ minor: semver.minor(esVersion),
+ patch: semver.patch(esVersion),
+ };
+
+ const kibanaVersionNumbers = {
+ major: semver.major(kibanaVersion),
+ minor: semver.minor(kibanaVersion),
+ patch: semver.patch(kibanaVersion),
+ };
+
+ // Reject mismatching major version numbers.
+ if (esVersionNumbers.major !== kibanaVersionNumbers.major) {
+ return false;
+ }
+
+ // Reject older minor versions of ES.
+ if (esVersionNumbers.minor < kibanaVersionNumbers.minor) {
+ return false;
+ }
+
+ // Reject older patch versions of ES.
+ if (esVersionNumbers.patch < kibanaVersionNumbers.patch) {
+ return false;
+ }
+
+ return true;
+}
diff --git a/src/core_plugins/elasticsearch/lib/kibana_version.js b/src/core_plugins/elasticsearch/lib/kibana_version.js
new file mode 100644
index 000000000000..6291319c6a55
--- /dev/null
+++ b/src/core_plugins/elasticsearch/lib/kibana_version.js
@@ -0,0 +1,10 @@
+import {
+ version as kibanaVersion,
+} from '../../../../package.json';
+
+export default {
+ // Make the version stubbable to improve testability.
+ get() {
+ return kibanaVersion;
+ },
+};
diff --git a/src/core_plugins/elasticsearch/lib/version_satisfies.js b/src/core_plugins/elasticsearch/lib/version_satisfies.js
deleted file mode 100644
index ad07624052af..000000000000
--- a/src/core_plugins/elasticsearch/lib/version_satisfies.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import semver from 'semver';
-
-module.exports = function (actual, expected) {
- try {
- const ver = cleanVersion(actual);
- return semver.satisfies(ver, expected);
- } catch (err) {
- return false;
- }
-
- function cleanVersion(version) {
- const match = version.match(/\d+\.\d+\.\d+/);
- if (!match) return version;
- return match[0];
- }
-};
diff --git a/src/core_plugins/kibana/index.js b/src/core_plugins/kibana/index.js
index 516e8ce5e3d7..63ca1177f453 100644
--- a/src/core_plugins/kibana/index.js
+++ b/src/core_plugins/kibana/index.js
@@ -14,10 +14,13 @@ module.exports = function (kibana) {
return new kibana.Plugin({
id: 'kibana',
config: function (Joi) {
+ const ONE_GIGABYTE = 1024 * 1024 * 1024;
+
return Joi.object({
enabled: Joi.boolean().default(true),
defaultAppId: Joi.string().default('discover'),
- index: Joi.string().default('.kibana')
+ index: Joi.string().default('.kibana'),
+ addDataMaxBytes: Joi.number().default(ONE_GIGABYTE)
}).default();
},
@@ -34,6 +37,7 @@ module.exports = function (kibana) {
'fieldFormats',
'navbarExtensions',
'managementSections',
+ 'devTools',
'docViews'
],
@@ -41,7 +45,8 @@ module.exports = function (kibana) {
let config = server.config();
return {
kbnDefaultAppId: config.get('kibana.defaultAppId'),
- tilemap: config.get('tilemap')
+ tilemap: config.get('tilemap'),
+ addDataMaxBytes: config.get('kibana.addDataMaxBytes')
};
},
},
@@ -79,6 +84,13 @@ module.exports = function (kibana) {
description: 'define index patterns, change config, and more',
icon: 'plugins/kibana/assets/settings.svg',
linkToLastSubUrl: false
+ },
+ {
+ title: 'Dev Tools',
+ order: 1010,
+ url: '/app/kibana#/dev_tools',
+ description: 'development tools',
+ icon: 'plugins/kibana/assets/wrench.svg'
}
],
injectDefaultVars(server, options) {
diff --git a/src/core_plugins/kibana/public/assets/dashboard.svg b/src/core_plugins/kibana/public/assets/dashboard.svg
index 083918d1c51b..c22ba0c9c5af 100755
--- a/src/core_plugins/kibana/public/assets/dashboard.svg
+++ b/src/core_plugins/kibana/public/assets/dashboard.svg
@@ -1,4 +1,4 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/kibana/public/assets/discover.svg b/src/core_plugins/kibana/public/assets/discover.svg
index 7b923b7c8aad..08af73e30198 100755
--- a/src/core_plugins/kibana/public/assets/discover.svg
+++ b/src/core_plugins/kibana/public/assets/discover.svg
@@ -1,3 +1,3 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/kibana/public/assets/logout.svg b/src/core_plugins/kibana/public/assets/logout.svg
index 123ceceaef10..c7175a8572c6 100755
--- a/src/core_plugins/kibana/public/assets/logout.svg
+++ b/src/core_plugins/kibana/public/assets/logout.svg
@@ -1,3 +1,3 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/kibana/public/assets/play-circle.svg b/src/core_plugins/kibana/public/assets/play-circle.svg
index d668d52587b8..5ea5da5e3775 100644
--- a/src/core_plugins/kibana/public/assets/play-circle.svg
+++ b/src/core_plugins/kibana/public/assets/play-circle.svg
@@ -1,3 +1,3 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/kibana/public/assets/search.svg b/src/core_plugins/kibana/public/assets/search.svg
index 1e4ffb6c1b4f..1dea45afbe62 100755
--- a/src/core_plugins/kibana/public/assets/search.svg
+++ b/src/core_plugins/kibana/public/assets/search.svg
@@ -1,4 +1,4 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/kibana/public/assets/settings.svg b/src/core_plugins/kibana/public/assets/settings.svg
index 7bbbce4ac087..ef146cd26603 100755
--- a/src/core_plugins/kibana/public/assets/settings.svg
+++ b/src/core_plugins/kibana/public/assets/settings.svg
@@ -1,4 +1,4 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/kibana/public/assets/visualize.svg b/src/core_plugins/kibana/public/assets/visualize.svg
index a1cde5a16648..4b831ed69fea 100755
--- a/src/core_plugins/kibana/public/assets/visualize.svg
+++ b/src/core_plugins/kibana/public/assets/visualize.svg
@@ -1,3 +1,3 @@
-
+
-
\ No newline at end of file
+
diff --git a/src/core_plugins/kibana/public/assets/wrench.svg b/src/core_plugins/kibana/public/assets/wrench.svg
new file mode 100644
index 000000000000..e6f7533a2e02
--- /dev/null
+++ b/src/core_plugins/kibana/public/assets/wrench.svg
@@ -0,0 +1,4 @@
+
+
+
diff --git a/src/core_plugins/kibana/public/dev_tools/directives/dev_tools_app.js b/src/core_plugins/kibana/public/dev_tools/directives/dev_tools_app.js
new file mode 100644
index 000000000000..266dc49f5e37
--- /dev/null
+++ b/src/core_plugins/kibana/public/dev_tools/directives/dev_tools_app.js
@@ -0,0 +1,19 @@
+import uiModules from 'ui/modules';
+import devTools from 'ui/registry/dev_tools';
+import template from 'plugins/kibana/dev_tools/partials/dev_tools_app.html';
+import 'plugins/kibana/dev_tools/styles/dev_tools_app.less';
+
+uiModules
+.get('apps/dev_tools')
+.directive('kbnDevToolsApp', function (Private, $location) {
+ return {
+ restrict: 'E',
+ replace: true,
+ template,
+ transclude: true,
+ link: function ($scope) {
+ $scope.devTools = Private(devTools).inOrder;
+ $scope.currentPath = `#${$location.path()}`;
+ }
+ };
+});
diff --git a/src/core_plugins/kibana/public/dev_tools/index.js b/src/core_plugins/kibana/public/dev_tools/index.js
new file mode 100644
index 000000000000..1505e2ceba39
--- /dev/null
+++ b/src/core_plugins/kibana/public/dev_tools/index.js
@@ -0,0 +1,13 @@
+import uiRoutes from 'ui/routes';
+import devTools from 'ui/registry/dev_tools';
+import 'plugins/kibana/dev_tools/directives/dev_tools_app';
+
+uiRoutes
+.when('/dev_tools', {
+ resolve: {
+ redirect(Private, kbnUrl) {
+ const items = Private(devTools).inOrder;
+ kbnUrl.redirect(items[0].url.substring(1));
+ }
+ }
+});
diff --git a/src/core_plugins/kibana/public/dev_tools/partials/dev_tools_app.html b/src/core_plugins/kibana/public/dev_tools/partials/dev_tools_app.html
new file mode 100644
index 000000000000..e4948b80c8d2
--- /dev/null
+++ b/src/core_plugins/kibana/public/dev_tools/partials/dev_tools_app.html
@@ -0,0 +1,15 @@
+
diff --git a/src/core_plugins/kibana/public/dev_tools/styles/dev_tools_app.less b/src/core_plugins/kibana/public/dev_tools/styles/dev_tools_app.less
new file mode 100644
index 000000000000..61fecfa88ed8
--- /dev/null
+++ b/src/core_plugins/kibana/public/dev_tools/styles/dev_tools_app.less
@@ -0,0 +1,9 @@
+@import (reference) "~ui/styles/mixins.less";
+
+.dev-tools-app-container {
+ .flex-parent;
+}
+
+.dev-tools-container {
+ .flex-parent;
+}
diff --git a/src/core_plugins/kibana/public/kibana.js b/src/core_plugins/kibana/public/kibana.js
index 4465c7c93541..5815cc33c2d1 100644
--- a/src/core_plugins/kibana/public/kibana.js
+++ b/src/core_plugins/kibana/public/kibana.js
@@ -13,6 +13,7 @@ import 'plugins/kibana/visualize/index';
import 'plugins/kibana/dashboard/index';
import 'plugins/kibana/management/index';
import 'plugins/kibana/doc';
+import 'plugins/kibana/dev_tools';
import 'ui/vislib';
import 'ui/agg_response';
import 'ui/agg_types';
diff --git a/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.html b/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.html
index 8c0a0d7812b4..8532912bd3fd 100644
--- a/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.html
+++ b/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.html
@@ -9,7 +9,7 @@
Select File
-
Maximum upload file size: 1 GB
+
Maximum upload file size: {{ wizard.maxBytesFormatted }}
diff --git a/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.js b/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.js
index 32cd5a7234a4..a0922797d537 100644
--- a/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.js
+++ b/src/core_plugins/kibana/public/management/sections/indices/add_data_steps/parse_csv_step/parse_csv_step.js
@@ -4,9 +4,10 @@ import modules from 'ui/modules';
import validateHeaders from './lib/validate_headers';
import template from './parse_csv_step.html';
import './styles/_add_data_parse_csv_step.less';
+import numeral from '@spalger/numeral';
modules.get('apps/management')
- .directive('parseCsvStep', function () {
+ .directive('parseCsvStep', function (addDataMaxBytes) {
return {
restrict: 'E',
template: template,
@@ -21,6 +22,8 @@ modules.get('apps/management')
const maxSampleRows = 10;
const maxSampleColumns = 20;
+ this.maxBytesFormatted = numeral(addDataMaxBytes).format('0 b');
+
this.delimiterOptions = [
{
label: 'comma',
@@ -55,6 +58,13 @@ modules.get('apps/management')
this.formattedErrors = [];
this.formattedWarnings = [];
+ if (this.file.size > addDataMaxBytes) {
+ this.formattedErrors.push(
+ `File size (${this.file.size} bytes) is greater than the configured limit of ${addDataMaxBytes} bytes`
+ );
+ return;
+ }
+
const config = _.assign(
{
header: true,
diff --git a/src/core_plugins/kibana/public/visualize/editor/styles/_editor.less b/src/core_plugins/kibana/public/visualize/editor/styles/_editor.less
index fe97f66df1e8..2ade999bfa68 100644
--- a/src/core_plugins/kibana/public/visualize/editor/styles/_editor.less
+++ b/src/core_plugins/kibana/public/visualize/editor/styles/_editor.less
@@ -386,9 +386,3 @@ vis-editor-vis-options > * {
background-color: darken(@vis-editor-navbar-error-state-bg, 12%) !important; /* 1 */
}
}
-
-form.vis-share {
- div.form-control {
- height: inherit;
- }
-}
diff --git a/src/core_plugins/kibana/server/routes/api/ingest/register_data.js b/src/core_plugins/kibana/server/routes/api/ingest/register_data.js
index 9172e5ba88d6..979bace5c826 100644
--- a/src/core_plugins/kibana/server/routes/api/ingest/register_data.js
+++ b/src/core_plugins/kibana/server/routes/api/ingest/register_data.js
@@ -6,16 +6,16 @@ import { patternToIngest } from '../../../../common/lib/convert_pattern_and_inge
import { PassThrough } from 'stream';
import JSONStream from 'JSONStream';
-const ONE_GIGABYTE = 1024 * 1024 * 1024;
-
export function registerData(server) {
+ const maxBytes = server.config().get('kibana.addDataMaxBytes');
+
server.route({
path: '/api/kibana/{id}/_data',
method: 'POST',
config: {
payload: {
output: 'stream',
- maxBytes: ONE_GIGABYTE
+ maxBytes
}
},
handler: function (req, reply) {
diff --git a/src/core_plugins/timelion/public/icon.svg b/src/core_plugins/timelion/public/icon.svg
index 1627eb79dde5..ba9a704b3ade 100644
--- a/src/core_plugins/timelion/public/icon.svg
+++ b/src/core_plugins/timelion/public/icon.svg
@@ -87,9 +87,9 @@
inkscape:groupmode="layer"
id="Template"
inkscape:label="Layer 1"
- style="fill:none;stroke:#000000;stroke-width:0.35433071px">
+ style="fill:none;stroke:#ffffff;stroke-width:0.35433071px">
diff --git a/src/ui/public/chrome/api/angular.js b/src/ui/public/chrome/api/angular.js
index 198ddfef4cdf..f70836eb28c5 100644
--- a/src/ui/public/chrome/api/angular.js
+++ b/src/ui/public/chrome/api/angular.js
@@ -47,7 +47,9 @@ module.exports = function (chrome, internals) {
length--;
}
- return path.substr(1, length).split('/');
+ return path.substr(1, length)
+ .replace(/_/g, ' ') // Present snake-cased breadcrumb names as individual words
+ .split('/');
};
const notify = new Notifier();
diff --git a/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less b/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less
index d14f1b31d123..b4285732c57f 100644
--- a/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less
+++ b/src/ui/public/chrome/directives/global_nav/global_nav_link/global_nav_link.less
@@ -56,7 +56,6 @@
.global-nav-link__icon-image {
height: 18px;
margin-top: 8px;
- filter: invert(100%);
}
/**
diff --git a/src/ui/public/kbn_top_nav/kbn_top_nav.html b/src/ui/public/kbn_top_nav/kbn_top_nav.html
index 5a26efde52b3..574e437c8ccc 100644
--- a/src/ui/public/kbn_top_nav/kbn_top_nav.html
+++ b/src/ui/public/kbn_top_nav/kbn_top_nav.html
@@ -20,7 +20,7 @@