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'));
});