Skip to content

Commit

Permalink
fix selection menu search reset when an item is selected
Browse files Browse the repository at this point in the history
Close #20
  • Loading branch information
shuart committed May 19, 2019
1 parent 697b03b commit 59da694
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 19 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ephemeris",
"version": "1.5.0",
"version": "1.5.1",
"description": "System Engineering and requirements management application",
"main": "index.js",
"scripts": {
Expand Down
71 changes: 54 additions & 17 deletions src/js/components/comp.list.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ function showListMenu({
closeButtonValue = "Close",
cancelButtonValue = "Cancel",
extraActions = undefined,
extraButtons = []
extraButtons = [],
currentSearchValue =""
}={}) {

//utility to parse html
Expand Down Expand Up @@ -353,22 +354,24 @@ function showListMenu({
addSearch.addEventListener('keyup', function(e){
//e.stopPropagation()
var value = sourceEl.querySelector(".list-search-input").value
var filteredData = sourceData.filter((item) => {
for (rule of display) {
//TODO allow array search
if (fuzzysearch (value, item[rule.prop]) && item[rule.prop] && !Array.isArray(item[rule.prop])) {
return true
}else if (item[rule.prop] && !Array.isArray(item[rule.prop]) && fuzzysearch (value, item[rule.prop].toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, "")) ) {
return true
}
}
return false
})
var filteredIds = filteredData.map(x => x.uuid);
var searchedItems = sourceEl.querySelectorAll(".searchable")
for (item of searchedItems) {
if (filteredIds.includes(item.dataset.id) || !value) {item.style.display = "flex"}else{item.style.display = "none"}
}
currentSearchValue = value
filterDataWithValue(value)
// var filteredData = sourceData.filter((item) => {
// for (rule of display) {
// //TODO allow array search
// if (fuzzysearch (value, item[rule.prop]) && item[rule.prop] && !Array.isArray(item[rule.prop])) {
// return true
// }else if (item[rule.prop] && !Array.isArray(item[rule.prop]) && fuzzysearch (value, item[rule.prop].toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, "")) ) {
// return true
// }
// }
// return false
// })
// var filteredIds = filteredData.map(x => x.uuid);
// var searchedItems = sourceEl.querySelectorAll(".searchable")
// for (item of searchedItems) {
// if (filteredIds.includes(item.dataset.id) || !value) {item.style.display = "flex"}else{item.style.display = "none"}
// }
});
}
//close button
Expand Down Expand Up @@ -723,6 +726,29 @@ function showListMenu({
listInput.focus()
}
}
//searchItems if current search value
if (currentSearchValue != "") {
filterDataWithValue(currentSearchValue)
}
}

function filterDataWithValue(value) {
var filteredData = sourceData.filter((item) => {
for (rule of display) {
//TODO allow array search
if (fuzzysearch (value, item[rule.prop]) && item[rule.prop] && !Array.isArray(item[rule.prop])) {
return true
}else if (item[rule.prop] && !Array.isArray(item[rule.prop]) && fuzzysearch (value, item[rule.prop].toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, "")) ) {
return true
}
}
return false
})
var filteredIds = filteredData.map(x => x.uuid);
var searchedItems = sourceEl.querySelectorAll(".searchable")
for (item of searchedItems) {
if (filteredIds.includes(item.dataset.id) || !value) {item.style.display = "flex"}else{item.style.display = "none"}
}
}

//PUBLIC FUNC
Expand All @@ -749,6 +775,17 @@ function showListMenu({
}
function refreshList() {
listContainer.innerHTML = theme.listWrapper(buildSingle(sourceData, sourceLinks))
//focus on search
if (focusSearchOnRender) {
let listInput = sourceEl.querySelector(".list-search-input")
if (listInput) {
listInput.focus()
}
}
//searchItems if current search value
if (currentSearchValue != "") {
filterDataWithValue(currentSearchValue)
}
}
function update() {
if (sourceEl) {
Expand Down
2 changes: 1 addition & 1 deletion src/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Ephemeris",
"version": "1.5.0",
"version": "1.5.1",
"description": "System Engineering and requirements management application",
"main": "index.html",
"window": {
Expand Down

0 comments on commit 59da694

Please sign in to comment.