UNPKG

laravel-datatables-assets

Version:

Laravel DataTables Assets (Buttons, Renderers, Callback, etc...)

51 lines (45 loc) 1.57 kB
/** * DataTables Batch Ajax action button. * * -- Laravel Integration -- * * Button::make('ajaxBatch') * ->text('Restore') * ->url(route('batch-restore-action-url')) * ->confirmation('Generic confirmation message.') // Optional if you want confirmation before proceeding. * ->onCancel('function(response) { alert('confirmation cancelled') }') * ->onSuccess('function(response) { alert('success') }') * ->onError('function(err) { alert('error') }') * */ $.fn.dataTable.ext.buttons.ajaxBatch = { name: 'ajaxBatch', extend: 'selected', className: 'buttons-ajax btn-secondary', text: 'Ajax Batch Action (Change Me)', action: function (e, dt, node, config) { let selected = dt.rows({selected: true}).data(); let formData = { data: [] }; for (i = 0; i < selected.count(); i++) { formData.data.push(selected[i]); } if (config.hasOwnProperty('confirmation')) { if (! confirm(config.confirmation)) { if (config.hasOwnProperty('onCancel')) config.onCancel(); return false; } } let url = config.url || ''; let method = config.method || 'POST'; $.ajax({ url: url, method: method, data: formData }).done(response => { if (config.hasOwnProperty('onSuccess')) config.onSuccess(response); dt.draw(); }).fail(err => { if (config.hasOwnProperty('onError')) config.onError(err); }) } };