aboutsummaryrefslogtreecommitdiffstats
path: root/client/client-editor/src/main/resources/webapp/js/ApexMain.js
diff options
context:
space:
mode:
authorramverma <ram.krishna.verma@ericsson.com>2018-07-13 12:32:32 +0100
committerramverma <ram.krishna.verma@ericsson.com>2018-07-13 16:07:05 +0100
commit08b595c863b45e759e57ef419c83dad2b209df9c (patch)
tree02f9c3e7c74e5b1242d4a04c21ade4e4ea501063 /client/client-editor/src/main/resources/webapp/js/ApexMain.js
parent7fbb46185166f2699b624cd2616c6fdd74ef4832 (diff)
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 <ram.krishna.verma@ericsson.com>
Diffstat (limited to 'client/client-editor/src/main/resources/webapp/js/ApexMain.js')
-rw-r--r--client/client-editor/src/main/resources/webapp/js/ApexMain.js166
1 files changed, 166 insertions, 0 deletions
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("<tr><td> REST root URL set to: " + restRootURL + "</td></tr>");
+ 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("<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);
+});
+
+$(document).ready(function() {
+ $(".content").fadeIn();
+});