From 5f9156995bb2314f6f571e085d53308e3fad762c Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Sun, 28 Aug 2022 13:22:41 +0200 Subject: [PATCH] perspective set root command --- .../web/src/perspectives/perspectiveMenu.ts | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/packages/web/src/perspectives/perspectiveMenu.ts b/packages/web/src/perspectives/perspectiveMenu.ts index 55da3b12c..e51d210d8 100644 --- a/packages/web/src/perspectives/perspectiveMenu.ts +++ b/packages/web/src/perspectives/perspectiveMenu.ts @@ -3,6 +3,8 @@ import _ from 'lodash'; import { showModal } from '../modals/modalTools'; import CustomJoinModal from './CustomJoinModal.svelte'; import InputTextModal from '../modals/InputTextModal.svelte'; +import runCommand from '../commands/runCommand'; +import { tick } from 'svelte'; interface PerspectiveNodeMenuProps { node: PerspectiveTreeNode; @@ -138,15 +140,6 @@ export function getPerspectiveNodeMenu(props: PerspectiveNodeMenuProps) { filterInfo && { text: 'Add to filter', onClick: () => setConfig(cfg => addToPerspectiveFilter(cfg, parentDesignerId, columnName)), - - // setConfig(cfg => ({ - // ...cfg, - - // filters: { - // ...cfg.filters, - // [node.uniqueName]: '', - // }, - // })), }, customJoin && { text: 'Remove custom join', @@ -203,5 +196,23 @@ export function getPerspectiveNodeMenu(props: PerspectiveNodeMenuProps) { onClick: () => setConfig(cfg => setPerspectiveTableAlias(cfg, node?.designerId, null)), }, ], + + node?.nodeConfig && + config.rootDesignerId != node?.designerId && [ + { divider: true }, + { + text: 'Set root', + onClick: async () => { + setConfig(cfg => ({ + ...cfg, + rootDesignerId: node?.designerId, + })); + await tick(); + if (config.isArranged) { + runCommand('designer.arrange'); + } + }, + }, + ], ]; }