60 lines
1.6 KiB
PHP
60 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\OfferTemplate;
|
|
use Illuminate\Http\Request;
|
|
|
|
class OfferTemplateController extends Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->middleware(['admin', '2fa']);
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
return view('offer_template.index', [
|
|
'templates' => OfferTemplate::query()->orderBy('name')->get(),
|
|
]);
|
|
}
|
|
|
|
public function detail($id)
|
|
{
|
|
if ($id === 'new') {
|
|
$template = new OfferTemplate();
|
|
$id = 'new';
|
|
} else {
|
|
$template = OfferTemplate::findOrFail($id);
|
|
$id = $template->id;
|
|
}
|
|
return view('offer_template.detail', [
|
|
'template' => $template,
|
|
'id' => $id,
|
|
]);
|
|
}
|
|
|
|
public function store(Request $request, $id = null)
|
|
{
|
|
if (! $request->has('action')) {
|
|
abort(403, 'keine Action');
|
|
}
|
|
\Session::flash('alert-info', 'Vorlagen speichern (Stub A6) — C1 liefert die Logik.');
|
|
|
|
if ($id === 'new' || $id === null) {
|
|
return redirect()->route('offer_template_detail', ['id' => 'new']);
|
|
}
|
|
$template = OfferTemplate::findOrFail($id);
|
|
|
|
return redirect()->route('offer_template_detail', ['id' => $template->id]);
|
|
}
|
|
|
|
public function delete($id)
|
|
{
|
|
$template = OfferTemplate::findOrFail($id);
|
|
$template->delete();
|
|
\Session::flash('alert-success', 'Vorlage gelöscht.');
|
|
|
|
return redirect()->route('offer_templates');
|
|
}
|
|
}
|