feat(customers): tambahkan rute dan breadcrumb untuk manajemen pelanggan dan email blast

- Menambahkan rute untuk manajemen pelanggan dan email blast.
- Mengimplementasikan breadcrumb untuk navigasi yang lebih baik.
- Memperbarui file module.json untuk menambahkan menu baru.
This commit is contained in:
Daeng Deni Mardaeni
2025-02-18 16:34:00 +07:00
parent 29c0852fc6
commit 0d95bf33c3
4 changed files with 126 additions and 30 deletions

View File

@@ -1,19 +1,9 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Webstatement\Http\Controllers\WebstatementController;
use Illuminate\Support\Facades\Route;
use Modules\Webstatement\Http\Controllers\CustomerController;
use Modules\Webstatement\Http\Controllers\EmailBlastController;
/*
*--------------------------------------------------------------------------
* API Routes
*--------------------------------------------------------------------------
*
* Here is where you can register API routes for your application. These
* routes are loaded by the RouteServiceProvider within a group which
* is assigned the "api" middleware group. Enjoy building your API!
*
*/
Route::middleware(['auth:sanctum'])->prefix('v1')->group(function () {
Route::apiResource('webstatement', WebstatementController::class)->names('webstatement');
});
Route::post('/email-blast', [EmailBlastController::class, 'sendEmailBlast']);
Route::get('/email-blast-history', [EmailBlastController::class, 'getEmailBlastHistory']);
Route::get('/customers/search', [CustomerController::class, 'search']);

View File

@@ -1,5 +1,57 @@
<?php
use Diglactic\Breadcrumbs\Breadcrumbs;
use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail;
use Diglactic\Breadcrumbs\Breadcrumbs;
use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail;
// Home
Breadcrumbs::for('home', function (BreadcrumbTrail $trail) {
$trail->push('Home', route('dashboard'));
});
// Home > Customers
Breadcrumbs::for('customer.index', function (BreadcrumbTrail $trail) {
$trail->parent('home');
$trail->push('Customers', route('customer.index'));
});
// Home > Customers > Create
Breadcrumbs::for('customer.create', function (BreadcrumbTrail $trail) {
$trail->parent('customer.index');
$trail->push('Create Customer', route('customer.create'));
});
// Home > Customers > [Customer Name]
Breadcrumbs::for('customer.show', function (BreadcrumbTrail $trail, $customer) {
$trail->parent('customer.index');
$trail->push($customer->name, route('customer.show', $customer));
});
// Home > Customers > [Customer Name] > Edit
Breadcrumbs::for('customer.edit', function (BreadcrumbTrail $trail, $customer) {
$trail->parent('customer.show', $customer);
$trail->push('Edit', route('customer.edit', $customer));
});
// Home > Email Blasts
Breadcrumbs::for('emailblast.index', function (BreadcrumbTrail $trail) {
$trail->parent('home');
$trail->push('Email Blasts', route('emailblast.index'));
});
// Home > Email Blasts > Create
Breadcrumbs::for('emailblast.create', function (BreadcrumbTrail $trail) {
$trail->parent('emailblast.index');
$trail->push('Create Email Blast', route('emailblast.create'));
});
// Home > Email Blasts > View Email Blast
Breadcrumbs::for('emailblast.view', function (BreadcrumbTrail $trail, $emailBlast) {
$trail->parent('emailblast.index');
$trail->push('View Email Blast', route('emailblast.view', $emailBlast->id));
});
// Home > Email Blasts > Edit Email Blast
Breadcrumbs::for('emailblast.edit', function (BreadcrumbTrail $trail, $emailBlast) {
$trail->parent('emailblast.index');
$trail->push('Edit Email Blast', route('emailblast.edit', $emailBlast->id));
});

View File

@@ -2,18 +2,40 @@
use Illuminate\Support\Facades\Route;
use Modules\Webstatement\Http\Controllers\MigrasiController;
use Modules\Webstatement\Http\Controllers\WebstatementController;
use Modules\Webstatement\Http\Controllers\CustomerController;
use Modules\Webstatement\Http\Controllers\EmailBlastController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::middleware(['auth'])->group(function () {});
Route::middleware(['auth'])->group(function () {
//Route::get('/', [WebstatementController::class, 'index'])->name('webstatement.index');
// Customer routes
Route::get('datatables', [CustomerController::class, 'dataForDatatables'])->name('customer.datatables');
Route::get('export', [CustomerController::class, 'export'])->name('customer.export');
Route::resource('customer', CustomerController::class);
Route::prefix('emailblast')->group(function () {
Route::get('/', [EmailBlastController::class, 'index'])->name('emailblast.index');
Route::get('/create', [EmailBlastController::class, 'create'])->name('emailblast.create');
Route::post('/', [EmailBlastController::class, 'store'])->name('emailblast.store');
Route::get('/{id}/view', [EmailBlastController::class, 'view'])->name('emailblast.view');
Route::get('/datatables', [EmailBlastController::class, 'datatables'])->name('emailblast.datatables');
});
});
Route::get('migrasi', [MigrasiController::class, 'index'])->name('migrasi.index');
Route::get('/stmt-entries/{accountNumber}', [MigrasiController::class, 'getStmtEntryByAccount']);