HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/ivs.kaunokolegija.lt/laravel/resources/views/layouts/update_form_modal.blade.php
<div id="update{{ $compName }}Modal" title="{{ $title }}" style="display:none;">
    <div class="modal-body">
        <div class="form-group">
            <input type="hidden" name="_method" value="PUT">
            @include($fieldsLink)
        </div>
    </div>
</div>

<script>
    $(document).ready(function() {
        const modalId = "#update{{ $compName }}Modal";
        const saveButtonId = "#saveUpdate{{ $compName }}ModalButton";
        const openButtonClass = ".modal-update";
        let selectId = null;
        let updateButton;

        $(modalId).dialog({
            autoOpen: false,
            modal: true,
            width: 800,
            height: 600,
            maxWidth: 1200,
            maxHeight: 800,
            draggable: true,
            resizable: true,
            containment: "window",
            position: {
                my: "center",
                at: "center",
                of: window
            },
            show: {
                effect: "slide",
                duration: 500
            },
            hide: {
                effect: "fold",
                duration: 500
            },
            dialogClass: "rounded-dialog",
            buttons: [{
                    text: "{{ trans('global.save') }}",
                    class: "btn btn-primary",
                    id: "saveUpdate{{ $compName }}ModalButton",
                    click: function() {

                    }
                },
                {
                    text: "{{ trans('global.close') }}",
                    class: "btn btn-secondary",
                    click: function() {
                        $(this).dialog("close");
                    }
                }
            ]
        });


        $(document).on("click", openButtonClass, function() {
            const recordId = $(this).data("record-id");
            const recordData = $(this).data("record-data");

            const parsedRecordData = typeof recordData === "string" ? JSON.parse(recordData) : recordData;
            updateButton = $(this);
    
            for (const key in parsedRecordData) {
                const field = $(modalId).find(`[name="${key}[]"], [name="${key}"]`);
                if (Array.isArray(parsedRecordData[key])) {
                    if (field.is("select")) {
                        const ids = parsedRecordData[key].map(item => item.id);

                        if (field.hasClass('select2')) {
                            setTimeout(() => {
                                field.val(ids).trigger('change');
                            }, 400);
                        } else {
                            field.val(ids).trigger('change');
                        }
                    }
                }
                else if (parsedRecordData[key] && typeof parsedRecordData[key] === "object") {
                    if (field.is("select")) {
                        const fieldValue = parsedRecordData[key]?.id;
                        field.val(fieldValue).trigger('change');
                    }
                }
                else if (field.is(":checkbox")) {
                    field.prop("checked", parsedRecordData[key]);
                }
                else if (field.is(":radio")) {
                    $(`${modalId} [name="${key}"][value="${parsedRecordData[key]}"]`).prop("checked", true);
                }
                else if (field.is("select")) {
                    field.val(parsedRecordData[key]).trigger('change');
                }
                else {
                    field.val(parsedRecordData[key]);
                }
            }
           
            // Open the modal
            $(modalId).dialog("open");
        });


        $(document).on("click", saveButtonId, function() {
            const updateUrl = updateButton.data("update-url");

            const formData = $(modalId).find(":input").serialize();
            const recordId = $(modalId).data("record-id");
            $.ajax({
                url: updateUrl,
                type: "POST",
                headers: {
                    'x-csrf-token': _token
                },
                data: formData,
                success: function(response) {
                    if (response.success) {
                        $.fn.dataTable.tables({
                            visible: true,
                            api: true
                        }).ajax.reload(null, false);

                        Swal.fire({
                            title: '{{ trans('global.update_success') }}',
                            icon: 'success',
                            timer: 1500,
                            showConfirmButton: false,
                        }).then(() => {
                            $(modalId).dialog("close");
                        });
                    }
                },
                error: function(xhr) {
                    const errorMessage = xhr.responseJSON?.message || "Error occurred!";
                    $(modalId).find(".invalid-feedback").text(errorMessage).show();
                },
            });
        });
    });
</script>

<style>
    .ui-dialog {
        border-radius: 15px;
        overflow: hidden;
        /* top: 10% !important; */
    }

    .ui-dialog-titlebar {
        border-top-left-radius: 15px;
        border-top-right-radius: 15px;
    }

    .swal2-popup {
        position: fixed;
        top: 10px;
        right: 10px;
        width: auto;
        max-width: 300px;
        padding: 10px;
        border-radius: 8px;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    }

    .swal2-title {
        font-size: 18px;
        font-weight: bold;
    }

    .swal2-content {
        font-size: 14px;
    }
</style>