diff --git a/resources/views/tasks/create.blade.php b/resources/views/tasks/create.blade.php
index f8681ff1..7d970bb6 100755
--- a/resources/views/tasks/create.blade.php
+++ b/resources/views/tasks/create.blade.php
@@ -57,12 +57,9 @@ if (isset($task)) {
$defaultStartGregorian = $existingStart
? \App\Support\JalaliHelper::toGregorianDate($existingStart)
: now()->format('Y-m-d');
- $defaultStartJalali = $existingStart
- ? \App\Support\JalaliHelper::format($existingStart, 'Y/m/d', '')
- : \App\Support\JalaliHelper::format(now(), 'Y/m/d', '');
@endphp
@@ -211,11 +208,18 @@ if (isset($task)) {
updateSelectedCount();
$(document).ready(function () {
+ function jalaliFromGregorianYmd(ymd) {
+ if (!ymd) return '';
+ const parts = String(ymd).split('-').map(Number);
+ if (parts.length < 3 || parts.some(n => Number.isNaN(n))) return '';
+ const gDate = new Date(parts[0], parts[1] - 1, parts[2]);
+ return new persianDate(gDate).toLocale('en').format('YYYY/MM/DD');
+ }
+
function syncGregorianFromDisplay(displaySelector, hiddenSelector) {
const displayVal = $(displaySelector).val();
if (!displayVal || $(hiddenSelector).val()) return;
try {
- // اگر مقدار نمایشی شمسی YYYY/MM/DD باشد
const parts = String(displayVal).replace(/-/g, '/').split('/');
if (parts.length === 3) {
const pDate = new persianDate([Number(parts[0]), Number(parts[1]), Number(parts[2])]);
@@ -226,53 +230,62 @@ if (isset($task)) {
}
}
- $('#start_date').persianDatepicker({
+ const startPickerOptions = {
format: 'YYYY/MM/DD',
autoClose: true,
+ initialValue: false,
toolbox: {
calendarSwitch: {enabled: false},
todayButton: {enabled: true, text: {fa: 'امروز'}}
},
onSelect: function (unix) {
- let gregorian = new persianDate(unix).toCalendar('gregorian').toLocale('en');
- let dateStr = gregorian.format('YYYY-MM-DD');
- $('#start_date_gregorian').val(dateStr);
+ const gregorian = new persianDate(unix).toCalendar('gregorian').toLocale('en');
+ $('#start_date_gregorian').val(gregorian.format('YYYY-MM-DD'));
}
- });
+ };
+
+ $('#start_date').persianDatepicker(startPickerOptions);
$('#target_date').persianDatepicker({
format: 'YYYY/MM/DD',
autoClose: true,
+ initialValue: false,
toolbox: {
calendarSwitch: {enabled: false},
todayButton: {enabled: true, text: {fa: 'امروز'}}
},
onSelect: function (unix) {
- let gregorianDate = new persianDate(unix).toCalendar('gregorian').toLocale('en');
- let dateStrTarget = gregorianDate.format('YYYY-MM-DD');
- $('#target_date_gregorian').val(dateStrTarget);
+ const gregorianDate = new persianDate(unix).toCalendar('gregorian').toLocale('en');
+ $('#target_date_gregorian').val(gregorianDate.format('YYYY-MM-DD'));
}
});
- // اگر تسک موجود برای ویرایش است، تاریخها را از دیتابیس ست کن
+ // نمایش شمسی را از روی تاریخ میلادی بساز (نه برعکس) تا دیتپیکر اشتباه تفسیر نکند
@if(!empty($task) && !empty($task->start_date))
$('#start_date_gregorian').val(@json(\App\Support\JalaliHelper::toGregorianDate($task->start_date)));
- $('#start_date').val(@json(\App\Support\JalaliHelper::format($task->start_date, 'Y/m/d', '')));
@endif
+ const startGregorian = $('#start_date_gregorian').val() || @json($defaultStartGregorian);
+ $('#start_date_gregorian').val(startGregorian);
+ $('#start_date').val(jalaliFromGregorianYmd(startGregorian));
+
@if(!empty($task) && !empty($task->target_date))
- $('#target_date_gregorian').val(@json(\App\Support\JalaliHelper::toGregorianDate($task->target_date)));
- $('#target_date').val(@json(\App\Support\JalaliHelper::format($task->target_date, 'Y/m/d', '')));
+ const targetGregorian = @json(\App\Support\JalaliHelper::toGregorianDate($task->target_date));
+ $('#target_date_gregorian').val(targetGregorian);
+ $('#target_date').val(jalaliFromGregorianYmd(targetGregorian));
@endif
$('form').on('submit', function () {
syncGregorianFromDisplay('#start_date', '#start_date_gregorian');
syncGregorianFromDisplay('#target_date', '#target_date_gregorian');
if (!$('#start_date_gregorian').val()) {
- const todayUnix = new persianDate().valueOf();
- $('#start_date').val(new persianDate(todayUnix).format('YYYY/MM/DD'));
- $('#start_date_gregorian').val(
- new persianDate(todayUnix).toCalendar('gregorian').toLocale('en').format('YYYY-MM-DD')
- );
+ const today = new Date();
+ const ymd = [
+ today.getFullYear(),
+ String(today.getMonth() + 1).padStart(2, '0'),
+ String(today.getDate()).padStart(2, '0')
+ ].join('-');
+ $('#start_date_gregorian').val(ymd);
+ $('#start_date').val(jalaliFromGregorianYmd(ymd));
}
});