34 lines
1009 B
JavaScript
34 lines
1009 B
JavaScript
|
const compareResults = currentUser => (a, b) => {
|
||
|
return ['/projects/', currentUser]
|
||
|
.some(href => a.children[0].href.includes(href)) ? -1 : 1
|
||
|
}
|
||
|
|
||
|
const sortChildren = ol => {
|
||
|
const children = Array.from(ol.children)
|
||
|
children.forEach(child => ol.removeChild(child))
|
||
|
children
|
||
|
.sort(compareResults(getCurrentUser()))
|
||
|
.forEach(child => ol.appendChild(child))
|
||
|
}
|
||
|
|
||
|
/// Re-order the search results to list projects and the current user first
|
||
|
let claim = 0
|
||
|
const sortSearchResult = () => {
|
||
|
const searchBox = Array.from(document.getElementsByTagName('input'))
|
||
|
.filter(input => input.name === 'repository-search')[0]
|
||
|
searchBox.onkeyup = e => {
|
||
|
claim++
|
||
|
const myClaim = claim
|
||
|
setTimeout(() => {
|
||
|
if (claim != myClaim) {
|
||
|
return
|
||
|
}
|
||
|
const ol = getClassNameElementsArray('search-results')[0]?.firstChild
|
||
|
sortChildren(ol)
|
||
|
claim = 0
|
||
|
}, 1000)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
addFix(sortSearchResult)
|