in index.js [119:156]
function init () {
var req = new window.XMLHttpRequest()
req.addEventListener('load', function (e) {
proposals = JSON.parse(req.responseText)
// don't display malformed proposals
proposals = proposals.filter(function (proposal) {
return !proposal.errors
})
// descending numeric sort based the numeric nnnn in a proposal ID's SE-nnnn
proposals.sort(function compareProposalIDs (p1, p2) {
return parseInt(p1.id.match(/\d\d\d\d/)[0]) - parseInt(p2.id.match(/\d\d\d\d/)[0])
})
proposals = proposals.reverse()
render()
addEventListeners()
// apply filters when the page loads with a search already filled out.
// typically this happens after navigating backwards in a tab's history.
if (document.querySelector('#search-filter').value.trim()) {
filterProposals()
}
// apply selections from the current page's URI fragment
_applyFragment(document.location.hash)
})
req.addEventListener('error', function (e) {
document.querySelector('#proposals-count-number').innerText = 'Proposal data failed to load.'
})
document.querySelector('#proposals-count-number').innerHTML = 'Loading ...'
req.open('get', 'https://data.swift.org/swift-evolution/proposals')
req.send()
}