]> BookStack Code Mirror - bookstack/blobdiff - resources/js/components/entity-selector-popup.js
New translations entities.php (Spanish)
[bookstack] / resources / js / components / entity-selector-popup.js
index 0104eace7065373983792a525c501746616bc2c9..e7cb60b1f6c4c05c751033ebec4424b8de7fea1d 100644 (file)
@@ -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