cleaned up the page edit template a bit to make it easier to convert to the new editor UI. php formatting also needed to be updated, so the php cs fixer file was updated and added some setting to prettier to handle blade files
181 lines
4.9 KiB
PHP
181 lines
4.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Interfaces\PageRepositoryInterface;
|
|
use App\Interfaces\MemberRepositoryInterface;
|
|
use App\Services\Data\ThemeService;
|
|
use App\Services\Data\SortingService;
|
|
|
|
class DashController extends Controller
|
|
{
|
|
protected PageRepositoryInterface $pages;
|
|
protected MemberRepositoryInterface $member;
|
|
protected ThemeService $themes;
|
|
protected SortingService $sort;
|
|
|
|
public function __construct(
|
|
PageRepositoryInterface $pageRepository,
|
|
MemberRepositoryInterface $memberRepo,
|
|
ThemeService $themeService,
|
|
SortingService $sortingService
|
|
) {
|
|
$this->pages = $pageRepository;
|
|
$this->member = $memberRepo;
|
|
$this->themes = $themeService;
|
|
$this->sort = $sortingService;
|
|
}
|
|
|
|
//---
|
|
// GET
|
|
//---
|
|
|
|
public function init($second, $third, $fourth)
|
|
{
|
|
switch ($second) {
|
|
case 'settings':
|
|
return $this->settings();
|
|
break;
|
|
case 'navigation':
|
|
return $this->navigation();
|
|
break;
|
|
case 'pages':
|
|
($third == null) ? $third = 'all' : $third = $third;
|
|
($fourth == null) ? $fourth = 1 : $fourth = $fourth;
|
|
return $this->book($third, $fourth);
|
|
break;
|
|
case 'page':
|
|
return $this->page($third, $fourth);
|
|
break;
|
|
case 'logout':
|
|
return $this->logout();
|
|
break;
|
|
default:
|
|
return $this->start();
|
|
break;
|
|
}
|
|
}
|
|
|
|
public function start()
|
|
{
|
|
$result = [];
|
|
if ($this->member::status()) {
|
|
$result = $this->pages->getGroup(1, 4);
|
|
}
|
|
return view('back.start', [
|
|
"status" => $this->member::status(),
|
|
"result" => $result,
|
|
"title" => "Start"
|
|
]);
|
|
}
|
|
|
|
public function book($pageFilter = 'all', $pageNum = 1)
|
|
{
|
|
$result = [];
|
|
if ($this->member::status()) {
|
|
$result = $this->pages->getGroup($pageNum, 4, $pageFilter);
|
|
}
|
|
return view('back.book', [
|
|
"status" => $this->member::status(),
|
|
"result" => $result,
|
|
"currentPage" => $pageNum,
|
|
"title" => "Pages"
|
|
]);
|
|
}
|
|
|
|
public function page($mode, $uuid)
|
|
{
|
|
$title;
|
|
$page = [];
|
|
$views = [];
|
|
$mode == 'edit' ? $page = $this->pages->getByUuid($uuid) : $page = [];
|
|
$mode == 'edit' ? $title = $page['title'] : $title = 'Add New';
|
|
$mode == 'edit' ? $views = $this->themes->getCustomViews($page['layout']) : $views[] = 'page';
|
|
|
|
//just a patch for now to get this out of the template
|
|
if ($mode == 'edit') {
|
|
$id = $page['id'];
|
|
$uuid = $page['uuid'];
|
|
$slug = $page['slug'];
|
|
$feature = $page['feature'];
|
|
$layout = $page['layout'];
|
|
$tags = $page['tags'];
|
|
$content = $page['content'];
|
|
$date = $page['created'];
|
|
$updated = $page['updated'];
|
|
$media = $page['media'];
|
|
$files = $page['docs'];
|
|
} else {
|
|
$id = "";
|
|
$uuid = "";
|
|
$slug = "";
|
|
$feature = "";
|
|
$layout = "";
|
|
$tags = "";
|
|
$content = "";
|
|
$date = "";
|
|
$updated = "";
|
|
$media = "";
|
|
$files = "";
|
|
};
|
|
|
|
return view('back.page', [
|
|
"status" => $this->member::status(),
|
|
"mode" => $mode,
|
|
"page" => $page,
|
|
"views" => $views,
|
|
"id" => $id,
|
|
"uuid" => $uuid,
|
|
"slug" => $slug,
|
|
"feature" => $feature,
|
|
"layout" => $layout,
|
|
"tags" => $tags,
|
|
"content" => $content,
|
|
"date" => $date,
|
|
"updated" => $updated,
|
|
"media" => $media,
|
|
"files" => $files,
|
|
"title" => urldecode($title),
|
|
]);
|
|
}
|
|
|
|
public function navigation()
|
|
{
|
|
return view('back.navigation', $this->sort->navigation());
|
|
}
|
|
|
|
public function settings()
|
|
{
|
|
return view('back.settings', $this->sort->settings());
|
|
}
|
|
|
|
//---
|
|
// POST
|
|
//---
|
|
|
|
//---
|
|
// PUT
|
|
//---
|
|
|
|
//---
|
|
// AUTH
|
|
//---
|
|
|
|
public function login()
|
|
{
|
|
if ($this->member::status()) {
|
|
return redirect('dashboard');
|
|
} else {
|
|
return view('back.login', [
|
|
"status" => $this->member::status(),
|
|
"title" => "Hi!"
|
|
]);
|
|
}
|
|
}
|
|
|
|
public function logout()
|
|
{
|
|
session()->flush();
|
|
return redirect()->intended('dashboard');
|
|
}
|
|
}
|