diff --git a/Desktop/UI/Globals.js b/Desktop/UI/Globals.js index 90f9af4e0..2bce6ff39 100644 --- a/Desktop/UI/Globals.js +++ b/Desktop/UI/Globals.js @@ -1,8 +1,15 @@ -/* Root object*/ +/* Root objects*/ let UI = { projects: {}, schemas: { projectSchema: undefined }, environment: undefined, running: {} } + +let SA = { projects: {} } +/* +We will use this to load functions originally intended for Nodejs +*/ +let exports = {} + diff --git a/Desktop/UI/WebApp.js b/Desktop/UI/WebApp.js index eb18b803a..0abdd29eb 100644 --- a/Desktop/UI/WebApp.js +++ b/Desktop/UI/WebApp.js @@ -13,7 +13,8 @@ function newWebApp() { function initialize() { try { - setupRootObject() + setupRootObject(UI, 'UI') + setupRootObject(SA, 'SA') UI.projects.socialTrading.modules.webSocketsClient.initialize() setupHomePage() } catch (err) { @@ -21,56 +22,72 @@ function newWebApp() { } } - function setupRootObject() { + function setupRootObject(rootObject, rootObjectName) { /* Here we will setup the UI object, with all the projects and spaces. */ for (let i = 0; i < UI.schemas.projectSchema.length; i++) { let projectDefinition = UI.schemas.projectSchema[i] - UI.projects[projectDefinition.propertyName] = {} - let projectInstance = UI.projects[projectDefinition.propertyName] + rootObject.projects[projectDefinition.propertyName] = {} + let projectInstance = rootObject.projects[projectDefinition.propertyName] projectInstance.utilities = {} projectInstance.globals = {} projectInstance.functionLibraries = {} projectInstance.modules = {} - if (projectDefinition.UI === undefined) { continue } + if (projectDefinition[rootObjectName] === undefined) { continue } /* Set up Globals of this Project */ - if (projectDefinition.UI.globals !== undefined) { - for (let j = 0; j < projectDefinition.UI.globals.length; j++) { - let globalDefinition = projectDefinition.UI.globals[j] + if (projectDefinition[rootObjectName].globals !== undefined) { + for (let j = 0; j < projectDefinition[rootObjectName].globals.length; j++) { + let globalDefinition = projectDefinition[rootObjectName].globals[j] - projectInstance.globals[globalDefinition.propertyName] = eval(globalDefinition.functionName + '()') + if (exports[globalDefinition.functionName] === undefined) { + projectInstance.globals[globalDefinition.propertyName] = eval(globalDefinition.functionName + '()') + } else { + projectInstance.globals[globalDefinition.propertyName] = eval('exports.' + globalDefinition.functionName + '()') + } } } /* Set up Utilities of this Project */ - if (projectDefinition.UI.utilities !== undefined) { - for (let j = 0; j < projectDefinition.UI.utilities.length; j++) { - let utilityDefinition = projectDefinition.UI.utilities[j] + if (projectDefinition[rootObjectName].utilities !== undefined) { + for (let j = 0; j < projectDefinition[rootObjectName].utilities.length; j++) { + let utilityDefinition = projectDefinition[rootObjectName].utilities[j] - projectInstance.utilities[utilityDefinition.propertyName] = eval(utilityDefinition.functionName + '()') + if (exports[utilityDefinition.functionName] === undefined) { + projectInstance.utilities[utilityDefinition.propertyName] = eval(utilityDefinition.functionName + '()') + } else { + projectInstance.utilities[utilityDefinition.propertyName] = eval('exports.' + utilityDefinition.functionName + '()') + } } } /* Set up Function Libraries of this Project */ - if (projectDefinition.UI.functionLibraries !== undefined) { - for (let j = 0; j < projectDefinition.UI.functionLibraries.length; j++) { - let functionLibraryDefinition = projectDefinition.UI.functionLibraries[j] + if (projectDefinition[rootObjectName].functionLibraries !== undefined) { + for (let j = 0; j < projectDefinition[rootObjectName].functionLibraries.length; j++) { + let functionLibraryDefinition = projectDefinition[rootObjectName].functionLibraries[j] - projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()') + if (exports[functionLibraryDefinition.functionName] === undefined) { + projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()') + } else { + projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = eval('exports.' + functionLibraryDefinition.functionName + '()') + } } } /* Set up Modules of this Project */ - if (projectDefinition.UI.modules !== undefined) { - for (let j = 0; j < projectDefinition.UI.modules.length; j++) { - let functionLibraryDefinition = projectDefinition.UI.modules[j] + if (projectDefinition[rootObjectName].modules !== undefined) { + for (let j = 0; j < projectDefinition[rootObjectName].modules.length; j++) { + let functionLibraryDefinition = projectDefinition[rootObjectName].modules[j] - projectInstance.modules[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()') + if (exports[functionLibraryDefinition.functionName] === undefined) { + projectInstance.modules[functionLibraryDefinition.propertyName] = eval(functionLibraryDefinition.functionName + '()') + } else { + projectInstance.modules[functionLibraryDefinition.propertyName] = eval('exports.' + functionLibraryDefinition.functionName + '()') + } } } } @@ -84,7 +101,7 @@ function newWebApp() { */ queryMessage = { queryType: SA.projects.socialTrading.globals.queryTypes.USER_PROFILES, - emitterUserProfileId: DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID, + emitterUserProfileId: undefined, //DK.TEST_NETWORK_CLIENT_USER_PROFILE_ID, initialIndex: 'Last', amountRequested: 10, direction: 'Past' diff --git a/Desktop/UI/WebAppLoader.js b/Desktop/UI/WebAppLoader.js index 97b732c94..baa4039f0 100644 --- a/Desktop/UI/WebAppLoader.js +++ b/Desktop/UI/WebAppLoader.js @@ -47,6 +47,37 @@ function newWebAppLoader() { } } } + + if (project.SA !== undefined) { + if (project.SA.functionLibraries !== undefined) { + for (let j = 0; j < project.SA.functionLibraries.length; j++) { + let fileName = project.SA.functionLibraries[j].fileName + if (fileName === undefined) {fileName = project.SA.functionLibraries[j].name.replaceAll(' ', '') + '.js'} + modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Function-Libraries' + '/' + fileName) + } + } + if (project.SA.utilities !== undefined) { + for (let j = 0; j < project.SA.utilities.length; j++) { + let fileName = project.SA.utilities[j].fileName + if (fileName === undefined) {fileName = project.SA.utilities[j].name.replaceAll(' ', '') + '.js'} + modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Utilities' + '/' + fileName) + } + } + if (project.SA.globals !== undefined) { + for (let j = 0; j < project.SA.globals.length; j++) { + let fileName = project.SA.globals[j].fileName + if (fileName === undefined) {fileName = project.SA.globals[j].name.replaceAll(' ', '') + '.js'} + modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Globals' + '/' + fileName) + } + } + if (project.SA.modules !== undefined) { + for (let j = 0; j < project.SA.modules.length; j++) { + let fileName = project.SA.modules[j].fileName + if (fileName === undefined) {fileName = project.SA.modules[j].name.replaceAll(' ', '') + '.js'} + modulesArray.push('Projects' + '/' + project.name + '/' + 'SA' + '/' + 'Modules' + '/' + fileName) + } + } + } } downloadIncludedFiles() diff --git a/Projects/Network/SA/Modules/WebSocketsClient.js b/Projects/Network/SA/Modules/WebSocketsClient.js index 7385b5cd7..15ac176a6 100644 --- a/Projects/Network/SA/Modules/WebSocketsClient.js +++ b/Projects/Network/SA/Modules/WebSocketsClient.js @@ -8,7 +8,7 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets let socketClient - let web3 = new SA.nodeModules.web3() + let web3 let called = {} let selectedNetworkNode // This is a Network Node we pick to try to connect to. @@ -33,6 +33,8 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets "address": "0xa153469c57A91F5a59Fc6c45A37aD8dbad85e417" } */ + web3 = new SA.nodeModules.web3() + selectedNetworkNode = { userProfileHandle: "Test-Network-Node-Profile", blockchainAccount: "0xa153469c57A91F5a59Fc6c45A37aD8dbad85e417", @@ -226,7 +228,7 @@ exports.newNetworkModulesWebSocketsClient = function newNetworkModulesWebSockets socketClient.onmessage = socketMessage => { onMenssage(socketMessage) } socketClient.send( JSON.stringify(socketMessage) - ) + ) function onMenssage(socketMessage) { try {