Merge branch 'develop' into api-tests-generate-tenants
This commit is contained in:
commit
dd4525d837
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"npmClient": "yarn",
|
"npmClient": "yarn",
|
||||||
"packages": [
|
"packages": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/backend-core",
|
"name": "@budibase/backend-core",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"description": "Budibase backend core libraries used in server and worker",
|
"description": "Budibase backend core libraries used in server and worker",
|
||||||
"main": "dist/src/index.js",
|
"main": "dist/src/index.js",
|
||||||
"types": "dist/src/index.d.ts",
|
"types": "dist/src/index.d.ts",
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/nano": "10.1.1",
|
"@budibase/nano": "10.1.1",
|
||||||
"@budibase/types": "2.2.12-alpha.61",
|
"@budibase/types": "2.2.12-alpha.66",
|
||||||
"@shopify/jest-koa-mocks": "5.0.1",
|
"@shopify/jest-koa-mocks": "5.0.1",
|
||||||
"@techpass/passport-openidconnect": "0.3.2",
|
"@techpass/passport-openidconnect": "0.3.2",
|
||||||
"aws-cloudfront-sign": "2.2.0",
|
"aws-cloudfront-sign": "2.2.0",
|
||||||
|
|
|
@ -310,6 +310,11 @@
|
||||||
qs "^6.11.0"
|
qs "^6.11.0"
|
||||||
tough-cookie "^4.1.2"
|
tough-cookie "^4.1.2"
|
||||||
|
|
||||||
|
"@budibase/types@2.2.12-alpha.62":
|
||||||
|
version "2.2.12-alpha.62"
|
||||||
|
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.62.tgz#385ef000610d5c00b83cb2eafda2bd63c86b7f3f"
|
||||||
|
integrity sha512-idlhB4fSyBCEDWsVvQvdmN9Dg9VAEwxZ8TLE9pGnXIRZPg48MKXPNn5AUT9zv6cDlbQdlU2tFFF8st9b6lyLuw==
|
||||||
|
|
||||||
"@cspotcode/source-map-support@^0.8.0":
|
"@cspotcode/source-map-support@^0.8.0":
|
||||||
version "0.8.1"
|
version "0.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
|
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
|
||||||
|
@ -2773,9 +2778,9 @@ http-assert@^1.3.0:
|
||||||
http-errors "~1.8.0"
|
http-errors "~1.8.0"
|
||||||
|
|
||||||
http-cache-semantics@^4.0.0:
|
http-cache-semantics@^4.0.0:
|
||||||
version "4.1.0"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
|
||||||
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
|
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
|
||||||
|
|
||||||
http-cookie-agent@^4.0.2:
|
http-cookie-agent@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
|
|
|
@ -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": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"svelte": "src/index.js",
|
"svelte": "src/index.js",
|
||||||
"module": "dist/bbui.es.js",
|
"module": "dist/bbui.es.js",
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@adobe/spectrum-css-workflow-icons": "1.2.1",
|
"@adobe/spectrum-css-workflow-icons": "1.2.1",
|
||||||
"@budibase/string-templates": "2.2.12-alpha.61",
|
"@budibase/string-templates": "2.2.12-alpha.66",
|
||||||
"@spectrum-css/accordion": "3.0.24",
|
"@spectrum-css/accordion": "3.0.24",
|
||||||
"@spectrum-css/actionbutton": "1.0.1",
|
"@spectrum-css/actionbutton": "1.0.1",
|
||||||
"@spectrum-css/actiongroup": "1.0.1",
|
"@spectrum-css/actiongroup": "1.0.1",
|
||||||
|
|
|
@ -86,7 +86,7 @@
|
||||||
}
|
}
|
||||||
.is-selected:not(.spectrum-ActionButton--emphasized):not(.spectrum-ActionButton--quiet) {
|
.is-selected:not(.spectrum-ActionButton--emphasized):not(.spectrum-ActionButton--quiet) {
|
||||||
background: var(--spectrum-global-color-gray-300);
|
background: var(--spectrum-global-color-gray-300);
|
||||||
border-color: var(--spectrum-global-color-gray-700);
|
border-color: var(--spectrum-global-color-gray-500);
|
||||||
}
|
}
|
||||||
.noPadding {
|
.noPadding {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
|
@ -1,11 +1,21 @@
|
||||||
export default function positionDropdown(
|
export default function positionDropdown(element, opts) {
|
||||||
element,
|
let resizeObserver
|
||||||
{ anchor, align, maxWidth, useAnchorWidth, offset = 5 }
|
let latestOpts = opts
|
||||||
) {
|
|
||||||
const update = () => {
|
// We need a static reference to this function so that we can properly
|
||||||
|
// clean up the scroll listener.
|
||||||
|
const scrollUpdate = () => {
|
||||||
|
updatePosition(latestOpts)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Updates the position of the dropdown
|
||||||
|
const updatePosition = opts => {
|
||||||
|
const { anchor, align, maxWidth, useAnchorWidth, offset = 5 } = opts
|
||||||
if (!anchor) {
|
if (!anchor) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Compute bounds
|
||||||
const anchorBounds = anchor.getBoundingClientRect()
|
const anchorBounds = anchor.getBoundingClientRect()
|
||||||
const elementBounds = element.getBoundingClientRect()
|
const elementBounds = element.getBoundingClientRect()
|
||||||
let styles = {
|
let styles = {
|
||||||
|
@ -51,26 +61,47 @@ export default function positionDropdown(
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The actual svelte action callback which creates observers on the relevant
|
||||||
|
// DOM elements
|
||||||
|
const update = newOpts => {
|
||||||
|
latestOpts = newOpts
|
||||||
|
|
||||||
|
// Cleanup old state
|
||||||
|
if (resizeObserver) {
|
||||||
|
resizeObserver.disconnect()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do nothing if no anchor
|
||||||
|
const { anchor } = newOpts
|
||||||
|
if (!anchor) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Observe both anchor and element and resize the popover as appropriate
|
||||||
|
resizeObserver = new ResizeObserver(() => updatePosition(newOpts))
|
||||||
|
resizeObserver.observe(anchor)
|
||||||
|
resizeObserver.observe(element)
|
||||||
|
resizeObserver.observe(document.body)
|
||||||
|
}
|
||||||
|
|
||||||
// Apply initial styles which don't need to change
|
// Apply initial styles which don't need to change
|
||||||
element.style.position = "absolute"
|
element.style.position = "absolute"
|
||||||
element.style.zIndex = "9999"
|
element.style.zIndex = "9999"
|
||||||
|
|
||||||
// Observe both anchor and element and resize the popover as appropriate
|
// Set up a scroll listener
|
||||||
const resizeObserver = new ResizeObserver(entries => {
|
document.addEventListener("scroll", scrollUpdate, true)
|
||||||
entries.forEach(update)
|
|
||||||
})
|
|
||||||
if (anchor) {
|
|
||||||
resizeObserver.observe(anchor)
|
|
||||||
}
|
|
||||||
resizeObserver.observe(element)
|
|
||||||
resizeObserver.observe(document.body)
|
|
||||||
|
|
||||||
document.addEventListener("scroll", update, true)
|
// Perform initial update
|
||||||
|
update(opts)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
update,
|
||||||
destroy() {
|
destroy() {
|
||||||
resizeObserver.disconnect()
|
// Cleanup
|
||||||
document.removeEventListener("scroll", update, true)
|
if (resizeObserver) {
|
||||||
|
resizeObserver.disconnect()
|
||||||
|
}
|
||||||
|
document.removeEventListener("scroll", scrollUpdate, true)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,30 +57,28 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if open}
|
{#if open}
|
||||||
{#key anchor}
|
<Portal {target}>
|
||||||
<Portal {target}>
|
<div
|
||||||
<div
|
tabindex="0"
|
||||||
tabindex="0"
|
use:positionDropdown={{
|
||||||
use:positionDropdown={{
|
anchor,
|
||||||
anchor,
|
align,
|
||||||
align,
|
maxWidth,
|
||||||
maxWidth,
|
useAnchorWidth,
|
||||||
useAnchorWidth,
|
offset,
|
||||||
offset,
|
}}
|
||||||
}}
|
use:clickOutside={{
|
||||||
use:clickOutside={{
|
callback: dismissible ? handleOutsideClick : () => {},
|
||||||
callback: dismissible ? handleOutsideClick : () => {},
|
anchor,
|
||||||
anchor,
|
}}
|
||||||
}}
|
on:keydown={handleEscape}
|
||||||
on:keydown={handleEscape}
|
class="spectrum-Popover is-open"
|
||||||
class="spectrum-Popover is-open"
|
role="presentation"
|
||||||
role="presentation"
|
transition:fly|local={{ y: -20, duration: 200 }}
|
||||||
transition:fly|local={{ y: -20, duration: 200 }}
|
>
|
||||||
>
|
<slot />
|
||||||
<slot />
|
</div>
|
||||||
</div>
|
</Portal>
|
||||||
</Portal>
|
|
||||||
{/key}
|
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/builder",
|
"name": "@budibase/builder",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -58,10 +58,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/bbui": "2.2.12-alpha.61",
|
"@budibase/bbui": "2.2.12-alpha.66",
|
||||||
"@budibase/client": "2.2.12-alpha.61",
|
"@budibase/client": "2.2.12-alpha.66",
|
||||||
"@budibase/frontend-core": "2.2.12-alpha.61",
|
"@budibase/frontend-core": "2.2.12-alpha.66",
|
||||||
"@budibase/string-templates": "2.2.12-alpha.61",
|
"@budibase/string-templates": "2.2.12-alpha.66",
|
||||||
"@fortawesome/fontawesome-svg-core": "^6.2.1",
|
"@fortawesome/fontawesome-svg-core": "^6.2.1",
|
||||||
"@fortawesome/free-brands-svg-icons": "^6.2.1",
|
"@fortawesome/free-brands-svg-icons": "^6.2.1",
|
||||||
"@fortawesome/free-solid-svg-icons": "^6.2.1",
|
"@fortawesome/free-solid-svg-icons": "^6.2.1",
|
||||||
|
|
|
@ -177,7 +177,7 @@
|
||||||
<EnvDropdown
|
<EnvDropdown
|
||||||
showModal={() => showModal(configKey)}
|
showModal={() => showModal(configKey)}
|
||||||
variables={$environment.variables}
|
variables={$environment.variables}
|
||||||
type={schema[configKey].type}
|
type={configKey === "port" ? "string" : schema[configKey].type}
|
||||||
on:change
|
on:change
|
||||||
bind:value={config[configKey]}
|
bind:value={config[configKey]}
|
||||||
error={$validation.errors[configKey]}
|
error={$validation.errors[configKey]}
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
let bindingDrawer
|
let bindingDrawer
|
||||||
|
let valid = true
|
||||||
|
|
||||||
$: readableValue = runtimeToReadableBinding(bindings, value)
|
$: readableValue = runtimeToReadableBinding(bindings, value)
|
||||||
$: tempValue = readableValue
|
$: tempValue = readableValue
|
||||||
|
@ -76,12 +77,15 @@
|
||||||
<svelte:fragment slot="description">
|
<svelte:fragment slot="description">
|
||||||
Add the objects on the left to enrich your text.
|
Add the objects on the left to enrich your text.
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
<Button cta slot="buttons" on:click={handleClose}>Save</Button>
|
<Button cta slot="buttons" on:click={handleClose} disabled={!valid}>
|
||||||
|
Save
|
||||||
|
</Button>
|
||||||
<svelte:component
|
<svelte:component
|
||||||
this={panel}
|
this={panel}
|
||||||
slot="body"
|
slot="body"
|
||||||
value={readableValue}
|
value={readableValue}
|
||||||
close={handleClose}
|
close={handleClose}
|
||||||
|
bind:valid
|
||||||
on:change={event => (tempValue = event.detail)}
|
on:change={event => (tempValue = event.detail)}
|
||||||
{bindings}
|
{bindings}
|
||||||
{allowJS}
|
{allowJS}
|
||||||
|
|
|
@ -118,6 +118,10 @@
|
||||||
const getAllBindings = (bindings, eventContextBindings, actions) => {
|
const getAllBindings = (bindings, eventContextBindings, actions) => {
|
||||||
let allBindings = eventContextBindings.concat(bindings)
|
let allBindings = eventContextBindings.concat(bindings)
|
||||||
|
|
||||||
|
if (!actions) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure bindings are generated for all "update state" action keys
|
// Ensure bindings are generated for all "update state" action keys
|
||||||
actions
|
actions
|
||||||
.filter(action => {
|
.filter(action => {
|
||||||
|
|
|
@ -108,50 +108,52 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#key tourStepKey}
|
{#if tourKey}
|
||||||
<Popover
|
{#key tourStepKey}
|
||||||
align={tourStep?.align}
|
<Popover
|
||||||
bind:this={popover}
|
align={tourStep?.align}
|
||||||
anchor={popoverAnchor}
|
bind:this={popover}
|
||||||
maxWidth={300}
|
anchor={popoverAnchor}
|
||||||
dismissible={false}
|
maxWidth={300}
|
||||||
offset={15}
|
dismissible={false}
|
||||||
>
|
offset={15}
|
||||||
<div class="tour-content">
|
>
|
||||||
<Layout noPadding gap="M">
|
<div class="tour-content">
|
||||||
<div class="tour-header">
|
<Layout noPadding gap="M">
|
||||||
<Heading size="XS">{tourStep?.title || "-"}</Heading>
|
<div class="tour-header">
|
||||||
<div>{`${tourStepIdx + 1}/${tourSteps?.length}`}</div>
|
<Heading size="XS">{tourStep?.title || "-"}</Heading>
|
||||||
</div>
|
<div>{`${tourStepIdx + 1}/${tourSteps?.length}`}</div>
|
||||||
<Body size="S">
|
|
||||||
<span class="tour-body">
|
|
||||||
{#if tourStep.layout}
|
|
||||||
<svelte:component this={tourStep.layout} />
|
|
||||||
{:else}
|
|
||||||
{tourStep?.body || ""}
|
|
||||||
{/if}
|
|
||||||
</span>
|
|
||||||
</Body>
|
|
||||||
<div class="tour-footer">
|
|
||||||
<div class="tour-navigation">
|
|
||||||
{#if tourStepIdx > 0}
|
|
||||||
<Button
|
|
||||||
secondary
|
|
||||||
on:click={previousStep}
|
|
||||||
disabled={tourStepIdx == 0}
|
|
||||||
>
|
|
||||||
<div>Back</div>
|
|
||||||
</Button>
|
|
||||||
{/if}
|
|
||||||
<Button cta on:click={nextStep}>
|
|
||||||
<div>{lastStep ? "Finish" : "Next"}</div>
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<Body size="S">
|
||||||
</Layout>
|
<span class="tour-body">
|
||||||
</div>
|
{#if tourStep.layout}
|
||||||
</Popover>
|
<svelte:component this={tourStep.layout} />
|
||||||
{/key}
|
{:else}
|
||||||
|
{tourStep?.body || ""}
|
||||||
|
{/if}
|
||||||
|
</span>
|
||||||
|
</Body>
|
||||||
|
<div class="tour-footer">
|
||||||
|
<div class="tour-navigation">
|
||||||
|
{#if tourStepIdx > 0}
|
||||||
|
<Button
|
||||||
|
secondary
|
||||||
|
on:click={previousStep}
|
||||||
|
disabled={tourStepIdx == 0}
|
||||||
|
>
|
||||||
|
<div>Back</div>
|
||||||
|
</Button>
|
||||||
|
{/if}
|
||||||
|
<Button cta on:click={nextStep}>
|
||||||
|
<div>{lastStep ? "Finish" : "Next"}</div>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Layout>
|
||||||
|
</div>
|
||||||
|
</Popover>
|
||||||
|
{/key}
|
||||||
|
{/if}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.tour-content {
|
.tour-content {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<div>
|
<div>
|
||||||
In this section you can mange the data for your app:
|
In this section you can manage the data for your app:
|
||||||
<ul class="feature-list">
|
<ul class="feature-list">
|
||||||
<li>Connect data sources</li>
|
<li>Connect data sources</li>
|
||||||
<li>Edit data</li>
|
<li>Edit data</li>
|
||||||
|
|
|
@ -138,7 +138,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
$goto(`/builder/app/${createdApp.instance._id}`)
|
$goto(`/builder/app/${createdApp.instance._id}`)
|
||||||
// apps.load()
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
creating = false
|
creating = false
|
||||||
console.error(error)
|
console.error(error)
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
<span class="back-chev" on:click={() => $goto("../")}>
|
<span class="back-chev" on:click={() => $goto("../")}>
|
||||||
<Icon name="ChevronLeft" size="XL" />
|
<Icon name="ChevronLeft" size="XL" />
|
||||||
</span>
|
</span>
|
||||||
Forgotten your password?
|
Forgot your password?
|
||||||
</div>
|
</div>
|
||||||
</Heading>
|
</Heading>
|
||||||
</span>
|
</span>
|
||||||
|
@ -83,7 +83,12 @@
|
||||||
</FancyForm>
|
</FancyForm>
|
||||||
</Layout>
|
</Layout>
|
||||||
<div>
|
<div>
|
||||||
<Button disabled={!email || error || submitted} cta on:click={forgot}>
|
<Button
|
||||||
|
size="L"
|
||||||
|
disabled={!email || error || submitted}
|
||||||
|
cta
|
||||||
|
on:click={forgot}
|
||||||
|
>
|
||||||
Reset password
|
Reset password
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -92,7 +97,7 @@
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
img {
|
img {
|
||||||
width: 48px;
|
width: 46px;
|
||||||
}
|
}
|
||||||
.back-chev {
|
.back-chev {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -102,5 +107,6 @@
|
||||||
.heading-content {
|
.heading-content {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
gap: var(--spacing-m);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<svelte:window on:keydown={handleKeydown} />
|
<svelte:window on:keydown={handleKeydown} />
|
||||||
|
|
||||||
<TestimonialPage>
|
<TestimonialPage>
|
||||||
<Layout gap="S" noPadding>
|
<Layout gap="L" noPadding>
|
||||||
<Layout justifyItems="center" noPadding>
|
<Layout justifyItems="center" noPadding>
|
||||||
{#if loaded}
|
{#if loaded}
|
||||||
<img alt="logo" src={$organisation.logoUrl || Logo} />
|
<img alt="logo" src={$organisation.logoUrl || Logo} />
|
||||||
|
@ -124,14 +124,19 @@
|
||||||
</FancyForm>
|
</FancyForm>
|
||||||
</Layout>
|
</Layout>
|
||||||
<Layout gap="XS" noPadding justifyItems="center">
|
<Layout gap="XS" noPadding justifyItems="center">
|
||||||
<Button cta disabled={Object.keys(errors).length > 0} on:click={login}>
|
<Button
|
||||||
|
size="L"
|
||||||
|
cta
|
||||||
|
disabled={Object.keys(errors).length > 0}
|
||||||
|
on:click={login}
|
||||||
|
>
|
||||||
Log in to {company}
|
Log in to {company}
|
||||||
</Button>
|
</Button>
|
||||||
</Layout>
|
</Layout>
|
||||||
<Layout gap="XS" noPadding justifyItems="center">
|
<Layout gap="XS" noPadding justifyItems="center">
|
||||||
<div class="user-actions">
|
<div class="user-actions">
|
||||||
<ActionButton quiet on:click={() => $goto("./forgot")}>
|
<ActionButton size="L" quiet on:click={() => $goto("./forgot")}>
|
||||||
Forgot password
|
Forgot password?
|
||||||
</ActionButton>
|
</ActionButton>
|
||||||
</div>
|
</div>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<TestimonialPage>
|
<TestimonialPage>
|
||||||
<Layout gap="S" noPadding>
|
<Layout gap="M" noPadding>
|
||||||
<img alt="logo" src={$organisation.logoUrl || Logo} />
|
<img alt="logo" src={$organisation.logoUrl || Logo} />
|
||||||
<Layout gap="XS" noPadding>
|
<Layout gap="XS" noPadding>
|
||||||
<Heading size="M">Join {company}</Heading>
|
<Heading size="M">Join {company}</Heading>
|
||||||
|
@ -175,6 +175,7 @@
|
||||||
</Layout>
|
</Layout>
|
||||||
<div>
|
<div>
|
||||||
<Button
|
<Button
|
||||||
|
size="L"
|
||||||
disabled={Object.keys(errors).length > 0 || onboarding}
|
disabled={Object.keys(errors).length > 0 || onboarding}
|
||||||
cta
|
cta
|
||||||
on:click={acceptInvite}
|
on:click={acceptInvite}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
let activeTab = "Apps"
|
let activeTab = "Apps"
|
||||||
|
|
||||||
$: $url(), updateActiveTab($menu)
|
$: $url(), updateActiveTab($menu)
|
||||||
$: fullScreen = !$apps?.length
|
$: fullscreen = !$apps.length
|
||||||
|
|
||||||
const updateActiveTab = menu => {
|
const updateActiveTab = menu => {
|
||||||
for (let entry of menu) {
|
for (let entry of menu) {
|
||||||
|
@ -37,7 +37,8 @@
|
||||||
$redirect("../")
|
$redirect("../")
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
await organisation.init()
|
// We need to load apps to know if we need to show onboarding fullscreen
|
||||||
|
await Promise.all([apps.load(), organisation.init()])
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
notifications.error("Error getting org config")
|
notifications.error("Error getting org config")
|
||||||
}
|
}
|
||||||
|
@ -47,37 +48,39 @@
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if fullScreen}
|
{#if $auth.user && loaded}
|
||||||
<slot />
|
{#if fullscreen}
|
||||||
{:else if $auth.user && loaded}
|
<slot />
|
||||||
<HelpMenu />
|
{:else}
|
||||||
<div class="container">
|
<HelpMenu />
|
||||||
<div class="nav">
|
<div class="container">
|
||||||
<div class="branding">
|
<div class="nav">
|
||||||
<Logo />
|
<div class="branding">
|
||||||
|
<Logo />
|
||||||
|
</div>
|
||||||
|
<div class="desktop">
|
||||||
|
<Tabs selected={activeTab}>
|
||||||
|
{#each $menu as { title, href }}
|
||||||
|
<Tab {title} on:click={() => $goto(href)} />
|
||||||
|
{/each}
|
||||||
|
</Tabs>
|
||||||
|
</div>
|
||||||
|
<div class="mobile">
|
||||||
|
<Icon hoverable name="ShowMenu" on:click={showMobileMenu} />
|
||||||
|
</div>
|
||||||
|
<div class="desktop">
|
||||||
|
<UpgradeButton />
|
||||||
|
</div>
|
||||||
|
<div class="dropdown">
|
||||||
|
<UserDropdown />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="desktop">
|
<div class="main">
|
||||||
<Tabs selected={activeTab}>
|
<slot />
|
||||||
{#each $menu as { title, href }}
|
|
||||||
<Tab {title} on:click={() => $goto(href)} />
|
|
||||||
{/each}
|
|
||||||
</Tabs>
|
|
||||||
</div>
|
|
||||||
<div class="mobile">
|
|
||||||
<Icon hoverable name="ShowMenu" on:click={showMobileMenu} />
|
|
||||||
</div>
|
|
||||||
<div class="desktop">
|
|
||||||
<UpgradeButton />
|
|
||||||
</div>
|
|
||||||
<div class="dropdown">
|
|
||||||
<UserDropdown />
|
|
||||||
</div>
|
</div>
|
||||||
|
<MobileMenu visible={mobileMenuVisible} on:close={hideMobileMenu} />
|
||||||
</div>
|
</div>
|
||||||
<div class="main">
|
{/if}
|
||||||
<slot />
|
|
||||||
</div>
|
|
||||||
<MobileMenu visible={mobileMenuVisible} on:close={hideMobileMenu} />
|
|
||||||
</div>
|
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -10,13 +10,11 @@
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
try {
|
try {
|
||||||
// Always load latest
|
// Always load latest
|
||||||
await apps.load()
|
await Promise.all([
|
||||||
await licensing.init()
|
licensing.init(),
|
||||||
await templates.load()
|
templates.load(),
|
||||||
|
groups.actions.init(),
|
||||||
if ($licensing.groupsEnabled) {
|
])
|
||||||
await groups.actions.init()
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($templates?.length === 0) {
|
if ($templates?.length === 0) {
|
||||||
notifications.error("There was a problem loading quick start templates")
|
notifications.error("There was a problem loading quick start templates")
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
export let name = ""
|
export let name = ""
|
||||||
export let url = ""
|
export let url = ""
|
||||||
export let onNext = () => {}
|
export let onNext = () => {}
|
||||||
|
|
||||||
|
const nameRegex = /^[a-zA-Z0-9\s]*$/
|
||||||
let nameError = null
|
let nameError = null
|
||||||
let urlError = null
|
let urlError = null
|
||||||
|
|
||||||
|
@ -14,6 +16,9 @@
|
||||||
if (name.length < 1) {
|
if (name.length < 1) {
|
||||||
return "Name must be provided"
|
return "Name must be provided"
|
||||||
}
|
}
|
||||||
|
if (!nameRegex.test(name)) {
|
||||||
|
return "No special characters are allowed"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const validateUrl = url => {
|
const validateUrl = url => {
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
import createFromScratchScreen from "builderStore/store/screenTemplates/createFromScratchScreen"
|
import createFromScratchScreen from "builderStore/store/screenTemplates/createFromScratchScreen"
|
||||||
import { Roles } from "constants/backend"
|
import { Roles } from "constants/backend"
|
||||||
|
|
||||||
let name = ""
|
let name = "My first app"
|
||||||
let url = ""
|
let url = "my-first-app"
|
||||||
let stage = "name"
|
let stage = "name"
|
||||||
let appId = null
|
let appId = null
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
defaultScreenTemplate.routing.roldId = Roles.BASIC
|
defaultScreenTemplate.routing.roldId = Roles.BASIC
|
||||||
await store.actions.screens.save(defaultScreenTemplate)
|
await store.actions.screens.save(defaultScreenTemplate)
|
||||||
|
|
||||||
return createdApp.instance._id
|
appId = createdApp.instance._id
|
||||||
}
|
}
|
||||||
|
|
||||||
const getIntegrations = async () => {
|
const getIntegrations = async () => {
|
||||||
|
@ -79,14 +79,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const goToApp = appId => {
|
const goToApp = () => {
|
||||||
$goto(`/builder/app/${appId}`)
|
$goto(`/builder/app/${appId}`)
|
||||||
notifications.success(`App created successfully`)
|
notifications.success(`App created successfully`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleCreateApp = async ({ datasourceConfig, useSampleData }) => {
|
const handleCreateApp = async ({ datasourceConfig, useSampleData }) => {
|
||||||
try {
|
try {
|
||||||
appId = await createApp(useSampleData)
|
await createApp(useSampleData)
|
||||||
|
|
||||||
if (datasourceConfig) {
|
if (datasourceConfig) {
|
||||||
await saveDatasource({
|
await saveDatasource({
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
goToApp(appId)
|
goToApp()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
notifications.error("There was a problem creating your app")
|
notifications.error("There was a problem creating your app")
|
||||||
|
@ -111,7 +111,7 @@
|
||||||
<CreateTableModal
|
<CreateTableModal
|
||||||
name="Your Data"
|
name="Your Data"
|
||||||
beforeSave={createApp}
|
beforeSave={createApp}
|
||||||
afterSave={() => goToApp(appId)}
|
afterSave={goToApp}
|
||||||
/>
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
<div class="dataButtonIcon">
|
<div class="dataButtonIcon">
|
||||||
<FontAwesomeIcon name="fa-solid fa-file-arrow-up" />
|
<FontAwesomeIcon name="fa-solid fa-file-arrow-up" />
|
||||||
</div>
|
</div>
|
||||||
Upload file
|
Upload data (CSV or JSON)
|
||||||
</div>
|
</div>
|
||||||
</FancyButton>
|
</FancyButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -100,8 +100,9 @@
|
||||||
const deleteApp = async () => {
|
const deleteApp = async () => {
|
||||||
try {
|
try {
|
||||||
await API.deleteApp(app?.devId)
|
await API.deleteApp(app?.devId)
|
||||||
|
apps.load()
|
||||||
notifications.success("App deleted successfully")
|
notifications.success("App deleted successfully")
|
||||||
$goto("../")
|
$goto("../../")
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
notifications.error("Error deleting app")
|
notifications.error("Error deleting app")
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
<script>
|
<script>
|
||||||
import { apps, groups, licensing } from "stores/portal"
|
import { groups } from "stores/portal"
|
||||||
import { onMount } from "svelte"
|
import { onMount } from "svelte"
|
||||||
|
|
||||||
let loaded = !!$apps?.length
|
let loaded = false
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
if (!loaded) {
|
await groups.actions.init()
|
||||||
await apps.load()
|
loaded = true
|
||||||
if ($licensing.groupsEnabled) {
|
|
||||||
await groups.actions.init()
|
|
||||||
}
|
|
||||||
loaded = true
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
try {
|
try {
|
||||||
await Promise.all([groups.actions.init(), apps.load(), roles.fetch()])
|
await Promise.all([groups.actions.init(), roles.fetch()])
|
||||||
loaded = true
|
loaded = true
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
notifications.error("Error fetching user group data")
|
notifications.error("Error fetching user group data")
|
||||||
|
|
|
@ -80,9 +80,7 @@
|
||||||
try {
|
try {
|
||||||
// always load latest
|
// always load latest
|
||||||
await licensing.init()
|
await licensing.init()
|
||||||
if ($licensing.groupsEnabled) {
|
await groups.actions.init()
|
||||||
await groups.actions.init()
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
notifications.error("Error getting user groups")
|
notifications.error("Error getting user groups")
|
||||||
}
|
}
|
||||||
|
|
|
@ -215,12 +215,7 @@
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
try {
|
try {
|
||||||
await Promise.all([
|
await Promise.all([fetchUser(), groups.actions.init(), roles.fetch()])
|
||||||
fetchUser(),
|
|
||||||
groups.actions.init(),
|
|
||||||
apps.load(),
|
|
||||||
roles.fetch(),
|
|
||||||
])
|
|
||||||
loaded = true
|
loaded = true
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
notifications.error("Error getting user groups")
|
notifications.error("Error getting user groups")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/cli",
|
"name": "@budibase/cli",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"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": {
|
||||||
|
@ -26,9 +26,9 @@
|
||||||
"outputPath": "build"
|
"outputPath": "build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/backend-core": "2.2.12-alpha.61",
|
"@budibase/backend-core": "2.2.12-alpha.66",
|
||||||
"@budibase/string-templates": "2.2.12-alpha.61",
|
"@budibase/string-templates": "2.2.12-alpha.66",
|
||||||
"@budibase/types": "2.2.12-alpha.61",
|
"@budibase/types": "2.2.12-alpha.66",
|
||||||
"axios": "0.21.2",
|
"axios": "0.21.2",
|
||||||
"chalk": "4.1.0",
|
"chalk": "4.1.0",
|
||||||
"cli-progress": "3.11.2",
|
"cli-progress": "3.11.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/client",
|
"name": "@budibase/client",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"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",
|
||||||
|
@ -19,9 +19,9 @@
|
||||||
"dev:builder": "rollup -cw"
|
"dev:builder": "rollup -cw"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/bbui": "2.2.12-alpha.61",
|
"@budibase/bbui": "2.2.12-alpha.66",
|
||||||
"@budibase/frontend-core": "2.2.12-alpha.61",
|
"@budibase/frontend-core": "2.2.12-alpha.66",
|
||||||
"@budibase/string-templates": "2.2.12-alpha.61",
|
"@budibase/string-templates": "2.2.12-alpha.66",
|
||||||
"@spectrum-css/button": "^3.0.3",
|
"@spectrum-css/button": "^3.0.3",
|
||||||
"@spectrum-css/card": "^3.0.3",
|
"@spectrum-css/card": "^3.0.3",
|
||||||
"@spectrum-css/divider": "^1.0.3",
|
"@spectrum-css/divider": "^1.0.3",
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 2.3 MiB |
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/frontend-core",
|
"name": "@budibase/frontend-core",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"description": "Budibase frontend core libraries used in builder and client",
|
"description": "Budibase frontend core libraries used in builder and client",
|
||||||
"author": "Budibase",
|
"author": "Budibase",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"svelte": "src/index.js",
|
"svelte": "src/index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/bbui": "2.2.12-alpha.61",
|
"@budibase/bbui": "2.2.12-alpha.66",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"svelte": "^3.46.2"
|
"svelte": "^3.46.2"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/sdk",
|
"name": "@budibase/sdk",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"description": "Budibase Public API SDK",
|
"description": "Budibase Public API SDK",
|
||||||
"author": "Budibase",
|
"author": "Budibase",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/server",
|
"name": "@budibase/server",
|
||||||
"email": "hi@budibase.com",
|
"email": "hi@budibase.com",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"description": "Budibase Web Server",
|
"description": "Budibase Web Server",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -43,11 +43,11 @@
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apidevtools/swagger-parser": "10.0.3",
|
"@apidevtools/swagger-parser": "10.0.3",
|
||||||
"@budibase/backend-core": "2.2.12-alpha.61",
|
"@budibase/backend-core": "2.2.12-alpha.66",
|
||||||
"@budibase/client": "2.2.12-alpha.61",
|
"@budibase/client": "2.2.12-alpha.66",
|
||||||
"@budibase/pro": "2.2.12-alpha.61",
|
"@budibase/pro": "2.2.12-alpha.66",
|
||||||
"@budibase/string-templates": "2.2.12-alpha.61",
|
"@budibase/string-templates": "2.2.12-alpha.66",
|
||||||
"@budibase/types": "2.2.12-alpha.61",
|
"@budibase/types": "2.2.12-alpha.66",
|
||||||
"@bull-board/api": "3.7.0",
|
"@bull-board/api": "3.7.0",
|
||||||
"@bull-board/koa": "3.9.4",
|
"@bull-board/koa": "3.9.4",
|
||||||
"@elastic/elasticsearch": "7.10.0",
|
"@elastic/elasticsearch": "7.10.0",
|
||||||
|
|
|
@ -1273,13 +1273,13 @@
|
||||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||||
|
|
||||||
"@budibase/backend-core@2.2.12-alpha.61":
|
"@budibase/backend-core@2.2.12-alpha.66":
|
||||||
version "2.2.12-alpha.61"
|
version "2.2.12-alpha.66"
|
||||||
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.61.tgz#5453d8de94d8262eb39816f673bdb2d729434788"
|
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.66.tgz#0679a20dbea1cc97550710b3abef4c0c320612ba"
|
||||||
integrity sha512-NOwZlA6jjQY5HjLujlhnWfJBWjUb7mryFD3d6tLyVuq+exf3ALZO59TE2hSsgSPTpaVTrNOSV4gwbYOev/Drsg==
|
integrity sha512-dJ4ocMjyXwpQj4i5J+DJqe6Oxo5DP1qzz1N9XHrwfk1CQIeemE0qu4d/T5bMjoeCvPci8sWRqGBmeHQh3ICAXw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@budibase/nano" "10.1.1"
|
"@budibase/nano" "10.1.1"
|
||||||
"@budibase/types" "2.2.12-alpha.61"
|
"@budibase/types" "2.2.12-alpha.66"
|
||||||
"@shopify/jest-koa-mocks" "5.0.1"
|
"@shopify/jest-koa-mocks" "5.0.1"
|
||||||
"@techpass/passport-openidconnect" "0.3.2"
|
"@techpass/passport-openidconnect" "0.3.2"
|
||||||
aws-cloudfront-sign "2.2.0"
|
aws-cloudfront-sign "2.2.0"
|
||||||
|
@ -1374,13 +1374,13 @@
|
||||||
qs "^6.11.0"
|
qs "^6.11.0"
|
||||||
tough-cookie "^4.1.2"
|
tough-cookie "^4.1.2"
|
||||||
|
|
||||||
"@budibase/pro@2.2.12-alpha.61":
|
"@budibase/pro@2.2.12-alpha.66":
|
||||||
version "2.2.12-alpha.61"
|
version "2.2.12-alpha.66"
|
||||||
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.61.tgz#93ca762a0773950d959c9fff24325cfe93718eff"
|
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.66.tgz#6eb18460f4821132aa0c8454ca874ad699bf1e6b"
|
||||||
integrity sha512-ttg6TEGTn+IX2+Uyv853wsNp9pXPZ1n9tNZC9un4jAH/edbxhCElBSNMH8gsHyqw9oOGJOkNNTzsd1IfOTckqw==
|
integrity sha512-6wEjYpxVORqvKhO3oCxnYMUWPZT3pN8SEtxgvU5y01ncMrwfpywthDS8EGXX8Zj1cAm2YuPMvq+oJaufE8Xz0g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@budibase/backend-core" "2.2.12-alpha.61"
|
"@budibase/backend-core" "2.2.12-alpha.66"
|
||||||
"@budibase/types" "2.2.12-alpha.61"
|
"@budibase/types" "2.2.12-alpha.66"
|
||||||
"@koa/router" "8.0.8"
|
"@koa/router" "8.0.8"
|
||||||
bull "4.10.1"
|
bull "4.10.1"
|
||||||
joi "17.6.0"
|
joi "17.6.0"
|
||||||
|
@ -1406,10 +1406,10 @@
|
||||||
svelte-apexcharts "^1.0.2"
|
svelte-apexcharts "^1.0.2"
|
||||||
svelte-flatpickr "^3.1.0"
|
svelte-flatpickr "^3.1.0"
|
||||||
|
|
||||||
"@budibase/types@2.2.12-alpha.61":
|
"@budibase/types@2.2.12-alpha.66":
|
||||||
version "2.2.12-alpha.61"
|
version "2.2.12-alpha.66"
|
||||||
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.61.tgz#b1f87134dccfb14a9222a1733bba6f7a5277e3f1"
|
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.66.tgz#f77901a39c94256bb7bd771912acc7cff2e79288"
|
||||||
integrity sha512-gbST+HYYMZ2R+eUnb1lHSoRfLI72XYxzimCaDfWVfBjYTsfQoUkkhMbse+zldUBIveLMGFETZ6MIs3k2puHqEQ==
|
integrity sha512-plEyZ/KS0ThswRGIsXAZjIZXJWGBtHVJF9FN9BSOui+9J6SZI7RwMapbPgHXBNOxde+fJGbKt0AOVwiDZrmLRg==
|
||||||
|
|
||||||
"@bull-board/api@3.7.0":
|
"@bull-board/api@3.7.0":
|
||||||
version "3.7.0"
|
version "3.7.0"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/string-templates",
|
"name": "@budibase/string-templates",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"description": "Handlebars wrapper for Budibase templating.",
|
"description": "Handlebars wrapper for Budibase templating.",
|
||||||
"main": "src/index.cjs",
|
"main": "src/index.cjs",
|
||||||
"module": "dist/bundle.mjs",
|
"module": "dist/bundle.mjs",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/types",
|
"name": "@budibase/types",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"description": "Budibase types",
|
"description": "Budibase types",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@budibase/worker",
|
"name": "@budibase/worker",
|
||||||
"email": "hi@budibase.com",
|
"email": "hi@budibase.com",
|
||||||
"version": "2.2.12-alpha.61",
|
"version": "2.2.12-alpha.66",
|
||||||
"description": "Budibase background service",
|
"description": "Budibase background service",
|
||||||
"main": "src/index.ts",
|
"main": "src/index.ts",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -36,10 +36,10 @@
|
||||||
"author": "Budibase",
|
"author": "Budibase",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@budibase/backend-core": "2.2.12-alpha.61",
|
"@budibase/backend-core": "2.2.12-alpha.66",
|
||||||
"@budibase/pro": "2.2.12-alpha.61",
|
"@budibase/pro": "2.2.12-alpha.66",
|
||||||
"@budibase/string-templates": "2.2.12-alpha.61",
|
"@budibase/string-templates": "2.2.12-alpha.66",
|
||||||
"@budibase/types": "2.2.12-alpha.61",
|
"@budibase/types": "2.2.12-alpha.66",
|
||||||
"@koa/router": "8.0.8",
|
"@koa/router": "8.0.8",
|
||||||
"@sentry/node": "6.17.7",
|
"@sentry/node": "6.17.7",
|
||||||
"@techpass/passport-openidconnect": "0.3.2",
|
"@techpass/passport-openidconnect": "0.3.2",
|
||||||
|
|
|
@ -267,7 +267,7 @@ export async function publicSettings(ctx: Ctx) {
|
||||||
|
|
||||||
// enrich the logo url
|
// enrich the logo url
|
||||||
// empty url means deleted
|
// empty url means deleted
|
||||||
if (config.config.logoUrl !== "") {
|
if (config.config.logoUrl && config.config.logoUrl !== "") {
|
||||||
config.config.logoUrl = objectStore.getGlobalFileUrl(
|
config.config.logoUrl = objectStore.getGlobalFileUrl(
|
||||||
"settings",
|
"settings",
|
||||||
"logoUrl",
|
"logoUrl",
|
||||||
|
|
|
@ -470,13 +470,13 @@
|
||||||
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
|
||||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||||
|
|
||||||
"@budibase/backend-core@2.2.12-alpha.61":
|
"@budibase/backend-core@2.2.12-alpha.66":
|
||||||
version "2.2.12-alpha.61"
|
version "2.2.12-alpha.66"
|
||||||
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.61.tgz#5453d8de94d8262eb39816f673bdb2d729434788"
|
resolved "https://registry.yarnpkg.com/@budibase/backend-core/-/backend-core-2.2.12-alpha.66.tgz#0679a20dbea1cc97550710b3abef4c0c320612ba"
|
||||||
integrity sha512-NOwZlA6jjQY5HjLujlhnWfJBWjUb7mryFD3d6tLyVuq+exf3ALZO59TE2hSsgSPTpaVTrNOSV4gwbYOev/Drsg==
|
integrity sha512-dJ4ocMjyXwpQj4i5J+DJqe6Oxo5DP1qzz1N9XHrwfk1CQIeemE0qu4d/T5bMjoeCvPci8sWRqGBmeHQh3ICAXw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@budibase/nano" "10.1.1"
|
"@budibase/nano" "10.1.1"
|
||||||
"@budibase/types" "2.2.12-alpha.61"
|
"@budibase/types" "2.2.12-alpha.66"
|
||||||
"@shopify/jest-koa-mocks" "5.0.1"
|
"@shopify/jest-koa-mocks" "5.0.1"
|
||||||
"@techpass/passport-openidconnect" "0.3.2"
|
"@techpass/passport-openidconnect" "0.3.2"
|
||||||
aws-cloudfront-sign "2.2.0"
|
aws-cloudfront-sign "2.2.0"
|
||||||
|
@ -521,13 +521,13 @@
|
||||||
qs "^6.11.0"
|
qs "^6.11.0"
|
||||||
tough-cookie "^4.1.2"
|
tough-cookie "^4.1.2"
|
||||||
|
|
||||||
"@budibase/pro@2.2.12-alpha.61":
|
"@budibase/pro@2.2.12-alpha.66":
|
||||||
version "2.2.12-alpha.61"
|
version "2.2.12-alpha.66"
|
||||||
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.61.tgz#93ca762a0773950d959c9fff24325cfe93718eff"
|
resolved "https://registry.yarnpkg.com/@budibase/pro/-/pro-2.2.12-alpha.66.tgz#6eb18460f4821132aa0c8454ca874ad699bf1e6b"
|
||||||
integrity sha512-ttg6TEGTn+IX2+Uyv853wsNp9pXPZ1n9tNZC9un4jAH/edbxhCElBSNMH8gsHyqw9oOGJOkNNTzsd1IfOTckqw==
|
integrity sha512-6wEjYpxVORqvKhO3oCxnYMUWPZT3pN8SEtxgvU5y01ncMrwfpywthDS8EGXX8Zj1cAm2YuPMvq+oJaufE8Xz0g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@budibase/backend-core" "2.2.12-alpha.61"
|
"@budibase/backend-core" "2.2.12-alpha.66"
|
||||||
"@budibase/types" "2.2.12-alpha.61"
|
"@budibase/types" "2.2.12-alpha.66"
|
||||||
"@koa/router" "8.0.8"
|
"@koa/router" "8.0.8"
|
||||||
bull "4.10.1"
|
bull "4.10.1"
|
||||||
joi "17.6.0"
|
joi "17.6.0"
|
||||||
|
@ -535,10 +535,10 @@
|
||||||
lru-cache "^7.14.1"
|
lru-cache "^7.14.1"
|
||||||
node-fetch "^2.6.1"
|
node-fetch "^2.6.1"
|
||||||
|
|
||||||
"@budibase/types@2.2.12-alpha.61":
|
"@budibase/types@2.2.12-alpha.66":
|
||||||
version "2.2.12-alpha.61"
|
version "2.2.12-alpha.66"
|
||||||
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.61.tgz#b1f87134dccfb14a9222a1733bba6f7a5277e3f1"
|
resolved "https://registry.yarnpkg.com/@budibase/types/-/types-2.2.12-alpha.66.tgz#f77901a39c94256bb7bd771912acc7cff2e79288"
|
||||||
integrity sha512-gbST+HYYMZ2R+eUnb1lHSoRfLI72XYxzimCaDfWVfBjYTsfQoUkkhMbse+zldUBIveLMGFETZ6MIs3k2puHqEQ==
|
integrity sha512-plEyZ/KS0ThswRGIsXAZjIZXJWGBtHVJF9FN9BSOui+9J6SZI7RwMapbPgHXBNOxde+fJGbKt0AOVwiDZrmLRg==
|
||||||
|
|
||||||
"@cspotcode/source-map-support@^0.8.0":
|
"@cspotcode/source-map-support@^0.8.0":
|
||||||
version "0.8.1"
|
version "0.8.1"
|
||||||
|
@ -3954,9 +3954,9 @@ http-assert@^1.3.0:
|
||||||
http-errors "~1.8.0"
|
http-errors "~1.8.0"
|
||||||
|
|
||||||
http-cache-semantics@^4.0.0:
|
http-cache-semantics@^4.0.0:
|
||||||
version "4.1.0"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
|
||||||
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
|
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
|
||||||
|
|
||||||
http-cookie-agent@^4.0.2:
|
http-cookie-agent@^4.0.2:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
|
|
Loading…
Reference in New Issue