From 8b16955cc27b29ae507be084adccc4fad61b05ef Mon Sep 17 00:00:00 2001 From: Pouyan Savoli Date: Sat, 14 Oct 2017 01:38:25 +0200 Subject: number + date fields --- client/lib/datepicker.js | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 client/lib/datepicker.js (limited to 'client/lib/datepicker.js') diff --git a/client/lib/datepicker.js b/client/lib/datepicker.js new file mode 100644 index 00000000..aac061cf --- /dev/null +++ b/client/lib/datepicker.js @@ -0,0 +1,86 @@ +DatePicker = BlazeComponent.extendComponent({ + template() { + return 'datepicker'; + }, + + onCreated() { + this.error = new ReactiveVar(''); + this.card = this.data(); + this.date = new ReactiveVar(moment.invalid()); + }, + + onRendered() { + const $picker = this.$('.js-datepicker').datepicker({ + todayHighlight: true, + todayBtn: 'linked', + language: TAPi18n.getLanguage(), + }).on('changeDate', function(evt) { + this.find('#date').value = moment(evt.date).format('L'); + this.error.set(''); + this.find('#time').focus(); + }.bind(this)); + + if (this.date.get().isValid()) { + $picker.datepicker('update', this.date.get().toDate()); + } + }, + + showDate() { + if (this.date.get().isValid()) + return this.date.get().format('L'); + return ''; + }, + showTime() { + if (this.date.get().isValid()) + return this.date.get().format('LT'); + return ''; + }, + dateFormat() { + return moment.localeData().longDateFormat('L'); + }, + timeFormat() { + return moment.localeData().longDateFormat('LT'); + }, + + events() { + return [{ + 'keyup .js-date-field'() { + // parse for localized date format in strict mode + const dateMoment = moment(this.find('#date').value, 'L', true); + if (dateMoment.isValid()) { + this.error.set(''); + this.$('.js-datepicker').datepicker('update', dateMoment.toDate()); + } + }, + 'keyup .js-time-field'() { + // parse for localized time format in strict mode + const dateMoment = moment(this.find('#time').value, 'LT', true); + if (dateMoment.isValid()) { + this.error.set(''); + } + }, + 'submit .edit-date'(evt) { + evt.preventDefault(); + + // if no time was given, init with 12:00 + const time = evt.target.time.value || moment(new Date().setHours(12, 0, 0)).format('LT'); + + const dateString = `${evt.target.date.value} ${time}`; + const newDate = moment(dateString, 'L LT', true); + if (newDate.isValid()) { + this._storeDate(newDate.toDate()); + Popup.close(); + } + else { + this.error.set('invalid-date'); + evt.target.date.focus(); + } + }, + 'click .js-delete-date'(evt) { + evt.preventDefault(); + this._deleteDate(); + Popup.close(); + }, + }]; + }, +}); \ No newline at end of file -- cgit v1.2.3-1-g7c22 From d6cfac0122dc5e6819c82f73c728488e0600cb70 Mon Sep 17 00:00:00 2001 From: Ignatz Date: Fri, 18 May 2018 10:24:51 +0200 Subject: linter corrections --- client/lib/datepicker.js | 150 +++++++++++++++++++++++------------------------ 1 file changed, 75 insertions(+), 75 deletions(-) (limited to 'client/lib/datepicker.js') diff --git a/client/lib/datepicker.js b/client/lib/datepicker.js index aac061cf..947970ee 100644 --- a/client/lib/datepicker.js +++ b/client/lib/datepicker.js @@ -1,86 +1,86 @@ DatePicker = BlazeComponent.extendComponent({ - template() { - return 'datepicker'; - }, + template() { + return 'datepicker'; + }, - onCreated() { - this.error = new ReactiveVar(''); - this.card = this.data(); - this.date = new ReactiveVar(moment.invalid()); - }, + onCreated() { + this.error = new ReactiveVar(''); + this.card = this.data(); + this.date = new ReactiveVar(moment.invalid()); + }, - onRendered() { - const $picker = this.$('.js-datepicker').datepicker({ - todayHighlight: true, - todayBtn: 'linked', - language: TAPi18n.getLanguage(), - }).on('changeDate', function(evt) { - this.find('#date').value = moment(evt.date).format('L'); - this.error.set(''); - this.find('#time').focus(); - }.bind(this)); + onRendered() { + const $picker = this.$('.js-datepicker').datepicker({ + todayHighlight: true, + todayBtn: 'linked', + language: TAPi18n.getLanguage(), + }).on('changeDate', function(evt) { + this.find('#date').value = moment(evt.date).format('L'); + this.error.set(''); + this.find('#time').focus(); + }.bind(this)); - if (this.date.get().isValid()) { - $picker.datepicker('update', this.date.get().toDate()); - } - }, + if (this.date.get().isValid()) { + $picker.datepicker('update', this.date.get().toDate()); + } + }, - showDate() { - if (this.date.get().isValid()) - return this.date.get().format('L'); - return ''; - }, - showTime() { - if (this.date.get().isValid()) - return this.date.get().format('LT'); - return ''; - }, - dateFormat() { - return moment.localeData().longDateFormat('L'); - }, - timeFormat() { - return moment.localeData().longDateFormat('LT'); - }, + showDate() { + if (this.date.get().isValid()) + return this.date.get().format('L'); + return ''; + }, + showTime() { + if (this.date.get().isValid()) + return this.date.get().format('LT'); + return ''; + }, + dateFormat() { + return moment.localeData().longDateFormat('L'); + }, + timeFormat() { + return moment.localeData().longDateFormat('LT'); + }, - events() { - return [{ - 'keyup .js-date-field'() { + events() { + return [{ + 'keyup .js-date-field'() { // parse for localized date format in strict mode - const dateMoment = moment(this.find('#date').value, 'L', true); - if (dateMoment.isValid()) { - this.error.set(''); - this.$('.js-datepicker').datepicker('update', dateMoment.toDate()); - } - }, - 'keyup .js-time-field'() { + const dateMoment = moment(this.find('#date').value, 'L', true); + if (dateMoment.isValid()) { + this.error.set(''); + this.$('.js-datepicker').datepicker('update', dateMoment.toDate()); + } + }, + 'keyup .js-time-field'() { // parse for localized time format in strict mode - const dateMoment = moment(this.find('#time').value, 'LT', true); - if (dateMoment.isValid()) { - this.error.set(''); - } - }, - 'submit .edit-date'(evt) { - evt.preventDefault(); + const dateMoment = moment(this.find('#time').value, 'LT', true); + if (dateMoment.isValid()) { + this.error.set(''); + } + }, + 'submit .edit-date'(evt) { + evt.preventDefault(); // if no time was given, init with 12:00 - const time = evt.target.time.value || moment(new Date().setHours(12, 0, 0)).format('LT'); + const time = evt.target.time.value || moment(new Date().setHours(12, 0, 0)).format('LT'); - const dateString = `${evt.target.date.value} ${time}`; - const newDate = moment(dateString, 'L LT', true); - if (newDate.isValid()) { - this._storeDate(newDate.toDate()); - Popup.close(); - } - else { - this.error.set('invalid-date'); - evt.target.date.focus(); - } - }, - 'click .js-delete-date'(evt) { - evt.preventDefault(); - this._deleteDate(); - Popup.close(); - }, - }]; - }, -}); \ No newline at end of file + const dateString = `${evt.target.date.value} ${time}`; + const newDate = moment(dateString, 'L LT', true); + if (newDate.isValid()) { + this._storeDate(newDate.toDate()); + Popup.close(); + } + else { + this.error.set('invalid-date'); + evt.target.date.focus(); + } + }, + 'click .js-delete-date'(evt) { + evt.preventDefault(); + this._deleteDate(); + Popup.close(); + }, + }]; + }, +}); -- cgit v1.2.3-1-g7c22 From ef99e6a6b1cd8d55fdab9ff94e7bfc3d5c538b8f Mon Sep 17 00:00:00 2001 From: Ignatz Date: Fri, 18 May 2018 11:13:01 +0200 Subject: indend corrections --- client/lib/datepicker.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'client/lib/datepicker.js') diff --git a/client/lib/datepicker.js b/client/lib/datepicker.js index 947970ee..ab2da0bd 100644 --- a/client/lib/datepicker.js +++ b/client/lib/datepicker.js @@ -45,7 +45,7 @@ DatePicker = BlazeComponent.extendComponent({ events() { return [{ 'keyup .js-date-field'() { - // parse for localized date format in strict mode + // parse for localized date format in strict mode const dateMoment = moment(this.find('#date').value, 'L', true); if (dateMoment.isValid()) { this.error.set(''); @@ -53,7 +53,7 @@ DatePicker = BlazeComponent.extendComponent({ } }, 'keyup .js-time-field'() { - // parse for localized time format in strict mode + // parse for localized time format in strict mode const dateMoment = moment(this.find('#time').value, 'LT', true); if (dateMoment.isValid()) { this.error.set(''); @@ -62,7 +62,7 @@ DatePicker = BlazeComponent.extendComponent({ 'submit .edit-date'(evt) { evt.preventDefault(); - // if no time was given, init with 12:00 + // if no time was given, init with 12:00 const time = evt.target.time.value || moment(new Date().setHours(12, 0, 0)).format('LT'); const dateString = `${evt.target.date.value} ${time}`; -- cgit v1.2.3-1-g7c22