Testing Page
-
This page is for quick UI or component experiments. Remove or adapt as needed.
+
+ This page is for quick UI or component experiments. Remove or adapt as needed.
+
+
+ Prop example value: {{ props.example }}
+
-
-
Example Area
-
Prop example value: {{ props.example }}
+
+
+
+ DataTable (Client-side)
+
+
+
+
+
+
diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php
index 7c96e65..39cd9da 100644
--- a/routes/breadcrumbs.php
+++ b/routes/breadcrumbs.php
@@ -1,15 +1,22 @@
- Notifications (Unread)
+Breadcrumbs::for('notifications.unread', function (BreadcrumbTrail $trail): void {
+ $trail->parent('dashboard');
+ $trail->push('Obvestila', route('notifications.unread'));
+});
+
Breadcrumbs::for('settings.contractConfigs.index', function (BreadcrumbTrail $trail): void {
$trail->parent('settings');
$trail->push('Contract Configs', route('settings.contractConfigs.index'));
@@ -32,6 +39,12 @@
$trail->push($client->person->full_name, route('client.show', $client));
});
+// Dashboard > Clients > [Client] > Contracts
+Breadcrumbs::for('client.contracts', function (BreadcrumbTrail $trail, Client $client) {
+ $trail->parent('client.show', $client);
+ $trail->push('Pogodbe', route('client.contracts', $client));
+});
+
// Dashboard > Cases
Breadcrumbs::for('clientCase', function (BreadcrumbTrail $trail) {
@@ -74,4 +87,4 @@
Breadcrumbs::for('settings.payment.edit', function (BreadcrumbTrail $trail) {
$trail->parent('settings');
$trail->push('Plačila', route('settings.payment.edit'));
-});
\ No newline at end of file
+});
diff --git a/routes/web.php b/routes/web.php
index 8518728..c9a7542 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -2,6 +2,7 @@
use App\Http\Controllers\AccountBookingController;
use App\Http\Controllers\AccountPaymentController;
+use App\Http\Controllers\ActivityNotificationController;
use App\Http\Controllers\ArchiveSettingController;
use App\Http\Controllers\CaseObjectController;
use App\Http\Controllers\ClientCaseContoller;
@@ -11,6 +12,7 @@
use App\Http\Controllers\FieldJobSettingController;
use App\Http\Controllers\ImportController;
use App\Http\Controllers\ImportTemplateController;
+use App\Http\Controllers\NotificationController;
use App\Http\Controllers\PaymentSettingController;
use App\Http\Controllers\PersonController;
use App\Http\Controllers\PhoneViewController;
@@ -265,6 +267,10 @@
// contract / documents (direct access by contract)
Route::get('contracts/{contract:uuid}/documents/{document:uuid}/view', [ClientCaseContoller::class, 'viewContractDocument'])->name('contract.document.view');
Route::get('contracts/{contract:uuid}/documents/{document:uuid}/download', [ClientCaseContoller::class, 'downloadContractDocument'])->name('contract.document.download');
+
+ // Notifications: unread list and mark one activity as read (today)
+ Route::get('notifications/unread', [NotificationController::class, 'unread'])->name('notifications.unread');
+ Route::post('notifications/activity/read', ActivityNotificationController::class)->name('notifications.activity.read');
Route::delete('contracts/{contract:uuid}/documents/{document:uuid}', [ClientCaseContoller::class, 'deleteContractDocument'])->name('contract.document.delete');
// settings
Route::get('settings', [SettingController::class, 'index'])->name('settings');
@@ -313,6 +319,8 @@
Route::get('imports/{import}/mappings', [ImportController::class, 'getMappings'])->name('imports.mappings.get');
Route::get('imports/{import}/events', [ImportController::class, 'getEvents'])->name('imports.events');
Route::get('imports/{import}/preview', [ImportController::class, 'preview'])->name('imports.preview');
+ Route::get('imports/{import}/missing-contracts', [ImportController::class, 'missingContracts'])->name('imports.missing-contracts');
+ Route::post('imports/{import}/options', [ImportController::class, 'updateOptions'])->name('imports.options');
// Generic simulation endpoint (new) – provides projected effects for first N rows regardless of payments template
Route::get('imports/{import}/simulate', [ImportController::class, 'simulate'])->name('imports.simulate');
// Backwards compatible payments simulation route (legacy name) – now proxies to generic simulate method