ForRo/app/Http/Controllers/DenController.php

89 lines
2.7 KiB
PHP
Raw Normal View History

<?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 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'),
]);
}
}