LabsSettings.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Http\Controllers\Settings;
  3. use Illuminate\Http\Request;
  4. use Cookie;
  5. use Illuminate\Support\Facades\Redis;
  6. use App\Services\SuggestionService;
  7. trait LabsSettings {
  8. public function __constructor()
  9. {
  10. $this->middleware('auth');
  11. }
  12. public function labs(Request $request)
  13. {
  14. $profile = $request->user()->profile;
  15. return view('settings.labs', compact('profile'));
  16. }
  17. public function labsStore(Request $request)
  18. {
  19. $this->validate($request, [
  20. 'profile_layout' => 'nullable',
  21. 'dark_mode' => 'nullable',
  22. 'profile_suggestions' => 'nullable',
  23. 'moment_bg' => 'nullable'
  24. ]);
  25. $changes = false;
  26. $profile = $request->user()->profile;
  27. $cookie = Cookie::forget('dark-mode');
  28. if($request->has('dark_mode')) {
  29. if($request->dark_mode == 'on') {
  30. $cookie = Cookie::make('dark-mode', 'true', 43800);
  31. }
  32. }
  33. if($request->has('profile_layout')) {
  34. } else {
  35. $profile->profile_layout = null;
  36. $changes = true;
  37. }
  38. if($request->has('profile_suggestions')) {
  39. if($profile->is_suggestable == false) {
  40. $profile->is_suggestable = true;
  41. $changes = true;
  42. if($profile->statuses->count() > 0) {
  43. SuggestionService::set($profile->id);
  44. }
  45. }
  46. } else {
  47. $profile->is_suggestable = false;
  48. $changes = true;
  49. SuggestionService::del($profile->id);
  50. }
  51. if($request->has('moment_bg') && $profile->profile_layout == 'moment') {
  52. $bg = in_array($request->input('moment_bg'), $this->momentBackgrounds()) ? $request->input('moment_bg') : 'default';
  53. $profile->header_bg = $bg;
  54. $changes = true;
  55. }
  56. if($changes == true) {
  57. $profile->save();
  58. }
  59. return redirect(route('settings.labs'))
  60. ->with('status', 'Labs preferences successfully updated!')
  61. ->cookie($cookie);
  62. }
  63. protected function momentBackgrounds()
  64. {
  65. return [
  66. 'default',
  67. 'azure',
  68. 'passion',
  69. 'reef',
  70. 'lush',
  71. 'neon',
  72. 'flare',
  73. 'morning',
  74. 'tranquil',
  75. 'mauve',
  76. 'argon',
  77. 'royal'
  78. ];
  79. }
  80. }