| <!-- | |
| Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved. | |
| This program and the accompanying materials are made available under the | |
| terms of the Eclipse Public License v. 2.0, which is available at | |
| http://www.eclipse.org/legal/epl-2.0. | |
| This Source Code may also be made available under the following Secondary | |
| Licenses when the conditions for such availability set forth in the | |
| Eclipse Public License v. 2.0 are satisfied: GNU General Public License, | |
| version 2 with the GNU Classpath Exception, which is available at | |
| https://www.gnu.org/software/classpath/license.html. | |
| SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 | |
| --> | |
| <f:verbatim> | |
| <script type="text/javascript"> | |
| function disableTableField(selStr, selValidCNVal) { | |
| var val = document.getElementById("$pageSession{valMethod}").value; | |
| var isConnValidation = document.getElementById("$pageSession{conValidationId}").checked; | |
| if (isConnValidation && val == 'table'){ | |
| disableAllJdbcRadioButtons(false, 'table'); | |
| var index = findSelectOptionIndex(document.getElementById("$pageSession{tableDropdownTextId}"), selStr); | |
| var optionsExists = (document.getElementById("$pageSession{tableDropdownTextId}").options.length > 0); | |
| var isSelStrExists = (selStr != null) && (selStr != '') && (isWhitespace(selStr) == false); | |
| if (index == undefined || index == -1) { | |
| if (isSelStrExists == true) { | |
| enableJdbcRadioButtons('text', 'table'); | |
| } | |
| else { | |
| if (optionsExists == true) { | |
| enableJdbcRadioButtons('dropdown', 'table'); | |
| } else { | |
| enableJdbcRadioButtons('text', 'table'); | |
| } | |
| } | |
| } else { | |
| if(index >= 0) { | |
| document.getElementById('$pageSession{tableTextId}').value=''; | |
| enableJdbcRadioButtons('dropdown', 'table'); | |
| } | |
| else if('$pageSession{myTableOption}' == 'dropdown') { | |
| enableJdbcRadioButtons('dropdown', 'table'); | |
| } else { | |
| enableJdbcRadioButtons('text', 'table'); | |
| } | |
| } | |
| enableBtnComponent('$pageSession{tableNamesButtonId}'); | |
| disableComponent('$pageSession{validCNDropdownTextId}', 'select'); | |
| disableTextComponent('$pageSession{validCNTextId}'); | |
| disableAllJdbcRadioButtons(true, 'validCN'); | |
| }else if (isConnValidation && val == 'custom-validation') { | |
| disableAllJdbcRadioButtons(false, 'validCN'); | |
| disableBtnComponent('$pageSession{tableNamesButtonId}'); | |
| var dropDownVal = document.getElementById("$pageSession{validCNDropdownTextId}").value; | |
| if (dropDownVal == '') { | |
| enableJdbcRadioButtons('text', 'validCN'); | |
| } else { | |
| if(dropDownVal == selValidCNVal) { | |
| document.getElementById('$pageSession{validCNTextId}').value=''; | |
| enableJdbcRadioButtons('dropdown', 'validCN'); | |
| } | |
| else if('$pageSession{myValidCNOption}' == 'dropdown') { | |
| enableJdbcRadioButtons('dropdown', 'validCN'); | |
| } else { | |
| enableJdbcRadioButtons('text', 'validCN'); | |
| } | |
| } | |
| disableComponent('$pageSession{tableDropdownTextId}', 'select'); | |
| disableTextComponent('$pageSession{tableTextId}'); | |
| disableAllJdbcRadioButtons(true, 'table'); | |
| }else{ | |
| disableComponent('$pageSession{tableDropdownTextId}', 'select'); | |
| disableBtnComponent('$pageSession{tableNamesButtonId}'); | |
| disableTextComponent('$pageSession{tableTextId}'); | |
| disableAllJdbcRadioButtons(true, 'table'); | |
| disableComponent('$pageSession{validCNDropdownTextId}', 'select'); | |
| disableTextComponent('$pageSession{validCNTextId}'); | |
| disableAllJdbcRadioButtons(true, 'validCN'); | |
| } | |
| } | |
| function disableTextComponent(textId) { | |
| var textVal = document.getElementById(textId).value; | |
| disableComponent(textId, 'text'); | |
| document.getElementById(textId).value=textVal; | |
| } | |
| function getDropdownInfo(tableAttrs, validCNAttrs, tableVal, validCNVal) { | |
| var isConnValidation = document.getElementById("$pageSession{conValidationId}").checked; | |
| var methodVal = document.getElementById("$pageSession{valMethod}").value; | |
| if (isConnValidation && methodVal == 'custom-validation'){ | |
| var c= validCNAttrs.toString(); | |
| admingui.ajax.invoke("gf.restRequest", { | |
| endpoint:"#{sessionScope.REST_URL}/resources/get-validation-class-names", | |
| attrs:c, | |
| method:"get", | |
| result:""}, function(result) { | |
| processResult(result, validCNVal, "validationClassNames=", "$pageSession{validCNDropdownTextId}"); | |
| }, 3, false); | |
| } | |
| } | |
| function getValidationTableNames(tableAttrs, tableVal) { | |
| var b= tableAttrs.toString(); | |
| var size = document.getElementById("$pageSession{tableDropdownTextId}").options.length; | |
| if (size < 1) { | |
| admingui.ajax.invoke("gf.restRequest", { | |
| endpoint:"#{sessionScope.REST_URL}/resources/get-validation-table-names", | |
| attrs:b, | |
| method:"get", | |
| result:""}, function(result) { | |
| processResult(result, tableVal, "validationTableNames=", "$pageSession{tableDropdownTextId}"); | |
| }, 3, false); | |
| } | |
| } | |
| function processResult(result, selStr, searchStr, dropdownId) { | |
| if(result.result.data != undefined){ | |
| var exitCode = result.result.data.exit_code.toString(); | |
| if (exitCode == "SUCCESS") { | |
| var res = result.result.data.extraProperties.toString(); | |
| if (res != null) { | |
| var index = res.indexOf(searchStr); | |
| if (index != -1) { | |
| var lastIndex = res.indexOf("]", index + searchStr.length + 1); | |
| var tableNamesStr = res.substring(index + searchStr.length + 1, lastIndex); | |
| setDropdownOptions(tableNamesStr, selStr, dropdownId); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| function setDropdownOptions(tableNamesStr, selStr, dropdownId) { | |
| var strs = tableNamesStr.split(", "); | |
| for (var i = 0; i < strs.length; i++){ | |
| var optn; | |
| optn = document.createElement("option"); | |
| optn.value = optn.text = strs[i]; | |
| if(selStr == strs[i]) { | |
| optn.selected = true; | |
| } | |
| document.getElementById(dropdownId).options.add(optn); | |
| } | |
| } | |
| function disableAllJdbcRadioButtons(opt, type) { | |
| if (type=='table') { | |
| disableTwoRadioButtons(opt, '$pageSession{tablePropId}', '$pageSession{tableOptionId}'); | |
| } else { | |
| disableTwoRadioButtons(opt, '$pageSession{validCNPropId}', '$pageSession{validCNOptionId}'); | |
| } | |
| } | |
| function enableJdbcRadioButtons(opt, type) { | |
| if (type=='table') { | |
| enableRadioButtons(opt, '$pageSession{tableTextId}', '$pageSession{tableDropdownTextId}', '$pageSession{tablePropId}', '$pageSession{tableOptionId}'); | |
| } else { | |
| enableRadioButtons(opt, '$pageSession{validCNTextId}', '$pageSession{validCNDropdownTextId}', '$pageSession{validCNPropId}', '$pageSession{validCNOptionId}'); | |
| } | |
| } | |
| function enableRadioButtons(opt, textId, dropdownId, propId, optionId){ | |
| if(opt == 'dropdown') { | |
| var textVal = document.getElementById(textId).value; | |
| disableComponent(textId, 'text'); | |
| document.getElementById(textId).value=textVal; | |
| enableComponent(dropdownId, 'select'); | |
| #{themeJavascript.JS_PREFIX}.radiobutton.setChecked(propId+':optB', false); | |
| #{themeJavascript.JS_PREFIX}.radiobutton.setChecked(propId+':optA', true); | |
| document.getElementById(optionId).value='dropdown'; | |
| }else{ | |
| enableComponent(textId, 'text'); | |
| disableComponent(dropdownId, 'select'); | |
| getTextElement(textId).focus(); | |
| #{themeJavascript.JS_PREFIX}.radiobutton.setChecked(propId+':optB', true); | |
| #{themeJavascript.JS_PREFIX}.radiobutton.setChecked(propId+':optA', false); | |
| document.getElementById(optionId).value='text'; | |
| } | |
| } | |
| function disableTwoRadioButtons(opt, propId, optionId){ | |
| #{themeJavascript.JS_PREFIX}.radiobutton.setDisabled(propId+':optA', opt); | |
| #{themeJavascript.JS_PREFIX}.radiobutton.setDisabled(propId+':optB', opt); | |
| document.getElementById(optionId).value=''; | |
| } | |
| </script> | |
| </f:verbatim> |