]> BookStack Code Mirror - bookstack/blobdiff - resources/js/components/entity-selector-popup.js
Fixed failing tests from dompdf chanages
[bookstack] / resources / js / components / entity-selector-popup.js
index 147f7b58353785e55995a1fef5af134a49cf5ff3..e7cb60b1f6c4c05c751033ebec4424b8de7fea1d 100644 (file)
@@ -1,37 +1,40 @@
-
+/**
+ * Entity Selector Popup
+ * @extends {Component}
+ */
 class EntitySelectorPopup {
 
-    constructor(elem) {
-        this.elem = elem;
+    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 = elem.querySelector('.entity-link-selector-confirm');
         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.overlay.show();
+        this.elem.components.popup.show();
+        this.getSelector().focusSearch();
     }
 
     hide() {
-        this.elem.components.overlay.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) {
@@ -42,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