aboutsummaryrefslogtreecommitdiffstats
path: root/client/client-editor/src/main/resources/webapp/js/ApexContextAlbumEditForm.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/client-editor/src/main/resources/webapp/js/ApexContextAlbumEditForm.js')
-rw-r--r--client/client-editor/src/main/resources/webapp/js/ApexContextAlbumEditForm.js476
1 files changed, 476 insertions, 0 deletions
diff --git a/client/client-editor/src/main/resources/webapp/js/ApexContextAlbumEditForm.js b/client/client-editor/src/main/resources/webapp/js/ApexContextAlbumEditForm.js
new file mode 100644
index 000000000..8b4f890d2
--- /dev/null
+++ b/client/client-editor/src/main/resources/webapp/js/ApexContextAlbumEditForm.js
@@ -0,0 +1,476 @@
+/*
+ * ============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=========================================================
+ */
+
+function editContextAlbumForm_createContextAlbum(formParent) {
+ // Get all contextSchemas too for album item schema
+ var requestURL = restRootURL + "/ContextSchema/Get?name=&version=";
+ var contextSchemas = new Array();
+ ajax_get(requestURL, function(data2) {
+ for (var i = 0; i < data2.messages.message.length; i++) {
+ var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema;
+ contextSchemas.push({
+ "name" : contextSchema.key.name,
+ "version" : contextSchema.key.version,
+ "displaytext" : contextSchema.key.name + ":" + contextSchema.key.version,
+ "contextSchema" : contextSchema
+ });
+ }
+ editContextAlbumForm_activate(formParent, "CREATE", null, contextSchemas);
+ });
+}
+
+function editContextAlbumForm_deleteContextAlbum(parent, name, version) {
+ var message = "Are you sure you want to delete ContextAlbum \"" + name + ":" + version + "\"?";
+ if (apexUtils_areYouSure(message)) {
+ var requestURL = restRootURL + "/ContextAlbum/Delete?name=" + name + "&version=" + version;
+ ajax_delete(requestURL, function(data) {
+ apexUtils_removeElement("editContextAlbumFormDiv");
+ contextAlbumTab_reset();
+ keyInformationTab_reset()
+ });
+ }
+}
+
+function editContextAlbumForm_viewContextAlbum(parent, name, version) {
+ var requestURL = restRootURL + "/ContextAlbum/Get?name=" + name + "&version=" + version;
+ ajax_get(requestURL, function(data) {
+ var contextAlbum = JSON.parse(data.messages.message[0]).apexContextAlbum;
+ // Get all contextSchemas too for album item schema
+ var requestURL = restRootURL + "/ContextSchema/Get?name=&version=";
+ var contextSchemas = new Array();
+ ajax_get(requestURL, function(data2) {
+ for (var i = 0; i < data2.messages.message.length; i++) {
+ var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema;
+ contextSchemas.push({
+ "name" : contextSchema.key.name,
+ "version" : contextSchema.key.version,
+ "displaytext" : contextSchema.key.name + ":" + contextSchema.key.version,
+ "contextSchema" : contextSchema
+ });
+ }
+ editContextAlbumForm_activate(parent, "VIEW", contextAlbum, contextSchemas);
+ });
+ });
+}
+
+function editContextAlbumForm_editContextAlbum(formParent, name, version) {
+ var requestURL = restRootURL + "/ContextAlbum/Get?name=" + name + "&version=" + version;
+ ajax_get(requestURL, function(data) {
+ var contextAlbum = JSON.parse(data.messages.message[0]).apexContextAlbum;
+ // Get all contextSchemas too for album item schema
+ var requestURL = restRootURL + "/ContextSchema/Get?name=&version=";
+ var contextSchemas = new Array();
+ ajax_get(requestURL, function(data2) {
+ for (var i = 0; i < data2.messages.message.length; i++) {
+ var contextSchema = JSON.parse(data2.messages.message[i]).apexContextSchema;
+ contextSchemas.push({
+ "name" : contextSchema.key.name,
+ "version" : contextSchema.key.version,
+ "displaytext" : contextSchema.key.name + ":" + contextSchema.key.version,
+ "contextSchema" : contextSchema
+ });
+ }
+ editContextAlbumForm_activate(formParent, "EDIT", contextAlbum, contextSchemas);
+ });
+ });
+}
+
+function editContextAlbumForm_activate(parent, operation, contextAlbum, contextSchemas) {
+ apexUtils_removeElement("editContextAlbumFormDiv");
+ var formParent = document.getElementById(parent);
+ apexUtils_emptyElement(parent);
+
+ var isedit = false;
+ var createEditOrView = "";
+
+ if (!operation) {
+ console.warn("No operation specified for ContextAlbumForm form")
+ } else {
+ createEditOrView = operation.toUpperCase();
+ }
+
+ if (createEditOrView == "CREATE") {
+ isedit = true;
+ } else if (createEditOrView == "EDIT" || createEditOrView == "VIEW") {
+ if (createEditOrView == "EDIT") {
+ isedit = true;
+ }
+
+ if (!contextAlbum) {
+ console.warn("Invalid value (\"" + contextAlbum
+ + "\") passed as a value for \"contextAlbum\" for ContextAlbumForm form.");
+ } else {
+ if (!contextAlbum.key || !contextAlbum.key.name || contextAlbum.key.name == "") {
+ console.warn("Invalid value (\"" + contextAlbum.key.name
+ + "\") passed as a value for \"name\" for ContextAlbumForm form.");
+ }
+ if (!contextAlbum.key || !contextAlbum.key.version || contextAlbum.key.version == "") {
+ console.warn("Invalid value (\"" + contextAlbum.key.version
+ + "\") passed as a value for \"version\" for ContextAlbumForm form.");
+ }
+ if (!contextAlbum.uuid || contextAlbum.uuid == "") {
+ console.warn("Invalid value (\"" + contextAlbum.uuid
+ + "\") passed as a value for \"uuid\" for ContextAlbumForm form.");
+ }
+ if (createEditOrView == "VIEW") {
+ if (!contextAlbum.description) {
+ console.warn("Invalid value (\"" + contextAlbum.description
+ + "\") passed as a value for \"description\" for ContextAlbumForm form.");
+ }
+ if (!contextAlbum.scope || contextAlbum.scope == "") {
+ console.warn("Invalid value (\"" + contextAlbum.scope
+ + "\") passed as a value for \"scope\" for ContextAlbumForm form.");
+ }
+ if (!contextAlbum.itemSchema || !contextAlbum.itemSchema.name || contextAlbum.itemSchema.name == ""
+ || !contextAlbum.itemSchema.version || contextAlbum.itemSchema.version == "") {
+ console.warn("Invalid value (\"" + contextAlbum.itemSchema
+ + "\") passed as a value for \"itemSchema\" for ContextAlbumForm form.");
+ }
+ if (!contextAlbum.isWritable || contextAlbum.isWritable == "") {
+ console.warn("Invalid value (\"" + contextAlbum.isWritable
+ + "\") passed as a value for \"isWritable\" for ContextAlbumForm form.");
+ }
+ }
+ }
+ } else {
+ console
+ .warn("Invalid operation (\""
+ + operation
+ + "\") specified for ContextAlbumForm form. Only \"Create\", \"Edit\" and \"View\" operations are supported");
+ }
+
+ var contentelement = document.createElement("editContextAlbumFormDiv");
+ var formDiv = document.createElement("div");
+ contentelement.appendChild(formDiv);
+ formDiv.setAttribute("id", "editContextAlbumFormDiv");
+ formDiv.setAttribute("class", "editContextAlbumFormDiv");
+
+ var headingSpan = document.createElement("h2");
+ formDiv.appendChild(headingSpan);
+ headingSpan.innerHTML = "Context Item Album Editor";
+
+ var form = document.createElement("editContextAlbumForm");
+ formDiv.appendChild(form);
+
+ form.setAttribute("id", "editContextAlbumForm");
+ form.setAttribute("class", "form-style-1");
+ form.setAttribute("method", "post");
+ form.setAttribute("createEditOrView", createEditOrView);
+
+ var formul = document.createElement("ul");
+ form.appendChild(formul);
+
+ var nameLI = document.createElement("li");
+ formul.appendChild(nameLI);
+ var nameLabel = document.createElement("label");
+ nameLI.appendChild(nameLabel);
+ nameLabel.setAttribute("for", "editContextAlbumFormNameInput");
+ nameLabel.innerHTML = "Name: ";
+ var nameLabelSpan = document.createElement("span");
+ nameLabel.appendChild(nameLabelSpan);
+ nameLabelSpan.setAttribute("class", "required");
+ nameLabelSpan.innerHTML = "*";
+ var nameInput = document.createElement("input");
+ nameLI.appendChild(nameInput);
+ nameInput.setAttribute("id", "editContextAlbumFormNameInput");
+ nameInput.setAttribute("type", "text");
+ nameInput.setAttribute("name", "editContextAlbumFormameInput");
+ nameInput.setAttribute("class", "field ebInput");
+ nameInput.setAttribute("placeholder", "name");
+ if (contextAlbum && contextAlbum.key && contextAlbum.key.name) {
+ nameInput.value = contextAlbum.key.name;
+ }
+ if (createEditOrView != "CREATE") {
+ nameInput.readOnly = true;
+ }
+
+ var versionLI = document.createElement("li");
+ formul.appendChild(versionLI);
+ var versionLabel = document.createElement("label");
+ versionLI.appendChild(versionLabel);
+ versionLabel.setAttribute("for", "editContextAlbumFormVersionInput");
+ versionLabel.innerHTML = "Version: ";
+ var versionInput = document.createElement("input");
+ versionLI.appendChild(versionInput);
+ versionInput.setAttribute("id", "editContextAlbumFormVersionInput");
+ versionInput.setAttribute("type", "text");
+ versionInput.setAttribute("name", "editContextAlbumFormVersionInput");
+ versionInput.setAttribute("class", "field ebInput");
+ versionInput.setAttribute("placeholder", "0.0.1");
+ if (contextAlbum && contextAlbum.key && contextAlbum.key.version) {
+ versionInput.value = contextAlbum.key.version;
+ }
+ if (createEditOrView != "CREATE") {
+ versionInput.readOnly = true;
+ }
+
+ var uuidLI = document.createElement("li");
+ formul.appendChild(uuidLI);
+ var uuidLabel = document.createElement("label");
+ uuidLI.appendChild(uuidLabel);
+ uuidLabel.setAttribute("for", "editContextAlbumFormUuidInput");
+ uuidLabel.innerHTML = "UUID: ";
+ var uuidInput = document.createElement("input");
+ uuidLI.appendChild(uuidInput);
+ uuidInput.setAttribute("id", "editContextAlbumFormUuidInput");
+ uuidInput.setAttribute("type", "text");
+ uuidInput.setAttribute("name", "editContextAlbumFormUuidInput");
+ uuidInput.setAttribute("class", "field-long ebInput ebInput_width_full");
+ uuidInput.setAttribute("placeholder", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
+ if (contextAlbum && contextAlbum.uuid) {
+ uuidInput.value = contextAlbum.uuid;
+ }
+ if (createEditOrView != "CREATE") {
+ uuidInput.readOnly = true;
+ }
+
+ var disabled = (createEditOrView != "CREATE" && createEditOrView != "EDIT");
+
+ var descriptionLI = document.createElement("li");
+ formul.appendChild(descriptionLI);
+ var descriptionLabel = document.createElement("label");
+ descriptionLI.appendChild(descriptionLabel);
+ descriptionLabel.setAttribute("for", "editContextAlbumFormDescriptionTextArea");
+ descriptionLabel.innerHTML = "Description: ";
+ var descriptionTextArea = document.createElement("textarea");
+ descriptionLI.appendChild(descriptionTextArea);
+ descriptionTextArea.setAttribute("id", "editContextAlbumFormDescriptionTextArea");
+ descriptionTextArea.setAttribute("name", "editContextAlbumFormDescriptionTextArea");
+ descriptionTextArea.setAttribute("class", "field-long field-textarea ebTextArea ebTextArea_width_full");
+ if (contextAlbum && contextAlbum.description) {
+ descriptionTextArea.value = contextAlbum.description;
+ }
+ descriptionTextArea.readOnly = disabled;
+
+ var albumScopeLI = document.createElement("li");
+ formul.appendChild(albumScopeLI);
+ var albumScopeLabel = document.createElement("label");
+ albumScopeLI.appendChild(albumScopeLabel);
+ albumScopeLabel.setAttribute("for", "editContextAlbumFormAlbumScopeInput");
+ albumScopeLabel.innerHTML = "Context Album Scope: ";
+ var albumScopeInput = document.createElement("input");
+ albumScopeLI.appendChild(albumScopeInput);
+ albumScopeInput.setAttribute("id", "editContextAlbumFormAlbumScopeInput");
+ albumScopeInput.setAttribute("type", "text");
+ albumScopeInput.setAttribute("name", "editContextAlbumFormAlbumScopeInput");
+ albumScopeInput.setAttribute("class", "field-albumScope ebInput");
+ albumScopeInput.setAttribute("placeholder", "Global");
+ if (contextAlbum && contextAlbum.scope) {
+ albumScopeInput.value = contextAlbum.scope;
+ }
+ albumScopeInput.readOnly = disabled;
+
+ var albumReadOnlyLI = document.createElement("li");
+ formul.appendChild(albumReadOnlyLI);
+ var albumReadOnlyLabel = document.createElement("label");
+ albumReadOnlyLI.appendChild(albumReadOnlyLabel);
+ albumReadOnlyLabel.setAttribute("for", "editContextAlbumFormAlbumReadOnlyInput");
+ albumReadOnlyLabel.innerHTML = "Read Only? ";
+ var albumReadOnlyInput = document.createElement("input");
+ albumReadOnlyInput.setAttribute("type", "checkbox");
+ albumReadOnlyLI.appendChild(albumReadOnlyInput);
+ albumReadOnlyInput.setAttribute("id", "editContextAlbumFormAlbumReadOnlyCheckbox");
+ albumReadOnlyInput.setAttribute("name", "editContextAlbumFormAlbumReadOnlyCheckbox");
+ albumReadOnlyInput.setAttribute("class", "field-albumReadonlyCheckbox");
+ if (contextAlbum && contextAlbum.isWritable != null && contextAlbum.isWritable === false) {
+ albumReadOnlyInput.checked = true;
+ } else {
+ albumReadOnlyInput.checked = false;
+ }
+ albumReadOnlyInput.disabled = disabled;
+
+ var albumItemSchemaLI = document.createElement("li");
+ formul.appendChild(albumItemSchemaLI);
+ var albumItemSchemaLabel = document.createElement("label");
+ albumItemSchemaLI.appendChild(albumItemSchemaLabel);
+ albumItemSchemaLabel.setAttribute("for", "editContextAlbumFormAlbumItemSchema");
+ albumItemSchemaLabel.innerHTML = "Schema/Type of Album items: ";
+ var selected = null;
+ if (contextAlbum && contextAlbum.itemSchema != null && contextAlbum.itemSchema.name != null
+ && contextAlbum.itemSchema.version != null && contextAlbum.itemSchema.name != ""
+ && contextAlbum.itemSchema.version != "") {
+ selected = {
+ "name" : contextAlbum.itemSchema.name,
+ "version" : contextAlbum.itemSchema.version,
+ "displaytext" : contextAlbum.itemSchema.name + ":" + contextAlbum.itemSchema.version,
+ "contextAlbum" : contextAlbum
+ };
+ }
+ var selectDiv = dropdownList("editContextAlbumFormAlbumItemSchema", contextSchemas, selected, disabled, null);
+ if (selectDiv == null) {
+ console.error("Cannot create a Context Album because there are no contextSchemas to add to it");
+ alert("Cannot create a Context Album because there are no contextSchemas to add to it");
+ editContextAlbumForm_cancelPressed();
+ } else {
+ albumItemSchemaLI.appendChild(selectDiv);
+ }
+
+ var inputLI = document.createElement("li");
+ formul.appendChild(inputLI);
+ if (createEditOrView == "CREATE") {
+ var generateUUIDInput = document.createElement("button");
+ inputLI.appendChild(generateUUIDInput);
+ generateUUIDInput.setAttribute("id", "generateUUID");
+ generateUUIDInput.setAttribute("class", "ebBtn ebBtn_large");
+ generateUUIDInput.setAttribute("type", "submit");
+ generateUUIDInput.setAttribute("value", "Generate UUID");
+ generateUUIDInput.onclick = editContextAlbumForm_generateUUIDPressed;
+ generateUUIDInput.innerHTML = generateUUIDInput.getAttribute("value");
+ var inputSpan0 = document.createElement("span");
+ inputLI.appendChild(inputSpan0);
+ inputSpan0.setAttribute("class", "required");
+ inputSpan0.innerHTML = " ";
+ }
+ if (createEditOrView == "CREATE") {
+ var generateDescriptionInput = document.createElement("button");
+ inputLI.appendChild(generateDescriptionInput);
+ generateDescriptionInput.setAttribute("id", "generateDescription");
+ generateDescriptionInput.setAttribute("class", "ebBtn ebBtn_large");
+ generateDescriptionInput.setAttribute("type", "submit");
+ generateDescriptionInput.setAttribute("value", "Generate Description");
+ generateDescriptionInput.onclick = editContextAlbumForm_generateDescriptionPressed;
+ generateDescriptionInput.innerHTML = generateDescriptionInput.getAttribute("value");
+ var inputSpan1 = document.createElement("span");
+ inputLI.appendChild(inputSpan1);
+ inputSpan1.setAttribute("class", "required");
+ inputSpan1.innerHTML = " ";
+ }
+
+ var cancelInput = document.createElement("button");
+ inputLI.appendChild(cancelInput);
+ cancelInput.setAttribute("id", "cancel");
+ cancelInput.setAttribute("class", "ebBtn ebBtn_large");
+ cancelInput.setAttribute("type", "submit");
+ cancelInput.setAttribute("value", "Cancel");
+ cancelInput.onclick = editContextAlbumForm_cancelPressed;
+ cancelInput.innerHTML = cancelInput.getAttribute("value");
+
+ if (createEditOrView == "CREATE" || createEditOrView == "EDIT") {
+ var inputSpan2 = document.createElement("span");
+ inputLI.appendChild(inputSpan2);
+ inputSpan2.setAttribute("class", "required");
+ inputSpan2.innerHTML = " ";
+
+ var submitInput = document.createElement("button");
+ inputLI.appendChild(submitInput);
+ submitInput.setAttribute("id", "submit");
+ submitInput.setAttribute("class", "ebBtn ebBtn_large");
+ submitInput.setAttribute("type", "submit");
+ submitInput.setAttribute("value", "Submit");
+ submitInput.onclick = editContextAlbumForm_submitPressed;
+ submitInput.innerHTML = submitInput.getAttribute("value");
+ }
+
+ formParent.appendChild(contentelement);
+ scrollToTop();
+}
+
+function editContextAlbumForm_generateUUIDPressed() {
+ document.getElementById("editContextAlbumFormUuidInput").value = formUtils_generateUUID();
+}
+
+function editContextAlbumForm_generateDescriptionPressed() {
+ document.getElementById("editContextAlbumFormDescriptionTextArea").value = formUtils_generateDescription(document
+ .getElementById("editContextAlbumFormNameInput").value, document
+ .getElementById("editContextAlbumFormVersionInput").value, document
+ .getElementById("editContextAlbumFormUuidInput").value);
+}
+
+function editContextAlbumForm_cancelPressed() {
+ apexUtils_removeElement("editContextAlbumFormDiv");
+ contextAlbumTab_reset();
+}
+
+function editContextAlbumForm_submitPressed() {
+ var createEditOrView = $('#editContextAlbumForm').attr("createEditOrView");
+ if (!createEditOrView || createEditOrView == "" || (createEditOrView != "CREATE" && createEditOrView != "EDIT")) {
+ console.error("Invalid operation \"" + createEditOrView
+ + "\" passed to editContextAlbumForm_submitPressed function. Edit failed");
+ apexUtils_removeElement("editContextAlbumFormDiv");
+ contextAlbumTab_reset();
+ return;
+ }
+
+ var name = $('#editContextAlbumFormNameInput').val();
+ var version = $('#editContextAlbumFormVersionInput').val();
+
+ var selectedschema = document.getElementById("editContextAlbumFormAlbumItemSchema_dropdownList").selectedOption;
+ if (selectedschema == null) {
+ alert("Context Album \"" + name + "\" has no selected Album Item Schema/Type");
+ return false;
+ }
+ var itemschema = {
+ "name" : selectedschema.name,
+ "version" : selectedschema.version
+ };
+
+ var scope = $('#editContextAlbumFormAlbumScopeInput').val().toUpperCase();
+ if (scope != "APPLICATION" && scope != "EXTERNAL" && scope != "GLOBAL") {
+ var message = "Are you sure you want to set the scope ContextAlbum to \"" + scope
+ + "\"? Currently the only scope supported are: \"APPLICATION\", \"EXTERNAL\" and \"GLOBAL\"";
+ if (!apexUtils_areYouSure(message)) {
+ return false;
+ }
+ }
+ var readonly = $('#editContextAlbumFormAlbumReadOnlyCheckbox').prop('checked');
+ if (readonly && scope != "EXTERNAL") {
+ var message = "Are you sure you want to set the scope ContextAlbum to \""
+ + scope
+ + "\" while it is set as Read Only. It only makes sense to use readonly for \"EXTERNAL\" Context Albums. If this Album is readonly it cannot be set!";
+ if (!apexUtils_areYouSure(message)) {
+ return false;
+ }
+ }
+ if (!readonly && scope == "EXTERNAL") {
+ var message = "Are you sure you want to set the scope ContextAlbum to \""
+ + scope
+ + "\" while it is not set as Read Only. It only makes sense to use readonly for \"EXTERNAL\" Context Albums since EXTERNAL context cannot be set in policies.";
+ if (!apexUtils_areYouSure(message)) {
+ return false;
+ }
+ }
+
+ var jsonString = JSON.stringify({
+ "name" : name,
+ "version" : version,
+ "uuid" : $('#editContextAlbumFormUuidInput').val(),
+ "description" : $('#editContextAlbumFormDescriptionTextArea').val(),
+ "itemSchema" : itemschema,
+ "scope" : scope,
+ "writeable" : !readonly
+ });
+
+ if (createEditOrView == "CREATE") {
+ var requestURL = restRootURL + "/ContextAlbum/Create";
+ ajax_post(requestURL, jsonString, function(resultData) {
+ apexUtils_removeElement("editContextAlbumFormDiv");
+ contextAlbumTab_reset();
+ keyInformationTab_reset()
+ });
+ } else if (createEditOrView == "EDIT") {
+ var requestURL = restRootURL + "/ContextAlbum/Update";
+ ajax_put(requestURL, jsonString, function(resultData) {
+ apexUtils_removeElement("editContextAlbumFormDiv");
+ contextAlbumTab_reset();
+ keyInformationTab_reset()
+ });
+ }
+
+}