forked from projects/thebadspace
ro
2bcb887d19
Adding total actions count to location data has made it possible to simplify backend data queries, so the custom pagination was optimized and location repositories have been cleaned up. the front end controller has been cleaned up as well, which has resulted in the appropriate template being polished up as well.
91 lines
2.9 KiB
PHP
91 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Source;
|
|
use App\Repositories\LocationRepository;
|
|
|
|
class FrontIndexController extends Controller
|
|
{
|
|
protected $locationRepository;
|
|
|
|
public function __construct(LocationRepository $locationRepository)
|
|
{
|
|
$this->locationRepository = $locationRepository;
|
|
}
|
|
|
|
public function start()
|
|
{
|
|
return view('front.index', [
|
|
'count' => count($this->locationRepository->getActiveLocations()),
|
|
'sources' => count(Source::where("active", true)->get()),
|
|
'recent' => $this->locationRepository->getRecent(),
|
|
'latest_date' => $this->locationRepository->getRecent()[0]->updated_at->format('Y M d'),
|
|
'title' => "The Bad Space"
|
|
]);
|
|
}
|
|
|
|
public function indexSearch(Request $request)
|
|
{
|
|
return view('front.index', [
|
|
'count' => count($this->locationRepository->getActiveLocations()),
|
|
'sources' => count(Source::where("active", true)->get()),
|
|
'recent' => $this->locationRepository->getRecent(),
|
|
'results' => $this->locationRepository->search($request),
|
|
'terms' => $request->index_search,
|
|
'latest_date' => $this->locationRepository->getRecent()[0]->updated_at->format('Y M d'),
|
|
'title' => "Search Results",
|
|
]);
|
|
}
|
|
|
|
public function about()
|
|
{
|
|
$sources = Source::where("active", true)->get();
|
|
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->locationRepository->getLocation($uuid);
|
|
$sources = Source::where("active", true)->get();
|
|
$name = "NO LOCATION FOUND";
|
|
if ($location) {
|
|
$name = $location->name;
|
|
}
|
|
return view('front.location', [
|
|
'title' => str_replace(".", " ", $name),
|
|
'location' => $location,
|
|
'actions' => $location->block_count + $location->silence_count,
|
|
'sources_count' => count($sources),
|
|
'images' => json_decode($location->images),
|
|
'updated' => $location->updated_at->format('Y M d'),
|
|
]);
|
|
}
|
|
|
|
public function listings(int $pageNum = 1)
|
|
{
|
|
$listing = $this->locationRepository->getPage($pageNum);
|
|
|
|
return view('front.listing', [
|
|
'title' => "Listings",
|
|
'sources' => count(Source::where("active", true)->get()),
|
|
"totalPages" => $listing[1],
|
|
"prev" => $listing[2],
|
|
"next" => $listing[3],
|
|
'pageNum' => $pageNum,
|
|
'locations' => $listing[0]
|
|
]);
|
|
}
|
|
}
|