mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
Make relationship inputs strictly optional
This commit is contained in:
+6
-6
@@ -297,7 +297,7 @@
|
||||
<Layout.Stack direction="row">
|
||||
<InputSelect
|
||||
{id}
|
||||
required={column.required}
|
||||
required={column.required === true}
|
||||
{options}
|
||||
bind:value={relatedList[0]}
|
||||
placeholder={`Select ${column.key}`}
|
||||
@@ -316,7 +316,7 @@
|
||||
<Layout.Stack direction="row">
|
||||
<InputSelect
|
||||
{id}
|
||||
required={column.required}
|
||||
required={column.required === true}
|
||||
autofocus={limited}
|
||||
options={getAvailableOptions(actualIndex)}
|
||||
bind:value={relatedList[actualIndex]}
|
||||
@@ -346,7 +346,7 @@
|
||||
<Layout.Stack direction="row">
|
||||
<InputSelect
|
||||
{id}
|
||||
required={column.required}
|
||||
required={column.required === true}
|
||||
options={getAvailableOptions(i)}
|
||||
bind:value={item}
|
||||
on:change={updateRelatedList}
|
||||
@@ -376,7 +376,7 @@
|
||||
<Layout.Stack direction="row">
|
||||
<Input.ComboBox
|
||||
{id}
|
||||
required={column.required}
|
||||
required={column.required === true}
|
||||
on:change={addNewItem}
|
||||
bind:value={newItemValue}
|
||||
options={availableOptions}
|
||||
@@ -417,7 +417,7 @@
|
||||
{options}
|
||||
autofocus={limited}
|
||||
bind:value={newItemValue}
|
||||
required={column.required}
|
||||
required={column.required === true}
|
||||
label={limited ? undefined : label}
|
||||
placeholder={`Select ${column.key}`}
|
||||
noResultsOption={searchNoResultsOption}
|
||||
@@ -444,7 +444,7 @@
|
||||
{options}
|
||||
autofocus={limited}
|
||||
bind:value={newItemValue}
|
||||
required={column.required}
|
||||
required={column.required === true}
|
||||
label={limited ? undefined : label}
|
||||
disabled={noOptions}
|
||||
placeholder={noOptions ? 'No related items available' : `Select ${column.key}`}
|
||||
|
||||
+1
-14
@@ -118,10 +118,6 @@
|
||||
|
||||
if (isRelationship(column)) {
|
||||
if (isRelationshipToMany(column as Models.ColumnRelationship)) {
|
||||
if (!Array.isArray(workColumn) || !Array.isArray(currentColumn)) {
|
||||
return workColumn === currentColumn;
|
||||
}
|
||||
|
||||
const workIds = workColumn.map((doc: string | Record<string, unknown>) =>
|
||||
typeof doc === 'string' ? doc : doc.$id
|
||||
);
|
||||
@@ -146,20 +142,11 @@
|
||||
if (!row || !work) return;
|
||||
|
||||
try {
|
||||
const data = $table?.columns?.length
|
||||
? $table.columns.reduce((acc, column) => {
|
||||
if (!compareColumns(column, $work, row)) {
|
||||
acc[column.key] = $work?.[column.key];
|
||||
}
|
||||
return acc;
|
||||
}, {} as Record<string, unknown>)
|
||||
: { ...$work };
|
||||
|
||||
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
|
||||
databaseId,
|
||||
tableId,
|
||||
rowId: row.$id,
|
||||
data,
|
||||
data: $work,
|
||||
permissions: $work.$permissions
|
||||
});
|
||||
|
||||
|
||||
+2
-18
@@ -213,19 +213,6 @@
|
||||
return workColumn === currentColumn;
|
||||
}
|
||||
|
||||
function buildUpdateData(workValue: Models.Row, originalRow: Models.Row) {
|
||||
if (!relatedTable?.columns?.length) {
|
||||
return { ...workValue };
|
||||
}
|
||||
|
||||
return relatedTable.columns.reduce((acc, column) => {
|
||||
if (!compareColumns(column, workValue, originalRow)) {
|
||||
acc[column.key] = workValue?.[column.key];
|
||||
}
|
||||
return acc;
|
||||
}, {} as Record<string, unknown>);
|
||||
}
|
||||
|
||||
function calculateAndCompareDisabledState() {
|
||||
if (!relatedTable?.columns?.length || !fetchedRows.length) return true;
|
||||
|
||||
@@ -258,13 +245,11 @@
|
||||
const work = workData.get(rowId);
|
||||
|
||||
const workValue = get(work);
|
||||
const originalRow = fetchedRows.find((row) => row.$id === rowId);
|
||||
const data = originalRow ? buildUpdateData(workValue, originalRow) : { ...workValue };
|
||||
await sdk.forProject(page.params.region, page.params.project).tablesDB.updateRow({
|
||||
databaseId,
|
||||
tableId: relatedTable.$id,
|
||||
rowId: rowId,
|
||||
data,
|
||||
data: workValue,
|
||||
permissions: workValue.$permissions
|
||||
});
|
||||
|
||||
@@ -278,14 +263,13 @@
|
||||
if (!work) return;
|
||||
|
||||
const workValue = get(work);
|
||||
const data = buildUpdateData(workValue, row);
|
||||
return sdk
|
||||
.forProject(page.params.region, page.params.project)
|
||||
.tablesDB.updateRow({
|
||||
databaseId,
|
||||
tableId: relatedTable.$id,
|
||||
rowId: row.$id,
|
||||
data,
|
||||
data: workValue,
|
||||
permissions: workValue.$permissions
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user