Files
lucent-laravel/front/js/svelte/records/Graph.svelte
T

46 lines
1.3 KiB
Svelte

<script>
import {getContext} from "svelte";
import PreviewReference from "./previews/PreviewReference.svelte";
const channel = getContext("channel");
export let graph;
function findEdgeField(schema, edgeField){
if(edgeField.includes(":")){
let edgeFieldAr = edgeField.split(":");
edgeField = edgeFieldAr[0];
}
return schema.fields.find((f) => f.name === edgeField);
}
let backlinks = graph.parentEdges.map(edge => {
let schema = channel.schemas.find((s) => s.name === edge.sourceSchema);
let edgeField = findEdgeField(schema,edge.field);
if(!edgeField){
return null;
}
return {
field: edgeField.label,
record: graph.records.find( record => record.id === edge.source)
}
}).filter( edgeOrNull => !!edgeOrNull)
</script>
<div class="editor-field">
{#each backlinks as backlink}
<div style="margin: 0 0 15px;position: relative;">
<span style="
font-size: 14px;
margin-bottom: 5px;
display: block;
"
>In <i>{backlink.field}</i> of</span>
<PreviewReference
record={backlink.record}
hasDelete={false}
{graph}
/>
</div>
{:else}
Nothing links to this record
{/each}
</div>