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;
|
||||
font-size: 16px;
|
||||
cursor: pointer;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.terminal-notify:hover {
|
||||
|
|
|
@ -116,13 +116,15 @@ $(document).ready(function () {
|
|||
});
|
||||
|
||||
$terminal.on('scroll', function () {
|
||||
if ($(this).scrollTop() + $(this).innerHeight() + 50 < $(this)[0].scrollHeight) {
|
||||
$scrollNotify.removeClass('hidden');
|
||||
} else {
|
||||
if (isTerminalScrolledDown()) {
|
||||
$scrollNotify.addClass('hidden');
|
||||
}
|
||||
});
|
||||
|
||||
function isTerminalScrolledDown() {
|
||||
return $terminal.scrollTop() + $terminal.innerHeight() + 50 > $terminal[0].scrollHeight;
|
||||
}
|
||||
|
||||
window.scrollToBottom = function () {
|
||||
$terminal.scrollTop($terminal[0].scrollHeight);
|
||||
};
|
||||
|
@ -148,17 +150,21 @@ function pushToTerminal(string) {
|
|||
}
|
||||
|
||||
if (TerminalQueue.length > 0) {
|
||||
var scrolledDown = isTerminalScrolledDown();
|
||||
|
||||
for (var i = 0; i < CONSOLE_PUSH_COUNT && TerminalQueue.length > 0; i++) {
|
||||
pushToTerminal(TerminalQueue[0]);
|
||||
|
||||
if (! $scrollNotify.is(':visible')) {
|
||||
window.scrollToBottom();
|
||||
}
|
||||
|
||||
window.ConsoleElements++;
|
||||
TerminalQueue.shift();
|
||||
}
|
||||
|
||||
if (scrolledDown) {
|
||||
window.scrollToBottom();
|
||||
} else if ($scrollNotify.hasClass('hidden')) {
|
||||
$scrollNotify.removeClass('hidden');
|
||||
}
|
||||
|
||||
var removeElements = window.ConsoleElements - CONSOLE_OUTPUT_LIMIT;
|
||||
if (removeElements > 0) {
|
||||
$('#terminal').find('.cmd').slice(0, removeElements).remove();
|
||||
|
|
Loading…
Reference in a new issue