<!--

    Copyright (c) 2011, 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

-->

<!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.httpListenerNewPageTitle}" >
<!define name="content">
    <event>
    <!beforeCreate
        getRequestValue(key="configName" value=>$page{configName} );
        urlencode(value="#{pageSession.configName}" result="#{pageSession.encodedConfigName}");
        setPageSessionAttribute(key="parentPage" value="#{request.contextPath}/web/configuration/httpListeners.jsf");
        setPageSessionAttribute(key="childType" value="network-listener");
        setPageSessionAttribute(key="parentUrl", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}/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="edit" value="#{false}" );

        gf.getChildrenNamesList(endpoint="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}/network-config/transports/transport" result="#{pageSession.transportList}");
        mapPut(map="#{pageSession.valueMap}" key="transport" value="#{pageSession.transportList[0]}");
        mapPut(map="#{pageSession.valueMap}" key="threadpool" value="http-thread-pool")
        mapPut(map="#{pageSession.valueMap}" key="jkEnabled" value="false")

        createMap(result="#{pageSession.httpMap}");
        mapPut(map="#{pageSession.httpMap}" key="defaultVirtualServer" value="server");
        createMap(result="#{pageSession.protocolMap}");
    />
    </event>
            <sun:form id="propertyForm">
#include "/common/shared/alertMsg.inc"
    <sun:title id="propertyContentPage" title="$resource{i18n_web.httpListenerNewPageTitle}" helpText="$resource{i18n_web.httpListenerNewPageTitleHelp}">
    <!facet pageButtonsTop>
        <sun:panelGroup id="topButtons">
            <sun:button id="newButton" rendered="#{!edit}" text="$resource{i18n.button.OK}"
                onClick="if (guiValidate('#{reqMsg}','#{reqInt}','#{reqPort}')) {submitAndDisable(this, '$resource{i18n.button.Processing}');}; return false;" >
                    <!command
                    setPageSessionAttribute(key="protocolUrl", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}/network-config/protocols/protocol");
                    urlencode(value="#{pageSession.valueMap['name']}" result="#{requestScope.encodedListenerNameToCheck}");
                    gf.checkIfEndPointExist(endpoint="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}/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}}");
                    }
                    if("#{pageSession.protocolMap['securityEnabled']}=#{null}") {
                        mapPut(map="#{pageSession.protocolMap}", key="securityEnabled", value="false");
                    }
                   

                    //always create a protocol
                    mapPut(map="#{pageSession.valueMap}" key="newProtocolName" value="#{pageSession.valueMap['name']}-protocol" );
                    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.restRequest(endpoint="#{pageSession.protocolUrl}", attrs="#{pageSession.protocolMap}", method="POST");

                    createMap(result="#{pageSession.hMap}");
                    mapPut(map="#{pageSession.hMap}", key="target", value="#{pageSession.valueMap['target']}");
                    if ("#{pageSession.httpMap['serverName']}"){
                        mapPut(map="#{pageSession.hMap}", key="serverName" value="#{pageSession.httpMap['serverName']}");
                    }
                    mapPut(map="#{pageSession.hMap}", key="defaultVirtualServer" value="#{pageSession.httpMap['defaultVirtualServer']}");
                    gf.restRequest(endpoint="#{pageSession.protocolUrl}/#{pageSession.protocolName}/create-http", attrs="#{pageSession.hMap}" method="POST");
                    createMap(result="#{pageSession.networkListenerMap}");
                    foreach (var="attr" list={"name", "address", "port", "transport", "threadPool", "target" }) {
                        mapGet(Map="#{pageSession.valueMap}" Key="#{requestScope.attr}" Value="#{requestScope.val}");
                        if ("#{requestScope.val}"){
                            mapPut(map="#{pageSession.networkListenerMap}", key="#{requestScope.attr}" value="#{requestScope.val}");
                        }
                    }
                    mapPut(map="#{pageSession.networkListenerMap}", key="protocol", value="#{pageSession.protocolName}");
                    mapPut(map="#{pageSession.networkListenerMap}", key="jkEnabled" value="#{pageSession.valueMap['jkEnabled']}");
                    if("#{pageSession.valueMap['enabled']}=#{null}") {
                        mapPut(map="#{pageSession.networkListenerMap}", key="enabled", value="false");
                    }
                    if("#{pageSession.valueMap['jkEnabled']}=#{null}") {
                        mapPut(map="#{pageSession.networkListenerMap}", key="jkEnabled", value="false");
                    }
                    
                    gf.restRequest(endpoint="#{pageSession.parentUrl}/network-listener", attrs="#{pageSession.networkListenerMap}" method="POST");
                    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/configuration/httpListenerAttr.inc"

	<sun:hidden id="helpKey" value="$resource{help_web.httpListenerNew}" />
    </sun:form>

</define>
</composition>
