@page
@model WorkFlowCheck.Web.Pages.CheckList.CheckListHeader.CheckListHeaderEditPageModel
@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery Antiforgery
@{
    ViewData["Title"] = "Ellenőrzés";
    var CheckListHeaderId = Model.CheckListHeaderDTO.Id;
    var url = Url.Page("./CheckListHeaderEditPage", "LoadCheckListRows", new { id = CheckListHeaderId });
    var urlPost = Url.Page("./CheckListHeaderEditPage", "Save");
}
<h1>@ViewData["Title"]</h1>

<input type="hidden" id="CheckListHeaderEditUrl" value="@url" />
<input type="hidden" id="CheckListHeaderEditPostUrl" value="@urlPost" />

<!-- Tab navigáció -->
<div class="card shadow p-0">
    <div class="card-header p-0" style="border:none;">
        <ul class="nav nav-tabs" id="checklistTab" role="tablist">
            <li class="nav-item" role="presentation">
                <button class="nav-link active" id="general-tab" data-bs-toggle="tab" data-bs-target="#general" type="button" role="tab">Adatok</button>
            </li>
            <li class="nav-item" role="presentation">
                <button class="nav-link" id="settings-tab" data-bs-toggle="tab" data-bs-target="#settings" type="button" role="tab">Tételek</button>
            </li>
        </ul>
    </div>
    <!-- Tab tartalom -->
    <div class="card-body">
        <div class="tab-content mt-3" id="checklistTabContent">
            <div class="tab-pane fade show active" id="general" role="tabpanel">
                <form method="post" id="CheckListHeaderForm">
                    <meta name="csrf-token" content="@Antiforgery.GetAndStoreTokens(HttpContext).RequestToken" />
                    <input type="hidden" asp-for="CheckListHeaderDTO.Id" />
                    <div class="mb-3">
                        <label asp-for="CheckListHeaderDTO.ShortName"></label>
                        <input asp-for="CheckListHeaderDTO.ShortName" class="form-control" />
                        <span asp-validation-for="CheckListHeaderDTO.ShortName" class="text-danger"></span>
                    </div>
                    <div class="mb-3">
                        <label asp-for="CheckListHeaderDTO.DocumentNumber"></label>
                        <input asp-for="CheckListHeaderDTO.DocumentNumber" class="form-control" />
                        <span asp-validation-for="CheckListHeaderDTO.DocumentNumber" class="text-danger"></span>
                    </div>
                    <div class="mb-3 d-flex justify-content-between">
                        <button type="button" id="saveCheckListHeader" class="btn btn-primary">Mentés</button>
                        <button type="button" class="btn btn-secondary" onclick="history.back()">Mégsem</button>
                    </div>
                </form>
            </div>
            <div class="tab-pane fade" id="settings" role="tabpanel">
                <div class="d-flex justify-content-end">
                    <button id="newCheckListRowBtn" class="btn btn-primary float-right new-btn" data-bs-toggle="tooltip" data-bs-placement="top" title="Új elem hozzáadása">
                        <i class="bi bi-plus-square"></i>
                    </button>
                </div>
                <table id="tbCheckListHeaderPage" class="table table-bordered table-hover table-sm" style="width:100%">
                    <thead class="table-primary">
                        <tr>
                            <th>ID</th>
                            <th>Short Name</th>
                            <th>Checkpoint</th>
                            <th>OperationDescription</th>
                            <th>AnswerType</th>
                            <th>Answer</th>
                            <th class="text-center">Action</th>
                        </tr>
                    </thead>
                    <tfoot class="table-light">
                        <tr>
                            <th>ID</th>
                            <th>Short Name</th>
                            <th>Checkpoint</th>
                            <th>OperationDescription</th>
                            <th>AnswerType</th>
                            <th>Answer</th>
                            <th class="text-center">Action</th>
                        </tr>
                    </tfoot>
                </table>
            </div>
        </div>
    </div>
</div>

@section Scripts {
    <script>
        const table = new DataTable('#tbCheckListHeaderPage', {
                ajax: {
                       url: $('#CheckListHeaderEditUrl').val(),
                       type: "GET",
                       dataSrc : "data"
                },
                columns: [
                    { data: "id" },
                    { data: "checkListTemplateRowDTO.rowIndex" },
                    { data: "checkListTemplateRowDTO.checkPointDTO.shortName" },
                    { data: "checkListTemplateRowDTO.operationDescription" },
                    {
                        data: "checkListTemplateRowDTO.answerType",
                        searchable: false,
                        sortable: false,
                        render: function ( data, type, row ) {
                            return renderAnswerType(data);
                        }
                    },
                    { data: "answer",
                      searchable: false,
                      sortable: false,
                      render: function ( data, type, row ) {
                            return renderAnswerPhoto(data, row);
                        }
                    },
                    { data: null, render: function (data, type, row) {
                         return renderActionButtons(row.id);
                    }}
                ],
                columnDefs: [
                    {
                        "targets": 0,
                        "visible": false
                    },
                    {
                        "targets": 6,
                        "className": "text-center",
                        "width": "10%"
                    }
                ],

                processing:true,
                language: { url: '//cdn.datatables.net/plug-ins/2.2.2/i18n/hu.json',}
        });


        $('#newCheckListRowBtn').on('click', function () {
            const parentId = @CheckListHeaderId;
            window.location.href = '@Url.Page("/CheckList/CheckListRow/CheckListRowEditPage", "New")' + `&parentId=${parentId}`;
        });


        $('#tbCheckListHeaderPage').on('click', '.edit-btn', function ()
        {
            const row = table.row($(this).closest('tr')).data();
            window.location.href = `@Url.Page("/CheckList/CheckListRow/CheckListRowEditPage")?id=${row.id}`;

        });

        $('#tbCheckListHeaderPage').on('click', '.delete-btn', function ()
        {
            const row = table.row($(this).closest('tr')).data();
            showConfirmModal({
                title: 'Törlés megerősítése',
                message: 'Biztosan törölni szeretnéd ezt az elemet?',
                okText: 'Törlés',
                cancelText: 'Mégsem'
            }).then(function(result) {
                if(result === 'ok') {
                    console.log('Törlés végrehajtva');
                }
            });
        });
        $("#saveCheckListHeader").click(function () {
            const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
            var formData = getFormAsNestedObject('#CheckListHeaderForm');
            const $form = $('#CheckListHeaderForm');

            formData.CheckListHeader.RoleDTO=[];

            if ($form.valid())
            {
                $.ajax({
                    url: $('#CheckListHeaderEditPostUrl').val(),
                    type: 'POST',
                    headers: {
                          'X-CSRF-TOKEN': csrfToken,
                          'Content-Type': 'application/json'
                    },
                    data: JSON.stringify(formData.CheckListHeader),
                    success: function (response) {
                        showMessageModal({
                            title: 'Figyelmem!',
                            message: 'Sikeres mentés.',
                            okText: 'Értettem'
                        });
                    },
                    error: function (xhr, status, error) {
                        // Hiba esetén
                        console.error("Hiba: ", error);
                        showMessageModal({
                            title: 'Hiba!',
                            message: 'A mentés NEM sikerült!',
                            okText: 'Értettem'
                        });
                    }
                });
            } else
            {
                $form[0].reportValidity();
            }

        });

        $(document).ready(function () {
            const $form = $("#CheckListHeaderForm");

            $form.validate({
                errorClass: "text-danger small",
                errorPlacement: function (error, element) {
                    error.appendTo(element.parent());
                }
            });

            // $form.on("submit", function (e) {
            //     if (!$form.valid()) {
            //         e.preventDefault(); // Ne küldje be, ha van hiba
            //     }
            // });
        });
    </script>
}
