Changes for page Context Search
Last modified by bougault on 2023/02/20 16:29
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,66 +1,17 @@ 1 1 {{html clean="false"}} 2 -<script type="module"> 3 - import {LitElement, html} from 'https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js'; 4 - class UnifiedSearch extends LitElement { 5 - static properties = { 6 - searchText: { type: String }, 7 - favoritesFilter: { type: Boolean }, 8 - administratorFilter: { type: Boolean }, 9 - editorFilter: { type: Boolean }, 10 - viewerFilter: { type: Boolean }, 11 - publicFilter: { type: Boolean }, 12 - privateFilter: { type: Boolean }, 13 - } 14 - constructor() { 15 - super(); 16 - this.searchText = ""; 17 - this.favoritesFilter = false; 18 - this.administratorFilter = false; 19 - this.editorFilter = false; 20 - this.viewerFilter = false; 21 - this.publicFilter = false; 22 - this.privateFilter = false; 23 - } 24 - setSearchText(e) { 25 - this.searchText = e.target.value; 26 - } 27 - handleSearch() { 28 - console.log(this.searchText); 29 - } 30 - render() { 31 - return html` 32 -<div> 33 - <div> 34 - <input @change="${this.setSearchText}" type="text" placeholder="Search..." /> 35 - <button @click="${this.handleSearch}">Search</button> 36 - </div> 37 - <label><input type="checkbox" @change="${(e) => { this.administratorFilter = e.target.checked }}" .checked="${this.administratorFilter}"/> Administrator</label> 38 -</div> 39 -` 40 - } 41 - } 42 - customElements.define('clb-unified-search', UnifiedSearch); 43 -</script> 44 44 45 -<clb-unified-search></clb-unified-search> 46 - 47 47 <select id="context-search-type"> 48 48 <option value="all">All</option> 49 49 <option value="collabs">Collabs</option> 50 50 <option value="current-collab">Current Collab</option> 51 51 </select> 8 +<div> 9 +<label> 10 + <input type="checkbox" data-role-filter="administrator"> Administrator 11 +</label> 52 52 <input type="text" id="context-search-text" /> 53 53 <button id="context-search-button" class="btn btn-primary">Search</button> 54 -<div class="form-group"> 55 - <label> 56 - <input type="checkbox" data-role-filter="administrator"> Administrator 57 - </label> 58 - <label> 59 - <input type="checkbox" data-role-filter="editor"> Editor 60 - </label> 61 -</div> 62 62 63 - 64 64 <pre id="context-search-response"></pre> 65 65 <script> 66 66 window.addEventListener('DOMContentLoaded', function() { ... ... @@ -80,12 +80,13 @@ 80 80 } 81 81 82 82 function removeRole(role) { 83 - filters.roles = filters.roles.filter(r => r !== role)34 + filters.roles.filter(r => r !== 'administrator') 84 84 } 85 85 86 86 const filterInputs = document.querySelectorAll('input[data-role-filter]'); 87 - 38 + console.log(filterInputs); 88 88 filterInputs.forEach(function(filterIpt) { 40 + console.log(filterIpt); 89 89 filterIpt.addEventListener('click', function() { 90 90 const role = this.getAttribute('data-role-filter'); 91 91 if(this.checked) { ... ... @@ -93,19 +93,10 @@ 93 93 } else { 94 94 removeRole(role); 95 95 } 96 - runFilteredRequest();48 + console.log(filters); 97 97 }) 98 98 }); 99 99 100 - function runFilteredRequest() { 101 - const urlParams = new URLSearchParams(); 102 - const tmpFilters = filters; 103 - tmpFilters.roles = tmpFilters.roles.join("+"); 104 - for(filter in tmpFilters) { 105 - urlParams.set(filter, tmpFilters[filter]); 106 - } 107 - console.log(urlParams); 108 - } 109 109 // https://wiki-dev.ebrains.eu/rest/v1/collabs?search=&offset=0&orderField=title&order=asc&favorite=false&roles=administrator 110 110 const contextSearchType = document.getElementById("context-search-type"); 111 111 const contextSearchText = document.getElementById("context-search-text"); ... ... @@ -122,7 +122,7 @@ 122 122 handleXWikiSearch('bougaultx'); 123 123 break 124 124 default: 125 - handleXWikiSearch('') 68 + handleXWikiSearch('', applyAdministratorFilter) 126 126 } 127 127 128 128 });