complete story 9.5 with qa test

This commit is contained in:
Naser Mansour
2026-01-03 00:19:21 +02:00
parent 1f2357fe5e
commit 67502af83d
12 changed files with 542 additions and 74 deletions
@@ -94,7 +94,7 @@ new class extends Component {
<form wire:submit="create" class="space-y-6">
<div class="grid gap-6 sm:grid-cols-2">
<flux:field>
<flux:label>{{ __('clients.company_name') }} *</flux:label>
<flux:label class="required">{{ __('clients.company_name') }}</flux:label>
<flux:input
wire:model="company_name"
type="text"
@@ -105,7 +105,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.registration_number') }} *</flux:label>
<flux:label class="required">{{ __('clients.registration_number') }}</flux:label>
<flux:input
wire:model="company_cert_number"
type="text"
@@ -115,7 +115,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.contact_person_name') }} *</flux:label>
<flux:label class="required">{{ __('clients.contact_person_name') }}</flux:label>
<flux:input
wire:model="contact_person_name"
type="text"
@@ -125,7 +125,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.contact_person_id') }} *</flux:label>
<flux:label class="required">{{ __('clients.contact_person_id') }}</flux:label>
<flux:input
wire:model="contact_person_id"
type="text"
@@ -135,7 +135,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.email') }} *</flux:label>
<flux:label class="required">{{ __('clients.email') }}</flux:label>
<flux:input
wire:model="email"
type="email"
@@ -145,7 +145,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.phone') }} *</flux:label>
<flux:label class="required">{{ __('clients.phone') }}</flux:label>
<flux:input
wire:model="phone"
type="tel"
@@ -155,7 +155,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.password') }} *</flux:label>
<flux:label class="required">{{ __('clients.password') }}</flux:label>
<flux:input
wire:model="password"
type="password"
@@ -165,7 +165,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.preferred_language') }} *</flux:label>
<flux:label class="required">{{ __('clients.preferred_language') }}</flux:label>
<flux:select wire:model="preferred_language" required>
<flux:select.option value="ar">{{ __('clients.arabic') }}</flux:select.option>
<flux:select.option value="en">{{ __('clients.english') }}</flux:select.option>
@@ -118,7 +118,7 @@ new class extends Component {
<form wire:submit="update" class="space-y-6">
<div class="grid gap-6 sm:grid-cols-2">
<flux:field>
<flux:label>{{ __('clients.company_name') }} *</flux:label>
<flux:label class="required">{{ __('clients.company_name') }}</flux:label>
<flux:input
wire:model="company_name"
type="text"
@@ -129,7 +129,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.registration_number') }} *</flux:label>
<flux:label class="required">{{ __('clients.registration_number') }}</flux:label>
<flux:input
wire:model="company_cert_number"
type="text"
@@ -139,7 +139,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.contact_person_name') }} *</flux:label>
<flux:label class="required">{{ __('clients.contact_person_name') }}</flux:label>
<flux:input
wire:model="contact_person_name"
type="text"
@@ -149,7 +149,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.contact_person_id') }} *</flux:label>
<flux:label class="required">{{ __('clients.contact_person_id') }}</flux:label>
<flux:input
wire:model="contact_person_id"
type="text"
@@ -159,7 +159,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.email') }} *</flux:label>
<flux:label class="required">{{ __('clients.email') }}</flux:label>
<flux:input
wire:model="email"
type="email"
@@ -169,7 +169,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.phone') }} *</flux:label>
<flux:label class="required">{{ __('clients.phone') }}</flux:label>
<flux:input
wire:model="phone"
type="tel"
@@ -189,7 +189,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.preferred_language') }} *</flux:label>
<flux:label class="required">{{ __('clients.preferred_language') }}</flux:label>
<flux:select wire:model="preferred_language" required>
<flux:select.option value="ar">{{ __('clients.arabic') }}</flux:select.option>
<flux:select.option value="en">{{ __('clients.english') }}</flux:select.option>
@@ -198,7 +198,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.status') }} *</flux:label>
<flux:label class="required">{{ __('clients.status') }}</flux:label>
<flux:select wire:model="status" required>
@foreach ($statuses as $statusOption)
<flux:select.option value="{{ $statusOption->value }}">
@@ -87,7 +87,7 @@ new class extends Component {
<form wire:submit="create" class="space-y-6">
<div class="grid gap-6 sm:grid-cols-2">
<flux:field>
<flux:label>{{ __('clients.full_name') }} *</flux:label>
<flux:label class="required">{{ __('clients.full_name') }}</flux:label>
<flux:input
wire:model="full_name"
type="text"
@@ -98,7 +98,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.national_id') }} *</flux:label>
<flux:label class="required">{{ __('clients.national_id') }}</flux:label>
<flux:input
wire:model="national_id"
type="text"
@@ -108,7 +108,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.email') }} *</flux:label>
<flux:label class="required">{{ __('clients.email') }}</flux:label>
<flux:input
wire:model="email"
type="email"
@@ -118,7 +118,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.phone') }} *</flux:label>
<flux:label class="required">{{ __('clients.phone') }}</flux:label>
<flux:input
wire:model="phone"
type="tel"
@@ -128,7 +128,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.password') }} *</flux:label>
<flux:label class="required">{{ __('clients.password') }}</flux:label>
<flux:input
wire:model="password"
type="password"
@@ -138,7 +138,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.preferred_language') }} *</flux:label>
<flux:label class="required">{{ __('clients.preferred_language') }}</flux:label>
<flux:select wire:model="preferred_language" required>
<flux:select.option value="ar">{{ __('clients.arabic') }}</flux:select.option>
<flux:select.option value="en">{{ __('clients.english') }}</flux:select.option>
@@ -109,7 +109,7 @@ new class extends Component {
<form wire:submit="update" class="space-y-6">
<div class="grid gap-6 sm:grid-cols-2">
<flux:field>
<flux:label>{{ __('clients.full_name') }} *</flux:label>
<flux:label class="required">{{ __('clients.full_name') }}</flux:label>
<flux:input
wire:model="full_name"
type="text"
@@ -120,7 +120,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.national_id') }} *</flux:label>
<flux:label class="required">{{ __('clients.national_id') }}</flux:label>
<flux:input
wire:model="national_id"
type="text"
@@ -130,7 +130,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.email') }} *</flux:label>
<flux:label class="required">{{ __('clients.email') }}</flux:label>
<flux:input
wire:model="email"
type="email"
@@ -140,7 +140,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.phone') }} *</flux:label>
<flux:label class="required">{{ __('clients.phone') }}</flux:label>
<flux:input
wire:model="phone"
type="tel"
@@ -160,7 +160,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.preferred_language') }} *</flux:label>
<flux:label class="required">{{ __('clients.preferred_language') }}</flux:label>
<flux:select wire:model="preferred_language" required>
<flux:select.option value="ar">{{ __('clients.arabic') }}</flux:select.option>
<flux:select.option value="en">{{ __('clients.english') }}</flux:select.option>
@@ -169,7 +169,7 @@ new class extends Component {
</flux:field>
<flux:field>
<flux:label>{{ __('clients.status') }} *</flux:label>
<flux:label class="required">{{ __('clients.status') }}</flux:label>
<flux:select wire:model="status" required>
@foreach ($statuses as $statusOption)
<flux:select.option value="{{ $statusOption->value }}">
@@ -147,13 +147,13 @@ new class extends Component
<flux:heading size="sm">{{ __('posts.arabic_content') }}</flux:heading>
<flux:field>
<flux:label>{{ __('posts.title') }} ({{ __('posts.arabic') }}) *</flux:label>
<flux:label class="required">{{ __('posts.title') }} ({{ __('posts.arabic') }})</flux:label>
<flux:input wire:model="title_ar" dir="rtl" required />
<flux:error name="title_ar" />
</flux:field>
<flux:field>
<flux:label>{{ __('posts.body') }} ({{ __('posts.arabic') }}) *</flux:label>
<flux:label class="required">{{ __('posts.body') }} ({{ __('posts.arabic') }})</flux:label>
<div wire:ignore>
<input id="body_ar" type="hidden" wire:model="body_ar">
<trix-editor
@@ -173,13 +173,13 @@ new class extends Component
<flux:heading size="sm">{{ __('posts.english_content') }}</flux:heading>
<flux:field>
<flux:label>{{ __('posts.title') }} ({{ __('posts.english') }}) *</flux:label>
<flux:label class="required">{{ __('posts.title') }} ({{ __('posts.english') }})</flux:label>
<flux:input wire:model="title_en" required />
<flux:error name="title_en" />
</flux:field>
<flux:field>
<flux:label>{{ __('posts.body') }} ({{ __('posts.english') }}) *</flux:label>
<flux:label class="required">{{ __('posts.body') }} ({{ __('posts.english') }})</flux:label>
<div wire:ignore>
<input id="body_en" type="hidden" wire:model="body_en">
<trix-editor
@@ -188,13 +188,13 @@ new class extends Component
<flux:heading size="sm">{{ __('posts.arabic_content') }}</flux:heading>
<flux:field>
<flux:label>{{ __('posts.title') }} ({{ __('posts.arabic') }}) *</flux:label>
<flux:label class="required">{{ __('posts.title') }} ({{ __('posts.arabic') }})</flux:label>
<flux:input wire:model="title_ar" dir="rtl" required />
<flux:error name="title_ar" />
</flux:field>
<flux:field>
<flux:label>{{ __('posts.body') }} ({{ __('posts.arabic') }}) *</flux:label>
<flux:label class="required">{{ __('posts.body') }} ({{ __('posts.arabic') }})</flux:label>
<div wire:ignore>
<input id="body_ar" type="hidden" wire:model="body_ar" value="{{ $body_ar }}">
<trix-editor
@@ -214,13 +214,13 @@ new class extends Component
<flux:heading size="sm">{{ __('posts.english_content') }}</flux:heading>
<flux:field>
<flux:label>{{ __('posts.title') }} ({{ __('posts.english') }}) *</flux:label>
<flux:label class="required">{{ __('posts.title') }} ({{ __('posts.english') }})</flux:label>
<flux:input wire:model="title_en" required />
<flux:error name="title_en" />
</flux:field>
<flux:field>
<flux:label>{{ __('posts.body') }} ({{ __('posts.english') }}) *</flux:label>
<flux:label class="required">{{ __('posts.body') }} ({{ __('posts.english') }})</flux:label>
<div wire:ignore>
<input id="body_en" type="hidden" wire:model="body_en" value="{{ $body_en }}">
<trix-editor
@@ -119,7 +119,7 @@ new class extends Component {
<form wire:submit="create" class="space-y-6">
{{-- Client Selection --}}
<flux:field>
<flux:label>{{ __('timelines.select_client') }} *</flux:label>
<flux:label class="required">{{ __('timelines.select_client') }}</flux:label>
@if($selectedUser)
<div class="flex items-center gap-3 rounded-lg border border-zinc-200 bg-zinc-50 p-3 dark:border-zinc-700 dark:bg-zinc-900">
@@ -177,7 +177,7 @@ new class extends Component {
<div class="grid gap-6 sm:grid-cols-2">
{{-- Case Name --}}
<flux:field>
<flux:label>{{ __('timelines.case_name') }} *</flux:label>
<flux:label class="required">{{ __('timelines.case_name') }}</flux:label>
<flux:input
wire:model="caseName"
type="text"