From 069ae7270543fa45efac5d5b664a12c7e2c1da5f Mon Sep 17 00:00:00 2001 From: lexx Date: Wed, 22 May 2024 17:05:25 +0300 Subject: [PATCH] fix sort --- front/js/svelte/edges/sortEdges.js | 8 +++-- front/js/svelte/libs/Sortable.svelte | 2 +- .../svelte/records/block/elements/File.svelte | 2 +- .../records/block/elements/Reference.svelte | 2 +- front/js/svelte/records/elements/File.svelte | 33 ++++++++++--------- .../svelte/records/elements/Reference.svelte | 4 ++- .../records/elements/ReferenceInline.svelte | 2 +- .../records/elements/ReferenceTable.svelte | 2 +- .../records/elements/ReferenceTags.svelte | 12 ++----- 9 files changed, 34 insertions(+), 33 deletions(-) diff --git a/front/js/svelte/edges/sortEdges.js b/front/js/svelte/edges/sortEdges.js index 282ec62..0c1bc54 100644 --- a/front/js/svelte/edges/sortEdges.js +++ b/front/js/svelte/edges/sortEdges.js @@ -1,8 +1,12 @@ -export function sortByField(from, to, edges, fieldName) { + + + +export function sortByField(from, to, edges, fieldName, references) { if (from === to) { return edges; } - let edgesTosort = edges?.filter((ed) => ed.field === fieldName && ed.depth === 1 ) ?? []; + let referenceIds = references.map(r => r.id); + let edgesTosort = edges?.filter((ed) => ed.field === fieldName && ed.depth === 1 && referenceIds.includes(ed.target)) ?? []; let remainingEdge = edges?.filter((ed) => !(ed.field === fieldName && ed.depth === 1)) ?? []; edgesTosort = array_move(edgesTosort,from, to); diff --git a/front/js/svelte/libs/Sortable.svelte b/front/js/svelte/libs/Sortable.svelte index d3ef4fa..00d2693 100644 --- a/front/js/svelte/libs/Sortable.svelte +++ b/front/js/svelte/libs/Sortable.svelte @@ -18,7 +18,7 @@ easing: "cubic-bezier(1, 0, 0, 1)", onUpdate: function (/**Event*/ evt) { // reorder(evt.oldIndex,evt.newIndex); - console.log(evt) + // console.log(evt) dispatch("update", { source: evt.oldIndex, target: evt.newIndex, diff --git a/front/js/svelte/records/block/elements/File.svelte b/front/js/svelte/records/block/elements/File.svelte index 2ede75a..0a26796 100644 --- a/front/js/svelte/records/block/elements/File.svelte +++ b/front/js/svelte/records/block/elements/File.svelte @@ -41,7 +41,7 @@ } function reorder(e) { - graph.edges = sortByField(e.detail.source, e.detail.target, graph.edges, blockFieldName); + graph.edges = sortByField(e.detail.source, e.detail.target, graph.edges, blockFieldName, references); } function insert(e) { diff --git a/front/js/svelte/records/block/elements/Reference.svelte b/front/js/svelte/records/block/elements/Reference.svelte index 7937f22..aaac785 100644 --- a/front/js/svelte/records/block/elements/Reference.svelte +++ b/front/js/svelte/records/block/elements/Reference.svelte @@ -35,7 +35,7 @@ } function reorder(e) { - graph.edges = sortByField(e.detail.source, e.detail.target, graph.edges, blockFieldName); + graph.edges = sortByField(e.detail.source, e.detail.target, graph.edges, blockFieldName, references); } function insert(e) { diff --git a/front/js/svelte/records/elements/File.svelte b/front/js/svelte/records/elements/File.svelte index 4baf748..ffd5333 100644 --- a/front/js/svelte/records/elements/File.svelte +++ b/front/js/svelte/records/elements/File.svelte @@ -12,11 +12,10 @@ export let graph let browseModal; - $: references = graph?.edges .filter((edge) => edge.field === field.name) .map((edge) => { - return graph.records.find((increc) => increc.id == edge.target && record.id == edge.source); + return graph.records.find((increc) => increc.id === edge.target && record.id === edge.source); }).filter((rec) => (rec?.id ? true : false)) ?? []; let collections = channel.schemas.filter((aschema) => @@ -36,7 +35,9 @@ } async function reorder(e) { - graph.edges = await sortByField(e.detail.source, e.detail.target, graph.edges, field.name); + + graph.edges = await sortByField(e.detail.source, e.detail.target, graph.edges, field.name, references); + } function insert(e) { @@ -68,18 +69,18 @@
{#if field.collections.length === 1} {:else}