<?php
$attr = [];

if (isset($item['bPowiazanie']) && $item['bPowiazanie'] == 'Udostepnienie') {
    $attr['readonly'] = 'readonly';
}

$_tytul = $this->request->getSession()->read('licencja') == 'UMC' ? 'Formularz oceny okresowej' : 'Formularz informacji zwrotnej';

switch ($type) {
    case 'show':
        $tytul = $_tytul;
        $attr['readonly'] = 'readonly';
        $icon = 'fa-arrow-left';
        $iconColor = 'btn-primary';
        $iconTitle = 'Wyjście';
        break;

    case 'add':
    case 'edit':
        $tytul = $_tytul;
        $icon = 'fa-remove';
        $iconColor = 'btn-default';
        $iconTitle = 'Anuluj';
        break;

    default:
        $tytul = $_tytul;
        $icon = '';
        $iconColor = '';
        $iconTitle = 'Anuluj';
}

$options = [
    '' => '',
    'S' => 'S - Przewyższa wszystkie oczekiwania',
    'U' => 'U - Przewyższa oczekiwania',
    'P' => 'P - Spełnia oczekiwania',
    'E' => 'E - Poniżej oczekiwań',
    'R' => 'R - Nie spełnia oczekiwań',
    'Nie dotyczy' => 'Nie dotyczy',
];

$formatter = function (&$elements) use (&$formatter) {

    if (!is_array($elements)) {
        return;
    }

    foreach ($elements as $key => $element) {
        if (!empty($element['bEtykieta']) && is_string($element['bEtykieta'])) {
            $elements[$key]['bEtykieta'] = str_replace("\n", "<br>", $element['bEtykieta']);
        }

        if (!empty($element['bOpis']) && is_string($element['bOpis'])) {
            $elements[$key]['bOpis'] = str_replace("\n", "<br>", $element['bOpis']);
        }

        if (!empty($element['bSWartosc1']) && is_string($element['bSWartosc1'])) {
            $elements[$key]['bSWartosc1'] = str_replace("\n", "<br>", $element['bSWartosc1']);
        }

        if (!empty($element['bSWartosc2']) && is_string($element['bSWartosc2'])) {
            $elements[$key]['bSWartosc2'] = str_replace("\n", "<br>", $element['bSWartosc2']);
        }

        if (!empty($element['bSWartosc3']) && is_string($element['bSWartosc3'])) {
            $elements[$key]['bSWartosc3'] = str_replace("\n", "<br>", $element['bSWartosc3']);
        }

        if (!empty($element['bElementy']['bElementOceny']) && is_array($element['bElementy']['bElementOceny'])) {
            $formatter($elements[$key]['bElementy']['bElementOceny']);
        }
    }
};

if (isset($item['bElementy']['bElementOceny'])) {
    $formatter($item['bElementy']['bElementOceny']);
    $elements = json_encode($item['bElementy']['bElementOceny']);
    unset($item['bElementy']);
    unset($item['bElementySplaszczone']);
    $data = json_encode($item);
} else {
    $elements = "[]";
    $data = "[]";
}

$context = base64_encode('{"data":' . $data . ',"elements":' . $elements . ',"nrewid":' . json_encode($address) . '}');
$allow_oceny = !empty($appconfig['DostepneOceny']) ? json_encode(explode(',', $appconfig['DostepneOceny'])) : '["S","U","P","E","R"]';

?>
<div class="row ocena-panel">
    <div class="col-xs-3">
        <a id="form-anuluj" data-menu-action="ajax/oceny/daj_formularze_oceny/<?= $tab ?>/<?= $archive ?>"
           href="ajax/oceny/daj_formularze_oceny/<?= $tab ?>/<?= $archive ?>" class="btn <?= $iconColor ?>"><i
                class="fa <?= $icon ?>"></i> <?= $iconTitle ?></a>
    </div>
    <div class="col-xs-6" style="text-align: center">
        <h3><?= $tytul ?></h3>
    </div>
    <div class="col-xs-3" style="text-align: right">
        <?php if ($type !== 'show'): ?>
            <a data-run="save" class="btn btn-primary oceny-button-trigger"
               href="ajax/oceny/zapisz_formularz_oceny/<?= $type ?>"><i class="fa fa-save"></i> Zapisz</a>
            <?php if (($type == 'add' && $tab !== 'robocze') && $item['bCzyMozeOdRazuOpublikowac'] == 'true'): ?>
                <a data-run="save" class="btn btn-warning oceny-button-trigger"
                   href="ajax/oceny/zapisz_formularz_oceny/<?= $type ?>/public"><i class="fa fa-save"></i> Zapisz i
                    Publikuj</a>
            <?php endif; ?>
        <?php endif; ?>
    </div>
</div>
<?php echo $this->Form->create(null, array_merge(['name' => 'FormularzOceny', 'id' => 'FormularzOceny', 'class' => 'form-oceny'], $attr)); ?>
<?php echo $this->Form->input('FormularzOceny.Test', array_merge(array('id' => 'FormularzOcenyTest', 'type' => 'hidden', 'class' => 'form-control', 'div' => false, 'label' => false, 'value' => 'Test'), $attr)); ?>
<?php echo $this->Form->input('ContextElemnts', array_merge(array('id' => 'FormularzOcenyContextElemnts', 'type' => 'hidden', 'class' => 'form-control', 'div' => false, 'label' => false, 'value' => $context), $attr)); ?>
<?php echo $this->Form->input('FormularzOceny.bGid', array_merge(array('id' => 'FormularzOcenybGid', 'type' => 'hidden', 'class' => 'form-control', 'div' => false, 'label' => false, 'value' => $item['bGid']), $attr)); ?>
<div class="row ocena-form">
    <div class="col-xs-12">
        <table class="table table-bordered">
            <thead>
            <tr>
                <th colspan="3" style="background-color: #00a65a; text-align: center;">
                    <h4 style="color: white;">Dane podstawowe</h4>
                </th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td>
                    <label>Nazwa formularza</label>
                </td>
                <td>
                    <?php echo $this->Form->input('FormularzOceny.bNazwa', array_merge(array('id' => 'FormularzOcenybNazwa', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false), $attr)); ?>
                </td>
            </tr>
            <tr>
                <td>
                    <label>Imie i nazwisko pracownika</label>
                </td>
                <td>
                    <?php echo $this->Form->input('FormularzOceny.Ni', array_merge(array('id' => 'FormularzOcenyNi', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                </td>
            </tr>
            <tr>
                <td>
                    <label>Stanowisko pracownika</label>
                </td>
                <td>
                    <?php echo $this->Form->input('FormularzOceny.StanowiskoKodOpis', array_merge(array('id' => 'FormularzOcenyStanowiskoKodOpis', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                </td>
            </tr>
            <tr>
                <td>
                    <label>Jednostka organizacyjna</label>
                </td>
                <td>
                    <?php echo $this->Form->input('FormularzOceny.KomorkaKodOpis', array_merge(array('id' => 'FormularzOcenyKomorkaKodOpis', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                </td>
            </tr>
            <?php if ($item['bCzyUMC'] === 'true') : ?>
                <tr>
                    <td>
                        <label>Dodatkowe oznaczenie</label>
                    </td>
                    <td>
                        <?php echo $this->Form->input('FormularzOceny.DodatkowyOpisKodOpis', array_merge(array('id' => 'FormularzOcenyDodatkowyOpisKodOpis', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                    </td>
                </tr>
            <?php endif; ?>
            <tr>
                <td>
                    <label>Imie nazwisko przełożonego - stanowisko</label>
                </td>
                <td>
                    <?php echo $this->Form->input('FormularzOceny.bAdresPrzelozonego0', array_merge(array('id' => 'FormularzOcenybAdresPrzelozonego0', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                </td>
            </tr>
            <?php if ($this->request->getData('FormularzOceny')['bAdresPrzelozonego1'] !== ''): ?>
                <tr>
                    <td>
                        <label>Imie nazwisko przełożonego - stanowisko</label>
                    </td>
                    <td>
                        <?php echo $this->Form->input('FormularzOceny.bAdresPrzelozonego1', array_merge(array('id' => 'FormularzOcenybAdresPrzelozonego1', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                    </td>
                </tr>
            <?php endif; ?>
            <?php if ($this->request->getData('FormularzOceny')['bAdresPrzelozonego2'] !== ''): ?>
                <tr>
                    <td>
                        <label>Imie nazwisko przełożonego - stanowisko</label>
                    </td>
                    <td>
                        <?php echo $this->Form->input('FormularzOceny.bAdresPrzelozonego2', array_merge(array('id' => 'FormularzOcenybAdresPrzelozonego2', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                    </td>
                </tr>
            <?php endif; ?>
            <?php if ($this->request->getData('FormularzOceny')['bAdresPrzelozonego3'] !== ''): ?>
                <tr>
                    <td>
                        <label>Imie nazwisko przełożonego - stanowisko</label>
                    </td>
                    <td>
                        <?php echo $this->Form->input('FormularzOceny.bAdresPrzelozonego3', array_merge(array('id' => 'FormularzOcenybAdresPrzelozonego3', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                    </td>
                </tr>
            <?php endif; ?>
            <?php if ($this->request->getData('FormularzOceny')['bAdresPrzelozonego4'] !== ''): ?>
                <tr>
                    <td>
                        <label>Imie nazwisko przełożonego - stanowisko</label>
                    </td>
                    <td>
                        <?php echo $this->Form->input('FormularzOceny.bAdresPrzelozonego4', array_merge(array('id' => 'FormularzOcenybAdresPrzelozonego4', 'required' => true, 'class' => 'form-control', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                    </td>
                </tr>
            <?php endif; ?>
            <tr>
                <td>
                    <label>Okres oceny (od -do)</label>
                </td>
                <td>
                    <div class="row">
                        <div class="col-xs-6">
                            <?php echo $this->Form->input('FormularzOceny.bOkresOcenyOd', array_merge(array('id' => 'FormularzOcenybOkresOcenyOd', 'required' => true, 'class' => 'form-control datepicker-from', 'div' => false, 'label' => false), $attr)); ?>
                        </div>
                        <div class="col-xs-6">
                            <?php echo $this->Form->input('FormularzOceny.bOkresOcenyDo', array_merge(array('id' => 'FormularzOcenybOkresOcenyDo', 'required' => true, 'class' => 'form-control datepicker-from', 'div' => false, 'label' => false), $attr)); ?>
                        </div>
                    </div>

                </td>
            </tr>
            <tr>
                <td>
                    <?php if ('SGBBank' == trim($this->request->getSession()->read('licencja'))) { ?>
                    <label>Data formularza</label>
                    <?php } else { ?>
                        <label>Data oceny</label>
                    <?php } ?>
                </td>
                <td>
                    <?php echo $this->Form->input('FormularzOceny.bDataOceny', array_merge(array('id' => 'FormularzOcenybDataOceny', 'required' => true, 'class' => 'form-control datepicker-from input-125', 'div' => false, 'label' => false), $attr)); ?>
                </td>
            </tr>
            <?php if ($item['bCzyUMC'] === 'true') : ?>
                <tr>
                    <td>
                        <label>Data zapoznania się z oceną</label>
                    </td>
                    <td>
                        <?php echo $this->Form->input('FormularzOceny.bDataZapoznaniaSie', array_merge(array('id' => 'FormularzOcenybDataZapoznaniaSie', 'required' => true, 'class' => 'form-control datepicker-from input-125', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                    </td>
                </tr>
            <?php endif; ?>
            </tbody>
        </table>
    </div>
</div>
<?php if ($item['bCzySkalaOcen'] === 'true') : ?>
    <div class="row ocena-scala">
        <div class="col-xs-12">
            <table class="table">
                <thead>
                <tr>
                    <th colspan="3" style="background-color: #00a65a; text-align: center;">
                        <h4 style="color: white;">Skala ocen</h4>
                    </th>
                </tr>
                </thead>
                <tbody>
                <tr>
                    <td style="text-align: center">
                        <strong>S</strong>
                    </td>
                    <td>
                    </td>
                    <td>
                        przewyższa wszystkie oczekiwania
                    </td>
                </tr>
                <tr>
                    <td style="text-align: center">
                        <strong>U</strong>
                    </td>
                    <td>
                    </td>
                    <td>
                        przewyższa oczekiwania
                    </td>
                </tr>
                <tr>
                    <td style="text-align: center">
                        <strong>P</strong>
                    </td>
                    <td>
                    </td>
                    <td>
                        spełnia oczekiwania
                    </td>
                </tr>
                <tr>
                    <td style="text-align: center">
                        <strong>E</strong>
                    </td>
                    <td>
                    </td>
                    <td>
                        poniżej oczekiwań
                    </td>
                </tr>
                <tr>
                    <td style="text-align: center">
                        <strong>R</strong>
                    </td>
                    <td>
                    </td>
                    <td>
                        nie spełnia oczekiwań
                    </td>
                </tr>
                </tbody>
            </table>
        </div>
    </div>
<?php endif; ?>
<div class="row" style="margin: 0 1px 0 1px;">
    <div class="col-xs-12 ocena-build">

    </div>
</div>
<div class="row ocena-odwolanie" style="padding: 10px 0px 5px 0px">
    <div class="col-xs-12">
        <table class="table">
            <tbody>
            <?php if ($item['bCzyWidoczneOdwolanie'] == 'true'): ?>
                <tr>
                    <th style="background-color: #00a65a; text-align: center;">
                        <h4 style="color: white;"><span
                                style="margin-right: 10px;">Odwołanie</span><?php echo $this->Form->input('FormularzOceny.bCzyOdwolanie', array_merge(array('type' => 'checkbox', 'div' => false, 'label' => false, 'hiddenField' => false, 'value' => 'true', 'checked' => !empty($item['bOdwolanie']), 'disabled' => (empty($attr['readonly']) ? false : true)))); ?>
                        </h4>
                    </th>
                </tr>
                <?php if ($item['bCzyUMC'] === 'true') : ?>
                    <tr class="element-odwolanie" style="display: none">
                        <td>
                            <b>Data
                                odwołania:</b>&nbsp;<?php echo $this->Form->input('FormularzOceny.bDataOdwolania', array_merge(array('type' => 'text', 'class' => 'form-control datepicker-from input-125', 'div' => false, 'label' => false, 'readonly' => 'readonly'), $attr)); ?>
                        </td>
                    </tr>
                <?php endif; ?>
                <tr class="element-odwolanie" style="display: none">
                    <td>
                        <label>Uzasadnienie odwołania</label>
                        <?php echo $this->Form->input('FormularzOceny.bOdwolanie', array_merge(array('type' => 'textarea', 'rows' => '3', 'class' => 'form-control', 'div' => false, 'label' => false, 'placeholder' => 'Uzasadnienia odwołania'), $attr)); ?>
                    </td>
                </tr>
                <tr class="element-odwolanie" style="display: none">
                    <td>
                        <label>Status odwołania</label>
                        <?php if ('SGBBank' == trim($this->request->getSession()->read('licencja'))) { ?>
                            <?php echo $this->Form->input('FormularzOceny.bStatusOdwolania', array_merge(array('type' => 'select', 'class' => 'form-control', 'div' => false, 'label' => false, 'placeholder' => 'Status odwołania', 'readonly' => ($item['bCzyStatusOdwolania']) === 'false', 'disabled' => ($item['bCzyStatusOdwolania']) === 'false'), $attr, ['options' => ['' => '', 'Analiza' => 'Analiza', 'Podtrzymanie Oceny' => 'Podtrzymanie Oceny', 'Zmiana Oceny' => 'Zmiana Oceny']])); ?>
                        <?php } else { ?>
                            <?php echo $this->Form->input('FormularzOceny.bStatusOdwolania', array_merge(array('type' => 'text', 'class' => 'form-control', 'div' => false, 'label' => false, 'placeholder' => 'Status odwołania', 'readonly' => ($item['bCzyStatusOdwolania']) === 'false'), $attr)); ?>
                        <?php } ?>
                    </td>
                </tr>
                <tr class="element-odwolanie" style="display: none">
                    <td>
                        <label>Decyzja odwołania</label>
                        <?php echo $this->Form->input('FormularzOceny.bDecyzjaOdwolania', array_merge(array('type' => 'textarea', 'rows' => '3', 'class' => 'form-control', 'div' => false, 'label' => false, 'placeholder' => 'Decyzja odwołania', 'readonly' => ($item['bCzyStatusOdwolania']) === 'false'), $attr)); ?>
                    </td>
                </tr>
            <?php endif; ?>
            <?php if ($item['bCzyWidocznaOcena'] == 'true') : ?>
                <tr>
                    <td style="text-align: center; background-color: #00a65a;">
                        <div style="display: inline-flex">
                            <?php if ($item['bCzyUMC'] === 'true') : ?>
                                <input type="hidden" name="data[FormularzOceny][bOcena]" id="FormularzOcenyBOcena">
                            <?php else: ?>
                                <h5><b>Ocena:</b>
                                </h5>&nbsp;&nbsp;&nbsp;<?php echo $this->Form->input('FormularzOceny.bOcena', array_merge(array('type' => 'select', 'class' => 'form-control input-300', 'style' => 'width: auto !important;', 'div' => false, 'label' => false, 'options' => $options), $attr)); ?>
                                <span style="padding: 0px 10px 0px 10px"></span>
                            <?php endif; ?>
                            <h5><b>Data&nbsp;wystawienia&nbsp;oceny:</b>
                            </h5>&nbsp;&nbsp;&nbsp;<?php echo $this->Form->input('FormularzOceny.bDataWystawieniaOceny', array_merge(array('type' => 'text', 'class' => 'form-control datepicker-from input-250', 'div' => false, 'label' => false), $attr)); ?>
                        </div>
                    </td>
                </tr>
            <?php endif; ?>
            </tbody>

            <tbody>
            <?php if (($item['bCzyPowod'] == 'true')) : ?>
                <tr>
                    <td style="text-align: center; background-color: #00a65a;">
                        <div style="display: block">
                            <h5><b>Powód niewystawienia oceny:</b>
                            </h5><?php echo $this->Form->input('FormularzOceny.bPowod', array_merge(array('type' => 'textarea', 'rows' => '2', 'class' => 'form-control textbox-reason', 'div' => false, 'label' => false), $attr)); ?>
                        </div>
                    </td>
                </tr>
            <?php endif; ?>
            </tbody>
        </table>
        </table>
    </div>
</div>
<?php echo $this->Form->end(); ?>


<div class="row ocena-panel">
    <div class="col-xs-6">
        <a id="form-anuluj" data-menu-action="ajax/oceny/daj_formularze_oceny/<?= $tab ?>/<?= $archive ?>"
           href="ajax/oceny/daj_formularze_oceny/<?= $tab ?>/<?= $archive ?>" class="btn <?= $iconColor ?>"><i
                class="fa <?= $icon ?>"></i> <?= $iconTitle ?></a>
    </div>
    <div class="col-xs-6" style="text-align: right">
        <?php if ($type !== 'show'): ?>
            <a data-run="save" class="btn btn-primary oceny-button-trigger"
               href="ajax/oceny/zapisz_formularz_oceny/<?= $type ?>"><i class="fa fa-save"></i> Zapisz</a>
            <?php if (($type == 'add' && $tab !== 'robocze') && $item['bCzyMozeOdRazuOpublikowac'] == 'true'): ?>
                <a data-run="save" class="btn btn-warning oceny-button-trigger"
                   href="ajax/oceny/zapisz_formularz_oceny/<?= $type ?>/public"><i class="fa fa-save"></i> Zapisz i
                    Publikuj</a>
            <?php endif; ?>
        <?php endif; ?>
    </div>
</div>
<div class="row">
    <div class="col-xs-12">
        <div class="box-footer">

        </div>
    </div>
</div>
<div>
    v1.0
</div>
<div class="modal fade" id="modal-element">
    <?php echo $this->Form->create(null, ['templates' => ['submitContainer' => '{{content}}',], 'id' => 'ElementOceny', 'name' => 'ElementOceny', 'class' => 'form-modal-element']); ?>
    <input type="hidden" name="_method" value="POST"/>
    <input type="hidden" name="GidElementOceny" value=""/>
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title"></h4>
            </div>
            <div class="modal-body">

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-success element-button-trigger" data-run="">Wstaw</button>
            </div>
        </div>
    </div>
    <input type="hidden" name="SGB" value="<?=('SGBBank' == trim($this->request->getSession()->read('licencja')))?>"/>
    <?php echo $this->Form->end(); ?>
</div>
<!--<script type="text/javascript" src="<?php echo $local_url; ?>js/ocena.js"></script>-->
<script>
    $(function () {
        datepickerFromToInit();
        oceny.setType('<?=$type?>')
        oceny.loadElementyOceny(<?=$elements?>, <?=('SGBBank' == trim($this->request->getSession()->read('licencja')))?>);
        oceny.loadData(<?=$data?>);
        oceny.buildElementyOceny(<?=('SGBBank' == trim($this->request->getSession()->read('licencja')))?>);
        oceny.renderWartoscHeight();
        oceny.resizeHeightToContent();
        datepickerFromToInit();

        if ($('input[name="FormularzOceny[bCzyOdwolanie]"').is(':checked') == true) {
            $('.element-odwolanie').css('display', 'table-row');
        }

        $('input[name="FormularzOceny[bCzyOdwolanie]"').on('click', function () {
                if ($('input[name="FormularzOceny[bCzyOdwolanie]"').is(':checked') == true) {
                    $('.element-odwolanie').css('display', 'table-row');
                } else {
                    $('.element-odwolanie').css('display', 'none');
                }
            }
        )

        $('#FormularzOcenyBOcena').on('change', function () {

            var allow = <?=$allow_oceny?>,
                input = $(this);

            if (typeof allow === 'object') {
                if ($.inArray(input.val(), allow) == -1) {
                    input.val('');
                    var list = new Array(allow);
                    alert('Dostępne wartości to: ' + list.join(','));
                }
            }
        });

    });
</script>

<script>
    $(function(){
        const elemsData = document.querySelectorAll('[data-menu-action]');
        elemsData.forEach(elem => elem.onclick = testFun);
    });

    function testFun(e) {
        e.preventDefault();

        $(this).parents('.sidebar').find('li.active:not(.treeview)').removeClass('active');
        $(this).parents('li').addClass('active');

        var url = $(this).data('menu-action');
        localStorage.setItem('menu_action', url);

        loadAjaxView(url);
    }

    <?php if(trim($this->request->getSession()->read('licencja')) == 'SGBBank') { ?>
    const oceniany = document.getElementsByClassName("oceniany");

    Array.prototype.forEach.call(oceniany, function (el) {
        // Do stuff here
        el.innerHTML = 'podsumowanie realizacji celu (perspektywa pracownika)';
    });

    const oceniajacy = document.getElementsByClassName("oceniajacy");

    Array.prototype.forEach.call(oceniajacy, function (el) {
        // Do stuff here
        el.innerHTML = 'podsumowanie realizacji celu (perspektywa przełożonego)';
    });

    const informacjaZwrotna = document.getElementsByClassName("informacja_zwrotna");

    Array.prototype.forEach.call(informacjaZwrotna, function (el) {
        // Do stuff here
        el.innerHTML = 'podsumowanie realizacji celu (perspektywa współpracownika)';
    });
    <?php } ?>
</script>
