Files

48 lines
1.4 KiB
Svelte
Raw Permalink Normal View History

2023-10-02 23:10:49 +03:00
<script>
import {getContext} from "svelte";
2024-08-16 17:38:26 +03:00
import PreviewReference from "./previews/PreviewReference.svelte";
2023-10-02 23:10:49 +03:00
const channel = getContext("channel");
export let graph;
2023-10-14 20:26:57 +03:00
function findEdgeField(schema, edgeField){
if(edgeField.includes(":")){
let edgeFieldAr = edgeField.split(":");
edgeField = edgeFieldAr[0];
}
return schema.fields.find((f) => f.name === edgeField);
}
2024-08-16 17:38:26 +03:00
let backlinks = graph.parentEdges.map(edge => {
const parentRecord = graph.records.find( record => record.id === edge.source);
let schema = channel.schemas.find((s) => s.name === parentRecord.schema);
2024-08-16 17:38:26 +03:00
let edgeField = findEdgeField(schema,edge.field);
2024-09-07 15:57:31 +03:00
if(!edgeField){
return null;
}
2024-08-16 17:38:26 +03:00
return {
field: edgeField.label,
record: parentRecord
2024-08-16 17:38:26 +03:00
}
2024-09-07 15:57:31 +03:00
}).filter( edgeOrNull => !!edgeOrNull)
2023-10-02 23:10:49 +03:00
</script>
2024-08-17 19:23:19 +03:00
<div class="editor-field">
2024-08-16 17:38:26 +03:00
{#each backlinks as backlink}
<div style="margin: 0 0 15px;position: relative;">
<span style="
font-size: 14px;
margin-bottom: 5px;
display: block;
2024-08-17 19:23:19 +03:00
2024-08-16 17:38:26 +03:00
"
2024-08-17 19:23:19 +03:00
>In <i>{backlink.field}</i> of</span>
2024-08-16 17:38:26 +03:00
<PreviewReference
record={backlink.record}
hasDelete={false}
{graph}
/>
2023-10-02 23:10:49 +03:00
</div>
2024-08-18 17:23:18 +03:00
{:else}
Nothing links to this record
2023-10-02 23:10:49 +03:00
{/each}
2024-08-17 19:23:19 +03:00
</div>