diff --git a/FloatingSpace/CircularMenuItem.js b/FloatingSpace/CircularMenuItem.js index b22524258..f1ee11bf3 100644 --- a/FloatingSpace/CircularMenuItem.js +++ b/FloatingSpace/CircularMenuItem.js @@ -42,6 +42,11 @@ function newCircularMenuItem () { let selfMouseOverEventSubscriptionId let selfMouseClickEventSubscriptionId let selfMouseNotOverEventSubscriptionId + + let labelToPrint = '' + let defaultBackgroudColor = UI_COLOR.RED + let backgroundColorToUse = UI_COLOR.RED + let temporaryStatus = 0 return thisObject function finalize () { @@ -103,6 +108,15 @@ function newCircularMenuItem () { thisObject.container.frame.position.x = thisObject.container.frame.radius * 3 / 7 * Math.cos(toRadians(thisObject.angle)) - thisObject.currentRadius * 1.5 thisObject.container.frame.position.y = thisObject.container.frame.radius * 3 / 7 * Math.sin(toRadians(thisObject.angle)) - thisObject.container.frame.height / 2 + + temporaryStatus-- + if (temporaryStatus < 0) { + temporaryStatus = 0 + } + if (temporaryStatus === 0) { + labelToPrint = thisObject.label + backgroundColorToUse = defaultBackgroudColor + } } function onMouseOver (point) { @@ -117,8 +131,21 @@ function newCircularMenuItem () { isMouseOver = false } - function onMouseClick (event) { - thisObject.actionFunction(thisObject.payload, thisObject.action) + async function onMouseClick (event) { + if (temporaryStatus === 0) { + setTemporaryStatus('Saving...', UI_COLOR.GREY) + await thisObject.actionFunction(thisObject.payload, thisObject.action).then(result => { + setTemporaryStatus('Saved', UI_COLOR.PATINATED_TURQUOISE) + }, err => { + setTemporaryStatus('Not Saved', UI_COLOR.TITANIUM_YELLOW) + }) + } + } + + function setTemporaryStatus (text, backgroundColor) { + labelToPrint = text + backgroundColorToUse = backgroundColor + temporaryStatus = 500 } function drawBackground () { @@ -128,7 +155,7 @@ function newCircularMenuItem () { lineWidth: 0.1, container: thisObject.container, borderColor: UI_COLOR.DARK, - backgroundColor: UI_COLOR.RED, + backgroundColor: backgroundColorToUse, castShadow: false } @@ -162,7 +189,7 @@ function newCircularMenuItem () { browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY - if (thisObject.label !== undefined && thisObject.currentRadius >= thisObject.targetRadius) { + if (thisObject.currentRadius >= thisObject.targetRadius) { labelPoint = { x: menuPosition.x + thisObject.currentRadius + 10, y: menuPosition.y + fontSize * FONT_ASPECT_RATIO @@ -170,8 +197,9 @@ function newCircularMenuItem () { browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)' - browserCanvasContext.fillText(thisObject.label, labelPoint.x, labelPoint.y) + browserCanvasContext.fillText(labelToPrint, labelPoint.x, labelPoint.y) } } } } + diff --git a/StrategySpace/TradingSystem.js b/StrategySpace/TradingSystem.js index 6befa1852..c2d3fd060 100644 --- a/StrategySpace/TradingSystem.js +++ b/StrategySpace/TradingSystem.js @@ -247,9 +247,12 @@ function newTradingSystem () { async function onMenuItemClick (payload, action) { switch (action) { case 'Save Trading System': - let wasSaved - await canvas.strategySpace.workplace.saveToStrategyzer() - break + { + await canvas.strategySpace.workplace.saveToStrategyzer() + + break + } + case 'Open Settings': break diff --git a/StrategySpace/Workspace.js b/StrategySpace/Workspace.js index b70472015..ea534794d 100644 --- a/StrategySpace/Workspace.js +++ b/StrategySpace/Workspace.js @@ -88,7 +88,6 @@ function newWorkspace () { } }) .then(response => { - console.log('Strategies Saved') resolve(true) }) .catch(err => { @@ -98,17 +97,11 @@ function newWorkspace () { }) } - // To avoid race conditions, add asynchronous fetches to array let fetchDataPromises = [] fetchDataPromises.push(updateStrategies()) - // When all asynchronous fetches resolve, authenticate user or throw error. - await Promise.all(fetchDataPromises).then(result => { - - }, err => { - if (ERROR_LOG === true) { logger.write('[ERROR] saveToStrategyzer -> GraphQL Fetch Error -> err = ' + err.stack) } - }) + await Promise.all(fetchDataPromises) } catch (err) { if (ERROR_LOG === true) { logger.write('[ERROR] saveToStrategyzer -> err = ' + err.stack) } } @@ -257,7 +250,6 @@ function newWorkspace () { dataToSave.strategy.subStrategies.push(strategy) } - console.log(dataToSave) return dataToSave }