E2E working
This commit is contained in:
parent
13824dcf09
commit
e9297ee1c7
|
@ -21,21 +21,11 @@
|
||||||
|
|
||||||
// Extract data from message
|
// Extract data from message
|
||||||
const { selectedComponentId, layout, screen } = JSON.parse(event.data)
|
const { selectedComponentId, layout, screen } = JSON.parse(event.data)
|
||||||
|
|
||||||
// Update selected component style
|
|
||||||
if (selectedComponentStyle) {
|
|
||||||
document.head.removeChild(selectedComponentStyle)
|
|
||||||
}
|
|
||||||
selectedComponentStyle = document.createElement("style");
|
|
||||||
document.head.appendChild(selectedComponentStyle)
|
|
||||||
var selectedCss = '[data-bb-id="' + selectedComponentId + '"]' + '{border:2px solid #0055ff !important;}'
|
|
||||||
selectedComponentStyle.appendChild(document.createTextNode(selectedCss))
|
|
||||||
|
|
||||||
// Set some flags so the app knows we're in the builder
|
// Set some flags so the app knows we're in the builder
|
||||||
window["##BUDIBASE_IN_BUILDER##"] = true;
|
|
||||||
window["##BUDIBASE_PREVIEW_LAYOUT##"] = layout;
|
|
||||||
window["##BUDIBASE_PREVIEW_SCREEN##"] = screen;
|
|
||||||
window["##BUDIBASE_IN_BUILDER##"] = true
|
window["##BUDIBASE_IN_BUILDER##"] = true
|
||||||
|
window["##BUDIBASE_PREVIEW_LAYOUT##"] = layout
|
||||||
|
window["##BUDIBASE_PREVIEW_SCREEN##"] = screen
|
||||||
window["##BUDIBASE_SELECTED_COMPONENT_ID##"] = selectedComponentId
|
window["##BUDIBASE_SELECTED_COMPONENT_ID##"] = selectedComponentId
|
||||||
window["##BUDIBASE_PREVIEW_ID##"] = Math.random()
|
window["##BUDIBASE_PREVIEW_ID##"] = Math.random()
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
import ComponentDropdownMenu from "../ComponentDropdownMenu.svelte"
|
import ComponentDropdownMenu from "../ComponentDropdownMenu.svelte"
|
||||||
import NavItem from "components/common/NavItem.svelte"
|
import NavItem from "components/common/NavItem.svelte"
|
||||||
|
|
||||||
|
export let layout
|
||||||
export let components = []
|
export let components = []
|
||||||
export let currentComponent
|
export let currentComponent
|
||||||
export let onSelect = () => {}
|
export let onSelect = () => {}
|
||||||
|
@ -23,7 +24,11 @@
|
||||||
const path = store.actions.components.findRoute(component)
|
const path = store.actions.components.findRoute(component)
|
||||||
|
|
||||||
// Go to correct URL
|
// Go to correct URL
|
||||||
$goto(`./screens/:screen/${path}`)
|
if (layout) {
|
||||||
|
$goto(`./layouts/:layout/${path}`)
|
||||||
|
} else {
|
||||||
|
$goto(`./screens/:screen/${path}`)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const dragstart = component => e => {
|
const dragstart = component => e => {
|
||||||
|
|
|
@ -3,12 +3,13 @@
|
||||||
import { store, allScreens } from "builderStore"
|
import { store, allScreens } from "builderStore"
|
||||||
import { notifier } from "builderStore/store/notifications"
|
import { notifier } from "builderStore/store/notifications"
|
||||||
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
||||||
import { DropdownMenu } from "@budibase/bbui"
|
import { DropdownMenu, Modal, ModalContent } from "@budibase/bbui"
|
||||||
import { DropdownContainer, DropdownItem } from "components/common/Dropdowns"
|
import { DropdownContainer, DropdownItem } from "components/common/Dropdowns"
|
||||||
|
|
||||||
export let screen
|
export let screen
|
||||||
|
|
||||||
let confirmDeleteDialog
|
let confirmDeleteDialog
|
||||||
|
let editLayoutDialog
|
||||||
let dropdown
|
let dropdown
|
||||||
let anchor
|
let anchor
|
||||||
|
|
||||||
|
@ -29,6 +30,10 @@
|
||||||
icon="ri-delete-bin-line"
|
icon="ri-delete-bin-line"
|
||||||
title="Delete"
|
title="Delete"
|
||||||
on:click={() => confirmDeleteDialog.show()} />
|
on:click={() => confirmDeleteDialog.show()} />
|
||||||
|
<DropdownItem
|
||||||
|
icon="ri-layout-line"
|
||||||
|
title="Set Layout"
|
||||||
|
on:click={() => editLayoutDialog.show()} />
|
||||||
</DropdownContainer>
|
</DropdownContainer>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
</div>
|
</div>
|
||||||
|
@ -39,6 +44,15 @@
|
||||||
okText="Delete Screen"
|
okText="Delete Screen"
|
||||||
onOk={deleteScreen} />
|
onOk={deleteScreen} />
|
||||||
|
|
||||||
|
<Modal bind:this={editLayoutDialog}>
|
||||||
|
<ModalContent
|
||||||
|
showCancelButton={false}
|
||||||
|
showConfirmButton={false}
|
||||||
|
title={'Set Layout For Screen'}>
|
||||||
|
Choose a layout for your screen
|
||||||
|
</ModalContent>
|
||||||
|
</Modal>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.icon i {
|
.icon i {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|
|
@ -53,12 +53,9 @@
|
||||||
<NewScreenModal />
|
<NewScreenModal />
|
||||||
</Modal>
|
</Modal>
|
||||||
{:else if tab === 'layouts'}
|
{:else if tab === 'layouts'}
|
||||||
{#if $currentAsset}
|
{#each $store.layouts as layout}
|
||||||
<div class="nav-items-container">
|
<Layout {layout} />
|
||||||
<Layout />
|
{/each}
|
||||||
<ComponentNavigationTree />
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
{/if}
|
{/if}
|
||||||
</Switcher>
|
</Switcher>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,20 +7,16 @@
|
||||||
import { store, currentAsset } from "builderStore"
|
import { store, currentAsset } from "builderStore"
|
||||||
import { writable } from "svelte/store"
|
import { writable } from "svelte/store"
|
||||||
|
|
||||||
export let layout = $currentAsset
|
export let layout
|
||||||
|
|
||||||
let confirmDeleteDialog
|
let confirmDeleteDialog
|
||||||
let componentToDelete = ""
|
let componentToDelete = ""
|
||||||
|
|
||||||
const dragDropStore = writable({})
|
const dragDropStore = writable({})
|
||||||
|
|
||||||
const lastPartOfName = c =>
|
$: console.log({
|
||||||
c && last(c.name ? c.name.split("/") : c._component.split("/"))
|
$currentAsset, layout
|
||||||
|
})
|
||||||
$: _layout = {
|
|
||||||
component: $currentAsset,
|
|
||||||
title: lastPartOfName(layout),
|
|
||||||
}
|
|
||||||
|
|
||||||
const setCurrentScreenToLayout = () => {
|
const setCurrentScreenToLayout = () => {
|
||||||
store.actions.selectAssetType(FrontendTypes.LAYOUT)
|
store.actions.selectAssetType(FrontendTypes.LAYOUT)
|
||||||
|
@ -33,13 +29,14 @@
|
||||||
icon="ri-layout-3-line"
|
icon="ri-layout-3-line"
|
||||||
text={layout.name}
|
text={layout.name}
|
||||||
withArrow
|
withArrow
|
||||||
selected={$store.currentComponentInfo?._id === _layout.component.props._id}
|
selected={$store.currentComponentInfo?._id === layout.props._id}
|
||||||
opened={$store.currentPreviewItem?.name === _layout.title}
|
opened={$currentAsset._id === layout._id}
|
||||||
on:click={setCurrentScreenToLayout} />
|
on:click={setCurrentScreenToLayout} />
|
||||||
|
|
||||||
{#if $store.currentPreviewItem?.name === _layout.title && _layout.component.props._children}
|
{#if $currentAsset._id === layout._id && layout.props._children}
|
||||||
<ComponentTree
|
<ComponentTree
|
||||||
components={_layout.component.props._children}
|
layout
|
||||||
|
components={layout.props._children}
|
||||||
currentComponent={$store.currentComponentInfo}
|
currentComponent={$store.currentComponentInfo}
|
||||||
{dragDropStore} />
|
{dragDropStore} />
|
||||||
{/if}
|
{/if}
|
||||||
|
|
Loading…
Reference in New Issue