diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index 5973ea9b4..9f782bcf3 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -2,6 +2,18 @@ { "name": "Superalgos", "propertyName": "superalgos", + "globals": [ + { + "name": "Docs", + "propertyName": "docs", + "functionName": "newSuperalgosGlobalsDocs" + }, + { + "name": "Zoom", + "propertyName": "zoom", + "functionName": "newSuperalgosGlobalsZoom" + } + ], "utilities": [ { "name": "Branches", @@ -179,7 +191,7 @@ "name": "Chat Space", "folderName": "Chat-Space", "propertyName": "chatSpace", - "functionName": "newSuperalgosChatSpace" + "functionName": "newSuperalgosChatSpace" }, { "name": "Tutorial Space", diff --git a/Projects/Superalgos/Function-Libraries/ActionSwitch.js b/Projects/Superalgos/Function-Libraries/ActionSwitch.js index b9ff472ea..32693f0d3 100644 --- a/Projects/Superalgos/Function-Libraries/ActionSwitch.js +++ b/Projects/Superalgos/Function-Libraries/ActionSwitch.js @@ -500,7 +500,7 @@ function newSuperalgosActionSwitch() { let nodeName = action.node.type nodeName = nodeName.toLowerCase() nodeName = nodeName.split(" ").join("-") - url = DOCUMENTATION_URL_PREFIX + "suite-hierarchy-" + headName + ".html#" + nodeName + url = UI.projects.superalgos.globals.docs.DOCUMENTATION_URL_PREFIX + "suite-hierarchy-" + headName + ".html#" + nodeName UI.projects.superalgos.spaces.docSpace.navigateTo(url) } } diff --git a/Projects/Superalgos/Globals/Docs.js b/Projects/Superalgos/Globals/Docs.js new file mode 100644 index 000000000..43c7ed371 --- /dev/null +++ b/Projects/Superalgos/Globals/Docs.js @@ -0,0 +1,7 @@ +function newSuperalgosGlobalsDocs() { + thisObject = { + DOCUMENTATION_URL_PREFIX: 'https://docs.superalgos.org/', + DOCUMENTATION_URL_DEFAULT: 'https://docs.superalgos.org/suite-about-this-documentation.html' + } + return thisObject +} \ No newline at end of file diff --git a/Projects/Superalgos/Globals/Zoom.js b/Projects/Superalgos/Globals/Zoom.js new file mode 100644 index 000000000..040b4952f --- /dev/null +++ b/Projects/Superalgos/Globals/Zoom.js @@ -0,0 +1,15 @@ +function newSuperalgosGlobalsZoom() { + thisObject = { + DOUBLE_CLICK_ZOOM_OUT_LEVEL: 0, + DOUBLE_CLICK_ZOOM_IN_LEVEL: 6, + DOUBLE_CLICK_ZOOM_IN_IN_LEVEL: 7, + ZOOM_OUT_THRESHOLD_FOR_NOT_HIDDING_PANELS: 12, + ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS: 7, + ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME: 3, + ZOOM_OUT_THRESHOLD_FOR_PACKING_OBJECTS_AT_THE_BOTTOM_OR_TOP_OF_VIEWPORT: 2, + ZOOM_OUT_THRESHOLD_FOR_PLOTTING_IN_LOW_RESOLUTION: 3, + ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_TIME_MACHINES_ICONIZED: 5, + ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES: 3 + } + return thisObject +} \ No newline at end of file diff --git a/Projects/Superalgos/Spaces/Charting-Space/EdgeEditor.js b/Projects/Superalgos/Spaces/Charting-Space/EdgeEditor.js index 11f591a72..4324f5933 100644 --- a/Projects/Superalgos/Spaces/Charting-Space/EdgeEditor.js +++ b/Projects/Superalgos/Spaces/Charting-Space/EdgeEditor.js @@ -118,13 +118,13 @@ function newEdgeEditor() { function onDoubleClick(event) { doubleClickCounter = 0 - if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel === DOUBLE_CLICK_ZOOM_OUT_LEVEL) { + if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel === UI.projects.superalgos.globals.zoom.DOUBLE_CLICK_ZOOM_OUT_LEVEL) { UI.projects.superalgos.spaces.chartingSpace.viewport.displaceToContainer(thisObject.container.parentContainer) - UI.projects.superalgos.spaces.chartingSpace.viewport.zoomAtCenter(DOUBLE_CLICK_ZOOM_IN_LEVEL) + UI.projects.superalgos.spaces.chartingSpace.viewport.zoomAtCenter(UI.projects.superalgos.globals.zoom.DOUBLE_CLICK_ZOOM_IN_LEVEL) return } - if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel === DOUBLE_CLICK_ZOOM_IN_LEVEL) { - UI.projects.superalgos.spaces.chartingSpace.viewport.zoomAtCenter(DOUBLE_CLICK_ZOOM_IN_IN_LEVEL) + if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel === UI.projects.superalgos.globals.zoom.DOUBLE_CLICK_ZOOM_IN_LEVEL) { + UI.projects.superalgos.spaces.chartingSpace.viewport.zoomAtCenter(UI.projects.superalgos.globals.zoom.DOUBLE_CLICK_ZOOM_IN_IN_LEVEL) return } } diff --git a/Projects/Superalgos/Spaces/Charting-Space/Scales/RateScale.js b/Projects/Superalgos/Spaces/Charting-Space/Scales/RateScale.js index 45c90693e..d46769457 100644 --- a/Projects/Superalgos/Spaces/Charting-Space/Scales/RateScale.js +++ b/Projects/Superalgos/Spaces/Charting-Space/Scales/RateScale.js @@ -474,7 +474,7 @@ function newRateScale() { thisObject.payload.isVisible = false } - if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES) { + if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES) { thisObject.isVisible = false } } diff --git a/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeFrameScale.js b/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeFrameScale.js index 6262059ba..9230541c5 100644 --- a/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeFrameScale.js +++ b/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeFrameScale.js @@ -115,7 +115,7 @@ function newTimeFrameScale() { function adjustTimeFrame(elementsPlotted) { const ELEMENTS_PLOTTED_THREASHOLD = 500 if ( - UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel >= ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME && + UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel >= UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME && displayingRealTimeFrame === false ) { let event = {} @@ -125,7 +125,7 @@ function newTimeFrameScale() { } if ( elementsPlotted > ELEMENTS_PLOTTED_THREASHOLD && - UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME && + UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME && displayingRealTimeFrame === true ) { let event = {} @@ -211,7 +211,7 @@ function newTimeFrameScale() { thisObject.payload.isVisible = false } - if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES) { + if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES) { thisObject.isVisible = false } } diff --git a/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeScale.js b/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeScale.js index 623bd4e82..267470e55 100644 --- a/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeScale.js +++ b/Projects/Superalgos/Spaces/Charting-Space/Scales/TimeScale.js @@ -277,7 +277,7 @@ function newTimeScale() { thisObject.isVisible = false } - if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES) { + if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES) { thisObject.isVisible = false } } diff --git a/Projects/Superalgos/Spaces/Charting-Space/TimeMachine.js b/Projects/Superalgos/Spaces/Charting-Space/TimeMachine.js index 14ed6fbb1..20208aa97 100644 --- a/Projects/Superalgos/Spaces/Charting-Space/TimeMachine.js +++ b/Projects/Superalgos/Spaces/Charting-Space/TimeMachine.js @@ -432,7 +432,7 @@ function newTimeMachine() { function panelPhysics() { if ( thisObject.container.frame.isInViewPort() && - UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel >= ZOOM_OUT_THRESHOLD_FOR_NOT_HIDDING_PANELS) { + UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel >= UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_NOT_HIDDING_PANELS) { UI.projects.superalgos.spaces.panelSpace.unHide(thisObject.payload.node.id, 'Layers Panel') UI.projects.superalgos.spaces.panelSpace.unHide(thisObject.payload.node.id, 'Plotter Panel') return @@ -440,7 +440,7 @@ function newTimeMachine() { if ( thisObject.container.frame.isCenterInViewPort() && - UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel >= ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS + UI.projects.superalgos.spaces.chartingSpace.viewport.zoomLevel >= UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS ) { UI.projects.superalgos.spaces.panelSpace.unHide(thisObject.payload.node.id, 'Layers Panel') UI.projects.superalgos.spaces.panelSpace.unHide(thisObject.payload.node.id, 'Plotter Panel') @@ -601,7 +601,7 @@ function newTimeMachine() { if (thisObject.rateScale !== undefined && thisObject.rateScale.isVisible === true) { thisObject.rateScale.draw() } } } else { - if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_TIME_MACHINES_ICONIZED) { + if (UI.projects.superalgos.spaces.chartingSpace.viewport.zoomTargetLevel < UI.projects.superalgos.globals.zoom.ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_TIME_MACHINES_ICONIZED) { let icon = UI.projects.superalgos.spaces.designSpace.getIconByProjectAndType(thisObject.payload.node.project, thisObject.payload.node.type) if (icon !== undefined) { if (icon.canDrawIcon === true) { diff --git a/Projects/Superalgos/Spaces/Doc-Space/DocSpace.js b/Projects/Superalgos/Spaces/Doc-Space/DocSpace.js index cec1ff7ea..2ac097b16 100644 --- a/Projects/Superalgos/Spaces/Doc-Space/DocSpace.js +++ b/Projects/Superalgos/Spaces/Doc-Space/DocSpace.js @@ -50,7 +50,7 @@ function newSuperalgosDocSpace() { function onOpening() { let docIFrame = document.getElementById('docIFrame') if (docIFrame.src === "") { - docIFrame.src = DOCUMENTATION_URL_DEFAULT + docIFrame.src = UI.projects.superalgos.globals.docs.DOCUMENTATION_URL_DEFAULT } }