Remove admin pages
This commit is contained in:
parent
ccec714bee
commit
069cf70f5b
7 changed files with 0 additions and 208 deletions
|
@ -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'));
|
||||
}
|
||||
}
|
|
@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -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)");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
Loading…
Reference in a new issue