/** * Page Detail overview */ 'use strict'; // Datatable (jquery) $(function () { // Variable declaration for table var dt_customer_order = $('.datatables-customer-order'), order_details = 'app-ecommerce-order-details.html', statusObj = { 1: { title: 'Ready to Pickup', class: 'bg-label-info' }, 2: { title: 'Dispatched', class: 'bg-label-warning' }, 3: { title: 'Delivered', class: 'bg-label-success' }, 4: { title: 'Out for delivery', class: 'bg-label-primary' } }; // orders datatable if (dt_customer_order.length) { var dt_order = dt_customer_order.DataTable({ ajax: assetsPath + 'json/ecommerce-customer-order.json', // JSON file to add data columns: [ // columns according to JSON { data: '' }, { data: 'order' }, { data: 'date' }, { data: 'status' }, { data: 'spent' }, { data: ' ' } ], columnDefs: [ { // For Responsive className: 'control', searchable: false, orderable: false, responsivePriority: 2, targets: 0, render: function (data, type, full, meta) { return ''; } }, { // order order number targets: 1, responsivePriority: 4, render: function (data, type, full, meta) { var $id = full['order']; return "#" + $id + ''; } }, { // date targets: 2, render: function (data, type, full, meta) { var date = new Date(full.date); // convert the date string to a Date object var formattedDate = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' }); return '' + formattedDate + ' '; } }, { // status targets: 3, render: function (data, type, full, meta) { var $status = full['status']; return ( '' + statusObj[$status].title + '' ); } }, { // spent targets: 4, render: function (data, type, full, meta) { var $spent = full['spent']; return '' + $spent + ''; } }, { // Actions targets: -1, title: 'Actions', searchable: false, orderable: false, render: function (data, type, full, meta) { return ( '
' + '' + '' + '
' ); } } ], order: [[1, 'desc']], dom: '<"card-header flex-column flex-md-row py-0 mt-6 mt-md-0"<"head-label text-center pt-2 pt-md-0">f' + '>t' + '<"row mx-6"' + '<"col-md-12 col-xxl-6 text-center text-xl-start pb-2 pb-xxl-0 pe-0"i>' + '<"col-md-12 col-xxl-6"p>' + '>', lengthMenu: [6, 30, 50, 70, 100], language: { sLengthMenu: '_MENU_', search: '', searchPlaceholder: 'Search order', paginate: { next: '', previous: '' } }, // Buttons with Dropdown // For responsive popup responsive: { details: { display: $.fn.dataTable.Responsive.display.modal({ header: function (row) { var data = row.data(); return 'Details of ' + data['order']; } }), 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; } } } }); $('div.head-label').html('
Orders placed
'); } // Delete Record $('.datatables-orders tbody').on('click', '.delete-record', function () { dt_order.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