Remove admin pages

This commit is contained in:
floppydiskette 2024-07-11 22:23:46 +01:00
parent ccec714bee
commit 069cf70f5b
Signed by: fwoppydwisk
SSH key fingerprint: SHA256:Hqn452XQ1ETzUt/FthJu6+OFkS4NBxCv5VQSEvuk7CE
7 changed files with 0 additions and 208 deletions

View file

@ -1,15 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Models\BookmarkCategory;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View;
class AdminBookmarksController extends Controller
{
public function show() : View {
$categories = BookmarkCategory::with('sites')->get();
return view('admin.bookmarks', compact('categories'));
}
}

View file

@ -1,34 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Models\GuestbookEntry;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View;
use UAParser\Parser;
class AdminGuestbookController extends Controller
{
function getGuestbookUniqueAddr(): int {
$uniqueIpsCount = DB::table('guestbook__entries')->distinct()->count('ip');
return $uniqueIpsCount;
}
function getGuestbookEntriesCount(): int {
$entryCount = DB::table('guestbook__entries')->count();
return $entryCount;
}
public function show() : View {
$guestbook_unique_addr = $this->getGuestbookUniqueAddr();
$guestbook_entry_count = $this->getGuestbookEntriesCount();
$entries = GuestbookEntry::selectEntries();
$parser = Parser::create();
return view('admin.guestbook', [
'guestbook_unique_addr' => $guestbook_unique_addr,
'guestbook_entry_count' => $guestbook_entry_count,
'entries' => $entries,
'parser' => $parser,
]);
}
}

View file

@ -1,69 +0,0 @@
<?php
namespace App\Http\Controllers;
use App\Models\BookmarkCategory;
use App\Models\BookmarkSite;
use App\Models\GuestbookEntry;
use Exception;
use Illuminate\Http\Request;
use Illuminate\View\View;
class AdminImportController extends Controller
{
public function show() : View {
return view('admin.import');
}
public function submit(Request $request)
{
$request->validate([
'data_file' => 'required|mimes:json',
]);
$file = $request->file('data_file');
$jsonContent = file_get_contents($file->getRealPath());
$data = json_decode($jsonContent, true);
$tables = [];
foreach($data as $item) {
if ($item['type'] !== "table") continue;
$tables[$item['name']] = [
'data' => $item['data'],
'count' => count($item['data'])
];
if ($item['name'] === "guestbook__entries") {
GuestbookEntry::importGuestbookEntry($item['data']);
}
$this->import($item['data'], $item['name']);
}
return view('admin.import-success', ['tables' => $tables]);
}
/**
* Imports the given data to the specified table
*
* @param array $data The data to import
* @param string $table_name The name of the table to import to
* @return void
* @throws Exception Invalid table specified, to be replaced with custom exception
*/
public function import(array $data, string $table_name): void {
switch ($table_name) {
case 'guestbook__entries':
GuestbookEntry::importGuestbookEntry($data);
break;
case 'bookmark__categories' :
BookmarkCategory::importBookmarkCategory($data);
break;
case 'bookmark__sites':
BookmarkSite::importBookmark($data);
break;
case 'guestbook__bans':
break;
default:
// TODO: Replace with custom exception
throw new Exception("Invalid table specified ($table_name)");
}
}
}

View file

@ -1,28 +0,0 @@
<x-layout>
<x-slot:title>Admin | Bookmarks</x-slot:title>
@foreach($categories as $category)
<div class="info-section info-admin-section">
<h2>{{ $category->name }}</h2>
<table class="info-admin">
<tr>
<th>ID</th>
<th>Name</th>
<th>Description</th>
<th>URL</th>
<th>Priority</th>
<th class="blank"></th>
</tr>
@foreach($category->sites as $site)
<tr>
<td>{{ $site->id }}</td>
<td>{{ $site->name }}</td>
<td>{{ $site->description }}</td>
<td>{{ $site->url }}</td>
<td>{{ $site->priority }}</td>
<td><a href="?action=delete&id={{ $site->id }}"><button>Delete</button></a></td>
</tr>
@endforeach
</table>
</div>
@endforeach
</x-layout>

View file

@ -1,32 +0,0 @@
<x-layout>
<x-slot:title>Admin | Guestbook</x-slot:title>
<div class="info-section">
<h2>Statistics</h2>
<hr>
<strong>Unique IP addresses:</strong> {{ $guestbook_unique_addr }}<br>
<strong>Entries:</strong> {{ $guestbook_entry_count }}
</div>
<br>
<div class="info-section">
<h2>Entries</h2>
<hr>
<table class="info-admin fullwidth">
<tr>
<th>ID</th>
<th>Name</th>
<th>IP Address</th>
<th>Message</th>
<th class="blank"></th>
</tr>
@foreach ($entries as $entry)
<tr>
<td>{{ $entry->id }}</td>
<td>{{ $entry->name }}</td>
<td>{{ $entry->ip }}</td>
<td>{{ $entry->message }}</td>
<td><a href="?action=delete&id={{ $entry->id }}"><button>Delete</button></a></td>
</tr>
@endforeach
</table>
</div>
</x-layout>

View file

@ -1,12 +0,0 @@
<x-layout>
<x-slot:title>Admin | Import</x-slot:title>
<div class="info-section">
<h2>Imported data</h2>
<hr>
<ul>
@foreach($tables as $name => $data)
<li><strong>{{ ucwords(str_replace('__', ' ', $name)) }}:</strong> {{ $data['count'] }} record(s)</li>
@endforeach
</ul>
</div>
</x-layout>

View file

@ -1,18 +0,0 @@
<x-layout>
<x-slot:title>Admin | Import</x-slot:title>
<form class="import" action="{{ route('admin.import.submit') }}" method="post" enctype="multipart/form-data">
@csrf
<label for="data_file"><strong>File:</strong></label>
<input class="file" type="file" name="data_file" accept=".json"><br>
<h2>What to import:</h2>
<input type="checkbox" name="guestbook__entries" checked>
<label for="guestbook__entries">Guestbook Entries</label><br>
<input type="checkbox" name="guestbook__bans" checked>
<label for="guestbook__bans">Guestbook Bans</label><br>
<input type="checkbox" name="guestbook__entries" checked>
<label for="bookmark__categories">Bookmark Categories</label><br>
<input type="checkbox" name="guestbook__entries" checked>
<label for="bookmark_sites">Bookmark Sites</label><br>
<button type="submit">Import</button>
</form>
</x-layout>