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\Payroll;
|
||||
use App\Models\Service;
|
||||
use App\Models\Setting;
|
||||
use App\Models\Transaction;
|
||||
use App\Models\User;
|
||||
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('inventory', fn (string $inventory) => Inventory::findOrFail(decryptId($inventory)));
|
||||
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>
|
||||
</a>
|
||||
</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>
|
||||
</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\ServiceController;
|
||||
use App\Http\Controllers\Admin\Master\UserController;
|
||||
use App\Http\Controllers\Admin\Setting\ApplicationController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::prefix('auth')->group(function () {
|
||||
@ -116,4 +117,11 @@
|
||||
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