OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 <html lang="en"> |
| 3 <head> |
| 4 <meta charset="utf-8"> |
| 5 <title>{% block title %}Build Log{% endblock %}</title> |
| 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 7 <meta name="description" content=""> |
| 8 <meta name="author" content=""> |
| 9 |
| 10 <!-- Le styles --> |
| 11 <script src="http://code.jquery.com/jquery.js"></script> |
| 12 <script src="/static/js/bootstrap.min.js"></script> |
| 13 <script src="/static/js/prettify.js"></script> |
| 14 <style type="text/css"> |
| 15 body { |
| 16 padding-top: 60px; |
| 17 padding-bottom: 40px; |
| 18 } |
| 19 .sidebar-nav { |
| 20 padding: 9px 0; |
| 21 } |
| 22 |
| 23 @media (max-width: 980px) { |
| 24 /* Enable use of floated navbar text */ |
| 25 .navbar-text.pull-right { |
| 26 float: none; |
| 27 padding-left: 5px; |
| 28 padding-right: 5px; |
| 29 } |
| 30 } |
| 31 |
| 32 #branding { |
| 33 margin-left: 0; |
| 34 } |
| 35 |
| 36 #beta { |
| 37 position: relative; |
| 38 top: -10px; |
| 39 font-size: 11pt; |
| 40 } |
| 41 </style> |
| 42 <link href="/static/css/bootstrap.min.css" rel="stylesheet"> |
| 43 <link href="/static/css/bootstrap-responsive.css" rel="stylesheet"> |
| 44 {% block head %}{% endblock %} |
| 45 </head> |
| 46 <body> |
| 47 <div class="navbar navbar-fixed-top"> |
| 48 <div class="navbar-inner"> |
| 49 <ul class="nav pull-right"> |
| 50 <li><a id="orig_page" href="{{url}}">Original Page</a></li> |
| 51 </ul> |
| 52 <div id='navbar-container' class="container-fluid"> |
| 53 <button type="button" class="btn btn-navbar" |
| 54 data-toggle="collapse" data-target=".nav-collapse"> |
| 55 <span class="icon-bar"></span> |
| 56 <span class="icon-bar"></span> |
| 57 <span class="icon-bar"></span> |
| 58 </button> |
| 59 <a id="branding" class="brand" href="/buildbot/"> |
| 60 Buildbot Viewer<small id='beta'>Beta</small> |
| 61 </a> |
| 62 <div class="nav-collapse collapse"> |
| 63 <ul class="nav"> |
| 64 {% for crumb, link in breadcrumbs %} |
| 65 {% if loop.last %} |
| 66 <li class="active"> |
| 67 {% else %} |
| 68 <li> |
| 69 {% endif %} |
| 70 <a href="{{link}}">{{crumb}}</a> |
| 71 </li> |
| 72 {% endfor %} |
| 73 </ul> |
| 74 </div><!--/.nav-collapse --> |
| 75 </div> |
| 76 </div> |
| 77 </div> |
| 78 <div id="main-container" class="container-fluid"> |
| 79 {% block body %}{% endblock %} |
| 80 {% block footer %} |
| 81 <div class="row"> |
| 82 <hr> |
| 83 <div class="span4"> |
| 84 {% block sub_footer %}{% endblock sub_footer %} |
| 85 </div> |
| 86 <div class="span2 pull-right"> |
| 87 <span class="pull-right"> |
| 88 <a href="https://code.google.com/p/chromium/issues/entry?template=Buil
d%20Infrastructure&comment=This+is+a+user+reported+issue+with+the+new+build.chro
mium.org+interface.&summary=One+liner+issue+description+here"> |
| 89 Report an issue |
| 90 </a> |
| 91 </span> |
| 92 <img alt="Chrome" data-g-event="nav-logo" data-g-label= |
| 93 "consumer-home" id="logo" src= |
| 94 "http://www.google.com/intl/en/chrome/assets/common/images/chrome_logo
_2x.png"> |
| 95 </div> |
| 96 </div> |
| 97 {% endblock %} |
| 98 </div> |
| 99 <script> |
| 100 !function ($) { |
| 101 $(function(){ |
| 102 window.prettyPrint && prettyPrint() |
| 103 }) |
| 104 }(window.jQuery) |
| 105 |
| 106 // Creates a new cookie. |
| 107 function createCookie(name, value, day) { |
| 108 var date = new Date(); |
| 109 date.setTime(date.getTime() + (day * 24 * 60 * 60 * 1000)); |
| 110 var expires = "; expires=" + date.toGMTString(); |
| 111 document.cookie = name + "=" + value+expires + "; path=/"; |
| 112 } |
| 113 |
| 114 // Deletes a cookie. |
| 115 function eraseCookie(name) { |
| 116 createCookie(name, "", -1); |
| 117 } |
| 118 |
| 119 function update_time_ago_sec(text) { |
| 120 $(".time_ago").each(function(){ |
| 121 console.log($(this).text()); |
| 122 text = $(this).text(); |
| 123 r_mins = /(\d+) min/; |
| 124 r_secs = /(\d+) sec/; |
| 125 m_mins = r_mins.exec(text); |
| 126 m_secs = r_secs.exec(text); |
| 127 if (m_secs) { |
| 128 secs = parseInt(m_secs[1]); |
| 129 } else { |
| 130 return; |
| 131 } |
| 132 if (m_mins) { |
| 133 mins = parseInt(m_mins[1]); |
| 134 } else { |
| 135 mins = 0; |
| 136 } |
| 137 secs += 1; |
| 138 if (secs > 59) { |
| 139 mins += 1; |
| 140 secs = 0; |
| 141 } |
| 142 results = ""; |
| 143 if (mins) { |
| 144 if (mins == 1) { |
| 145 results += mins + " min "; |
| 146 } else { |
| 147 results += mins + " mins "; |
| 148 } |
| 149 } |
| 150 if (secs == 1) { |
| 151 results += secs + " sec "; |
| 152 } else { |
| 153 results += secs + " secs "; |
| 154 } |
| 155 results += "ago"; |
| 156 $(this).text(results); |
| 157 }); |
| 158 } |
| 159 |
| 160 function update_time_ago_min(text) { |
| 161 $(".time_ago").each(function(){ |
| 162 console.log($(this).text()); |
| 163 text = $(this).text(); |
| 164 r_hrs = /(\d+) hr/; |
| 165 r_mins = /(\d+) min/; |
| 166 r_secs = /(\d+) sec/; |
| 167 jrs = parseInt(r_hrs.exec(text)[1]); |
| 168 mins = parseInt(r_mins.exec(text)[1]); |
| 169 secs = parseInt(r_secs.exec(text)[1]); |
| 170 if (secs) { |
| 171 return; |
| 172 } |
| 173 mins += 1; |
| 174 if (mins > 59) { |
| 175 hrs += 1; |
| 176 mins = 0; |
| 177 } |
| 178 results = ""; |
| 179 if (hrs) { |
| 180 if (hrs == 1) { |
| 181 results += hrs + " hr "; |
| 182 } else { |
| 183 results += hrs + " hrs "; |
| 184 } |
| 185 } |
| 186 if (mins == 1) { |
| 187 results += mins + " min "; |
| 188 } else { |
| 189 results += mins + " mins "; |
| 190 } |
| 191 results += "ago"; |
| 192 $(this).text(results); |
| 193 }); |
| 194 } |
| 195 |
| 196 $(document).ready(function(){ |
| 197 createCookie('new', true, 99999); // Default to the new page. |
| 198 $("#orig_page").click(function(){ |
| 199 eraseCookie('new'); |
| 200 }); |
| 201 |
| 202 // Find .time_ago and makes them count down properly. |
| 203 setInterval(update_time_ago_sec, 1000); |
| 204 setInterval(update_time_ago_min, 60000); |
| 205 }); |
| 206 </script> |
| 207 </body> |
| 208 </html> |
OLD | NEW |