Skip to content

Commit bdc40f4

Browse files
committed
[SER-2207] User can create journey with past time.
If "isFuture" prop is true, disable past time slots when the date is selected is today. ref: https://element.eleme.io/#/en-US/component/time-picker#timepicker
1 parent 6e13535 commit bdc40f4

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

frontend/express/public/javascripts/countly/vue/components/date.js

+40-1
Original file line numberDiff line numberDiff line change
@@ -1660,9 +1660,48 @@
16601660
type: Boolean,
16611661
default: true,
16621662
required: false
1663+
},
1664+
minDateValue: {
1665+
type: Date
1666+
},
1667+
isFuture: {
1668+
type: Boolean,
1669+
default: false
1670+
}
1671+
},
1672+
computed: {
1673+
pickerOptions() {
1674+
const defaultRange = { selectableRange: '00:00:00 - 23:59:00' };
1675+
1676+
if (!this.minDateValue) {
1677+
return defaultRange;
1678+
}
1679+
1680+
const now = moment();
1681+
const minDateMoment = moment(this.minDateValue);
1682+
const isToday = minDateMoment.isSame(now, 'day');
1683+
1684+
if (this.isFuture && isToday) {
1685+
return {
1686+
selectableRange: `${now.format('HH:mm:ss')} - 23:59:00`
1687+
};
1688+
}
1689+
1690+
return defaultRange;
16631691
}
16641692
},
1665-
template: '<el-time-picker :append-to-body="appendToBody" :style="{\'width\': width + \'px\'}" class="cly-vue-time-picker" v-bind="$attrs" v-on="$listeners" :format="format" :clearable="clearable"></el-time-picker>'
1693+
template: `
1694+
<el-time-picker
1695+
:append-to-body="appendToBody"
1696+
:clearable="clearable"
1697+
:format="format"
1698+
:picker-options="pickerOptions"
1699+
:style="{\'width\': width + \'px\'}"
1700+
class="cly-vue-time-picker"
1701+
v-bind="$attrs"
1702+
v-on="$listeners"
1703+
>
1704+
</el-time-picker>`
16661705
});
16671706

16681707

frontend/express/public/javascripts/countly/vue/templates/datepicker.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@
207207
<span class="text-medium">{{i18n('common.time')}}</span>
208208
</div>
209209
<div>
210-
<cly-time-picker align="right" :width="100" v-model="minTime"></cly-time-picker>
210+
<cly-time-picker align="right" :width="100" v-model="minTime" :min-date-value="minDate" :is-future="isFuture"></cly-time-picker>
211211
</div>
212212
</div>
213213
</div>

0 commit comments

Comments
 (0)