mirror of
https://koodu.h-i.works/projects/thebadspace
synced 2025-05-06 14:41:02 -05:00
after the site is installed and the DB set up, there needed to be a way to create the first account that will be used as the admin to access the den, the admin section of tbs the system makes a check to see if this account exists and if there isn't one present, it shows the admin account set up screen on the index. it goes away after the account is created.
128 lines
4.2 KiB
PHP
128 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use App\Repositories\LocationRepository;
|
|
use App\Repositories\SourceRepository;
|
|
use App\Repositories\MemberRepository;
|
|
use App\Services\PaginationService;
|
|
|
|
class FrontIndexController extends Controller
|
|
{
|
|
protected $location;
|
|
protected $source;
|
|
protected $member;
|
|
protected $pagination;
|
|
|
|
public function __construct(
|
|
LocationRepository $locationRepository,
|
|
SourceRepository $sourceRepository,
|
|
MemberRepository $memberRepository,
|
|
PaginationService $paginationService
|
|
) {
|
|
$this->location = $locationRepository;
|
|
$this->source = $sourceRepository;
|
|
$this->member = $memberRepository;
|
|
$this->pagination = $paginationService;
|
|
}
|
|
|
|
public function start()
|
|
{
|
|
//check to see if there are any accounts
|
|
if (count($this->member->getAll()) == 0) {
|
|
return view('back.member', [
|
|
'mode' => 'admin-create',
|
|
'title' => "Welcome, welcome"]);
|
|
} else {
|
|
//for fresh installs that dont have any source data yet
|
|
$latest_update = 'Never Run';
|
|
if (count($this->location->getRecent()) != 0) {
|
|
$latest_update = $this->location->getRecent()[0]->updated_at->format('Y M d');
|
|
}
|
|
return view('front.index', [
|
|
'count' => count($this->location->getActiveLocations()),
|
|
'sources' => count($this->source->getActive()),
|
|
'recent' => $this->location->getRecent(),
|
|
'latest_date' => $latest_update,
|
|
'title' => "The Bad Space"
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function indexSearch(Request $request)
|
|
{
|
|
return view('front.index', [
|
|
'count' => count($this->location->getActiveLocations()),
|
|
'sources' => count($this->source->getActive()),
|
|
'recent' => $this->location->getRecent(),
|
|
'results' => $this->location->search($request),
|
|
'terms' => $request->index_search,
|
|
'latest_date' => $this->location->getRecent()[0]->updated_at->format('Y M d'),
|
|
'title' => "Search Results",
|
|
]);
|
|
}
|
|
|
|
public function about()
|
|
{
|
|
$sources = $this->source->getActive();
|
|
return view('front.about', [
|
|
'title' => "ABOUT",
|
|
'sources' => $sources
|
|
]);
|
|
}
|
|
|
|
public function appeals()
|
|
{
|
|
return view('front.appeals', [
|
|
'title' => "LOCATION APPEALS",
|
|
]);
|
|
}
|
|
|
|
public function location(string $uuid = "1")
|
|
{
|
|
$location = $this->location->getLocation($uuid);
|
|
$sources = $this->source->getActive();
|
|
$name = "NO LOCATION FOUND";
|
|
$member = Auth::user();
|
|
$edit = false;
|
|
if ($location) {
|
|
$name = $location->name;
|
|
}
|
|
|
|
if (isset($member->role)) {
|
|
($member->role == 0 || $member->role == 1) ? $edit = true : $edit = false;
|
|
}
|
|
|
|
$links = explode(',', $location->archive_links);
|
|
$comments = explode('+', $location->public_comments);
|
|
return view('front.location', [
|
|
'title' => str_replace(".", " ", $name),
|
|
'location' => $location,
|
|
'comments' => $comments,
|
|
'actions' => $location->block_count + $location->silence_count,
|
|
'sources_count' => count($sources),
|
|
'images' => json_decode($location->images),
|
|
'links' => $links,
|
|
'updated' => $location->updated_at->format('Y M d'),
|
|
'edit' => $edit
|
|
]);
|
|
}
|
|
|
|
public function listings(int $pageNum = 1)
|
|
{
|
|
$page = $this->pagination->getPage($pageNum);
|
|
|
|
return view('front.listing', [
|
|
'title' => "Listings",
|
|
'sources' => count($this->source->getActive()),
|
|
"totalPages" => $page['pageCount'],
|
|
"prev" => $page['prev'],
|
|
"next" => $page['next'],
|
|
'pageNum' => $pageNum,
|
|
'locations' => $page['locations']
|
|
]);
|
|
}
|
|
}
|