<!--

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

-->

<!-- orb/orb.jsf -->

<!initPage
    setResourceBundle(key="i18n_corba" bundle="org.glassfish.corba.admingui.Strings");
    setResourceBundle(key="help_corba" bundle="org.glassfish.corba.admingui.Helplinks");
/>
<!composition template="/templates/default.layout"  guiTitle="$resource{i18n_corba.headings.Orb}" >
<!define name="content">
<event>
    <!beforeCreate
        getRequestValue(key="configName" value=>$page{configName} default="server-config");
        setPageSessionAttribute(key="childType" value="orb");
        setPageSessionAttribute(key="parentUrl", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}/iiop-service");
        setPageSessionAttribute(key="selfUrl", value="#{pageSession.parentUrl}/#{pageSession.childType}");
        setPageSessionAttribute(key="rest-api" value="true");
        gf.getEntityAttrs(endpoint="#{pageSession.selfUrl}.json", valueMap="#{pageSession.valueMap}");
        gf.restRequest(endpoint="#{pageSession.selfUrl}/property.json" method="GET" result="#{requestScope.propTable}");
        setPageSessionAttribute(key="tableList" value="#{requestScope.propTable.data.extraProperties.properties}");
        setPageSessionAttribute(key="selfPage" value="#{request.contextPath}/corba/orb.jsf?configName=#{pageSession.configName}");

        setPageSessionAttribute(key="has2Objects" value="#{true}" );  //for editPageButtons.inc
        setPageSessionAttribute(key="childType2" value="iiop-service");
        setPageSessionAttribute(key="parentUrl2", value="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}");
        setPageSessionAttribute(key="selfUrl2", value="#{pageSession.parentUrl2}/#{pageSession.childType2}");
        setPageSessionAttribute(key="rest-api" value="true");
        setPageSessionAttribute(key="convertToFalseList2" value={"clientAuthenticationRequired"});
        gf.getEntityAttrs(endpoint="#{pageSession.selfUrl2}.json", valueMap="#{pageSession.valueMap2}");
        //set the following for including buttons.inc
        setPageSessionAttribute(key="edit" value="#{true}" );
        setPageSessionAttribute(key="showDefaultButton" value="#{true}" );
        setPageSessionAttribute(key="showCancelButton" value="#{false}" );
        setPageSessionAttribute(key="hasPropertySheet" value="#{true}" );
        setPageSessionAttribute(key="hasPropertyTable" value="#{true}" );

    />
    </event>

    <sun:form id="form1">
#include "/common/shared/alertMsg.inc"
<sun:title id="propertyContentPage" title="$resource{i18n_corba.headings.Orb}" helpText="$resource{i18n_corba.orb.OrbInfo}" >
#include "/common/shared/editPageLoadDefaultButton.inc"
    <!facet pageButtonsTop>
        <sun:panelGroup id="topButtons">
            <sun:button id="saveButton" rendered="#{edit}" text="$resource{i18n.button.Save}"
                    onClick="if (guiValidate('#{reqMsg}','#{reqInt}','#{reqPort}')) {submitAndDisable(this, '$resource{i18n.button.Processing}');}; return false;" >
                <!command
                    convertArrayToCommaString(array="#{pageSession.selectedThreadPools}"  commaString="#{requestScope.tmp}");
                    mapPut(map="#{pageSession.valueMap}" key="useThreadPoolIds" value="$attribute{tmp}");
                    //convertArrayToCommaString(array="#{pageSession.selectedThreadPools}"  commaString="#{pageSession.valueMap['useThreadPoolIds']}")
                    gf.createEntity(endpoint="#{pageSession.selfUrl}" attrs="#{pageSession.valueMap}"
                        skipAttrs="#{pageSession.skipAttrsList}"
                        convertToFalse="#{pageSession.convertToFalseList}");
                    gf.createEntity(endpoint="#{pageSession.selfUrl2}" attrs="#{pageSession.valueMap2}"
                            skipAttrs="#{pageSession.skipAttrsList2}"
                            convertToFalse="#{pageSession.convertToFalseList2}")
                    getUIComponent(clientId="$pageSession{propertyTableRowGroupId}", component=>$attribute{tableRowGroup});
                    getAllSingleMapRows(TableRowGroup="$attribute{tableRowGroup}",  Rows=>$attribute{newList});
                    removeEmptyProps(props="#{pageSession.tableList}" modifiedProps="#{pageSession.tableList}");
                    javaToJSON(obj="#{pageSession.tableList}" json="#{requestScope.tmpJSON}");
		    gf.restRequest(endpoint="#{pageSession.selfUrl}/property.json" method="POST" data="#{requestScope.tmpJSON}" result="#{requestScope.restResponse}");
                    prepareSuccessfulMsg();
                    gf.redirect(page="#{selfPage}&alertType=${alertType}&alertSummary=${alertSummary}&alertDetail=${alertDetail}");
                />
            </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>
     <!-- PropertySheet .... -->
     <sun:propertySheet id="propertySheet">
#include "/common/shared/configNameSection.inc"
         <!-- Text Field section -->
         <sun:propertySheetSection id="propertySectionTextField">
            <sun:property id="ThreadPoolsProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_corba.orb.threadPoolIdLabel}" helpText="$resource{i18n_corba.orb.threadPoolIdHelp}">
            <sun:listbox id="ThreadPools" immediate="#{true}" multiple="#{true}"  rows="$int{4}" required="#{true}"
                labels="$pageSession{availableThreadPools}"
                selected="#{pageSession.selectedThreadPools}" >
                <!beforeCreate
                    gf.getChildrenNamesList(endpoint="#{sessionScope.REST_URL}/configs/config/#{pageSession.configName}/thread-pools/thread-pool"
                          result="#{pageSession.threadPools}");
                    getListBoxOptions(
                        availableList="#{pageSession.threadPools}",
                        selectedCommaString="#{pageSession.valueMap['useThreadPoolIds']}",
                        availableListResult="#{pageSession.availableThreadPools}",
                        selectedOptions="#{pageSession.selectedThreadPools}");
                />
                </sun:listbox>
            </sun:property>
            <sun:property id="MaxMsgSizeProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_corba.orb.maxMsgSizeLabel}" helpText="$resource{i18n_corba.orb.maxMsgSizeHelp}">
                <sun:dropDown id="MaxMsgSize" selected="#{pageSession.valueMap['messageFragmentSize']}" labels="$pageSession{availableMsgSize}" >
                    <!beforeCreate
                        createList(size="0" result="#{pageSession.availableMsgSize}");
                        listAdd(value="#{pageSession.valueMap['messageFragmentSize']}" list="#{pageSession.availableMsgSize}");
                        listAdd(value="1024" list="#{pageSession.availableMsgSize}");
                        listAdd(value="2048" list="#{pageSession.availableMsgSize}");
                        listAdd(value="4096" list="#{pageSession.availableMsgSize}");
                        listAdd(value="8192" list="#{pageSession.availableMsgSize}");
                        listAdd(value="16384" list="#{pageSession.availableMsgSize}");
                        listAdd(value="32768" list="#{pageSession.availableMsgSize}");
                    />
                </sun:dropDown>
                <sun:staticText id="bytes" style="padding: 8pt" text="$resource{i18n.common.Bytes}"/>
            </sun:property>
            <sun:property id="TotalConnsProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_corba.orb.totalConnsLabel}" helpText="$resource{i18n_corba.orb.totalConnsHelp}">
                <sun:textField id="TotalConns" styleClass="integer" columns="$int{20}" maxLength="#{sessionScope.fieldLengths['maxLength.orb.totalConns']}" text="#{pageSession.valueMap['maxConnections']}" >
                 </sun:textField>
            </sun:property>
            <sun:property id="IIOPClientProp"  labelAlign="left" noWrap="#{true}" overlapLabel="#{false}" label="$resource{i18n_corba.orb.iiopClientLabel}" >
                <sun:checkbox label="$resource{i18n.desc.Required}" selected="#{pageSession.valueMap2['clientAuthenticationRequired']}" selectedValue="true" />
            </sun:property>
         </sun:propertySheetSection>
     </sun:propertySheet>

#include "/common/shared/propertyDescTable.inc"

	<sun:hidden id="helpKey" value="$resource{help_corba.orb}" />
    </sun:form>
    "<br/>
#include "/common/shared/changeButtonsJS.inc"
</define>
</composition>

