]> BookStack Code Mirror - bookstack/blobdiff - resources/js/components/page-picker.js
Opensearch: Fixed XML declaration when php short tags enabled
[bookstack] / resources / js / components / page-picker.js
index 83bf60a1776dbed07f93a388619ee727707c06d2..5ab51159570350f00a31abdf5fb581923a1a42cd 100644 (file)
@@ -1,5 +1,9 @@
 import {Component} from './component';
 
+function toggleElem(elem, show) {
+    elem.toggleAttribute('hidden', !show);
+}
+
 export class PagePicker extends Component {
 
     setup() {
@@ -10,6 +14,8 @@ export class PagePicker extends Component {
         this.defaultDisplay = this.$refs.defaultDisplay;
         this.buttonSep = this.$refs.buttonSeperator;
 
+        this.selectorEndpoint = this.$opts.selectorEndpoint;
+
         this.value = this.input.value;
         this.setupListeners();
     }
@@ -17,8 +23,9 @@ export class PagePicker extends Component {
     setupListeners() {
         this.selectButton.addEventListener('click', this.showPopup.bind(this));
         this.display.parentElement.addEventListener('click', this.showPopup.bind(this));
+        this.display.addEventListener('click', e => e.stopPropagation());
 
-        this.resetButton.addEventListener('click', event => {
+        this.resetButton.addEventListener('click', () => {
             this.setValue('', '');
         });
     }
@@ -28,6 +35,11 @@ export class PagePicker extends Component {
         const selectorPopup = window.$components.first('entity-selector-popup');
         selectorPopup.show(entity => {
             this.setValue(entity.id, entity.name);
+        }, {
+            initialValue: '',
+            searchEndpoint: this.selectorEndpoint,
+            entityTypes: 'page',
+            entityPermission: 'view',
         });
     }
 
@@ -55,7 +67,3 @@ export class PagePicker extends Component {
     }
 
 }
-
-function toggleElem(elem, show) {
-    elem.style.display = show ? null : 'none';
-}