Merge remote-tracking branch 'origin/develop' into feature/form-block-ux-updates
This commit is contained in:
commit
046ef853e3
|
@ -1,9 +1,26 @@
|
||||||
module.exports = () => {
|
module.exports = () => {
|
||||||
return {
|
return {
|
||||||
dockerCompose: {
|
couchdb: {
|
||||||
composeFilePath: "../../hosting",
|
image: "budibase/couchdb",
|
||||||
composeFile: "docker-compose.test.yaml",
|
ports: [5984],
|
||||||
startupTimeout: 10000,
|
env: {
|
||||||
|
COUCHDB_PASSWORD: "budibase",
|
||||||
|
COUCHDB_USER: "budibase",
|
||||||
},
|
},
|
||||||
|
wait: {
|
||||||
|
type: "ports",
|
||||||
|
timeout: 10000,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// module.exports = () => {
|
||||||
|
// return {
|
||||||
|
// dockerCompose: {
|
||||||
|
// composeFilePath: "../../hosting",
|
||||||
|
// composeFile: "docker-compose.test.yaml",
|
||||||
|
// startupTimeout: 10000,
|
||||||
|
// },
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "2.9.30-alpha.7",
|
"version": "2.9.30-alpha.9",
|
||||||
"npmClient": "yarn",
|
"npmClient": "yarn",
|
||||||
"packages": [
|
"packages": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
|
|
|
@ -32,8 +32,8 @@ function getTestContainerSettings(
|
||||||
): string | null {
|
): string | null {
|
||||||
const entry = Object.entries(global).find(
|
const entry = Object.entries(global).find(
|
||||||
([k]) =>
|
([k]) =>
|
||||||
k.includes(`_${serverName.toUpperCase()}`) &&
|
k.includes(`${serverName.toUpperCase()}`) &&
|
||||||
k.includes(`_${key.toUpperCase()}__`)
|
k.includes(`${key.toUpperCase()}`)
|
||||||
)
|
)
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
return null
|
return null
|
||||||
|
@ -67,27 +67,14 @@ function getContainerInfo(containerName: string, port: number) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCouchConfig() {
|
function getCouchConfig() {
|
||||||
return getContainerInfo("couchdb-service", 5984)
|
return getContainerInfo("couchdb", 5984)
|
||||||
}
|
|
||||||
|
|
||||||
function getMinioConfig() {
|
|
||||||
return getContainerInfo("minio-service", 9000)
|
|
||||||
}
|
|
||||||
|
|
||||||
function getRedisConfig() {
|
|
||||||
return getContainerInfo("redis-service", 6379)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setupEnv(...envs: any[]) {
|
export function setupEnv(...envs: any[]) {
|
||||||
const couch = getCouchConfig(),
|
const couch = getCouchConfig()
|
||||||
minio = getMinioConfig(),
|
|
||||||
redis = getRedisConfig()
|
|
||||||
const configs = [
|
const configs = [
|
||||||
{ key: "COUCH_DB_PORT", value: couch.port },
|
{ key: "COUCH_DB_PORT", value: couch.port },
|
||||||
{ key: "COUCH_DB_URL", value: couch.url },
|
{ key: "COUCH_DB_URL", value: couch.url },
|
||||||
{ key: "MINIO_PORT", value: minio.port },
|
|
||||||
{ key: "MINIO_URL", value: minio.url },
|
|
||||||
{ key: "REDIS_URL", value: redis.url },
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for (const config of configs.filter(x => !!x.value)) {
|
for (const config of configs.filter(x => !!x.value)) {
|
||||||
|
|
|
@ -6,13 +6,15 @@
|
||||||
Select,
|
Select,
|
||||||
Toggle,
|
Toggle,
|
||||||
RadioGroup,
|
RadioGroup,
|
||||||
|
Icon,
|
||||||
DatePicker,
|
DatePicker,
|
||||||
Modal,
|
Modal,
|
||||||
notifications,
|
notifications,
|
||||||
OptionSelectDnD,
|
OptionSelectDnD,
|
||||||
Layout,
|
Layout,
|
||||||
|
AbsTooltip,
|
||||||
} from "@budibase/bbui"
|
} from "@budibase/bbui"
|
||||||
import { createEventDispatcher, getContext } from "svelte"
|
import { createEventDispatcher, getContext, onMount } from "svelte"
|
||||||
import { cloneDeep } from "lodash/fp"
|
import { cloneDeep } from "lodash/fp"
|
||||||
import { tables, datasources } from "stores/backend"
|
import { tables, datasources } from "stores/backend"
|
||||||
import { TableNames, UNEDITABLE_USER_FIELDS } from "constants"
|
import { TableNames, UNEDITABLE_USER_FIELDS } from "constants"
|
||||||
|
@ -47,6 +49,7 @@
|
||||||
|
|
||||||
export let field
|
export let field
|
||||||
|
|
||||||
|
let mounted = false
|
||||||
let fieldDefinitions = cloneDeep(FIELDS)
|
let fieldDefinitions = cloneDeep(FIELDS)
|
||||||
let originalName
|
let originalName
|
||||||
let linkEditDisabled
|
let linkEditDisabled
|
||||||
|
@ -413,16 +416,22 @@
|
||||||
}
|
}
|
||||||
return newError
|
return newError
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
mounted = true
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Layout noPadding gap="S">
|
<Layout noPadding gap="S">
|
||||||
|
{#if mounted}
|
||||||
<Input
|
<Input
|
||||||
|
autofocus
|
||||||
bind:value={editableColumn.name}
|
bind:value={editableColumn.name}
|
||||||
disabled={uneditable ||
|
disabled={uneditable ||
|
||||||
(linkEditDisabled && editableColumn.type === LINK_TYPE)}
|
(linkEditDisabled && editableColumn.type === LINK_TYPE)}
|
||||||
error={errors?.name}
|
error={errors?.name}
|
||||||
/>
|
/>
|
||||||
|
{/if}
|
||||||
<Select
|
<Select
|
||||||
disabled={!typeEnabled}
|
disabled={!typeEnabled}
|
||||||
bind:value={editableColumn.type}
|
bind:value={editableColumn.type}
|
||||||
|
@ -452,12 +461,17 @@
|
||||||
/>
|
/>
|
||||||
{:else if editableColumn.type === "longform"}
|
{:else if editableColumn.type === "longform"}
|
||||||
<div>
|
<div>
|
||||||
<Label
|
<div class="tooltip-alignment">
|
||||||
size="M"
|
<Label size="M">Formatting</Label>
|
||||||
tooltip="Rich text includes support for images, links, tables, lists and more"
|
<AbsTooltip
|
||||||
|
position="top"
|
||||||
|
type="info"
|
||||||
|
text={"Rich text includes support for images, link"}
|
||||||
>
|
>
|
||||||
Formatting
|
<Icon size="XS" name="InfoOutline" />
|
||||||
</Label>
|
</AbsTooltip>
|
||||||
|
</div>
|
||||||
|
|
||||||
<Toggle
|
<Toggle
|
||||||
bind:value={editableColumn.useRichText}
|
bind:value={editableColumn.useRichText}
|
||||||
text="Enable rich text support (markdown)"
|
text="Enable rich text support (markdown)"
|
||||||
|
@ -488,13 +502,18 @@
|
||||||
</div>
|
</div>
|
||||||
{#if datasource?.source !== "ORACLE" && datasource?.source !== "SQL_SERVER"}
|
{#if datasource?.source !== "ORACLE" && datasource?.source !== "SQL_SERVER"}
|
||||||
<div>
|
<div>
|
||||||
<Label
|
<div>
|
||||||
tooltip={isCreating
|
<Label>Time zones</Label>
|
||||||
|
<AbsTooltip
|
||||||
|
position="top"
|
||||||
|
type="info"
|
||||||
|
text={isCreating
|
||||||
? null
|
? null
|
||||||
: "We recommend not changing how timezones are handled for existing columns, as existing data will not be updated"}
|
: "We recommend not changing how timezones are handled for existing columns, as existing data will not be updated"}
|
||||||
>
|
>
|
||||||
Time zones
|
<Icon size="XS" name="InfoOutline" />
|
||||||
</Label>
|
</AbsTooltip>
|
||||||
|
</div>
|
||||||
<Toggle
|
<Toggle
|
||||||
bind:value={editableColumn.ignoreTimezones}
|
bind:value={editableColumn.ignoreTimezones}
|
||||||
text="Ignore time zones"
|
text="Ignore time zones"
|
||||||
|
@ -671,6 +690,12 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tooltip-alignment {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--spacing-xs);
|
||||||
|
}
|
||||||
|
|
||||||
.label-length {
|
.label-length {
|
||||||
flex-basis: 40%;
|
flex-basis: 40%;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<Popover
|
<Popover
|
||||||
bind:open
|
bind:open
|
||||||
{anchor}
|
{anchor}
|
||||||
align="right"
|
align={$renderedColumns.length ? "right" : "left"}
|
||||||
offset={0}
|
offset={0}
|
||||||
popoverTarget={document.getElementById(`add-column-button`)}
|
popoverTarget={document.getElementById(`add-column-button`)}
|
||||||
animate={false}
|
animate={false}
|
||||||
|
|
|
@ -20,11 +20,13 @@ import { startup } from "./startup"
|
||||||
let app: Koa, server: Server
|
let app: Koa, server: Server
|
||||||
|
|
||||||
async function start() {
|
async function start() {
|
||||||
|
// if API disabled, could run automations instead
|
||||||
if (apiEnabled()) {
|
if (apiEnabled()) {
|
||||||
const koa = createKoaApp()
|
const koa = createKoaApp()
|
||||||
app = koa.app
|
app = koa.app
|
||||||
server = koa.server
|
server = koa.server
|
||||||
}
|
}
|
||||||
|
// startup includes automation runner - if enabled
|
||||||
await startup(app, server)
|
await startup(app, server)
|
||||||
if (env.isProd()) {
|
if (env.isProd()) {
|
||||||
env._set("NODE_ENV", "production")
|
env._set("NODE_ENV", "production")
|
||||||
|
|
Loading…
Reference in New Issue