Changeset c32f47b in tailbone


Ignore:
Timestamp:
08/02/2020 07:13:40 PM (3 years ago)
Author:
Lance Edgar <lance@…>
Branches:
master
Children:
808e737
Parents:
4937855
Message:

Tweak the buefy autocomplete component a bit

to better support staying in sync w/ data on the caller/parent side

Location:
tailbone
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tailbone/static/js/tailbone.buefy.autocomplete.js

    r4937855 rc32f47b  
    2323            selected: selected,
    2424            isFetching: false,
    25             autocompleteValue: this.value,
    2625        }
     26    },
     27
     28    watch: {
     29        value(to, from) {
     30            if (from && !to) {
     31                this.clearSelection(false)
     32            }
     33        },
    2734    },
    2835
    2936    methods: {
    3037
    31         clearSelection() {
     38        clearSelection(focus) {
     39            if (focus === undefined) {
     40                focus = true
     41            }
    3242            this.selected = null
    33             this.autocompleteValue = null
    34             this.$nextTick(function() {
    35                 this.$refs.autocomplete.focus()
    36             })
     43            this.value = null
     44            if (focus) {
     45                this.$nextTick(function() {
     46                    this.$refs.autocomplete.focus()
     47                })
     48            }
    3749
    3850            // TODO: should emit event for caller logic (can they cancel?)
    3951            // $('#' + oid + '-textbox').trigger('autocompletevaluecleared');
     52        },
     53
     54        getDisplayText() {
     55            if (this.selected) {
     56                return this.selected.label
     57            }
     58            return ""
    4059        },
    4160
     
    6382
    6483        itemSelected(value) {
    65             this.$emit('input', value)
     84            if (this.selected || !value) {
     85                this.$emit('input', value)
     86            }
    6687        },
    6788
  • tailbone/templates/autocomplete.mako

    r4937855 rc32f47b  
    6666                      :name="name"
    6767                      v-show="!selected"
    68                       v-model="autocompleteValue"
     68                      v-model="value"
    6969                      :data="data"
    7070                      @typing="getAsyncData"
Note: See TracChangeset for help on using the changeset viewer.