trilium/src/public/javascripts/dialogs/sql_console.js

71 lines
1.6 KiB
JavaScript
Raw Normal View History

2017-12-15 09:38:56 +08:00
"use strict";
const sqlConsole = (function() {
const $dialog = $("#sql-console-dialog");
const $query = $('#sql-console-query');
const $executeButton = $('#sql-console-execute');
const $resultHead = $('#sql-console-results thead');
const $resultBody = $('#sql-console-results tbody');
2017-12-15 09:38:56 +08:00
function showDialog() {
glob.activeDialog = $dialog;
2017-12-15 09:38:56 +08:00
$dialog.dialog({
2017-12-15 09:38:56 +08:00
modal: true,
width: $(window).width(),
height: $(window).height()
});
}
async function execute() {
const sqlQuery = $query.val();
2017-12-15 09:38:56 +08:00
const result = await server.post("sql/execute", {
2017-12-15 09:38:56 +08:00
query: sqlQuery
});
if (!result.success) {
showError(result.error);
return;
}
else {
showMessage("Query was executed successfully.");
}
const rows = result.rows;
$resultHead.empty();
$resultBody.empty();
2017-12-15 09:38:56 +08:00
if (rows.length > 0) {
const result = rows[0];
2017-12-15 09:38:56 +08:00
const rowEl = $("<tr>");
for (const key in result) {
rowEl.append($("<th>").html(key));
}
$resultHead.append(rowEl);
2017-12-15 09:38:56 +08:00
}
for (const result of rows) {
2017-12-15 09:38:56 +08:00
const rowEl = $("<tr>");
for (const key in result) {
rowEl.append($("<td>").html(result[key]));
}
$resultBody.append(rowEl);
2017-12-15 09:38:56 +08:00
}
}
$(document).bind('keydown', 'alt+o', showDialog);
$query.bind('keydown', 'ctrl+return', execute);
$executeButton.click(execute);
2017-12-15 09:38:56 +08:00
return {
showDialog
};
})();