blob: 6baf6b1b5a822abcfa01c2c6997717502f90b50b [file] [log] [blame]
<!--
Copyright (c) 2009, 2020 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
-->
<!-- grizzly/networkListenerNew.jsf -->
<!initPage
setResourceBundle(key="i18n_web" bundle="org.glassfish.web.admingui.Strings");
setResourceBundle(key="help_web" bundle="org.glassfish.web.admingui.Helplinks");
/>
<!composition template="/templates/default.layout" guiTitle="$resource{i18n_web.grizzly.networkListenerNewPageTitle}" >
<!define name="content">
<event>
<!beforeCreate
getRequestValue(key="configName" value=>$page{configName});
urlencode(value="#{pageSession.configName}" encoding="UTF-8" result="#{pageSession.encodedConfigName}");
setPageSessionAttribute(key="parentPage" value="#{request.contextPath}/web/grizzly/networkListeners.jsf");
setPageSessionAttribute(key="childType" value="network-listener");
setPageSessionAttribute(key="parentUrl", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.encodedConfigName}/network-config/network-listeners");
setPageSessionAttribute(key="selfUrl", value="#{pageSession.parentUrl}/#{pageSession.childType}");
setPageSessionAttribute(key="rest-api" value="true");
gf.getDefaultValues(endpoint="#{pageSession.selfUrl}", valueMap="#{pageSession.valueMap}");
mapPut(map="#{pageSession.valueMap}" key="target" value="#{pageSession.configName}");
setPageSessionAttribute(key="convertToFalseList" value={"Enabled"});
setPageSessionAttribute(key="showDefaultButton" value="#{true}" );
setPageSessionAttribute(key="showCancelButton" value="#{true}" );
//set the following for including buttons.inc
setPageSessionAttribute(key="edit" value="#{false}" );
setPageSessionAttribute(key="showDefaultButton" value="#{true}" );
setPageSessionAttribute(key="showCancelButton" value="#{true}" );
setPageSessionAttribute(key="hasPropertySheet" value="#{true}" );
setPageSessionAttribute(key="hasPropertyTable" value="#{false}" );
/>
</event>
" <script type="text/javascript">admingui.nav.selectTreeNodeById(admingui.nav.TREE_ID+":configurations:#{pageSession.encodedConfigName}:networkConfig:networkListeners");</script>
<sun:form id="propertyForm">
#include "/common/shared/alertMsg.inc"
<sun:title id="propertyContentPage" title="$resource{i18n_web.grizzly.networkListenerNewPageTitle}" helpText="$resource{i18n_web.grizzly.networkListenerNewPageTitleHelp}">
<!facet pageButtonsTop>
<sun:panelGroup id="topButtons">
<sun:button id="newButton" rendered="#{!edit}" text="$resource{i18n.button.OK}"
onClick="if (checkRequired()) {submitAndDisable(this, '$resource{i18n.button.Processing}');}; return false;" >
<!command
setPageSessionAttribute(key="protocolUrl", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.encodedConfigName}/network-config/protocols/protocol");
urlencode(value="#{pageSession.valueMap['name']}" result="#{requestScope.encodedListenerNameToCheck}");
gf.checkIfEndPointExist(endpoint="#{sessionScope.REST_URL}/configs/config/#{pageSession.encodedConfigName}/network-config/network-listeners/network-listener/#{requestScope.encodedListenerNameToCheck}", exists="#{requestScope.exist}");
if (#{requestScope.exist}){
gf.handleError(detail="$resource{i18n_web.grizzly.networkListener.alreadyExist, #{requestScope.encodedListenerNameToCheck}}");
}
createMap(result="#{pageSession.protocolMap}");
if("#{pageSession.valueMap['securityEnabled']}=#{null}") {
mapPut(map="#{pageSession.valueMap}", key="securityEnabled", value="false");
}
if("#{pageSession.valueMap['jkenabled']}=#{null}") {
mapPut(map="#{pageSession.valueMap}", key="jkenabled", value="false");
}
if("#{pageSession.valueMap['enabled']}=#{null}") {
mapPut(map="#{pageSession.valueMap}", key="enabled", value="false");
}
mapPut(map="#{pageSession.protocolMap}", key="securityEnabled", value="#{pageSession.valueMap['securityEnabled']}");
if ("#{pageSession.valueMap['protocolChoice']}=create") {
urlencode(value="#{pageSession.valueMap['newProtocolName']}" result="#{requestScope.encodedProtocolToCheck}");
gf.checkIfEndPointExist(endpoint="#{pageSession.protocolUrl}/#{requestScope.encodedProtocolToCheck}", exists="#{requestScope.pExist}");
if (#{requestScope.pExist}){
gf.handleError(detail="$resource{i18n_web.grizzly.protocol.alreadyExist, #{requestScope.encodedProtocolToCheck}}");
}
mapPut(map="#{pageSession.protocolMap}", key="name", value="#{pageSession.valueMap['newProtocolName']}");
mapPut(map="#{pageSession.protocolMap}", key="target", value="#{pageSession.valueMap['target']}");
setPageSessionAttribute(key="protocolName", value="#{pageSession.valueMap['newProtocolName']}");
gf.createEntity(endpoint="#{pageSession.protocolUrl}", attrs="#{pageSession.protocolMap}");
createMap(result="#{pageSession.httpMap}");
mapPut(map="#{pageSession.httpMap}", key="defaultVirtualServer", value="#{pageSession.valueMap['defaultVirtualServer']}");
mapPut(map="#{pageSession.httpMap}", key="target", value="#{pageSession.valueMap['target']}");
gf.createEntity(endpoint="#{pageSession.protocolUrl}/#{pageSession.protocolName}/create-http", attrs="#{pageSession.httpMap}");
}
if ("!(#{pageSession.valueMap['protocolChoice']}=create)") {
createMap(result="#{pageSession.protocolMap}");
mapPut(map="#{pageSession.protocolMap}", key="Name", value="#{pageSession.valueMap['existingProtocolName']}");
setPageSessionAttribute(key="protocolName", value="#{pageSession.valueMap['existingProtocolName']}");
gf.restRequest(endpoint="#{pageSession.protocolUrl}/#{pageSession.protocolName}", attrs="#{pageSession.protocolMap}", method="post");
}
createMap(result="#{pageSession.networkListenerMap}");
mapPut(map="#{pageSession.networkListenerMap}", key="name", value="#{pageSession.valueMap['name']}");
mapPut(map="#{pageSession.networkListenerMap}", key="address", value="#{pageSession.valueMap['address']}");
mapPut(map="#{pageSession.networkListenerMap}", key="port", value="#{pageSession.valueMap['port']}");
mapPut(map="#{pageSession.networkListenerMap}", key="transport", value="#{pageSession.valueMap['transport']}");
mapPut(map="#{pageSession.networkListenerMap}", key="threadpool", value="#{pageSession.valueMap['threadpool']}");
mapPut(map="#{pageSession.networkListenerMap}", key="enabled", value="#{pageSession.valueMap['enabled']}");
mapPut(map="#{pageSession.networkListenerMap}", key="jkenabled", value="#{pageSession.valueMap['jkenabled']}");
mapPut(map="#{pageSession.networkListenerMap}", key="protocol", value="#{pageSession.protocolName}");
mapPut(map="#{pageSession.networkListenerMap}", key="target", value="#{pageSession.valueMap['target']}");
gf.createEntity(endpoint="#{pageSession.parentUrl}/network-listener", attrs="#{pageSession.networkListenerMap}");
gf.restRequest(endpoint="#{pageSession.protocolUrl}/#{pageSession.protocolName}/http.json", method="get", result="#{pageSession.protocolAttrHttp}");
setPageSessionAttribute(key="vsName" value="#{pageSession.protocolAttrHttp.data.extraProperties.entity['defaultVirtualServer']}");
gf.redirect(page="#{pageSession.parentPage}?configName=#{configName}");
/>
</sun:button>
<sun:button id="cancelButton" immediate="#{true}" primary="#{false}" rendered="#{pageSession.showCancelButton}" text="$resource{i18n.button.Cancel}" >
<!command
gf.redirect(page="#{parentPage}?configName=#{configName}");
/>
</sun:button>
</sun:panelGroup>
</facet>
</sun:title>
#include "/web/grizzly/networkListenerAttr.inc"
<sun:hidden id="helpKey" value="$resource{help_web.networkListenerNew}" />
</sun:form>
<f:verbatim>
<script type="text/javascript">
function radioBtnAction(choice) {
var compt = getTextElement('#{pageSession.protocolChoiceId}');
compt.value = choice;
if (choice == 'create'){
disableComponent('$pageSession{PdropDownId}', 'select');
enableComponent('$pageSession{pNameId}', 'text');
enableComponent('$pageSession{newVsId}', 'select');
}else{
enableComponent('$pageSession{PdropDownId}', 'select');
disableComponent('$pageSession{pNameId}', 'text');
disableComponent('$pageSession{newVsId}', 'select');
}
}
function setProtocolName(){
var currentChoice = getTextElement('#{pageSession.protocolChoiceId}').value;
if (currentChoice == 'create'){
getTextElement('#{pageSession.pNameId}').value = getTextElement('#{pageSession.listenerId}').value+"-protocol";
}
}
function checkRequired(){
var currentChoice = getTextElement('#{pageSession.protocolChoiceId}').value;
if (currentChoice == 'create'){
var component = getTextElement('#{pageSession.pNameId}');
if (component.value==''){
component.select();
component.focus();
return showAlert('#{reqMsg}' + ' ' + getLabel(component));
}
}
return guiValidate('#{reqMsg}','#{reqInt}','#{reqPort}');
}
function disableProtocolNameField() {
var methodType = document.getElementById("$pageSession{protocolChoice}");
require(['webui/suntheme/field'], function (field) {
field.setDisabled("$pageSession{protocolNmField}", methodType.getSelectedValue() != '__create__');
});
}
</script>
</f:verbatim>
</define>
</composition>