Feature/fix terminal notification (#681)
* show terminal notification on top * show notification only when not scrolled down and new output available * terminal: move scrolled down check outside of push loop
This commit is contained in:
parent
2b80de03df
commit
75c905a985
2 changed files with 14 additions and 7 deletions
|
@ -61,6 +61,7 @@
|
||||||
opacity: .5;
|
opacity: .5;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
.terminal-notify:hover {
|
.terminal-notify:hover {
|
||||||
|
|
|
@ -116,13 +116,15 @@ $(document).ready(function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
$terminal.on('scroll', function () {
|
$terminal.on('scroll', function () {
|
||||||
if ($(this).scrollTop() + $(this).innerHeight() + 50 < $(this)[0].scrollHeight) {
|
if (isTerminalScrolledDown()) {
|
||||||
$scrollNotify.removeClass('hidden');
|
|
||||||
} else {
|
|
||||||
$scrollNotify.addClass('hidden');
|
$scrollNotify.addClass('hidden');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function isTerminalScrolledDown() {
|
||||||
|
return $terminal.scrollTop() + $terminal.innerHeight() + 50 > $terminal[0].scrollHeight;
|
||||||
|
}
|
||||||
|
|
||||||
window.scrollToBottom = function () {
|
window.scrollToBottom = function () {
|
||||||
$terminal.scrollTop($terminal[0].scrollHeight);
|
$terminal.scrollTop($terminal[0].scrollHeight);
|
||||||
};
|
};
|
||||||
|
@ -148,17 +150,21 @@ function pushToTerminal(string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TerminalQueue.length > 0) {
|
if (TerminalQueue.length > 0) {
|
||||||
|
var scrolledDown = isTerminalScrolledDown();
|
||||||
|
|
||||||
for (var i = 0; i < CONSOLE_PUSH_COUNT && TerminalQueue.length > 0; i++) {
|
for (var i = 0; i < CONSOLE_PUSH_COUNT && TerminalQueue.length > 0; i++) {
|
||||||
pushToTerminal(TerminalQueue[0]);
|
pushToTerminal(TerminalQueue[0]);
|
||||||
|
|
||||||
if (! $scrollNotify.is(':visible')) {
|
|
||||||
window.scrollToBottom();
|
|
||||||
}
|
|
||||||
|
|
||||||
window.ConsoleElements++;
|
window.ConsoleElements++;
|
||||||
TerminalQueue.shift();
|
TerminalQueue.shift();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (scrolledDown) {
|
||||||
|
window.scrollToBottom();
|
||||||
|
} else if ($scrollNotify.hasClass('hidden')) {
|
||||||
|
$scrollNotify.removeClass('hidden');
|
||||||
|
}
|
||||||
|
|
||||||
var removeElements = window.ConsoleElements - CONSOLE_OUTPUT_LIMIT;
|
var removeElements = window.ConsoleElements - CONSOLE_OUTPUT_LIMIT;
|
||||||
if (removeElements > 0) {
|
if (removeElements > 0) {
|
||||||
$('#terminal').find('.cmd').slice(0, removeElements).remove();
|
$('#terminal').find('.cmd').slice(0, removeElements).remove();
|
||||||
|
|
Loading…
Reference in a new issue