Merge branch 'master' into better-types-in-global-users
This commit is contained in:
commit
1c5cce5551
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
echo ${TARGETBUILD} > /buildtarget.txt
|
echo ${TARGETBUILD} > /buildtarget.txt
|
||||||
if [[ "${TARGETBUILD}" = "aas" ]]; then
|
if [[ "${TARGETBUILD}" = "aas" ]]; then
|
||||||
# Azure AppService uses /home for persisent data & SSH on port 2222
|
# Azure AppService uses /home for persistent data & SSH on port 2222
|
||||||
DATA_DIR=/home
|
DATA_DIR="${DATA_DIR:-/home}"
|
||||||
WEBSITES_ENABLE_APP_SERVICE_STORAGE=true
|
WEBSITES_ENABLE_APP_SERVICE_STORAGE=true
|
||||||
mkdir -p $DATA_DIR/{search,minio,couch}
|
mkdir -p $DATA_DIR/{search,minio,couch}
|
||||||
mkdir -p $DATA_DIR/couch/{dbs,views}
|
mkdir -p $DATA_DIR/couch/{dbs,views}
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
echo ${TARGETBUILD} > /buildtarget.txt
|
echo ${TARGETBUILD} > /buildtarget.txt
|
||||||
if [[ "${TARGETBUILD}" = "aas" ]]; then
|
if [[ "${TARGETBUILD}" = "aas" ]]; then
|
||||||
# Azure AppService uses /home for persisent data & SSH on port 2222
|
# Azure AppService uses /home for persistent data & SSH on port 2222
|
||||||
DATA_DIR=/home
|
DATA_DIR="${DATA_DIR:-/home}"
|
||||||
WEBSITES_ENABLE_APP_SERVICE_STORAGE=true
|
WEBSITES_ENABLE_APP_SERVICE_STORAGE=true
|
||||||
mkdir -p $DATA_DIR/{search,minio,couch}
|
mkdir -p $DATA_DIR/{search,minio,couch}
|
||||||
mkdir -p $DATA_DIR/couch/{dbs,views}
|
mkdir -p $DATA_DIR/couch/{dbs,views}
|
||||||
|
|
|
@ -22,7 +22,7 @@ declare -a DOCKER_VARS=("APP_PORT" "APPS_URL" "ARCHITECTURE" "BUDIBASE_ENVIRONME
|
||||||
|
|
||||||
# Azure App Service customisations
|
# Azure App Service customisations
|
||||||
if [[ "${TARGETBUILD}" = "aas" ]]; then
|
if [[ "${TARGETBUILD}" = "aas" ]]; then
|
||||||
DATA_DIR=/home
|
DATA_DIR="${DATA_DIR:-/home}"
|
||||||
WEBSITES_ENABLE_APP_SERVICE_STORAGE=true
|
WEBSITES_ENABLE_APP_SERVICE_STORAGE=true
|
||||||
/etc/init.d/ssh start
|
/etc/init.d/ssh start
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"version": "2.13.3",
|
"version": "2.13.5",
|
||||||
"npmClient": "yarn",
|
"npmClient": "yarn",
|
||||||
"packages": [
|
"packages": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
|
|
|
@ -13,13 +13,13 @@
|
||||||
export let idx
|
export let idx
|
||||||
export let addLooping
|
export let addLooping
|
||||||
export let deleteStep
|
export let deleteStep
|
||||||
|
export let enableNaming = true
|
||||||
let validRegex = /^[A-Za-z0-9_\s]+$/
|
let validRegex = /^[A-Za-z0-9_\s]+$/
|
||||||
let typing = false
|
let typing = false
|
||||||
|
|
||||||
const dispatch = createEventDispatcher()
|
const dispatch = createEventDispatcher()
|
||||||
|
|
||||||
$: stepNames = $selectedAutomation.definition.stepNames
|
$: stepNames = $selectedAutomation?.definition.stepNames
|
||||||
$: automationName = stepNames?.[block.id] || block?.name || ""
|
$: automationName = stepNames?.[block.id] || block?.name || ""
|
||||||
$: automationNameError = getAutomationNameError(automationName)
|
$: automationNameError = getAutomationNameError(automationName)
|
||||||
$: status = updateStatus(testResult, isTrigger)
|
$: status = updateStatus(testResult, isTrigger)
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
)?.[0]
|
)?.[0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$: loopBlock = $selectedAutomation.definition.steps.find(
|
$: loopBlock = $selectedAutomation?.definition.steps.find(
|
||||||
x => x.blockToLoop === block?.id
|
x => x.blockToLoop === block?.id
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -126,24 +126,33 @@
|
||||||
<Body size="XS"><b>Step {idx}</b></Body>
|
<Body size="XS"><b>Step {idx}</b></Body>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
<input
|
|
||||||
placeholder="Enter some text"
|
{#if enableNaming}
|
||||||
name="name"
|
<input
|
||||||
autocomplete="off"
|
class="input-text"
|
||||||
value={automationName}
|
disabled={!enableNaming}
|
||||||
on:input={e => {
|
placeholder="Enter some text"
|
||||||
automationName = e.target.value.trim()
|
name="name"
|
||||||
}}
|
autocomplete="off"
|
||||||
on:click={startTyping}
|
value={automationName}
|
||||||
on:blur={async () => {
|
on:input={e => {
|
||||||
typing = false
|
automationName = e.target.value.trim()
|
||||||
if (automationNameError) {
|
}}
|
||||||
automationName = stepNames[block.id] || block?.name
|
on:click={startTyping}
|
||||||
} else {
|
on:blur={async () => {
|
||||||
await saveName()
|
typing = false
|
||||||
}
|
if (automationNameError) {
|
||||||
}}
|
automationName = stepNames[block.id] || block?.name
|
||||||
/>
|
} else {
|
||||||
|
await saveName()
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{:else}
|
||||||
|
<div class="input-text">
|
||||||
|
{automationName}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="blockTitle">
|
<div class="blockTitle">
|
||||||
|
@ -178,9 +187,11 @@
|
||||||
<Icon on:click={addLooping} hoverable name="RotateCW" />
|
<Icon on:click={addLooping} hoverable name="RotateCW" />
|
||||||
</AbsTooltip>
|
</AbsTooltip>
|
||||||
{/if}
|
{/if}
|
||||||
<AbsTooltip type="negative" text="Delete step">
|
{#if !isHeaderTrigger}
|
||||||
<Icon on:click={deleteStep} hoverable name="DeleteOutline" />
|
<AbsTooltip type="negative" text="Delete step">
|
||||||
</AbsTooltip>
|
<Icon on:click={deleteStep} hoverable name="DeleteOutline" />
|
||||||
|
</AbsTooltip>
|
||||||
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
{#if !showTestStatus}
|
{#if !showTestStatus}
|
||||||
<Icon
|
<Icon
|
||||||
|
@ -244,18 +255,21 @@
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
input {
|
input {
|
||||||
font-family: var(--font-sans);
|
|
||||||
color: var(--ink);
|
color: var(--ink);
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
font-size: var(--spectrum-alias-font-size-default);
|
|
||||||
width: 230px;
|
width: 230px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.input-text {
|
||||||
|
font-size: var(--spectrum-alias-font-size-default);
|
||||||
|
font-family: var(--font-sans);
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
input:focus {
|
input:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
<div class="block" style={width ? `width: ${width}` : ""}>
|
<div class="block" style={width ? `width: ${width}` : ""}>
|
||||||
{#if block.stepId !== ActionStepID.LOOP}
|
{#if block.stepId !== ActionStepID.LOOP}
|
||||||
<FlowItemHeader
|
<FlowItemHeader
|
||||||
|
enableNaming={false}
|
||||||
open={!!openBlocks[block.id]}
|
open={!!openBlocks[block.id]}
|
||||||
on:toggle={() => (openBlocks[block.id] = !openBlocks[block.id])}
|
on:toggle={() => (openBlocks[block.id] = !openBlocks[block.id])}
|
||||||
isTrigger={idx === 0}
|
isTrigger={idx === 0}
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
{/if}
|
{/if}
|
||||||
{#key history}
|
{#key history}
|
||||||
<div class="history">
|
<div class="history">
|
||||||
<TestDisplay testResults={history} width="100%" />
|
<TestDisplay testResults={history} width="320px" />
|
||||||
</div>
|
</div>
|
||||||
{/key}
|
{/key}
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
|
@ -32,6 +32,7 @@ import {
|
||||||
structures,
|
structures,
|
||||||
} from "@budibase/backend-core/tests"
|
} from "@budibase/backend-core/tests"
|
||||||
import _ from "lodash"
|
import _ from "lodash"
|
||||||
|
import * as uuid from "uuid"
|
||||||
|
|
||||||
const timestamp = new Date("2023-01-26T11:48:57.597Z").toISOString()
|
const timestamp = new Date("2023-01-26T11:48:57.597Z").toISOString()
|
||||||
tk.freeze(timestamp)
|
tk.freeze(timestamp)
|
||||||
|
@ -68,7 +69,7 @@ describe.each([
|
||||||
|
|
||||||
const generateTableConfig: () => SaveTableRequest = () => {
|
const generateTableConfig: () => SaveTableRequest = () => {
|
||||||
return {
|
return {
|
||||||
name: generator.word(),
|
name: uuid.v4(),
|
||||||
type: "table",
|
type: "table",
|
||||||
primary: ["id"],
|
primary: ["id"],
|
||||||
primaryDisplay: "name",
|
primaryDisplay: "name",
|
||||||
|
@ -481,7 +482,7 @@ describe.each([
|
||||||
})
|
})
|
||||||
|
|
||||||
const createViewResponse = await config.createView({
|
const createViewResponse = await config.createView({
|
||||||
name: generator.word(),
|
name: uuid.v4(),
|
||||||
schema: {
|
schema: {
|
||||||
Country: {
|
Country: {
|
||||||
visible: true,
|
visible: true,
|
||||||
|
@ -816,7 +817,8 @@ describe.each([
|
||||||
RelationshipType.ONE_TO_MANY,
|
RelationshipType.ONE_TO_MANY,
|
||||||
["link"],
|
["link"],
|
||||||
{
|
{
|
||||||
name: generator.word(),
|
// Making sure that the combined table name + column name is within postgres limits
|
||||||
|
name: uuid.v4().replace(/-/g, "").substring(0, 16),
|
||||||
type: "table",
|
type: "table",
|
||||||
primary: ["id"],
|
primary: ["id"],
|
||||||
primaryDisplay: "id",
|
primaryDisplay: "id",
|
||||||
|
@ -949,7 +951,7 @@ describe.each([
|
||||||
describe("view 2.0", () => {
|
describe("view 2.0", () => {
|
||||||
async function userTable(): Promise<Table> {
|
async function userTable(): Promise<Table> {
|
||||||
return {
|
return {
|
||||||
name: `users_${generator.word()}`,
|
name: `users_${uuid.v4()}`,
|
||||||
sourceId: INTERNAL_TABLE_SOURCE_ID,
|
sourceId: INTERNAL_TABLE_SOURCE_ID,
|
||||||
sourceType: TableSourceType.INTERNAL,
|
sourceType: TableSourceType.INTERNAL,
|
||||||
type: "table",
|
type: "table",
|
||||||
|
@ -1133,7 +1135,7 @@ describe.each([
|
||||||
const viewSchema = { age: { visible: true }, name: { visible: true } }
|
const viewSchema = { age: { visible: true }, name: { visible: true } }
|
||||||
async function userTable(): Promise<Table> {
|
async function userTable(): Promise<Table> {
|
||||||
return {
|
return {
|
||||||
name: `users_${generator.word()}`,
|
name: `users_${uuid.v4()}`,
|
||||||
sourceId: INTERNAL_TABLE_SOURCE_ID,
|
sourceId: INTERNAL_TABLE_SOURCE_ID,
|
||||||
sourceType: TableSourceType.INTERNAL,
|
sourceType: TableSourceType.INTERNAL,
|
||||||
type: "table",
|
type: "table",
|
||||||
|
@ -1630,7 +1632,7 @@ describe.each([
|
||||||
}),
|
}),
|
||||||
(tableId: string) =>
|
(tableId: string) =>
|
||||||
config.api.row.save(tableId, {
|
config.api.row.save(tableId, {
|
||||||
name: generator.word(),
|
name: uuid.v4(),
|
||||||
description: generator.paragraph(),
|
description: generator.paragraph(),
|
||||||
tableId,
|
tableId,
|
||||||
}),
|
}),
|
||||||
|
|
Loading…
Reference in New Issue