git commit "fix: persianDatepicker did not initialize due to jQuery loading after content

This commit is contained in:
2026-08-20 09:05:15 +03:30
parent fa291c7108
commit 73c8e52414
16 changed files with 175 additions and 61 deletions
@@ -92,8 +92,6 @@ class FlightController extends Controller
return view('admin.flights.edit',compact('flight'));
}
public function update(FlightStoreRequest $request, Flight $flight)
{
@@ -128,6 +126,7 @@ class FlightController extends Controller
}
$data['updated_by'] = auth('admin')->id();
$flight->update($data);
@@ -130,7 +130,7 @@ class TourController extends Controller
->store('tours','public');
}
$data['updated_by'] = auth('admin')->id();
$tour->update($data);
+17 -2
View File
@@ -2,6 +2,7 @@
namespace App\Http\Requests\Admin;
use Hekmatinasser\Verta\Verta;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
@@ -44,7 +45,21 @@ class FlightStoreRequest extends FormRequest
'max:100'
],
'departure_date' => [
'required'
'required',
function ($attribute, $value, $fail) {
try {
$gregorian = Verta::parse($value)
->formatGregorian('Y-m-d');
} catch (\Exception $e) {
$fail('تاریخ حرکت معتبر نیست.');
return;
}
if ($gregorian < now()->format('Y-m-d')) {
$fail('تاریخ حرکت نمی‌تواند قبل از تاریخ امروز باشد.');
}
},
],
'departure_time' => [
'required',
@@ -69,7 +84,7 @@ class FlightStoreRequest extends FormRequest
'min:0'
],
'image' => [
'required',
$this->isMethod('put') || $this->isMethod('patch') ? 'nullable' : 'required',
'image',
'mimes:jpg,jpeg,png,webp',
'max:2048'
+60 -2
View File
@@ -2,6 +2,7 @@
namespace App\Http\Requests\Admin;
use Hekmatinasser\Verta\Verta;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
@@ -12,7 +13,7 @@ class TourStoreRequest extends FormRequest
*/
public function authorize(): bool
{
return false;
return true;
}
/**
@@ -23,7 +24,64 @@ class TourStoreRequest extends FormRequest
public function rules(): array
{
return [
//
'title' => [
'required',
'string',
'max:150'
],
'travel_type_id' => [
'required',
'integer',
'exists:travel_types,id'
],
'summary' => [
'nullable',
'string',
'max:255'
],
'description' => [
'nullable',
'string'
],
'price' => [
'required',
'numeric',
'min:0'
],
'departure_date' => [
'required',
'string',
function ($attribute, $value, $fail) {
try {
$gregorian = Verta::parse($value)
->formatGregorian('Y-m-d');
} catch (\Exception $e) {
$fail('تاریخ حرکت معتبر نیست.');
return;
}
if ($gregorian < now()->format('Y-m-d')) {
$fail('تاریخ حرکت نمی‌تواند قبل از تاریخ امروز باشد.');
}
},
],
'image' => [
$this->isMethod('put') || $this->isMethod('patch') ? 'nullable' : 'required',
'image',
'mimes:jpg,jpeg,png,webp',
'max:2048'
],
'views' => [
'nullable',
'integer',
'min:0'
],
'status' => [
'required',
'in:0,1,2'
]
];
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -164,10 +164,14 @@
تاریخ حرکت پرواز
</label>
<input type="text"
id="departure_date"
name="departure_date"
class="form-control"
readonly
autocomplete="off"
value="{{ old('departure_date') }}"
placeholder="انتخاب تاریخ حرکت">
@error('departure_date')
@@ -177,8 +181,6 @@
@enderror
</div>
<div class="col-md-4 mb-3">
<label>
@@ -291,11 +293,13 @@
</div>
<script>
window.addEventListener('load', function () {
$("#departure_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
});
</script>
@endsection
+12 -3
View File
@@ -142,8 +142,14 @@
<input type="text"
id="departure_date"
name="departure_date"
class="form-control">
{{ verta($flight->departure_date)->format('Y/m/d') }}
class="form-control"
readonly
autocomplete="off"
value="{{ old('departure_date', $flight->departure_date ? verta($flight->departure_date)->format('Y/m/d') : '') }}">
@error('departure_date')
<div class="text-danger mt-2">{{ $message }}</div>
@enderror
</div>
@@ -205,7 +211,6 @@
</div>
<div class="col-md-4 mb-3">
<label>
@@ -235,11 +240,15 @@
</div>
<script>
window.addEventListener('load', function () {
$("#departure_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
});
</script>
@endsection
@@ -1,3 +0,0 @@
<div>
<!-- Happiness is not something readymade. It comes from your own actions. - Dalai Lama -->
</div>
+4 -4
View File
@@ -14,7 +14,7 @@
@endisset
</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/persian-datepicker@1.2.0/dist/css/persian-datepicker.min.css">
<link rel="stylesheet" href="{{asset('assets/admin/persian-datepicker.min.css')}}">
<link href="{{asset('assets/bootstrap-5.3.8-examples/assets/dist/css/bootstrap.rtl.min.css')}}" rel="stylesheet">
<link href="{{ asset('assets/admin/css/style.css') }}" rel="stylesheet">
@@ -38,8 +38,8 @@
@includeUnless(isset($rawLayout),'admin.layouts.footer')
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/persian-date@1.1.0/dist/persian-date.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/persian-datepicker@1.2.0/dist/js/persian-datepicker.min.js"></script>
<script src="{{asset('assets/js/jquery-3.7.1.min.js')}}"></script>
<script src="{{asset('assets/js/persian-date.min.js')}}"></script>
<script src="{{asset('assets/js/persian-datepicker.min.js')}}"></script>
</body>
</html>
+7 -9
View File
@@ -154,12 +154,13 @@
id="departure_date"
name="departure_date"
class="form-control"
readonly
autocomplete="off"
value="{{ old('departure_date') }}"
placeholder="انتخاب تاریخ حرکت">
@error('departure_date')
<div class="text-danger mt-2">
{{ $message }}
</div>
<div class="text-danger mt-2">{{ $message }}</div>
@enderror
</div>
@@ -230,16 +231,13 @@
<script>
$("#start_date").persianDatepicker({
window.addEventListener('load', function () {
$("#departure_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
});
</script>
+13 -10
View File
@@ -111,15 +111,20 @@
</label>
<input type="text"
id="start_date"
name="start_date"
id="departure_date"
name="departure_date"
class="form-control"
placeholder="انتخاب تاریخ حرکت">
{{ verta($tour->departure_date)->format('Y/m/d') }}
readonly
autocomplete="off"
value="{{ old('departure_date', $tour->departure_date ? verta($tour->departure_date)->format('Y/m/d') : '') }}">
@error('departure_date')
<div class="text-danger mt-2">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-3">
<label>وضعیت</label>
@@ -192,17 +197,15 @@
<script>
$("#start_date").persianDatepicker({
window.addEventListener('load', function () {
$("#departure_date").persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
initialValue: false,
minDate: new persianDate()
});
});
</script>
@endsection
@@ -1,3 +0,0 @@
<div>
<!-- Happiness is not something readymade. It comes from your own actions. - Dalai Lama -->
</div>