diff options
author | 2022-02-15 18:02:23 +0000 | |
---|---|---|
committer | 2022-02-16 15:26:38 +0000 | |
commit | 770049ea162573d5afa1aaefed6131fe5e0a77f7 (patch) | |
tree | f702a09afd7b18879a562674c760c682c78895c0 /gui-editors/gui-editor-apex/src/main/webapp/js/ApexMain.js | |
parent | 29df248caa234bc0dff3c20875bdaecfeba127e0 (diff) |
Refactor apex-editor frontend build
Moved frontend from src/main/resources/webapp to src/main/webapp
Moved static resources such as jquery-ui to webapp/dist folder
Configured jest to exclude webapp/dist from coverage report
Removed unused ZIP file assembly
Cleaned up POM
Issue-ID: POLICY-3896
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: Ia006eb94a39586219029866eef94aef38912ad65
Diffstat (limited to 'gui-editors/gui-editor-apex/src/main/webapp/js/ApexMain.js')
-rw-r--r-- | gui-editors/gui-editor-apex/src/main/webapp/js/ApexMain.js | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/gui-editors/gui-editor-apex/src/main/webapp/js/ApexMain.js b/gui-editors/gui-editor-apex/src/main/webapp/js/ApexMain.js new file mode 100644 index 0000000..3fc3cd5 --- /dev/null +++ b/gui-editors/gui-editor-apex/src/main/webapp/js/ApexMain.js @@ -0,0 +1,180 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * Modifications Copyright (C) 2020-2022 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +import {pageControl_noModelMode, pageControl_modelMode} from "./ApexPageControl"; +import {newModelForm_activate} from "./ApexNewModelForm"; +import {files_fileDownload, files_fileOpen, files_fileUpload} from "./ApexFiles"; +import {ajax_delete, ajax_get} from "./ApexAjax"; +import {modelHandling_analyse, modelHandling_validate} from "./ApexModelHandling"; + +var restRootURL = null; +var modelFileName = null; + +$(document).ready(function() { + $("#menu").fileMenu({ + slideSpeed : 200 + }); + pageControl_noModelMode(); + main_getRestRootURL(); + $(".content").fadeIn(); +}); + +$("#menu li").not(".emptyMessage").click(function() { + switch (this.id) { + case "menuFileNew": + newModelForm_activate(document.getElementById("mainArea")); + break; + + case "menuFileOpen": + files_fileOpen(); + break; + case "menuFileDownload": + files_fileDownload(); + break; + case "menuFileUpload": + files_fileUpload(); + break; + + case "menuFileClear": + if (confirm("Clear the current model?")) { + var requestURL = restRootURL + "/Model/Delete"; + + ajax_delete(requestURL, function(data) { + localStorage.removeItem("apex_model_loaded"); + localStorage.removeItem("apex_tab_index"); + $("#mainTabs").tabs("option", "active", 0); + pageControl_noModelMode(); + }); + } + break; + + case "menuFileNewSession": + clearLocalStorage(); + location.reload(); + break; + + case "menuFileClose": + if (confirm("Close Apex Editor?")) { + clearLocalStorage(); + window.location.href = window.location.href + "close.html"; + } + break; + + case "menuModelAnalyse": + modelHandling_analyse(); + break; + + case "menuModelValidate": + modelHandling_validate(); + break; + + case "menuConceptsContextSchemas": + $("#mainTabs").tabs("option", "active", 0); + break; + case "menuConceptsEvents": + $("#mainTabs").tabs("option", "active", 1); + break; + case "menuConceptsContextAlbums": + $("#mainTabs").tabs("option", "active", 2); + break; + case "menuConceptsTasks": + $("#mainTabs").tabs("option", "active", 3); + break; + case "menuConceptsPolicies": + $("#mainTabs").tabs("option", "active", 4); + break; + case "menuConceptsKeyInformation": + $("#mainTabs").tabs("option", "active", 5); + break; + + default: + break; + } +}); + +function main_getRestRootURL() { + const href = location.protocol + + "//" + + window.location.hostname + + (location.port ? ':' + location.port : '') + + (location.pathname.endsWith("/editor/") ? location.pathname.substring(0, location.pathname + .indexOf("editor/")) : location.pathname); + const restContext = "apexservices/editor/"; + if (localStorage.getItem("apex_session")) { + restRootURL = href + restContext + localStorage.getItem("apex_session"); + window.restRootURL = restRootURL; + const requestURL = restRootURL + "/Model/GetKey"; + ajax_get(requestURL, function(data) { + $("#statusMessageTable").append("<tr><td> REST root URL set to: " + restRootURL + "</td></tr>"); + if (localStorage.getItem("apex_model_loaded")) { + const modelKey = JSON.parse(data.messages.message[0]).apexArtifactKey; + pageControl_modelMode(modelKey.name, modelKey.version, modelFileName); + if (localStorage.getItem("apex_tab_index")) { + $("#mainTabs").tabs({ + active: localStorage.getItem("apex_tab_index") + }); + } + } + }); + } else { + const createSessionURL = href + restContext + "-1/Session/Create"; + + ajax_get(createSessionURL, function(data) { + localStorage.setItem("apex_session", data.messages.message[0]); + restRootURL = href + restContext + localStorage.getItem("apex_session"); + window.restRootURL = restRootURL; + $("#statusMessageTable").append("<tr><td> REST root URL set to: " + restRootURL + "</td></tr>"); + }); + } +} + +function clearLocalStorage() { + localStorage.removeItem("apex_session"); + localStorage.removeItem("apex_model_loaded"); + localStorage.removeItem("apex_tab_index"); +} + +/* Inline Message */ +var ebInlineMessageHeight = $(".ebInlineMessage").height(); + +$(".ebInlineMessage").mouseenter(function(e) { + e.stopPropagation(); + $(this).stop(); + var contentHeight = $(this).children('.ebInlineMessage-contentHolder').height(); + if (contentHeight > ebInlineMessageHeight) { + $(".ebInlineMessage").animate({ + height : contentHeight + 12 + }, 200); + } +}); + +$(".ebInlineMessage").mouseleave(function(e) { + e.stopPropagation(); + $(this).stop(); + $(".ebInlineMessage").animate({ + height : ebInlineMessageHeight + }, 200); +}); + +export { + clearLocalStorage, + main_getRestRootURL +} |