var shelfs_table = null,
    delete_icon = '<i class="fas fa-trash"></i>';



function init_datatable() {
    // For a smooth migration...
    for (const i in lists) {
        if (('partners' in lists[i]) === false) {
            lists[i]['partners'] = [lists[i]['partner']];
        }
    }

    return $('#lists').DataTable({
        data: lists, // data passed at page loading
        rowId: 'id',
        columns:[
            {data: "id", title:"id", "visible": false},
            {
                data:"datetime_created",
                orderData:[0],
                title:"Liste",
                render: function (data) {
                    return "Liste du " + data;
                }
            },
            {
                data:"partners",
                title:"Fournisseur(s)",
                render: function (data) {
                    res = "";
                    for (const i in data) {
                        res += `${data[i]}<br/>`;
                    }

                    return res;
                }
            },
            {
                data:"order",
                title:"Ref."
            },

            {data:"p_nb", title:"Nombre de réfs", width: "10%", className:"dt-body-center"},
            {
                data:"inventory_status",
                title:"Inventaire à faire",
                className:"dt-body-center",
                width: "15%",
                render: function (data) {
                    if (data == '')
                        return "<button class='btn--primary do_inventory'>Inventaire en rayon</button>";
                    else
                        return "<button class='btn--success do_inventory'>Inventaire en réserve</button>";
                }
            },
            {
                data: null,
                defaultContent: delete_icon,
                orderable: false,
                width: "30px",
                className: 'action',
                targets:   0
            }
        ],
        dom: 'rtip',
        order: [
            [
                1,
                "asc"
            ]
        ],
        iDisplayLength: 25,
        language: {url : '/static/js/datatables/french.json'}
    });
}

var rowGetData = function(clicked) {
    var row = shelfs_table.row(clicked.parents('tr'));


    return row.data();
};

function deleteRow() {
    var clicked = $(this),
        data = rowGetData(clicked);

    openModal(
        'Etes-vous sûr de vouloir supprimer la liste du ' + data.datetime_created+ ' ?',
        function() {
            post_form(
                '/inventory/delete_custom_list',
                {id: data.id},
                function(err, result) {
                    closeModal();
                    if (!err) {
                        if (typeof result.success !== "undefined" && result.success == true) {
                            clicked.parents('tr').remove();
                            alert("Liste détruite");
                        } else {
                            alert(JSON.stringify(result));
                        }

                    } else {
                        console.log(err);
                    }


                }
            );
        },
        'Oui'
    );
}
function go_to_inventory() {
    openModal();

    var clicked = $(this);
    var row_data = shelfs_table.row(clicked.parents('tr')).data();

    // Use local storage to pass data to next page
    if (Modernizr.localstorage) {
        var stored_list = JSON.parse(localStorage.getItem('custom_list_' + row_data.id));

        // Set local storage if key doesn't exist
        if (stored_list == null) {
            localStorage.setItem("custom_list_" + row_data.id, JSON.stringify(row_data));
        }
    }

    document.location.href = "custom_list_inventory/" + row_data.id;
}

$(document).ready(function() {
    shelfs_table = init_datatable();

    $(document).off('.do_inv, .del_row')
        .on('click.do_inv', 'button.do_inventory', go_to_inventory)
        .on('click.del_row', '.fa-trash', deleteRow);
});