Merge branch 'master' of github.com:Budibase/budibase into feature/layout-poc
This commit is contained in:
commit
d5e40fc090
|
@ -1 +1,6 @@
|
||||||
packages/server/builder/**/*.js
|
node_modules
|
||||||
|
public
|
||||||
|
dist
|
||||||
|
packages/server/builder
|
||||||
|
packages/server/coverage
|
||||||
|
packages/builder/.routify
|
|
@ -11,17 +11,22 @@
|
||||||
"sourceType": "module",
|
"sourceType": "module",
|
||||||
"allowImportExportEverywhere": true
|
"allowImportExportEverywhere": true
|
||||||
},
|
},
|
||||||
"ignorePatterns": ["node_modules", "dist", "public", "*.spec.js", "bundle.js"],
|
"ignorePatterns": [
|
||||||
"plugins": ["prettier", "svelte3"],
|
"node_modules",
|
||||||
|
"dist",
|
||||||
|
"public",
|
||||||
|
"*.spec.js",
|
||||||
|
"bundle.js"
|
||||||
|
],
|
||||||
|
"plugins": ["svelte3"],
|
||||||
"extends": ["eslint:recommended"],
|
"extends": ["eslint:recommended"],
|
||||||
"overrides": [
|
"overrides": [
|
||||||
{
|
{
|
||||||
"files": ["**/*.svelte"],
|
"files": ["*.svelte"],
|
||||||
"processor": "svelte3/svelte3"
|
"processor": "svelte3/svelte3"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"rules": {
|
"rules": {
|
||||||
"prettier/prettier": "error",
|
|
||||||
"no-self-assign": "off"
|
"no-self-assign": "off"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -88,3 +88,7 @@ hosting/.generated-envoy.dev.yaml
|
||||||
|
|
||||||
# swap files (linux)
|
# swap files (linux)
|
||||||
*.swp
|
*.swp
|
||||||
|
|
||||||
|
# Sublime text
|
||||||
|
*.sublime-project
|
||||||
|
*.sublime-workspace
|
|
@ -1,5 +1,8 @@
|
||||||
packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte
|
node_modules
|
||||||
public
|
public
|
||||||
dist
|
dist
|
||||||
|
*.spec.js
|
||||||
|
packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte
|
||||||
packages/server/builder
|
packages/server/builder
|
||||||
**/*.spec.js
|
packages/server/coverage
|
||||||
|
packages/builder/.routify
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "0.9.47",
|
"version": "0.9.48",
|
||||||
"npmClient": "yarn",
|
"npmClient": "yarn",
|
||||||
"packages": [
|
"packages": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
|
|
20
package.json
20
package.json
|
@ -4,14 +4,13 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rollup/plugin-json": "^4.0.2",
|
"@rollup/plugin-json": "^4.0.2",
|
||||||
"babel-eslint": "^10.0.3",
|
"babel-eslint": "^10.0.3",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^7.28.0",
|
||||||
"eslint-plugin-cypress": "^2.11.1",
|
"eslint-plugin-cypress": "^2.11.3",
|
||||||
"eslint-plugin-prettier": "^3.1.2",
|
"eslint-plugin-svelte3": "^3.2.0",
|
||||||
"eslint-plugin-svelte3": "^2.7.3",
|
|
||||||
"kill-port": "^1.6.1",
|
"kill-port": "^1.6.1",
|
||||||
"lerna": "3.14.1",
|
"lerna": "3.14.1",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.3.1",
|
||||||
"prettier-plugin-svelte": "^2.2.0",
|
"prettier-plugin-svelte": "^2.3.0",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"rollup-plugin-replace": "^2.2.0",
|
"rollup-plugin-replace": "^2.2.0",
|
||||||
"svelte": "^3.38.2"
|
"svelte": "^3.38.2"
|
||||||
|
@ -33,9 +32,12 @@
|
||||||
"dev": "yarn run kill-port && lerna link && lerna run --parallel dev:builder --concurrency 1",
|
"dev": "yarn run kill-port && lerna link && lerna run --parallel dev:builder --concurrency 1",
|
||||||
"dev:noserver": "lerna link && lerna run dev:stack:up && lerna run --parallel dev:builder --concurrency 1 --ignore @budibase/server --ignore @budibase/worker",
|
"dev:noserver": "lerna link && lerna run dev:stack:up && lerna run --parallel dev:builder --concurrency 1 --ignore @budibase/server --ignore @budibase/worker",
|
||||||
"test": "lerna run test",
|
"test": "lerna run test",
|
||||||
"lint": "eslint packages",
|
"lint:eslint": "eslint packages",
|
||||||
"lint:fix": "eslint --fix packages",
|
"lint:prettier": "prettier --check \"packages/**/*.{js,svelte}\"",
|
||||||
"format": "prettier --write \"{,!(node_modules)/**/}*.{js,jsx,svelte}\"",
|
"lint": "yarn run lint:eslint && yarn run lint:prettier",
|
||||||
|
"lint:fix:eslint": "eslint --fix packages",
|
||||||
|
"lint:fix:prettier": "prettier --write \"packages/**/*.{js,svelte}\"",
|
||||||
|
"lint:fix": "yarn run lint:fix:prettier && yarn run lint:fix:eslint",
|
||||||
"test:e2e": "lerna run cy:test",
|
"test:e2e": "lerna run cy:test",
|
||||||
"test:e2e:ci": "lerna run cy:ci",
|
"test:e2e:ci": "lerna run cy:ci",
|
||||||
"build:docker": "lerna run build:docker && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh && cd -",
|
"build:docker": "lerna run build:docker && cd hosting/scripts/linux/ && ./release-to-docker-hub.sh && cd -",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/auth",
|
"name": "@budibase/auth",
|
||||||
"version": "0.9.47",
|
"version": "0.9.48",
|
||||||
"description": "Authentication middlewares for budibase builder and apps",
|
"description": "Authentication middlewares for budibase builder and apps",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"author": "Budibase",
|
"author": "Budibase",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/bbui",
|
"name": "@budibase/bbui",
|
||||||
"description": "A UI solution used in the different Budibase projects.",
|
"description": "A UI solution used in the different Budibase projects.",
|
||||||
"version": "0.9.47",
|
"version": "0.9.48",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"svelte": "src/index.js",
|
"svelte": "src/index.js",
|
||||||
"module": "dist/bbui.es.js",
|
"module": "dist/bbui.es.js",
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
class:is-focused={open || focus}
|
class:is-focused={open || focus}
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
|
{id}
|
||||||
type="text"
|
type="text"
|
||||||
on:focus={() => (focus = true)}
|
on:focus={() => (focus = true)}
|
||||||
on:blur={() => (focus = false)}
|
on:blur={() => (focus = false)}
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
export let id = null
|
export let id = null
|
||||||
export let disabled = false
|
export let disabled = false
|
||||||
export let error = null
|
export let error = null
|
||||||
export let isPlaceholder = false
|
|
||||||
export let enableTime = true
|
export let enableTime = true
|
||||||
export let value = null
|
export let value = null
|
||||||
export let placeholder = null
|
export let placeholder = null
|
||||||
|
|
|
@ -30,9 +30,6 @@
|
||||||
"bmp",
|
"bmp",
|
||||||
"jfif",
|
"jfif",
|
||||||
]
|
]
|
||||||
const onChange = event => {
|
|
||||||
dispatch("change", event.target.checked)
|
|
||||||
}
|
|
||||||
|
|
||||||
const fieldId = id || generateID()
|
const fieldId = id || generateID()
|
||||||
let selectedImageIdx = 0
|
let selectedImageIdx = 0
|
||||||
|
@ -205,7 +202,8 @@
|
||||||
width="125"
|
width="125"
|
||||||
height="60"
|
height="60"
|
||||||
viewBox="0 0 199 97.7"
|
viewBox="0 0 199 97.7"
|
||||||
><defs>
|
>
|
||||||
|
<defs>
|
||||||
<style>
|
<style>
|
||||||
.cls-1,
|
.cls-1,
|
||||||
.cls-2 {
|
.cls-2 {
|
||||||
|
@ -267,9 +265,9 @@
|
||||||
<p
|
<p
|
||||||
class="spectrum-Body spectrum-Body--sizeS spectrum-IllustratedMessage-description"
|
class="spectrum-Body spectrum-Body--sizeS spectrum-IllustratedMessage-description"
|
||||||
>
|
>
|
||||||
<label for={fieldId} class="spectrum-Link"
|
<label for={fieldId} class="spectrum-Link">
|
||||||
>Select a file to upload</label
|
Select a file to upload
|
||||||
>
|
</label>
|
||||||
<br />
|
<br />
|
||||||
from your computer
|
from your computer
|
||||||
</p>
|
</p>
|
||||||
|
@ -368,22 +366,11 @@
|
||||||
.right {
|
.right {
|
||||||
right: 5px;
|
right: 5px;
|
||||||
}
|
}
|
||||||
i {
|
|
||||||
font-size: 2rem;
|
|
||||||
color: var(--ink);
|
|
||||||
}
|
|
||||||
i:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
color: var(--background);
|
|
||||||
}
|
|
||||||
.delete-button {
|
.delete-button {
|
||||||
transition: all 0.3s;
|
transition: all 0.3s;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
.delete-button i {
|
|
||||||
font-size: 2em;
|
|
||||||
}
|
|
||||||
.delete-button:hover {
|
.delete-button:hover {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: var(--red);
|
color: var(--red);
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
export let options = []
|
export let options = []
|
||||||
export let getOptionLabel = option => option
|
export let getOptionLabel = option => option
|
||||||
export let getOptionValue = option => option
|
export let getOptionValue = option => option
|
||||||
|
export let readonly = false
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
$: selectedLookupMap = getSelectedLookupMap(value)
|
$: selectedLookupMap = getSelectedLookupMap(value)
|
||||||
|
@ -72,6 +73,7 @@
|
||||||
{id}
|
{id}
|
||||||
{error}
|
{error}
|
||||||
{disabled}
|
{disabled}
|
||||||
|
{readonly}
|
||||||
{fieldText}
|
{fieldText}
|
||||||
{options}
|
{options}
|
||||||
isPlaceholder={!value?.length}
|
isPlaceholder={!value?.length}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
export let quiet = false
|
export let quiet = false
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
const onClick = e => {
|
const onClick = () => {
|
||||||
dispatch("click")
|
dispatch("click")
|
||||||
if (readonly) {
|
if (readonly) {
|
||||||
return
|
return
|
||||||
|
|
|
@ -32,7 +32,9 @@
|
||||||
{disabled}
|
{disabled}
|
||||||
/>
|
/>
|
||||||
<span class="spectrum-Radio-button" />
|
<span class="spectrum-Radio-button" />
|
||||||
<label class="spectrum-Radio-label">{getOptionLabel(option)}</label>
|
<label for="" class="spectrum-Radio-label">
|
||||||
|
{getOptionLabel(option)}
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
{/each}
|
{/each}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
import { createEventDispatcher } from "svelte"
|
import { createEventDispatcher } from "svelte"
|
||||||
|
|
||||||
export let value = false
|
export let value = false
|
||||||
export let error = null
|
|
||||||
export let id = null
|
export let id = null
|
||||||
export let text = null
|
export let text = null
|
||||||
export let disabled = false
|
export let disabled = false
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
<Multiselect
|
<Multiselect
|
||||||
{error}
|
{error}
|
||||||
{disabled}
|
{disabled}
|
||||||
|
{readonly}
|
||||||
{value}
|
{value}
|
||||||
{options}
|
{options}
|
||||||
{placeholder}
|
{placeholder}
|
||||||
|
|
|
@ -10,7 +10,11 @@
|
||||||
export let hoverable = false
|
export let hoverable = false
|
||||||
export let disabled = false
|
export let disabled = false
|
||||||
|
|
||||||
$: rotation = directions.indexOf(direction) * 45
|
$: rotation = getRotation(direction)
|
||||||
|
|
||||||
|
const getRotation = direction => {
|
||||||
|
return directions.indexOf(direction) * 45
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svg
|
<svg
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
export let size = "M"
|
export let size = "M"
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<label class={`spectrum-FieldLabel spectrum-FieldLabel--size${size}`}>
|
<label for="" class={`spectrum-FieldLabel spectrum-FieldLabel--size${size}`}>
|
||||||
<slot />
|
<slot />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
|
|
@ -4,14 +4,3 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Input label="Your Name" bind:value />
|
<Input label="Your Name" bind:value />
|
||||||
|
|
||||||
<style>
|
|
||||||
p {
|
|
||||||
font-size: var(--font-size-m);
|
|
||||||
margin: 0;
|
|
||||||
font-family: var(--font-sans);
|
|
||||||
font-weight: 400;
|
|
||||||
line-height: 1.5;
|
|
||||||
color: var(--grey-7);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
<script>
|
<script>
|
||||||
import { onMount } from "svelte"
|
|
||||||
import ModalContent from "./ModalContent.svelte"
|
import ModalContent from "./ModalContent.svelte"
|
||||||
import Input from "../Form/Input.svelte"
|
import Input from "../Form/Input.svelte"
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
export let duration = 1000
|
export let duration = 1000
|
||||||
export let width = false
|
export let width = false
|
||||||
export let sideLabel = false
|
export let sideLabel = false
|
||||||
export let overBackground = false
|
|
||||||
|
|
||||||
export let size = "M"
|
export let size = "M"
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
export let value
|
export let value
|
||||||
export let customRenderers = []
|
export let customRenderers = []
|
||||||
|
|
||||||
const plainTypes = ["string", "options", "number", "longform"]
|
|
||||||
const typeMap = {
|
const typeMap = {
|
||||||
boolean: BooleanRenderer,
|
boolean: BooleanRenderer,
|
||||||
datetime: DateTimeRenderer,
|
datetime: DateTimeRenderer,
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
import ActionButton from "../ActionButton/ActionButton.svelte"
|
import ActionButton from "../ActionButton/ActionButton.svelte"
|
||||||
|
|
||||||
export let selected
|
export let selected
|
||||||
export let onToggleSelection
|
|
||||||
export let onEdit
|
export let onEdit
|
||||||
export let allowSelectRows = false
|
export let allowSelectRows = false
|
||||||
export let allowEditRows = false
|
export let allowEditRows = false
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/builder",
|
"name": "@budibase/builder",
|
||||||
"version": "0.9.47",
|
"version": "0.9.48",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -65,10 +65,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/bbui": "^0.9.47",
|
"@budibase/bbui": "^0.9.48",
|
||||||
"@budibase/client": "^0.9.47",
|
"@budibase/client": "^0.9.48",
|
||||||
"@budibase/colorpicker": "1.1.2",
|
"@budibase/colorpicker": "1.1.2",
|
||||||
"@budibase/string-templates": "^0.9.47",
|
"@budibase/string-templates": "^0.9.48",
|
||||||
"@sentry/browser": "5.19.1",
|
"@sentry/browser": "5.19.1",
|
||||||
"@spectrum-css/page": "^3.0.1",
|
"@spectrum-css/page": "^3.0.1",
|
||||||
"@spectrum-css/vars": "^3.0.1",
|
"@spectrum-css/vars": "^3.0.1",
|
||||||
|
@ -97,8 +97,6 @@
|
||||||
"babel-jest": "^26.6.3",
|
"babel-jest": "^26.6.3",
|
||||||
"cypress": "^5.1.0",
|
"cypress": "^5.1.0",
|
||||||
"cypress-terminal-report": "^1.4.1",
|
"cypress-terminal-report": "^1.4.1",
|
||||||
"eslint": "^7.23.0",
|
|
||||||
"eslint-plugin-cypress": "^2.11.2",
|
|
||||||
"identity-obj-proxy": "^3.0.0",
|
"identity-obj-proxy": "^3.0.0",
|
||||||
"jest": "^26.6.3",
|
"jest": "^26.6.3",
|
||||||
"ncp": "^2.0.0",
|
"ncp": "^2.0.0",
|
||||||
|
|
|
@ -2,11 +2,9 @@ import { store } from "./index"
|
||||||
import { get as svelteGet } from "svelte/store"
|
import { get as svelteGet } from "svelte/store"
|
||||||
import { removeCookie, Cookies } from "./cookies"
|
import { removeCookie, Cookies } from "./cookies"
|
||||||
|
|
||||||
const apiCall = method => async (
|
const apiCall =
|
||||||
url,
|
method =>
|
||||||
body,
|
async (url, body, headers = { "Content-Type": "application/json" }) => {
|
||||||
headers = { "Content-Type": "application/json" }
|
|
||||||
) => {
|
|
||||||
headers["x-budibase-app-id"] = svelteGet(store).appId
|
headers["x-budibase-app-id"] = svelteGet(store).appId
|
||||||
const json = headers["Content-Type"] === "application/json"
|
const json = headers["Content-Type"] === "application/json"
|
||||||
const resp = await fetch(url, {
|
const resp = await fetch(url, {
|
||||||
|
|
|
@ -100,7 +100,8 @@ const automationActions = store => ({
|
||||||
},
|
},
|
||||||
deleteAutomationBlock: block => {
|
deleteAutomationBlock: block => {
|
||||||
store.update(state => {
|
store.update(state => {
|
||||||
const idx = state.selectedAutomation.automation.definition.steps.findIndex(
|
const idx =
|
||||||
|
state.selectedAutomation.automation.definition.steps.findIndex(
|
||||||
x => x.id === block.id
|
x => x.id === block.id
|
||||||
)
|
)
|
||||||
state.selectedAutomation.deleteBlock(block.id)
|
state.selectedAutomation.deleteBlock(block.id)
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
formattedTagline = formattedTagline.replace(
|
formattedTagline = formattedTagline.replace(
|
||||||
new RegExp(`{{\s*${inputPath}\s*}}`),
|
new RegExp(`{{\\s*${inputPath}\\s*}}`),
|
||||||
prettyValue
|
prettyValue
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,14 +84,4 @@
|
||||||
background-color: var(--grey-2);
|
background-color: var(--grey-2);
|
||||||
color: var(--grey-8);
|
color: var(--grey-8);
|
||||||
}
|
}
|
||||||
header i {
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
header i.delete {
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
header i.delete:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -53,8 +53,4 @@
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
margin-left: var(--spectrum-alias-item-padding-s);
|
margin-left: var(--spectrum-alias-item-padding-s);
|
||||||
}
|
}
|
||||||
i {
|
|
||||||
font-size: 20px;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { Button, Select, Label, Heading, Input } from "@budibase/bbui"
|
import { Button, Select, Input } from "@budibase/bbui"
|
||||||
|
|
||||||
export let value
|
export let value
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
import * as api from "./api"
|
import * as api from "./api"
|
||||||
import Table from "./Table.svelte"
|
import Table from "./Table.svelte"
|
||||||
import { TableNames } from "constants"
|
import { TableNames } from "constants"
|
||||||
import CreateEditUser from "./modals/CreateEditUser.svelte"
|
|
||||||
import CreateEditRow from "./modals/CreateEditRow.svelte"
|
import CreateEditRow from "./modals/CreateEditRow.svelte"
|
||||||
|
|
||||||
let hideAutocolumns = true
|
let hideAutocolumns = true
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
export let title
|
export let title
|
||||||
export let allowEditing = false
|
export let allowEditing = false
|
||||||
export let loading = false
|
export let loading = false
|
||||||
export let theme = "alpine"
|
|
||||||
export let hideAutocolumns
|
export let hideAutocolumns
|
||||||
export let rowCount
|
export let rowCount
|
||||||
|
|
||||||
|
@ -149,11 +148,6 @@
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.table-title h1 {
|
|
||||||
font-size: var(--font-size-m);
|
|
||||||
font-weight: 600;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.table-title > div {
|
.table-title > div {
|
||||||
margin-left: var(--spacing-xs);
|
margin-left: var(--spacing-xs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { Button, Icon } 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
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
]
|
]
|
||||||
|
|
||||||
export let view = {}
|
export let view = {}
|
||||||
export let onClosed
|
|
||||||
|
|
||||||
$: viewTable = $tables.list.find(({ _id }) => _id === $views.selected.tableId)
|
$: viewTable = $tables.list.find(({ _id }) => _id === $views.selected.tableId)
|
||||||
$: fields =
|
$: fields =
|
||||||
|
|
|
@ -33,7 +33,6 @@
|
||||||
let fieldDefinitions = cloneDeep(FIELDS)
|
let fieldDefinitions = cloneDeep(FIELDS)
|
||||||
const { hide } = getContext(Context.Modal)
|
const { hide } = getContext(Context.Modal)
|
||||||
|
|
||||||
export let onClosed = () => {}
|
|
||||||
export let field = {
|
export let field = {
|
||||||
type: "string",
|
type: "string",
|
||||||
constraints: fieldDefinitions.STRING.constraints,
|
constraints: fieldDefinitions.STRING.constraints,
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
options={$roles}
|
options={$roles}
|
||||||
getOptionLabel={role => role.name}
|
getOptionLabel={role => role.name}
|
||||||
getOptionValue={role => role._id}
|
getOptionValue={role => role._id}
|
||||||
|
disabled={!creating}
|
||||||
/>
|
/>
|
||||||
{#each customSchemaKeys as [key, meta]}
|
{#each customSchemaKeys as [key, meta]}
|
||||||
{#if !meta.autocolumn}
|
{#if !meta.autocolumn}
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
import { tables } from "stores/backend"
|
import { tables } from "stores/backend"
|
||||||
import analytics from "analytics"
|
import analytics from "analytics"
|
||||||
|
|
||||||
export let onClosed
|
|
||||||
|
|
||||||
let name
|
let name
|
||||||
let field
|
let field
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,6 @@
|
||||||
]
|
]
|
||||||
|
|
||||||
export let view = {}
|
export let view = {}
|
||||||
export let onClosed
|
|
||||||
|
|
||||||
$: viewTable = $tables.list.find(({ _id }) => _id === $views.selected.tableId)
|
$: viewTable = $tables.list.find(({ _id }) => _id === $views.selected.tableId)
|
||||||
$: fields = viewTable && Object.keys(viewTable.schema)
|
$: fields = viewTable && Object.keys(viewTable.schema)
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
<script>
|
<script>
|
||||||
import { Button, Select, ModalContent, notifications } from "@budibase/bbui"
|
import { Select, ModalContent, notifications } from "@budibase/bbui"
|
||||||
import { tables, views } from "stores/backend"
|
import { tables, views } from "stores/backend"
|
||||||
import { FIELDS } from "constants/backend"
|
import { FIELDS } from "constants/backend"
|
||||||
|
|
||||||
export let view = {}
|
export let view = {}
|
||||||
export let onClosed
|
|
||||||
|
|
||||||
$: viewTable = $tables.list.find(({ _id }) => _id === $views.selected.tableId)
|
$: viewTable = $tables.list.find(({ _id }) => _id === $views.selected.tableId)
|
||||||
$: fields =
|
$: fields =
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
export let resourceId
|
export let resourceId
|
||||||
export let permissions
|
export let permissions
|
||||||
export let onClosed
|
|
||||||
|
|
||||||
async function changePermission(level, role) {
|
async function changePermission(level, role) {
|
||||||
await permissionsStore.save({
|
await permissionsStore.save({
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import { goto } from "@roxi/routify"
|
import { goto } from "@roxi/routify"
|
||||||
import { datasources } from "stores/backend"
|
import { datasources } from "stores/backend"
|
||||||
import { notifications } from "@budibase/bbui"
|
import { notifications } from "@budibase/bbui"
|
||||||
import { ActionMenu, MenuItem, Icon, Popover } from "@budibase/bbui"
|
import { ActionMenu, MenuItem, Icon } from "@budibase/bbui"
|
||||||
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
import ConfirmDialog from "components/common/ConfirmDialog.svelte"
|
||||||
|
|
||||||
export let datasource
|
export let datasource
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
|
|
||||||
$: tableNames = $tables.list.map(table => table.name)
|
$: tableNames = $tables.list.map(table => table.name)
|
||||||
|
|
||||||
let modal
|
|
||||||
let name
|
let name
|
||||||
let dataImport
|
let dataImport
|
||||||
let error = ""
|
let error = ""
|
||||||
|
|
|
@ -117,22 +117,4 @@
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.actions {
|
|
||||||
padding: var(--spacing-xl);
|
|
||||||
display: grid;
|
|
||||||
grid-gap: var(--spacing-xl);
|
|
||||||
min-width: 400px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
margin: 0;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
gap: var(--spacing-m);
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
export let view
|
export let view
|
||||||
|
|
||||||
let editorModal
|
let editorModal
|
||||||
let confirmDeleteDialogue
|
|
||||||
let originalName = view.name
|
let originalName = view.name
|
||||||
let confirmDeleteDialog
|
let confirmDeleteDialog
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { join } from "lodash/fp"
|
import { join } from "lodash/fp"
|
||||||
import { TextArea, Label } from "@budibase/bbui"
|
import { TextArea } from "@budibase/bbui"
|
||||||
|
|
||||||
export let values
|
export let values
|
||||||
export let label
|
export let label
|
||||||
|
|
|
@ -59,9 +59,7 @@
|
||||||
<section>
|
<section>
|
||||||
<Heading size="XS">Columns</Heading>
|
<Heading size="XS">Columns</Heading>
|
||||||
<ul>
|
<ul>
|
||||||
{#each context.filter(context =>
|
{#each context.filter( context => context.readableBinding.match(searchRgx) ) as { readableBinding }}
|
||||||
context.readableBinding.match(searchRgx)
|
|
||||||
) as { readableBinding }}
|
|
||||||
<li
|
<li
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
value = addToText(value, getCaretPosition(), readableBinding)
|
value = addToText(value, getCaretPosition(), readableBinding)
|
||||||
|
@ -77,9 +75,7 @@
|
||||||
<section>
|
<section>
|
||||||
<Heading size="XS">Components</Heading>
|
<Heading size="XS">Components</Heading>
|
||||||
<ul>
|
<ul>
|
||||||
{#each instance.filter(instance =>
|
{#each instance.filter( instance => instance.readableBinding.match(searchRgx) ) as { readableBinding }}
|
||||||
instance.readableBinding.match(searchRgx)
|
|
||||||
) as { readableBinding }}
|
|
||||||
<li on:click={() => addToText(readableBinding)}>
|
<li on:click={() => addToText(readableBinding)}>
|
||||||
{readableBinding}
|
{readableBinding}
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
||||||
export let bindingContainer
|
|
||||||
export let bindableProperties = []
|
export let bindableProperties = []
|
||||||
export let validity = true
|
export let validity = true
|
||||||
export let value = ""
|
export let value = ""
|
||||||
|
@ -50,9 +49,7 @@
|
||||||
<div class="section">
|
<div class="section">
|
||||||
{#each categories as [categoryName, bindings]}
|
{#each categories as [categoryName, bindings]}
|
||||||
<Heading size="XS">{categoryName}</Heading>
|
<Heading size="XS">{categoryName}</Heading>
|
||||||
{#each bindings.filter(binding =>
|
{#each bindings.filter( binding => binding.label.match(searchRgx) ) as binding}
|
||||||
binding.label.match(searchRgx)
|
|
||||||
) as binding}
|
|
||||||
<div
|
<div
|
||||||
class="binding"
|
class="binding"
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
"",
|
"",
|
||||||
requiredValidator
|
requiredValidator
|
||||||
)
|
)
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
const [repeatPassword, _, repeatTouched] = createValidationStore(
|
const [repeatPassword, _, repeatTouched] = createValidationStore(
|
||||||
"",
|
"",
|
||||||
requiredValidator
|
requiredValidator
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
import { ModalContent } from "@budibase/bbui"
|
import { ModalContent } from "@budibase/bbui"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
import WebhookDisplay from "../automation/Shared/WebhookDisplay.svelte"
|
import WebhookDisplay from "../automation/Shared/WebhookDisplay.svelte"
|
||||||
import analytics from "analytics"
|
|
||||||
|
|
||||||
let webhookUrls = []
|
let webhookUrls = []
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
const POLL_INTERVAL = 10000
|
const POLL_INTERVAL = 10000
|
||||||
|
|
||||||
let loading = false
|
|
||||||
let feedbackModal
|
let feedbackModal
|
||||||
let deployments = []
|
let deployments = []
|
||||||
let poll
|
let poll
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import { onMount, onDestroy } from "svelte"
|
import { onMount, onDestroy } from "svelte"
|
||||||
import Spinner from "components/common/Spinner.svelte"
|
import Spinner from "components/common/Spinner.svelte"
|
||||||
import { slide } from "svelte/transition"
|
import { slide } from "svelte/transition"
|
||||||
import { Heading, Body, Button, Modal, ModalContent } from "@budibase/bbui"
|
import { Heading, Button, Modal, ModalContent } from "@budibase/bbui"
|
||||||
import api from "builderStore/api"
|
import api from "builderStore/api"
|
||||||
import { notifications } from "@budibase/bbui"
|
import { notifications } from "@budibase/bbui"
|
||||||
import CreateWebhookDeploymentModal from "./CreateWebhookDeploymentModal.svelte"
|
import CreateWebhookDeploymentModal from "./CreateWebhookDeploymentModal.svelte"
|
||||||
|
@ -160,11 +160,6 @@
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
|
||||||
margin-top: var(--spacing-xl);
|
|
||||||
margin-bottom: var(--spacing-s);
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
header {
|
||||||
padding-left: var(--spacing-l);
|
padding-left: var(--spacing-l);
|
||||||
padding-bottom: var(--spacing-xl);
|
padding-bottom: var(--spacing-xl);
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { onMount, onDestroy } from "svelte"
|
import { Icon, Modal, notifications, ModalContent } from "@budibase/bbui"
|
||||||
import {
|
|
||||||
Button,
|
|
||||||
Icon,
|
|
||||||
Modal,
|
|
||||||
notifications,
|
|
||||||
ModalContent,
|
|
||||||
} from "@budibase/bbui"
|
|
||||||
import { store } from "builderStore"
|
import { store } from "builderStore"
|
||||||
import { apps } from "stores/portal"
|
|
||||||
import api from "builderStore/api"
|
import api from "builderStore/api"
|
||||||
|
|
||||||
let revertModal
|
let revertModal
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
import { store, currentAsset, selectedComponent } from "builderStore"
|
import { store, currentAsset } from "builderStore"
|
||||||
import iframeTemplate from "./iframeTemplate"
|
import iframeTemplate from "./iframeTemplate"
|
||||||
import { Screen } from "builderStore/store/screenTemplates/utils/Screen"
|
import { Screen } from "builderStore/store/screenTemplates/utils/Screen"
|
||||||
import { FrontendTypes } from "constants"
|
import { FrontendTypes } from "constants"
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
export let component
|
export let component
|
||||||
|
|
||||||
let confirmDeleteDialog
|
let confirmDeleteDialog
|
||||||
let anchor
|
|
||||||
|
|
||||||
$: definition = store.actions.components.getDefinition(component?._component)
|
$: definition = store.actions.components.getDefinition(component?._component)
|
||||||
$: noChildrenAllowed = !component || !definition?.hasChildren
|
$: noChildrenAllowed = !component || !definition?.hasChildren
|
||||||
|
@ -115,12 +114,3 @@
|
||||||
okText="Delete Component"
|
okText="Delete Component"
|
||||||
onOk={deleteComponent}
|
onOk={deleteComponent}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<style>
|
|
||||||
hr {
|
|
||||||
margin: 8px 0;
|
|
||||||
background-color: var(--grey-4);
|
|
||||||
height: 1px;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { goto } from "@roxi/routify"
|
import { store } from "builderStore"
|
||||||
import { store, currentAssetId } from "builderStore"
|
|
||||||
import { DropEffect, DropPosition } from "./dragDropStore"
|
import { DropEffect, DropPosition } from "./dragDropStore"
|
||||||
import ComponentDropdownMenu from "../ComponentDropdownMenu.svelte"
|
import ComponentDropdownMenu from "../ComponentDropdownMenu.svelte"
|
||||||
import NavItem from "components/common/NavItem.svelte"
|
import NavItem from "components/common/NavItem.svelte"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<script>
|
<script>
|
||||||
export let categories = []
|
export let categories = []
|
||||||
export let selectedCategory = {}
|
export let selectedCategory = {}
|
||||||
export let onClick = category => {}
|
export let onClick = () => {}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
|
|
|
@ -131,8 +131,4 @@
|
||||||
min-height: 120px;
|
min-height: 120px;
|
||||||
font-size: var(--font-size-xs);
|
font-size: var(--font-size-xs);
|
||||||
}
|
}
|
||||||
|
|
||||||
option {
|
|
||||||
text-transform: capitalize;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -3,17 +3,10 @@
|
||||||
import { store, selectedComponent, currentAsset } from "builderStore"
|
import { store, selectedComponent, currentAsset } from "builderStore"
|
||||||
import { Tabs, Tab } from "@budibase/bbui"
|
import { Tabs, Tab } from "@budibase/bbui"
|
||||||
import { FrontendTypes } from "constants"
|
import { FrontendTypes } from "constants"
|
||||||
import CategoryTab from "./CategoryTab.svelte"
|
|
||||||
import DesignView from "./DesignView.svelte"
|
import DesignView from "./DesignView.svelte"
|
||||||
import SettingsView from "./SettingsView.svelte"
|
import SettingsView from "./SettingsView.svelte"
|
||||||
import { setWith } from "lodash"
|
import { setWith } from "lodash"
|
||||||
|
|
||||||
const categories = [
|
|
||||||
{ value: "settings", name: "Settings" },
|
|
||||||
{ value: "design", name: "Design" },
|
|
||||||
]
|
|
||||||
let selectedCategory = categories[0]
|
|
||||||
|
|
||||||
$: definition = store.actions.components.getDefinition(
|
$: definition = store.actions.components.getDefinition(
|
||||||
$selectedComponent._component
|
$selectedComponent._component
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
import { createEventDispatcher, onMount } from "svelte"
|
import { createEventDispatcher, onMount } from "svelte"
|
||||||
|
|
||||||
export let value
|
export let value
|
||||||
export let onChange
|
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
const getValue = component => `{{ literal ${makePropSafe(component._id)} }}`
|
const getValue = component => `{{ literal ${makePropSafe(component._id)} }}`
|
||||||
|
|
|
@ -103,8 +103,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetchQueryDefinition(query) {
|
function fetchQueryDefinition(query) {
|
||||||
const source = $datasources.list.find(ds => ds._id === query.datasourceId)
|
const source = $datasources.list.find(
|
||||||
.source
|
ds => ds._id === query.datasourceId
|
||||||
|
).source
|
||||||
return $integrations[source].query[query.queryVerb]
|
return $integrations[source].query[query.queryVerb]
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -264,12 +265,6 @@
|
||||||
background-color: var(--spectrum-global-color-gray-200);
|
background-color: var(--spectrum-global-color-gray-200);
|
||||||
}
|
}
|
||||||
|
|
||||||
.drawer-contents {
|
|
||||||
padding: var(--spacing-l);
|
|
||||||
height: calc(40vh - 2 * var(--spacing-l));
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
i {
|
i {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { Select, Label, Layout } from "@budibase/bbui"
|
import { Select, Layout } from "@budibase/bbui"
|
||||||
import { store, currentAsset } from "builderStore"
|
import { store, currentAsset } from "builderStore"
|
||||||
import { datasources, integrations, queries } from "stores/backend"
|
import { datasources, integrations, queries } from "stores/backend"
|
||||||
import { getBindableProperties } from "builderStore/dataBinding"
|
import { getBindableProperties } from "builderStore/dataBinding"
|
||||||
|
@ -18,8 +18,9 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
function fetchQueryDefinition(query) {
|
function fetchQueryDefinition(query) {
|
||||||
const source = $datasources.list.find(ds => ds._id === query.datasourceId)
|
const source = $datasources.list.find(
|
||||||
.source
|
ds => ds._id === query.datasourceId
|
||||||
|
).source
|
||||||
return $integrations[source].query[query.queryVerb]
|
return $integrations[source].query[query.queryVerb]
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -6,9 +6,6 @@
|
||||||
|
|
||||||
export let parameters
|
export let parameters
|
||||||
|
|
||||||
let bindingDrawer
|
|
||||||
let tempValue = parameters.url
|
|
||||||
|
|
||||||
$: bindings = getBindableProperties($currentAsset, $store.selectedComponentId)
|
$: bindings = getBindableProperties($currentAsset, $store.selectedComponentId)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
export let componentInstance = {}
|
export let componentInstance = {}
|
||||||
export let value = ""
|
export let value = ""
|
||||||
export let multiselect = false
|
|
||||||
export let placeholder
|
export let placeholder
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
} from "builderStore/dataBinding"
|
} from "builderStore/dataBinding"
|
||||||
import LuceneFilterBuilder from "./LuceneFilterBuilder.svelte"
|
import LuceneFilterBuilder from "./LuceneFilterBuilder.svelte"
|
||||||
import { currentAsset } from "builderStore"
|
import { currentAsset } from "builderStore"
|
||||||
import SaveFields from "../EventsEditor/actions/SaveFields.svelte"
|
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,9 @@
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { store, currentAsset } from "builderStore"
|
import { store, currentAsset } from "builderStore"
|
||||||
import { getBindableProperties } from "builderStore/dataBinding"
|
import { getBindableProperties } from "builderStore/dataBinding"
|
||||||
import { createEventDispatcher } from "svelte"
|
|
||||||
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
|
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
|
||||||
import { generate } from "shortid"
|
import { generate } from "shortid"
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
|
||||||
|
|
||||||
export let schemaFields
|
export let schemaFields
|
||||||
export let value
|
export let value
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
export let isMultiSelect = false
|
export let isMultiSelect = false
|
||||||
export let value = []
|
export let value = []
|
||||||
export let initialValue = ""
|
export let initialValue = ""
|
||||||
export let onChange = selected => {}
|
export let onChange = () => {}
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
if (!value && !!initialValue) {
|
if (!value && !!initialValue) {
|
||||||
|
@ -28,9 +28,6 @@
|
||||||
}
|
}
|
||||||
onChange(val)
|
onChange(val)
|
||||||
}
|
}
|
||||||
|
|
||||||
const checkSelected = val =>
|
|
||||||
isMultiSelect ? value.includes(val) : value === val
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flatbutton-group">
|
<div class="flatbutton-group">
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
export let componentInstance
|
export let componentInstance
|
||||||
export let value
|
export let value
|
||||||
export let onChange
|
|
||||||
export let type
|
export let type
|
||||||
|
|
||||||
$: form = findClosestMatchingComponent(
|
$: form = findClosestMatchingComponent(
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
let loading = false
|
let loading = false
|
||||||
|
|
||||||
function findIconByTerm(term) {
|
function findIconByTerm(term) {
|
||||||
const r = new RegExp(`\^${term}`, "i")
|
const r = new RegExp(`^${term}`, "i")
|
||||||
return icons.filter(i => r.test(i))
|
return icons.filter(i => r.test(i))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
loading = false
|
loading = false
|
||||||
}
|
}
|
||||||
|
|
||||||
async function searchForIcon(e) {
|
async function searchForIcon() {
|
||||||
currentPage = 1
|
currentPage = 1
|
||||||
loading = true
|
loading = true
|
||||||
filteredIcons = findIconByTerm(searchTerm)
|
filteredIcons = findIconByTerm(searchTerm)
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
export let componentInstance = {}
|
export let componentInstance = {}
|
||||||
export let value = ""
|
export let value = ""
|
||||||
export let multiselect = false
|
|
||||||
export let placeholder
|
export let placeholder
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { Button, Icon, Drawer, Body } from "@budibase/bbui"
|
import { Button, Icon, Drawer } from "@budibase/bbui"
|
||||||
import { store, currentAsset } from "builderStore"
|
import { store, currentAsset } from "builderStore"
|
||||||
import {
|
import {
|
||||||
getBindableProperties,
|
getBindableProperties,
|
||||||
|
|
|
@ -17,8 +17,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
const getControlProps = props => {
|
const getControlProps = props => {
|
||||||
const { label, key, control, ...otherProps } = props || {}
|
let controlProps = { ...(props || {}) }
|
||||||
return otherProps || {}
|
delete controlProps.label
|
||||||
|
delete controlProps.key
|
||||||
|
delete controlProps.control
|
||||||
|
return controlProps
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -44,13 +44,6 @@
|
||||||
{ key: "routing.roleId", label: "Access", control: RoleSelect },
|
{ key: "routing.roleId", label: "Access", control: RoleSelect },
|
||||||
{ key: "layoutId", label: "Layout", control: LayoutSelect },
|
{ key: "layoutId", label: "Layout", control: LayoutSelect },
|
||||||
]
|
]
|
||||||
const assetProps = [
|
|
||||||
"title",
|
|
||||||
"description",
|
|
||||||
"routing.route",
|
|
||||||
"layoutId",
|
|
||||||
"routing.roleId",
|
|
||||||
]
|
|
||||||
let confirmResetFieldsDialog
|
let confirmResetFieldsDialog
|
||||||
|
|
||||||
$: settings = componentDefinition?.settings ?? []
|
$: settings = componentDefinition?.settings ?? []
|
||||||
|
|
|
@ -46,8 +46,4 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: var(--spacing-m);
|
margin-bottom: var(--spacing-m);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ri-close-circle-fill {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -77,8 +77,6 @@
|
||||||
const refs = {}
|
const refs = {}
|
||||||
let editor
|
let editor
|
||||||
let updating_externally = false
|
let updating_externally = false
|
||||||
let marker
|
|
||||||
let error_line
|
|
||||||
let destroyed = false
|
let destroyed = false
|
||||||
|
|
||||||
$: if (editor && width && height) {
|
$: if (editor && width && height) {
|
||||||
|
|
|
@ -59,14 +59,6 @@
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.field {
|
|
||||||
margin-bottom: var(--spacing-m);
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
grid-gap: var(--spacing-m);
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.horizontal {
|
.horizontal {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 20% 1fr;
|
grid-template-columns: 20% 1fr;
|
||||||
|
|
|
@ -216,15 +216,6 @@
|
||||||
gap: var(--spacing-l);
|
gap: var(--spacing-l);
|
||||||
}
|
}
|
||||||
|
|
||||||
.button-container {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.delete {
|
|
||||||
align-self: center;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.viewer {
|
.viewer {
|
||||||
min-height: 200px;
|
min-height: 200px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { Button, Heading, Body } from "@budibase/bbui"
|
import { Button, Heading, Body } from "@budibase/bbui"
|
||||||
import AppCard from "./AppCard.svelte"
|
|
||||||
import Spinner from "components/common/Spinner.svelte"
|
import Spinner from "components/common/Spinner.svelte"
|
||||||
import api from "builderStore/api"
|
import api from "builderStore/api"
|
||||||
|
|
||||||
|
@ -27,7 +26,7 @@
|
||||||
<Heading size="S">{template.name}</Heading>
|
<Heading size="S">{template.name}</Heading>
|
||||||
<Body size="M" grey>{template.category}</Body>
|
<Body size="M" grey>{template.category}</Body>
|
||||||
<Body size="S" black>{template.description}</Body>
|
<Body size="S" black>{template.description}</Body>
|
||||||
<div><img src={template.image} width="100%" /></div>
|
<div><img alt="template" src={template.image} width="100%" /></div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<Button secondary on:click={() => onSelect(template)}>
|
<Button secondary on:click={() => onSelect(template)}>
|
||||||
Create
|
Create
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
<section>
|
<section>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<Layout>
|
<Layout>
|
||||||
<img src={Logo} />
|
<img alt="logo" src={Logo} />
|
||||||
<Layout gap="XS" justifyItems="center" noPadding>
|
<Layout gap="XS" justifyItems="center" noPadding>
|
||||||
<Heading size="M">Create an admin user</Heading>
|
<Heading size="M">Create an admin user</Heading>
|
||||||
<Body size="M" textAlign="center">
|
<Body size="M" textAlign="center">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<script>
|
<script>
|
||||||
import { store, automationStore } from "builderStore"
|
import { store, automationStore } from "builderStore"
|
||||||
import { roles } from "stores/backend"
|
import { roles } from "stores/backend"
|
||||||
import { Button, Icon, ActionGroup, Tabs, Tab } from "@budibase/bbui"
|
import { Icon, ActionGroup, Tabs, Tab } from "@budibase/bbui"
|
||||||
import DeployModal from "components/deploy/DeployModal.svelte"
|
import DeployModal from "components/deploy/DeployModal.svelte"
|
||||||
import RevertModal from "components/deploy/RevertModal.svelte"
|
import RevertModal from "components/deploy/RevertModal.svelte"
|
||||||
import { get } from "builderStore/api"
|
import { get } from "builderStore/api"
|
||||||
|
@ -113,11 +113,6 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
|
||||||
text-transform: none;
|
|
||||||
color: var(--grey-5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-nav {
|
.top-nav {
|
||||||
flex: 0 0 auto;
|
flex: 0 0 auto;
|
||||||
background: var(--background);
|
background: var(--background);
|
||||||
|
@ -150,23 +145,6 @@
|
||||||
margin-bottom: -1px;
|
margin-bottom: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.topnavitemright a {
|
|
||||||
cursor: pointer;
|
|
||||||
color: var(--grey-7);
|
|
||||||
margin: 0 12px 0 0;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
height: 24px;
|
|
||||||
width: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.topnavitemright a:hover {
|
|
||||||
color: var(--ink);
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
.home-logo {
|
.home-logo {
|
||||||
border-style: none;
|
border-style: none;
|
||||||
background-color: rgba(0, 0, 0, 0);
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
@ -184,12 +162,4 @@
|
||||||
.home-logo img {
|
.home-logo img {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
i {
|
|
||||||
font-size: 18px;
|
|
||||||
color: var(--grey-7);
|
|
||||||
}
|
|
||||||
i:hover {
|
|
||||||
color: var(--ink);
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -3,17 +3,6 @@
|
||||||
import { database, queries } from "stores/backend"
|
import { database, queries } from "stores/backend"
|
||||||
import QueryInterface from "components/integration/QueryViewer.svelte"
|
import QueryInterface from "components/integration/QueryViewer.svelte"
|
||||||
|
|
||||||
async function fetchQueryConfig() {
|
|
||||||
try {
|
|
||||||
const response = await api.get(`/api/integrations/${datasource.source}`)
|
|
||||||
const json = await response.json()
|
|
||||||
config = json.query
|
|
||||||
} catch (err) {
|
|
||||||
notifications.error("Error fetching datasource configuration options.")
|
|
||||||
console.error(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$: selectedQuery = $queries.list.find(
|
$: selectedQuery = $queries.list.find(
|
||||||
query => query._id === $queries.selected
|
query => query._id === $queries.selected
|
||||||
) || {
|
) || {
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
unsaved = true
|
unsaved = true
|
||||||
}
|
}
|
||||||
|
|
||||||
$beforeUrlChange((event, store) => {
|
$beforeUrlChange(() => {
|
||||||
if (unsaved) {
|
if (unsaved) {
|
||||||
notifications.error(
|
notifications.error(
|
||||||
"Unsaved changes. Please save your datasource configuration before leaving."
|
"Unsaved changes. Please save your datasource configuration before leaving."
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import { datasources, tables } from "stores/backend"
|
import { datasources } from "stores/backend"
|
||||||
import { goto } from "@roxi/routify"
|
import { goto } from "@roxi/routify"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
import { apps, organisation, auth } from "stores/portal"
|
import { apps, organisation, auth } from "stores/portal"
|
||||||
import { goto, redirect } from "@roxi/routify"
|
import { goto } from "@roxi/routify"
|
||||||
import { AppStatus } from "constants"
|
import { AppStatus } from "constants"
|
||||||
import { gradient } from "actions"
|
import { gradient } from "actions"
|
||||||
import UpdateUserInfoModal from "components/settings/UpdateUserInfoModal.svelte"
|
import UpdateUserInfoModal from "components/settings/UpdateUserInfoModal.svelte"
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
<Page>
|
<Page>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<Layout noPadding>
|
<Layout noPadding>
|
||||||
<img src={$organisation.logoUrl || Logo} />
|
<img alt="logo" src={$organisation.logoUrl || Logo} />
|
||||||
<div class="info-title">
|
<div class="info-title">
|
||||||
<Layout noPadding gap="XS">
|
<Layout noPadding gap="XS">
|
||||||
<Heading size="L">
|
<Heading size="L">
|
||||||
|
|
|
@ -35,8 +35,4 @@
|
||||||
.inner p {
|
.inner p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<Layout>
|
<Layout>
|
||||||
<Layout noPadding justifyItems="center">
|
<Layout noPadding justifyItems="center">
|
||||||
<img src={$organisation.logoUrl || Logo} />
|
<img alt="logo" src={$organisation.logoUrl || Logo} />
|
||||||
</Layout>
|
</Layout>
|
||||||
<Layout gap="XS" noPadding>
|
<Layout gap="XS" noPadding>
|
||||||
<Heading textAlign="center">Forgotten your password?</Heading>
|
<Heading textAlign="center">Forgotten your password?</Heading>
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<Layout>
|
<Layout>
|
||||||
<Layout noPadding justifyItems="center">
|
<Layout noPadding justifyItems="center">
|
||||||
<img src={Logo} />
|
<img alt="logo" src={Logo} />
|
||||||
<Heading>Sign in to Budibase</Heading>
|
<Heading>Sign in to Budibase</Heading>
|
||||||
</Layout>
|
</Layout>
|
||||||
<GoogleButton />
|
<GoogleButton />
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<section>
|
<section>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<Layout>
|
<Layout>
|
||||||
<img src={Logo} />
|
<img src={Logo} alt="logo" />
|
||||||
<Layout gap="XS" justifyItems="center" noPadding>
|
<Layout gap="XS" justifyItems="center" noPadding>
|
||||||
<Heading size="M">Accept Invitation</Heading>
|
<Heading size="M">Accept Invitation</Heading>
|
||||||
<Body textAlign="center" size="M">
|
<Body textAlign="center" size="M">
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
Heading,
|
Heading,
|
||||||
ActionButton,
|
ActionButton,
|
||||||
Body,
|
Body,
|
||||||
Page,
|
|
||||||
Layout,
|
Layout,
|
||||||
notifications,
|
notifications,
|
||||||
Tabs,
|
Tabs,
|
||||||
|
@ -128,7 +127,7 @@
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab title="Preview">
|
<Tab title="Preview">
|
||||||
<div class="preview">
|
<div class="preview">
|
||||||
<iframe srcdoc={previewContent} />
|
<iframe title="preview" srcdoc={previewContent} />
|
||||||
</div>
|
</div>
|
||||||
</Tab>
|
</Tab>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|
|
@ -51,10 +51,12 @@
|
||||||
|
|
||||||
if (response.status !== 200) {
|
if (response.status !== 200) {
|
||||||
const error = await response.text()
|
const error = await response.text()
|
||||||
let message = error
|
let message
|
||||||
try {
|
try {
|
||||||
message = JSON.parse(error).message
|
message = JSON.parse(error).message
|
||||||
} catch (err) {}
|
} catch (err) {
|
||||||
|
message = error
|
||||||
|
}
|
||||||
notifications.error(`Failed to save email settings, reason: ${message}`)
|
notifications.error(`Failed to save email settings, reason: ${message}`)
|
||||||
} else {
|
} else {
|
||||||
const json = await response.json()
|
const json = await response.json()
|
||||||
|
|
|
@ -33,12 +33,16 @@
|
||||||
role: {},
|
role: {},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$: defaultRoleId = $userFetch?.data?.builder?.global ? "ADMIN" : ""
|
||||||
// Merge the Apps list and the roles response to get something that makes sense for the table
|
// Merge the Apps list and the roles response to get something that makes sense for the table
|
||||||
$: appList = Object.keys($apps?.data).map(id => ({
|
$: appList = Object.keys($apps?.data).map(id => {
|
||||||
|
const role = $userFetch?.data?.roles?.[id] || defaultRoleId
|
||||||
|
return {
|
||||||
...$apps?.data?.[id],
|
...$apps?.data?.[id],
|
||||||
_id: id,
|
_id: id,
|
||||||
role: [$userFetch?.data?.roles?.[id]],
|
role: [role],
|
||||||
}))
|
}
|
||||||
|
})
|
||||||
let selectedApp
|
let selectedApp
|
||||||
|
|
||||||
const userFetch = fetchData(`/api/admin/users/${userId}`)
|
const userFetch = fetchData(`/api/admin/users/${userId}`)
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
notifications,
|
notifications,
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { auth, organisation } from "stores/portal"
|
import { auth, organisation } from "stores/portal"
|
||||||
import { post, get } from "builderStore/api"
|
import { post } from "builderStore/api"
|
||||||
import analytics from "analytics"
|
import analytics from "analytics"
|
||||||
import { writable } from "svelte/store"
|
import { writable } from "svelte/store"
|
||||||
import { redirect } from "@roxi/routify"
|
import { redirect } from "@roxi/routify"
|
||||||
|
|
|
@ -5,16 +5,9 @@
|
||||||
Body,
|
Body,
|
||||||
Button,
|
Button,
|
||||||
Divider,
|
Divider,
|
||||||
Label,
|
|
||||||
Input,
|
|
||||||
Toggle,
|
|
||||||
Dropzone,
|
|
||||||
notifications,
|
notifications,
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { auth, organisation } from "stores/portal"
|
import { auth } from "stores/portal"
|
||||||
import { post, get } from "builderStore/api"
|
|
||||||
import analytics from "analytics"
|
|
||||||
import { writable } from "svelte/store"
|
|
||||||
import { redirect } from "@roxi/routify"
|
import { redirect } from "@roxi/routify"
|
||||||
|
|
||||||
// Only admins allowed here
|
// Only admins allowed here
|
||||||
|
@ -27,7 +20,7 @@
|
||||||
async function updateBudibase() {
|
async function updateBudibase() {
|
||||||
try {
|
try {
|
||||||
notifications.info("Updating budibase..")
|
notifications.info("Updating budibase..")
|
||||||
const response = await fetch("/v1/update", {
|
await fetch("/v1/update", {
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: "Bearer budibase",
|
Authorization: "Bearer budibase",
|
||||||
},
|
},
|
||||||
|
|
|
@ -9,8 +9,7 @@ export const SOME_QUERY = {
|
||||||
queryVerb: "read",
|
queryVerb: "read",
|
||||||
schema: {},
|
schema: {},
|
||||||
name: "Speakers",
|
name: "Speakers",
|
||||||
_id:
|
_id: "query_datasource_04b003a7b4a8428eadd3bb2f7eae0255_bcb8ffc6fcbc484e8d63121fc0bf986f",
|
||||||
"query_datasource_04b003a7b4a8428eadd3bb2f7eae0255_bcb8ffc6fcbc484e8d63121fc0bf986f",
|
|
||||||
_rev: "2-941f8699eb0adf995f8bd59c99203b26",
|
_rev: "2-941f8699eb0adf995f8bd59c99203b26",
|
||||||
readable: true,
|
readable: true,
|
||||||
}
|
}
|
||||||
|
@ -75,8 +74,7 @@ export const SAVE_QUERY_RESPONSE = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
name: "Speakers",
|
name: "Speakers",
|
||||||
_id:
|
_id: "query_datasource_04b003a7b4a8428eadd3bb2f7eae0255_bcb8ffc6fcbc484e8d63121fc0bf986f",
|
||||||
"query_datasource_04b003a7b4a8428eadd3bb2f7eae0255_bcb8ffc6fcbc484e8d63121fc0bf986f",
|
|
||||||
_rev: "3-5a64adef494b1e9c793dc91b51ce73c6",
|
_rev: "3-5a64adef494b1e9c793dc91b51ce73c6",
|
||||||
readable: true,
|
readable: true,
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/cli",
|
"name": "@budibase/cli",
|
||||||
"version": "0.9.47",
|
"version": "0.9.48",
|
||||||
"description": "Budibase CLI, for developers, self hosting and migrations.",
|
"description": "Budibase CLI, for developers, self hosting and migrations.",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/client",
|
"name": "@budibase/client",
|
||||||
"version": "0.9.47",
|
"version": "0.9.48",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"module": "dist/budibase-client.js",
|
"module": "dist/budibase-client.js",
|
||||||
"main": "dist/budibase-client.js",
|
"main": "dist/budibase-client.js",
|
||||||
|
@ -18,9 +18,9 @@
|
||||||
"dev:builder": "rollup -cw"
|
"dev:builder": "rollup -cw"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/bbui": "^0.9.47",
|
"@budibase/bbui": "^0.9.48",
|
||||||
"@budibase/standard-components": "^0.9.47",
|
"@budibase/standard-components": "^0.9.48",
|
||||||
"@budibase/string-templates": "^0.9.47",
|
"@budibase/string-templates": "^0.9.48",
|
||||||
"regexparam": "^1.3.0",
|
"regexparam": "^1.3.0",
|
||||||
"shortid": "^2.2.15",
|
"shortid": "^2.2.15",
|
||||||
"svelte-spa-router": "^3.0.5"
|
"svelte-spa-router": "^3.0.5"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/server",
|
"name": "@budibase/server",
|
||||||
"email": "hi@budibase.com",
|
"email": "hi@budibase.com",
|
||||||
"version": "0.9.47",
|
"version": "0.9.48",
|
||||||
"description": "Budibase Web Server",
|
"description": "Budibase Web Server",
|
||||||
"main": "src/electron.js",
|
"main": "src/electron.js",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -55,9 +55,9 @@
|
||||||
"author": "Budibase",
|
"author": "Budibase",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/auth": "^0.9.47",
|
"@budibase/auth": "^0.9.48",
|
||||||
"@budibase/client": "^0.9.47",
|
"@budibase/client": "^0.9.48",
|
||||||
"@budibase/string-templates": "^0.9.47",
|
"@budibase/string-templates": "^0.9.48",
|
||||||
"@elastic/elasticsearch": "7.10.0",
|
"@elastic/elasticsearch": "7.10.0",
|
||||||
"@koa/router": "8.0.0",
|
"@koa/router": "8.0.0",
|
||||||
"@sendgrid/mail": "7.1.1",
|
"@sendgrid/mail": "7.1.1",
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.14.3",
|
"@babel/core": "^7.14.3",
|
||||||
"@babel/preset-env": "^7.14.4",
|
"@babel/preset-env": "^7.14.4",
|
||||||
"@budibase/standard-components": "^0.9.47",
|
"@budibase/standard-components": "^0.9.48",
|
||||||
"@jest/test-sequencer": "^24.8.0",
|
"@jest/test-sequencer": "^24.8.0",
|
||||||
"babel-jest": "^27.0.2",
|
"babel-jest": "^27.0.2",
|
||||||
"docker-compose": "^0.23.6",
|
"docker-compose": "^0.23.6",
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
export let title = ""
|
export let title = ""
|
||||||
export let favicon = ""
|
export let favicon = ""
|
||||||
|
|
||||||
export let appId
|
|
||||||
export let production
|
|
||||||
export let clientLibPath
|
export let clientLibPath
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ const {
|
||||||
getUserMetadataParams,
|
getUserMetadataParams,
|
||||||
} = require("../../db/utils")
|
} = require("../../db/utils")
|
||||||
const { InternalTables } = require("../../db/utils")
|
const { InternalTables } = require("../../db/utils")
|
||||||
const { addAppRoleToUser } = require("../../utilities/workerRequests")
|
|
||||||
const { getGlobalUsers } = require("../../utilities/global")
|
const { getGlobalUsers } = require("../../utilities/global")
|
||||||
const { getFullUser } = require("../../utilities/users")
|
const { getFullUser } = require("../../utilities/users")
|
||||||
|
|
||||||
|
@ -53,9 +52,6 @@ exports.updateMetadata = async function (ctx) {
|
||||||
const appId = ctx.appId
|
const appId = ctx.appId
|
||||||
const db = new CouchDB(appId)
|
const db = new CouchDB(appId)
|
||||||
const user = removeGlobalProps(ctx.request.body)
|
const user = removeGlobalProps(ctx.request.body)
|
||||||
if (user.roleId) {
|
|
||||||
await addAppRoleToUser(ctx, appId, user.roleId, user._id)
|
|
||||||
}
|
|
||||||
const metadata = {
|
const metadata = {
|
||||||
tableId: InternalTables.USER_METADATA,
|
tableId: InternalTables.USER_METADATA,
|
||||||
...user,
|
...user,
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue