Add screen creation modal to screens tab
This commit is contained in:
parent
bdba445d72
commit
293293c59f
|
@ -12,8 +12,8 @@
|
||||||
<Heading size="XS">{title || ""}</Heading>
|
<Heading size="XS">{title || ""}</Heading>
|
||||||
</div>
|
</div>
|
||||||
{#if showAddButton}
|
{#if showAddButton}
|
||||||
<div class="add-button">
|
<div class="add-button" on:click={onClickAddButton}>
|
||||||
<Icon name="Add" on:click={onClickAddButton} />
|
<Icon name="Add" />
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import ScreenDetailsModal from "components/design/NavigationPanel/ScreenDetailsModal.svelte"
|
import ScreenDetailsModal from "./ScreenDetailsModal.svelte"
|
||||||
import NewScreenModal from "components/design/NavigationPanel/NewScreenModal.svelte"
|
import NewScreenModal from "./NewScreenModal.svelte"
|
||||||
import sanitizeUrl from "builderStore/store/screenTemplates/utils/sanitizeUrl"
|
import sanitizeUrl from "builderStore/store/screenTemplates/utils/sanitizeUrl"
|
||||||
import { Modal, notifications } from "@budibase/bbui"
|
import { Modal, notifications } from "@budibase/bbui"
|
||||||
import { store, selectedAccessRole } from "builderStore"
|
import { store, selectedAccessRole } from "builderStore"
|
|
@ -7,17 +7,22 @@
|
||||||
import ScreenDropdownMenu from "./_components/ScreenDropdownMenu.svelte"
|
import ScreenDropdownMenu from "./_components/ScreenDropdownMenu.svelte"
|
||||||
import AppPanel from "components/design/AppPanel/AppPanel.svelte"
|
import AppPanel from "components/design/AppPanel/AppPanel.svelte"
|
||||||
import { RoleColours } from "constants"
|
import { RoleColours } from "constants"
|
||||||
|
import ScreenWizard from "./_components/ScreenWizard.svelte"
|
||||||
|
|
||||||
let searchString
|
let searchString
|
||||||
let accessRole
|
let accessRole = "all"
|
||||||
|
let showNewScreenModal
|
||||||
|
|
||||||
$: filteredScreens = getFilteredScreens($allScreens, searchString)
|
$: filteredScreens = getFilteredScreens($allScreens, searchString, accessRole)
|
||||||
|
|
||||||
const getFilteredScreens = (screens, searchString) => {
|
const getFilteredScreens = (screens, search, role) => {
|
||||||
return screens
|
return screens
|
||||||
.filter(
|
.filter(screen => {
|
||||||
screen => !searchString || screen.routing.route.includes(searchString)
|
const searchMatch = !search || screen.routing.route.includes(search)
|
||||||
)
|
const roleMatch =
|
||||||
|
!role || role === "all" || screen.routing.roleId === role
|
||||||
|
return searchMatch && roleMatch
|
||||||
|
})
|
||||||
.slice()
|
.slice()
|
||||||
.sort((a, b) => {
|
.sort((a, b) => {
|
||||||
return a.routing.route < b.routing.route ? -1 : 1
|
return a.routing.route < b.routing.route ? -1 : 1
|
||||||
|
@ -29,7 +34,11 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<NavigationPanel title="Screens" showAddButton onClickAddButton>
|
<NavigationPanel
|
||||||
|
title="Screens"
|
||||||
|
showAddButton
|
||||||
|
onClickAddButton={showNewScreenModal}
|
||||||
|
>
|
||||||
<Layout paddingX="L" paddingY="XL" gap="S">
|
<Layout paddingX="L" paddingY="XL" gap="S">
|
||||||
<Search
|
<Search
|
||||||
placeholder="Enter a route to search"
|
placeholder="Enter a route to search"
|
||||||
|
@ -38,10 +47,10 @@
|
||||||
/>
|
/>
|
||||||
<Select
|
<Select
|
||||||
bind:value={accessRole}
|
bind:value={accessRole}
|
||||||
placeholder="All screens"
|
placeholder={null}
|
||||||
getOptionLabel={role => role.name}
|
getOptionLabel={role => role.name}
|
||||||
getOptionValue={role => role._id}
|
getOptionValue={role => role._id}
|
||||||
options={$roles}
|
options={[{ name: "All screens", _id: "all" }, ...$roles]}
|
||||||
/>
|
/>
|
||||||
</Layout>
|
</Layout>
|
||||||
{#each filteredScreens as screen (screen._id)}
|
{#each filteredScreens as screen (screen._id)}
|
||||||
|
@ -66,4 +75,6 @@
|
||||||
{/each}
|
{/each}
|
||||||
</NavigationPanel>
|
</NavigationPanel>
|
||||||
|
|
||||||
|
<ScreenWizard bind:showModal={showNewScreenModal} />
|
||||||
|
|
||||||
<AppPanel />
|
<AppPanel />
|
||||||
|
|
Loading…
Reference in New Issue