diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2018-01-27 23:27:27 +0000 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2018-01-27 23:27:27 +0000 |
| commit | 8e831bf7f734b47fe084ee9851ab4772cbb20d2d (patch) | |
| tree | c525e1798375447d431848d488e6a80de2b23650 /renderer.js | |
| parent | d132e09cdaeb89a164314962d8ee8de722d61549 (diff) | |
| download | sql-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.js | 64 |
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); +}) + |