HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall_new/buyercall/buyercall/assets/scripts/forms_backend.js
var _ = require('underscore');
var __ = require('localize');
var $ = require('jquery');
var App = require('./app');
var utils = require('../components/utils');

const API_ROOT = `//${appConfig.server_url}/api/forms`;
const CSV_URL = `//${appConfig.server_url}/forms/csv`;
const DATA_URL = API_ROOT;


/**
 * Initialize the Widget datatable.
 */
function initWidget ($el) {
    var dataUrl = DATA_URL;

    App.datatables();

    var tableApi = $el.DataTable({
        buttons: [
            {
                text: 'Download csv',
                className: 'btn-primary btn btn-csv-dl',
                action: function (e, dt, node, config) {
                    var ajaxParams = dt.ajax.params(),
                        searchOptions = {},
                        queryString, url;

                    for (var key in ajaxParams) {
                        if (key !== 'columns') {
                            searchOptions[key] = ajaxParams[key];
                        }
                    }

                    queryString = $.param(searchOptions);
                    url = `${CSV_URL}?${queryString}`;
                    window.open(url);
                }
            }
        ],
        dom: "<'row'<'col-sm-3 col-md-3 col-lg-2'B><'col-sm-2 col-lg-2'l><'col-xs-12 col-sm-7 col-md-7 col-lg-8 datatables-padding text-right'f>>" +
                 "<'row'<'col-sm-12't>>" +
                 "<'row'<'col-sm-5'i><'col-sm-7'rp>>",
        columns: [
            {
                data: null,
                render: function (data, type, row, meta) {
                    return tableApi.page.info().start + meta.row + 1;
                },
                searchable: false,
                orderable: false
            },
            {
                data: 1
            },
            {
                data: 2,
                searchable: false,
                orderable: true,
                render: function (data, type, row, meta) {
                    return `<a href='//${appConfig.server_url}/forms/${row['0']}/leads'>${row['2']}</a>`;
                }
            },
            {
                data: 3,
                searchable: false,
                render: function (date) {
                    return `<time datetime='${date}'>${moment(date).fromNow()}</time>`;
                }
            },
            {
                data: 4,
                searchable: false,
                render: function (date) {
                    return `<time datetime='${date}'>${moment(date).fromNow()}</time>`;
                }
            },
            {
                data: null,
                searchable: false,
                orderable: false,
                className: "text-center",
                render: function (data, type, row, meta) {
                    return $('#action-cell').html().replace('-1', row[0]);
                }
            }
        ],
        "order": [[ 1, "desc" ]],
        "language": {
            "lengthMenu": 'Display <select class="form-control dataTables-records-length-select">'+
            '<option value="10"> 10</option>'+
            '<option value="20"> 20</option>'+
            '<option value="30"> 30</option>'+
            '<option value="40"> 40</option>'+
            '<option value="50"> 50</option>'+
            '</select> records'
        },
        "processing": false,
        "serverSide": true,
        "ajax": dataUrl
    });

    $('#forms-datatable_filter label').addClass('form-group');
    $('#forms-datatable_length label').addClass('form-group');
    /* Add placeholder attribute to the search input */
    $('.dataTables_filter input').attr('placeholder', 'Search Records');
}

$(function () {
    var csrfToken = $('meta[name=csrf-token]').attr('content');
    $.ajaxSetup({
        beforeSend: function(xhr, settings) {
            if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
                xhr.setRequestHeader("X-CSRFToken", csrfToken);
            }
        }
    });

    initWidget($('#forms-datatable'));
});