mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
const sqlConsole = (function() {
 | 
						|
    const dialogEl = $("#sql-console-dialog");
 | 
						|
    const queryEl = $('#sql-console-query');
 | 
						|
    const executeButton = $('#sql-console-execute');
 | 
						|
    const resultHeadEl = $('#sql-console-results thead');
 | 
						|
    const resultBodyEl = $('#sql-console-results tbody');
 | 
						|
 | 
						|
    function showDialog() {
 | 
						|
        glob.activeDialog = dialogEl;
 | 
						|
 | 
						|
        dialogEl.dialog({
 | 
						|
            modal: true,
 | 
						|
            width: $(window).width(),
 | 
						|
            height: $(window).height()
 | 
						|
        });
 | 
						|
    }
 | 
						|
 | 
						|
    async function execute() {
 | 
						|
        const sqlQuery = queryEl.val();
 | 
						|
 | 
						|
        const result = await server.post("sql/execute", {
 | 
						|
            query: sqlQuery
 | 
						|
        });
 | 
						|
 | 
						|
        if (!result.success) {
 | 
						|
            showError(result.error);
 | 
						|
            return;
 | 
						|
        }
 | 
						|
        else {
 | 
						|
            showMessage("Query was executed successfully.");
 | 
						|
        }
 | 
						|
 | 
						|
        const rows = result.rows;
 | 
						|
 | 
						|
        resultHeadEl.empty();
 | 
						|
        resultBodyEl.empty();
 | 
						|
 | 
						|
        if (rows.length > 0) {
 | 
						|
            const result = rows[0];
 | 
						|
            const rowEl = $("<tr>");
 | 
						|
 | 
						|
            for (const key in result) {
 | 
						|
                rowEl.append($("<th>").html(key));
 | 
						|
            }
 | 
						|
 | 
						|
            resultHeadEl.append(rowEl);
 | 
						|
        }
 | 
						|
 | 
						|
        for (const result of rows) {
 | 
						|
            const rowEl = $("<tr>");
 | 
						|
 | 
						|
            for (const key in result) {
 | 
						|
                rowEl.append($("<td>").html(result[key]));
 | 
						|
            }
 | 
						|
 | 
						|
            resultBodyEl.append(rowEl);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    $(document).bind('keydown', 'alt+o', showDialog);
 | 
						|
 | 
						|
    queryEl.bind('keydown', 'ctrl+return', execute);
 | 
						|
 | 
						|
    executeButton.click(execute);
 | 
						|
 | 
						|
    return {
 | 
						|
        showDialog
 | 
						|
    };
 | 
						|
})(); |