Merge branch 'master' into develop

This commit is contained in:
Jan Prochazka
2022-06-23 11:18:36 +02:00
12 changed files with 200 additions and 106 deletions

View File

@@ -166,9 +166,11 @@ module.exports = {
list_meta: true,
async list() {
return portalConnections && !platformInfo.allowShellConnection
? portalConnections.map(maskConnection)
: this.datastore.find();
if (portalConnections) {
if (platformInfo.allowShellConnection) return portalConnections;
return portalConnections.map(maskConnection);
}
return this.datastore.find();
},
test_meta: true,

View File

@@ -156,11 +156,11 @@ function resolveAnalysedPromises() {
afterAnalyseCallbacks = [];
}
async function handleRunScript({ msgid, sql }) {
async function handleRunScript({ msgid, sql }, skipReadonlyCheck = false) {
await waitConnected();
const driver = requireEngineDriver(storedConnection);
try {
ensureExecuteCustomScript(driver);
if (!skipReadonlyCheck) ensureExecuteCustomScript(driver);
await driver.script(systemConnection, sql);
process.send({ msgtype: 'response', msgid });
} catch (err) {
@@ -168,11 +168,11 @@ async function handleRunScript({ msgid, sql }) {
}
}
async function handleQueryData({ msgid, sql }) {
async function handleQueryData({ msgid, sql }, skipReadonlyCheck = false) {
await waitConnected();
const driver = requireEngineDriver(storedConnection);
try {
ensureExecuteCustomScript(driver);
if (!skipReadonlyCheck) ensureExecuteCustomScript(driver);
const res = await driver.query(systemConnection, sql);
process.send({ msgtype: 'response', msgid, ...res });
} catch (err) {
@@ -184,7 +184,7 @@ async function handleSqlSelect({ msgid, select }) {
const driver = requireEngineDriver(storedConnection);
const dmp = driver.createDumper();
dumpSqlSelect(dmp, select);
return handleQueryData({ msgid, sql: dmp.s });
return handleQueryData({ msgid, sql: dmp.s }, true);
}
async function handleDriverDataCore(msgid, callMethod) {

View File

@@ -16,7 +16,9 @@ function requireEngineDriver(connection) {
if (engine.includes('@')) {
const [shortName, packageName] = engine.split('@');
const plugin = requirePlugin(packageName);
return plugin.drivers.find(x => x.engine == engine);
if (plugin.drivers) {
return plugin.drivers.find(x => x.engine == engine);
}
}
throw new Error(`Could not find engine driver ${engine}`);
}

View File

@@ -1,5 +1,5 @@
import _ from 'lodash';
import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc } from './GridConfig';
import { GridConfig, GridCache, GridConfigColumns, createGridCache, GroupFunc, createGridConfig } from './GridConfig';
import {
ForeignKeyInfo,
TableInfo,
@@ -194,12 +194,14 @@ export abstract class GridDisplay {
if (condition) {
conditions.push(
_.cloneDeepWith(condition, (expr: Expression) => {
if (expr.exprType == 'placeholder')
return {
exprType: 'column',
columnName: column.columnName,
source: { alias: column.sourceAlias },
};
if (expr.exprType == 'placeholder') {
return this.createColumnExpression(column, { alias: column.sourceAlias });
}
// return {
// exprType: 'column',
// columnName: column.columnName,
// source: { alias: column.sourceAlias },
// };
})
);
}
@@ -445,6 +447,11 @@ export abstract class GridDisplay {
this.reload();
}
resetConfig() {
this.setConfig(cfg => createGridConfig());
this.reload();
}
getChangeSetCondition(row) {
if (!this.changeSetKeyFields) return null;
return _.pick(row, this.changeSetKeyFields);

View File

@@ -0,0 +1,33 @@
<script context="module">
function getCommandTitle(command) {
let res = command.text;
if (command.keyText || command.keyTextFromGroup) {
res += ` (${formatKeyText(command.keyText || command.keyTextFromGroup)})`;
}
return res;
}
</script>
<script lang="ts">
import { commandsCustomized } from '../stores';
import { formatKeyText } from '../utility/common';
import FormStyledButton from './FormStyledButton.svelte';
export let command;
export let component = FormStyledButton;
export let hideDisabled = false;
$: cmd = Object.values($commandsCustomized).find((x: any) => x.id == command) as any;
</script>
{#if cmd && (!hideDisabled || cmd.enabled)}
<svelte:component
this={component}
title={getCommandTitle(cmd)}
icon={cmd.icon}
on:click={cmd.onClick}
disabled={!cmd.enabled}
value={cmd.toolbarName || cmd.name}
{...$$restProps}
/>
{/if}

View File

@@ -344,7 +344,8 @@
export let collapsedLeftColumnStore;
export let multipleGridsOnTab = false;
export let tabControlHiddenTab = false;
export let onCustomGridRefresh;
export let onCustomGridRefresh = null;
export let onOpenQuery = null;
export let useEvalFilters = false;
export let jslid;
// export let generalAllowSave = false;
@@ -1485,7 +1486,14 @@
{#if !display || (!isDynamicStructure && (!columns || columns.length == 0))}
<LoadingInfo wrapper message="Waiting for structure" />
{:else if errorMessage}
<ErrorInfo message={errorMessage} alignTop />
<div>
<ErrorInfo message={errorMessage} alignTop />
<FormStyledButton value="Reset filter" on:click={() => display.clearFilters()} />
<FormStyledButton value="Reset view" on:click={() => display.resetConfig()} />
{#if onOpenQuery}
<FormStyledButton value="Open Query" on:click={onOpenQuery} />
{/if}
</div>
{:else if isDynamicStructure && isLoadedAll && grider?.rowCount == 0}
<div>
<ErrorInfo

View File

@@ -224,4 +224,5 @@
frameSelection={!!macroPreview}
{grider}
{display}
onOpenQuery={openQuery}
/>

View File

@@ -246,6 +246,7 @@
flex: 1;
display: flex;
flex-direction: column;
overflow-y: auto;
}
.buttons {