aboutsummaryrefslogtreecommitdiff
path: root/renderer.js
diff options
context:
space:
mode:
authorJames Barnett <noreply@jamesbarnett.xyz>2018-01-27 23:27:27 +0000
committerJames Barnett <noreply@jamesbarnett.xyz>2018-01-27 23:27:27 +0000
commit8e831bf7f734b47fe084ee9851ab4772cbb20d2d (patch)
treec525e1798375447d431848d488e6a80de2b23650 /renderer.js
parentd132e09cdaeb89a164314962d8ee8de722d61549 (diff)
downloadsql-plus-plus-8e831bf7f734b47fe084ee9851ab4772cbb20d2d.tar.xz
sql-plus-plus-8e831bf7f734b47fe084ee9851ab4772cbb20d2d.zip
Add connection pool, code editor and data grid
Diffstat (limited to 'renderer.js')
-rw-r--r--renderer.js64
1 files changed, 64 insertions, 0 deletions
diff --git a/renderer.js b/renderer.js
new file mode 100644
index 0000000..a59b714
--- /dev/null
+++ b/renderer.js
@@ -0,0 +1,64 @@
+const $ = require('jquery');
+const cm = require("codemirror");
+const { Pool } = require("pg");
+require('datatables')(window, $);
+require("codemirror/mode/sql/sql");
+
+const editorContext = cm(document.getElementById("editor"), {
+ value: "select *\nfrom foo",
+ mode: "text/x-sql",
+ lineNumbers: true
+});
+
+const connectionPool = new Pool({
+ user: 'postgres',
+ host: 'localhost',
+ database: 'postgres',
+ password: '',
+ port: 5432
+});
+
+let dataTable;
+
+function runQuery() {
+ var query = editorContext.getValue();
+ console.log(query);
+
+ connectionPool.query(query, (err, res) => {
+ console.log(err, res)
+ displayResults(res);
+ });
+}
+
+function displayResults(results) {
+
+ if(dataTable) {
+ dataTable.destroy();
+ _resultsTable().empty();
+ }
+
+ dataTable = _resultsTable().DataTable({
+ paging: false,
+ destroy: true,
+ data: results.rows,
+ columns: _mapColumnProperties(results)
+ });
+}
+
+function _mapColumnProperties(results) {
+ return results.fields.map(function (column) {
+ return {
+ "data": column.name,
+ "title": column.name
+ };
+ });
+}
+
+function _resultsTable() {
+ return $("#result-table");
+}
+
+$(document).ready(function () {
+ $('#run-query').click(runQuery);
+})
+