feat: add bylaw management features including documents, legal authorities, subject categories, and nodes
This commit is contained in:
57
app/Http/Controllers/Admin/BylawNodeController.php
Normal file
57
app/Http/Controllers/Admin/BylawNodeController.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\BylawDocument;
|
||||
use App\Models\BylawNode;
|
||||
use App\Models\BylawNodeType;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BylawNodeController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$items = BylawNode::with(['document', 'type'])->latest()->paginate(15);
|
||||
|
||||
return view('admin.bylaw-node.index', compact('items'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('admin.bylaw-node.create', ['documents' => BylawDocument::all(), 'types' => BylawNodeType::all(), 'parents' => BylawNode::all()]);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$data = $request->validate(['document_id' => 'required|exists:bylaw_documents,id', 'parent_id' => 'nullable|exists:bylaw_nodes,id', 'node_type_id' => 'required|exists:bylaw_node_types,id', 'node_identifier' => 'nullable|string|max:50', 'title' => 'nullable|string|max:500', 'node_content' => 'nullable|string', 'sort_order' => 'nullable|integer', 'valid_from' => 'nullable|date', 'valid_to' => 'nullable|date', 'node_status' => 'required|in:valid,repealed,annulled,amended,suspended']);
|
||||
BylawNode::create($data);
|
||||
|
||||
return redirect(route('bylaw-node.index'));
|
||||
}
|
||||
|
||||
public function edit(BylawNode $bylawNode)
|
||||
{
|
||||
return view('admin.bylaw-node.update', ['bylawNode' => $bylawNode, 'documents' => BylawDocument::all(), 'types' => BylawNodeType::all(), 'parents' => BylawNode::where('id', '!=', $bylawNode->id)->get()]);
|
||||
}
|
||||
|
||||
public function show(BylawNode $bylawNode)
|
||||
{
|
||||
return redirect(route('bylaw-node.edit', $bylawNode));
|
||||
}
|
||||
|
||||
public function update(Request $request, BylawNode $bylawNode)
|
||||
{
|
||||
$data = $request->validate(['document_id' => 'required|exists:bylaw_documents,id', 'parent_id' => 'nullable|exists:bylaw_nodes,id', 'node_type_id' => 'required|exists:bylaw_node_types,id', 'node_identifier' => 'nullable|string|max:50', 'title' => 'nullable|string|max:500', 'node_content' => 'nullable|string', 'sort_order' => 'nullable|integer', 'valid_from' => 'nullable|date', 'valid_to' => 'nullable|date', 'node_status' => 'required|in:valid,repealed,annulled,amended,suspended']);
|
||||
$bylawNode->update($data);
|
||||
|
||||
return redirect(route('bylaw-node.edit', $bylawNode));
|
||||
}
|
||||
|
||||
public function destroy(BylawNode $bylawNode)
|
||||
{
|
||||
$bylawNode->delete();
|
||||
|
||||
return redirect(route('bylaw-node.index'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user