feat: add notes management feature with CRUD operations
- Created Note model and controller for handling notes. - Added routes for notes CRUD operations. - Implemented notes index view with search and pinning functionality. - Created migration for notes table with necessary fields. - Developed event creation form with client and contract options.
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
use App\Http\Controllers\BrandContractController;
|
||||
use App\Http\Controllers\NoteController;
|
||||
use App\Http\Controllers\ClientCategoryController;
|
||||
use App\Http\Controllers\ClientController;
|
||||
use App\Http\Controllers\ContentBriefController;
|
||||
@@ -21,6 +22,9 @@ Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
|
||||
|
||||
// CRM – Clients
|
||||
Route::resource('clients', ClientController::class);
|
||||
Route::post('/clients/quick', [ClientController::class, 'quickStore'])->name('clients.quick-store');
|
||||
Route::post('/clients/{client}/avatar', [ClientController::class, 'uploadAvatar'])->name('clients.upload-avatar');
|
||||
Route::delete('/clients/{client}/avatar', [ClientController::class, 'deleteAvatar'])->name('clients.delete-avatar');
|
||||
|
||||
// Client Categories
|
||||
Route::prefix('client-categories')->name('client-categories.')->group(function (): void {
|
||||
@@ -43,6 +47,7 @@ Route::prefix('contracts')->name('contracts.')->group(function (): void {
|
||||
// Schedule & Calendar
|
||||
Route::prefix('schedule')->name('schedule.')->group(function (): void {
|
||||
Route::get('/', [EventController::class, 'index'])->name('index');
|
||||
Route::get('/create', [EventController::class, 'create'])->name('create');
|
||||
Route::post('/', [EventController::class, 'store'])->name('store');
|
||||
Route::get('/{event}/edit', [EventController::class, 'edit'])->name('edit');
|
||||
Route::put('/{event}', [EventController::class, 'update'])->name('update');
|
||||
@@ -62,6 +67,8 @@ Route::resource('invoices', InvoiceController::class);
|
||||
Route::get('/invoices/{invoice}/pdf', [InvoiceController::class, 'pdf'])->name('invoices.pdf');
|
||||
Route::get('/invoice-settings', [InvoiceSettingsController::class, 'edit'])->name('invoice-settings.edit');
|
||||
Route::post('/invoice-settings', [InvoiceSettingsController::class, 'update'])->name('invoice-settings.update');
|
||||
Route::post('/invoice-settings/logo', [InvoiceSettingsController::class, 'uploadLogo'])->name('invoice-settings.upload-logo');
|
||||
Route::delete('/invoice-settings/logo', [InvoiceSettingsController::class, 'deleteLogo'])->name('invoice-settings.delete-logo');
|
||||
|
||||
// Financial – Rate Cards
|
||||
Route::get('/rate-cards/public', [RateCardController::class, 'public'])->name('rate-cards.public');
|
||||
@@ -97,6 +104,15 @@ Route::prefix('search')->name('search.')->group(function (): void {
|
||||
Route::get('/quick', [SearchController::class, 'quick'])->name('quick');
|
||||
});
|
||||
|
||||
// Notes
|
||||
Route::prefix('notes')->name('notes.')->group(function (): void {
|
||||
Route::get('/', [NoteController::class, 'index'])->name('index');
|
||||
Route::post('/', [NoteController::class, 'store'])->name('store');
|
||||
Route::put('/{note}', [NoteController::class, 'update'])->name('update');
|
||||
Route::delete('/{note}', [NoteController::class, 'destroy'])->name('destroy');
|
||||
Route::patch('/{note}/pin', [NoteController::class, 'togglePin'])->name('toggle-pin');
|
||||
});
|
||||
|
||||
// Settings
|
||||
Route::prefix('settings')->name('settings.')->group(function (): void {
|
||||
Route::get('/notifications', [NotificationSettingController::class, 'index'])->name('notifications');
|
||||
|
||||
Reference in New Issue
Block a user