A bare bones front-end for knockout designed for maximum compatibility with "obsolete" browsers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.2KB

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Knockout\User;
  5. use App\Knockout\UserPost;
  6. use App\Knockout\UserThread;
  7. use App\Knockout\UserBan;
  8. class UserController extends Controller {
  9. public function all(Request $request)
  10. {
  11. $page = $request->route('page', 0);
  12. $query = $request->get('query', '');
  13. $users = User::all($page, $query);
  14. return view('page/users', [
  15. 'query' => $query,
  16. 'users' => $users->getRecords(),
  17. 'paginator' => $users->getPaginator($request)
  18. ]);
  19. }
  20. public function one(Request $request)
  21. {
  22. $userId = $request->route('user', null);
  23. $user = User::one($userId);
  24. return view('page/user', [
  25. 'user' => $user->getRecord()
  26. ]);
  27. }
  28. public function posts(Request $request)
  29. {
  30. $userId = $request->route('user', null);
  31. $page = $request->route('page', 1);
  32. $user = User::one($userId);
  33. $posts = UserPost::all($userId, $page);
  34. return view('page/user-posts', [
  35. 'user' => $user->getRecord(),
  36. 'posts' => $posts->getRecords(),
  37. 'paginator' => $posts->getPaginator($request)
  38. ]);
  39. }
  40. public function threads(Request $request)
  41. {
  42. $userId = $request->route('user', null);
  43. $page = $request->route('page', 1);
  44. $user = User::one($userId);
  45. $threads = UserThread::all($userId, $page);
  46. // nasty bodge to cover up api inconsistency
  47. $userRecord = $user->getRecord();
  48. $threadRecords = array_map(function($thread) use($userRecord) {
  49. $thread->user = $userRecord;
  50. return $thread;
  51. }, $threads->getRecords());
  52. return view('page/user-threads', [
  53. 'user' => $userRecord,
  54. 'threads' => $threadRecords,
  55. 'paginator' => $threads->getPaginator($request)
  56. ]);
  57. }
  58. public function bans(Request $request)
  59. {
  60. $userId = $request->route('user', null);
  61. $user = User::one($userId);
  62. $bans = UserBan::all($userId);
  63. return view('page/user-bans', [
  64. 'user' => $user->getRecord(),
  65. 'bans' => $bans->getRecords()
  66. ]);
  67. }
  68. }