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:
Jakob 2017-10-18 06:24:14 +02:00 committed by Dane Everitt
parent 2b80de03df
commit 75c905a985
2 changed files with 14 additions and 7 deletions

View file

@ -61,6 +61,7 @@
opacity: .5;
font-size: 16px;
cursor: pointer;
z-index: 10;
}
.terminal-notify:hover {

View file

@ -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();