summaryrefslogtreecommitdiffstats
path: root/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2020-07-16 10:24:08 +0100
committerliamfallon <liam.fallon@est.tech>2020-07-17 14:46:26 +0100
commit2de08a64e959788f288d82cd4410fee9424a11bc (patch)
tree93d90b4de43e6e52c7059e842cf8c5ba4d10ecca /gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js
parentee41415476b6ea1775a2f689eecb8713abf81f0c (diff)
Move apex policy editor to policy-gui
This review moves the code for the apex policy editor from the apex repo to the GUI repo. The docker part of the build will be moved in the next review because it is intertwined with the other two legacy apex GUIs and needs to be disentangled. Subsequent reviews on the apex repo will remove this code from there. Issue-ID: POLICY-2621 Change-Id: Ib9a43f463b839201656208a48ab48869a19f963a Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js')
-rw-r--r--gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js126
1 files changed, 126 insertions, 0 deletions
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js
new file mode 100644
index 0000000..e1ac0e7
--- /dev/null
+++ b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/showhideTextarea.js
@@ -0,0 +1,126 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * Modifications 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=========================================================
+ */
+
+function showHideTextarea_display_hide(showHideDivprefix) {
+ var ta = document.getElementById(showHideDivprefix + "_textarea");
+ var sh = document.getElementById(showHideDivprefix + "_showhide");
+ _showHideTextarea_display_hide(ta, sh)
+ if (sh["_clickable"] == true) {
+ sh.onclick = function(event) {
+ showHideTextarea_display_show(showHideDivprefix);
+ };
+ }
+}
+function showHideTextarea_display_show(showHideDivprefix) {
+ var ta = document.getElementById(showHideDivprefix + "_textarea");
+ var sh = document.getElementById(showHideDivprefix + "_showhide");
+ _showHideTextarea_display_show(ta, sh)
+ if (sh["_clickable"] == true) {
+ sh.onclick = function(event) {
+ showHideTextarea_display_hide(showHideDivprefix);
+ };
+ }
+}
+
+function _showHideTextarea_display_hide(txtarea, showhide) {
+ txtarea.classList.remove("showHideTextarea_displayed");
+ txtarea.classList.add("showHideTextarea_hidden");
+ showhide.classList.remove("showHideTextarea_show");
+ showhide.classList.add("showHideTextarea_hide");
+ showhide.innerHTML = showhide["showText"];
+}
+function _showHideTextarea_display_show(txtarea, showhide) {
+ txtarea.classList.add("showHideTextarea_displayed");
+ txtarea.classList.remove("showHideTextarea_hidden");
+ showhide.classList.add("showHideTextarea_show");
+ showhide.classList.remove("showHideTextarea_hide");
+ showhide.innerHTML = showhide["hideText"];
+}
+
+/*
+ * Create a hideable textarea, inside a div, with some text displayed in a
+ * clickable area to show the text area, and some other text displayed in the
+ * clickable area to hide the text area
+ *
+ * Each showHideTextarea must have a unique "id_prefix" vale as an identifier
+ * "content" is the text to be put into the text area "initialshow" is a
+ * boolean, if true the textarea will be shown initially, otherwise hidden
+ * "editable" is a boolean, if true the textarea will be editable, otherwise
+ * hidden "disabled" is a boolean, if true the textarea can be shown, otherwise
+ * it canot be shown "showText" is the text that is shown to be clicked to show
+ * the text area "hideText" is the text that is shown to be clicked to show the
+ * text area
+ *
+ * Returns a div representing the hideable textarea, with id 'id_prefix'. The
+ * returned div will a textarea called "id_prefix+'_textarea'", that can be
+ * queried to get the value of the textarea
+ */
+
+function showHideTextarea(id_prefix, content, _initialshow, _editable, _disabled, _showText, _hideText) {
+ var initialshow = (_initialshow != null ? _initialshow : false);
+ var editable = (_editable != null ? _editable : true);
+ var callback;
+
+ var retdiv = document.createElement("div");
+ var divname = id_prefix;
+ retdiv.setAttribute("id", divname);
+ retdiv.setAttribute("class", "showHideTextarea");
+ var showhide = document.createElement("div");
+ retdiv.appendChild(showhide);
+ showhide.setAttribute("id", divname + "_showhide");
+ showhide.innerHTML = '<label class="ebSwitcher"><input type="checkbox" class="ebSwitcher-checkbox" /><div class="ebSwitcher-body"><div class="ebSwitcher-onLabel">Show</div><div class="ebSwitcher-switch"></div><div class="ebSwitcher-offLabel">Hide</div></div></label>';
+ var parent = document.createElement("div");
+ var textArea = document.createElement("textarea");
+ parent.appendChild(textArea);
+ retdiv.appendChild(parent);
+ textArea.setAttribute("id", divname + "_textarea");
+ textArea.setAttribute("name", divname + "_textarea");
+ textArea.style.width = "100%";
+ textArea.style.height = "400px";
+ textArea.style.display = "none";
+ if (content != null) {
+ textArea.value = content;
+ }
+
+ if (!editable) {
+ textArea.readOnly = (!editable);
+ textArea.style.cursor = "text";
+ textArea.style["border-color"] = "#E3E3E3";
+ textArea.style["background-color"] = "#F0F0F0";
+ textArea.style.color = "#B2B2B2";
+ }
+
+ var shown = false;
+ var checkbox = $(showhide).find('input:checkbox:first');
+ checkbox.change(function(event) {
+ if (!shown) {
+ createEditArea(textArea.getAttribute("id"), {
+ is_editable : editable
+ });
+ shown = true;
+ } else {
+ $(parent).toggle("fast");
+ }
+ });
+
+ return retdiv;
+};
+