$( document ).ready(function() {
    let dataTableList = null;
    let urlController = rootPath + 'admin/usuarios';
    var appConfig =  new AppConFig();

    // $(document).on('click','#btnAdd',function(){
    //     appConfig.modalEdit.show();
    //     appConfig.contentModalContainer.html(appConfig.htmlLoading);
    //     appConfig.ajaxCall({
    //         type:'get',
    //         url: urlController + '/add.json',
    //         data:{}
    //     },function(response)
    //     {
    //         if(response.content)
    //         {
    //             appConfig.contentModalContainer.html(response.content);
    //             appConfig.callSelect2();
    //         }
    //     },
    //     function(){

    //     },
    //     function(){

    //     }
    //     )
    // });
    // $(document).on('click','#btnCancel',function(){
    //     appConfig.modalEdit.hide();
    // });
    // $(document).on('click','.btnEdit',function(){
    //     let id = $(this).data('id');
    //     if(!id)
    //     {
    //         return;
    //     }
    //     appConfig.modalEdit.show();
    //     appConfig.contentModalContainer.html(appConfig.htmlLoading);
    //     appConfig.ajaxCall({
    //         type:'get',
    //         url: urlController + '/edit/' + id + '.json',
    //         data:{}
    //     },
    //     function(response)
    //     {
    //         if(response.content)
    //         {
    //             appConfig.contentModalContainer.html(response.content);
    //             appConfig.callSelect2();
    //         }
    //     },
    //     function(){

    //     },
    //     function(){

    //     }
    //     )
    // });
    // $(document).on('click','#btnFormAdd',function(e){
    //     let btn = $(this);
    //     var buttonLoading =  new ButtonLoading(btn);
    //     buttonLoading.startLoading();
    //     let form = $('#formAdd');
    //     let isValid = form[0].checkValidity();
    //     if(!isValid)
    //     {
    //         buttonLoading.stopLoading();
    //         return;
    //     }
    //     e.preventDefault();
    //     appConfig.ajaxCall({
    //         type:'post',
    //         url: urlController + '/add.json',
    //         data:form.serialize()
    //     },function(response)
    //     {
    //         buttonLoading.stopLoading();
    //         appConfig.processAjaxResponse(response,function(){
    //             appConfig.modalEdit.hide();
    //             dataTableList.ajax.reload();
    //         },function(){
    //             appConfig.contentModalContainer.html(response.content);
    //             appConfig.callSelect2();
    //         });
    //     },
    //     function(){

    //     },
    //     function(){

    //     })
    // });
    // $(document).on('click','#btnFormEdit',function(e){
    //     let id = $(this).data('id');
    //     if(!id)
    //     {
    //         return;
    //     }
    //     let btn = $(this);
    //     var buttonLoading =  new ButtonLoading(btn);
    //     buttonLoading.startLoading();
    //     let form = $('#formEdit');
    //     let isValid = form[0].checkValidity();
    //     if(!isValid)
    //     {
    //         buttonLoading.stopLoading();
    //         return;
    //     }
    //     e.preventDefault();
    //     appConfig.ajaxCall({
    //         type:'post',
    //         url: urlController + '/edit/' + id + '.json',
    //         data:form.serialize()
    //     },function(response)
    //     {
    //         buttonLoading.stopLoading();
    //         appConfig.processAjaxResponse(response,function(){
    //             appConfig.modalEdit.hide();
    //             dataTableList.ajax.reload();
    //         },function(){
    //             appConfig.contentModalContainer.html(response.content);
    //             appConfig.callSelect2();
    //         });
    //     },
    //     function(){

    //     },
    //     function(){

    //     })
    // });
    // $(document).on('click','.btnDelete',function(){
    //     let id = $(this).data('id');
    //     if(!id)
    //     {
    //         return;
    //     }
    //     Swal.fire(appConfig.sweetAlertDeleteConfiguration).then((result) => {
    //         if (result.isConfirmed) {
    //             appConfig.ajaxCall({
    //                 type:'post',
    //                 url: urlController + '/delete/' + id + '.json',
    //                 data:{}
    //             },function(response)
    //             {
    //                 appConfig.processAjaxResponse(response,function(){
    //                     dataTableList.ajax.reload();
    //                 },function(){
    //                 });
    //             },
    //             function(){

    //             },
    //             function(){

    //             })
    //         }
    //     })
    // });
    function loadDataTable(){
         dataTableList = $('#dataTableList').DataTable({
                order: [[0, 'desc']],
                autoWidth: false,
                responsive: true,
                destroy: true,
                ajax: {
                    url: urlController + '/list/',
                },
                columns: [
                    {
                        data: 'id',
                        width: '80px'
                    },
                    {
                        data: 'name',
                    },
                    {
                        data: 'email',
                    },
                    {
                        data: 'id',
                        width: '80px',
                        render: function (data, type, row, meta) {
                            return appConfig.getHtmlActionsButtons(row.id);
                        }
                    },

                ],
                lengthMenu: appConfig.dataTableLengthMenu,
                pageLength: appConfig.dataTablePageLength,
                pagingType: appConfig.dataTablePagingType,
                language: appConfig.dataTableLanguageConfig,
        });
    }
    loadDataTable();
    appConfig.registerListeners(urlController, appConfig, dataTableList);
});
