diff --git a/js/components/options_input.js b/js/components/options_input.js index 2970b135..03e868d0 100644 --- a/js/components/options_input.js +++ b/js/components/options_input.js @@ -17,6 +17,14 @@ export default { type: Boolean, default: false, }, + optional: Boolean, + }, + + created: function() { + emitEvent('field-mount', this, { + optional: this.optional, + name: this.name, + }) }, data: function() { @@ -31,13 +39,15 @@ export default { methods: { onInput: function(e) { + this.showError = false + this.showValid = true + emitEvent('field-change', this, { value: e.target.value, name: this.name, watch: this.watch, + valid: this.showValid, }) - this.showError = false - this.showValid = true }, }, } diff --git a/js/mixins/form.js b/js/mixins/form.js index 1d9c8fb0..d276213f 100644 --- a/js/mixins/form.js +++ b/js/mixins/form.js @@ -15,7 +15,6 @@ export default { handleFieldChange: function(event) { const { value, name, valid, parent_uid, watch } = event if (typeof this.fields[name] !== undefined) { - this[name] = value this.fields[name] = valid if (parent_uid === this._uid || watch) { this.changed = true diff --git a/templates/components/options_input.html b/templates/components/options_input.html index 81a1e50c..8180c5c4 100644 --- a/templates/components/options_input.html +++ b/templates/components/options_input.html @@ -1,7 +1,7 @@ {% from "components/icon.html" import Icon %} {% from "components/tooltip.html" import Tooltip %} -{% macro OptionsInput(field, tooltip, inline=False, label=True, disabled=False, watch=False) -%} +{% macro OptionsInput(field, tooltip, inline=False, label=True, disabled=False, watch=False, optional=True) -%}
diff --git a/templates/portfolios/new.html b/templates/portfolios/new.html index b68f3c96..d5cc70bc 100644 --- a/templates/portfolios/new.html +++ b/templates/portfolios/new.html @@ -14,7 +14,7 @@ {{ form.csrf_token }} {{ TextInput(form.name) }} - {{ OptionsInput(form.defense_component) }} + {{ OptionsInput(form.defense_component, optional=False) }} {{ TextInput(form.description, paragraph=True) }}

{{ "task_orders.new.app_info.project_title" | translate }}