Use POST method to get data for DataTables

This commit is contained in:
printempw 2018-08-09 14:35:39 +08:00
parent d2642eea92
commit f10f5868bb
4 changed files with 21 additions and 10 deletions

View File

@ -8,10 +8,13 @@ function initPlayersTable() {
const query = location.href.split('?')[1];
$('#player-table').DataTable({
ajax: url(`admin/player-data${ query ? ('?'+query) : '' }`),
columnDefs: playersTableColumnDefs,
scrollY: ($('.content-wrapper').height() - $('.content-header').outerHeight()) * 0.7,
fnDrawCallback: () => $('[data-toggle="tooltip"]').tooltip(),
columnDefs: playersTableColumnDefs
ajax: {
url: url(`admin/player-data${ query ? ('?'+query) : '' }`),
type: 'POST'
}
}).on('xhr.dt', handleDataTablesAjaxError);
}

View File

@ -6,9 +6,12 @@ if ($('#plugin-table').length === 1) {
function initPluginsTable() {
$.pluginsTable = $('#plugin-table').DataTable({
ajax: url('admin/plugins/data'),
columnDefs: pluginsTableColumnDefs,
fnDrawCallback: () => $('[data-toggle="tooltip"]').tooltip(),
columnDefs: pluginsTableColumnDefs
ajax: {
url: url('admin/plugins/data'),
type: 'POST'
}
}).on('xhr.dt', handleDataTablesAjaxError);
}

View File

@ -8,11 +8,14 @@ function initUsersTable() {
const query = location.href.split('?')[1];
$('#user-table').DataTable({
ajax: url(`admin/user-data${ query ? ('?'+query) : '' }`),
columnDefs: usersTableColumnDefs,
scrollY: ($('.content-wrapper').height() - $('.content-header').outerHeight()) * 0.7,
fnDrawCallback: () => $('[data-toggle="tooltip"]').tooltip(),
rowCallback: (row, data) => $(row).attr('id', `user-${data.uid}`),
columnDefs: usersTableColumnDefs
ajax: {
url: url(`admin/user-data${ query ? ('?'+query) : '' }`),
type: 'POST'
}
}).on('xhr.dt', handleDataTablesAjaxError);
}

View File

@ -111,20 +111,22 @@ Route::group(['middleware' => 'admin', 'prefix' => 'admin'], function ()
Route::any('/options', 'AdminController@options');
Route::get('/users', 'AdminController@users');
Route::get('/user-data', 'AdminController@getUserData');
Route::any('/user-data', 'AdminController@getUserData');
Route::get('/players', 'AdminController@players');
Route::get('/player-data', 'AdminController@getPlayerData');
Route::any('/player-data', 'AdminController@getPlayerData');
Route::get('/user/{uid}', 'AdminController@getOneUser');
// ajax handlers
// Ajax handlers
Route::post('/users', 'AdminController@userAjaxHandler');
Route::post('/players', 'AdminController@playerAjaxHandler');
Route::group(['prefix' => 'plugins'], function () {
Route::get ('/data', 'PluginController@getPluginData');
Route::any ('/market', 'PluginController@showMarket');
// Allow using POST method to get data for DataTables,
// otherwise it may cause a "414 Request-URI Too Large" error.
Route::any ('/data', 'PluginController@getPluginData');
Route::get ('/manage', 'PluginController@showManage');
Route::post('/manage', 'PluginController@manage');
Route::any ('/config/{name}', 'PluginController@config');