* @license https://www.gnu.org/licenses/agpl-3.0.en.html/ GNU Affero General Public License v3.0 */ namespace App\Http\Controllers\Staff; use App\Http\Controllers\Controller; use App\Http\Requests\Staff\StoreWikiRequest; use App\Http\Requests\Staff\UpdateWikiRequest; use App\Models\Wiki; use App\Models\WikiCategory; class WikiController extends Controller { /** * Display All Pages. */ public function index(): \Illuminate\Contracts\View\View|\Illuminate\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\Foundation\Application { return view('Staff.wiki.index', [ 'wikis' => Wiki::with(['category'])->get(), ]); } /** * Page Add Form. */ public function create(): \Illuminate\Contracts\View\View|\Illuminate\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\Foundation\Application { return view('Staff.wiki.create', [ 'wikiCategories' => WikiCategory::query()->orderBy('position')->get(), ]); } /** * Store A New Page. */ public function store(StoreWikiRequest $request): \Illuminate\Http\RedirectResponse { Wiki::create($request->validated()); return to_route('staff.wikis.index') ->withSuccess('Wiki has been created successfully'); } /** * Page Edit Form. */ public function edit(Wiki $wiki): \Illuminate\Contracts\View\View|\Illuminate\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\Foundation\Application { return view('Staff.wiki.edit', [ 'wiki' => $wiki, 'wikiCategories' => WikiCategory::query()->orderBy('position')->get(), ]); } /** * Edit A Page. */ public function update(UpdateWikiRequest $request, Wiki $wiki): \Illuminate\Http\RedirectResponse { $wiki->update($request->validated()); return to_route('staff.wikis.index') ->withSuccess('Wiki has been edited successfully'); } /** * Delete A Page. */ public function destroy(Wiki $wiki): \Illuminate\Http\RedirectResponse { $wiki->delete(); return to_route('staff.wikis.index') ->withSuccess('Wiki has been deleted successfully'); } }