- Laravel 13.9 + PHP 8.5 + MySQL - Bootstrap 5.3 + jQuery 3.7 + Chart.js (replacing Alpine/Tailwind) - Packages: intervention/image, dompdf, simple-qrcode, league/csv, laravel/breeze, laravel/boost - 17 database migrations: users, programs, qr_codes, participants, attendances, certificates, questionnaires, email_logs, audit_logs - 13 Eloquent models with full relationships - Admin layout (Bootstrap 5 sidebar) + public layout (mobile-first) - Rate limiters: checkin (60/min), certificate (30/min) - Admin seeder: admin@mbip.gov.my - Storage directories + symlink configured Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
2.1 KiB
PHP
49 lines
2.1 KiB
PHP
<section>
|
|
<header>
|
|
<h2 class="text-lg font-medium text-gray-900">
|
|
{{ __('Update Password') }}
|
|
</h2>
|
|
|
|
<p class="mt-1 text-sm text-gray-600">
|
|
{{ __('Ensure your account is using a long, random password to stay secure.') }}
|
|
</p>
|
|
</header>
|
|
|
|
<form method="post" action="{{ route('password.update') }}" class="mt-6 space-y-6">
|
|
@csrf
|
|
@method('put')
|
|
|
|
<div>
|
|
<x-input-label for="update_password_current_password" :value="__('Current Password')" />
|
|
<x-text-input id="update_password_current_password" name="current_password" type="password" class="mt-1 block w-full" autocomplete="current-password" />
|
|
<x-input-error :messages="$errors->updatePassword->get('current_password')" class="mt-2" />
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="update_password_password" :value="__('New Password')" />
|
|
<x-text-input id="update_password_password" name="password" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
|
<x-input-error :messages="$errors->updatePassword->get('password')" class="mt-2" />
|
|
</div>
|
|
|
|
<div>
|
|
<x-input-label for="update_password_password_confirmation" :value="__('Confirm Password')" />
|
|
<x-text-input id="update_password_password_confirmation" name="password_confirmation" type="password" class="mt-1 block w-full" autocomplete="new-password" />
|
|
<x-input-error :messages="$errors->updatePassword->get('password_confirmation')" class="mt-2" />
|
|
</div>
|
|
|
|
<div class="flex items-center gap-4">
|
|
<x-primary-button>{{ __('Save') }}</x-primary-button>
|
|
|
|
@if (session('status') === 'password-updated')
|
|
<p
|
|
x-data="{ show: true }"
|
|
x-show="show"
|
|
x-transition
|
|
x-init="setTimeout(() => show = false, 2000)"
|
|
class="text-sm text-gray-600"
|
|
>{{ __('Saved.') }}</p>
|
|
@endif
|
|
</div>
|
|
</form>
|
|
</section>
|