Changes to import and notifications

This commit is contained in:
Simon Pocrnjič
2025-10-13 21:14:10 +02:00
parent 0bbed64542
commit 79b3e20b02
28 changed files with 2173 additions and 438 deletions
+16 -3
View File
@@ -1,15 +1,22 @@
<?php // routes/breadcrumbs.php
<?php
// routes/breadcrumbs.php
// Note: Laravel will automatically resolve `Breadcrumbs::` without
// this import. This is nice for IDE syntax and refactoring.
use App\Models\Client;
use App\Models\ClientCase;
use Diglactic\Breadcrumbs\Breadcrumbs;
// This import is also not required, and you could replace `BreadcrumbTrail $trail`
// with `$trail`. This is nice for IDE type checking and completion.
use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail;
// Dashboard > 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'));
});
});
+8
View File
@@ -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