';
return $row_output;
}
},
{
// customer Role
targets: 3,
render: function (data, type, full, meta) {
var $id = full['customer_id'];
return "#" + $id + '';
}
},
{
// Plans
targets: 4,
render: function (data, type, full, meta) {
var $plan = full['country'];
var $code = full['country_code'];
if ($code) {
var $output_code = ``;
} else {
// For Avatar badge
var $output_code = ``;
}
var $row_output =
'
' +
'
' +
$output_code +
'
' +
'
' +
'' +
$plan +
'' +
'
' +
'
';
return $row_output;
}
},
{
// customer Status
targets: 5,
render: function (data, type, full, meta) {
var $status = full['order'];
return '' + $status + '';
}
},
{
// customer Spent
targets: 6,
render: function (data, type, full, meta) {
var $spent = full['total_spent'];
return '' + $spent + '';
}
}
],
order: [[2, 'desc']],
dom:
'<"card-header d-flex flex-wrap flex-md-row flex-column align-items-start align-items-sm-center py-0"' +
'<"d-flex align-items-center me-5"f>' +
'<"dt-action-buttons text-xl-end text-lg-start text-md-end text-start d-flex align-items-center justify-content-md-end flex-wrap flex-sm-nowrap mb-6 mb-sm-0"lB>' +
'>t' +
'<"row"' +
'<"col-sm-12 col-md-6"i>' +
'<"col-sm-12 col-md-6"p>' +
'>',
language: {
sLengthMenu: '_MENU_',
search: '',
searchPlaceholder: 'Search Order',
paginate: {
next: '',
previous: ''
}
},
// Buttons with Dropdown
buttons: [
{
extend: 'collection',
className: 'btn btn-label-secondary dropdown-toggle me-4',
text: 'Export',
buttons: [
{
extend: 'print',
text: 'Print',
className: 'dropdown-item',
exportOptions: {
columns: [1, 2, 3, 4, 5, 6],
// prevent avatar to be print
format: {
body: function (inner, coldex, rowdex) {
if (inner.length <= 0) return inner;
var el = $.parseHTML(inner);
var result = '';
$.each(el, function (index, item) {
if (item.classList !== undefined && item.classList.contains('customer-name')) {
result = result + item.lastChild.firstChild.textContent;
} else if (item.innerText === undefined) {
result = result + item.textContent;
} else result = result + item.innerText;
});
return result;
}
}
},
customize: function (win) {
//customize print view for dark
$(win.document.body)
.css('color', headingColor)
.css('border-color', borderColor)
.css('background-color', bodyBg);
$(win.document.body)
.find('table')
.addClass('compact')
.css('color', 'inherit')
.css('border-color', 'inherit')
.css('background-color', 'inherit');
}
},
{
extend: 'csv',
text: 'Csv',
className: 'dropdown-item',
exportOptions: {
columns: [1, 2, 3, 4, 5, 6],
// prevent avatar to be display
format: {
body: function (inner, coldex, rowdex) {
if (inner.length <= 0) return inner;
var el = $.parseHTML(inner);
var result = '';
$.each(el, function (index, item) {
if (item.classList !== undefined && item.classList.contains('customer-name')) {
result = result + item.lastChild.firstChild.textContent;
} else if (item.innerText === undefined) {
result = result + item.textContent;
} else result = result + item.innerText;
});
return result;
}
}
}
},
{
extend: 'excel',
text: 'Excel',
className: 'dropdown-item',
exportOptions: {
columns: [1, 2, 3, 4, 5, 6],
// prevent avatar to be display
format: {
body: function (inner, coldex, rowdex) {
if (inner.length <= 0) return inner;
var el = $.parseHTML(inner);
var result = '';
$.each(el, function (index, item) {
if (item.classList !== undefined && item.classList.contains('customer-name')) {
result = result + item.lastChild.firstChild.textContent;
} else if (item.innerText === undefined) {
result = result + item.textContent;
} else result = result + item.innerText;
});
return result;
}
}
}
},
{
extend: 'pdf',
text: 'Pdf',
className: 'dropdown-item',
exportOptions: {
columns: [1, 2, 3, 4, 5, 6],
// prevent avatar to be display
format: {
body: function (inner, coldex, rowdex) {
if (inner.length <= 0) return inner;
var el = $.parseHTML(inner);
var result = '';
$.each(el, function (index, item) {
if (item.classList !== undefined && item.classList.contains('customer-name')) {
result = result + item.lastChild.firstChild.textContent;
} else if (item.innerText === undefined) {
result = result + item.textContent;
} else result = result + item.innerText;
});
return result;
}
}
}
},
{
extend: 'copy',
text: 'Copy',
className: 'dropdown-item',
exportOptions: {
columns: [1, 2, 3, 4, 5, 6],
// prevent avatar to be display
format: {
body: function (inner, coldex, rowdex) {
if (inner.length <= 0) return inner;
var el = $.parseHTML(inner);
var result = '';
$.each(el, function (index, item) {
if (item.classList !== undefined && item.classList.contains('customer-name')) {
result = result + item.lastChild.firstChild.textContent;
} else if (item.innerText === undefined) {
result = result + item.textContent;
} else result = result + item.innerText;
});
return result;
}
}
}
}
]
},
{
text: 'Add Customer',
className: 'add-new btn btn-primary',
attr: {
'data-bs-toggle': 'offcanvas',
'data-bs-target': '#offcanvasEcommerceCustomerAdd'
}
}
],
// For responsive popup
responsive: {
details: {
display: $.fn.dataTable.Responsive.display.modal({
header: function (row) {
var data = row.data();
return 'Details of ' + data['customer'];
}
}),
type: 'column',
renderer: function (api, rowIdx, columns) {
var data = $.map(columns, function (col, i) {
return col.title !== '' // ? Do not show row in modal popup if title is blank (for check box)
? '
' +
'
' +
col.title +
':' +
'
' +
'
' +
col.data +
'
' +
'
'
: '';
}).join('');
return data ? $('
').append(data) : false;
}
}
}
});
$('.dataTables_length').addClass('ms-n2 me-2');
$('.dt-action-buttons').addClass('pt-0');
$('.dataTables_filter').addClass('ms-n3 mb-0 mb-md-6');
$('.dt-buttons').addClass('d-flex flex-wrap');
}
// Delete Record
$('.datatables-customers tbody').on('click', '.delete-record', function () {
dt_customer.row($(this).parents('tr')).remove().draw();
});
// Filter form control to default size
// ? setTimeout used for multilingual table initialization
setTimeout(() => {
$('.dataTables_filter .form-control').removeClass('form-control-sm');
$('.dataTables_length .form-select').removeClass('form-select-sm');
}, 300);
});
// Validation & Phone mask
(function () {
const phoneMaskList = document.querySelectorAll('.phone-mask'),
eCommerceCustomerAddForm = document.getElementById('eCommerceCustomerAddForm');
// Phone Number
if (phoneMaskList) {
phoneMaskList.forEach(function (phoneMask) {
new Cleave(phoneMask, {
phone: true,
phoneRegionCode: 'US'
});
});
}
// Add New customer Form Validation
const fv = FormValidation.formValidation(eCommerceCustomerAddForm, {
fields: {
customerName: {
validators: {
notEmpty: {
message: 'Please enter fullname '
}
}
},
customerEmail: {
validators: {
notEmpty: {
message: 'Please enter your email'
},
emailAddress: {
message: 'The value is not a valid email address'
}
}
}
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
bootstrap5: new FormValidation.plugins.Bootstrap5({
// Use this for enabling/changing valid/invalid class
eleValidClass: '',
rowSelector: function (field, ele) {
// field is the field name & ele is the field element
return '.mb-6';
}
}),
submitButton: new FormValidation.plugins.SubmitButton(),
// Submit the form when all fields are valid
// defaultSubmit: new FormValidation.plugins.DefaultSubmit(),
autoFocus: new FormValidation.plugins.AutoFocus()
}
});
})();