Merge pull request #7 from AAMasters/develop

Beta 5
This commit is contained in:
Luis Fernando Molina authored and GitHub committed 2020-06-01 19:00:46 +02:00
commit d5e58ebe80
10 files changed
+126 -58

No files matched your search

+11 -4
View File
@@ -54,7 +54,12 @@ function newAppLoader() {
'DesignSpace/Workspace/FunctionLibraries/WebhookFunctions.js',
'DesignSpace/Workspace/FunctionLibraries/DependenciesFilter.js',
'Utilities/RoundedCornersBackground.js',
'Utilities/CoordinateTransformations.js',
'Utilities/DateRateTransformations.js',
'Utilities/Download.js',
'Utilities/DrawPrint.js',
'Utilities/LoadSaveFrame.js',
'Utilities/NodeConfig.js',
'Panels/LayersPanel.js',
'Panels/UpDownButton.js',
@@ -63,8 +68,9 @@ function newAppLoader() {
'Panels/PlotterPanel.js',
'Panels/PanelsVisibleButton.js',
'ControlsToolBox/SidePanel.js',
'ControlsToolBox/SidePanelTab.js',
'SideSpace/SidePanelTab.js',
'SideSpace/ListView.js',
'SideSpace/ListItem.js',
'Spaces/CockpitSpace.js',
'Spaces/TopSpace.js',
@@ -72,6 +78,7 @@ function newAppLoader() {
'Spaces/ChartingSpace.js',
'Spaces/FloatingSpace.js',
'Spaces/DesignSpace.js',
'Spaces/SideSpace.js',
'Files/SingleFile.js',
'Files/FileCloud.js',
@@ -185,7 +192,7 @@ function newAppLoader() {
'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulation.js',
'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js',
'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js',
'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js',
'Plotters/TradingEngines/Plotters-Trading-Simulation/TradingSimulationEpisodePanel.js',
'Plotters/TradingEngines/Plotters-Trading-Simulation/Conditions.js',
'Plotters/TradingEngines/Plotters-Trading-Simulation/Strategies.js',
'Plotters/TradingEngines/Plotters-Trading-Simulation/Trades.js',
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 247 KiB

+6 -1
View File
@@ -2,5 +2,10 @@
let functionName = pDataMineOrHost + pPlotter + pModule + pPanel;
functionName = functionName.replace(/-/g, "");
functionName = 'new' + functionName
return window[functionName]();
try {
return window[functionName]();
} catch (err) {
console.log('[ERROR] getNewPlotterPanel -> Error trying to Load a Plotter Panel. err = ' + err.stack)
console.log('[ERROR] getNewPlotterPanel -> functionName = ' + functionName)
}
}
+109 -53
View File
@@ -55,19 +55,30 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
if (CONSOLE_LOG === true && request.url.indexOf('NO-LOG') === -1) { console.log('[INFO] webServer -> onBrowserRequest -> request.url = ' + request.url) }
function getBody(callback) { // Gets the de body from a POST request to the web server
let body = ''
try {
request.on('data', function (data) {
body += data
// Too much POST data
if (body.length > 1e6) {
request.connection.destroy()
}
})
let body = ''
request.on('end', function () {
callback(body)
})
request.on('data', function (data) {
body += data
// Too much POST data
//if (body.length > 1e6) {
// request.connection.destroy()
//}
})
request.on('end', function () {
callback(body)
})
request.on('error', function (err) {
if (CONSOLE_LOG === true) { console.log('[INFO] webServer -> onBrowserRequest -> getBody -> err = ' + err.stack) }
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), response)
})
} catch (err) {
if (CONSOLE_LOG === true) { console.log('[INFO] webServer -> onBrowserRequest -> getBody -> err = ' + err.stack) }
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), response)
}
}
let requestParameters = request.url.split('/')
@@ -170,8 +181,10 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
}
break
}
break
case 'Webhook': {
case 'Webhook':
{
switch (requestParameters[2]) { // switch by command
case 'Fetch-Messages': {
let exchange = requestParameters[3]
@@ -243,9 +256,10 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
break
}
}
break
}
break
case 'ResetLogsAndData':
{
try {
@@ -378,6 +392,7 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
respondWithFile(filePath, response)
}
break
case 'Panels':
{
respondWithFile(process.env.PATH_TO_CANVAS_APP + '/' + requestParameters[1] + '/' + requestParameters[2], response)
@@ -420,6 +435,12 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
}
break
case 'SideSpace':
{
respondWithFile(process.env.PATH_TO_CANVAS_APP + '/' + requestParameters[1] + '/' + requestParameters[2], response)
}
break
case 'AppSchema.js':
{
let fs = require('fs')
@@ -464,6 +485,81 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
}
break
case 'ListWorkspaces':
{
let dirPath = process.env.MY_WORKSPACES_PATH
try {
let fs = require('fs')
fs.readdir(dirPath, onDirRead)
function onDirRead(err, fileList) {
if (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error reading a directory content. filePath = ' + dirPath) }
respondWithContent(JSON.stringify(global.DEFAULT_FAIL_RESPONSE), response)
return
} else {
respondWithContent(JSON.stringify(fileList), response)
return
}
}
} catch (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error reading a directory content. filePath = ' + dirPath) }
respondWithContent(JSON.stringify(global.DEFAULT_FAIL_RESPONSE), response)
return
}
}
break
case 'LoadWorkspace':
{
let fileName = unescape(requestParameters[2])
let filePath = process.env.MY_WORKSPACES_PATH + '/' + fileName + '.json'
respondWithFile(filePath, response)
}
break
case 'SaveWorkspace':
{
getBody(processRequest)
async function processRequest(body) {
let fileContent = body
let fileName = unescape(requestParameters[2])
let filePath = process.env.MY_WORKSPACES_PATH + '/' + fileName + '.json'
try {
let fs = require('fs')
let dir = process.env.MY_WORKSPACES_PATH;
/* Create Dir if it does not exist */
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
fs.writeFile(filePath, fileContent, onFileWritten)
function onFileWritten(err) {
if (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error writting the Workspace file. fileName = ' + fileName) }
respondWithContent(JSON.stringify(exchanges), response)
} else {
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), response)
}
}
} catch (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error writting the Workspace file. fileName = ' + fileName) }
respondWithContent(JSON.stringify(exchanges), response)
}
}
}
break
case 'DataMines':
{
respondWithFile(process.env.DATA_MINES_PATH + '/' + requestParameters[2] + '.json', response)
@@ -488,46 +584,6 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
}
break
case 'GetDefinition':
{
respondWithFile(process.env.INTER_PROCESS_FILES_PATH + '/definition.json', response)
}
break
case 'SaveDefinition':
{
let fs = require('fs')
let body = ''
request.on('data', function (data) {
body += data
// Too much POST data
if (body.length > 1e6) {
request.connection.destroy()
}
})
request.on('end', function () {
try {
let filePath = process.env.INTER_PROCESS_FILES_PATH + '/definition.json'
fs.writeFile(filePath, body, onFileWrite)
} catch (e) {
console.log('[ERROR] Error writing user config.', e)
respondWithContent(undefined, response)
}
function onFileWrite(err) {
if (err) {
respondWithContent(undefined, response)
} else {
let responseContent = 'User config updated.'
respondWithContent(responseContent, response)
}
}
})
}
break
default:
{
homePage()