[Buildbot-commits] [buildbot/buildbot] b47ec1: rework logviewer

GitHub noreply at github.com
Sat Nov 15 16:35:22 UTC 2014


  Branch: refs/heads/master
  Home:   https://github.com/buildbot/buildbot
  Commit: b47ec1ac431e1557fd44f37a2041968ff3099572
      https://github.com/buildbot/buildbot/commit/b47ec1ac431e1557fd44f37a2041968ff3099572
  Author: Pierre Tardy <pierre.tardy at intel.com>
  Date:   2014-11-13 (Thu, 13 Nov 2014)

  Changed paths:
    M www/base/package.json
    M www/base/src/app/builders/log/logviewer/logviewer.directive.coffee
    M www/base/src/app/builders/log/logviewer/logviewer.less
    M www/base/src/app/builders/log/logviewer/logviewer.tpl.jade
    A www/base/src/app/builders/log/logviewer/scrollviewport.directive.coffee
    A www/base/src/app/builders/log/logviewer/scrollviewport.spec.coffee

  Log Message:
  -----------
  rework logviewer

as per http://trac.buildbot.net/ticket/2982 the old implementation was very slow for big logviewers, because a table with the whole data was loaded.

With this implementation, we play with scrolling position to find out which data to load, and load only necessary data
invisible parts of the log are replaced with padding div, which height is properly calculated

based on https://github.com/Hill30/NGScroller (MIT license)

ui.scroll is a good directive for infinite scrolling. Its inner working makes it not very adapted to viewing log:

This scroll directive uses ui.scroll base, but replace the whole DOM manipulation code
- Can directly scroll to arbitrary position
- Dont remove out-of-sight DOM. Eventually this will result in huge dom, so please make sure to use bind-once childs.
    This however as the advantage on only loading each line once.
- Support line count, and adapt scroll bar appropriately
- Can follow the end of stream, via updating the scroll-position attribute
- row height is fixed (or you cannot make geometric calculation to determine the positions of arbitrary elements)

This directive uses JQuery for DOM manipulation

Note that we loose filtering, which is to hard to make efficient right now.

Signed-off-by: Pierre Tardy <pierre.tardy at intel.com>


  Commit: 4a1f06889f0b27382c4253e90b077b54adcf8388
      https://github.com/buildbot/buildbot/commit/4a1f06889f0b27382c4253e90b077b54adcf8388
  Author: Pierre Tardy <pierre.tardy at intel.com>
  Date:   2014-11-14 (Fri, 14 Nov 2014)

  Changed paths:
    M www/base/src/app/builders/log/logviewer/logviewer.directive.coffee
    M www/base/src/app/builders/log/logviewer/logviewer.tpl.jade

  Log Message:
  -----------
  fix for 't' logs

Signed-off-by: Pierre Tardy <pierre.tardy at intel.com>


  Commit: 613ba3800f7f96f736675a721120c504272665a4
      https://github.com/buildbot/buildbot/commit/613ba3800f7f96f736675a721120c504272665a4
  Author: Pierre Tardy <pierre.tardy at intel.com>
  Date:   2014-11-14 (Fri, 14 Nov 2014)

  Changed paths:
    M www/base/src/app/builders/log/logviewer/logviewer.directive.coffee
    M www/base/src/app/builders/log/logviewer/logviewer.less
    M www/base/src/app/builders/log/logviewer/logviewer.tpl.jade
    M www/base/src/app/builders/log/logviewer/scrollviewport.directive.coffee

  Log Message:
  -----------
  additional improvements for logviewer

- Add buttons for log download, and full loading
- Greatly improve performance via profiling.
  - disabling ng-animate: 75%
  - minimize the use of $.height(): %15%
- Add loading indicator

Signed-off-by: Pierre Tardy <pierre.tardy at intel.com>


  Commit: 91f93958d104094db7ed8f41d97977e67faf3759
      https://github.com/buildbot/buildbot/commit/91f93958d104094db7ed8f41d97977e67faf3759
  Author: Pierre Tardy <pierre.tardy at intel.com>
  Date:   2014-11-14 (Fri, 14 Nov 2014)

  Changed paths:
    M www/base/src/app/builders/log/logviewer/logviewer.directive.coffee
    M www/base/src/app/builders/log/logviewer/logviewer.tpl.jade
    M www/base/src/app/builders/log/logviewer/scrollviewport.directive.coffee
    M www/base/src/app/builders/log/logviewer/scrollviewport.spec.coffee

  Log Message:
  -----------
  more logviewer optimizations

Signed-off-by: Pierre Tardy <pierre.tardy at intel.com>


  Commit: b81f993522d21f80455807f0a755d52f31faaeeb
      https://github.com/buildbot/buildbot/commit/b81f993522d21f80455807f0a755d52f31faaeeb
  Author: Pierre Tardy <pierre.tardy at intel.com>
  Date:   2014-11-15 (Sat, 15 Nov 2014)

  Changed paths:
    M www/base/src/app/builders/log/logviewer/logviewer.less

  Log Message:
  -----------
  fix performance bug with chrome

chrome/safari takes exponential time to remove elements with float:left
as proved with:
http://jsfiddle.net/pgueecab/3/

There is no such problem with display: inline-block, which achieve same functionality

Signed-off-by: Pierre Tardy <pierre.tardy at intel.com>


  Commit: 5c668cab0c5af8cb42bd305978b94d0f57cdcdf1
      https://github.com/buildbot/buildbot/commit/5c668cab0c5af8cb42bd305978b94d0f57cdcdf1
  Author: Dustin J. Mitchell <dustin at buildbot.net>
  Date:   2014-11-15 (Sat, 15 Nov 2014)

  Changed paths:
    M www/base/package.json
    M www/base/src/app/builders/log/logviewer/logviewer.directive.coffee
    M www/base/src/app/builders/log/logviewer/logviewer.less
    M www/base/src/app/builders/log/logviewer/logviewer.tpl.jade
    A www/base/src/app/builders/log/logviewer/scrollviewport.directive.coffee
    A www/base/src/app/builders/log/logviewer/scrollviewport.spec.coffee

  Log Message:
  -----------
  Merge tardyp/buildbot:logviewer (PR #1347)


Compare: https://github.com/buildbot/buildbot/compare/3e184775d74b...5c668cab0c5a


More information about the Commits mailing list