perspective - show error, ability to reset filters

This commit is contained in:
Jan Prochazka
2022-07-28 18:57:15 +02:00
parent 66d15abcab
commit 06bd9bcabe
2 changed files with 31 additions and 5 deletions

View File

@@ -7,13 +7,18 @@
import debug from 'debug'; import debug from 'debug';
import contextMenu from '../utility/contextMenu'; import contextMenu from '../utility/contextMenu';
import DataFilterControl from '../datagrid/DataFilterControl.svelte'; import DataFilterControl from '../datagrid/DataFilterControl.svelte';
import ErrorInfo from '../elements/ErrorInfo.svelte';
import FormStyledButton from '../buttons/FormStyledButton.svelte';
const dbg = debug('dbgate:PerspectivaTable'); const dbg = debug('dbgate:PerspectivaTable');
export let root: PerspectiveTreeNode; export let root: PerspectiveTreeNode;
export let loadedCounts; export let loadedCounts;
export let setConfig;
let dataRows; let dataRows;
let domWrapper; let domWrapper;
let errorMessage;
async function loadLevelData(node: PerspectiveTreeNode, parentRows: any[], counts) { async function loadLevelData(node: PerspectiveTreeNode, parentRows: any[], counts) {
dbg('load level data', counts); dbg('load level data', counts);
@@ -79,10 +84,15 @@
// console.log('LOADING', node); // console.log('LOADING', node);
if (!node) return; if (!node) return;
const rows = []; const rows = [];
await loadLevelData(node, rows, counts); try {
dataRows = rows; await loadLevelData(node, rows, counts);
dataRows = rows;
dbg('display rows', rows); dbg('display rows', rows);
errorMessage = null;
} catch (err) {
errorMessage = err.message;
dataRows = null;
}
// console.log('DISPLAY ROWS', rows); // console.log('DISPLAY ROWS', rows);
// const rows = await node.loadLevelData(); // const rows = await node.loadLevelData();
// for (const child of node.childNodes) { // for (const child of node.childNodes) {
@@ -168,6 +178,22 @@
</tbody> </tbody>
</table> </table>
{/if} {/if}
{#if errorMessage}
<ErrorInfo message={errorMessage} />
<FormStyledButton
value="Reset filter"
on:click={() =>
setConfig(
cfg => ({
...cfg,
filters: {},
}),
true
)}
/>
{/if}
</div> </div>
<style> <style>

View File

@@ -85,7 +85,7 @@
</div> </div>
<svelte:fragment slot="2"> <svelte:fragment slot="2">
<PerspectiveTable {root} {loadedCounts} /> <PerspectiveTable {root} {loadedCounts} {setConfig} />
</svelte:fragment> </svelte:fragment>
</HorizontalSplitter> </HorizontalSplitter>