feat(application): membuat halaman dan update untuk setting aplikasi dan route model binding
This commit is contained in:
parent
8c321d1c4d
commit
b66b651a24
33
app/Http/Controllers/Admin/Setting/ApplicationController.php
Normal file
33
app/Http/Controllers/Admin/Setting/ApplicationController.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin\Setting;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Requests\Admin\Setting\ApplicationRequest;
|
||||||
|
use App\Models\Setting;
|
||||||
|
use App\Traits\UploadAttachment;
|
||||||
|
use Illuminate\Contracts\View\View;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
|
|
||||||
|
class ApplicationController extends Controller
|
||||||
|
{
|
||||||
|
use UploadAttachment;
|
||||||
|
|
||||||
|
public function index(): View
|
||||||
|
{
|
||||||
|
return view('pages.admin.setting.application', [
|
||||||
|
'pageTitle' => 'Aplikasi',
|
||||||
|
'application' => Setting::with('attachment')->first(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Setting $setting, ApplicationRequest $request): RedirectResponse
|
||||||
|
{
|
||||||
|
$validatedData = $request->validated();
|
||||||
|
$setting->update($validatedData);
|
||||||
|
|
||||||
|
notify()->success('Data berhasil diperbarui', 'Berhasil');
|
||||||
|
|
||||||
|
return back();
|
||||||
|
}
|
||||||
|
}
|
||||||
33
app/Http/Requests/Admin/Setting/ApplicationRequest.php
Normal file
33
app/Http/Requests/Admin/Setting/ApplicationRequest.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests\Admin\Setting;
|
||||||
|
|
||||||
|
use App\Traits\NotificationTrait;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
class ApplicationRequest extends FormRequest
|
||||||
|
{
|
||||||
|
use NotificationTrait;
|
||||||
|
|
||||||
|
public function authorize(): bool
|
||||||
|
{
|
||||||
|
return Auth::check();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => ['required', 'string', 'max:30'],
|
||||||
|
'email' => ['required', 'email', 'max:255'],
|
||||||
|
'contact_number' => ['required', 'string', 'regex:/^\+?[0-9]{10,15}$/'],
|
||||||
|
'description' => ['required', 'string', 'max:65535'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function failedValidation(Validator $validator): void
|
||||||
|
{
|
||||||
|
$this->handleValidationFailure($validator);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -9,6 +9,7 @@
|
|||||||
use App\Models\Inventory;
|
use App\Models\Inventory;
|
||||||
use App\Models\Payroll;
|
use App\Models\Payroll;
|
||||||
use App\Models\Service;
|
use App\Models\Service;
|
||||||
|
use App\Models\Setting;
|
||||||
use App\Models\Transaction;
|
use App\Models\Transaction;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
@ -38,5 +39,6 @@ public function boot(): void
|
|||||||
Route::bind('cash', fn (string $cash) => Cash::findOrFail(decryptId($cash)));
|
Route::bind('cash', fn (string $cash) => Cash::findOrFail(decryptId($cash)));
|
||||||
Route::bind('inventory', fn (string $inventory) => Inventory::findOrFail(decryptId($inventory)));
|
Route::bind('inventory', fn (string $inventory) => Inventory::findOrFail(decryptId($inventory)));
|
||||||
Route::bind('transaction', fn (string $transaction) => Transaction::findOrFail(decryptId($transaction)));
|
Route::bind('transaction', fn (string $transaction) => Transaction::findOrFail(decryptId($transaction)));
|
||||||
|
Route::bind('application', fn (string $application) => Setting::findOrFail(decryptId($application)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
67
resources/views/pages/admin/setting/application.blade.php
Normal file
67
resources/views/pages/admin/setting/application.blade.php
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
@extends('layouts.admin')
|
||||||
|
@section('styles')
|
||||||
|
<link rel="stylesheet" href="{{ asset('assets/admin/css/vendors/select2.css') }}">
|
||||||
|
@endsection
|
||||||
|
@section('app')
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<form class="row g-3 custom-input"
|
||||||
|
action="{{ route('setting.application.update', encryptId($application->id)) }}" method="post"
|
||||||
|
enctype="multipart/form-data">
|
||||||
|
@csrf
|
||||||
|
@method('put')
|
||||||
|
<div class="col-lg-12 position-relative">
|
||||||
|
<label class="form-label" for="name">Nama</label>
|
||||||
|
<input name="name" class="form-control @error('name') is-invalid @enderror" id="name"
|
||||||
|
type="text" placeholder="Masukan Nama" value="{{ old('name', $application->name) }}">
|
||||||
|
@error('name')
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 position-relative">
|
||||||
|
<label class="form-label" for="email">Email</label>
|
||||||
|
<input name="email" class="form-control @error('email') is-invalid @enderror" id="email"
|
||||||
|
type="text" placeholder="Masukan Email" value="{{ old('email', $application->email) }}">
|
||||||
|
@error('email')
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 position-relative">
|
||||||
|
<label class="form-label" for="contact_number">Kontak
|
||||||
|
<span class="form-span"><i>(format : 08xxxxxxxx)</i></span>
|
||||||
|
</label>
|
||||||
|
<input name="contact_number" class="form-control @error('contact_number') is-invalid @enderror"
|
||||||
|
id="contact_number" type="number" placeholder="Masukan Kontak"
|
||||||
|
value="{{ old('contact_number', $application->contact_number) }}">
|
||||||
|
@error('contact_number')
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 position-relative">
|
||||||
|
<label class="form-label" for="description">Deskripsi</label>
|
||||||
|
<textarea name="description" class="form-control @error('description') is-invalid @enderror" id="description"
|
||||||
|
rows="3" placeholder="Masukan Deskripsi">{{ old('description', $application->description) }}</textarea>
|
||||||
|
@error('description')
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<button class="btn btn-primary button-disable" type="submit">Simpan</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
@section('afterScripts')
|
||||||
|
<script src="{{ asset('assets/js/forms/button-disable.js?ver=1.0.0') }}"></script>
|
||||||
|
@endsection
|
||||||
@ -134,6 +134,18 @@
|
|||||||
<span>Barang</span>
|
<span>Barang</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="sidebar-main-title">
|
||||||
|
<div>
|
||||||
|
<h6>Pengaturan</h6>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="sidebar-list">
|
||||||
|
<i class="fa fa-thumb-tack"></i>
|
||||||
|
<a class="sidebar-link sidebar-title link-nav" href="{{ route('setting.application') }}">
|
||||||
|
<i data-feather="settings"></i>
|
||||||
|
<span>Aplikasi</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="right-arrow" id="right-arrow"><i data-feather="arrow-right"></i></div>
|
<div class="right-arrow" id="right-arrow"><i data-feather="arrow-right"></i></div>
|
||||||
|
|||||||
@ -12,6 +12,7 @@
|
|||||||
use App\Http\Controllers\Admin\Master\CustomerController;
|
use App\Http\Controllers\Admin\Master\CustomerController;
|
||||||
use App\Http\Controllers\Admin\Master\ServiceController;
|
use App\Http\Controllers\Admin\Master\ServiceController;
|
||||||
use App\Http\Controllers\Admin\Master\UserController;
|
use App\Http\Controllers\Admin\Master\UserController;
|
||||||
|
use App\Http\Controllers\Admin\Setting\ApplicationController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
Route::prefix('auth')->group(function () {
|
Route::prefix('auth')->group(function () {
|
||||||
@ -116,4 +117,11 @@
|
|||||||
Route::delete('delete/{inventory}', [InventoryController::class, 'delete'])->name('manage.inventory.delete');
|
Route::delete('delete/{inventory}', [InventoryController::class, 'delete'])->name('manage.inventory.delete');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::prefix('setting')->group(function () {
|
||||||
|
Route::prefix('application')->group(function () {
|
||||||
|
Route::get('/', [ApplicationController::class, 'index'])->name('setting.application');
|
||||||
|
Route::put('update/{application}', [ApplicationController::class, 'update'])->name('setting.application.update');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user