UI update
Added advanced search feature with option to select category
This commit is contained in:
parent
a566a8f8c0
commit
96391c4bb5
44
index.html
44
index.html
@ -88,7 +88,7 @@
|
|||||||
<section id="advance_search_panel" class="hide-completely">
|
<section id="advance_search_panel" class="hide-completely">
|
||||||
<div class="grid justify-start gap-0-5">
|
<div class="grid justify-start gap-0-5">
|
||||||
<h5>Category</h5>
|
<h5>Category</h5>
|
||||||
<sm-select id="">
|
<sm-select id="category_selector">
|
||||||
<sm-option value="movie">Movie</sm-option>
|
<sm-option value="movie">Movie</sm-option>
|
||||||
<sm-option value="tv series">TV series</sm-option>
|
<sm-option value="tv series">TV series</sm-option>
|
||||||
<sm-option value="video">Video</sm-option>
|
<sm-option value="video">Video</sm-option>
|
||||||
@ -897,18 +897,39 @@
|
|||||||
return [page, query]
|
return [page, query]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let advancedSearch = {
|
||||||
|
active: false,
|
||||||
|
category: ''
|
||||||
|
}
|
||||||
|
|
||||||
async function renderSearchResult(searchKey){
|
async function renderSearchResult(searchKey){
|
||||||
const query = getParts(window.location.path)[1]
|
const query = getParts(window.location.path)[1]
|
||||||
console.log(query, searchKey)
|
|
||||||
if(query !== searchKey){
|
if(query !== searchKey){
|
||||||
getRef('result_for').innerHTML = `Showing results for <b>${searchKey}</b>`
|
|
||||||
const torrents = await getDataFromIDB()
|
const torrents = await getDataFromIDB()
|
||||||
const options = {
|
const options = {
|
||||||
keys: ['name', 'filename'],
|
keys: ['name', 'filename'],
|
||||||
threshold: 0.3
|
threshold: 0.3,
|
||||||
|
useExtendedSearch: advancedSearch.isActive,
|
||||||
|
}
|
||||||
|
let result
|
||||||
|
if(advancedSearch.isActive){
|
||||||
|
options.keys = ['type']
|
||||||
|
let fuseSearch = new Fuse(torrents, options)
|
||||||
|
result = fuseSearch.search(`'${advancedSearch.category}`).map(elem => elem.item)
|
||||||
|
options.keys = ['name', 'filename']
|
||||||
|
fuseSearch = new Fuse(result, options)
|
||||||
|
result = fuseSearch.search(searchKey).map(elem => elem.item)
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
const fuseSearch = new Fuse(torrents, options)
|
||||||
|
result = fuseSearch.search(searchKey).map(elem => elem.item)
|
||||||
|
}
|
||||||
|
if(result.length){
|
||||||
|
getRef('result_for').innerHTML = `Showing results for <strong>${searchKey}</strong>`
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
getRef('result_for').innerHTML = `No results for <strong>${searchKey}</strong>`
|
||||||
}
|
}
|
||||||
const fuseSearch = new Fuse(torrents, options)
|
|
||||||
const result = fuseSearch.search(searchKey).map(elem => elem.item)
|
|
||||||
getRef('search_result').innerHTML = ``
|
getRef('search_result').innerHTML = ``
|
||||||
getRef('search_result').append(renderTorrents(result))
|
getRef('search_result').append(renderTorrents(result))
|
||||||
history.pushState(null, null, `#search?${searchKey}`)
|
history.pushState(null, null, `#search?${searchKey}`)
|
||||||
@ -936,12 +957,23 @@
|
|||||||
})
|
})
|
||||||
getRef('advance_search_switch').addEventListener('change', e => {
|
getRef('advance_search_switch').addEventListener('change', e => {
|
||||||
if(e.detail.value){
|
if(e.detail.value){
|
||||||
|
advancedSearch = {
|
||||||
|
isActive: true,
|
||||||
|
category: getRef('category_selector').value
|
||||||
|
}
|
||||||
getRef('advance_search_panel').classList.remove('hide-completely')
|
getRef('advance_search_panel').classList.remove('hide-completely')
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
advancedSearch = {
|
||||||
|
isActive: false,
|
||||||
|
category: ''
|
||||||
|
}
|
||||||
getRef('advance_search_panel').classList.add('hide-completely')
|
getRef('advance_search_panel').classList.add('hide-completely')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
getRef('category_selector').addEventListener('change', e => {
|
||||||
|
advancedSearch.category = e.detail.value
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user