mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-24 06:45:24 +02:00
Logging implemented (except filtering).
Automatically enable/disable scroll lock based on the scrollbar position.
This commit is contained in:
@@ -1,14 +1,39 @@
|
||||
var _ = require('lodash')
|
||||
|
||||
module.exports = function logcatTableDirective($rootScope, $timeout, logcatAutoScroll) {
|
||||
module.exports = function logcatTableDirective($rootScope, $timeout, LogcatService) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
replace: true,
|
||||
template: require('./logcat-table.jade'),
|
||||
link: function (scope, element, attrs) {
|
||||
var autoScroll = true
|
||||
var autoScrollDependingOnScrollPosition = true
|
||||
var scrollPosition = 0
|
||||
var scrollHeight = 0
|
||||
var parent = element[0]
|
||||
var body = element.find('tbody')[0]
|
||||
|
||||
LogcatService.addEntryListener = function (entry) {
|
||||
addRow(entry)
|
||||
}
|
||||
|
||||
function shouldAutoScroll() {
|
||||
if (autoScrollDependingOnScrollPosition) {
|
||||
return scrollPosition === scrollHeight
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
function scrollListener(event) {
|
||||
scrollPosition = event.target.scrollTop + event.target.clientHeight
|
||||
scrollHeight = event.target.scrollHeight
|
||||
}
|
||||
|
||||
var throttledScrollListener = _.throttle(scrollListener, 100)
|
||||
|
||||
parent.addEventListener('scroll', throttledScrollListener, false)
|
||||
|
||||
function scrollToBottom() {
|
||||
parent.scrollTop = parent.scrollHeight + 20
|
||||
$timeout(function () {
|
||||
@@ -19,28 +44,30 @@ module.exports = function logcatTableDirective($rootScope, $timeout, logcatAutoS
|
||||
function addRow(data, batchRequest) {
|
||||
var newRow = body.insertRow(-1)
|
||||
|
||||
// newRow.insertCell(-1)
|
||||
// .appendChild($document.createTextNode(DeviceLogService.linesCounter));
|
||||
// newRow.insertCell(-1)
|
||||
// .appendChild($document.createTextNode(data.deviceName));
|
||||
// newRow.insertCell(-1)
|
||||
// .appendChild($document.createTextNode(data.levelName));
|
||||
// newRow.insertCell(-1)
|
||||
// .appendChild($document.createTextNode(data.dateFormatted));
|
||||
// if ($rootScope.platform === 'native') {
|
||||
newRow.classList.add('log-' + data.priorityLabel)
|
||||
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.pid))
|
||||
.appendChild(document.createTextNode(LogcatService.numberOfEntries))
|
||||
//newRow.insertCell(-1)
|
||||
// .appendChild(document.createTextNode(data.deviceLabel))
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.tid))
|
||||
.appendChild(document.createTextNode(data.priorityLabel))
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.app))
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.tag))
|
||||
// }
|
||||
.appendChild(document.createTextNode(data.dateLabel))
|
||||
if ($rootScope.platform === 'native') {
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.pid))
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.tid))
|
||||
//newRow.insertCell(-1)
|
||||
// .appendChild(document.createTextNode(data.app))
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.tag))
|
||||
}
|
||||
newRow.insertCell(-1)
|
||||
.appendChild(document.createTextNode(data.message))
|
||||
|
||||
if (logcatAutoScroll && !batchRequest) {
|
||||
if (autoScroll && shouldAutoScroll() && !batchRequest) {
|
||||
_.throttle(scrollToBottom, 10)()
|
||||
}
|
||||
}
|
||||
@@ -52,41 +79,51 @@ module.exports = function logcatTableDirective($rootScope, $timeout, logcatAutoS
|
||||
body = newBody
|
||||
}
|
||||
|
||||
addRow({
|
||||
"serial": "1cd49783",
|
||||
"date": 1399964036.984,
|
||||
"pid": 9246,
|
||||
"tid": 9540,
|
||||
"priority": 3,
|
||||
"tag": "MobileDataStateTracker",
|
||||
"message": "default: setPolicyDataEnable(enabled=true)"
|
||||
})
|
||||
|
||||
for (var i = 0; i < 50; i++) {
|
||||
addRow({
|
||||
"serial": "14141cd49783",
|
||||
"date": 1399964036.984,
|
||||
"pid": 9246,
|
||||
"tid": 9540,
|
||||
"priority": 3,
|
||||
"tag": "MobileDataStateTracker",
|
||||
"message": "XXdefault: setPolicyDataEnable(enabled=true)"
|
||||
})
|
||||
scope.clearTable = function () {
|
||||
LogcatService.clear()
|
||||
clearTable()
|
||||
}
|
||||
|
||||
$timeout(function () {
|
||||
for (var i = 0; i < 10; i++) {
|
||||
addRow({
|
||||
"serial": "14141cd49783",
|
||||
"date": 1399964036.984,
|
||||
"pid": 9246,
|
||||
"tid": 9540,
|
||||
"priority": 3,
|
||||
"tag": "MobileDataStateTracker",
|
||||
"message": "XXdefault: setPolicyDataEnable(enabled=true)"
|
||||
})
|
||||
}
|
||||
}, 1000)
|
||||
scope.$on('$destroy', function () {
|
||||
parent.removeEventListener('scroll', throttledScrollListener)
|
||||
})
|
||||
|
||||
|
||||
// addRow({
|
||||
// "serial": "1cd49783",
|
||||
// "date": 1399964036.984,
|
||||
// "pid": 9246,
|
||||
// "tid": 9540,
|
||||
// "priority": 3,
|
||||
// "tag": "MobileDataStateTracker",
|
||||
// "message": "default: setPolicyDataEnable(enabled=true)"
|
||||
// })
|
||||
//
|
||||
// for (var i = 0; i < 50; i++) {
|
||||
// addRow({
|
||||
// "serial": "14141cd49783",
|
||||
// "date": 1399964036.984,
|
||||
// "pid": 9246,
|
||||
// "tid": 9540,
|
||||
// "priority": 3,
|
||||
// "tag": "MobileDataStateTracker",
|
||||
// "message": "XXdefault: setPolicyDataEnable(enabled=true)"
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// $timeout(function () {
|
||||
// for (var i = 0; i < 10; i++) {
|
||||
// addRow({
|
||||
// "serial": "14141cd49783",
|
||||
// "date": 1399964036.984,
|
||||
// "pid": 9246,
|
||||
// "tid": 9540,
|
||||
// "priority": 3,
|
||||
// "tag": "MobileDataStateTracker",
|
||||
// "message": "XXdefault: setPolicyDataEnable(enabled=true)"
|
||||
// })
|
||||
// }
|
||||
// }, 1000)
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user