216 lines
8.9 KiB
JavaScript
216 lines
8.9 KiB
JavaScript
function newGovernanceReportsReportsPage() {
|
|
let thisObject = {
|
|
render: render,
|
|
initialize: initialize,
|
|
finalize: finalize
|
|
}
|
|
|
|
let lastTabIndex
|
|
return thisObject
|
|
|
|
function initialize() {
|
|
|
|
}
|
|
|
|
function finalize() {
|
|
|
|
}
|
|
|
|
function render(tabIndex, filters) {
|
|
|
|
/* Setup tabIndex */
|
|
if (tabIndex === undefined) {
|
|
tabIndex = lastTabIndex
|
|
} else {
|
|
lastTabIndex = tabIndex
|
|
}
|
|
|
|
let resultsArary = []
|
|
let initialTime = new Date()
|
|
buildHTML()
|
|
|
|
function buildHTML() {
|
|
const tabs = [
|
|
'Profiles',
|
|
'Airdrop',
|
|
'Github',
|
|
'Referrals',
|
|
'Supporters',
|
|
'Mentors',
|
|
'Influencers',
|
|
'Claims',
|
|
'Votes',
|
|
'Staking',
|
|
'Liquidity',
|
|
'Delegation',
|
|
'Pools',
|
|
'Assets',
|
|
'Features',
|
|
'Positions',
|
|
'Mining'
|
|
]
|
|
let HTML = ''
|
|
HTML = HTML + '<section id="governance-report-page-div" class="governance-search-page-container">'
|
|
HTML = HTML + UI.projects.governance.spaces.reportsSpace.filtersHeader.addFilterHeader()
|
|
|
|
// Tabs
|
|
HTML = HTML + '<div class="governance-report-page-header-tabs-container">'
|
|
let checked = ' checked=""'
|
|
for (let i = 0; i < tabs.length; i++) {
|
|
let tab = tabs[i]
|
|
HTML = HTML + '<input id="governance-tab' + (i + 1) + '" type="radio" name="tabs"' + checked + '><label for="governance-tab' + (i + 1) + '">' + tab + '</label>'
|
|
checked = ''
|
|
}
|
|
|
|
// Results
|
|
HTML = HTML + '<div class="governance-search-result-content">'
|
|
|
|
let totalResults = new Map()
|
|
for (let i = 0; i < tabs.length; i++) {
|
|
let tab = tabs[i]
|
|
HTML = HTML + '<div id="content' + (i + 1) + '">'
|
|
HTML = HTML + '<p> ' + tab.toUpperCase() + '_TOTAL_RESULTS results (' + tab.toUpperCase() + '_TOTAL_SECONDS seconds)</p>'
|
|
|
|
let resultCounter = 0
|
|
|
|
switch (tab) {
|
|
case 'Profiles': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.userProfiles.addHTML(1, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Airdrop': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.airdrop.addHTML(2, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Github': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.github.addHTML(3, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Referrals': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.referrals.addHTML(4, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Supporters': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.supports.addHTML(5, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Mentors': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.mentors.addHTML(6, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Influencers': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.influencers.addHTML(7, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Claims': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.claims.addHTML(8, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Votes': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.votes.addHTML(9, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Staking': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.staking.addHTML(10, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Liquidity': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.liquidity.addHTML(11, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Delegation': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.delegation.addHTML(12, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Pools': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.pools.addHTML(13, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Assets': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.assets.addHTML(14, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Features': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.features.addHTML(15, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Positions': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.positions.addHTML(16, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
case 'Mining': {
|
|
let response = UI.projects.governance.spaces.reportsSpace.mining.addHTML(17, filters)
|
|
HTML = HTML + response.HTML
|
|
resultCounter = response.resultCounter
|
|
break
|
|
}
|
|
}
|
|
|
|
HTML = HTML + '</div>'
|
|
totalResults.set(tab, resultCounter)
|
|
}
|
|
|
|
// End Content
|
|
HTML = HTML + '</div>'
|
|
HTML = HTML + '</div>'
|
|
|
|
// End Section
|
|
HTML = HTML + '</section>'
|
|
|
|
// Total Seconds Calculation
|
|
let finalTime = new Date()
|
|
let totalSeconds = ((finalTime.valueOf() - initialTime.valueOf()) / 1000).toFixed(3)
|
|
for (let i = 0; i < tabs.length; i++) {
|
|
let tab = tabs[i]
|
|
HTML = HTML.replace(tab.toUpperCase() + '_TOTAL_SECONDS', totalSeconds)
|
|
let resultCounter = totalResults.get(tab)
|
|
HTML = HTML.replace(tab.toUpperCase() + '_TOTAL_RESULTS', resultCounter)
|
|
}
|
|
|
|
let docsContentDiv = document.getElementById('governance-content-div')
|
|
|
|
docsContentDiv.innerHTML = HTML + UI.projects.governance.spaces.reportsSpace.footer.addFooter()
|
|
|
|
UI.projects.governance.spaces.reportsSpace.filtersHeader.detectEnterOnFiltersBox()
|
|
UI.projects.governance.spaces.reportsSpace.filtersHeader.setFocusOnFiltersBox()
|
|
|
|
// If there is a tabIndex we will switch to that tab here.
|
|
if (tabIndex !== undefined) {
|
|
let tab = document.getElementById('governance-tab' + tabIndex)
|
|
tab.checked = true
|
|
}
|
|
}
|
|
}
|
|
} |