in index.js [223:289]
function renderNav () {
var nav = document.querySelector('nav')
// This list intentionally omits .acceptedWithRevisions and .error;
// .acceptedWithRevisions proposals are combined in the filtering UI
// with .accepted proposals.
var checkboxes = [
'.awaitingReview', '.scheduledForReview', '.activeReview', '.accepted',
'.previewing', '.implemented', '.returnedForRevision', '.deferred', '.rejected', '.withdrawn'
].map(function (state) {
var className = states[state].className
return html('li', null, [
html('input', { type: 'checkbox', className: 'filtered-by-status', id: 'filter-by-' + className, value: className }),
html('label', { className: className, tabindex: '0', role: 'button', 'for': 'filter-by-' + className, 'data-state-key': state }, [
addNumberToState(states[state].name, states[state].count)
])
])
})
var expandableArea = html('div', { className: 'filter-options expandable' }, [
html('h5', { id: 'filter-options-label' }, 'Status'),
html('ul', { id: 'filter-options', className: 'filter-by-status' })
])
nav.querySelector('.nav-contents').appendChild(expandableArea)
checkboxes.forEach(function (box) {
nav.querySelector('.filter-by-status').appendChild(box)
})
// The 'Implemented' filter selection gets an extra row of options if selected.
var implementedCheckboxIfPresent = checkboxes.filter(function (cb) {
return cb.querySelector(`#filter-by-${states['.implemented'].className}`)
})[0]
if (implementedCheckboxIfPresent) {
// add an extra row of options to filter by language version
var versionRowHeader = html('h5', { id: 'version-options-label', className: 'hidden' }, 'Language Version')
var versionRow = html('ul', { id: 'version-options', className: 'filter-by-status hidden' })
var versionOptions = languageVersions.map(function (version) {
return html('li', null, [
html('input', {
type: 'checkbox',
id: 'filter-by-swift-' + _idSafeName(version),
className: 'filter-by-swift-version',
value: 'swift-' + _idSafeName(version)
}),
html('label', {
tabindex: '0',
role: 'button',
'for': 'filter-by-swift-' + _idSafeName(version)
}, 'Swift ' + version)
])
})
versionOptions.forEach(function (version) {
versionRow.appendChild(version)
})
expandableArea.appendChild(versionRowHeader)
expandableArea.appendChild(versionRow)
}
return nav
}