Skip to content

Commit 3d757c5

Browse files
committed
feat: Datetime min-max -- currently in beta
1 parent 1ccf1ae commit 3d757c5

File tree

7 files changed

+279
-83
lines changed

7 files changed

+279
-83
lines changed

dev/components/form/datetime.vue

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@
6363
<p class="caption">Error State</p>
6464
<quasar-datetime class="has-error" v-model="model" type="datetime"></quasar-datetime>
6565

66+
<p class="caption">Min & Max</p>
67+
<quasar-datetime type="datetime" v-model="minMaxModel" :min="min" :max="max"></quasar-datetime>
68+
69+
<p class="caption">Range <sup>(beta)</sup></p>
70+
<quasar-datetime type="datetime" v-model="range.start" :min="range.min" :max="range.end"></quasar-datetime>
71+
<quasar-datetime type="datetime" v-model="range.end" :min="range.start" :max="range.max"></quasar-datetime>
72+
6673
<p class="caption">Inside of a List</p>
6774
<div class="list">
6875
<div class="list-label">Date or Time</div>
@@ -131,15 +138,33 @@
131138

132139
<p class="caption">Readonly State</p>
133140
<quasar-inline-datetime readonly v-model="model" type="datetime"></quasar-inline-datetime>
141+
142+
<p class="caption">Min & Max</p>
143+
<quasar-inline-datetime type="datetime" v-model="minMaxModel" :min="min" :max="max"></quasar-inline-datetime>
144+
145+
<p class="caption">Range <sup>(beta)</sup></p>
146+
<quasar-inline-datetime type="datetime" v-model="range.start" :min="range.min" :max="range.end"></quasar-inline-datetime>
147+
<quasar-inline-datetime type="datetime" v-model="range.end" :min="range.start" :max="range.max"></quasar-inline-datetime>
134148
</div>
135149
</div>
136150
</template>
137151

138152
<script>
153+
import moment from 'moment'
154+
139155
export default {
140156
data () {
141157
return {
142-
model: '2016-09-18T10:45:00.000Z'
158+
model: '2016-09-18T10:45:00.000Z',
159+
minMaxModel: '2016-10-24T10:40:14.674Z',
160+
min: moment('2016-10-24T10:40:14.674Z').subtract(5, 'days').format(),
161+
max: moment('2016-10-24T10:40:14.674Z').add(4, 'hours').add(10, 'minutes').format(),
162+
range: {
163+
start: moment('2016-10-24T10:40:14.674Z').subtract(3, 'days').format(),
164+
end: moment('2016-10-24T10:40:14.674Z').add(4, 'hours').add(10, 'minutes').add(1, 'month').format(),
165+
min: moment('2016-10-24T10:40:14.674Z').subtract(3, 'days').format(),
166+
max: moment('2016-10-24T10:40:14.674Z').add(4, 'hours').add(10, 'minutes').add(1, 'month').format()// .add(1, 'month').add(1, 'year')
167+
}
143168
}
144169
}
145170
}

dev/components/web-tests/fast-test.vue

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,10 @@
88
For some test that you think it should be persistent,
99
make a new *.vue file here or in another folder under /dev/components.
1010
-->
11-
12-
<div>{{model}}</div>
13-
<quasar-datetime v-model="model"></quasar-datetime>
14-
<!--<quasar-inline-datetime type="date" v-model="model"></quasar-inline-datetime>-->
1511
</div>
1612
</template>
1713

1814
<script>
1915
export default {
20-
data () {
21-
return {
22-
model: ''
23-
}
24-
}
2516
}
2617
</script>

dev/main.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import Vue from 'vue'
22
import Quasar from 'quasar'
3-
import moment from 'moment'
4-
53
import router from './router'
64
import App from './App'
75

6+
import moment from 'moment'
7+
moment.locale('de')
8+
89
Quasar.theme.set(__THEME)
910
Vue.use(Quasar) // Install Quasar Framework
1011

11-
moment.locale('de')
12-
1312
Quasar.start(() => {
1413
/* eslint-disable no-new */
1514
new Vue({

src/vue-components/datetime/Datetime.vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<div v-html="label"></div>
88

99
<quasar-popover ref="popup" @open="__setModel()" :disable="disable || readonly">
10-
<quasar-inline-datetime v-model="model" :type="type">
10+
<quasar-inline-datetime v-model="model" :type="type" :min="min" :max="max">
1111
<div class="modal-buttons row full-width">
1212
<button @click="clear()" class="primary clear" v-html="clearLabel"></button>
1313
<div class="auto"></div>
@@ -33,7 +33,7 @@
3333
:position-classes="position"
3434
:content-css="css"
3535
>
36-
<quasar-inline-datetime v-model="model" :type="type" class="no-border" style="width: 100%">
36+
<quasar-inline-datetime v-model="model" :type="type" :min="min" :max="max" class="no-border full-width">
3737
<div class="modal-buttons row full-width">
3838
<button @click="clear()" class="primary clear" v-html="clearLabel"></button>
3939
<div class="auto"></div>
@@ -73,6 +73,14 @@ export default {
7373
type: String,
7474
required: true
7575
},
76+
min: {
77+
type: [String, Boolean],
78+
default: false
79+
},
80+
max: {
81+
type: [String, Boolean],
82+
default: false
83+
},
7684
format: String,
7785
clearLabel: {
7886
type: String,

0 commit comments

Comments
 (0)