<!--

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

-->

<!-- full/jndi.jsf -->

<!initPage 
        setResourceBundle(key="i18n" bundle="org.glassfish.admingui.core.Strings")
        setResourceBundle(key="i18njmail" bundle="org.glassfish.full.admingui.Strings")
        setResourceBundle(key="help_jmail" bundle="org.glassfish.full.admingui.Helplinks")
/>

<!composition template="/templates/default.layout"  guiTitle="$resource{i18njmail.jndi.pageTitle}" >
<!define name="content">

            <sun:form id="curstomResourcesForm"> 
                <sun:title 
                id="resourcesPageTitle" 
                title="$resource{i18njmail.jndi.pageTitle}" 
                helpText="$resource{i18njmail.jndi.pageTitleHelp}"
                />
                <sun:propertySheet>
                    <sun:propertySheetSection>
                        <sun:property>
                        <sun:hyperlink 
                            toolTip="$resource{i18n.tree.customResources.tooltip}"
                            url="/full/customResources.jsf" >
                            <sun:image url="/resource/full/images/jndi.gif" />
                            <sun:staticText text="$resource{i18n.tree.customResources}" />
                            </sun:hyperlink>
                        </sun:property>
                        <sun:property>
                            <sun:hyperlink 
                                toolTip="$resource{i18n.tree.externalResources.tooltip}" 
                                url="/full/externalResources.jsf" >
                                <sun:image url="/resource/full/images/jndi.gif" />
                                <sun:staticText text="$resource{i18n.tree.externalResources}" />
                            </sun:hyperlink>
                        </sun:property>
                    </sun:propertySheetSection>
                </sun:propertySheet>
                <sun:hidden id="helpKey" value="$resource{help_jmail.jndi}" />
            </sun:form>           
</define>
</composition>



