summaryrefslogtreecommitdiffstats
path: root/gui-editors/gui-editor-apex/src/main/resources
diff options
context:
space:
mode:
Diffstat (limited to 'gui-editors/gui-editor-apex/src/main/resources')
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/css/upload/dialog.css56
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/index.html9
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexConfig.js58
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexMain.js4
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js2
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexUpload.js61
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/lib/pubsub/ba-tiny-pubsub.min.js4
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/upload/dialog.html64
8 files changed, 256 insertions, 2 deletions
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/css/upload/dialog.css b/gui-editors/gui-editor-apex/src/main/resources/webapp/css/upload/dialog.css
new file mode 100644
index 0000000..95f29b1
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/css/upload/dialog.css
@@ -0,0 +1,56 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 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=========================================================
+ */
+
+.upload-dialog {
+ font-size: 16px;
+ line-height: 19px;
+}
+
+.upload-dialog .ui-button {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ color: #333333;
+ background-color: #ffffff;
+ border: none;
+ min-width: 60px;
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
+ border-radius: 3px;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ background-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.1) 100%);
+ padding: 0 8px;
+ height: 2.4rem;
+ font-size: 1.2rem;
+ white-space: nowrap;
+ text-decoration: none;
+ text-align: center;
+ cursor: pointer;
+}
+
+.upload-dialog #upload-form {
+ width: 100%;
+ font-size: 16px;
+ line-height: 19px;
+}
+
+.upload-dialog #upload-form input {
+ width: 100%;
+} \ No newline at end of file
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/index.html b/gui-editors/gui-editor-apex/src/main/resources/webapp/index.html
index 20a15ff..53e205e 100644
--- a/gui-editors/gui-editor-apex/src/main/resources/webapp/index.html
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/index.html
@@ -43,6 +43,8 @@
<!-- interface style -->
<link rel="stylesheet" type="text/css" href="css/interfaceAssets.css">
+<link rel="stylesheet" type="text/css" href="css/upload/dialog.css" />
+
<!-- JQuery style -->
<link rel="stylesheet" href="js/jquery-ui-1.12.1/jquery-ui.css">
@@ -82,6 +84,7 @@
<li id="menuFileNew">New <kbd>Ctrl+N</kbd></li>
<li id="menuFileOpen">Open... <kbd>Ctrl+O</kbd></li>
<li id="menuFileDownload">Download <kbd>Ctrl+S</kbd></li>
+ <li id="menuFileUpload">Upload <kbd>Ctrl+U</kbd></li>
<li id="menuFileClear">Clear<kbd>Ctrl+D</kbd></li>
<li class="divider"></li>
<li id="menuFileNewSession">New Session<kbd>Ctrl+R</kbd></li>
@@ -172,6 +175,7 @@
<!-- Dynamically created form goes here-->
</div>
</div>
+ <div id="main-dialog"></div>
</div>
<div class="placeholder">
@@ -212,7 +216,8 @@
<!-- edit area JS file -->
<script language="javascript" type="text/javascript"
src="js/edit_area/edit_area_full.js"></script>
-
+ <!-- simple jquery pub/sub library -->
+ <script type="text/javascript" src="js/lib/pubsub/ba-tiny-pubsub.min.js"></script>
<!-- Apex JS files -->
<script type="text/javascript" src="js/ApexTable.js"></script>
<script type="text/javascript" src="js/ApexContextSchemaTab.js"></script>
@@ -234,6 +239,8 @@
<script type="text/javascript" src="js/ApexNewModelForm.js"></script>
<script type="text/javascript" src="js/ApexResultForm.js"></script>
<script type="text/javascript" src="js/ApexModelHandling.js"></script>
+ <script type="text/javascript" src="js/ApexConfig.js"></script>
+ <script type="text/javascript" src="js/ApexUpload.js"></script>
<script type="text/javascript" src="js/ApexMain.js"></script>
</body>
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexConfig.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexConfig.js
new file mode 100644
index 0000000..a7f41d2
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexConfig.js
@@ -0,0 +1,58 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 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=========================================================
+ */
+
+const configObj = {
+ configMap: {},
+ getConfig: function (configKey) {
+ return this.configMap[configKey];
+ },
+ setConfig: function (configKey, configValue) {
+ return this.configMap[configKey] = configValue;
+ },
+ readySignal: function () {
+ $.publish("/config/ready");
+ }
+}
+
+$(document).ready(function () {
+ $("#menuFileUpload").hide();
+
+ const rootUrl = location.protocol
+ + "//"
+ + window.location.hostname
+ + (location.port ? ':' + location.port : '');
+
+ const configUrl = rootUrl + "/apexservices/editor/config";
+
+ function loadConfiguration() {
+ ajax_get(configUrl, function (data) {
+ for (let i = 0; i < data.messages.message.length; i++) {
+ const configEntry = JSON.parse(data.messages.message[i]);
+ Object.keys(configEntry).forEach(key => {
+ configObj.setConfig(key, configEntry[key]);
+ });
+ }
+ configObj.readySignal();
+ });
+ }
+
+ loadConfiguration();
+});
+
+
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexMain.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexMain.js
index e8ad0de..57433d6 100644
--- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexMain.js
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexMain.js
@@ -40,10 +40,12 @@ $("#menu li").not(".emptyMessage").click(function() {
case "menuFileOpen":
files_fileOpen();
break;
-
case "menuFileDownload":
files_fileDownload();
break;
+ case "menuFileUpload":
+ uploadPlugin.openDialog();
+ break;
case "menuFileClear":
if (confirm("Clear the current model?")) {
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js
index 4904f30..c2cb45c 100644
--- a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexPageControl.js
@@ -27,6 +27,7 @@ function pageControl_modelMode(name, version, fileName) {
$("#menuFileNew").addClass("disabled");
$("#menuFileOpen").addClass("disabled");
$("#menuFileDownload").removeClass("disabled");
+ $("#menuFileUpload").removeClass("disabled");
$("#menuFileClear").removeClass("disabled");
$("#menuModelAnalyse").removeClass("disabled");
$("#menuModelValidate").removeClass("disabled");
@@ -77,6 +78,7 @@ function pageControl_noModelMode() {
$("#menuFileNew").removeClass("disabled");
$("#menuFileOpen").removeClass("disabled");
$("#menuFileDownload").addClass("disabled");
+ $("#menuFileUpload").addClass("disabled");
$("#menuFileClear").addClass("disabled");
$("#menuModelAnalyse").addClass("disabled");
$("#menuModelValidate").addClass("disabled");
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexUpload.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexUpload.js
new file mode 100644
index 0000000..a71853c
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexUpload.js
@@ -0,0 +1,61 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 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=========================================================
+ */
+
+$(document).ready(function () {
+ $.subscribe("/config/ready", enableUpload);
+
+ function enableUpload() {
+ const menuFileUpload = $('#menuFileUpload');
+ const isUploadEnabled = configObj.getConfig("plugin.policy.upload.enable");
+ if (isUploadEnabled === "true" || isUploadEnabled === true) {
+ menuFileUpload.show();
+ } else {
+ menuFileUpload.hide();
+ }
+ }
+
+});
+
+const uploadPlugin = {
+ dialogDiv: $('#main-dialog'),
+ openDialog: function () {
+ this.dialogDiv.load('../upload/dialog.html');
+ },
+
+ upload: function (data, successCallback, errorCallback) {
+ const requestURL = restRootURL + "/Model/Upload";
+ $.ajax({
+ type: 'POST',
+ url: requestURL,
+ data: data,
+ contentType: false,
+ processData: false
+ }).done(function (data) {
+ pageControl_successStatus(data);
+ if (typeof successCallback === typeof Function) {
+ successCallback(data);
+ }
+ }).fail(function (jqXHR, textStatus, errorThrown) {
+ pageControl_restError(requestURL, jqXHR, textStatus, errorThrown);
+ if (typeof errorCallback === typeof Function) {
+ errorCallback(jqXHR, textStatus, errorThrown);
+ }
+ });
+ }
+}
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/lib/pubsub/ba-tiny-pubsub.min.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/lib/pubsub/ba-tiny-pubsub.min.js
new file mode 100644
index 0000000..635ab34
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/lib/pubsub/ba-tiny-pubsub.min.js
@@ -0,0 +1,4 @@
+/*! Tiny Pub/Sub - v0.7.0 - 2013-01-29
+* https://github.com/cowboy/jquery-tiny-pubsub
+* Copyright (c) 2013 "Cowboy" Ben Alman; Licensed MIT */
+(function(n){var u=n({});n.subscribe=function(){u.on.apply(u,arguments)},n.unsubscribe=function(){u.off.apply(u,arguments)},n.publish=function(){u.trigger.apply(u,arguments)}})(jQuery); \ No newline at end of file
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/upload/dialog.html b/gui-editors/gui-editor-apex/src/main/resources/webapp/upload/dialog.html
new file mode 100644
index 0000000..aac7762
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/upload/dialog.html
@@ -0,0 +1,64 @@
+<!--
+ ~ ============LICENSE_START=======================================================
+ ~ Copyright (C) 2020 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=========================================================
+ -->
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title>Upload Policy</title>
+ <script>
+ $(document).ready(function () {
+ function upload() {
+ const data = new FormData();
+ const apexConfigFile = $('#apex-config-file')[0].files[0];
+ const toscaTemplateFile = $('#tosca-template-file')[0].files[0];
+ data.append('apex-config-file', apexConfigFile);
+ data.append('tosca-template-file', toscaTemplateFile);
+ uploadPlugin.upload(data, function () {
+ dialog.dialog("close");
+ });
+ }
+
+ const dialog = $('#inner-dialog').dialog({
+ height: 300,
+ width: 435,
+ modal: true,
+ dialogClass: 'upload-dialog',
+ buttons: {
+ "Upload": upload,
+ Cancel: function() {
+ dialog.dialog("close");
+ }
+ }
+ });
+ });
+ </script>
+</head>
+<body>
+<div id="inner-dialog" title="Upload Policy" class="upload-dialog">
+ <p>Provide the following files to compose the policy TOSCA</p>
+ <div id="upload-form">
+ <label for="apex-config-file">Apex Config</label> <br/>
+ <input id="apex-config-file" type="file" required="required" accept="application/json" class="ui-widget-content ui-corner-all"/> <br/>
+ <label for="tosca-template-file">Tosca Template</label> <br/>
+ <input id="tosca-template-file" type="file" required="required" accept="application/json" class="ui-widget-content ui-corner-all"/>
+ </div>
+</div>
+</body>
+</html> \ No newline at end of file