Forward front-end query string parameters to datatables

This commit is contained in:
printempw 2018-07-27 17:11:07 +08:00
parent fd5d8a06ce
commit 459a232c26
3 changed files with 28 additions and 26 deletions

View File

@ -248,24 +248,24 @@ class AdminController extends Controller
public function getUserData(Request $request)
{
$users = collect();
$query = User::select([
'uid', 'email', 'nickname', 'score', 'permission', 'verified', 'register_at'
]);
if ($request->has('uid')) {
$users = User::select(['uid', 'email', 'nickname', 'score', 'permission', 'verified', 'register_at'])
->where('uid', intval($request->input('uid')));
} else {
$users = User::select(['uid', 'email', 'nickname', 'score', 'permission', 'verified', 'register_at']);
$query->where('uid', $request->get('uid'));
}
return Datatables::of($users)->editColumn('email', function ($user) {
return $user->email ?: 'EMPTY';
})
->setRowId('uid')
->addColumn('operations', app('user.current')->getPermission())
->addColumn('players_count', function ($user) {
return Player::where('uid', $user->uid)->count();
})
->make(true);
return Datatables::of($query)
->setRowId('uid')
->editColumn('email', function ($user) {
return $user->email ?: 'EMPTY';
})
->addColumn('operations', app('user.current')->getPermission())
->addColumn('players_count', function ($user) {
return Player::where('uid', $user->uid)->count();
})
->make(true);
}
/**
@ -281,15 +281,19 @@ class AdminController extends Controller
public function getPlayerData(Request $request)
{
$players = collect();
$query = Player::select([
'pid', 'uid', 'player_name', 'preference', 'tid_steve', 'tid_alex', 'tid_cape', 'last_modified'
]);
if ($request->has('uid')) {
$players = Player::select(['pid', 'uid', 'player_name', 'preference', 'tid_steve', 'tid_alex', 'tid_cape', 'last_modified'])
->where('uid', intval($request->input('uid')));
} else {
$players = Player::select(['pid', 'uid', 'player_name', 'preference', 'tid_steve', 'tid_alex', 'tid_cape', 'last_modified']);
$query->where('uid', $request->get('uid'));
}
return Datatables::of($players)->setRowId('pid')->make(true);
if ($request->has('pid')) {
$query->where('pid', $request->get('pid'));
}
return Datatables::of($query)->setRowId('pid')->make(true);
}
/**

View File

@ -5,11 +5,10 @@ if ($('#player-table').length === 1) {
}
function initPlayersTable() {
const specificUid = getQueryString('uid');
const query = specificUid ? `?uid=${specificUid}` : '';
const query = location.href.split('?')[1];
$('#player-table').DataTable({
ajax: url(`admin/player-data${query}`),
ajax: url(`admin/player-data${ query ? ('?'+query) : '' }`),
scrollY: ($('.content-wrapper').height() - $('.content-header').outerHeight()) * 0.7,
fnDrawCallback: () => $('[data-toggle="tooltip"]').tooltip(),
columnDefs: playersTableColumnDefs

View File

@ -5,11 +5,10 @@ if ($('#user-table').length === 1) {
}
function initUsersTable() {
const specificUid = getQueryString('uid');
const query = specificUid ? `?uid=${specificUid}` : '';
const query = location.href.split('?')[1];
$('#user-table').DataTable({
ajax: url(`admin/user-data${query}`),
ajax: url(`admin/user-data${ query ? ('?'+query) : '' }`),
scrollY: ($('.content-wrapper').height() - $('.content-header').outerHeight()) * 0.7,
fnDrawCallback: () => $('[data-toggle="tooltip"]').tooltip(),
rowCallback: (row, data) => $(row).attr('id', `user-${data.uid}`),