196 lines
6.5 KiB
JavaScript
196 lines
6.5 KiB
JavaScript
function newCurrentEvent () {
|
|
let thisObject = {
|
|
container: undefined,
|
|
draw: draw,
|
|
getContainer: getContainer,
|
|
initialize: initialize
|
|
}
|
|
|
|
function buildEcosystemEventsHack (reload) {
|
|
let hackedEcosystem = [{
|
|
'codeName': 'AAArena',
|
|
'displayName': 'AA Arena',
|
|
'competitions': [{
|
|
'codeName': 'Weekend-Deathmatch',
|
|
'description': 'First AA Internal Competition. Bots will be trading during 3 days at the USDT/BTC market of Poloniex to see who can make the gratest return over investment (ROI).',
|
|
'displayName': 'AA Internal Challenge',
|
|
'startDatetime': '2019-03-05T16:00:00.000Z',
|
|
'finishDatetime': '2019-02-07T16:59:59.999Z',
|
|
'formula': 'ROI',
|
|
'plotter': {
|
|
'codeName': 'PlottersROI',
|
|
'host': 'AAArena',
|
|
'repo': 'Plotters-ROI',
|
|
'moduleName': 'CombinedProfits'
|
|
},
|
|
'participants': [
|
|
],
|
|
'repo': 'Weekend-Deathmatch',
|
|
'configFile': 'this.competition.config.json'
|
|
}],
|
|
'plotters': [{
|
|
'displayName': 'Plotters ROI',
|
|
'codeName': 'PlottersROI',
|
|
'devTeam': 'AAMasters',
|
|
'modules': [{
|
|
'codeName': 'CombinedProfits',
|
|
'moduleName': 'CombinedProfits',
|
|
'description': 'Plots participants of a competition by the ROI each one had over time.',
|
|
'panels': []
|
|
}],
|
|
'repo': 'Plotters-ROI',
|
|
'configFile': 'this.plotter.config.json'
|
|
}]
|
|
}]
|
|
|
|
let ecosysTemp = window.localStorage.getItem('currentEventObject')
|
|
if (!(ecosysTemp === null || ecosysTemp === '[]' || ecosysTemp === '')) {
|
|
let parsedEcosysTemp = JSON.parse(ecosysTemp)
|
|
hackedEcosystem[0].competitions[0].startDatetime = new Date(parsedEcosysTemp.startDatetime * 1000).toISOString()
|
|
hackedEcosystem[0].competitions[0].finishDatetime = new Date(parsedEcosysTemp.endDatetime * 1000).toISOString()
|
|
parsedEcosysTemp.participants.forEach(function (participant) {
|
|
hackedEcosystem[0].competitions[0].participants.push({
|
|
devTeam: participant.clone.team.slug,
|
|
bot: participant.clone.bot.slug,
|
|
cloneId: participant.clone.id,
|
|
release: '1.0.0'
|
|
})
|
|
})
|
|
}
|
|
|
|
window.localStorage.setItem('ecosystemEventsHack', JSON.stringify(hackedEcosystem))
|
|
ecosystem.setEvent(hackedEcosystem)
|
|
if (reload) {
|
|
dashboard.start()
|
|
}
|
|
}
|
|
|
|
let container = newContainer()
|
|
container.initialize()
|
|
thisObject.container = container
|
|
|
|
thisObject.container.frame.width = 150
|
|
thisObject.container.frame.height = BOTTOM_SPACE_HEIGHT
|
|
|
|
resize()
|
|
|
|
container.isDraggeable = false
|
|
container.isClickeable = true
|
|
|
|
const NOT_FOUND = 'Event NOT FOUND'
|
|
|
|
let sharedStatus
|
|
let storedEvents
|
|
let label = 'Event -'
|
|
|
|
return thisObject
|
|
|
|
function initialize (pSharedStatus) {
|
|
let sessionToken = window.localStorage.getItem('sessionToken')
|
|
|
|
if (sessionToken === null || sessionToken === '') {
|
|
/* not logged in */
|
|
return
|
|
}
|
|
|
|
sharedStatus = pSharedStatus
|
|
|
|
storedEvents = window.localStorage.getItem('currentEvents')
|
|
if (storedEvents === null || storedEvents === '[]' || storedEvents === '') {
|
|
window.EVENTS = ''
|
|
window.CURRENT_EVENT_TITLE = ''
|
|
label = NOT_FOUND
|
|
} else if (sharedStatus.currentEventIndex === -1) {
|
|
storedEvents = JSON.parse(storedEvents)
|
|
window.EVENTS = storedEvents
|
|
window.CURRENT_EVENT_TITLE = ''
|
|
label = 'Select an event'
|
|
} else {
|
|
storedEvents = JSON.parse(storedEvents)
|
|
window.EVENTS = storedEvents
|
|
window.CURRENT_EVENT_TITLE = storedEvents[sharedStatus.currentEventIndex].title
|
|
label = 'Event - ' + storedEvents[sharedStatus.currentEventIndex].title
|
|
window.localStorage.setItem('currentEventObject', JSON.stringify(storedEvents[sharedStatus.currentEventIndex]))
|
|
buildEcosystemEventsHack(false)
|
|
sharedStatus.eventHandler.raiseEvent('Event Changed')
|
|
}
|
|
|
|
thisObject.container.eventHandler.listenToEvent('onMouseClick', onClick)
|
|
|
|
window.canvasApp.eventHandler.listenToEvent('Browser Resized', resize)
|
|
}
|
|
|
|
function resize () {
|
|
container.frame.position.x = viewPort.visibleArea.topLeft.x + thisObject.container.frame.width * 2
|
|
container.frame.position.y = viewPort.visibleArea.bottomLeft.y + BREAKPOINT_HEIGHT
|
|
}
|
|
|
|
function onClick () {
|
|
let sessionToken = window.localStorage.getItem('sessionToken')
|
|
|
|
if (sessionToken === null || sessionToken === '') {
|
|
/* not logged in */
|
|
return
|
|
}
|
|
|
|
if (sharedStatus.currentEventIndex + 1 === window.EVENTS.length) {
|
|
sharedStatus.currentEventIndex = 0
|
|
window.CURRENT_EVENT_TITLE = storedEvents[sharedStatus.currentEventIndex].title
|
|
label = 'Event - ' + storedEvents[sharedStatus.currentEventIndex].title
|
|
window.localStorage.setItem('currentEventObject', JSON.stringify(storedEvents[sharedStatus.currentEventIndex]))
|
|
buildEcosystemEventsHack(true)
|
|
sharedStatus.eventHandler.raiseEvent('Event Changed')
|
|
return
|
|
}
|
|
|
|
if (sharedStatus.currentEventIndex + 1 < window.EVENTS.length) {
|
|
sharedStatus.currentEventIndex++
|
|
window.CURRENT_EVENT_TITLE = storedEvents[sharedStatus.currentEventIndex].title
|
|
label = 'Event - ' + storedEvents[sharedStatus.currentEventIndex].title
|
|
window.localStorage.setItem('currentEventObject', JSON.stringify(storedEvents[sharedStatus.currentEventIndex]))
|
|
buildEcosystemEventsHack(true)
|
|
sharedStatus.eventHandler.raiseEvent('Event Changed')
|
|
return
|
|
}
|
|
}
|
|
|
|
function getContainer (point) {
|
|
let container
|
|
|
|
/* First we check if this point is inside this object UI. */
|
|
|
|
if (thisObject.container.frame.isThisPointHere(point, true) === true) {
|
|
return this.container
|
|
} else {
|
|
/* This point does not belong to this space. */
|
|
|
|
return undefined
|
|
}
|
|
}
|
|
|
|
function draw () {
|
|
let sessionToken = window.localStorage.getItem('sessionToken')
|
|
|
|
if (sessionToken === null || sessionToken === '') {
|
|
/* not logged in */
|
|
return
|
|
}
|
|
|
|
thisObject.container.frame.draw(false, false)
|
|
|
|
let breakpointsHeight = 0
|
|
let fontSize = 12
|
|
|
|
let point = {
|
|
x: thisObject.container.frame.width / 2 - label.length / 2 * fontSize / 3,
|
|
y: thisObject.container.frame.height / 2 + fontSize / 2 + breakpointsHeight
|
|
}
|
|
|
|
point = thisObject.container.frame.frameThisPoint(point)
|
|
|
|
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
|
|
browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)'
|
|
browserCanvasContext.fillText(label, point.x, point.y)
|
|
}
|
|
}
|