ro
2a6b4b2c99
The plumbing for editing location info has been updated, so that data can be changed by authorized memebers. Also added a new data point for locations to store archive links part 2 will focus on setting up permissions and authorizations as well as smoothing out adding new members and member roles. an edit link will be added to locations, which will be visible for members with the correct permissions
80 lines
2.4 KiB
PHP
80 lines
2.4 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"
|
|
]);
|
|
}
|
|
|
|
public function member(Request $request)
|
|
{
|
|
$member = Auth::user();
|
|
return view('back.member', [
|
|
'handle' => $member->handle,
|
|
'title' => "Manage Members"]);
|
|
}
|
|
|
|
public function location(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'),
|
|
]);
|
|
}
|
|
}
|