mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26: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
 | |
|     };
 | |
| })(); |