Skip to content

Commit 77e58b7

Browse files
committed
feat(QDate): New prop -> no-unset (Boolean) quasarframework#7682
1 parent 455934a commit 77e58b7

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

ui/dev/src/pages/form/date-part2-multiple-range.vue

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,22 @@
33
<div class="row q-gutter-md q-pb-md">
44
<q-btn label="Null model" @click="nullify" />
55
<q-btn label="Reset" @click="reset" />
6+
<q-toggle v-model="noUnset" label="No unset" />
67
</div>
78

89
<div class="q-gutter-md">
910
<div>Single {{ day || 'none ' }}:</div>
10-
<q-date v-model="day" today-btn @input="onInput" />
11+
<q-date v-model="day" today-btn @input="onInput" :no-unset="noUnset" />
1112

1213
<div>Multiple {{ days || 'none ' }}:</div>
13-
<q-date v-model="days" multiple today-btn @input="onInput" />
14+
<q-date v-model="days" multiple today-btn @input="onInput" :no-unset="noUnset" />
1415

1516
<div>Range {{ dayRange || 'none ' }}:</div>
16-
<q-date v-model="dayRange" today-btn range @input="onInput" @range-start="onRangeStart" @range-end="onRangeEnd" />
17+
<q-date v-model="dayRange" today-btn range @input="onInput" @range-start="onRangeStart" @range-end="onRangeEnd" :no-unset="noUnset" />
1718

1819
<div>Multiple + Range {{ daysRange || 'none ' }}:</div>
1920
<div class="row no-wrap">
20-
<q-date ref="daysRange" v-model="daysRange" multiple today-btn range @input="onInput" @range-start="onRangeStart" @range-end="onRangeEnd" />
21+
<q-date ref="daysRange" v-model="daysRange" multiple today-btn range @input="onInput" @range-start="onRangeStart" @range-end="onRangeEnd" :no-unset="noUnset" />
2122
<div class="q-gutter-sm q-ml-sm">
2223
<q-btn label="setEditingRange(from)" @click="setRangeFrom" no-caps />
2324
<q-btn label="setEditingRange(from, to)" @click="setRangeFromTo" no-caps />
@@ -34,6 +35,8 @@
3435
export default {
3536
data () {
3637
return {
38+
noUnset: false,
39+
3740
day: null,
3841
days: null,
3942
dayRange: null,

ui/src/components/date/QDate.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ export default Vue.extend({
5858
validator: yearMonthValidator
5959
},
6060

61+
noUnset: Boolean,
62+
6163
firstDayOfWeek: [ String, Number ],
6264
todayBtn: Boolean,
6365
minimal: Boolean,
@@ -1382,6 +1384,10 @@ export default Vue.extend({
13821384
},
13831385

13841386
__removeFromModel (date) {
1387+
if (this.noUnset === true) {
1388+
return
1389+
}
1390+
13851391
let model = null
13861392

13871393
if (this.multiple === true && Array.isArray(this.value) === true) {

ui/src/components/date/QDate.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,13 @@
112112
"addedIn": "v1.13.0"
113113
},
114114

115+
"no-unset": {
116+
"type": "Boolean",
117+
"desc": "Remove ability to unselect a date; It does not apply to selecting a range over already selected dates",
118+
"category": "selection",
119+
"addedIn": "v1.13.2"
120+
},
121+
115122
"first-day-of-week": {
116123
"type": [ "String", "Number" ],
117124
"desc": "Sets the day of the week that is considered the first day (0 - Sunday, 1 - Monday, ...); This day will show in the left-most column of the calendar",

0 commit comments

Comments
 (0)