X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a6633642232efd164d4708967ab59e498fbff896..refs/pull/3579/head:/resources/js/components/entity-selector-popup.js diff --git a/resources/js/components/entity-selector-popup.js b/resources/js/components/entity-selector-popup.js index 0104eace7..e7cb60b1f 100644 --- a/resources/js/components/entity-selector-popup.js +++ b/resources/js/components/entity-selector-popup.js @@ -7,33 +7,34 @@ class EntitySelectorPopup { setup() { this.elem = this.$el; this.selectButton = this.$refs.select; + window.EntitySelectorPopup = this; + this.selectorEl = this.$refs.selector; this.callback = null; this.selection = null; this.selectButton.addEventListener('click', this.onSelectButtonClick.bind(this)); window.$events.listen('entity-select-change', this.onSelectionChange.bind(this)); - window.$events.listen('entity-select-confirm', this.onSelectionConfirm.bind(this)); + window.$events.listen('entity-select-confirm', this.handleConfirmedSelection.bind(this)); } show(callback) { this.callback = callback; this.elem.components.popup.show(); + this.getSelector().focusSearch(); } hide() { this.elem.components.popup.hide(); } - onSelectButtonClick() { - this.hide(); - if (this.selection !== null && this.callback) this.callback(this.selection); + getSelector() { + return this.selectorEl.components['entity-selector']; } - onSelectionConfirm(entity) { - this.hide(); - if (this.callback && entity) this.callback(entity); + onSelectButtonClick() { + this.handleConfirmedSelection(this.selection); } onSelectionChange(entity) { @@ -44,6 +45,12 @@ class EntitySelectorPopup { this.selectButton.removeAttribute('disabled'); } } + + handleConfirmedSelection(entity) { + this.hide(); + this.getSelector().reset(); + if (this.callback && entity) this.callback(entity); + } } export default EntitySelectorPopup; \ No newline at end of file