$(document).ready(function()
{
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

    view_table();

    $("#btn_guardar").click(function(){

        var data = $('#form_rol').serialize();

        $.ajax({
            type: 'POST',
            url: '/save_rol',
            data: data,
            beforeSend: function() {
                $('#div_mensajes').removeClass('d-none');
                $('#div_mensajes').addClass('text-center');
                $('#mensajes').html('<img src="vendor/adminlte/dist/img/load.gif" width="10%" height="10%" />');
            },
            success: function(data) {
                var d = JSON.parse(data);
                $('#div_mensajes').removeClass('d-none text-center')
                if (d['msg'] == 'error') {
                    toastr.error(d['data']);
                } else {
                    toastr.success(d['data']);
                    view_table();
                    clear_data();
                }
            },
            error: function(xhr) { // if error occured
                toastr.error('Error: '.xhr.statusText + xhr.responseText);
            },
            complete: function() {
                $('#div_mensajes').addClass('d-none');
            },
            dataType: 'html'
        });
    });

    function view_table() {
        var data = $('#form_rol').serialize();
        $.ajax({
            type: 'POST',
            url: '/view_data_rol',
            data: data,
            beforeSend: function() {
                $('#div_mensajes').removeClass('d-none');
                $('#div_mensajes').addClass('text-center');
                $('#mensajes').html('<img src="vendor/adminlte/dist/img/load.gif" width="10%" height="10%" />');
            },
            success: function(data) {
                $('#div_table').html(data);
                $('#tbl_roles').DataTable({
                    "paging": true,
                    "lengthChange": false,
                    "ordering": true,
                    "info": true,
                    "autoWidth": false,
                    "drawCallback": acciones,
                });
                acciones();
            },
            error: function(xhr) { // if error occured
                toastr.error('Error: '.xhr.statusText + xhr.responseText);
            },
            complete: function() {
                $('#div_mensajes').addClass('d-none');
            },
            dataType: 'html'
        });
    }

    function clear_data() {
        $('#txt_nombre').val('');
        $('#txt_descripcion').val('');
        $("#chk_estado").click();
        $('#hide_id').val('');
        $('#custom-tabs-one-home-tab').click();
        acciones();
    }

    function acciones() {
        $(".btn_edit").unbind().click(function(){
            var data = $(this).data('id');
            $.ajax({
                type: 'POST',
                url: '/edit_rol',
                data: {
                    "_token": $('meta[name="csrf-token"]').attr('content'),
                    "id" : data
                },
                beforeSend: function() {
                    $('#div_mensajes').removeClass('d-none');
                    $('#div_mensajes').addClass('text-center');
                    $('#mensajes').html('<img src="vendor/adminlte/dist/img/load.gif" width="10%" height="10%" />');
                },
                success: function(d) {
                    if (d['msg'] == 'error') {
                        toastr.error(d['data']);
                    } else {
                        toastr.success(d['info']);
                        clear_data();
                        $('#txt_nombre').val(d['data']['nombre']);
                        $('#txt_descripcion').val(d['data']['descripcion']);
                        var est= (d['data']['estado'] == 1 ? 'true' : 'false');
                        $("#chk_estado").prop('checked',est);
                        $('#hide_id').val(d['data']['id']);

                    }
                },
                error: function(xhr) {
                    toastr.error('Error: '.xhr.statusText + xhr.responseText);
                },
                complete: function() {
                    $('#div_mensajes').addClass('d-none');
                },
            });
        });

        $(".btn_delete").unbind().click(function(){
            var data = $(this).data('id');
            var name = $(this).data('name');
            $.confirm({
                title: 'Eliminar Rol!',
                content: 'Desea realizar la eliminación del rol ' + name + '?',
                buttons: {
                    confirm: function () {
                        $.ajax({
                            type: 'POST',
                            url: '/delete_rol',
                            data: {
                                "_token": $('meta[name="csrf-token"]').attr('content'),
                                "id" : data
                            },
                            beforeSend: function() {
                                $('#div_mensajes').removeClass('d-none');
                                $('#div_mensajes').addClass('text-center');
                                $('#mensajes').html('<img src="vendor/adminlte/dist/img/load.gif" width="10%" height="10%" />');
                                },
                            success: function(d) {
                                if (d['msg'] == 'error') {
                                    toastr.error(d['data']);
                                } else {
                                    toastr.success(d['data']);
                                    view_table();
                                    clear_data();
                                }
                            },
                            error: function(xhr) {
                                toastr.error('Error: '.xhr.statusText + xhr.responseText);
                            },
                            complete: function() {
                                $('#div_mensajes').addClass('d-none');
                            },
                        });
                    },
                    cancel: function () {
                        $.alert('Se ha cancelado la eliminación!');
                    }
                }
            });
        });
    }


});

