Design Refresh

This commit is contained in:
Roscoe 2026-01-23 23:16:08 +00:00
commit e7202174f7
Signed by: RoscoeDaWah
SSH key fingerprint: SHA256:Hqn452XQ1ETzUt/FthJu6+OFkS4NBxCv5VQSEvuk7CE
44 changed files with 593 additions and 228 deletions

View file

@ -0,0 +1,40 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller {
public function showLoginForm() {
return view('auth.login');
}
public function login(Request $request) {
$credentials = $request->validate([
'username' => 'required|string|max:50',
'password' => 'required|string',
]);
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->intended('/');
}
return back()->withErrors([
'username' => 'Invalid credentials',
])->withInput();
}
public function logout(Request $request) {
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
}
}

View file

@ -4,6 +4,9 @@
use App\Models\BookmarkSite;
use App\Models\BookmarkCategory;
use App\Models\GuestbookEntry;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
class BookmarksController extends Controller
@ -12,4 +15,40 @@ public function show() : View {
$categories = BookmarkCategory::with('sites')->get();
return view('bookmarks', compact('categories'));
}
public function createBookmark() {
$categories = BookmarkCategory::all();
return view('admin.create-bookmark', [
'categories' => $categories
]);
}
public function addBookmark(Request $request): RedirectResponse {
$newEntry = BookmarkSite::create($request);
return redirect()->route('bookmarks');
}
public function destroyBookmark($id): RedirectResponse {
$site = BookmarkSite::findOrFail($id);
$site->delete();
return redirect()->route('bookmarks');
}
public function createCategory() {
return view('admin.create-category');
}
public function addCategory(Request $request): RedirectResponse {
$newEntry = BookmarkCategory::create($request);
return redirect()->route('bookmarks');
}
public function destroyCategory($id): RedirectResponse {
if (BookmarkSite::where('category', $id)->count() <= 0) {
$category = BookmarkCategory::findOrFail($id);
$category->delete();
}
return redirect()->route('bookmarks');
}
}

View file

@ -6,12 +6,13 @@
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\Http;
use Illuminate\Validation\ValidationException;
use UAParser\Parser;
class GuestbookController extends Controller {
public function show(): View {
$entries = GuestbookEntry::selectEntries();
$entries = GuestbookEntry::get();
$parser = Parser::create();
return view('guestbook')
@ -27,7 +28,46 @@ public function show(): View {
* @throws ValidationException
*/
public function addEntry(Request $request): RedirectResponse {
GuestbookEntry::insertGuestbookEntry($request);
$newEntry = GuestbookEntry::create($request);
$response = Http::withBasicAuth(config('services.mailjet.key'), config('services.mailjet.secret'))->post('https://api.mailjet.com/v3.1/send', [
'Messages' => [
[
'From' => [
'Email' => 'wah@wah.moe',
'Name' => 'wah dot moe'
],
'To' => [
[
'Email' => 'roscoe@wah.moe',
'Name' => 'Roscoe D. Wah'
]
],
'Subject' => 'New Guestbook Entry!',
'HtmlPart' => '
<style> td { padding: 5px } </style>
<table border="1">
<tr><td><b>Name:</b></td><td>'.htmlentities($newEntry->name).'</td></tr>
<tr><td><b>IP:</b></td><td>'.$newEntry->ip.'</td></tr>
<tr><td><b>Agent:</b></td><td>'.htmlentities($newEntry->agent).'</td></tr>
<tr><td><b>Message:</b></td><td>'.htmlentities($newEntry->message).'</td></tr>
</table>'
]
]
]);
return back()->with('success', 'Entry submitted successfully!');
}
public function destroy($id): RedirectResponse {
$entry = GuestbookEntry::findOrFail($id);
$entry->delete();
return redirect()->route('guestbook');
}
public function flag($id): RedirectResponse {
$entry = GuestbookEntry::where("id", $id)->get()->first;
$entry->update([
"flagged" => !$entry->flagged,
]);
return redirect()->route('guestbook');
}
}