diff options
-rw-r--r-- | app/assets/javascripts/smart_date.coffee | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/app/assets/javascripts/smart_date.coffee b/app/assets/javascripts/smart_date.coffee index 8e416de82..afc0c7ddf 100644 --- a/app/assets/javascripts/smart_date.coffee +++ b/app/assets/javascripts/smart_date.coffee @@ -1,16 +1,21 @@ -window.legalDaysPerMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] +window.legalDaysPerMonth = + false: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + true: [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] -window.isLeapYear = (year) -> - (year % 4 == 0) && ((year % 400 == 0) || (year % 100 != 0)) +window.legal window.correctDay = (dateValues) -> [day, month, year] = dateValues - return day if legalDaysPerMonth[month-1] >= day - return 29 if day == 29 && isLeapYear(year) - legalDaysPerMonth[month-1] + return day unless day > 0 && month > 0 && year > 0 + + legallyMaximumDay = legalDaysPerMonth[isLeapYear(year)][month - 1] + Math.min day, legallyMaximumDay + +window.isLeapYear = (year) -> + (year % 4 == 0) && ((year % 400 == 0) || (year % 100 != 0)) window.smartCorrectDate = -> - allSelectors = $(@).parent().children('select') # N'a pas un sibbling('select', include_self = true) ? + allSelectors = $(@).parent().children('select') allVals = allSelectors.map (index, sel) -> parseInt($(sel).val()) correctedDay = correctDay allVals |