diff --git a/app/Http/Controllers/ClientCaseContoller.php b/app/Http/Controllers/ClientCaseContoller.php index fd8f004..c1f73af 100644 --- a/app/Http/Controllers/ClientCaseContoller.php +++ b/app/Http/Controllers/ClientCaseContoller.php @@ -396,6 +396,21 @@ public function updateContractSegment(ClientCase $clientCase, string $uuid, Requ return back()->with('success', 'Contract segment updated.'); } + public function patchContractMeta(ClientCase $clientCase, string $uuid, Request $request) + { + $validated = $request->validate([ + 'meta' => ['required', 'array'], + ]); + + $contract = $clientCase->contracts()->where('uuid', $uuid)->firstOrFail(); + + $contract->update([ + 'meta' => $validated['meta'], + ]); + + return back()->with('success', __('Meta podatki so bili posodobljeni.')); + } + public function attachSegment(ClientCase $clientCase, Request $request) { $validated = $request->validate([ diff --git a/resources/js/Pages/Cases/Partials/ContractMetaPatchDialogForm.vue b/resources/js/Pages/Cases/Partials/ContractMetaPatchDialogForm.vue new file mode 100644 index 0000000..b49b00e --- /dev/null +++ b/resources/js/Pages/Cases/Partials/ContractMetaPatchDialogForm.vue @@ -0,0 +1,211 @@ + + + + + + Uredi meta podatke + + - {{ contract.reference }} + + + + + Ni meta podatkov za urejanje. + + + + + + {{ field.title }} + + {{ field.path }} + + + + + + + + + {{ form.errors.meta }} + + + + + Prekliči + + + Shrani + + + + diff --git a/resources/js/Pages/Cases/Partials/ContractTable.vue b/resources/js/Pages/Cases/Partials/ContractTable.vue index 6145a63..075f759 100644 --- a/resources/js/Pages/Cases/Partials/ContractTable.vue +++ b/resources/js/Pages/Cases/Partials/ContractTable.vue @@ -11,6 +11,7 @@ import Dropdown from "@/Components/Dropdown.vue"; import CaseObjectCreateDialog from "./CaseObjectCreateDialog.vue"; import CaseObjectsDialog from "./CaseObjectsDialog.vue"; import PaymentDialog from "./PaymentDialog.vue"; +import ContractMetaPatchDialogForm from "./ContractMetaPatchDialogForm.vue"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; import ViewPaymentsDialog from "./ViewPaymentsDialog.vue"; import { @@ -445,6 +446,18 @@ const closePaymentsDialog = () => { showPaymentsDialog.value = false; selectedContract.value = null; }; + +// Meta edit dialog state +const showMetaDialog = ref(false); +const metaContract = ref(null); +const openMetaDialog = (c) => { + metaContract.value = c; + showMetaDialog.value = true; +}; +const closeMetaDialog = () => { + showMetaDialog.value = false; + metaContract.value = null; +}; @@ -632,20 +645,44 @@ const closePaymentsDialog = () => { - - - + + + META PODATKI - {{ m.title }} - {{ formatMetaValue(m) }} - - - - Ni meta podatkov. - + + + + + + + + {{ m.title }} + + {{ formatMetaValue(m) }} + + + + + Ni meta podatkov. + + @@ -1160,4 +1197,12 @@ const closePaymentsDialog = () => { + + + diff --git a/routes/web.php b/routes/web.php index c86b65b..4baee4b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -331,6 +331,7 @@ Route::middleware('permission:contract-edit')->group(function () { Route::post('client-cases/{client_case:uuid}/contract', [ClientCaseContoller::class, 'storeContract'])->name('clientCase.contract.store'); Route::put('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'updateContract'])->name('clientCase.contract.update'); + Route::patch('client-cases/{client_case:uuid}/contract/{uuid}/meta', [ClientCaseContoller::class, 'patchContractMeta'])->name('clientCase.contract.patchMeta'); Route::delete('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'deleteContract'])->name('clientCase.contract.delete'); });