From 04b9250ea13c09c277ce91d58b2d07bf744e21d0 Mon Sep 17 00:00:00 2001 From: leigh-mil Date: Wed, 13 Nov 2019 16:42:03 -0500 Subject: [PATCH] Create emitter function for field-change event --- js/components/checkbox_input.js | 4 +++- js/components/clin_fields.js | 4 ++-- js/components/date_selector.js | 3 ++- js/components/multi_checkbox_input.js | 4 +++- js/components/options_input.js | 4 +++- js/components/pop_date_range.js | 4 ++-- js/components/upload_input.js | 5 +++-- js/lib/emitters.js | 4 ++++ js/mixins/text_input_mixin.js | 3 ++- 9 files changed, 24 insertions(+), 11 deletions(-) diff --git a/js/components/checkbox_input.js b/js/components/checkbox_input.js index d161c26f..6f942265 100644 --- a/js/components/checkbox_input.js +++ b/js/components/checkbox_input.js @@ -1,3 +1,5 @@ +import { emitFieldChange } from '../lib/emitters' + export default { name: 'checkboxinput', @@ -15,7 +17,7 @@ export default { methods: { onInput: function() { - this.$parent.$emit('field-change') + emitFieldChange(this) }, }, diff --git a/js/components/clin_fields.js b/js/components/clin_fields.js index 212c607c..b51c8b62 100644 --- a/js/components/clin_fields.js +++ b/js/components/clin_fields.js @@ -1,4 +1,4 @@ -import { emitEvent } from '../lib/emitters' +import { emitFieldChange, emitEvent } from '../lib/emitters' import optionsinput from './options_input' import textinput from './text_input' import clindollaramount from './clin_dollar_amount' @@ -98,7 +98,7 @@ export default { } else if (event && event.name.includes(NUMBER)) { this.clinNumber = event.value } - this.$parent.$emit('field-change') + emitFieldChange(this) }, removeClin: function() { diff --git a/js/components/date_selector.js b/js/components/date_selector.js index c96a97f8..c7cc4da3 100644 --- a/js/components/date_selector.js +++ b/js/components/date_selector.js @@ -1,5 +1,6 @@ import Vue from 'vue' import { getDaysInMonth } from 'date-fns' +import { emitFieldChange } from '../lib/emitters' let paddedNumber = function(number) { if ((number + '').length === 1) { @@ -209,7 +210,7 @@ export default { methods: { onInput: function() { - this.$parent.$emit('field-change', { + emitFieldChange(this, { value: this.formattedDate, name: this.name, valid: this.isDateValid, diff --git a/js/components/multi_checkbox_input.js b/js/components/multi_checkbox_input.js index 3c1839f5..8ef4e880 100644 --- a/js/components/multi_checkbox_input.js +++ b/js/components/multi_checkbox_input.js @@ -1,3 +1,5 @@ +import { emitFieldChange } from '../lib/emitters' + export default { name: 'multicheckboxinput', @@ -32,7 +34,7 @@ export default { methods: { onInput: function(e) { - this.$parent.$emit('field-change') + emitFieldChange(this) this.showError = false this.showValid = true }, diff --git a/js/components/options_input.js b/js/components/options_input.js index a0cf15cf..639c8454 100644 --- a/js/components/options_input.js +++ b/js/components/options_input.js @@ -1,3 +1,5 @@ +import { emitFieldChange } from '../lib/emitters' + export default { name: 'optionsinput', @@ -31,7 +33,7 @@ export default { methods: { onInput: function() { - this.$parent.$emit('field-change') + emitFieldChange(this) }, _isValid: function(value) { diff --git a/js/components/pop_date_range.js b/js/components/pop_date_range.js index 525a7cb9..4240c852 100644 --- a/js/components/pop_date_range.js +++ b/js/components/pop_date_range.js @@ -1,5 +1,5 @@ import { format } from 'date-fns' - +import { emitFieldChange } from '../lib/emitters' import DateSelector from './date_selector' const START_DATE = 'start_date' @@ -63,7 +63,7 @@ export default { let date = new Date(event.value) this.maxStartDate = this.calcMaxStartDate(date) } - this.$parent.$emit('field-change') + emitFieldChange(this) }, calcMaxStartDate: function(date) { diff --git a/js/components/upload_input.js b/js/components/upload_input.js index c2108a2f..52cd8bf8 100644 --- a/js/components/upload_input.js +++ b/js/components/upload_input.js @@ -1,4 +1,5 @@ import { buildUploader } from '../lib/upload' +import { emitFieldChange } from '../lib/emitters' export default { name: 'uploadinput', @@ -68,7 +69,7 @@ export default { this.changed = true - this.$parent.$emit('field-change') + emitFieldChange(this) }, removeAttachment: function(e) { e.preventDefault() @@ -80,7 +81,7 @@ export default { this.clearErrors() this.changed = true - this.$parent.$emit('field-change') + emitFieldChange(this) }, clearErrors: function() { this.uploadError = false diff --git a/js/lib/emitters.js b/js/lib/emitters.js index fa0567d7..dbc5b37f 100644 --- a/js/lib/emitters.js +++ b/js/lib/emitters.js @@ -4,3 +4,7 @@ export const emitEvent = (event_type, el, data) => { parent_uid: el.$parent && el.$parent._uid, }) } + +export const emitFieldChange = (el, data = null) => { + el.$parent.$emit('field-change', data) +} diff --git a/js/mixins/text_input_mixin.js b/js/mixins/text_input_mixin.js index f859e362..54f8a7cf 100644 --- a/js/mixins/text_input_mixin.js +++ b/js/mixins/text_input_mixin.js @@ -1,6 +1,7 @@ import MaskedInput, { conformToMask } from 'vue-text-mask' import inputValidations from '../lib/input_validations' import { formatDollars } from '../lib/dollars' +import { emitFieldChange } from '../lib/emitters' export default { name: 'textinput', @@ -131,7 +132,7 @@ export default { } // Emit a change event - this.$parent.$emit('field-change', { + emitFieldChange(this, { value: this._rawValue(value), name: this.name, })