X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/baea92b2064fdac014f9fdcba47e7af4b068b08e..7f95b51b00d0d5fa1e7bcf5574f2d58bddcbd504:/resources/assets/js/components/entity-selector.js diff --git a/resources/assets/js/components/entity-selector.js b/resources/assets/js/components/entity-selector.js index 57b2499cc..461bf7321 100644 --- a/resources/assets/js/components/entity-selector.js +++ b/resources/assets/js/components/entity-selector.js @@ -7,7 +7,8 @@ class EntitySelector { this.lastClick = 0; let entityTypes = elem.hasAttribute('entity-types') ? elem.getAttribute('entity-types') : 'page,book,chapter'; - this.searchUrl = window.baseUrl(`/ajax/search/entities?types=${encodeURIComponent(entityTypes)}`); + let entityPermission = elem.hasAttribute('entity-permission') ? elem.getAttribute('entity-permission') : 'view'; + this.searchUrl = window.baseUrl(`/ajax/search/entities?types=${encodeURIComponent(entityTypes)}&permission=${encodeURIComponent(entityPermission)}`); this.input = elem.querySelector('[entity-selector-input]'); this.searchInput = elem.querySelector('[entity-selector-search]'); @@ -69,7 +70,7 @@ class EntitySelector { onClick(event) { let t = event.target; - if (t.matches('.entity-list a')) { + if (t.matches('.entity-list-item *')) { event.preventDefault(); event.stopPropagation(); let item = t.closest('[data-entity-type]'); @@ -84,12 +85,16 @@ class EntitySelector { let isDblClick = this.isDoubleClick(); let type = item.getAttribute('data-entity-type'); let id = item.getAttribute('data-entity-id'); - let isSelected = item.classList.contains('selected') || isDblClick; + let isSelected = !item.classList.contains('selected') || isDblClick; this.unselectAll(); this.input.value = isSelected ? `${type}:${id}` : ''; if (!isSelected) window.$events.emit('entity-select-change', null); + if (isSelected) { + item.classList.add('selected'); + item.classList.add('primary-background'); + } if (!isDblClick && !isSelected) return; let link = item.querySelector('.entity-list-item-link').getAttribute('href'); @@ -110,4 +115,4 @@ class EntitySelector { } -module.exports = EntitySelector; \ No newline at end of file +export default EntitySelector; \ No newline at end of file