in index.js [292:358]
function renderBody () {
var article = document.querySelector('article')
var proposalAttachPoint = article.querySelector('.proposals-list')
var proposalPresentationOrder = [
'.awaitingReview', '.scheduledForReview', '.activeReview', '.accepted', '.acceptedWithRevisions',
'.previewing', '.implemented', '.returnedForRevision', '.deferred', '.rejected', '.withdrawn'
]
proposalPresentationOrder.map(function (state) {
var matchingProposals = proposals.filter(function (p) { return p.status && p.status.state === state })
matchingProposals.map(function (proposal) {
var proposalBody = html('section', { id: proposal.id, className: 'proposal ' + proposal.id }, [
html('div', { className: 'status-pill-container' }, [
html('span', { className: 'status-pill color-' + states[state].className }, [
states[proposal.status.state].shortName
])
]),
html('div', { className: 'proposal-content' }, [
html('div', { className: 'proposal-header' }, [
html('span', { className: 'proposal-id' }, [
proposal.id
]),
html('h4', { className: 'proposal-title' }, [
html('a', {
href: REPO_PROPOSALS_BASE_URL + '/' + proposal.link,
target: '_blank'
}, [
proposal.title
])
])
])
])
])
var detailNodes = []
detailNodes.push(renderAuthors(proposal.authors))
if (proposal.reviewManager.name) detailNodes.push(renderReviewManager(proposal.reviewManager))
if (proposal.trackingBugs) detailNodes.push(renderTrackingBugs(proposal.trackingBugs))
if (state === '.implemented') detailNodes.push(renderVersion(proposal.status.version))
if (state === '.previewing') detailNodes.push(renderPreview())
if (proposal.implementation) detailNodes.push(renderImplementation(proposal.implementation))
if (state === '.acceptedWithRevisions') detailNodes.push(renderStatus(proposal.status))
if (state === '.activeReview' || state === '.scheduledForReview') {
detailNodes.push(renderStatus(proposal.status))
detailNodes.push(renderReviewPeriod(proposal.status))
}
if (state === '.returnedForRevision') {
detailNodes.push(renderStatus(proposal.status))
}
var details = html('div', { className: 'proposal-details' }, detailNodes)
proposalBody.querySelector('.proposal-content').appendChild(details)
proposalAttachPoint.appendChild(proposalBody)
})
})
// Update the "(n) proposals" text
updateProposalsCount(article.querySelectorAll('.proposal').length)
return article
}