{% extends 'back.html.twig' %}

{% block title %} Job Files{% endblock %}

{% block stylesheets %}

    <link rel="stylesheet" href="https://unpkg.com/dropzone@5/dist/min/dropzone.min.css" type="text/css"/>

{% endblock %}

{% block body %}

    <div class="app-content-header">
        <div class="container-fluid">
            <div class="row">
                <div class="col-sm-6">
                    <h3 class="mb-0">
                        Edit Job ({{ job.id }})
                        {% if job.type == "JOB" %}
                            <span class='badge bg-primary'>JOB</span>
                        {% elseif job.type == "REWORK" %}
                            <span class='badge bg-warning'>REWORK</span>
                        {% endif %}

                        {% if job.urgentDate %}
                            <span class='badge bg-warning' style="color: #000000;">URGENT</span>
                        {% endif %}

                        {% if job.printStatus %}
                            <span class='badge bg-secondary'>Job Sheet Printed</span>
                        {% else %}
                            <span class='badge bg-info'>Job Sheet Not Printed</span>
                        {% endif %}
                    </h3>
                </div>
                <div class="col-sm-6">
                    <ol class="breadcrumb float-sm-end">
                        <li class="breadcrumb-item"><a href="{{ path('app_admin_dashboard') }}">Home</a></li>
                        <li class="breadcrumb-item"><a href="{{ path('admin_job_index') }}">Jobs</a></li>
                        <li class="breadcrumb-item active">Job Files</li>
                    </ol>
                </div>
            </div>
        </div>
    </div>

    <div class="app-content">
        <div class="container-fluid">
            <div class="row g-4">
                <div class="col-md-12">
                    <div class="card">
                        <div class="card-header with-border" style="padding-bottom: 0px;">
                            {% include '@Job/jobs/partials/job-header-links.html.twig' %}
                        </div>
                        <div class="card-body">
                            <div class="row">
                                <div class="col-md-12">
                                    <div style="float:right; z-index: 999; position: relative;" data-toggle="tooltip" data-placement="top" title="Upload New File">
                                        <button data-bs-toggle="modal" data-bs-target="#uploadImageModal" type="button" class="btn btn-success">
                                            <i class="bi bi-upload"></i> New
                                        </button>
                                    </div>
                                    <table id="files_table" class="table table-bordered table-striped">
                                        <thead>
                                        <tr>
                                            <th>Title</th>
                                            <th>Description</th>
                                            <th>File Type</th>
                                            <th>Uploaded On</th>
                                            <th>Actions</th>
                                        </tr>
                                        </thead>
                                        <tbody></tbody>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>


    {% include '@Job/jobs/partials/job-image-upload-modal.twig' %}


    {% include '@Job/jobs/partials/job-notes-modal.twig' %}
    {% include '@Invoice/invoices/partials/create-invoice-modal.html.twig' %}
    {% include '@Job/jobs/partials/job-status-modal.twig' %}
    {% include '@Job/jobs/partials/rework-job-modal.twig' %}

{% endblock %}

{% block javascripts %}
    <script type="text/javascript">
        $(document).ready(function () {
            $('#files_table').DataTable({
                "processing": true,
                "serverSide": true,
                "searching": false,
                "ajax": {
                    url : '{{ path("api_job_get_files", {"jobId": job.id}) }}',
                    type : 'GET',
                    data : function(data){
                        data.jobId = $("#job_id").val()
                    }
                },
                "columns": [
                    {
                        "data": "title",
                        "render": function ( data, type, full, meta ) {
                            var output =  full.name

                            return output;
                        }
                    },
                    {
                        "data": "description",
                        "render": function ( data, type, full, meta ) {
                            return full.comment;
                        }
                    },
                    {
                        "data": "type",
                        "render": function ( data, type, full, meta ) {
                            var output = full.type

                            return output;
                        }
                    },
                    {
                        "data": "uploaded",
                        "render": function ( data, type, full, meta ) {
                            var output = full.uploaded.date;
                            output += '<br/><small class="text-muted">' + full.uploaded.user + '</small>';

                            return output;
                        }
                    },
                    {
                        "data": "actions",
                        "orderable": false,
                        "sortable": false,
                        "render" : function (data, type, full, meta) {
                            var output = '';
                            output += '<div class="dropdown">';
                            output += '<button class="btn btn-dark dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">';
                            output += '<i class="bi bi-chevron-down"></i> Actions';
                            output += '</button>';
                            output += '<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">';
                            output += '<a class="dropdown-item" href="/admin/job/images/{{ job.id }}/download/' + full.id + '" target="_blank"><i class="bi bi-download"></i> &nbsp;&nbsp; Download File</a>';
                            output +=  '<a class="dropdown-item delete_image_btn" data-fileid="' + full.id + '" data-jobid="{{ job.id }}"><i class="bi bi-trash text-danger" ></i> &nbsp;&nbsp; Delete File</a>';
                            output +=  '</div>';
                            output +=  '</div>';

                            return output;
                        }
                    }
                ],
                error: function(xhr, status, error) {
                    toastr.options.progressBar = true;
                    toastr.error('Failed to Retrieve File Data!', 'Error!');
                }
            });


            $(document).on("click", '.delete_image_btn', function (e) {
                e.preventDefault();

                var fileId = $(this).data('fileid');
                var jobId = $(this).data('jobid');

                Swal.fire({
                    title: "Are you sure?",
                    text: "File will be deleted!",
                    icon: "warning",
                    showCancelButton: true,
                    confirmButtonColor: "#3085d6",
                    cancelButtonColor: "#d33",
                    confirmButtonText: "Delete"
                }).then((result) => {
                    if (result.isConfirmed) {

                        $.ajax({
                            type: 'POST',
                            url: '/api/job/delete-files/{{ job.id }}/'+fileId,
                            datatype: 'json',
                            data: {}
                        })
                        .done(function (data) {
                            toastr.options.progressBar = true;
                            toastr.success('File Deleted Successfully!', 'Success!');

                            $("#files_table").DataTable().ajax.reload();
                        })
                        .fail(function (jqXHR, textStatus, errorThrown) {
                            toastr.options.progressBar = true;
                            toastr.error('Failed to Delete File!', 'Error!');
                        });
                    }
                });
            });
        });
    </script>
{% endblock %}
