1
0
Fork 0
mirror of synced 2024-10-04 20:13:35 +13:00
budibase/packages/builder/src/actionsAndTriggers/ActionsAndTriggersRoot.svelte

115 lines
2.3 KiB
Svelte
Raw Normal View History

2019-07-13 21:35:57 +12:00
<script>
import getIcon from "../common/icon";
2019-07-31 19:09:04 +12:00
import {store} from "../builderStore";
2019-07-13 21:35:57 +12:00
import Button from "../common/Button.svelte";
import ButtonGroup from "../common/ButtonGroup.svelte";
import Actions from "./Actions.svelte";
import Triggers from "./Triggers.svelte";
import {getNewAction, getNewTrigger} from "../common/core";
let editingAction = null;
let editingActionIsNew = true;
let editingTrigger = null;
let editingTriggerIsNew = true;
let getDefaultOptionsHtml = defaultOptions =>
pipe(defaultOptions, [
2019-07-13 21:35:57 +12:00
keys,
map(k => `<span style="color:var(--slate)">${k}: </span>${JSON.parse(typeOptions[k])}`),
join("<br>")
]);
let onActionEdit = (action) => {
editingAction = action;
editingActionIsNew = false;
}
let newAction = () => {
editingAction = getNewAction();
editingActionIsNew = true;
}
let onActionDelete = (action) => {
2019-07-31 19:09:04 +12:00
store.deleteAction(action);
2019-07-13 21:35:57 +12:00
}
let deleteTrigger = () => {}
let editTrigger = (trigger) => {
editingTrigger = trigger;
editingTriggerIsNew = false;
}
let newTrigger = () => {
editingTrigger = getNewTrigger();
editingTriggerIsNew = true;
}
let onActionSave = action => {
2019-07-31 19:09:04 +12:00
store.saveAction(
2019-07-13 21:35:57 +12:00
action,
editingActionIsNew,
editingAction);
editingAction = null;
}
let onActionCancel = () => {
editingAction = null;
}
let onTriggerSave = trigger => {
2019-07-31 19:09:04 +12:00
store.saveTrigger(
2019-07-13 21:35:57 +12:00
trigger,
editingTriggerIsNew,
editingTrigger);
editingTrigger = null;
}
let onTriggerCancel = () => {
editingTrigger = null;
}
let onTriggerEdit = (trigger) => {
editingTrigger = trigger;
editingTriggerIsNew = false;
}
let onTriggerDelete = (trigger) => {
2019-07-31 19:09:04 +12:00
store.deleteTrigger(trigger);
2019-07-13 21:35:57 +12:00
}
</script>
<div class="root">
<ButtonGroup>
<Button color="secondary"
grouped
on:click={newAction}>Create New Action</Button>
<Button color="secondary"
grouped
on:click={newTrigger}>Create New Trigger</Button>
</ButtonGroup>
<Actions {editingActionIsNew} {editingAction}
{onActionEdit} {onActionDelete} {onActionSave}
{onActionCancel} />
<Triggers {editingTriggerIsNew} {editingTrigger}
{onTriggerEdit} {onTriggerDelete} {onTriggerSave}
{onTriggerCancel} />
</div>
<style>
.root {
padding: 10px;
}
</style>