| <!-- |
| |
| Copyright (c) 1997, 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 |
| |
| --> |
| |
| <!-- logViewer/logViewerRaw.jsf --> |
| |
| <ui:event type="initPage"> |
| initSessionAttributes(); |
| setResourceBundle(key="i18nc" bundle="org.glassfish.common.admingui.Strings") |
| setResourceBundle(key="i18n" bundle="org.glassfish.admingui.core.Strings"); |
| </ui:event> |
| |
| <sun:page id="page1"> |
| <ui:event type="beforeCreate"> |
| getRequestValue(key="instanceName" value="#{pageSession.instanceName}"); |
| urlencode(value="#{pageSession.instanceName}" encoding="UTF-8" result="#{pageSession.encodedInstanceName}"); |
| gf.isInstanceName(instanceName="#{pageSession.instanceName}" exists="#{requestScope.exists}" ); |
| if (! #{requestScope.exists}){ |
| gf.redirect("#{request.contextPath}/common/index.jsf"); |
| } |
| |
| </ui:event> |
| <sun:html id="html2"> |
| <sun:head id="propertyhead" title="$resource{i18nc.logViewerRaw.PageTitle}" debug="false" parseOnLoad="false"> |
| <h:outputScript name="jsf.js" library="jakarta.faces" target="head" /> |
| <sun:script url="/resource/common/js/adminjsf.js" /> |
| </sun:head> |
| <sun:body onLoad="javascript: logViewerRaw('/download/log/?contentSourceId=LogViewer&start=0&instanceName=#{pageSession.encodedInstanceName}&restUrl=' + encodeURIComponent('#{sessionScope.REST_URL}'))" id="body3"> |
| <sun:form id="propertyForm"> |
| #include "/common/shared/alertMsg_1.inc" |
| <!-- Page Title --> |
| <sun:title id="propertyContentPage" title="$resource{i18nc.logViewerRaw.PageTitle}" helpText="$resource{i18nc.logViewerRaw.PageHelp}"> |
| <!facet pageButtonsTop> |
| <sun:panelGroup id="topButtons"> |
| <sun:button id="closeButton" text="$resource{i18n.button.Close}" onClick="javascript: window.close(); return false;" > |
| </sun:button> |
| </sun:panelGroup> |
| </facet> |
| </sun:title> |
| <sun:propertySheet id="propertySheetLogResults"> |
| <sun:propertySheetSection id="propertSectionLogResults"> |
| <sun:property id="instanceProp" labelAlign="left" noWrap="true" overlapLabel="false" label="$resource{i18nc.logViewer.instanceLabel}"> |
| <sun:dropDown id="instance" selected="#{instanceName}" labels="#{requestScope.servers}" submitForm="true"> |
| <ui:event type="beforeCreate"> |
| /* Get the server list */ |
| gf.restRequest( |
| endpoint="#{sessionScope.REST_URL}/servers/server.json" |
| method="GET" |
| result="#{requestScope.servers}"); |
| gf.getMapKeys(Map="#{requestScope.servers.data.extraProperties.childResources}" Keys="#{requestScope.servers}"); |
| </ui:event> |
| <ui:event type="command"> |
| gf.navigate(page="#{request.contextPath}/common/logViewer/logViewerRaw.jsf"); |
| </ui:event> |
| </sun:dropDown> |
| </sun:property> |
| </sun:propertySheetSection> |
| |
| </sun:propertySheet> |
| <f:verbatim> |
| <pre id="log" style="padding: 10px; font-size: 143% /* it is 100% */"></pre> |
| <script type="text/javascript"> |
| function logViewerRaw(url) { |
| |
| var timeout = 1000; |
| |
| var success = function(xhr, targetId, requestedUrl) { |
| if (xhr.status == 200 && xhr.getResponseHeader('Content-Type') == "text/plain") { |
| if (xhr.responseText ) { |
| var records = document.createTextNode(xhr.responseText); |
| var documentX = window.pageXOffset || document.body.scrollLeft /* IE */; |
| var documentY = window.pageYOffset || document.body.scrollTop /* IE */; |
| // http://stackoverflow.com/questions/5060389/how-do-you-know-the-scroll-bar-has-reached-bottom-of-a-page |
| //var atBottom = $(window).scrollTop() == $(document).height() - $(window).height(); |
| var atBottom = (documentY == document.documentElement.scrollHeight - document.documentElement.clientHeight); |
| var $log = document.getElementById(targetId); |
| $log.appendChild(records); |
| if (atBottom) { |
| window.scrollTo(documentX, document.documentElement.scrollHeight - document.documentElement.clientHeight); |
| } |
| } |
| // get only new records next time |
| var nextRestUrl = xhr.getResponseHeader('X-Text-Append-Next'); |
| if (nextRestUrl != undefined) { |
| var matches = nextRestUrl.match(/start=\\d+/) |
| if (matches) { |
| url = url.replace(/start=\\d+/, matches[0]); |
| } |
| } |
| } |
| setTimeout(poll, timeout); |
| }; |
| |
| var poll = function() { |
| admingui.ajax.get(url, 'log', success); |
| } |
| |
| poll(); |
| } |
| </script> |
| </f:verbatim> |
| </sun:form> |
| </sun:body> |
| </sun:html> |
| </sun:page> |