<?php
/**
 * @var \{{ namespace }}\View\AppView $this
 * @var \{{ entityClass }} ${{ singularVar }}
 */
?>
<?php $this->extend('/layout/TwitterBootstrap/dashboard'); ?>
{% set associations = {'BelongsTo': [], 'HasOne': [], 'HasMany': [], 'BelongsToMany': []}|merge(associations) %}
{% set fieldsData = Bake.getViewFieldsData(fields, schema, associations) %}
{% set associationFields = fieldsData.associationFields %}
{% set groupedFields = fieldsData.groupedFields %}
{% set pK = '$' ~ singularVar ~ '->' ~ primaryKey[0] %}

<?php $this->start('tb_actions'); ?>
<li><?= $this->Html->link(__('Edit {{ singularHumanName }}'), ['action' => 'edit', {{ pK|raw }}], ['class' => 'nav-link']) ?></li>
<li><?= $this->Form->postLink(__('Delete {{ singularHumanName }}'), ['action' => 'delete', {{ pK|raw }}], ['confirm' => __('Are you sure you want to delete # {0}?', ${{ singularVar }}->{{ primaryKey[0] }}), 'class' => 'nav-link']) ?></li>
<li><?= $this->Html->link(__('List {{ pluralHumanName }}'), ['action' => 'index'], ['class' => 'nav-link']) ?> </li>
<li><?= $this->Html->link(__('New {{ singularHumanName }}'), ['action' => 'add'], ['class' => 'nav-link']) ?> </li>
{% set done = [] %}
{% for type, data in associations %}
{% for alias, details in data %}
{% if details.controller is not same as(_view.name) and details.controller not in done %}
<li><?= $this->Html->link(__('List {{ alias|underscore|humanize }}'), ['controller' => '{{ details.controller }}', 'action' => 'index'], ['class' => 'nav-link']) ?></li>
<li><?= $this->Html->link(__('New {{ alias|underscore|singularize|humanize }}'), ['controller' => '{{ details.controller }}', 'action' => 'add'], ['class' => 'nav-link']) ?></li>
{% set done = done|merge(['controller']) %}
{% endif %}
{% endfor %}
{% endfor %}
<?php $this->end(); ?>
<?php $this->assign('tb_sidebar', '<ul class="nav flex-column">' . $this->fetch('tb_actions') . '</ul>'); ?>

<div class="{{ pluralVar }} view large-9 medium-8 columns content">
    <h3><?= h(${{ singularVar }}->{{ displayField }}) ?></h3>
    <div class="table-responsive">
        <table class="table table-striped">
{% if groupedFields['string'] %}
{% for field in groupedFields['string'] %}
{% if associationFields[field] is defined %}
{% set details = associationFields[field] %}
            <tr>
                <th scope="row"><?= __('{{ details.property|humanize }}') ?></th>
                <td><?= ${{ singularVar }}->hasValue('{{ details.property }}') ? $this->Html->link(${{ singularVar }}->{{ details.property }}->{{ details.displayField }}, ['controller' => '{{ details.controller }}', 'action' => 'view', ${{ singularVar }}->{{ details.property }}->{{ details.primaryKey[0] }}]) : '' ?></td>
            </tr>
{% else %}
            <tr>
                <th scope="row"><?= __('{{ field|humanize }}') ?></th>
                <td><?= h(${{ singularVar }}->{{ field }}) ?></td>
            </tr>
{% endif %}
{% endfor %}
{% endif %}
{% if associations.HasOne %}
{% for alias, details in associations.HasOne %}
            <tr>
                <th scope="row"><?= __('{{ alias|underscore|singularize|humanize }}') ?></th>
                <td><?= ${{ singularVar }}->hasValue('{{ details.property }}') ? $this->Html->link(${{ singularVar }}->{{ details.property }}->{{ details.displayField }}, ['controller' => '{{ details.controller }}', 'action' => 'view', ${{ singularVar }}->{{ details.property }}->{{ details.primaryKey[0] }}]) : '' ?></td>
            </tr>
{% endfor %}
{% endif %}
{% if groupedFields.number %}
{% for field in groupedFields.number %}
            <tr>
                <th scope="row"><?= __('{{ field|humanize }}') ?></th>
{% set columnData = Bake.columnData(field, schema) %}
{% if columnData.null %}
                <td><?= ${{ singularVar }}->{{ field }} === null ? '' : $this->Number->format(${{ singularVar }}->{{ field }}) ?></td>
{% else %}
                <td><?= $this->Number->format(${{ singularVar }}->{{ field }}) ?></td>
{% endif %}
            </tr>
{% endfor %}
{% endif %}
{% if groupedFields.date %}
{% for field in groupedFields.date %}
            <tr>
                <th scope="row"><?= __('{{ field|humanize }}') ?></th>
                <td><?= h(${{ singularVar }}->{{ field }}) ?></td>
            </tr>
{% endfor %}
{% endif %}
{% if groupedFields.boolean %}
{% for field in groupedFields.boolean %}
            <tr>
                <th scope="row"><?= __('{{ field|humanize }}') ?></th>
                <td><?= ${{ singularVar }}->{{ field }} ? __('Yes') : __('No'); ?></td>
            </tr>
{% endfor %}
{% endif %}
        </table>
    </div>
{% if groupedFields.text %}
{% for field in groupedFields.text %}
    <div class="text">
        <h4><?= __('{{ field|humanize }}') ?></h4>
        <?= $this->Text->autoParagraph(h(${{ singularVar }}->{{ field }})); ?>
    </div>
{% endfor %}
{% endif %}
{% set relations = associations.BelongsToMany|merge(associations.HasMany) %}
{% for alias, details in relations %}
{% set otherSingularVar = alias|variable %}
{% set otherPluralHumanName = details.controller|underscore|humanize %}
    <div class="related">
        <h4><?= __('Related {{ otherPluralHumanName }}') ?></h4>
        <?php if (!empty(${{ singularVar }}->{{ details.property }})): ?>
        <div class="table-responsive">
            <table class="table table-striped">
                <tr>
{% for field in details.fields %}
                    <th scope="col"><?= __('{{ field|humanize }}') ?></th>
{% endfor %}
                    <th scope="col" class="actions"><?= __('Actions') ?></th>
                </tr>
                <?php foreach (${{ singularVar }}->{{ details.property }} as ${{ otherSingularVar }}): ?>
                <tr>
{% for field in details.fields %}
                    <td><?= h(${{ otherSingularVar }}->{{ field }}) ?></td>
{% endfor %}
{% set otherPk = '$' ~ otherSingularVar ~ '->' ~ details.primaryKey[0] %}
                    <td class="actions">
                        <?= $this->Html->link(__('View'), ['controller' => '{{ details.controller }}', 'action' => 'view', {{ otherPk|raw }}], ['class' => 'btn btn-secondary']) ?>
                        <?= $this->Html->link(__('Edit'), ['controller' => '{{ details.controller }}', 'action' => 'edit', {{ otherPk|raw }}], ['class' => 'btn btn-secondary']) ?>
                        <?= $this->Form->postLink( __('Delete'), ['controller' => '{{ details.controller }}', 'action' => 'delete', {{ otherPk|raw }}], ['confirm' => __('Are you sure you want to delete # {0}?', {{ otherPk|raw }}), 'class' => 'btn btn-danger']) ?>
                    </td>
                </tr>
                <?php endforeach; ?>
            </table>
        </div>
        <?php endif; ?>
    </div>
{% endfor %}
</div>
