Merge remote-tracking branch 'origin/master' into s3-upload-fixes

This commit is contained in:
Dean 2025-01-02 09:10:03 +00:00
commit 2ff1c7ad28
728 changed files with 7821 additions and 5285 deletions

View File

@ -30,7 +30,7 @@ env:
jobs: jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -47,7 +47,7 @@ jobs:
- run: yarn lint - run: yarn lint
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -76,7 +76,7 @@ jobs:
fi fi
helm-lint: helm-lint:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -88,7 +88,7 @@ jobs:
- run: cd charts/budibase && helm lint . - run: cd charts/budibase && helm lint .
test-libraries: test-libraries:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -122,7 +122,7 @@ jobs:
fi fi
test-worker: test-worker:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -151,7 +151,7 @@ jobs:
yarn test --verbose --reporters=default --reporters=github-actions yarn test --verbose --reporters=default --reporters=github-actions
test-server: test-server:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
strategy: strategy:
matrix: matrix:
datasource: datasource:
@ -237,7 +237,7 @@ jobs:
yarn test --filter $FILTER --verbose --reporters=default --reporters=github-actions yarn test --filter $FILTER --verbose --reporters=default --reporters=github-actions
check-pro-submodule: check-pro-submodule:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
if: inputs.run_as_oss != true && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'Budibase/budibase') if: inputs.run_as_oss != true && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'Budibase/budibase')
steps: steps:
- name: Checkout repo and submodules - name: Checkout repo and submodules
@ -296,7 +296,7 @@ jobs:
fi fi
check-lockfile: check-lockfile:
runs-on: ubuntu-latest runs-on: ubuntu-22.04
if: inputs.run_as_oss != true && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'Budibase/budibase') if: inputs.run_as_oss != true && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'Budibase/budibase')
steps: steps:
- name: Checkout repo - name: Checkout repo

View File

@ -10,7 +10,7 @@
}, },
"dependencies": { "dependencies": {
"bulma": "^0.9.3", "bulma": "^0.9.3",
"next": "14.2.10", "next": "14.2.15",
"node-fetch": "^3.2.10", "node-fetch": "^3.2.10",
"sass": "^1.52.3", "sass": "^1.52.3",
"react": "17.0.2", "react": "17.0.2",

View File

@ -46,10 +46,10 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
"@next/env@14.2.10": "@next/env@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.10.tgz#1d3178340028ced2d679f84140877db4f420333c" resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.15.tgz#06d984e37e670d93ddd6790af1844aeb935f332f"
integrity sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw== integrity sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==
"@next/eslint-plugin-next@12.1.0": "@next/eslint-plugin-next@12.1.0":
version "12.1.0" version "12.1.0"
@ -58,50 +58,50 @@
dependencies: dependencies:
glob "7.1.7" glob "7.1.7"
"@next/swc-darwin-arm64@14.2.10": "@next/swc-darwin-arm64@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.10.tgz#49d10ca4086fbd59ee68e204f75d7136eda2aa80" resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.15.tgz#6386d585f39a1c490c60b72b1f76612ba4434347"
integrity sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ== integrity sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==
"@next/swc-darwin-x64@14.2.10": "@next/swc-darwin-x64@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.10.tgz#0ebeae3afb8eac433882b79543295ab83624a1a8" resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.15.tgz#b7baeedc6a28f7545ad2bc55adbab25f7b45cb89"
integrity sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA== integrity sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==
"@next/swc-linux-arm64-gnu@14.2.10": "@next/swc-linux-arm64-gnu@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.10.tgz#7e602916d2fb55a3c532f74bed926a0137c16f20" resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.15.tgz#fa13c59d3222f70fb4cb3544ac750db2c6e34d02"
integrity sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA== integrity sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==
"@next/swc-linux-arm64-musl@14.2.10": "@next/swc-linux-arm64-musl@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.10.tgz#6b143f628ccee490b527562e934f8de578d4be47" resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.15.tgz#30e45b71831d9a6d6d18d7ac7d611a8d646a17f9"
integrity sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ== integrity sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==
"@next/swc-linux-x64-gnu@14.2.10": "@next/swc-linux-x64-gnu@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.10.tgz#086f2f16a0678890a1eb46518c4dda381b046082" resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.15.tgz#5065db17fc86f935ad117483f21f812dc1b39254"
integrity sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg== integrity sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==
"@next/swc-linux-x64-musl@14.2.10": "@next/swc-linux-x64-musl@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.10.tgz#1befef10ed8dbcc5047b5d637a25ae3c30a0bfc3" resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.15.tgz#3c4a4568d8be7373a820f7576cf33388b5dab47e"
integrity sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA== integrity sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==
"@next/swc-win32-arm64-msvc@14.2.10": "@next/swc-win32-arm64-msvc@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.10.tgz#731f52c3ae3c56a26cf21d474b11ae1529531209" resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.15.tgz#fb812cc4ca0042868e32a6a021da91943bb08b98"
integrity sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ== integrity sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==
"@next/swc-win32-ia32-msvc@14.2.10": "@next/swc-win32-ia32-msvc@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.10.tgz#32723ef7f04e25be12af357cc72ddfdd42fd1041" resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.15.tgz#ec26e6169354f8ced240c1427be7fd485c5df898"
integrity sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg== integrity sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==
"@next/swc-win32-x64-msvc@14.2.10": "@next/swc-win32-x64-msvc@14.2.15":
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.10.tgz#ee1d036cb5ec871816f96baee7991035bb242455" resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.15.tgz#18d68697002b282006771f8d92d79ade9efd35c4"
integrity sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ== integrity sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==
"@nodelib/fs.scandir@2.1.5": "@nodelib/fs.scandir@2.1.5":
version "2.1.5" version "2.1.5"
@ -1253,12 +1253,12 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
next@14.2.10: next@14.2.15:
version "14.2.10" version "14.2.15"
resolved "https://registry.yarnpkg.com/next/-/next-14.2.10.tgz#331981a4fecb1ae8af1817d4db98fc9687ee1cb6" resolved "https://registry.yarnpkg.com/next/-/next-14.2.15.tgz#348e5603e22649775d19c785c09a89c9acb5189a"
integrity sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww== integrity sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==
dependencies: dependencies:
"@next/env" "14.2.10" "@next/env" "14.2.15"
"@swc/helpers" "0.5.5" "@swc/helpers" "0.5.5"
busboy "1.6.0" busboy "1.6.0"
caniuse-lite "^1.0.30001579" caniuse-lite "^1.0.30001579"
@ -1266,15 +1266,15 @@ next@14.2.10:
postcss "8.4.31" postcss "8.4.31"
styled-jsx "5.1.1" styled-jsx "5.1.1"
optionalDependencies: optionalDependencies:
"@next/swc-darwin-arm64" "14.2.10" "@next/swc-darwin-arm64" "14.2.15"
"@next/swc-darwin-x64" "14.2.10" "@next/swc-darwin-x64" "14.2.15"
"@next/swc-linux-arm64-gnu" "14.2.10" "@next/swc-linux-arm64-gnu" "14.2.15"
"@next/swc-linux-arm64-musl" "14.2.10" "@next/swc-linux-arm64-musl" "14.2.15"
"@next/swc-linux-x64-gnu" "14.2.10" "@next/swc-linux-x64-gnu" "14.2.15"
"@next/swc-linux-x64-musl" "14.2.10" "@next/swc-linux-x64-musl" "14.2.15"
"@next/swc-win32-arm64-msvc" "14.2.10" "@next/swc-win32-arm64-msvc" "14.2.15"
"@next/swc-win32-ia32-msvc" "14.2.10" "@next/swc-win32-ia32-msvc" "14.2.15"
"@next/swc-win32-x64-msvc" "14.2.10" "@next/swc-win32-x64-msvc" "14.2.15"
node-domexception@^1.0.0: node-domexception@^1.0.0:
version "1.0.0" version "1.0.0"

View File

@ -1,6 +1,6 @@
{ {
"$schema": "node_modules/lerna/schemas/lerna-schema.json", "$schema": "node_modules/lerna/schemas/lerna-schema.json",
"version": "3.2.28", "version": "3.2.29",
"npmClient": "yarn", "npmClient": "yarn",
"concurrency": 20, "concurrency": 20,
"command": { "command": {

View File

@ -70,6 +70,10 @@ export function encodeTableId(tableId: string) {
} }
} }
export function encodeViewId(viewId: string) {
return encodeURIComponent(viewId)
}
export function breakExternalTableId(tableId: string) { export function breakExternalTableId(tableId: string) {
const parts = tableId.split(DOUBLE_SEPARATOR) const parts = tableId.split(DOUBLE_SEPARATOR)
let datasourceId = parts.shift() let datasourceId = parts.shift()

View File

@ -51,6 +51,7 @@
} }
input.hide-arrows { input.hide-arrows {
-moz-appearance: textfield; -moz-appearance: textfield;
appearance: textfield;
} }
input[type="time"]::-webkit-calendar-picker-indicator { input[type="time"]::-webkit-calendar-picker-indicator {
display: none; display: none;

View File

@ -39,6 +39,7 @@
padding: 0; padding: 0;
margin: 0; margin: 0;
-webkit-appearance: none; -webkit-appearance: none;
appearance: none;
background: transparent; background: transparent;
} }
input::-webkit-slider-thumb { input::-webkit-slider-thumb {

View File

@ -43,12 +43,11 @@
flex-direction: row; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;
align-items: stretch; align-items: stretch;
overflow-y: scroll !important;
flex: 1 1 auto; flex: 1 1 auto;
overflow-x: hidden; overflow-x: hidden;
} }
.main { .main {
overflow: auto; overflow-y: scroll;
} }
.content { .content {
display: flex; display: flex;

View File

@ -37,7 +37,7 @@
} }
} }
export let overBackground export let overBackground = false
</script> </script>
<!-- svelte-ignore a11y-no-static-element-interactions --> <!-- svelte-ignore a11y-no-static-element-interactions -->

View File

@ -124,8 +124,6 @@
.spectrum-Tabs-selectionIndicator.emphasized { .spectrum-Tabs-selectionIndicator.emphasized {
background-color: var(--spectrum-global-color-blue-400); background-color: var(--spectrum-global-color-blue-400);
} }
.spectrum-Tabs--horizontal .spectrum-Tabs-selectionIndicator {
}
.noHorizPadding { .noHorizPadding {
padding: 0; padding: 0;
} }

View File

@ -134,6 +134,7 @@
.spectrum-Tooltip-label { .spectrum-Tooltip-label {
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 3; -webkit-line-clamp: 3;
line-clamp: 3;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
overflow: hidden; overflow: hidden;
font-size: 12px; font-size: 12px;

View File

@ -7,7 +7,7 @@
"build": "routify -b && NODE_OPTIONS=\"--max_old_space_size=4096\" vite build --emptyOutDir", "build": "routify -b && NODE_OPTIONS=\"--max_old_space_size=4096\" vite build --emptyOutDir",
"start": "routify -c rollup", "start": "routify -c rollup",
"dev": "routify -c dev:vite", "dev": "routify -c dev:vite",
"dev:vite": "vite --host 0.0.0.0", "dev:vite": "vite --host 0.0.0.0 --mode=dev",
"rollup": "rollup -c -w", "rollup": "rollup -c -w",
"test": "vitest run", "test": "vitest run",
"test:watch": "vitest", "test:watch": "vitest",
@ -94,6 +94,7 @@
"@sveltejs/vite-plugin-svelte": "1.4.0", "@sveltejs/vite-plugin-svelte": "1.4.0",
"@testing-library/jest-dom": "6.4.2", "@testing-library/jest-dom": "6.4.2",
"@testing-library/svelte": "^4.1.0", "@testing-library/svelte": "^4.1.0",
"@types/shortid": "^2.2.0",
"babel-jest": "^29.6.2", "babel-jest": "^29.6.2",
"identity-obj-proxy": "^3.0.0", "identity-obj-proxy": "^3.0.0",
"jest": "29.7.0", "jest": "29.7.0",

View File

@ -3,7 +3,7 @@
import { routes } from "../.routify/routes" import { routes } from "../.routify/routes"
import { NotificationDisplay, BannerDisplay } from "@budibase/bbui" import { NotificationDisplay, BannerDisplay } from "@budibase/bbui"
import { parse, stringify } from "qs" import { parse, stringify } from "qs"
import LicensingOverlays from "components/portal/licensing/LicensingOverlays.svelte" import LicensingOverlays from "@/components/portal/licensing/LicensingOverlays.svelte"
const queryHandler = { parse, stringify } const queryHandler = { parse, stringify }
</script> </script>

View File

@ -1,4 +1,4 @@
import { API } from "api" import { API } from "@/api"
import PosthogClient from "./PosthogClient" import PosthogClient from "./PosthogClient"
import { Events, EventSource } from "./constants" import { Events, EventSource } from "./constants"

View File

@ -3,12 +3,12 @@ import {
CookieUtils, CookieUtils,
Constants, Constants,
} from "@budibase/frontend-core" } from "@budibase/frontend-core"
import { appStore } from "stores/builder" import { appStore } from "@/stores/builder"
import { get } from "svelte/store" import { get } from "svelte/store"
import { auth, navigation } from "./stores/portal" import { auth, navigation } from "./stores/portal"
export const API = createAPIClient({ export const API = createAPIClient({
attachHeaders: (headers: Record<string, string>) => { attachHeaders: headers => {
// Attach app ID header from store // Attach app ID header from store
let appId = get(appStore).appId let appId = get(appStore).appId
if (appId) { if (appId) {
@ -22,7 +22,7 @@ export const API = createAPIClient({
} }
}, },
onError: (error: any) => { onError: error => {
const { url, message, status, method, handled } = error || {} const { url, message, status, method, handled } = error || {}
// Log any errors that we haven't manually handled // Log any errors that we haven't manually handled
@ -45,7 +45,7 @@ export const API = createAPIClient({
} }
} }
}, },
onMigrationDetected: (appId: string) => { onMigrationDetected: appId => {
const updatingUrl = `/builder/app/updating/${appId}` const updatingUrl = `/builder/app/updating/${appId}`
if (window.location.pathname === updatingUrl) { if (window.location.pathname === updatingUrl) {

View File

@ -1,5 +1,5 @@
<script> <script>
import { contextMenuStore } from "stores/builder" import { contextMenuStore } from "@/stores/builder"
import { Popover, Menu, MenuItem } from "@budibase/bbui" import { Popover, Menu, MenuItem } from "@budibase/bbui"
let dropdown let dropdown

View File

@ -1,5 +1,5 @@
<script> <script>
import { selectedAutomation } from "stores/builder" import { selectedAutomation } from "@/stores/builder"
import Flowchart from "./FlowChart/FlowChart.svelte" import Flowchart from "./FlowChart/FlowChart.svelte"
</script> </script>

View File

@ -9,7 +9,7 @@
} from "svelte" } from "svelte"
import Logo from "assets/bb-emblem.svg?raw" import Logo from "assets/bb-emblem.svg?raw"
import { Utils, memo } from "@budibase/frontend-core" import { Utils, memo } from "@budibase/frontend-core"
import { selectedAutomation, automationStore } from "stores/builder" import { selectedAutomation, automationStore } from "@/stores/builder"
// CSS classes that, on mouse down, will trigger the view drag behaviour // CSS classes that, on mouse down, will trigger the view drag behaviour
export let draggableClasses = [] export let draggableClasses = []

View File

@ -10,10 +10,10 @@
Tag, Tag,
} from "@budibase/bbui" } from "@budibase/bbui"
import { AutomationActionStepId } from "@budibase/types" import { AutomationActionStepId } from "@budibase/types"
import { automationStore, selectedAutomation } from "stores/builder" import { automationStore, selectedAutomation } from "@/stores/builder"
import { admin, licensing } from "stores/portal" import { admin, licensing } from "@/stores/portal"
import { externalActions } from "./ExternalActions" import { externalActions } from "./ExternalActions"
import { TriggerStepID, ActionStepID } from "constants/backend/automations" import { TriggerStepID, ActionStepID } from "@/constants/backend/automations"
export let block export let block
export let modal export let modal
@ -49,7 +49,7 @@
const disabled = () => { const disabled = () => {
return { return {
SEND_EMAIL_SMTP: { SEND_EMAIL_SMTP: {
disabled: !$admin.checklist.smtp.checked, disabled: !$admin.checklist?.smtp?.checked,
message: "Please configure SMTP", message: "Please configure SMTP",
}, },
COLLECT: { COLLECT: {

View File

@ -1,7 +1,7 @@
<script> <script>
import { processStringSync } from "@budibase/string-templates" import { processStringSync } from "@budibase/string-templates"
import { get } from "lodash/fp" import { get } from "lodash/fp"
import { tables } from "stores/builder" import { tables } from "@/stores/builder"
export let block export let block

View File

@ -1,5 +1,5 @@
<script> <script>
import FilterBuilder from "components/design/settings/controls/FilterEditor/FilterBuilder.svelte" import FilterBuilder from "@/components/design/settings/controls/FilterEditor/FilterBuilder.svelte"
import { import {
Drawer, Drawer,
DrawerContent, DrawerContent,
@ -14,11 +14,11 @@
Modal, Modal,
ModalContent, ModalContent,
} from "@budibase/bbui" } from "@budibase/bbui"
import PropField from "components/automation/SetupPanel/PropField.svelte" import PropField from "@/components/automation/SetupPanel/PropField.svelte"
import AutomationBindingPanel from "components/common/bindings/ServerBindingPanel.svelte" import AutomationBindingPanel from "@/components/common/bindings/ServerBindingPanel.svelte"
import FlowItemHeader from "./FlowItemHeader.svelte" import FlowItemHeader from "./FlowItemHeader.svelte"
import FlowItemActions from "./FlowItemActions.svelte" import FlowItemActions from "./FlowItemActions.svelte"
import { automationStore, selectedAutomation } from "stores/builder" import { automationStore, selectedAutomation } from "@/stores/builder"
import { QueryUtils, Utils } from "@budibase/frontend-core" import { QueryUtils, Utils } from "@budibase/frontend-core"
import { cloneDeep } from "lodash/fp" import { cloneDeep } from "lodash/fp"
import { createEventDispatcher, getContext } from "svelte" import { createEventDispatcher, getContext } from "svelte"

View File

@ -3,8 +3,8 @@
automationStore, automationStore,
automationHistoryStore, automationHistoryStore,
selectedAutomation, selectedAutomation,
} from "stores/builder" } from "@/stores/builder"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
import TestDataModal from "./TestDataModal.svelte" import TestDataModal from "./TestDataModal.svelte"
import { import {
notifications, notifications,
@ -13,8 +13,8 @@
Button, Button,
ActionButton, ActionButton,
} from "@budibase/bbui" } from "@budibase/bbui"
import { ActionStepID } from "constants/backend/automations" import { ActionStepID } from "@/constants/backend/automations"
import UndoRedoControl from "components/common/UndoRedoControl.svelte" import UndoRedoControl from "@/components/common/UndoRedoControl.svelte"
import StepNode from "./StepNode.svelte" import StepNode from "./StepNode.svelte"
import { memo } from "@budibase/frontend-core" import { memo } from "@budibase/frontend-core"
import { sdk } from "@budibase/shared-core" import { sdk } from "@budibase/shared-core"

View File

@ -4,7 +4,7 @@
permissions, permissions,
selectedAutomation, selectedAutomation,
tables, tables,
} from "stores/builder" } from "@/stores/builder"
import { import {
Icon, Icon,
Divider, Divider,
@ -16,16 +16,16 @@
} from "@budibase/bbui" } from "@budibase/bbui"
import { sdk } from "@budibase/shared-core" import { sdk } from "@budibase/shared-core"
import AutomationBlockSetup from "../../SetupPanel/AutomationBlockSetup.svelte" import AutomationBlockSetup from "../../SetupPanel/AutomationBlockSetup.svelte"
import CreateWebhookModal from "components/automation/Shared/CreateWebhookModal.svelte" import CreateWebhookModal from "@/components/automation/Shared/CreateWebhookModal.svelte"
import FlowItemHeader from "./FlowItemHeader.svelte" import FlowItemHeader from "./FlowItemHeader.svelte"
import RoleSelect from "components/design/settings/controls/RoleSelect.svelte" import RoleSelect from "@/components/design/settings/controls/RoleSelect.svelte"
import { ActionStepID, TriggerStepID } from "constants/backend/automations" import { ActionStepID, TriggerStepID } from "@/constants/backend/automations"
import { AutomationStepType } from "@budibase/types" import { AutomationStepType } from "@budibase/types"
import FlowItemActions from "./FlowItemActions.svelte" import FlowItemActions from "./FlowItemActions.svelte"
import DragHandle from "components/design/settings/controls/DraggableList/drag-handle.svelte" import DragHandle from "@/components/design/settings/controls/DraggableList/drag-handle.svelte"
import { getContext } from "svelte" import { getContext } from "svelte"
import DragZone from "./DragZone.svelte" import DragZone from "./DragZone.svelte"
import InfoDisplay from "pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte" import InfoDisplay from "@/pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte"
export let block export let block
export let blockRef export let blockRef

View File

@ -1,9 +1,9 @@
<script> <script>
import { automationStore, selectedAutomation } from "stores/builder" import { automationStore, selectedAutomation } from "@/stores/builder"
import { Icon, Body, AbsTooltip, StatusLight } from "@budibase/bbui" import { Icon, Body, AbsTooltip, StatusLight } from "@budibase/bbui"
import { externalActions } from "./ExternalActions" import { externalActions } from "./ExternalActions"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { Features } from "constants/backend/automations" import { Features } from "@/constants/backend/automations"
export let block export let block
export let open export let open
@ -22,7 +22,7 @@
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()
$: blockRefs = $selectedAutomation?.blockRefs || {} $: blockRefs = $selectedAutomation?.blockRefs || {}
$: stepNames = automation?.definition.stepNames $: stepNames = automation?.definition.stepNames || {}
$: allSteps = automation?.definition.steps || [] $: allSteps = automation?.definition.steps || []
$: automationName = itemName || stepNames?.[block.id] || block?.name || "" $: automationName = itemName || stepNames?.[block.id] || block?.name || ""
$: automationNameError = getAutomationNameError(automationName) $: automationNameError = getAutomationNameError(automationName)
@ -64,7 +64,7 @@
const getAutomationNameError = name => { const getAutomationNameError = name => {
const duplicateError = const duplicateError =
"This name already exists, please enter a unique name" "This name already exists, please enter a unique name"
if (stepNames && editing) { if (editing) {
for (const [key, value] of Object.entries(stepNames)) { for (const [key, value] of Object.entries(stepNames)) {
if (name !== block.name && name === value && key !== block.id) { if (name !== block.name && name === value && key !== block.id) {
return duplicateError return duplicateError

View File

@ -3,8 +3,8 @@
import BranchNode from "./BranchNode.svelte" import BranchNode from "./BranchNode.svelte"
import { AutomationActionStepId } from "@budibase/types" import { AutomationActionStepId } from "@budibase/types"
import { ActionButton, notifications } from "@budibase/bbui" import { ActionButton, notifications } from "@budibase/bbui"
import { automationStore } from "stores/builder" import { automationStore } from "@/stores/builder"
import { environment } from "stores/portal" import { environment } from "@/stores/portal"
import { cloneDeep } from "lodash" import { cloneDeep } from "lodash"
import { memo } from "@budibase/frontend-core" import { memo } from "@budibase/frontend-core"
import { getContext, onMount } from "svelte" import { getContext, onMount } from "svelte"

View File

@ -6,7 +6,7 @@
notifications, notifications,
ActionButton, ActionButton,
} from "@budibase/bbui" } from "@budibase/bbui"
import { automationStore, selectedAutomation } from "stores/builder" import { automationStore, selectedAutomation } from "@/stores/builder"
import AutomationBlockSetup from "../../SetupPanel/AutomationBlockSetup.svelte" import AutomationBlockSetup from "../../SetupPanel/AutomationBlockSetup.svelte"
import { cloneDeep } from "lodash/fp" import { cloneDeep } from "lodash/fp"
import { AutomationEventType } from "@budibase/types" import { AutomationEventType } from "@budibase/types"

View File

@ -1,9 +1,9 @@
<script> <script>
import { Icon, Divider, Tabs, Tab, Label } from "@budibase/bbui" import { Icon, Divider, Tabs, Tab, Label } from "@budibase/bbui"
import FlowItemHeader from "./FlowChart/FlowItemHeader.svelte" import FlowItemHeader from "./FlowChart/FlowItemHeader.svelte"
import { ActionStepID } from "constants/backend/automations" import { ActionStepID } from "@/constants/backend/automations"
import { JsonView } from "@zerodevx/svelte-json-view" import { JsonView } from "@zerodevx/svelte-json-view"
import { automationStore } from "stores/builder" import { automationStore } from "@/stores/builder"
import { AutomationActionStepId } from "@budibase/types" import { AutomationActionStepId } from "@budibase/types"
export let automation export let automation

View File

@ -1,7 +1,7 @@
<script> <script>
import { Icon, Divider } from "@budibase/bbui" import { Icon, Divider } from "@budibase/bbui"
import TestDisplay from "./TestDisplay.svelte" import TestDisplay from "./TestDisplay.svelte"
import { automationStore, selectedAutomation } from "stores/builder" import { automationStore, selectedAutomation } from "@/stores/builder"
export let automation export let automation
</script> </script>

View File

@ -4,12 +4,12 @@
userSelectedResourceMap, userSelectedResourceMap,
automationStore, automationStore,
contextMenuStore, contextMenuStore,
} from "stores/builder" } from "@/stores/builder"
import { notifications, Icon } from "@budibase/bbui" import { notifications, Icon } from "@budibase/bbui"
import { sdk } from "@budibase/shared-core" import { sdk } from "@budibase/shared-core"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
import UpdateAutomationModal from "components/automation/AutomationPanel/UpdateAutomationModal.svelte" import UpdateAutomationModal from "@/components/automation/AutomationPanel/UpdateAutomationModal.svelte"
import NavItem from "components/common/NavItem.svelte" import NavItem from "@/components/common/NavItem.svelte"
export let automation export let automation
export let icon export let icon

View File

@ -1,11 +1,11 @@
<script> <script>
import CreateAutomationModal from "./CreateAutomationModal.svelte" import CreateAutomationModal from "./CreateAutomationModal.svelte"
import { Modal, notifications, Layout } from "@budibase/bbui" import { Modal, notifications, Layout } from "@budibase/bbui"
import NavHeader from "components/common/NavHeader.svelte" import NavHeader from "@/components/common/NavHeader.svelte"
import { onMount } from "svelte" import { onMount } from "svelte"
import { automationStore, tables } from "stores/builder" import { automationStore, tables } from "@/stores/builder"
import AutomationNavItem from "./AutomationNavItem.svelte" import AutomationNavItem from "./AutomationNavItem.svelte"
import { TriggerStepID } from "constants/backend/automations" import { TriggerStepID } from "@/constants/backend/automations"
export let modal export let modal
export let webhookModal export let webhookModal

View File

@ -1,6 +1,6 @@
<script> <script>
import { goto } from "@roxi/routify" import { goto } from "@roxi/routify"
import { automationStore } from "stores/builder" import { automationStore } from "@/stores/builder"
import { import {
notifications, notifications,
Input, Input,
@ -11,7 +11,7 @@
Icon, Icon,
Label, Label,
} from "@budibase/bbui" } from "@budibase/bbui"
import { TriggerStepID } from "constants/backend/automations" import { TriggerStepID } from "@/constants/backend/automations"
export let webhookModal export let webhookModal

View File

@ -1,5 +1,5 @@
<script> <script>
import { automationStore } from "stores/builder" import { automationStore } from "@/stores/builder"
import { import {
notifications, notifications,
Icon, Icon,

View File

@ -20,9 +20,9 @@
Icon, Icon,
} from "@budibase/bbui" } from "@budibase/bbui"
import CreateWebhookModal from "components/automation/Shared/CreateWebhookModal.svelte" import CreateWebhookModal from "@/components/automation/Shared/CreateWebhookModal.svelte"
import { automationStore, tables } from "stores/builder" import { automationStore, tables } from "@/stores/builder"
import { environment } from "stores/portal" import { environment } from "@/stores/portal"
import WebhookDisplay from "../Shared/WebhookDisplay.svelte" import WebhookDisplay from "../Shared/WebhookDisplay.svelte"
import { import {
BindingSidePanel, BindingSidePanel,
@ -30,24 +30,27 @@
DrawerBindableInput, DrawerBindableInput,
ServerBindingPanel as AutomationBindingPanel, ServerBindingPanel as AutomationBindingPanel,
ModalBindableInput, ModalBindableInput,
} from "components/common/bindings" } from "@/components/common/bindings"
import CodeEditorModal from "./CodeEditorModal.svelte" import CodeEditorModal from "./CodeEditorModal.svelte"
import QueryParamSelector from "./QueryParamSelector.svelte" import QueryParamSelector from "./QueryParamSelector.svelte"
import AutomationSelector from "./AutomationSelector.svelte" import AutomationSelector from "./AutomationSelector.svelte"
import CronBuilder from "./CronBuilder.svelte" import CronBuilder from "./CronBuilder.svelte"
import Editor from "components/integration/QueryEditor.svelte" import Editor from "@/components/integration/QueryEditor.svelte"
import CodeEditor from "components/common/CodeEditor/CodeEditor.svelte" import CodeEditor from "@/components/common/CodeEditor/CodeEditor.svelte"
import KeyValueBuilder from "components/integration/KeyValueBuilder.svelte" import KeyValueBuilder from "@/components/integration/KeyValueBuilder.svelte"
import { BindingHelpers, BindingType } from "components/common/bindings/utils" import {
BindingHelpers,
BindingType,
} from "@/components/common/bindings/utils"
import { import {
bindingsToCompletions, bindingsToCompletions,
hbAutocomplete, hbAutocomplete,
EditorModes, EditorModes,
} from "components/common/CodeEditor" } from "@/components/common/CodeEditor"
import FilterBuilder from "components/design/settings/controls/FilterEditor/FilterBuilder.svelte" import FilterBuilder from "@/components/design/settings/controls/FilterEditor/FilterBuilder.svelte"
import { QueryUtils, Utils, search, memo } from "@budibase/frontend-core" import { QueryUtils, Utils, search, memo } from "@budibase/frontend-core"
import { getSchemaForDatasourcePlus } from "dataBinding" import { getSchemaForDatasourcePlus } from "@/dataBinding"
import { TriggerStepID, ActionStepID } from "constants/backend/automations" import { TriggerStepID, ActionStepID } from "@/constants/backend/automations"
import { onMount, createEventDispatcher } from "svelte" import { onMount, createEventDispatcher } from "svelte"
import { writable } from "svelte/store" import { writable } from "svelte/store"
import { cloneDeep } from "lodash/fp" import { cloneDeep } from "lodash/fp"

View File

@ -1,8 +1,8 @@
<script> <script>
import { Select, Label } from "@budibase/bbui" import { Select, Label } from "@budibase/bbui"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { automationStore, selectedAutomation } from "stores/builder" import { automationStore, selectedAutomation } from "@/stores/builder"
import { TriggerStepID } from "constants/backend/automations" import { TriggerStepID } from "@/constants/backend/automations"
import DrawerBindableInput from "../../common/bindings/DrawerBindableInput.svelte" import DrawerBindableInput from "../../common/bindings/DrawerBindableInput.svelte"
import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte" import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte"

View File

@ -8,9 +8,9 @@
notifications, notifications,
} from "@budibase/bbui" } from "@budibase/bbui"
import { onMount, createEventDispatcher } from "svelte" import { onMount, createEventDispatcher } from "svelte"
import { flags } from "stores/builder" import { flags } from "@/stores/builder"
import { featureFlags, licensing } from "stores/portal" import { featureFlags, licensing } from "@/stores/portal"
import { API } from "api" import { API } from "@/api"
import MagicWand from "../../../../assets/MagicWand.svelte" import MagicWand from "../../../../assets/MagicWand.svelte"
import { helpers, REBOOT_CRON } from "@budibase/shared-core" import { helpers, REBOOT_CRON } from "@budibase/shared-core"
@ -98,9 +98,7 @@
async function generateAICronExpression() { async function generateAICronExpression() {
loadingAICronExpression = true loadingAICronExpression = true
try { try {
const response = await API.generateCronExpression({ const response = await API.generateCronExpression(aiCronPrompt)
prompt: aiCronPrompt,
})
cronExpression = response.message cronExpression = response.message
dispatch("change", response.message) dispatch("change", response.message)
} catch (err) { } catch (err) {

View File

@ -1,6 +1,6 @@
<script> <script>
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { queries } from "stores/builder" import { queries } from "@/stores/builder"
import { Select, Label } from "@budibase/bbui" import { Select, Label } from "@budibase/bbui"
import DrawerBindableInput from "../../common/bindings/DrawerBindableInput.svelte" import DrawerBindableInput from "../../common/bindings/DrawerBindableInput.svelte"
import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte" import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte"

View File

@ -1,5 +1,5 @@
<script> <script>
import { queries } from "stores/builder" import { queries } from "@/stores/builder"
import { Select } from "@budibase/bbui" import { Select } from "@budibase/bbui"
export let value export let value

View File

@ -1,5 +1,5 @@
<script> <script>
import { tables } from "stores/builder" import { tables } from "@/stores/builder"
import { import {
ActionButton, ActionButton,
Popover, Popover,
@ -13,8 +13,8 @@
import RowSelectorTypes from "./RowSelectorTypes.svelte" import RowSelectorTypes from "./RowSelectorTypes.svelte"
import DrawerBindableSlot from "../../common/bindings/DrawerBindableSlot.svelte" import DrawerBindableSlot from "../../common/bindings/DrawerBindableSlot.svelte"
import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte" import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte"
import { FIELDS } from "constants/backend" import { FIELDS } from "@/constants/backend"
import { capitalise } from "helpers" import { capitalise } from "@/helpers"
import { memo } from "@budibase/frontend-core" import { memo } from "@budibase/frontend-core"
import PropField from "./PropField.svelte" import PropField from "./PropField.svelte"
import { cloneDeep, isPlainObject, mergeWith } from "lodash" import { cloneDeep, isPlainObject, mergeWith } from "lodash"

View File

@ -7,16 +7,16 @@
Toggle, Toggle,
} from "@budibase/bbui" } from "@budibase/bbui"
import { FieldType } from "@budibase/types" import { FieldType } from "@budibase/types"
import LinkedRowSelector from "components/common/LinkedRowSelector.svelte" import LinkedRowSelector from "@/components/common/LinkedRowSelector.svelte"
import DrawerBindableInput from "../../common/bindings/DrawerBindableInput.svelte" import DrawerBindableInput from "../../common/bindings/DrawerBindableInput.svelte"
import ModalBindableInput from "../../common/bindings/ModalBindableInput.svelte" import ModalBindableInput from "../../common/bindings/ModalBindableInput.svelte"
import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte" import AutomationBindingPanel from "../../common/bindings/ServerBindingPanel.svelte"
import CodeEditor from "components/common/CodeEditor/CodeEditor.svelte" import CodeEditor from "@/components/common/CodeEditor/CodeEditor.svelte"
import KeyValueBuilder from "components/integration/KeyValueBuilder.svelte" import KeyValueBuilder from "@/components/integration/KeyValueBuilder.svelte"
import { import {
readableToRuntimeBinding, readableToRuntimeBinding,
runtimeToReadableBinding, runtimeToReadableBinding,
} from "dataBinding" } from "@/dataBinding"
export let onChange export let onChange
export let field export let field

View File

@ -1,8 +1,8 @@
<script> <script>
import { tables } from "stores/builder" import { tables } from "@/stores/builder"
import { Select } from "@budibase/bbui" import { Select } from "@budibase/bbui"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { TableNames } from "constants" import { TableNames } from "@/constants"
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()

View File

@ -1,6 +1,6 @@
<script> <script>
import { Icon, notifications, ModalContent } from "@budibase/bbui" import { Icon, notifications, ModalContent } from "@budibase/bbui"
import { automationStore, selectedAutomation } from "stores/builder" import { automationStore, selectedAutomation } from "@/stores/builder"
import WebhookDisplay from "./WebhookDisplay.svelte" import WebhookDisplay from "./WebhookDisplay.svelte"
import { onMount, onDestroy } from "svelte" import { onMount, onDestroy } from "svelte"

View File

@ -1,5 +1,5 @@
<script> <script>
import { API } from "api" import { API } from "@/api"
import { import {
Input, Input,
Select, Select,
@ -13,12 +13,12 @@
ActionButton, ActionButton,
notifications, notifications,
} from "@budibase/bbui" } from "@budibase/bbui"
import Dropzone from "components/common/Dropzone.svelte" import Dropzone from "@/components/common/Dropzone.svelte"
import { capitalise } from "helpers" import { capitalise } from "@/helpers"
import LinkedRowSelector from "components/common/LinkedRowSelector.svelte" import LinkedRowSelector from "@/components/common/LinkedRowSelector.svelte"
import Editor from "../../integration/QueryEditor.svelte" import Editor from "../../integration/QueryEditor.svelte"
import { SignatureModal } from "@budibase/frontend-core/src/components" import { SignatureModal } from "@budibase/frontend-core/src/components"
import { themeStore } from "stores/portal" import { themeStore } from "@/stores/portal"
export let meta export let meta
export let value export let value

View File

@ -2,8 +2,8 @@
import { fade } from "svelte/transition" import { fade } from "svelte/transition"
import { goto, params } from "@roxi/routify" import { goto, params } from "@roxi/routify"
import { Table, Heading, Layout } from "@budibase/bbui" import { Table, Heading, Layout } from "@budibase/bbui"
import Spinner from "components/common/Spinner.svelte" import Spinner from "@/components/common/Spinner.svelte"
import { TableNames, UNEDITABLE_USER_FIELDS } from "constants" import { TableNames, UNEDITABLE_USER_FIELDS } from "@/constants"
import RoleCell from "./cells/RoleCell.svelte" import RoleCell from "./cells/RoleCell.svelte"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { canBeSortColumn } from "@budibase/frontend-core" import { canBeSortColumn } from "@budibase/frontend-core"

View File

@ -1,7 +1,7 @@
<script> <script>
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { Button } from "@budibase/bbui" import { Button } from "@budibase/bbui"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
export let selectedRows export let selectedRows
export let deleteRows export let deleteRows

View File

@ -2,7 +2,7 @@
import { ActionButton, notifications } from "@budibase/bbui" import { ActionButton, notifications } from "@budibase/bbui"
import CreateEditRelationshipModal from "../../Datasources/CreateEditRelationshipModal.svelte" import CreateEditRelationshipModal from "../../Datasources/CreateEditRelationshipModal.svelte"
import { datasources, tables as tablesStore } from "stores/builder" import { datasources, tables as tablesStore } from "@/stores/builder"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
export let table export let table

View File

@ -7,9 +7,9 @@
Button, Button,
} from "@budibase/bbui" } from "@budibase/bbui"
import download from "downloadjs" import download from "downloadjs"
import { API } from "api" import { API } from "@/api"
import { ROW_EXPORT_FORMATS } from "constants/backend" import { ROW_EXPORT_FORMATS } from "@/constants/backend"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
export let view export let view
export let sorting export let sorting
@ -56,28 +56,19 @@
} }
const exportAllData = async () => { const exportAllData = async () => {
return await API.exportView({ return await API.exportView(view, exportFormat)
viewName: view,
format: exportFormat,
})
} }
const exportFilteredData = async () => { const exportFilteredData = async () => {
let payload = { let payload = {}
tableId: view,
format: exportFormat,
search: {
paginate: false,
},
}
if (selectedRows?.length) { if (selectedRows?.length) {
payload.rows = selectedRows.map(row => row._id) payload.rows = selectedRows.map(row => row._id)
} }
if (sorting) { if (sorting) {
payload.search.sort = sorting.sortColumn payload.sort = sorting.sortColumn
payload.search.sortOrder = sorting.sortOrder payload.sortOrder = sorting.sortOrder
} }
return await API.exportRows(payload) return await API.exportRows(view, exportFormat, payload)
} }
const exportData = async () => { const exportData = async () => {

View File

@ -1,9 +1,9 @@
<script> <script>
import { ActionButton, Button, Body, notifications } from "@budibase/bbui" import { ActionButton, Button, Body, notifications } from "@budibase/bbui"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
import ExistingTableDataImport from "components/backend/TableNavigator/ExistingTableDataImport.svelte" import ExistingTableDataImport from "@/components/backend/TableNavigator/ExistingTableDataImport.svelte"
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { API } from "api" import { API } from "@/api"
export let tableId export let tableId
export let tableType export let tableType
@ -30,11 +30,7 @@
const importData = async () => { const importData = async () => {
try { try {
loading = true loading = true
await API.importTableData({ await API.importTableData(tableId, rows, identifierFields)
tableId,
rows,
identifierFields,
})
notifications.success("Rows successfully imported") notifications.success("Rows successfully imported")
popover.hide() popover.hide()
} catch (error) { } catch (error) {

View File

@ -8,12 +8,12 @@
ListItem, ListItem,
notifications, notifications,
} from "@budibase/bbui" } from "@budibase/bbui"
import { permissions as permissionsStore, roles } from "stores/builder" import { permissions as permissionsStore, roles } from "@/stores/builder"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
import { PermissionSource } from "@budibase/types" import { PermissionSource } from "@budibase/types"
import { capitalise } from "helpers" import { capitalise } from "@/helpers"
import InfoDisplay from "pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte" import InfoDisplay from "@/pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte"
import { Roles } from "constants/backend" import { Roles } from "@/constants/backend"
export let resourceId export let resourceId

View File

@ -1,12 +1,12 @@
<script> <script>
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { ActionButton, Button } from "@budibase/bbui" import { ActionButton, Button } from "@budibase/bbui"
import FilterBuilder from "components/design/settings/controls/FilterEditor/FilterBuilder.svelte" import FilterBuilder from "@/components/design/settings/controls/FilterEditor/FilterBuilder.svelte"
import { getUserBindings } from "dataBinding" import { getUserBindings } from "@/dataBinding"
import { makePropSafe } from "@budibase/string-templates" import { makePropSafe } from "@budibase/string-templates"
import { search, Utils } from "@budibase/frontend-core" import { search, Utils } from "@budibase/frontend-core"
import { tables } from "stores/builder" import { tables } from "@/stores/builder"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
export let schema export let schema
export let filters export let filters

View File

@ -1,6 +1,6 @@
<script> <script>
import { getContext } from "svelte" import { getContext } from "svelte"
import ToggleActionButtonGroup from "components/common/ToggleActionButtonGroup.svelte" import ToggleActionButtonGroup from "@/components/common/ToggleActionButtonGroup.svelte"
import { helpers } from "@budibase/shared-core" import { helpers } from "@budibase/shared-core"
import { SchemaUtils } from "@budibase/frontend-core" import { SchemaUtils } from "@budibase/frontend-core"
import { Icon, notifications, ActionButton, Popover } from "@budibase/bbui" import { Icon, notifications, ActionButton, Popover } from "@budibase/bbui"

View File

@ -1,8 +1,8 @@
<script> <script>
import { ActionButton, List, ListItem, Button } from "@budibase/bbui" import { ActionButton, List, ListItem, Button } from "@budibase/bbui"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
import { TriggerStepID } from "constants/backend/automations" import { TriggerStepID } from "@/constants/backend/automations"
import { automationStore, appStore } from "stores/builder" import { automationStore, appStore } from "@/stores/builder"
import { createEventDispatcher, getContext } from "svelte" import { createEventDispatcher, getContext } from "svelte"
const dispatch = createEventDispatcher() const dispatch = createEventDispatcher()

View File

@ -10,7 +10,7 @@
import { getContext } from "svelte" import { getContext } from "svelte"
import { ActionButton } from "@budibase/bbui" import { ActionButton } from "@budibase/bbui"
import ColumnsSettingContent from "./ColumnsSettingContent.svelte" import ColumnsSettingContent from "./ColumnsSettingContent.svelte"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
const { tableColumns, datasource } = getContext("grid") const { tableColumns, datasource } = getContext("grid")

View File

@ -6,14 +6,14 @@
tables, tables,
builderStore, builderStore,
viewsV2, viewsV2,
} from "stores/builder" } from "@/stores/builder"
import { TriggerStepID } from "constants/backend/automations" import { TriggerStepID } from "@/constants/backend/automations"
import { goto } from "@roxi/routify" import { goto } from "@roxi/routify"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
import MagicWand from "./magic-wand.svg" import MagicWand from "./magic-wand.svg"
import { AutoScreenTypes } from "constants" import { AutoScreenTypes } from "@/constants"
import CreateScreenModal from "pages/builder/app/[application]/design/_components/NewScreen/CreateScreenModal.svelte" import CreateScreenModal from "@/pages/builder/app/[application]/design/_components/NewScreen/CreateScreenModal.svelte"
import { getSequentialName } from "helpers/duplicate" import { getSequentialName } from "@/helpers/duplicate"
const { datasource } = getContext("grid") const { datasource } = getContext("grid")

View File

@ -10,9 +10,9 @@
ModalContent, ModalContent,
Input, Input,
} from "@budibase/bbui" } from "@budibase/bbui"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
import { getContext } from "svelte" import { getContext } from "svelte"
import { appStore, rowActions } from "stores/builder" import { appStore, rowActions } from "@/stores/builder"
import { goto, url } from "@roxi/routify" import { goto, url } from "@roxi/routify"
import { derived } from "svelte/store" import { derived } from "svelte/store"
@ -39,9 +39,9 @@
const toggleAction = async (action, enabled) => { const toggleAction = async (action, enabled) => {
if (enabled) { if (enabled) {
await rowActions.enableView(tableId, viewId, action.id) await rowActions.enableView(tableId, action.id, viewId)
} else { } else {
await rowActions.disableView(tableId, viewId, action.id) await rowActions.disableView(tableId, action.id, viewId)
} }
} }

View File

@ -1,7 +1,7 @@
<script> <script>
import { ActionButton, List, ListItem, Button } from "@budibase/bbui" import { ActionButton, List, ListItem, Button } from "@budibase/bbui"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
import { screenStore, appStore } from "stores/builder" import { screenStore, appStore } from "@/stores/builder"
import { getContext, createEventDispatcher } from "svelte" import { getContext, createEventDispatcher } from "svelte"
const { datasource } = getContext("grid") const { datasource } = getContext("grid")

View File

@ -1,7 +1,7 @@
<script> <script>
import { getContext } from "svelte" import { getContext } from "svelte"
import { ActionButton, Label } from "@budibase/bbui" import { ActionButton, Label } from "@budibase/bbui"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
const { const {
Constants, Constants,

View File

@ -2,7 +2,7 @@
import { getContext } from "svelte" import { getContext } from "svelte"
import { ActionButton, Select } from "@budibase/bbui" import { ActionButton, Select } from "@budibase/bbui"
import { canBeSortColumn } from "@budibase/frontend-core" import { canBeSortColumn } from "@budibase/frontend-core"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
const { sort, columns } = getContext("grid") const { sort, columns } = getContext("grid")

View File

@ -1,6 +1,6 @@
<script> <script>
import { ActionButton, Popover, Heading, Body, Button } from "@budibase/bbui" import { ActionButton, Popover, Heading, Body, Button } from "@budibase/bbui"
import { builderStore } from "stores/builder" import { builderStore } from "@/stores/builder"
let anchor let anchor
let open = false let open = false

View File

@ -7,9 +7,9 @@
Button, Button,
} from "@budibase/bbui" } from "@budibase/bbui"
import { CalculationType, canGroupBy, isNumeric } from "@budibase/types" import { CalculationType, canGroupBy, isNumeric } from "@budibase/types"
import InfoDisplay from "pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte" import InfoDisplay from "@/pages/builder/app/[application]/design/[screenId]/[componentId]/_components/Component/InfoDisplay.svelte"
import { getContext } from "svelte" import { getContext } from "svelte"
import DetailPopover from "components/common/DetailPopover.svelte" import DetailPopover from "@/components/common/DetailPopover.svelte"
const { definition, datasource, rows } = getContext("grid") const { definition, datasource, rows } = getContext("grid")
const calculationTypeOptions = [ const calculationTypeOptions = [

View File

@ -1,5 +1,5 @@
<script> <script>
import { roles } from "stores/builder" import { roles } from "@/stores/builder"
export let value export let value

View File

@ -1,6 +1,6 @@
import { FieldType } from "@budibase/types" import { FieldType } from "@budibase/types"
import { FIELDS } from "constants/backend" import { FIELDS } from "@/constants/backend"
import { tables } from "stores/builder" import { tables } from "@/stores/builder"
import { get as svelteGet } from "svelte/store" import { get as svelteGet } from "svelte/store"
// currently supported level of relationship depth (server side) // currently supported level of relationship depth (server side)

View File

@ -1,7 +1,7 @@
<script> <script>
import { Select, Label, notifications, ModalContent } from "@budibase/bbui" import { Select, Label, notifications, ModalContent } from "@budibase/bbui"
import { tables, views } from "stores/builder" import { tables, views } from "@/stores/builder"
import { FIELDS } from "constants/backend" import { FIELDS } from "@/constants/backend"
const CALCULATIONS = [ const CALCULATIONS = [
{ {

View File

@ -25,32 +25,32 @@
import { makePropSafe } from "@budibase/string-templates" import { makePropSafe } from "@budibase/string-templates"
import { createEventDispatcher, getContext, onMount } from "svelte" import { createEventDispatcher, getContext, onMount } from "svelte"
import { cloneDeep } from "lodash/fp" import { cloneDeep } from "lodash/fp"
import { tables, datasources } from "stores/builder" import { tables, datasources } from "@/stores/builder"
import { featureFlags } from "stores/portal" import { featureFlags } from "@/stores/portal"
import { TableNames, UNEDITABLE_USER_FIELDS } from "constants" import { TableNames, UNEDITABLE_USER_FIELDS } from "@/constants"
import { import {
FIELDS, FIELDS,
RelationshipType, RelationshipType,
PrettyRelationshipDefinitions, PrettyRelationshipDefinitions,
DB_TYPE_EXTERNAL, DB_TYPE_EXTERNAL,
} from "constants/backend" } from "@/constants/backend"
import { getAutoColumnInformation, buildAutoColumn } from "helpers/utils" import { getAutoColumnInformation, buildAutoColumn } from "@/helpers/utils"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
import AIFieldConfiguration from "components/common/AIFieldConfiguration.svelte" import AIFieldConfiguration from "@/components/common/AIFieldConfiguration.svelte"
import ModalBindableInput from "components/common/bindings/ModalBindableInput.svelte" import ModalBindableInput from "@/components/common/bindings/ModalBindableInput.svelte"
import { getBindings } from "components/backend/DataTable/formula" import { getBindings } from "@/components/backend/DataTable/formula"
import JSONSchemaModal from "./JSONSchemaModal.svelte" import JSONSchemaModal from "./JSONSchemaModal.svelte"
import { import {
BBReferenceFieldSubType, BBReferenceFieldSubType,
FieldType, FieldType,
SourceName, SourceName,
} from "@budibase/types" } from "@budibase/types"
import RelationshipSelector from "components/common/RelationshipSelector.svelte" import RelationshipSelector from "@/components/common/RelationshipSelector.svelte"
import { RowUtils, canBeDisplayColumn } from "@budibase/frontend-core" import { RowUtils, canBeDisplayColumn } from "@budibase/frontend-core"
import ServerBindingPanel from "components/common/bindings/ServerBindingPanel.svelte" import ServerBindingPanel from "@/components/common/bindings/ServerBindingPanel.svelte"
import OptionsEditor from "./OptionsEditor.svelte" import OptionsEditor from "./OptionsEditor.svelte"
import { isEnabled } from "helpers/featureFlags" import { isEnabled } from "@/helpers/featureFlags"
import { getUserBindings } from "dataBinding" import { getUserBindings } from "@/dataBinding"
export let field export let field

View File

@ -1,10 +1,10 @@
<script> <script>
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { tables } from "stores/builder" import { tables } from "@/stores/builder"
import { ModalContent, keepOpen, notifications } from "@budibase/bbui" import { ModalContent, keepOpen, notifications } from "@budibase/bbui"
import RowFieldControl from "../RowFieldControl.svelte" import RowFieldControl from "../RowFieldControl.svelte"
import { API } from "api" import { API } from "@/api"
import { FIELDS } from "constants/backend" import { FIELDS } from "@/constants/backend"
const FORMULA_TYPE = FIELDS.FORMULA.type const FORMULA_TYPE = FIELDS.FORMULA.type
const AI_TYPE = FIELDS.AI.type const AI_TYPE = FIELDS.AI.type

View File

@ -1,6 +1,6 @@
<script> <script>
import { createEventDispatcher } from "svelte" import { createEventDispatcher } from "svelte"
import { tables, roles } from "stores/builder" import { tables, roles } from "@/stores/builder"
import { import {
notifications, notifications,
keepOpen, keepOpen,
@ -9,8 +9,8 @@
Link, Link,
} from "@budibase/bbui" } from "@budibase/bbui"
import RowFieldControl from "../RowFieldControl.svelte" import RowFieldControl from "../RowFieldControl.svelte"
import { API } from "api" import { API } from "@/api"
import ErrorsBox from "components/common/ErrorsBox.svelte" import ErrorsBox from "@/components/common/ErrorsBox.svelte"
import { goto } from "@roxi/routify" import { goto } from "@roxi/routify"
export let row = {} export let row = {}

View File

@ -10,7 +10,7 @@
notifications, notifications,
Icon, Icon,
} from "@budibase/bbui" } from "@budibase/bbui"
import { tables, views } from "stores/builder" import { tables, views } from "@/stores/builder"
const CONDITIONS = [ const CONDITIONS = [
{ {

View File

@ -1,7 +1,7 @@
<script> <script>
import { Select, ModalContent, notifications } from "@budibase/bbui" import { Select, ModalContent, notifications } from "@budibase/bbui"
import { tables, views } from "stores/builder" import { tables, views } from "@/stores/builder"
import { FIELDS } from "constants/backend" import { FIELDS } from "@/constants/backend"
export let view = {} export let view = {}

View File

@ -1,5 +1,5 @@
<script> <script>
import Editor from "components/integration/QueryEditor.svelte" import Editor from "@/components/integration/QueryEditor.svelte"
import { import {
ModalContent, ModalContent,
Tabs, Tabs,
@ -12,8 +12,8 @@
ActionButton, ActionButton,
} from "@budibase/bbui" } from "@budibase/bbui"
import { onMount, createEventDispatcher } from "svelte" import { onMount, createEventDispatcher } from "svelte"
import { FIELDS } from "constants/backend" import { FIELDS } from "@/constants/backend"
import { generate } from "helpers/schemaGenerator" import { generate } from "@/helpers/schemaGenerator"
export let schema = {} export let schema = {}
export let json export let json

View File

@ -4,7 +4,7 @@
import { Icon, Popover } from "@budibase/bbui" import { Icon, Popover } from "@budibase/bbui"
import { tick } from "svelte" import { tick } from "svelte"
import { Constants } from "@budibase/frontend-core" import { Constants } from "@budibase/frontend-core"
import { getSequentialName } from "helpers/duplicate" import { getSequentialName } from "@/helpers/duplicate"
import { derived, writable } from "svelte/store" import { derived, writable } from "svelte/store"
export let constraints export let constraints

View File

@ -1,6 +1,6 @@
<script> <script>
import { getContext } from "svelte" import { getContext } from "svelte"
import CreateEditColumn from "components/backend/DataTable/modals/CreateEditColumn.svelte" import CreateEditColumn from "@/components/backend/DataTable/modals/CreateEditColumn.svelte"
const { datasource, rows } = getContext("grid") const { datasource, rows } = getContext("grid")

View File

@ -1,12 +1,12 @@
<script> <script>
import { isActive } from "@roxi/routify" import { isActive } from "@roxi/routify"
import { BUDIBASE_INTERNAL_DB_ID } from "constants/backend" import { BUDIBASE_INTERNAL_DB_ID } from "@/constants/backend"
import { contextMenuStore, userSelectedResourceMap } from "stores/builder" import { contextMenuStore, userSelectedResourceMap } from "@/stores/builder"
import NavItem from "components/common/NavItem.svelte" import NavItem from "@/components/common/NavItem.svelte"
import IntegrationIcon from "components/backend/DatasourceNavigator/IntegrationIcon.svelte" import IntegrationIcon from "@/components/backend/DatasourceNavigator/IntegrationIcon.svelte"
import { Icon } from "@budibase/bbui" import { Icon } from "@budibase/bbui"
import UpdateDatasourceModal from "components/backend/DatasourceNavigator/modals/UpdateDatasourceModal.svelte" import UpdateDatasourceModal from "@/components/backend/DatasourceNavigator/modals/UpdateDatasourceModal.svelte"
import DeleteConfirmationModal from "./DeleteConfirmationModal.svelte" import DeleteConfirmationModal from "./DeleteConfirmationModal.svelte"
export let datasource export let datasource

View File

@ -1,8 +1,8 @@
<script> <script>
import { goto } from "@roxi/routify" import { goto } from "@roxi/routify"
import { datasources } from "stores/builder" import { datasources } from "@/stores/builder"
import { notifications } from "@budibase/bbui" import { notifications } from "@budibase/bbui"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
export let datasource export let datasource

View File

@ -8,12 +8,12 @@
views, views,
viewsV2, viewsV2,
userSelectedResourceMap, userSelectedResourceMap,
} from "stores/builder" } from "@/stores/builder"
import QueryNavItem from "./QueryNavItem.svelte" import QueryNavItem from "./QueryNavItem.svelte"
import NavItem from "components/common/NavItem.svelte" import NavItem from "@/components/common/NavItem.svelte"
import TableNavigator from "components/backend/TableNavigator/TableNavigator.svelte" import TableNavigator from "@/components/backend/TableNavigator/TableNavigator.svelte"
import DatasourceNavItem from "./DatasourceNavItem/DatasourceNavItem.svelte" import DatasourceNavItem from "./DatasourceNavItem/DatasourceNavItem.svelte"
import { TableNames } from "constants" import { TableNames } from "@/constants"
import { enrichDatasources } from "./datasourceUtils" import { enrichDatasources } from "./datasourceUtils"
import { onMount } from "svelte" import { onMount } from "svelte"

View File

@ -1,6 +1,6 @@
<script> <script>
import { getIcon } from "./icons" import { getIcon } from "./icons"
import CustomSVG from "components/common/CustomSVG.svelte" import CustomSVG from "@/components/common/CustomSVG.svelte"
export let integrationType export let integrationType
export let schema export let schema

View File

@ -3,16 +3,16 @@
customQueryIconText, customQueryIconText,
customQueryIconColor, customQueryIconColor,
customQueryText, customQueryText,
} from "helpers/data/utils" } from "@/helpers/data/utils"
import { goto as gotoStore, isActive } from "@roxi/routify" import { goto as gotoStore, isActive } from "@roxi/routify"
import { import {
datasources, datasources,
queries, queries,
userSelectedResourceMap, userSelectedResourceMap,
contextMenuStore, contextMenuStore,
} from "stores/builder" } from "@/stores/builder"
import NavItem from "components/common/NavItem.svelte" import NavItem from "@/components/common/NavItem.svelte"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
import { notifications, Icon } from "@budibase/bbui" import { notifications, Icon } from "@budibase/bbui"
export let datasource export let datasource

View File

@ -1,4 +1,4 @@
import { TableNames } from "constants" import { TableNames } from "@/constants"
const showDatasourceOpen = ({ const showDatasourceOpen = ({
selected, selected,

View File

@ -16,7 +16,7 @@ import Firebase from "./Firebase.svelte"
import Redis from "./Redis.svelte" import Redis from "./Redis.svelte"
import Snowflake from "./Snowflake.svelte" import Snowflake from "./Snowflake.svelte"
import Custom from "./Custom.svelte" import Custom from "./Custom.svelte"
import { integrations } from "stores/builder" import { integrations } from "@/stores/builder"
import { get } from "svelte/store" import { get } from "svelte/store"
const ICONS = { const ICONS = {

View File

@ -12,7 +12,7 @@
TextArea, TextArea,
Dropzone, Dropzone,
} from "@budibase/bbui" } from "@budibase/bbui"
import { datasources, queries } from "stores/builder" import { datasources, queries } from "@/stores/builder"
import { writable } from "svelte/store" import { writable } from "svelte/store"
export let navigateDatasource = false export let navigateDatasource = false

View File

@ -1,8 +1,8 @@
<script> <script>
import { get } from "svelte/store" import { get } from "svelte/store"
import { datasources, integrations } from "stores/builder" import { datasources, integrations } from "@/stores/builder"
import { notifications, Input, ModalContent, Modal } from "@budibase/bbui" import { notifications, Input, ModalContent, Modal } from "@budibase/bbui"
import { integrationForDatasource } from "stores/selectors" import { integrationForDatasource } from "@/stores/selectors"
let error = "" let error = ""
let modal let modal
@ -33,7 +33,7 @@
...datasource, ...datasource,
name, name,
} }
await datasources.update({ await datasources.save({
datasource: updatedDatasource, datasource: updatedDatasource,
integration: integrationForDatasource(get(integrations), datasource), integration: integrationForDatasource(get(integrations), datasource),
}) })

View File

@ -12,6 +12,7 @@
export let name export let name
export let config export let config
export let showModal = () => {} export let showModal = () => {}
export let placeholder
const selectComponent = type => { const selectComponent = type => {
if (type === "object") { if (type === "object") {
@ -40,6 +41,7 @@
{name} {name}
{config} {config}
{showModal} {showModal}
{placeholder}
on:blur on:blur
on:change on:change
/> />

View File

@ -5,11 +5,12 @@
export let name export let name
export let value export let value
export let error export let error
export let placeholder
</script> </script>
<div class="form-row"> <div class="form-row">
<Label>{name}</Label> <Label>{name}</Label>
<TextArea on:blur on:change {type} {value} {error} /> <TextArea on:blur on:change {type} {value} {error} {placeholder} />
</div> </div>
<style> <style>

View File

@ -1,6 +1,6 @@
<script> <script>
import { Label, Button } from "@budibase/bbui" import { Label, Button } from "@budibase/bbui"
import KeyValueBuilder from "components/integration/KeyValueBuilder.svelte" import KeyValueBuilder from "@/components/integration/KeyValueBuilder.svelte"
export let name export let name
export let value export let value

View File

@ -6,6 +6,7 @@
export let value export let value
export let error export let error
export let config export let config
export let placeholder
</script> </script>
<div class="form-row"> <div class="form-row">
@ -17,6 +18,7 @@
{type} {type}
value={value || undefined} value={value || undefined}
{error} {error}
{placeholder}
/> />
</div> </div>

View File

@ -1,11 +1,12 @@
<script> <script>
import { Label, EnvDropdown } from "@budibase/bbui" import { Label, EnvDropdown } from "@budibase/bbui"
import { environment, licensing } from "stores/portal" import { environment, licensing } from "@/stores/portal"
export let type export let type
export let name export let name
export let value export let value
export let error export let error
export let placeholder
export let showModal = () => {} export let showModal = () => {}
async function handleUpgradePanel() { async function handleUpgradePanel() {
@ -22,6 +23,7 @@
type={type === "port" ? "string" : type} type={type === "port" ? "string" : type}
{value} {value}
{error} {error}
{placeholder}
variables={$environment.variables} variables={$environment.variables}
environmentVariablesEnabled={$licensing.environmentVariablesEnabled} environmentVariablesEnabled={$licensing.environmentVariablesEnabled}
{showModal} {showModal}

View File

@ -8,12 +8,12 @@
ModalContent, ModalContent,
} from "@budibase/bbui" } from "@budibase/bbui"
import { processStringSync } from "@budibase/string-templates" import { processStringSync } from "@budibase/string-templates"
import CreateEditVariableModal from "components/portal/environment/CreateEditVariableModal.svelte" import CreateEditVariableModal from "@/components/portal/environment/CreateEditVariableModal.svelte"
import ConfigInput from "./ConfigInput.svelte" import ConfigInput from "./ConfigInput.svelte"
import { createValidatedConfigStore } from "./stores/validatedConfig" import { createValidatedConfigStore } from "./stores/validatedConfig"
import { createValidatedNameStore } from "./stores/validatedName" import { createValidatedNameStore } from "./stores/validatedName"
import { get } from "svelte/store" import { get } from "svelte/store"
import { environment } from "stores/portal" import { environment } from "@/stores/portal"
export let integration export let integration
export let config export let config
@ -85,7 +85,7 @@
/> />
{/if} {/if}
{#each $configStore.validatedConfig as { type, key, value, error, name, hidden, config }} {#each $configStore.validatedConfig as { type, key, value, error, name, hidden, config, placeholder }}
{#if hidden === undefined || !eval(processStringSync(hidden, $configStore.config))} {#if hidden === undefined || !eval(processStringSync(hidden, $configStore.config))}
<ConfigInput <ConfigInput
{type} {type}
@ -93,6 +93,7 @@
{error} {error}
{name} {name}
{config} {config}
{placeholder}
showModal={() => showModal={() =>
showModal(newValue => configStore.updateFieldValue(key, newValue))} showModal(newValue => configStore.updateFieldValue(key, newValue))}
on:blur={() => configStore.markFieldActive(key)} on:blur={() => configStore.markFieldActive(key)}

View File

@ -1,6 +1,6 @@
import { derived, writable, get } from "svelte/store" import { derived, writable, get } from "svelte/store"
import { getValidatorFields } from "./validation" import { getValidatorFields } from "./validation"
import { capitalise } from "helpers" import { capitalise } from "@/helpers"
import { notifications } from "@budibase/bbui" import { notifications } from "@budibase/bbui"
import { object } from "yup" import { object } from "yup"
@ -114,6 +114,7 @@ export const createValidatedConfigStore = (integration, config) => {
value: getValue(), value: getValue(),
error: $errorsStore[key], error: $errorsStore[key],
name: capitalise(properties.display || key), name: capitalise(properties.display || key),
placeholder: properties.placeholder,
type: properties.type, type: properties.type,
hidden: properties.hidden, hidden: properties.hidden,
config: properties.config, config: properties.config,

View File

@ -1,5 +1,5 @@
import { derived, get, writable } from "svelte/store" import { derived, get, writable } from "svelte/store"
import { capitalise } from "helpers" import { capitalise } from "@/helpers"
import { string } from "yup" import { string } from "yup"
export const createValidatedNameStore = (name, isVisible) => { export const createValidatedNameStore = (name, isVisible) => {

View File

@ -2,7 +2,7 @@
import { import {
RelationshipType, RelationshipType,
PrettyRelationshipDefinitions, PrettyRelationshipDefinitions,
} from "constants/backend" } from "@/constants/backend"
import { import {
keepOpen, keepOpen,
Button, Button,
@ -13,10 +13,10 @@
Body, Body,
Helpers, Helpers,
} from "@budibase/bbui" } from "@budibase/bbui"
import { tables } from "stores/builder" import { tables } from "@/stores/builder"
import { RelationshipErrorChecker } from "./relationshipErrors" import { RelationshipErrorChecker } from "./relationshipErrors"
import { onMount } from "svelte" import { onMount } from "svelte"
import RelationshipSelector from "components/common/RelationshipSelector.svelte" import RelationshipSelector from "@/components/common/RelationshipSelector.svelte"
export let save export let save
export let datasource export let datasource

View File

@ -2,8 +2,8 @@
import { Modal } from "@budibase/bbui" import { Modal } from "@budibase/bbui"
import { get } from "svelte/store" import { get } from "svelte/store"
import CreateEditRelationship from "./CreateEditRelationship.svelte" import CreateEditRelationship from "./CreateEditRelationship.svelte"
import { integrations, datasources } from "stores/builder" import { integrations, datasources } from "@/stores/builder"
import { integrationForDatasource } from "stores/selectors" import { integrationForDatasource } from "@/stores/selectors"
export let datasource export let datasource
export let tables export let tables
@ -41,7 +41,7 @@
get(integrations), get(integrations),
datasource datasource
) )
await datasources.update({ datasource, integration }) await datasources.save({ datasource, integration })
await afterSave({ datasource, action }) await afterSave({ datasource, action })
} catch (err) { } catch (err) {

View File

@ -6,8 +6,8 @@
Layout, Layout,
ModalContent, ModalContent,
} from "@budibase/bbui" } from "@budibase/bbui"
import Spinner from "components/common/Spinner.svelte" import Spinner from "@/components/common/Spinner.svelte"
import { IntegrationTypes } from "constants/backend" import { IntegrationTypes } from "@/constants/backend"
import { createTableSelectionStore } from "./tableSelectionStore" import { createTableSelectionStore } from "./tableSelectionStore"
export let integration export let integration

View File

@ -1,6 +1,6 @@
import { derived, writable, get } from "svelte/store" import { derived, writable, get } from "svelte/store"
import { keepOpen, notifications } from "@budibase/bbui" import { keepOpen, notifications } from "@budibase/bbui"
import { datasources, tables } from "stores/builder" import { datasources, tables } from "@/stores/builder"
export const createTableSelectionStore = (integration, datasource) => { export const createTableSelectionStore = (integration, datasource) => {
const tableNamesStore = writable([]) const tableNamesStore = writable([])

View File

@ -2,7 +2,7 @@
import { getBezierPath, BaseEdge, EdgeLabelRenderer } from "@xyflow/svelte" import { getBezierPath, BaseEdge, EdgeLabelRenderer } from "@xyflow/svelte"
import { Icon, TooltipPosition } from "@budibase/bbui" import { Icon, TooltipPosition } from "@budibase/bbui"
import { getContext, onMount } from "svelte" import { getContext, onMount } from "svelte"
import { roles } from "stores/builder" import { roles } from "@/stores/builder"
export let sourceX export let sourceX
export let sourceY export let sourceY

View File

@ -23,9 +23,9 @@
import { setContext, tick } from "svelte" import { setContext, tick } from "svelte"
import Controls from "./Controls.svelte" import Controls from "./Controls.svelte"
import { GridResolution, MaxAutoZoom, ZoomDuration } from "./constants" import { GridResolution, MaxAutoZoom, ZoomDuration } from "./constants"
import { roles } from "stores/builder" import { roles } from "@/stores/builder"
import { Roles } from "constants/backend" import { Roles } from "@/constants/backend"
import { getSequentialName } from "helpers/duplicate" import { getSequentialName } from "@/helpers/duplicate"
import { derivedMemo } from "@budibase/frontend-core" import { derivedMemo } from "@budibase/frontend-core"
const flow = useSvelteFlow() const flow = useSvelteFlow()

View File

@ -10,8 +10,8 @@
} from "@budibase/bbui" } from "@budibase/bbui"
import { NodeWidth, NodeHeight } from "./constants" import { NodeWidth, NodeHeight } from "./constants"
import { getContext } from "svelte" import { getContext } from "svelte"
import { roles } from "stores/builder" import { roles } from "@/stores/builder"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
export let data export let data
export let id export let id

View File

@ -9,8 +9,8 @@ import {
EmptyStateID, EmptyStateID,
} from "./constants" } from "./constants"
import { getNodesBounds, Position } from "@xyflow/svelte" import { getNodesBounds, Position } from "@xyflow/svelte"
import { Roles } from "constants/backend" import { Roles } from "@/constants/backend"
import { roles } from "stores/builder" import { roles } from "@/stores/builder"
import { get } from "svelte/store" import { get } from "svelte/store"
// Calculates the bounds of all custom nodes // Calculates the bounds of all custom nodes

View File

@ -5,10 +5,10 @@
SourceName, SourceName,
} from "@budibase/types" } from "@budibase/types"
import { Select, Toggle, Multiselect, Label, Layout } from "@budibase/bbui" import { Select, Toggle, Multiselect, Label, Layout } from "@budibase/bbui"
import { DB_TYPE_INTERNAL } from "constants/backend" import { DB_TYPE_INTERNAL } from "@/constants/backend"
import { API } from "api" import { API } from "@/api"
import { parseFile } from "./utils" import { parseFile } from "./utils"
import { tables, datasources } from "stores/builder" import { tables, datasources } from "@/stores/builder"
let error = null let error = null
let fileName = null let fileName = null
@ -128,11 +128,7 @@
allValid = false allValid = false
if (rows.length > 0) { if (rows.length > 0) {
const response = await API.validateExistingTableImport({ const response = await API.validateExistingTableImport(rows, tableId)
rows,
tableId,
})
validation = response.schemaValidation validation = response.schemaValidation
invalidColumns = response.invalidColumns invalidColumns = response.invalidColumns
allValid = response.allValid allValid = response.allValid

View File

@ -1,9 +1,9 @@
<script> <script>
import { Select, Icon, Layout, Label } from "@budibase/bbui" import { Select, Icon, Layout, Label } from "@budibase/bbui"
import { FIELDS } from "constants/backend" import { FIELDS } from "@/constants/backend"
import { utils } from "@budibase/shared-core" import { utils } from "@budibase/shared-core"
import { canBeDisplayColumn } from "@budibase/frontend-core" import { canBeDisplayColumn } from "@budibase/frontend-core"
import { API } from "api" import { API } from "@/api"
import { parseFile } from "./utils" import { parseFile } from "./utils"
export let rows = [] export let rows = []
@ -147,7 +147,7 @@
loading = true loading = true
try { try {
if (rows.length > 0) { if (rows.length > 0) {
const response = await API.validateNewTableImport({ rows, schema }) const response = await API.validateNewTableImport(rows, schema)
validation = response.schemaValidation validation = response.schemaValidation
allValid = response.allValid allValid = response.allValid
errors = response.errors errors = response.errors

View File

@ -1,9 +1,9 @@
<script> <script>
import { goto, params } from "@roxi/routify" import { goto, params } from "@roxi/routify"
import { appStore, tables, datasources, screenStore } from "stores/builder" import { appStore, tables, datasources, screenStore } from "@/stores/builder"
import { InlineAlert, Link, Input, notifications } from "@budibase/bbui" import { InlineAlert, Link, Input, notifications } from "@budibase/bbui"
import ConfirmDialog from "components/common/ConfirmDialog.svelte" import ConfirmDialog from "@/components/common/ConfirmDialog.svelte"
import { DB_TYPE_EXTERNAL } from "constants/backend" import { DB_TYPE_EXTERNAL } from "@/constants/backend"
export let table export let table

View File

@ -1,6 +1,6 @@
<script> <script>
import { cloneDeep } from "lodash/fp" import { cloneDeep } from "lodash/fp"
import { tables, datasources } from "stores/builder" import { tables, datasources } from "@/stores/builder"
import { Input, Modal, ModalContent, notifications } from "@budibase/bbui" import { Input, Modal, ModalContent, notifications } from "@budibase/bbui"
export let table export let table

View File

@ -3,14 +3,14 @@
tables as tablesStore, tables as tablesStore,
userSelectedResourceMap, userSelectedResourceMap,
contextMenuStore, contextMenuStore,
} from "stores/builder" } from "@/stores/builder"
import { TableNames } from "constants" import { TableNames } from "@/constants"
import NavItem from "components/common/NavItem.svelte" import NavItem from "@/components/common/NavItem.svelte"
import { isActive } from "@roxi/routify" import { isActive } from "@roxi/routify"
import EditModal from "./EditModal.svelte" import EditModal from "./EditModal.svelte"
import DeleteConfirmationModal from "./DeleteConfirmationModal.svelte" import DeleteConfirmationModal from "./DeleteConfirmationModal.svelte"
import { Icon } from "@budibase/bbui" import { Icon } from "@budibase/bbui"
import { DB_TYPE_EXTERNAL } from "constants/backend" import { DB_TYPE_EXTERNAL } from "@/constants/backend"
export let table export let table
export let idx export let idx

Some files were not shown because too many files have changed in this diff Show More