Fix expiry datepicker allowing all dates

vue2-datepicker expects a `disabled-date` function
rather than `not-before` and `not-after` dates.

This commit updates it so that we now provide
vue2-datepicker with a `disabled-date` function.

Signed-off-by: Gary Kim <gary@garykim.dev>
This commit is contained in:
Gary Kim 2020-05-01 17:06:24 +08:00
parent e77e0b0e2f
commit 8dd23f9854
No known key found for this signature in database
GPG Key ID: 9349B59FB54594AC
5 changed files with 18 additions and 10 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -95,8 +95,7 @@
value-type="format"
icon="icon-calendar-dark"
type="date"
:not-before="dateTomorrow"
:not-after="dateMaxEnforced"
:disabled-date="disabledDate"
@update:value="onExpirationChange">
{{ t('files_sharing', 'Enter a date') }}
</ActionInput>

View File

@ -105,8 +105,7 @@
icon=""
type="date"
value-type="format"
:not-before="dateTomorrow"
:not-after="dateMaxEnforced">
:disabled-date="disabledDate">
<!-- let's not submit when picked, the user
might want to still edit or copy the password -->
{{ t('files_sharing', 'Enter a date') }}
@ -231,8 +230,7 @@
value-type="format"
icon="icon-calendar-dark"
type="date"
:not-before="dateTomorrow"
:not-after="dateMaxEnforced"
:disabled-date="disabledDate"
@update:value="onExpirationChange">
{{ t('files_sharing', 'Enter a date') }}
</ActionInput>

View File

@ -300,5 +300,16 @@ export default {
debounceQueueUpdate: debounce(function(property) {
this.queueUpdate(property)
}, 500),
/**
* Returns which dates are disabled for the datepicker
* @param {Date} date date to check
* @returns {boolean}
*/
disabledDate(date) {
const dateMoment = moment(date)
return (this.dateTomorrow && dateMoment.isBefore(this.dateTomorrow, 'day'))
|| (this.dateMaxEnforced && dateMoment.isSameOrAfter(this.dateMaxEnforced, 'day'))
},
},
}