import { t } from "../services/i18n.js"; import NoteContextAwareWidget from "./note_context_aware_widget.js"; const TPL = `
`; export default class SqlResultWidget extends NoteContextAwareWidget { isEnabled() { return this.note && this.note.mime === "text/x-sqlite;schema=trilium" && super.isEnabled(); } doRender() { this.$widget = $(TPL); this.$resultContainer = this.$widget.find(".sql-console-result-container"); this.$noRowsAlert = this.$widget.find(".sql-query-no-rows"); } async sqlQueryResultsEvent({ ntxId, results }) { if (!this.isNoteContext(ntxId)) { return; } this.$noRowsAlert.toggle(results.length === 1 && results[0].length === 0); this.$resultContainer.toggle(results.length > 1 || results[0].length > 0); this.$resultContainer.empty(); for (const rows of results) { if (typeof rows === "object" && !Array.isArray(rows)) { // inserts, updates this.$resultContainer .empty() .show() .append($("").text(JSON.stringify(rows, null, "\t"))); continue; } if (!rows.length) { continue; } const $table = $('
").text(key)); } $table.append($row); for (const result of rows) { const $row = $(" |
---|
").text(result[key])); } $table.append($row); } } } } |