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
 |