diff --git a/src/css/logger-ui.css b/src/css/logger-ui.css index f5fd566a3..13de2dc5d 100644 --- a/src/css/logger-ui.css +++ b/src/css/logger-ui.css @@ -157,7 +157,10 @@ body.compactView #content td { font: 1em FontAwesome; } #content table tr.tab:not(.canMtx) { - opacity: 0.2; + opacity: 0.3; + } +#content table tr.tab:not(.canMtx):hover { + opacity: 0.7; } #content table tr.tab:not(.canMtx) > td:nth-of-type(2):before { content: '\f00d'; diff --git a/src/js/logger-ui.js b/src/js/logger-ui.js index 582df6fea..84e6c5078 100644 --- a/src/js/logger-ui.js +++ b/src/js/logger-ui.js @@ -343,7 +343,8 @@ var onLogBufferRead = function(response) { // Neuter rows for which a tab does not exist anymore // TODO: sort to avoid using indexOf - var rowVoided = false; + var autoDeleteVoidRows = vAPI.localStorage.getItem('loggerAutoDeleteVoidRows'); + var rowVoided = false, trs; for ( var tabId in allTabIds ) { if ( allTabIds.hasOwnProperty(tabId) === false ) { continue; @@ -351,16 +352,28 @@ var onLogBufferRead = function(response) { if ( response.tabIds.hasOwnProperty(tabId) ) { continue; } - toJunkyard(uDom('.tab_' + tabId)); + trs = uDom('.tab_' + tabId); + if ( autoDeleteVoidRows ) { + toJunkyard(trs); + } else { + trs.removeClass('canMtx'); + rowVoided = true; + } if ( tabId === popupManager.tabId ) { popupManager.toggleOff(); } - rowVoided = true; } allTabIds = response.tabIds; renderLogEntries(response); + if ( rowVoided ) { + uDom('#clean').toggleClass( + 'disabled', + tbody.querySelector('tr.tab:not(.canMtx)') === null + ); + } + // Synchronize toolbar with content of log uDom('#clear').toggleClass( 'disabled', @@ -550,6 +563,18 @@ var clearBuffer = function() { trJunkyard.push(tbody.removeChild(tr)); } uDom('#clear').addClass('disabled'); + uDom('#clean').addClass('disabled'); +}; + +/******************************************************************************/ + +var cleanBuffer = function() { + var rows = uDom('#content tr.tab:not(.canMtx)').remove(); + var i = rows.length; + while ( i-- ) { + trJunkyard.push(rows.nodeAt(i)); + } + uDom('#clean').addClass('disabled'); }; /******************************************************************************/ @@ -677,6 +702,7 @@ uDom.onLoad(function() { readLogBuffer(); uDom('#compactViewToggler').on('click', toggleCompactView); + uDom('#clean').on('click', cleanBuffer); uDom('#clear').on('click', clearBuffer); uDom('#maxEntries').on('change', onMaxEntriesChanged); uDom('#content table').on('click', 'tr.canMtx > td:nth-of-type(2)', popupManager.toggleOn); diff --git a/src/logger-ui.html b/src/logger-ui.html index af09ca274..2e59050c8 100644 --- a/src/logger-ui.html +++ b/src/logger-ui.html @@ -10,6 +10,7 @@
+