Migrate to flatpicker

This commit is contained in:
Björn Fromme
2018-09-14 09:54:48 +02:00
parent d104cad8a4
commit 131279b120
11 changed files with 25 additions and 34 deletions
-5
View File
@@ -9,11 +9,6 @@
"resolved": "https://registry.npmjs.org/@fancyapps/fancybox/-/fancybox-3.3.5.tgz", "resolved": "https://registry.npmjs.org/@fancyapps/fancybox/-/fancybox-3.3.5.tgz",
"integrity": "sha512-/sO9o/zeQhWN1OMRlVOWpElN56Ww/aSNks5a7PZ7JKM6I5jeih6CxaCeeOp8jgJXVfElbWOO2KTAMT/7tICNcQ==" "integrity": "sha512-/sO9o/zeQhWN1OMRlVOWpElN56Ww/aSNks5a7PZ7JKM6I5jeih6CxaCeeOp8jgJXVfElbWOO2KTAMT/7tICNcQ=="
}, },
"@fengyuanchen/datepicker": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/@fengyuanchen/datepicker/-/datepicker-0.6.5.tgz",
"integrity": "sha512-+HwjRUBilmoG+SnhQbbInsBSyvRMRUBZMX2hbHuqonYmp+zY70U9HrHU1TAqrMFjZ0JwoAiGQbQ65H4zKtmLvQ=="
},
"@symfony/webpack-encore": { "@symfony/webpack-encore": {
"version": "0.19.0", "version": "0.19.0",
"resolved": "https://registry.npmjs.org/@symfony/webpack-encore/-/webpack-encore-0.19.0.tgz", "resolved": "https://registry.npmjs.org/@symfony/webpack-encore/-/webpack-encore-0.19.0.tgz",
-1
View File
@@ -11,7 +11,6 @@
}, },
"dependencies": { "dependencies": {
"@fancyapps/fancybox": "^3.2.5", "@fancyapps/fancybox": "^3.2.5",
"@fengyuanchen/datepicker": "^0.6.5",
"bootstrap-sass": "^3.3.7", "bootstrap-sass": "^3.3.7",
"bourbon": "^4.3.2", "bourbon": "^4.3.2",
"cookieconsent": "^3.1.0", "cookieconsent": "^3.1.0",
@@ -1,5 +1,4 @@
<script> <script>
import Vue from 'vue'
import $ from 'jquery' import $ from 'jquery'
import StepInput from './StepInput.vue' import StepInput from './StepInput.vue'
@@ -6,7 +6,9 @@
<script> <script>
import $ from 'jquery' import $ from 'jquery'
import Vue from 'vue' import Vue from 'vue'
import datepicker from '@fengyuanchen/datepicker' import dayjs from 'dayjs'
import flatpickr from 'flatpickr'
import { German } from 'flatpickr/dist/l10n/de'
export default { export default {
props: { props: {
@@ -24,28 +26,26 @@
}, },
data () { data () {
return { return {
picker: null,
date: null date: null
} }
}, },
methods: { methods: {
initPicker () { initPicker () {
let $field = $(this.$refs.field);
Vue.nextTick(() => { Vue.nextTick(() => {
$field.datepicker({ this.picker = $(this.$refs.field).flatpickr({
autoHide: true, dateFormat: 'd.m.Y',
language: 'de-DE', locale: German,
format: 'dd.mm.yy', onChange: (selectedDates) => {
weekStart: 1, if (selectedDates.length) {
days: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'], this.date = selectedDates[0];
daysShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], this.$emit('picked', { field: this.name, value: dayjs(this.date).format('DD.MM.YYYY') });
daysMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'], }
months: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', }
'Oktober', 'November', 'Dezember'],
monthsShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov',
'Dez'],
}).on('pick.datepicker', (event) => {
this.date = $field.datepicker('formatDate', event.date);
}); });
if (this.defaultDate) {
this.picker.setDate(new Date(this.defaultDate));
}
}); });
} }
}, },
@@ -54,9 +54,6 @@
if (value) { if (value) {
this.date = value; this.date = value;
} }
},
date (value) {
this.$emit('picked', { field: this.name, value: value });
} }
}, },
mounted () { mounted () {
@@ -2,13 +2,13 @@
<div class="daterange-input"> <div class="daterange-input">
<date-input class="daterange-input__field" <date-input class="daterange-input__field"
name="from" placeholder="von" name="from" placeholder="von"
v-bind:default-date="defaultDateFrom" :default-date="defaultDateFrom"
v-on:picked="updateRange"></date-input> @picked="updateRange"></date-input>
<span class="daterange-input__divider">-</span> <span class="daterange-input__divider">-</span>
<date-input class="daterange-input__field" <date-input class="daterange-input__field"
name="to" placeholder="bis" name="to" placeholder="bis"
v-bind:default-date="defaultDateTo" :default-date="defaultDateTo"
v-on:picked="updateRange"></date-input> @picked="updateRange"></date-input>
</div> </div>
</template> </template>
<script> <script>
@@ -1,6 +1,5 @@
<script> <script>
const $ = require('jquery'); const $ = require('jquery');
const Vue = require('vue');
require('../../images/spinner_box.gif'); require('../../images/spinner_box.gif');
require('../../images/spinner_default.gif'); require('../../images/spinner_default.gif');
@@ -11,7 +11,6 @@
</template> </template>
<script> <script>
const $ = require('jquery'); const $ = require('jquery');
const Vue = require('vue');
export default { export default {
props: { props: {
@@ -7,6 +7,7 @@ require.context('../images', true, /\.(png|gif|svg|ico)$/);
require('normalize.css/normalize.css'); require('normalize.css/normalize.css');
require('slick-carousel/slick/slick.css'); require('slick-carousel/slick/slick.css');
require('cookieconsent/build/cookieconsent.min.css'); require('cookieconsent/build/cookieconsent.min.css');
require('flatpickr/dist/flatpickr.css');
// Require main app // Require main app
require('./app'); require('./app');
@@ -1,5 +1,3 @@
@import "~@fengyuanchen/datepicker/dist/datepicker.css";
.configurator { .configurator {
background: url(../images/bg_configurator.jpg) no-repeat top left; background: url(../images/bg_configurator.jpg) no-repeat top left;
background-size: cover; background-size: cover;
@@ -0,0 +1,3 @@
.flatpickr-months .flatpickr-month {
height: 40px;
}
@@ -37,3 +37,4 @@ $output-bourbon-deprecation-warnings: false;
@import "search"; @import "search";
@import "paginator"; @import "paginator";
@import "news"; @import "news";
@import "datepicker";