blob: febf2f37bf0fc6b0541e0e0e99573bfd917a8495 [file] [log] [blame]
<!--
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
-->
<!-- enableSecurityAdmin.jsf -->
<!initPage
setResourceBundle(key="i18nc" bundle="org.glassfish.common.admingui.Strings")
setResourceBundle(key="help_common" bundle="org.glassfish.common.admingui.Helplinks");
/>
<!composition template="/templates/default.layout" guiTitle="$resource{i18nc.domainLogs.PageTitle}"
guiOnLoad="admingui.nav.selectTreeNodeWithURL('#{request.contextPath}/common/appServer/serverInstDomainAttrs.jsf');">
<!define name="content">
<sun:form id="form">
#include "/common/appServer/domainTabs.inc"
#include "/common/shared/alertMsg.inc"
<!-- Page Title -->
<sun:title id="propertyContentPage" title="$resource{i18nc.domainLogs.PageTitle}" helpText="$resource{i18nc.domainLogs.PageHelp}">
<!facet pageButtonsTop>
<sun:panelGroup id="topButtons">
<sun:button id="collectLogFiles" text="$resource{i18n.button.collectLogFiles}"
onClick="return download(event);" >
</sun:button>
</sun:panelGroup>
</facet>
</sun:title>
<sun:hidden id="targetName" name="targetName" value="#{targetName}">
<!afterCreate
getClientId(component="$this{component}" clientId=>$page{targetNameId});
/>
</sun:hidden>
<sun:propertySheet id="propertySheetLogResults">
<sun:propertySheetSection id="propertSectionLogResults">
<sun:property id="clusterProp" labelAlign="left" noWrap="true" overlapLabel="false" rendered="#{requestScope.clusters.size() != 0}">
<sun:radioButton
id="clusterRB"
label="$resource{i18n.common.Cluster}"
name="targetType"
selected="#{targetType}"
selectedValue="cluster"
onChange="$('#{targetNameId}').value = $('#{clusterNameId}').value"/>
<sun:dropDown id="clusterDropDown" selected="#{clusterName}" labels="#{requestScope.clusters}" submitForm="true">
<!afterCreate
getClientId(component="$this{component}" clientId=>$page{clusterNameId});
/>
<!beforeCreate
/* Get the cluster list */
gf.restRequest(
endpoint="#{sessionScope.REST_URL}/clusters/cluster.json"
method="GET"
result="#{requestScope.resp}");
setAttribute(key="clusters" value="#{requestScope.resp.data.extraProperties.childResources}");
gf.getMapKeys(Map="#{requestScope.resp.data.extraProperties.childResources}" Keys="#{requestScope.clusters}" );
/>
<!command
setAttribute(key="targetType" value="cluster");
setAttribute(key="targetName" value="$attribute{clusterName}");
gf.navigate(page="#{request.contextPath}/common/appServer/domainLogs.jsf");
/>
</sun:dropDown>
</sun:property>
<sun:property id="instanceProp" labelAlign="left" noWrap="true" overlapLabel="false">
<sun:radioButton
id="instanceRB"
name="targetType"
label="$resource{i18n.common.Instance}"
selected="#{targetType}"
selectedValue="instance"
onChange="$('#{targetNameId}').value = $('#{instanceNameId}').value" />
<sun:dropDown id="instanceDropDown" name="instanceName" selected="#{instanceName}" labels="#{requestScope.servers}" submitForm="true">
<!afterCreate
getClientId(component="$this{component}" clientId=>$page{instanceNameId});
/>
<!beforeCreate
/* Get the server list */
gf.listInstances(optionKeys={"standaloneonly"} optionValues={"true"}, instances="#{requestScope.servers}" );
listAdd(list="#{requestScope.servers}", value="server" index="0");
if ($attribute{targetType}=#{null}) {
setAttribute(key="targetType" value="instance");
setAttribute(key="targetName" value="server");
}
/>
<!command
setAttribute(key="targetType" value="instance");
setAttribute(key="targetName" value="$attribute{instanceName}");
gf.navigate(page="#{request.contextPath}/common/appServer/domainLogs.jsf");
/>
</sun:dropDown>
</sun:property>
</sun:propertySheetSection>
</sun:propertySheet>
<sun:hidden id="helpKey" value="$resource{help_common.serverInstDomainLogs}" />
</sun:form>
<f:verbatim>
<script type="text/javascript">
function download(event) {
if (event.preventDefault) {
event.preventDefault();
}
var url = '#{request.contextPath}/download/log-files-' + $('#{targetNameId}').value + '.zip?contentSourceId=LogFiles&target=' + $('#{targetNameId}').value + '&restUrl=#{sessionScope.REST_URL}';
if(location.protocol != 'https:' &&
navigator.appName.indexOf("Internet Explorer") != -1 &&
navigator.appVersion.indexOf("MSIE 10") != -1) {
// bug#16542371 IE10 is super secure. Because of https community page, it throws
// SEC7111: HTTPS security is compromised by http://localhost:4848/download/log-files-server.zip?contentSourceId=LogFiles&target=server&restUrl=http://localhost:4848/management/domainindex.jsf
// and then iframe is loaded with res:// page, so it throws
// SCRIPT5: Access is denied
// for iframe.contentWindow
// thus GLASSFISH-17921 is not fixed for the case, let user see raw 500 error, if any.
window.location = url;
} else {
var iframe = $('download');
iframe.src = url;
setTimeout(function() {
var doc = iframe.contentWindow.document;
var matches = doc.body.innerHTML.match('Exception: (.+)?</pre>');
if (matches) {
matches = matches[1].match('Exception: (.+)$') || matches;
alert(matches[1]);
}
}, 1000);
return false;
}
}
</script>
<iframe id="download" src="#" style="display: none"></iframe>
</f:verbatim>
</define>
</composition>