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) public function getUserData(Request $request)
{ {
$users = collect(); $query = User::select([
'uid', 'email', 'nickname', 'score', 'permission', 'verified', 'register_at'
]);
if ($request->has('uid')) { if ($request->has('uid')) {
$users = User::select(['uid', 'email', 'nickname', 'score', 'permission', 'verified', 'register_at']) $query->where('uid', $request->get('uid'));
->where('uid', intval($request->input('uid')));
} else {
$users = User::select(['uid', 'email', 'nickname', 'score', 'permission', 'verified', 'register_at']);
} }
return Datatables::of($users)->editColumn('email', function ($user) { return Datatables::of($query)
return $user->email ?: 'EMPTY'; ->setRowId('uid')
}) ->editColumn('email', function ($user) {
->setRowId('uid') return $user->email ?: 'EMPTY';
->addColumn('operations', app('user.current')->getPermission()) })
->addColumn('players_count', function ($user) { ->addColumn('operations', app('user.current')->getPermission())
return Player::where('uid', $user->uid)->count(); ->addColumn('players_count', function ($user) {
}) return Player::where('uid', $user->uid)->count();
->make(true); })
->make(true);
} }
/** /**
@ -281,15 +281,19 @@ class AdminController extends Controller
public function getPlayerData(Request $request) 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')) { if ($request->has('uid')) {
$players = Player::select(['pid', 'uid', 'player_name', 'preference', 'tid_steve', 'tid_alex', 'tid_cape', 'last_modified']) $query->where('uid', $request->get('uid'));
->where('uid', intval($request->input('uid')));
} else {
$players = Player::select(['pid', 'uid', 'player_name', 'preference', 'tid_steve', 'tid_alex', 'tid_cape', 'last_modified']);
} }
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() { function initPlayersTable() {
const specificUid = getQueryString('uid'); const query = location.href.split('?')[1];
const query = specificUid ? `?uid=${specificUid}` : '';
$('#player-table').DataTable({ $('#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, scrollY: ($('.content-wrapper').height() - $('.content-header').outerHeight()) * 0.7,
fnDrawCallback: () => $('[data-toggle="tooltip"]').tooltip(), fnDrawCallback: () => $('[data-toggle="tooltip"]').tooltip(),
columnDefs: playersTableColumnDefs columnDefs: playersTableColumnDefs

View File

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