1
0
Fork 0
mirror of synced 2024-08-09 15:17:57 +12:00

Merge branch 'develop' into BUDI-7367/ds_plus_row_unittest

This commit is contained in:
Adria Navarro 2023-09-12 18:10:39 +02:00 committed by GitHub
commit c3808682f8
11 changed files with 84 additions and 8 deletions

View file

@ -1,5 +1,5 @@
{
"version": "2.10.3-alpha.0",
"version": "2.10.3-alpha.2",
"npmClient": "yarn",
"packages": [
"packages/*"

View file

@ -66,6 +66,10 @@
pointer-events: all;
width: 100%;
}
.spectrum-Toast--neutral {
background-color: var(--grey-2);
}
.spectrum-Button {
border: 1px solid rgba(255, 255, 255, 0.2);
}

View file

@ -27,7 +27,11 @@
<div class="spectrum-Toast-body" class:actionBody={!!action}>
<div class="wrap spectrum-Toast-content">{message || ""}</div>
{#if action}
<ActionButton quiet emphasized on:click={action}>
<ActionButton
quiet
emphasized
on:click={() => action(() => dispatch("dismiss"))}
>
<div style="color: white; font-weight: 600;">{actionMessage}</div>
</ActionButton>
{/if}

View file

@ -8,7 +8,7 @@
<Portal target=".modal-container">
<div class="notifications">
{#each $notifications as { type, icon, message, id, dismissable, action, wide } (id)}
{#each $notifications as { type, icon, message, id, dismissable, action, actionMessage, wide } (id)}
<div transition:fly={{ y: 30 }}>
<Notification
{type}
@ -16,6 +16,7 @@
{message}
{dismissable}
{action}
{actionMessage}
{wide}
on:dismiss={() => notifications.dismiss(id)}
/>

View file

@ -1,6 +1,7 @@
import { writable } from "svelte/store"
export const BANNER_TYPES = {
NEUTRAL: "neutral",
INFO: "info",
NEGATIVE: "negative",
WARNING: "warning",

View file

@ -27,7 +27,9 @@ export const createNotificationStore = () => {
icon = "",
autoDismiss = true,
action = null,
actionMessage = null,
wide = false,
dismissTimeout = NOTIFICATION_TIMEOUT,
}
) => {
if (block) {
@ -44,14 +46,16 @@ export const createNotificationStore = () => {
icon,
dismissable: !autoDismiss,
action,
actionMessage,
wide,
dismissTimeout,
},
]
})
if (autoDismiss) {
const timeoutId = setTimeout(() => {
dismissNotification(_id)
}, NOTIFICATION_TIMEOUT)
}, dismissTimeout)
timeoutIds.add(timeoutId)
}
}

View file

@ -523,7 +523,7 @@
{:else if editableColumn.type === "number" && !editableColumn.autocolumn}
<div class="split-label">
<div class="label-length">
<Label size="M">Max Value</Label>
<Label size="M">Min Value</Label>
</div>
<div class="input-length">
<Input

View file

@ -3,6 +3,7 @@
import { admin, auth, licensing } from "stores/portal"
import { onMount } from "svelte"
import { CookieUtils, Constants } from "@budibase/frontend-core"
import { banner, BANNER_TYPES } from "@budibase/bbui"
import { API } from "api"
import Branding from "./Branding.svelte"
@ -16,6 +17,32 @@
$: user = $auth.user
$: useAccountPortal = cloud && !$admin.disableAccountPortal
let showVerificationPrompt = false
const checkVerification = user => {
if (!showVerificationPrompt && user?.account?.verified === false) {
showVerificationPrompt = true
banner.queue([
{
message: `Please verify your account. We've sent the verification link to ${user.email}`,
type: BANNER_TYPES.NEUTRAL,
showCloseButton: false,
extraButtonAction: () => {
fetch(`${$admin.accountPortalUrl}/api/auth/reset`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ email: user.email }),
})
},
extraButtonText: "Resend email",
},
])
}
}
$: checkVerification(user)
const validateTenantId = async () => {
const host = window.location.host

View file

@ -63,8 +63,7 @@
)
const githubResponse = await githubCheck.json()
//Get tag and remove the v infront of the tage name e.g. v1.0.0 is 1.0.0
githubVersion = githubResponse.tag_name.slice(1)
githubVersion = githubResponse.tag_name
//Get the release date and output it in the local time format
githubPublishedDate = new Date(githubResponse.published_at)

View file

@ -1,5 +1,5 @@
<script>
import dayjs from "dayjs"
import { dayjs } from "dayjs"
import { CoreDatePicker, Icon } from "@budibase/bbui"
import { onMount } from "svelte"

View file

@ -20,6 +20,8 @@
config,
ui,
columns,
definition,
datasource,
} = getContext("grid")
const bannedDisplayColumnTypes = [
@ -118,6 +120,33 @@
open = false
}
const duplicateColumn = async () => {
open = false
// Generate new name
let newName = `${column.name} copy`
let attempts = 2
while ($definition.schema[newName]) {
newName = `${column.name} copy ${attempts++}`
}
// Save schema with new column
const existingColumnDefinition = $definition.schema[column.name]
await datasource.actions.saveDefinition({
...$definition,
schema: {
...$definition.schema,
[newName]: {
...existingColumnDefinition,
name: newName,
schema: {
...existingColumnDefinition.schema,
},
},
},
})
}
onMount(() => subscribe("close-edit-column", cancelEdit))
</script>
@ -192,6 +221,13 @@
>
Edit column
</MenuItem>
<MenuItem
icon="Duplicate"
on:click={duplicateColumn}
disabled={!$config.canEditColumns}
>
Duplicate column
</MenuItem>
<MenuItem
icon="Label"
on:click={makeDisplayColumn}