diff --git a/src/public/javascripts/dialogs/sql_console.js b/src/public/javascripts/dialogs/sql_console.js index 4d2c88de1..fb351fab5 100644 --- a/src/public/javascripts/dialogs/sql_console.js +++ b/src/public/javascripts/dialogs/sql_console.js @@ -7,18 +7,38 @@ const sqlConsole = (function() { const $resultHead = $('#sql-console-results thead'); const $resultBody = $('#sql-console-results tbody'); + let codeEditor; + function showDialog() { glob.activeDialog = $dialog; $dialog.dialog({ modal: true, width: $(window).width(), - height: $(window).height() + height: $(window).height(), + open: function() { + CodeMirror.keyMap.default["Shift-Tab"] = "indentLess"; + CodeMirror.keyMap.default["Tab"] = "indentMore"; + + CodeMirror.modeURL = 'libraries/codemirror/mode/%N/%N.js'; + + codeEditor = CodeMirror($query[0], { + value: "", + viewportMargin: Infinity, + indentUnit: 4, + highlightSelectionMatches: { showToken: /\w/, annotateScrollbar: false } + }); + + codeEditor.setOption("mode", "text/x-sqlite"); + CodeMirror.autoLoadMode(codeEditor, "sql"); + + codeEditor.focus(); + } }); } async function execute() { - const sqlQuery = $query.val(); + const sqlQuery = codeEditor.getValue(); const result = await server.post("sql/execute", { query: sqlQuery diff --git a/src/views/index.ejs b/src/views/index.ejs index 570ad1c77..1d5de24ef 100644 --- a/src/views/index.ejs +++ b/src/views/index.ejs @@ -360,8 +360,11 @@