Merge pull request #14892 from Budibase/feat/add-new-bindings-to-drawer

Add new bindings to drawer
This commit is contained in:
Peter Clement 2024-10-29 11:18:57 +00:00 committed by GitHub
commit 3ad1cf566f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 85 additions and 3 deletions

View File

@ -36,9 +36,16 @@
$: environmentBindings =
automationStore.actions.buildEnvironmentBindings($memoEnvVariables)
// Combine all bindings for the step
$: bindings = [...availableBindings, ...environmentBindings]
$: userBindings = automationStore.actions.buildUserBindings()
$: settingBindings = automationStore.actions.buildSettingBindings()
// Combine all bindings for the step
$: bindings = [
...availableBindings,
...environmentBindings,
...userBindings,
...settingBindings,
]
onMount(() => {
// Register the trigger as the focus element for the automation
// Onload, the canvas will use the dimensions to center the step

View File

@ -614,6 +614,40 @@ const getDeviceBindings = () => {
return bindings
}
export const getSettingBindings = () => {
let bindings = []
const safeSetting = makePropSafe("settings")
bindings = [
{
type: "context",
runtimeBinding: `${safeSetting}.${makePropSafe("url")}`,
readableBinding: `Settings.url`,
category: "Settings",
icon: "Settings",
display: { type: "string", name: "url" },
},
{
type: "context",
runtimeBinding: `${safeSetting}.${makePropSafe("logo")}`,
readableBinding: `Settings.logo`,
category: "Settings",
icon: "Settings",
display: { type: "string", name: "logo" },
},
{
type: "context",
runtimeBinding: `${safeSetting}.${makePropSafe("company")}`,
readableBinding: `Settings.company`,
category: "Settings",
icon: "Settings",
display: { type: "string", name: "company" },
},
]
return bindings
}
/**
* Gets all selected rows bindings for tables in the current asset.
* TODO: remove in future because we don't need a separate store for this

View File

@ -6,7 +6,12 @@ import { createHistoryStore } from "stores/builder/history"
import { licensing } from "stores/portal"
import { tables } from "stores/builder"
import { notifications } from "@budibase/bbui"
import { getEnvironmentBindings, migrateReferencesInObject } from "dataBinding"
import {
getEnvironmentBindings,
migrateReferencesInObject,
getUserBindings,
getSettingBindings,
} from "dataBinding"
import {
AutomationTriggerStepId,
AutomationEventType,
@ -334,6 +339,42 @@ const automationActions = store => ({
}
return []
},
/**
* Get user bindings
*
* @returns {Array<Object>} all available user bindings
*/
buildUserBindings: () => {
return getUserBindings().map(binding => {
return {
...binding,
category: "User",
display: {
...binding.display,
rank: 98,
},
}
})
},
/**
* Get settings bindings
*
* @returns {Array<Object>} all available settings bindings
*/
buildSettingBindings: () => {
return getSettingBindings().map(binding => {
return {
...binding,
display: {
...binding.display,
rank: 98,
},
}
})
},
/**
* Take the supplied step id and aggregate all bindings for every
* step preceding it.