travis-web/assets/scripts/app/templates
Piotr Sarnacki fc40190c29 Optimize log viewer
Till now, log viewer was rendered in handlebars, which was the simplest
solution, but it had a major drawback - every append to log caused it to
rerender which was not efficient and memory consuming.

The new approach is to make Travis.Log interpret the log and send lines
with instructions to the view, so for example if view should add a line,
it gets something like:

    { number: 1, content: '$ bundle install' }

Such approach is required to handle cases where data coming from pusher
is not actually a new line. For example output containing dots from
tests needs to be appended:

    $ rake
    ....

Such output could be sent to client in 2 chunks: "$ rake\n.." and "..".
In such situation we would need to send 3 instructions:

  { number: 1, content: '$ rake' }
  { number: 2, content: '..'     }
  { number: 2, content: '..', append: true }

The third instruction can come much later, because tests can take a
while to run, so we can't assume that each line will come in one piece.

The other scenario is \r, for example when showing progress:

    \rDownloading: 10%
    \rDownloading: 50%
    \rDownloading: 100%

Such input should be changed into such instructions:

  { number: 1, content: 'Downloading: 10%' }
  { number: 1, content: 'Downloading: 50%',  replace: true }
  { number: 1, content: 'Downloading: 100%', replace: true }

Travis.Log also supports folds, for example on bundle install, the code
was rewritten to make folds management simpler.
2012-12-04 22:57:57 +01:00
..
auth Move afterSignIn to auth Route 2012-10-18 03:28:29 +02:00
builds Fix build link when updating builds through pusher 2012-10-28 23:43:16 +01:00
events stashing some work on the events log 2012-10-16 22:46:10 +02:00
jobs Optimize log viewer 2012-12-04 22:57:57 +01:00
layouts localize top menu links 2012-11-22 16:23:52 +01:00
profile Don't allow to change hook's state while it's saving 2012-11-28 20:11:01 +01:00
queues Slightly better implementation of showAll for jobs in queues 2012-11-28 00:26:37 +01:00
repos split requeueBuild vs requeueJob 2012-12-01 03:13:17 +01:00
sponsors extract paths in Assetfile; rename javascripts to scripts, stylesheets to styles 2012-10-03 17:13:02 +02:00
stats Show message on stats page 2012-10-10 16:47:22 +02:00
workers Don't require loading repos when dislaying queues and workers 2012-11-27 22:36:15 +01:00
.gitkeep extract paths in Assetfile; rename javascripts to scripts, stylesheets to styles 2012-10-03 17:13:02 +02:00