forked from tsai/budibase
22 changed files with 214 additions and 127 deletions
@ -0,0 +1,45 @@ |
|||
<script> |
|||
import { store } from "builderStore" |
|||
import deepmerge from "deepmerge"; |
|||
|
|||
export let value |
|||
|
|||
let pages = [] |
|||
let components = [] |
|||
let pageName |
|||
|
|||
let selectedPage |
|||
let selectedScreen |
|||
|
|||
$: pages = $store.pages |
|||
$: selectedPage = pages[pageName] |
|||
$: screens = selectedPage ? selectedPage._screens : [] |
|||
$: if (selectedPage) { |
|||
let result = selectedPage |
|||
for (screen of screens) { |
|||
result = deepmerge(result, screen) |
|||
} |
|||
components = result.props._children |
|||
} |
|||
</script> |
|||
|
|||
<div class="uk-margin block-field"> |
|||
<label class="uk-form-label">Page</label> |
|||
<div class="uk-form-controls"> |
|||
<select class="budibase__input" bind:value={pageName}> |
|||
{#each Object.keys(pages) as page} |
|||
<option value={page}>{page}</option> |
|||
{/each} |
|||
</select> |
|||
</div> |
|||
{#if components.length > 0} |
|||
<label class="uk-form-label">Component</label> |
|||
<div class="uk-form-controls"> |
|||
<select class="budibase__input" bind:value> |
|||
{#each components as component} |
|||
<option value={component._id}>{component._id}</option> |
|||
{/each} |
|||
</select> |
|||
</div> |
|||
{/if} |
|||
</div> |
|||
@ -0,0 +1,17 @@ |
|||
|
|||
<script> |
|||
import { backendUiStore } from "builderStore" |
|||
|
|||
export let value |
|||
</script> |
|||
|
|||
<div class="uk-margin block-field"> |
|||
<label class="uk-form-label">Page</label> |
|||
<div class="uk-form-controls"> |
|||
<select class="budibase__input" bind:value> |
|||
{#each $backendUiStore.models as model} |
|||
<option value={model}>{model.name}</option> |
|||
{/each} |
|||
</select> |
|||
</div> |
|||
</div> |
|||
@ -1,3 +1,31 @@ |
|||
const EventEmitter = require("events").EventEmitter |
|||
const CouchDB = require("../db"); |
|||
|
|||
module.exports = new EventEmitter() |
|||
const emitter = new EventEmitter() |
|||
|
|||
function determineWorkflowsToTrigger(instanceId, event) { |
|||
const db = new CouchDB(instanceId); |
|||
const workflowsToTrigger = await db.query("database/by_workflow_trigger", { |
|||
key: [event] |
|||
}) |
|||
|
|||
return workflowsToTrigger.rows; |
|||
} |
|||
|
|||
emitter.on("record:save", async function(event) { |
|||
const workflowsToTrigger = await determineWorkflowsToTrigger(instanceId, "record:save") |
|||
|
|||
for (let workflow of workflowsToTrigger) { |
|||
// SERVER SIDE STUFF!!
|
|||
} |
|||
}) |
|||
|
|||
emitter.on("record:delete", function(event) { |
|||
const workflowsToTrigger = await determineWorkflowsToTrigger(instanceId, "record:delete") |
|||
|
|||
for (let workflow of workflowsToTrigger) { |
|||
// SERVER SIDE STUFF!!
|
|||
} |
|||
}) |
|||
|
|||
module.exports = emitter |
|||
|
|||
Loading…
Reference in new issue