diff options
author | ramverma <ram.krishna.verma@ericsson.com> | 2018-07-13 12:32:32 +0100 |
---|---|---|
committer | ramverma <ram.krishna.verma@ericsson.com> | 2018-07-13 16:07:05 +0100 |
commit | 08b595c863b45e759e57ef419c83dad2b209df9c (patch) | |
tree | 02f9c3e7c74e5b1242d4a04c21ade4e4ea501063 /client/client-editor/src/main/resources/webapp/js/showhideTextarea.js | |
parent | 7fbb46185166f2699b624cd2616c6fdd74ef4832 (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/showhideTextarea.js')
-rw-r--r-- | client/client-editor/src/main/resources/webapp/js/showhideTextarea.js | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/client/client-editor/src/main/resources/webapp/js/showhideTextarea.js b/client/client-editor/src/main/resources/webapp/js/showhideTextarea.js new file mode 100644 index 000000000..b5cd90a5a --- /dev/null +++ b/client/client-editor/src/main/resources/webapp/js/showhideTextarea.js @@ -0,0 +1,125 @@ +/* + * ============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 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; +}; + |