109 lines
3.3 KiB
PHP
109 lines
3.3 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\Services\PaginationService;
|
|
|
|
class DenController extends Controller
|
|
{
|
|
protected $pagination;
|
|
protected $source;
|
|
|
|
public function __construct(
|
|
PaginationService $paginationService,
|
|
SourceRepository $sourceRepository,
|
|
LocationRepository $locationRepository
|
|
) {
|
|
$this->pagination = $paginationService;
|
|
$this->source = $sourceRepository;
|
|
$this->location = $locationRepository;
|
|
}
|
|
|
|
//
|
|
public function start(Request $request)
|
|
{
|
|
$member = Auth::user();
|
|
return view('back.start', [
|
|
'handle' => $member->handle,
|
|
'title' => "This is The Den",
|
|
'role' => $member->role
|
|
]);
|
|
}
|
|
|
|
public function profile(Request $request)
|
|
{
|
|
$member = Auth::user();
|
|
$avi = '';
|
|
if ($member->avatar == 'default-member-avatar') {
|
|
$avi = '/assets/images/global/default-avi.png';
|
|
} else {
|
|
$avi = $member->avatar;
|
|
}
|
|
return view('back.profile', [
|
|
'title' => "Your Profile",
|
|
'handle' => $member->handle,
|
|
'email' => $member->email,
|
|
'avatar' => $avi,
|
|
'pronouns' => $member->pronoun,
|
|
'uuid' => $member->uuid,
|
|
'role' => $member->role
|
|
]);
|
|
}
|
|
|
|
public function member(Request $request)
|
|
{
|
|
$member = Auth::user();
|
|
return view('back.member', [
|
|
'handle' => $member->handle,
|
|
'title' => "Manage Members"]);
|
|
}
|
|
|
|
public function locations(Request $request)
|
|
{
|
|
$member = Auth::user();
|
|
return view('back.locations', [
|
|
'handle' => $member->handle,
|
|
'title' => "Manage Locations"]);
|
|
}
|
|
|
|
public function listings(Request $request, $pageNum = 1)
|
|
{
|
|
$member = Auth::user();
|
|
$page = $this->pagination->getPage($pageNum);
|
|
return view('back.locations', [
|
|
'handle' => $member->handle,
|
|
'title' => "Manage Locations",
|
|
'sources' => count($this->source->getActive()),
|
|
"totalPages" => $page['pageCount'],
|
|
"prev" => $page['prev'],
|
|
"next" => $page['next'],
|
|
'pageNum' => $pageNum,
|
|
'locations' => $page['locations']
|
|
]);
|
|
}
|
|
|
|
public function locationEdit(Request $request, $uuid = 0)
|
|
{
|
|
$location = $this->location->getLocation($uuid);
|
|
$sources = $this->source->getActive();
|
|
$name = "NO LOCATION FOUND";
|
|
if ($location) {
|
|
$name = $location->name;
|
|
}
|
|
$links = explode(",", $location->archive_links);
|
|
return view('back.location', [
|
|
'title' => str_replace(".", " ", $name),
|
|
'location' => $location,
|
|
'actions' => $location->block_count + $location->silence_count,
|
|
'sources_count' => count($sources),
|
|
'images' => json_decode($location->images),
|
|
'archive_links' => $links,
|
|
'updated' => $location->updated_at->format('Y M d'),
|
|
]);
|
|
}
|
|
}
|