191 lines
5.8 KiB
PHP
191 lines
5.8 KiB
PHP
@extends('base')
|
||
@section('main')
|
||
<article>
|
||
<header>
|
||
<h1>{{ $basic['name']['value'] }}</h1>
|
||
</header>
|
||
<div class="grid">
|
||
@if (isset($basic['desc']))
|
||
<div>
|
||
<p style="hyphens: auto;hyphenate-limit-chars: auto 3; hyphenate-limit-lines: 4;">
|
||
{{ $basic['desc']['value'] }}
|
||
</p>
|
||
<div>
|
||
<h2>Weblinks</h2>
|
||
<div id="metagrid-widget">
|
||
<span aria-busy="true">Links werden gesucht</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
@endif
|
||
<div>
|
||
<dl>
|
||
<dt>Geschlecht (biologisch)</dt>
|
||
<dd>{{ $basic['sex']['value'] == 'Female (biological sex)' ? 'Weiblich' : 'Männlich' }}</dd>
|
||
@if (isset($basic['birth_date']))
|
||
<dt>Geburtsdatum</dt>
|
||
<dd>{{ $basic['birth_date']['value'] }}</dd>
|
||
@endif
|
||
@if (isset($basic['baptism_date']))
|
||
<dt>Taufdatum</dt>
|
||
<dd>{{ $basic['baptism_date']['value'] }}</dd>
|
||
@endif
|
||
@if (isset($basic['death_date']))
|
||
<dt>Todesdatum</dt>
|
||
<dd>{{ $basic['death_date']['value'] }}</dd>
|
||
@endif
|
||
@if (isset($basic['burial_date']))
|
||
<dt>Begräbnisdatum</dt>
|
||
<dd>{{ $basic['burial_date']['value'] }}</dd>
|
||
@endif
|
||
</dl>
|
||
|
||
</div>
|
||
<div>
|
||
<dl>
|
||
@if ($parents)
|
||
<dt>Eltern</dt>
|
||
@foreach ($parents as $child)
|
||
<dd><a href="/person/{{ $child['ark']['value'] }}">{{ $child['name']['value'] }}</a></dd>
|
||
@endforeach
|
||
@endif
|
||
@if ($siblings)
|
||
<dt>Geschwister</dt>
|
||
@foreach ($siblings as $sibling)
|
||
<dd><a href="/person/{{ $sibling['ark']['value'] }}">{{ $sibling['name']['value'] }}</a></dd>
|
||
@endforeach
|
||
@endif
|
||
@if ($spouses)
|
||
<dt>Ehepartner:innen</dt>
|
||
@foreach ($spouses as $spouse)
|
||
<dd><a href="/person/{{ $spouse['ark']['value'] }}">{{ $spouse['name']['value'] }}</a></dd>
|
||
@endforeach
|
||
@endif
|
||
@if ($partner)
|
||
<dt>Lebenspartner:innen</dt>
|
||
@foreach ($partner as $p)
|
||
<dd><a href="/person/{{ $p['ark']['value'] }}">{{ $p['name']['value'] }}</a></dd>
|
||
@endforeach
|
||
@endif
|
||
@if ($children)
|
||
<dt>Kinder</dt>
|
||
@foreach ($children as $child)
|
||
<dd><a href="/person/{{ $child['ark']['value'] }}">{{ $child['name']['value'] }}</a></dd>
|
||
@endforeach
|
||
@endif
|
||
</dl>
|
||
|
||
<ul>
|
||
<li><a title="Verzeichnungseinheiten zu «{{ $basic['name']['value'] }}» im Archivkatalog der Burgerbibliothek Bern."
|
||
href="https://katalog.burgerbib.ch/resultatliste.aspx?deskriptorId={{ $basic['scope_id']['value'] }}">
|
||
Verzeichnungseinheiten
|
||
</a></li>
|
||
@if (isset($basic['birth_date']))
|
||
<li><a href="/timeline?from={{ $basic['birth_date']['value'] }}">
|
||
Zeitstrahl
|
||
</a></li>
|
||
@endif
|
||
</ul>
|
||
</div>
|
||
|
||
</div>
|
||
</article>
|
||
|
||
@if ($links)
|
||
<article>
|
||
<header>Nachkommenschaft</header>
|
||
<div id="tree-chart" style="height: 1000px"></div>
|
||
</article>
|
||
|
||
@vite('resources/js/treechart.js')
|
||
<script type="module">
|
||
const option = {
|
||
series: {
|
||
type: 'tree',
|
||
roam: true,
|
||
symbol: 'emptyCircle',
|
||
expandAndCollapse: false,
|
||
layout: 'radial',
|
||
data: [{
|
||
name: '{{ $basic['name']['value'] }}',
|
||
ark: '{{ $ark }}',
|
||
symbolSize: 15,
|
||
children: {!! json_encode($links) !!}
|
||
}],
|
||
emphasis: {
|
||
focus: 'ancestor',
|
||
},
|
||
emphasis: {
|
||
focus: 'descendant'
|
||
},
|
||
radius: [0, '90%'],
|
||
labelLayout: {
|
||
hideOverlap: true,
|
||
},
|
||
label: {
|
||
rotate: 'tangential',
|
||
fontSize: 21,
|
||
color: '#fff',
|
||
backgroundColor: '#181c25'
|
||
}
|
||
}
|
||
};
|
||
|
||
option && treeChart.setOption(option);
|
||
|
||
treeChart.on('click', (e) => {
|
||
window.open(`/person/${e.data.ark}`, '_self');
|
||
});
|
||
</script>
|
||
@endif
|
||
|
||
<template id="metagrid-template">
|
||
<div>
|
||
<ul></ul>
|
||
<p>
|
||
<small>Links via <a href="https://www.metagrid.ch/">Metagrid</a> – die Vernetzungsinitiative der
|
||
SAGW</small>
|
||
</p>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
async function metagridWidget() {
|
||
|
||
let response;
|
||
const metagridWidget = document.getElementById('metagrid-widget');
|
||
const metagridTemplate = document.getElementById('metagrid-template');
|
||
const clone = metagridTemplate.content.cloneNode(true);
|
||
|
||
try {
|
||
response = await fetch('https://api.metagrid.ch/widget/burgerbibliothek/person/{{ $basic['scope_id']['value'] }}.json');
|
||
} catch (error) {
|
||
console.log('Fehler:', error);
|
||
}
|
||
|
||
if (await response?.ok) {
|
||
|
||
let r = await response.json();
|
||
const list = clone.querySelector('ul');
|
||
|
||
for (const [key, value] of Object.entries(r[0])) {
|
||
let li = document.createElement('li');
|
||
li.innerHTML = `<a href="${value.url}" data-tooltip="${value.short_description}">${key}</a>`
|
||
list.appendChild(li)
|
||
}
|
||
|
||
metagridWidget.replaceWith(clone);
|
||
|
||
} else {
|
||
let noLinks = document.createElement('p');
|
||
noLinks.innerText = 'Keine Links vorhanden.';
|
||
noLinks.classList.add('badge');
|
||
|
||
metagridWidget.replaceWith(noLinks);
|
||
}
|
||
|
||
}
|
||
|
||
metagridWidget();
|
||
</script>
|
||
@endsection
|