blob: 56ed69bbc271847f3c3a2da8ff3f90bec790c50f [file] [log] [blame]
<!--
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>