From 08b595c863b45e759e57ef419c83dad2b209df9c Mon Sep 17 00:00:00 2001 From: ramverma Date: Fri, 13 Jul 2018 12:32:32 +0100 Subject: Adding client editor module to apex-pdp The size of the review is big because of following: 1. edit_area & jquery are 3PP's used in the client editor 2. ui elements like svg, gifs, png Change-Id: Ib62d8e6dda6e6dc1b6e604298e23505523f77cf2 Issue-ID: POLICY-864 Signed-off-by: ramverma --- .../src/main/resources/webapp/js/ApexMain.js | 166 +++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 client/client-editor/src/main/resources/webapp/js/ApexMain.js (limited to 'client/client-editor/src/main/resources/webapp/js/ApexMain.js') diff --git a/client/client-editor/src/main/resources/webapp/js/ApexMain.js b/client/client-editor/src/main/resources/webapp/js/ApexMain.js new file mode 100644 index 000000000..9b5b25bbc --- /dev/null +++ b/client/client-editor/src/main/resources/webapp/js/ApexMain.js @@ -0,0 +1,166 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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========================================================= + */ + +var restRootURL = null; +var modelFileName = null; + +$("#menu").fileMenu({ + slideSpeed : 200 +}); + +$(document).ready(function() { + pageControl_noModelMode(); + main_getRestRootURL(); +}); + +$("#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 "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() { + var href = location.protocol + + "//" + + window.location.hostname + + (location.port ? ':' + location.port : '') + + (location.pathname.endsWith("/editor/") ? location.pathname.substring(0, location.pathname + .indexOf("editor/")) : location.pathname); + var restContext = "apexservices/editor/"; + if (localStorage.getItem("apex_session")) { + restRootURL = href + restContext + localStorage.getItem("apex_session"); + var requestURL = restRootURL + "/Model/GetKey"; + ajax_get(requestURL, function(data) { + $("#statusMessageTable").append(" REST root URL set to: " + restRootURL + ""); + if (localStorage.getItem("apex_model_loaded")) { + var modelKey = JSON.parse(data.messages.message[0]).apexArtifactKey; + pageControl_modelMode(modelKey.name, modelKey.version, modelFileName); + if (localStorage.getItem("apex_tab_index")) { + $('#mainTabs a[href="' + localStorage.getItem("apex_tab_index") + '"]').trigger('click'); + } + } + }); + } else { + var 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"); + $("#statusMessageTable").append(" REST root URL set to: " + restRootURL + ""); + }); + } +} + +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); +}); + +$(document).ready(function() { + $(".content").fadeIn(); +}); -- cgit 1.2.3-korg