load field values logic moved to backend

This commit is contained in:
Jan Prochazka
2022-03-17 08:40:09 +01:00
parent 074a75075d
commit 5c4794deae
7 changed files with 98 additions and 108 deletions

View File

@@ -34,64 +34,16 @@
let checkedKeys = [];
async function reload() {
const dmp = driver.createDumper();
const select = {
commandType: 'select',
distinct: true,
topRecords: 100,
from: {
name: {
schemaName,
pureName,
},
},
columns: [
{
exprType: 'column',
columnName,
},
],
orderBy: [
{
exprType: 'column',
columnName,
},
],
};
if (search) {
const tokens = _.compact(search.split(' ').map(x => x.trim()));
if (tokens.length > 0) {
// @ts-ignore
select.where = {
conditionType: 'and',
conditions: tokens.map(token => ({
conditionType: 'like',
left: {
exprType: 'column',
columnName,
},
right: {
exprType: 'value',
value: `%${token}%`,
},
})),
};
}
}
// @ts-ignore
dumpSqlSelect(dmp, select);
isLoading = true;
const response = await apiCall('database-connections/query-data', {
rows = await apiCall('database-connections/load-field-values', {
conid,
database,
sql: dmp.s,
search,
schemaName,
pureName,
field: columnName,
});
rows = response.rows;
isLoading = false;
}
@@ -124,7 +76,7 @@
{rows}
clickable
on:clickrow={e => {
const value = e.detail[columnName];
const { value } = e.detail;
if (multiselect) {
if (checkedKeys.includes(value)) checkedKeys = checkedKeys.filter(x => x != value);
else checkedKeys = [...checkedKeys, value];
@@ -143,7 +95,7 @@
{
fieldName: 'value',
header: 'Value',
formatter: row => (row[columnName] == null ? '(NULL)' : row[columnName]),
formatter: row => (row.value == null ? '(NULL)' : row.value),
},
]}
>
@@ -151,9 +103,9 @@
type="checkbox"
let:row
slot="1"
checked={checkedKeys.includes(row[columnName])}
checked={checkedKeys.includes(row['value'])}
on:change={e => {
const value = row[columnName];
const value = row['value'];
if (e.target.checked) {
if (!checkedKeys.includes(value)) checkedKeys = [...checkedKeys, value];
} else {