|
1 | 1 | /* |
2 | 2 | * Bootstrap 4+ Persian Date Time Picker jQuery Plugin |
3 | | - * version : 3.7.4 |
| 3 | + * version : 3.9.0 |
4 | 4 | * https://github.com/Mds92/MD.BootstrapPersianDateTimePicker |
5 | 5 | * |
6 | 6 | * |
|
535 | 535 | function getSelectedDateTimeFormatted(setting) { |
536 | 536 | if (setting.selectedDate == undefined) return ''; |
537 | 537 | if (setting.rangeSelector && setting.rangeSelectorStartDate != undefined && setting.rangeSelectorEndDate != undefined) |
538 | | - return getDateTimeString(getDateTimeJson1(setting.rangeSelectorStartDate), setting.dateFormat, setting.isGregorian, true) + ' - ' + |
539 | | - getDateTimeString(getDateTimeJson1(setting.rangeSelectorEndDate), setting.dateFormat, setting.isGregorian, true); |
540 | | - return getDateTimeString(getDateTimeJson1(setting.selectedDate), setting.dateFormat, setting.isGregorian, true); |
| 538 | + return getDateTimeString(getDateTimeJson1(setting.rangeSelectorStartDate), setting.dateFormat, setting.isGregorian, setting.englishNumber) + ' - ' + |
| 539 | + getDateTimeString(getDateTimeJson1(setting.rangeSelectorEndDate), setting.dateFormat, setting.isGregorian, setting.englishNumber); |
| 540 | + return getDateTimeString(getDateTimeJson1(setting.selectedDate), setting.dateFormat, setting.isGregorian, setting.englishNumber); |
541 | 541 | } |
542 | 542 |
|
543 | 543 | function setSelectedData(setting) { |
|
573 | 573 | } |
574 | 574 | } |
575 | 575 |
|
| 576 | + function setSelectedRangeData(setting) { |
| 577 | + var $targetDate = $(setting.targetTextSelector), |
| 578 | + startDateTimeObject = setting.selectedRangeDate[0], |
| 579 | + endDateTimeObject = setting.selectedRangeDate[1]; |
| 580 | + |
| 581 | + if (!startDateTimeObject) |
| 582 | + throw new Error(`Start Date of '${setting.targetTextSelector}' is not valid for range selector`); |
| 583 | + if (!endDateTimeObject) |
| 584 | + throw new Error(`End Date of '${setting.targetTextSelector}' is not valid for range selector`); |
| 585 | + |
| 586 | + setting.selectedDate = startDateTimeObject; |
| 587 | + setting.rangeSelectorStartDate = startDateTimeObject; |
| 588 | + setting.rangeSelectorEndDate = endDateTimeObject; |
| 589 | + |
| 590 | + if ($targetDate.length > 0) { |
| 591 | + switch ($targetDate[0].tagName.toLowerCase()) { |
| 592 | + case 'input': |
| 593 | + $targetDate.val(getSelectedDateTimeTextFormatted(setting)); |
| 594 | + triggerChangeCalling = true; |
| 595 | + $targetDate.trigger('change'); |
| 596 | + break; |
| 597 | + default: |
| 598 | + $targetDate.text(getSelectedDateTimeTextFormatted(setting)); |
| 599 | + triggerChangeCalling = true; |
| 600 | + $targetDate.trigger('change'); |
| 601 | + break; |
| 602 | + } |
| 603 | + } |
| 604 | + } |
| 605 | + |
576 | 606 | function isNumber(n) { |
577 | 607 | return !isNaN(parseFloat(n)) && isFinite(n); |
578 | 608 | } |
|
1727 | 1757 |
|
1728 | 1758 | if (setting.rangeSelector) { // اگر رنج سلکتور فعال بود |
1729 | 1759 | if (setting.rangeSelectorStartDate != undefined && setting.rangeSelectorEndDate != undefined) { |
| 1760 | + setting.selectedRangeDate = []; |
1730 | 1761 | setting.rangeSelectorStartDate = undefined; |
1731 | 1762 | setting.rangeSelectorEndDate = undefined; |
1732 | 1763 | $this.parents('table:last').find('td.selected-range-days-start-end,td.selected-range-days') |
|
1745 | 1776 | } |
1746 | 1777 | setSetting1($this, setting); |
1747 | 1778 | if (setting.rangeSelectorStartDate != undefined && setting.rangeSelectorEndDate != undefined) { |
| 1779 | + setting.selectedRangeDate = [getClonedDate(setting.rangeSelectorStartDate), getClonedDate(setting.rangeSelectorEndDate)]; |
1748 | 1780 | if (!setting.inLine) { |
1749 | 1781 | hidePopover($(mdDatePickerElementSelector)); |
1750 | 1782 | } else updateCalendarHtml1($this, setting); |
|
1924 | 1956 | $('html').on('click', function (e) { |
1925 | 1957 | if (triggerStart) return; |
1926 | 1958 | var $target = $(e.target), |
1927 | | - $popoverDescriber = getPopoverDescriber($target); |
| 1959 | + $popoverDescriber = getPopoverDescriber($target); |
1928 | 1960 | if ($popoverDescriber.length >= 1 || isWithinMdModal($target) || isCalendarOpen($target)) return; |
1929 | 1961 | hidePopover($(mdDatePickerElementSelector)); |
1930 | 1962 | }); |
|
2002 | 2034 | var uniqeId = new Date().getTime(); |
2003 | 2035 | $this.data(mdPluginName, setting); |
2004 | 2036 | $this.attr('data-uniqueid', uniqeId); |
2005 | | - if (setting.selectedDate != undefined) { |
| 2037 | + if (setting.rangeSelector && setting.selectedRangeDate != undefined) { |
| 2038 | + setSelectedRangeData(setting); |
| 2039 | + triggerChangeCalling = false; |
| 2040 | + } else if (setting.selectedDate != undefined) { |
2006 | 2041 | setSelectedData(setting); |
2007 | 2042 | triggerChangeCalling = false; |
2008 | 2043 | } |
|
2136 | 2171 | setting = getSetting2($this); |
2137 | 2172 | if (setting.rangeSelector) { |
2138 | 2173 | setting.selectedDate = startDateTimeObject; |
| 2174 | + setting.selectedRangeDate = [startDateTimeObject, endDateTimeObject]; |
2139 | 2175 | setting.rangeSelectorStartDate = startDateTimeObject; |
2140 | 2176 | setting.rangeSelectorEndDate = endDateTimeObject; |
2141 | 2177 | setSetting1($this, setting); |
|
2163 | 2199 | var $this = $(this), |
2164 | 2200 | setting = getSetting2($this); |
2165 | 2201 | setting.selectedDate = undefined; |
| 2202 | + setting.selectedRangeDate = []; |
2166 | 2203 | setting.rangeSelectorStartDate = undefined; |
2167 | 2204 | setting.rangeSelectorEndDate = undefined; |
2168 | 2205 | setSetting1($this, setting); |
|
0 commit comments