From 341fea714491e19af6db2894d8cef9012c83ec8b Mon Sep 17 00:00:00 2001 From: negar-binary Date: Thu, 24 Oct 2019 09:57:38 +0800 Subject: [PATCH] Revert "Revert "Synthetic Indices"" --- src/botPage/view/blockly/index.js | 3 +++ src/botPage/view/blockly/utils.js | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/botPage/view/blockly/index.js b/src/botPage/view/blockly/index.js index b5f1a80f47..2df46f5d86 100644 --- a/src/botPage/view/blockly/index.js +++ b/src/botPage/view/blockly/index.js @@ -17,6 +17,7 @@ import { importFile, saveBeforeUnload, removeParam, + updateRenamedFields, } from './utils'; import Interpreter from '../../bot/Interpreter'; import { createErrorAndEmit } from '../../common/error'; @@ -74,6 +75,7 @@ const marketsWereRemoved = xml => { return false; }; export const loadWorkspace = xml => { + updateRenamedFields(xml); if (!strategyHasValidTradeTypeCategory(xml)) return; if (marketsWereRemoved(xml)) return; @@ -100,6 +102,7 @@ export const loadWorkspace = xml => { }; export const loadBlocks = (xml, dropEvent = {}) => { + updateRenamedFields(xml); if (!strategyHasValidTradeTypeCategory(xml)) return; if (marketsWereRemoved(xml)) return; diff --git a/src/botPage/view/blockly/utils.js b/src/botPage/view/blockly/utils.js index 33eed2584c..9ea1959063 100644 --- a/src/botPage/view/blockly/utils.js +++ b/src/botPage/view/blockly/utils.js @@ -107,6 +107,33 @@ export const strategyHasValidTradeTypeCategory = xml => { return validTradeTypeCategory; }; +export const updateRenamedFields = xml => { + const elementRenames = { + MARKET_LIST: { + volidx: 'synthetic_index', + }, + }; + + const fields = xml.getElementsByTagName('field'); + + Array.from(fields).forEach(field => { + if (!field.hasAttribute('name')) { + return; + } + + Object.keys(elementRenames).forEach(elementRename => { + if (elementRename === field.getAttribute('name')) { + Object.keys(elementRenames[elementRename]).forEach(replacementKey => { + if (replacementKey === field.textContent) { + // eslint-disable-next-line no-param-reassign + field.textContent = elementRenames[elementRename][replacementKey]; + } + }); + } + }); + }); +}; + const getCollapsedProcedures = () => Blockly.mainWorkspace .getTopBlocks()