files
This commit is contained in:
@@ -50,6 +50,7 @@
|
||||
{channel}
|
||||
fields={data.fields}
|
||||
edgeRecordPreviews={data.edgeRecordPreviewsDraft}
|
||||
filesPreviews={data.filesPreviewsDraft}
|
||||
{record}
|
||||
{selectedLocales}
|
||||
validationErrors={data.validationErrors}
|
||||
@@ -62,6 +63,7 @@
|
||||
{channel}
|
||||
fields={data.fields}
|
||||
edgeRecordPreviews={data.edgeRecordPreviewsLive}
|
||||
filesPreviews={data.filesPreviewsLive}
|
||||
{record}
|
||||
{selectedLocales}
|
||||
validationErrors={data.validationErrors}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
validationErrors,
|
||||
fieldData,
|
||||
edgeRecordPreviews,
|
||||
filesPreviews,
|
||||
selectedLocales,
|
||||
} = $props();
|
||||
const findFieldValidationError = (field, locale) => {
|
||||
@@ -26,6 +27,13 @@
|
||||
(e) => e.edge.fieldId === field.id && e.edge.locale === locale,
|
||||
);
|
||||
};
|
||||
const findFieldFiles = (field, locale) => {
|
||||
return filesPreviews.filter(
|
||||
(f) =>
|
||||
f.recordFile.fieldId === field.id &&
|
||||
f.recordFile.locale === locale,
|
||||
);
|
||||
};
|
||||
</script>
|
||||
|
||||
{#each fields as field}
|
||||
@@ -88,6 +96,6 @@
|
||||
schemaField={field}
|
||||
{locale}
|
||||
dataField={findDataField(field, locale)}
|
||||
edgeRecordPreviews={findFieldEdges(field, locale)}
|
||||
filesPreviews={findFieldFiles(field, locale)}
|
||||
></FileField>
|
||||
{/snippet}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
locale,
|
||||
validationError,
|
||||
edgeRecordPreviews,
|
||||
filesPreviews,
|
||||
} = $props();
|
||||
let originalValue = dataField?.value ?? schemaField.props.default;
|
||||
let newValue = $state(originalValue);
|
||||
@@ -26,7 +27,7 @@
|
||||
|
||||
let suggestionsLoaded = $state(false);
|
||||
let suggestions = $state([]);
|
||||
let selectedRecordIds = $state([]);
|
||||
let selectedFilesIds = $state([]);
|
||||
let dialog = $state();
|
||||
|
||||
function handleModalOpen(e) {
|
||||
@@ -35,10 +36,10 @@
|
||||
if (suggestionsLoaded) {
|
||||
return;
|
||||
}
|
||||
// get(app.url("records/files"), { recordId: record.id }, (data, err) => {
|
||||
suggestionsLoaded = true;
|
||||
// suggestions = data;
|
||||
// });
|
||||
get(app.url("records/files"), { recordId: record.id }, (data, err) => {
|
||||
suggestionsLoaded = true;
|
||||
suggestions = data;
|
||||
});
|
||||
}
|
||||
|
||||
function handleModalClose(e) {
|
||||
@@ -48,9 +49,9 @@
|
||||
function handleInsertSelected() {
|
||||
suggestionsLoaded = false;
|
||||
post(
|
||||
app.url("edges/many"),
|
||||
app.url("records/files"),
|
||||
{
|
||||
toIds: selectedRecordIds,
|
||||
toIds: selectedFilesIds,
|
||||
from: record.id,
|
||||
fieldId: schemaField.id,
|
||||
locale: locale,
|
||||
@@ -179,17 +180,13 @@
|
||||
<input
|
||||
type="checkbox"
|
||||
value={suggestion.id}
|
||||
bind:group={selectedRecordIds}
|
||||
bind:group={selectedFilesIds}
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#">{suggestion.title}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#">
|
||||
{suggestion.schemaName}
|
||||
</a>
|
||||
<a href="#">{suggestion.name}</a>
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
{/each}
|
||||
</tbody>
|
||||
@@ -201,21 +198,20 @@
|
||||
</article>
|
||||
</dialog>
|
||||
<div>
|
||||
{#if edgeRecordPreviews.length == 0}
|
||||
No relations exist
|
||||
{#if filesPreviews.length == 0}
|
||||
No files exist
|
||||
{:else}
|
||||
<Sortable
|
||||
onUpdate={handleSortUpdate}
|
||||
items={edgeRecordPreviews}
|
||||
itemKey="edge.id"
|
||||
items={filesPreviews}
|
||||
itemKey="recordFile.id"
|
||||
>
|
||||
{#snippet itemView(edgeRecordPreview)}
|
||||
{#snippet itemView(filesPreview)}
|
||||
<div>
|
||||
<a href="#">{edgeRecordPreview.recordPreview.title}</a>
|
||||
{edgeRecordPreview.recordPreview.schemaName}
|
||||
<a href="#">{filesPreview.file.name}</a>
|
||||
<button
|
||||
onclick={(e) =>
|
||||
handleRemoveEdge(edgeRecordPreview.edge.id)}
|
||||
handleRemoveEdge(filesPreview.recordFile.id)}
|
||||
>remove</button
|
||||
>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user