var source = {
    settings: {
        ajaxUrl: ''
    },
    init: function() {
        source.initDataTable();
    },
    initDataTable: function() {

        var callBack = function() {
        };

        var dataList = jQ('#source-datalist').DataTable({
            'processing': true,
            'serverSide': true,
            'ajax': {
                'url': source.settings.ajaxUrl,
                'data': function(d) {
                    d.url = global.settings.url;
                }
            },
            'deferRender': true,
            'columnDefs': [
                { 'orderable': false, 'targets': 4 },
                { 'searchable': false, 'targets': 4 }
            ],
            drawCallback: function() {
                callBack();
            },
            responsive: {
                details: {
                    renderer: function( api,rowIdx ) {
                        return global.dataTableResponsiveCallBack(api, rowIdx, callBack);
                    }
                }
            }
        });

        jQ('.content-container').removeClass('has-loading');
        jQ('.content-container-content').removeClass('hide');
    }
};