github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/service/templates/task_log.html (about)

     1  {{ define "base" }}
     2  <!DOCTYPE html>
     3  <html>
     4    <head>
     5      <!-- mongostrap (Bootstrap + MongoDB Theme) -->
     6      <link href="/static/css/mongostrap.min.css?hash={{ StaticsMD5 }}" rel="stylesheet" />
     7  
     8      <!-- fontawesome icons -->
     9      <link href="/static/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
    10  
    11      <!-- our css -->
    12      <link href="/static/dist/css/styles{{if IsProd }}.min{{end}}.css?hash={{ StaticsMD5 }}" rel="stylesheet" />
    13  
    14      <script src="/static/js/jquery.js"></script>
    15      <script type="text/javascript" src="/static/js/ansi_up.js"></script>
    16      <script type='text/javascript'>
    17        var parseHash = function() {
    18          var hash = window.location.hash.toString();
    19          hash = (hash.length > 1 ? hash.substr(2) : hash);
    20          return parseInt(hash, 10);
    21        };
    22  
    23        var scrollToLine = function(lineNumber) {
    24          var lineHeight = parseFloat($('pre').css('lineHeight'));
    25  
    26          $('html, body').animate(
    27            {
    28              scrollTop : $('#line-' + lineNumber).offset().top -
    29                  Math.floor($(window).height() / 2)
    30            },
    31            650);
    32        };
    33  
    34        var highlightLine = function(lineNumber) {
    35          $('#line-' + lineNumber).addClass('selected-line');
    36        };
    37  
    38        var removeHighlightLine = function(lineNumber) {
    39          $('#line-' + lineNumber).removeClass('selected-line');
    40        };
    41  
    42        var setLine = function(lineNumber) {
    43          window.location.hash = '#L' + lineNumber;
    44          highlightLine(lineNumber);
    45        };
    46  
    47        $(document).ready(function() {
    48          var lineNumber = parseHash();
    49  
    50          if (!isNaN(lineNumber) && lineNumber >= 0) {
    51            setLine(lineNumber);
    52            scrollToLine(lineNumber);
    53          }
    54  
    55          $('.line-link').click(function(ev) {
    56            var elementId = $(ev.target).get(0).id;
    57            var newLineNumber = parseInt(elementId.toString().substr('line-link-'.length), 10);
    58            if (!isNaN(newLineNumber) && newLineNumber >= 0) {
    59              removeHighlightLine(lineNumber);
    60              lineNumber = newLineNumber;
    61              setLine(lineNumber);
    62            }
    63          });
    64  
    65          $('.log-line').each(function(i, el) {
    66            $(el).html(ansi_up.ansi_to_html($(el).html()));
    67            $(el).html(ansi_up.linkify($(el).html()));
    68          });
    69        });
    70      </script>
    71    </head>
    72  
    73    <body style="padding:0;">
    74      <pre>
    75  {{ range $index, $element := .Data }}<i class="fa fa-link line-link" id='line-link-{{ $index }}'></i> <span class='severity-{{ $element.Severity }} log-line' id='line-{{ $index }}'>{{if not $element.Timestamp.IsZero}}{{ DateFormat $element.Timestamp "[2006/01/02 15:04:05.000] " (GetTimezone $.User) }}{{end}}{{ $element.Message }}</span>
    76  {{ end }}
    77      </pre>
    78  
    79    </body>
    80  </html>
    81  {{ end }}