Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 72a1811

Browse files
committed
Use iframe to display log files
1 parent 5e03bb3 commit 72a1811

File tree

1 file changed

+23
-15
lines changed
  • logicaldoc-gui/src/main/java/com/logicaldoc/gui/frontend/client/system

1 file changed

+23
-15
lines changed

‎logicaldoc-gui/src/main/java/com/logicaldoc/gui/frontend/client/system/LogPanel.java‎

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ public void onDraw() {
4343
htmlPane.setHeight100();
4444
htmlPane.setShowEdges(true);
4545
htmlPane.setContentsURL(GWT.getHostPageBaseURL() + "log?appender=" + appender);
46-
htmlPane.setContentsType(ContentsType.FRAGMENT);
47-
htmlPane.addContentLoadedHandler(loaded -> scrollBottom());
46+
htmlPane.setContentsType(ContentsType.PAGE);
4847

4948
ToolStrip toolStrip = new ToolStrip();
5049
toolStrip.setHeight(20);
@@ -54,8 +53,9 @@ public void onDraw() {
5453
SelectItem logFileSelector = ItemFactory.newLogAppenderSelector();
5554
logFileSelector.setValue(appender);
5655
logFileSelector.addChangedHandler(changed -> {
57-
htmlPane.setContentsURL(GWT.getHostPageBaseURL() + "log?appender=" + changed.getValue().toString());
58-
LogPanel.scrollLogPanelToBottom();
56+
LogPanel.this.appender = changed.getValue().toString();
57+
htmlPane.setContentsURL(GWT.getHostPageBaseURL() + "log?appender=" + LogPanel.this.appender);
58+
scrollBottom();
5959
});
6060

6161
SelectItem levelSelector = ItemFactory.newLogLevelSelector();
@@ -83,10 +83,10 @@ public void onDraw() {
8383
});
8484

8585
ToolStripButton bottom = new ToolStripButton(I18N.message("bottom"));
86-
bottom.addClickHandler(event -> LogPanel.scrollLogPanelToBottom());
86+
bottom.addClickHandler(event -> LogPanel.scrollLogPanelToBottom(appender));
8787

8888
ToolStripButton top = new ToolStripButton(I18N.message("top"));
89-
top.addClickHandler(event -> LogPanel.scrollLogPanelToTop());
89+
top.addClickHandler(event -> LogPanel.scrollLogPanelToTop(appender));
9090

9191
ToolStripButton download = new ToolStripButton(I18N.message("downloadlogs"));
9292
download.addClickHandler(event -> Util.download(Util.contextPath() + "log?appender=all"));
@@ -113,6 +113,8 @@ public void onDraw() {
113113
toolStrip.addFill();
114114
addMember(toolStrip);
115115
addMember(htmlPane);
116+
117+
scrollBottom();
116118
}
117119

118120
private void onDeleteLogger(ComboBoxItem loggerSelector) {
@@ -162,20 +164,26 @@ public int hashCode() {
162164

163165
private void scrollBottom() {
164166
Scheduler.get().scheduleFixedDelay(() -> {
165-
LogPanel.scrollLogPanelToBottom();
167+
LogPanel.scrollLogPanelToBottom(appender);
166168
return false;
167169
}, 1000);
168170
}
169171

170-
public static native void scrollLogPanelToBottom() /*-{
171-
var xpath = "//div[contains(@eventproxy,'isc_HTMLPane_')]";
172-
var logDiv = $wnd.document.evaluate(xpath, $wnd.document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
173-
logDiv.scrollTop = logDiv.scrollHeight;
172+
public static native void scrollLogPanelToBottom(String appender) /*-{
173+
// var xpath = "//div[contains(@eventproxy,'isc_HTMLPane_')]";
174+
// var logDiv = $wnd.document.evaluate(xpath, $wnd.document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
175+
// logDiv.scrollTop = logDiv.scrollHeight;
176+
var xpath = "//iframe[contains(@src,'"+appender+"')]";
177+
var logFrame = $wnd.document.evaluate(xpath, $wnd.document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
178+
logFrame.contentWindow.scrollTo(0, logFrame.contentDocument.body.scrollHeight);
174179
}-*/;
175180

176-
public static native void scrollLogPanelToTop() /*-{
177-
var xpath = "//div[contains(@eventproxy,'isc_HTMLPane_')]";
178-
var logDiv = $wnd.document.evaluate(xpath, $wnd.document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
179-
logDiv.scrollTop = 0;
181+
public static native void scrollLogPanelToTop(String appender) /*-{
182+
// var xpath = "//div[contains(@eventproxy,'isc_HTMLPane_')]";
183+
// var logDiv = $wnd.document.evaluate(xpath, $wnd.document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
184+
// logDiv.scrollTop = 0;
185+
var xpath = "//iframe[contains(@src,'"+appender+"')]";
186+
var logFrame = $wnd.document.evaluate(xpath, $wnd.document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
187+
logFrame.contentWindow.scrollTo(0, 0);
180188
}-*/;
181189
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /