Files
wticreatorstudio/Modules/LaraBuilder/Http/Controllers/PageController.php
T

122 lines
3.0 KiB
PHP

<?php
namespace Modules\LaraBuilder\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Modules\LaraBuilder\Entities\Page;
use Modules\LaraBuilder\Facades\PageSettings;
class PageController extends Controller
{
/**
* Display a listing of the pages.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$edit = false;
$pages = Page::when($request->input('search'), fn ($q) => $q->where('name', 'like', '%'.$request->input('search').'%'))->orderBy('id', $request->input('sort') ?? 'asc')->paginate($request->input('per_page') ?? 10);
$pagesList = view('larabuilder::components.pages-list', compact('pages'))->render();
$per_page_opt = perPageOpt();
if ($request->ajax()) {
return response()->json(['success' => true, 'html' => $pagesList]);
}
return view('larabuilder::pages', compact('pagesList', 'per_page_opt', 'edit'));
}
/**
* Show the form for creating/edit a page.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$edit = false;
$page = [];
$pages = Page::paginate(10);
$per_page_opt = perPageOpt();
if ($request->ajax()) {
return response()->json(['success' => true, 'html' => view('larabuilder::components.update-page', compact('edit', 'page'))->render()]);
}
}
/**
* Store a newly created page.
*
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
if (isDemoSite()) {
return response()->json(['success' => 'demo']);
}
return PageSettings::storePage($request);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the page.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit(Request $request, $id)
{
$edit = true;
$page = Page::findOrFail($id);
if ($request->ajax()) {
return response()->json(['success' => true, 'status' => $page->status, 'html' => view('larabuilder::components.update-page', compact('edit', 'page'))->render()]);
}
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
if (isDemoSite()) {
return response()->json(['success' => 'demo']);
}
Page::find($id)->delete();
Cache::forget('pagebuilder__pageData_'.$id);
return response()->json(['success' => true]);
}
}