Browse Source

Update Settings, remove reports page

Daniel Supernault 4 years ago
parent
commit
9cf962fff5

+ 205 - 212
app/Http/Controllers/SettingsController.php

@@ -12,223 +12,216 @@ use Carbon\Carbon;
 use Illuminate\Http\Request;
 use Illuminate\Support\Str;
 use App\Http\Controllers\Settings\{
-    ExportSettings,
-    LabsSettings,
-    HomeSettings,
-    PrivacySettings,
-    RelationshipSettings,
-    SecuritySettings
+	ExportSettings,
+	LabsSettings,
+	HomeSettings,
+	PrivacySettings,
+	RelationshipSettings,
+	SecuritySettings
 };
 use App\Jobs\DeletePipeline\DeleteAccountPipeline;
 
 class SettingsController extends Controller
 {
-    use ExportSettings,
-    LabsSettings,
-    HomeSettings,
-    PrivacySettings,
-    RelationshipSettings,
-    SecuritySettings;
-
-    public function __construct()
-    {
-        $this->middleware('auth');
-    }
-
-    public function accessibility()
-    {
-        $settings = Auth::user()->settings;
-
-        return view('settings.accessibility', compact('settings'));
-    }
-
-    public function accessibilityStore(Request $request)
-    {
-        $settings = Auth::user()->settings;
-        $fields = [
-          'compose_media_descriptions',
-          'reduce_motion',
-          'optimize_screen_reader',
-          'high_contrast_mode',
-          'video_autoplay',
-        ];
-        foreach ($fields as $field) {
-            $form = $request->input($field);
-            if ($form == 'on') {
-                $settings->{$field} = true;
-            } else {
-                $settings->{$field} = false;
-            }
-            $settings->save();
-        }
-
-        return redirect(route('settings.accessibility'))->with('status', 'Settings successfully updated!');
-    }
-
-    public function notifications()
-    {
-        return view('settings.notifications');
-    }
-
-    public function applications()
-    {
-        return view('settings.applications');
-    }
-
-    public function dataImport()
-    {
-        abort_if(!config('pixelfed.import.instagram.enabled'), 404);
-        return view('settings.import.home');
-    }
-
-    public function dataImportInstagram()
-    {
-        abort_if(!config('pixelfed.import.instagram.enabled'), 404);
-        return view('settings.import.instagram.home');
-    }
-
-    public function developers()
-    {
-        return view('settings.developers');
-    }
-
-    public function removeAccountTemporary(Request $request)
-    {
-        $user = Auth::user();
-        abort_if(!config('pixelfed.account_deletion'), 403);
-        abort_if($user->is_admin, 403);
-
-        return view('settings.remove.temporary');
-    }
-
-    public function removeAccountTemporarySubmit(Request $request)
-    {
-        $user = Auth::user();
-        abort_if(!config('pixelfed.account_deletion'), 403);
-        abort_if($user->is_admin, 403);
-        $profile = $user->profile;
-        $user->status = 'disabled';
-        $profile->status = 'disabled';
-        $user->save();
-        $profile->save();
-        Auth::logout();
-        Cache::forget('profiles:private');
-        return redirect('/');
-    }
-
-    public function removeAccountPermanent(Request $request)
-    {
-        $user = Auth::user();
-        abort_if($user->is_admin, 403);
-        return view('settings.remove.permanent');
-    }
-
-    public function removeAccountPermanentSubmit(Request $request)
-    {
-        if(config('pixelfed.account_deletion') == false) {
-            abort(404);
-        }
-        $user = Auth::user();
-        abort_if(!config('pixelfed.account_deletion'), 403);
-        abort_if($user->is_admin, 403);
-        $profile = $user->profile;
-        $ts = Carbon::now()->addMonth();
-        $user->status = 'delete';
-        $profile->status = 'delete';
-        $user->delete_after = $ts;
-        $profile->delete_after = $ts;
-        $user->save();
-        $profile->save();
-        Cache::forget('profiles:private');
-        Auth::logout();
-        DeleteAccountPipeline::dispatch($user)->onQueue('high');
-        return redirect('/');
-    }
-
-    public function requestFullExport(Request $request)
-    {
-        $user = Auth::user();
-        return view('settings.export.show');
-    }
-
-    public function reportsHome(Request $request)
-    {
-        $profile = Auth::user()->profile;
-        $reports = Report::whereProfileId($profile->id)->orderByDesc('created_at')->paginate(10);
-        return view('settings.reports', compact('reports'));
-    }
-
-    public function metroDarkMode(Request $request)
-    {
-        $this->validate($request, [
-            'mode' => 'required|string|in:light,dark'
-        ]);
-        
-        $mode = $request->input('mode');
-
-        if($mode == 'dark') {
-            $cookie = Cookie::make('dark-mode', true, 43800);
-        } else {
-            $cookie = Cookie::forget('dark-mode');
-        }
-
-        return response()->json([200])->cookie($cookie);
-    }
-
-    public function sponsor()
-    {
-        $default = [
-            'patreon' => null,
-            'liberapay' => null,
-            'opencollective' => null
-        ];
-        $sponsors = ProfileSponsor::whereProfileId(Auth::user()->profile->id)->first();
-        $sponsors = $sponsors ? json_decode($sponsors->sponsors, true) : $default;
-        return view('settings.sponsor', compact('sponsors'));
-    }
-
-    public function sponsorStore(Request $request)
-    {
-        $this->validate($request, [
-            'patreon' => 'nullable|string',
-            'liberapay' => 'nullable|string',
-            'opencollective' => 'nullable|string'
-        ]);
-
-        $patreon = Str::startsWith($request->input('patreon'), 'https://') ? 
-            substr($request->input('patreon'), 8) : 
-            $request->input('patreon');
-
-        $liberapay = Str::startsWith($request->input('liberapay'), 'https://') ? 
-            substr($request->input('liberapay'), 8) : 
-            $request->input('liberapay');
-            
-        $opencollective = Str::startsWith($request->input('opencollective'), 'https://') ? 
-            substr($request->input('opencollective'), 8) : 
-            $request->input('opencollective');
-
-        $patreon = Str::startsWith($patreon, 'patreon.com/') ? e($patreon) : null;
-        $liberapay = Str::startsWith($liberapay, 'liberapay.com/') ? e($liberapay) : null;
-        $opencollective = Str::startsWith($opencollective, 'opencollective.com/') ? e($opencollective) : null;
-
-        if(empty($patreon) && empty($liberapay) && empty($opencollective)) {
-            return redirect(route('settings'))->with('error', 'An error occured. Please try again later.');;
-        }
-
-        $res = [
-            'patreon' => $patreon,
-            'liberapay' => $liberapay,
-            'opencollective' => $opencollective
-        ];
-
-        $sponsors = ProfileSponsor::firstOrCreate([
-            'profile_id' => Auth::user()->profile_id ?? Auth::user()->profile->id
-        ]);
-        $sponsors->sponsors = json_encode($res);
-        $sponsors->save();
-        $sponsors = $res;
-        return redirect(route('settings'))->with('status', 'Sponsor settings successfully updated!');;
-    }
+	use ExportSettings,
+	LabsSettings,
+	HomeSettings,
+	PrivacySettings,
+	RelationshipSettings,
+	SecuritySettings;
+
+	public function __construct()
+	{
+		$this->middleware('auth');
+	}
+
+	public function accessibility()
+	{
+		$settings = Auth::user()->settings;
+
+		return view('settings.accessibility', compact('settings'));
+	}
+
+	public function accessibilityStore(Request $request)
+	{
+		$settings = Auth::user()->settings;
+		$fields = [
+		  'compose_media_descriptions',
+		  'reduce_motion',
+		  'optimize_screen_reader',
+		  'high_contrast_mode',
+		  'video_autoplay',
+		];
+		foreach ($fields as $field) {
+			$form = $request->input($field);
+			if ($form == 'on') {
+				$settings->{$field} = true;
+			} else {
+				$settings->{$field} = false;
+			}
+			$settings->save();
+		}
+
+		return redirect(route('settings.accessibility'))->with('status', 'Settings successfully updated!');
+	}
+
+	public function notifications()
+	{
+		return view('settings.notifications');
+	}
+
+	public function applications()
+	{
+		return view('settings.applications');
+	}
+
+	public function dataImport()
+	{
+		abort_if(!config('pixelfed.import.instagram.enabled'), 404);
+		return view('settings.import.home');
+	}
+
+	public function dataImportInstagram()
+	{
+		abort_if(!config('pixelfed.import.instagram.enabled'), 404);
+		return view('settings.import.instagram.home');
+	}
+
+	public function developers()
+	{
+		return view('settings.developers');
+	}
+
+	public function removeAccountTemporary(Request $request)
+	{
+		$user = Auth::user();
+		abort_if(!config('pixelfed.account_deletion'), 403);
+		abort_if($user->is_admin, 403);
+
+		return view('settings.remove.temporary');
+	}
+
+	public function removeAccountTemporarySubmit(Request $request)
+	{
+		$user = Auth::user();
+		abort_if(!config('pixelfed.account_deletion'), 403);
+		abort_if($user->is_admin, 403);
+		$profile = $user->profile;
+		$user->status = 'disabled';
+		$profile->status = 'disabled';
+		$user->save();
+		$profile->save();
+		Auth::logout();
+		Cache::forget('profiles:private');
+		return redirect('/');
+	}
+
+	public function removeAccountPermanent(Request $request)
+	{
+		$user = Auth::user();
+		abort_if($user->is_admin, 403);
+		return view('settings.remove.permanent');
+	}
+
+	public function removeAccountPermanentSubmit(Request $request)
+	{
+		if(config('pixelfed.account_deletion') == false) {
+			abort(404);
+		}
+		$user = Auth::user();
+		abort_if(!config('pixelfed.account_deletion'), 403);
+		abort_if($user->is_admin, 403);
+		$profile = $user->profile;
+		$ts = Carbon::now()->addMonth();
+		$user->status = 'delete';
+		$profile->status = 'delete';
+		$user->delete_after = $ts;
+		$profile->delete_after = $ts;
+		$user->save();
+		$profile->save();
+		Cache::forget('profiles:private');
+		Auth::logout();
+		DeleteAccountPipeline::dispatch($user)->onQueue('high');
+		return redirect('/');
+	}
+
+	public function requestFullExport(Request $request)
+	{
+		$user = Auth::user();
+		return view('settings.export.show');
+	}
+
+	public function metroDarkMode(Request $request)
+	{
+		$this->validate($request, [
+			'mode' => 'required|string|in:light,dark'
+		]);
+
+		$mode = $request->input('mode');
+
+		if($mode == 'dark') {
+			$cookie = Cookie::make('dark-mode', true, 43800);
+		} else {
+			$cookie = Cookie::forget('dark-mode');
+		}
+
+		return response()->json([200])->cookie($cookie);
+	}
+
+	public function sponsor()
+	{
+		$default = [
+			'patreon' => null,
+			'liberapay' => null,
+			'opencollective' => null
+		];
+		$sponsors = ProfileSponsor::whereProfileId(Auth::user()->profile->id)->first();
+		$sponsors = $sponsors ? json_decode($sponsors->sponsors, true) : $default;
+		return view('settings.sponsor', compact('sponsors'));
+	}
+
+	public function sponsorStore(Request $request)
+	{
+		$this->validate($request, [
+			'patreon' => 'nullable|string',
+			'liberapay' => 'nullable|string',
+			'opencollective' => 'nullable|string'
+		]);
+
+		$patreon = Str::startsWith($request->input('patreon'), 'https://') ?
+			substr($request->input('patreon'), 8) :
+			$request->input('patreon');
+
+		$liberapay = Str::startsWith($request->input('liberapay'), 'https://') ?
+			substr($request->input('liberapay'), 8) :
+			$request->input('liberapay');
+
+		$opencollective = Str::startsWith($request->input('opencollective'), 'https://') ?
+			substr($request->input('opencollective'), 8) :
+			$request->input('opencollective');
+
+		$patreon = Str::startsWith($patreon, 'patreon.com/') ? e($patreon) : null;
+		$liberapay = Str::startsWith($liberapay, 'liberapay.com/') ? e($liberapay) : null;
+		$opencollective = Str::startsWith($opencollective, 'opencollective.com/') ? e($opencollective) : null;
+
+		if(empty($patreon) && empty($liberapay) && empty($opencollective)) {
+			return redirect(route('settings'))->with('error', 'An error occured. Please try again later.');;
+		}
+
+		$res = [
+			'patreon' => $patreon,
+			'liberapay' => $liberapay,
+			'opencollective' => $opencollective
+		];
+
+		$sponsors = ProfileSponsor::firstOrCreate([
+			'profile_id' => Auth::user()->profile_id ?? Auth::user()->profile->id
+		]);
+		$sponsors->sponsors = json_encode($res);
+		$sponsors->save();
+		$sponsors = $res;
+		return redirect(route('settings'))->with('status', 'Sponsor settings successfully updated!');;
+	}
 
 }
 

+ 3 - 10
resources/views/settings/partial/sidebar.blade.php

@@ -16,7 +16,7 @@
       @endif
       <li class="nav-item pl-3 {{request()->is('settings/notifications')?'active':''}}">
         <a class="nav-link font-weight-light text-muted" href="{{route('settings.notifications')}}">Notifications</a>
-      </li> 
+      </li>
       <li class="nav-item pl-3 {{request()->is('settings/password')?'active':''}}">
         <a class="nav-link font-weight-light text-muted" href="{{route('settings.password')}}">Password</a>
       </li>
@@ -26,16 +26,9 @@
       <li class="nav-item pl-3 {{request()->is('settings/relationships*')?'active':''}}">
         <a class="nav-link font-weight-light text-muted" href="{{route('settings.relationships')}}">Relationships</a>
       </li>
-      <li class="nav-item pl-3 {{request()->is('settings/reports*')?'active':''}}">
-        <a class="nav-link font-weight-light text-muted" href="{{route('settings.reports')}}">Reports</a>
-      </li>
-  
       <li class="nav-item pl-3 {{request()->is('settings/security*')?'active':''}}">
         <a class="nav-link font-weight-light text-muted" href="{{route('settings.security')}}">Security</a>
       </li>
-      {{-- <li class="nav-item pl-3 {{request()->is('settings/sponsor*')?'active':''}}">
-        <a class="nav-link font-weight-light text-muted" href="{{route('settings.sponsor')}}">Sponsor</a>
-      </li> --}}
       <li class="nav-item">
         <hr>
       </li>
@@ -47,7 +40,7 @@
       <li class="nav-item pl-3 {{request()->is('settings/data-export')?'active':''}}">
         <a class="nav-link font-weight-light text-muted" href="{{route('settings.dataexport')}}">Data Export</a>
       </li>
-      
+
       @if(config('pixelfed.oauth_enabled') == true)
       <li class="nav-item">
       <hr>
@@ -67,4 +60,4 @@
         <a class="nav-link font-weight-light text-muted" href="{{route('settings.labs')}}">Labs</a>
       </li>
     </ul>
-  </div>
+  </div>

+ 0 - 38
resources/views/settings/reports.blade.php

@@ -1,38 +0,0 @@
-@extends('settings.template')
-
-@section('section')
-
-<div class="title">
-	<h3 class="font-weight-bold">Reports</h3>
-</div>
-<hr>
-<p class="lead">A list of reports you have made. </p>
-<table class="table table-responsive">
-	<thead class="bg-light">
-			<th scope="col">ID</th>
-			<th scope="col">Type</th>
-			<th scope="col">Reported</th>
-			<th scope="col">Status</th>
-			<th scope="col">Created</th>
-		</tr>
-	</thead>
-	<tbody>
-		@foreach($reports as $report)
-		<tr>
-			<td class="font-weight-bold">{{$report->id}}</td>
-			<td class="font-weight-bold">{{$report->type}}</td>
-			<td class="font-weight-bold"><a href="{{$report->reported()->url()}}">{{str_limit($report->reported()->url(), 30)}}</a></td>
-			@if(!$report->admin_seen)
-			<td><span class="text-danger font-weight-bold">Unresolved</span></td>
-			@else
-			<td><span class="text-success font-weight-bold">Resolved</span></td>
-			@endif
-			<td class="font-weight-bold">{{$report->created_at->diffForHumans(null, true, true)}}</td>
-		</tr>
-		@endforeach
-	</tbody>
-</table>
-<div class="d-flex justify-content-center mt-5 small">
-	{{$reports->links()}}
-</div>
-@endsection

+ 0 - 1
routes/web.php

@@ -351,7 +351,6 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
 		Route::post('privacy/blocked-instances/unblock', 'SettingsController@blockedInstanceUnblock')->name('settings.privacy.blocked-instances.unblock');
 		Route::get('privacy/blocked-keywords', 'SettingsController@blockedKeywords')->name('settings.privacy.blocked-keywords');
 		Route::post('privacy/account', 'SettingsController@privateAccountOptions')->name('settings.privacy.account');
-		Route::get('reports', 'SettingsController@reportsHome')->name('settings.reports');
 		Route::group(['prefix' => 'remove', 'middleware' => 'dangerzone'], function() {
 			Route::get('request/temporary', 'SettingsController@removeAccountTemporary')->name('settings.remove.temporary');
 			Route::post('request/temporary', 'SettingsController@removeAccountTemporarySubmit');