Quick fixes for UI, making sure relationships UI not displayed unless tables exist and fixing issue with through being sent up with one-to-many.

This commit is contained in:
mike12345567 2021-07-05 11:03:54 +01:00
parent ea8fea98a9
commit 006db17bfc
2 changed files with 24 additions and 19 deletions

View File

@ -61,6 +61,10 @@
fromRelationship.relationshipType === RelationshipTypes.MANY_TO_MANY
// main is simply used to know this is the side the user configured it from
const id = uuid()
if (!manyToMany) {
delete fromRelationship.through
delete toRelationship.through
}
let relateFrom = {
...fromRelationship,
type: "link",
@ -154,21 +158,21 @@
bind:value={toRelationship.tableId}
/>
<Select
label={"Select to table"}
options={tableOptions}
bind:value={fromRelationship.tableId}
label={"Select to table"}
options={tableOptions}
bind:value={fromRelationship.tableId}
/>
{#if fromRelationship?.relationshipType === RelationshipTypes.MANY_TO_MANY}
<Select
label={"Through"}
options={tableOptions}
bind:value={fromRelationship.through}
label={"Through"}
options={tableOptions}
bind:value={fromRelationship.through}
/>
{:else if toTable}
<Select
label={`Foreign Key (${toTable?.name})`}
options={Object.keys(toTable?.schema)}
bind:value={fromRelationship.fieldName}
label={`Foreign Key (${toTable?.name})`}
options={Object.keys(toTable?.schema)}
bind:value={fromRelationship.fieldName}
/>
{/if}
<div class="headings">

View File

@ -198,18 +198,19 @@
</div>
{/each}
</div>
<Divider />
<div class="query-header">
<Heading size="S">Relationships</Heading>
<Button primary on:click={() => openRelationshipModal()}
>Create Relationship</Button
>
</div>
<Body>
{#if plusTables?.length !== 0}
<Divider />
<div class="query-header">
<Heading size="S">Relationships</Heading>
<Button primary on:click={() => openRelationshipModal()}
>Create Relationship</Button
>
</div>
<Body>
Tell budibase how your tables are related to get even more smart
features.
</Body>
</Body>
{/if}
<div class="query-list">
{#each Object.values(relationships) as relationship}
<div