mirror of
https://github.com/placeAtlas/atlas.git
synced 2024-09-26 20:18:58 +02:00
Fix and simplify filtering and sorting
This commit is contained in:
parent
c420d49025
commit
8ccdf0d660
1 changed files with 14 additions and 38 deletions
|
@ -334,9 +334,9 @@ function buildObjectsList(filter = null, sort = null) {
|
||||||
if (filter) {
|
if (filter) {
|
||||||
sortedAtlas = atlas.filter(entry => {
|
sortedAtlas = atlas.filter(entry => {
|
||||||
return (
|
return (
|
||||||
entry.name.toLowerCase().some(filter)
|
entry.name.toLowerCase().includes(filter.toLowerCase())
|
||||||
|| entry.description.toLowerCase().some(filter)
|
|| entry.description.toLowerCase().includes(filter.toLowerCase())
|
||||||
|| Object.values(entry.links).flat().toLowerCase().some(filter)
|
|| Object.values(entry.links).flat().some(str => str.toLowerCase().includes(filter))
|
||||||
|| entry.id === filter
|
|| entry.id === filter
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -368,54 +368,30 @@ function buildObjectsList(filter = null, sort = null) {
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case "alphaAsc":
|
case "alphaAsc":
|
||||||
sortFunction = function (a, b) {
|
sortFunction = (a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())
|
||||||
return a.name.toLowerCase().localeCompare(b.name.toLowerCase())
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
case "alphaDesc":
|
case "alphaDesc":
|
||||||
sortFunction = function (a, b) {
|
sortFunction = (a, b) => b.name.toLowerCase().localeCompare(a.name.toLowerCase())
|
||||||
return b.name.toLowerCase().localeCompare(a.name.toLowerCase())
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
case "newest":
|
case "newest":
|
||||||
sortFunction = function (a, b) {
|
sortFunction = (a, b) => b.id.length - a.id.length || b.id.localeCompare(a.id)
|
||||||
return b.id.length - a.id.length || b.id.localeCompare(a.id)
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
case "oldest":
|
case "oldest":
|
||||||
sortFunction = function (a, b) {
|
sortFunction = (a, b) => a.id.length - b.id.length || a.id.localeCompare(b.id)
|
||||||
return a.id.length - b.id.length || a.id.localeCompare(b.id)
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
case "area":
|
case "area":
|
||||||
sortFunction = function (a, b) {
|
sortFunction = (a, b) => calcPolygonArea(b.path) - calcPolygonArea(a.path)
|
||||||
return calcPolygonArea(b.path) - calcPolygonArea(a.path)
|
|
||||||
}
|
|
||||||
break
|
break
|
||||||
case "relevant":
|
case "relevant":
|
||||||
sortFunction = function (a, b) {
|
sortFunction = (a, b) => {
|
||||||
if (a.name.toLowerCase().indexOf(filter) !== -1 && b.name.toLowerCase().indexOf(filter) !== -1) {
|
if (a.name.toLowerCase().includes(filter) && b.name.toLowerCase().includes(filter)) {
|
||||||
if (a.name.toLowerCase().indexOf(filter) < b.name.toLowerCase().indexOf(filter)) {
|
return a.name.toLowerCase().indexOf(filter) - b.name.toLowerCase().indexOf(filter) || a.name.toLowerCase().localeCompare(b.name.toLowerCase())
|
||||||
|
} else if (a.name.toLowerCase().includes(filter)) {
|
||||||
return -1
|
return -1
|
||||||
}
|
} else if (b.name.toLowerCase().includes(filter)) {
|
||||||
else if (a.name.toLowerCase().indexOf(filter) > b.name.toLowerCase().indexOf(filter)) {
|
|
||||||
return 1
|
return 1
|
||||||
} else {
|
} else {
|
||||||
return a.name.toLowerCase().localeCompare(b.name.toLowerCase())
|
return a.description.toLowerCase().indexOf(filter) - b.description.toLowerCase().indexOf(filter) || a.name.toLowerCase().localeCompare(b.name.toLowerCase())
|
||||||
}
|
|
||||||
} else if (a.name.toLowerCase().indexOf(filter) !== -1) {
|
|
||||||
return -1
|
|
||||||
} else if (b.name.toLowerCase().indexOf(filter) !== -1) {
|
|
||||||
return 1
|
|
||||||
} else {
|
|
||||||
if (a.description.toLowerCase().indexOf(filter) < b.description.toLowerCase().indexOf(filter)) {
|
|
||||||
return -1
|
|
||||||
}
|
|
||||||
else if (a.description.toLowerCase().indexOf(filter) > b.description.toLowerCase().indexOf(filter)) {
|
|
||||||
return 1
|
|
||||||
} else {
|
|
||||||
return a.name.toLowerCase().localeCompare(b.name.toLowerCase())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
|
Loading…
Reference in a new issue