Skip to content

Commit 00551ba

Browse files
authored
Merge pull request #7 from CNAG-Biomedical-Informatics/codex/update-dropdown-and-search-box-for-sql-query
Sync dropdown with manual SQL edits
2 parents 6e0ed67 + de20d11 commit 00551ba

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

src/App.svelte

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
Alert,
55
Button,
66
ButtonGroup,
7-
Heading,
87
Input,
98
Label,
10-
P,
9+
Span,
1110
Spinner,
1211
} from "flowbite-svelte";
1312
import { onMount } from "svelte";
@@ -62,6 +61,25 @@
6261
6362
let ptInstructs = [];
6463
64+
function parseQuery(query = sqlQuery) {
65+
const fromMatch = query.match(/from\s+\"?([\w-.]+)\"?/i);
66+
if (fromMatch) {
67+
activeTable = fromMatch[1];
68+
}
69+
const whereMatch = query.match(
70+
/where\s+\"?([^\"\s]+)\"?\s*(?:=|like)\s*['"]?([^'";]*)/i
71+
);
72+
if (whereMatch) {
73+
selectedColumn = whereMatch[1];
74+
searchValue = whereMatch[2];
75+
} else {
76+
selectedColumn = "";
77+
searchValue = "";
78+
}
79+
}
80+
81+
$: parseQuery(sqlQuery);
82+
6583
function inferColValsType(value) {
6684
if (!isNaN(value) && value !== "") return "number";
6785
return "string";
@@ -211,11 +229,16 @@
211229
error = false;
212230
try {
213231
let queryData = pTime(() => queryDb(url, query));
214-
const data = await queryData();
232+
let queryPromise = queryData();
233+
234+
const data = await queryPromise;
235+
console.log("Query executed: ", query);
236+
console.log("Query data: ", data);
237+
console.log("Query result: ", data);
215238
216239
result = data.result;
217240
await updateInstructs(result, activeTable);
218-
timeTaken = queryData.time;
241+
timeTaken = queryPromise.time;
219242
bytesRead = data.bytesRead;
220243
totalRequests = data.stats.totalRequests;
221244
totalBytes = data.stats.totalBytes;
@@ -262,7 +285,7 @@
262285
<div class="p-6 space-y-4">
263286
<div class="space-y-2">
264287
<Label class="space-y-2">
265-
<span>Column</span>
288+
<Span>Column</Span>
266289
<input
267290
list="columns"
268291
class="border rounded w-full p-2"
@@ -275,7 +298,7 @@
275298
</datalist>
276299
</Label>
277300
<Label class="space-y-2">
278-
<span>Search value</span>
301+
<Span>Search value</Span>
279302
<Input type="text" bind:value={searchValue} />
280303
</Label>
281304
<Button size="sm" on:click={runBuilderQuery}>Search</Button>
@@ -286,7 +309,6 @@
286309
>
287310
<div class="mt-4">
288311
<Label class="space-y-2">
289-
<span>Edit SQL Query</span>
290312
<CodeJar bind:value={sqlQuery} syntax="sql" {highlight} />
291313
</Label>
292314
<div class="mt-2">

0 commit comments

Comments
 (0)