[LNT] r235959 - Fixup how LNT handles dates and times in the UI
Chris Matthews
cmatthews5 at apple.com
Mon Jun 1 07:50:47 PDT 2015
Please do. Thanks James!!
Sent from my iPhone
> On Jun 1, 2015, at 7:30 AM, James Molloy <james at jamesmolloy.co.uk> wrote:
>
> Hi Chris,
>
> It looks like you made a paste-o in this commit:
>
> - <a href="{{v4_url_for('v4_run', id=run.id, compare_to=r.id)}}">{{ r.start_time}}</a>
> + <a href="{{v4_url_for('v4_run', id=run.id, compare_to=r.id)}}"><span class="utctime">{{ run.start_time.isoformat() }}</span></a>
>
> The last line should read "r.start_time.isoformat()". This is causing all comparison runs to display the same label! Is it OK if I push the trivial fix?
>
> Cheers,
>
> James
>
>> On Tue, 28 Apr 2015 at 02:30 Chris Matthews <cmatthews5 at apple.com> wrote:
>> Author: cmatthews
>> Date: Mon Apr 27 20:24:10 2015
>> New Revision: 235959
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=235959&view=rev
>> Log:
>> Fixup how LNT handles dates and times in the UI
>>
>> LNT has always confused people by showing dates and times in UTC, but
>> without adding the UTC prefix on the end of the string. In this commit,
>> make the server pass all dates as UTC ISO 8601 date time strings. In the
>> browser convert these to the user's time zone and locale. Also, in
>> recent results locations use relative times, with a tooltip for the full
>> time string.
>>
>> Added:
>> lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/
>> lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/MIT-LICENSE.txt
>> lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/jquery-dateFormat.min.js
>> lnt/trunk/lnt/server/ui/static/timedate.js
>> Modified:
>> lnt/trunk/lnt/server/ui/filters.py
>> lnt/trunk/lnt/server/ui/templates/layout.html
>> lnt/trunk/lnt/server/ui/templates/reporting/runs.html
>> lnt/trunk/lnt/server/ui/templates/v4_machine.html
>> lnt/trunk/lnt/server/ui/templates/v4_order.html
>> lnt/trunk/lnt/server/ui/templates/v4_recent_activity.html
>> lnt/trunk/lnt/server/ui/templates/v4_run.html
>>
>> Modified: lnt/trunk/lnt/server/ui/filters.py
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/filters.py?rev=235959&r1=235958&r2=235959&view=diff
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/filters.py (original)
>> +++ lnt/trunk/lnt/server/ui/filters.py Mon Apr 27 20:24:10 2015
>> @@ -10,6 +10,11 @@ def filter_asutctime(time):
>> ts = datetime.datetime.utcfromtimestamp(time)
>> return ts.strftime('%Y-%m-%d %H:%M:%S UTC')
>>
>> +def filter_asisotime(time):
>> + ts = datetime.datetime.utcfromtimestamp(time)
>> + return ts.isoformat()
>> +
>> +
>> def filter_aspctcell(value, class_=None, style=None, attributes=None, *args, **kwargs):
>> cell = util.PctCell(value, *args, **kwargs)
>> return cell.render(class_, style, attributes)
>>
>> Added: lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/MIT-LICENSE.txt
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/MIT-LICENSE.txt?rev=235959&view=auto
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/MIT-LICENSE.txt (added)
>> +++ lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/MIT-LICENSE.txt Mon Apr 27 20:24:10 2015
>> @@ -0,0 +1,20 @@
>> +Copyright (c) 2009 Pablo Cantero, http://pablocantero.com/
>> +
>> +Permission is hereby granted, free of charge, to any person obtaining
>> +a copy of this software and associated documentation files (the
>> +"Software"), to deal in the Software without restriction, including
>> +without limitation the rights to use, copy, modify, merge, publish,
>> +distribute, sublicense, and/or sell copies of the Software, and to
>> +permit persons to whom the Software is furnished to do so, subject to
>> +the following conditions:
>> +
>> +The above copyright notice and this permission notice shall be
>> +included in all copies or substantial portions of the Software.
>> +
>> +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>> +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>> +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>> +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
>> +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
>> +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
>> +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
>>
>> Added: lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/jquery-dateFormat.min.js
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/jquery-dateFormat.min.js?rev=235959&view=auto
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/jquery-dateFormat.min.js (added)
>> +++ lnt/trunk/lnt/server/ui/static/jquery/jquery.dateFormat/jquery-dateFormat.min.js Mon Apr 27 20:24:10 2015
>> @@ -0,0 +1,2 @@
>> +/*! jquery-dateFormat 05-10-2014 */
>> +var DateFormat={};!function(a){var b=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],d=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],e=["January","February","March","April","May","June","July","August","September","October","November","December"],f={Jan:"01",Feb:"02",Mar:"03",Apr:"04",May:"05",Jun:"06",Jul:"07",Aug:"08",Sep:"09",Oct:"10",Nov:"11",Dec:"12"},g=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.?\d{0,3}[Z\-+]?(\d{2}:?\d{2})?/;a.format=function(){function a(a){return b[parseInt(a,10)]||a}function h(a){return c[parseInt(a,10)]||a}function i(a){var b=parseInt(a,10)-1;return d[b]||a}function j(a){var b=parseInt(a,10)-1;return e[b]||a}function k(a){return f[a]||a}function l(a){var b,c,d,e,f,g=a,h="";return-1!==g.indexOf(".")&&(e=g.split("."),g=e[0],h=e[1]),f=g.split(":"),3===f.length?(b=f[0],c=f[1],d=f[2].replace(/\s.+/,"").replace(/[a-z]/gi,""),g=g.replace(/\s.+/,"").replace(/[a-!
>> z]/gi,"")
>> ,{time:g,hour:b,minute:c,second:d,millis:h}):{time:"",hour:"",minute:"",second:"",millis:""}}function m(a,b){for(var c=b-String(a).length,d=0;c>d;d++)a="0"+a;return a}return{parseDate:function(a){var b={date:null,year:null,month:null,dayOfMonth:null,dayOfWeek:null,time:null};if("number"==typeof a)return this.parseDate(new Date(a));if("function"==typeof a.getFullYear)b.year=String(a.getFullYear()),b.month=String(a.getMonth()+1),b.dayOfMonth=String(a.getDate()),b.time=l(a.toTimeString()+"."+a.getMilliseconds());else if(-1!=a.search(g))values=a.split(/[T\+-]/),b.year=values[0],b.month=values[1],b.dayOfMonth=values[2],b.time=l(values[3].split(".")[0]);else switch(values=a.split(" "),6===values.length&&isNaN(values[5])&&(values[values.length]="()"),values.length){case 6:b.year=values[5],b.month=k(values[1]),b.dayOfMonth=values[2],b.time=l(values[3]);break;case 2:subValues=values[0].split("-"),b.year=subValues[0],b.month=subValues[1],b.dayOfMonth=subValues[2],b.time=l(values[1]);!
>> break;cas
>> e 7:case 9:case 10:b.year=values[3],b.month=k(values[1]),b.dayOfMonth=values[2],b.time=l(values[4]);break;case 1:subValues=values[0].split(""),b.year=subValues[0]+subValues[1]+subValues[2]+subValues[3],b.month=subValues[5]+subValues[6],b.dayOfMonth=subValues[8]+subValues[9],b.time=l(subValues[13]+subValues[14]+subValues[15]+subValues[16]+subValues[17]+subValues[18]+subValues[19]+subValues[20]);break;default:return null}return b.date=new Date(b.year,b.month-1,b.dayOfMonth),b.dayOfWeek=String(b.date.getDay()),b},date:function(b,c){try{var d=this.parseDate(b);if(null===d)return b;for(var e=(d.date,d.year),f=d.month,g=d.dayOfMonth,k=d.dayOfWeek,l=d.time,n="",o="",p="",q=!1,r=0;r<c.length;r++){var s=c.charAt(r),t=c.charAt(r+1);if(q)"'"==s?(o+=""===n?"'":n,n="",q=!1):n+=s;else switch(n+=s,p="",n){case"ddd":o+=a(k),n="";break;case"dd":if("d"===t)break;o+=m(g,2),n="";break;case"d":if("d"===t)break;o+=parseInt(g,10),n="";break;case"D":g=1==g||21==g||31==g?parseInt(g,10)+"st":2==g||2!
>> 2==g?pars
>> eInt(g,10)+"nd":3==g||23==g?parseInt(g,10)+"rd":parseInt(g,10)+"th",o+=g,n="";break;case"MMMM":o+=j(f),n="";break;case"MMM":if("M"===t)break;o+=i(f),n="";break;case"MM":if("M"===t)break;o+=m(f,2),n="";break;case"M":if("M"===t)break;o+=parseInt(f,10),n="";break;case"y":case"yyy":if("y"===t)break;o+=n,n="";break;case"yy":if("y"===t)break;o+=String(e).slice(-2),n="";break;case"yyyy":o+=e,n="";break;case"HH":o+=m(l.hour,2),n="";break;case"H":if("H"===t)break;o+=parseInt(l.hour,10),n="";break;case"hh":hour=0===parseInt(l.hour,10)?12:l.hour<13?l.hour:l.hour-12,o+=m(hour,2),n="";break;case"h":if("h"===t)break;hour=0===parseInt(l.hour,10)?12:l.hour<13?l.hour:l.hour-12,o+=parseInt(hour,10),n="";break;case"mm":o+=m(l.minute,2),n="";break;case"m":if("m"===t)break;o+=l.minute,n="";break;case"ss":o+=m(l.second.substring(0,2),2),n="";break;case"s":if("s"===t)break;o+=l.second,n="";break;case"S":case"SS":if("S"===t)break;o+=n,n="";break;case"SSS":o+=l.millis.substring(0,3),n="";break;case!
>> "a":o+=l.
>> hour>=12?"PM":"AM",n="";break;case"p":o+=l.hour>=12?"p.m.":"a.m.",n="";break;case"E":o+=h(k),n="";break;case"'":n="",q=!0;break;default:o+=s,n=""}}return o+=p}catch(u){return console&&console.log&&console.log(u),b}},prettyDate:function(a){var b,c,d;return("string"==typeof a||"number"==typeof a)&&(b=new Date(a)),"object"==typeof a&&(b=new Date(a.toString())),c=((new Date).getTime()-b.getTime())/1e3,d=Math.floor(c/86400),isNaN(d)||0>d?void 0:60>c?"just now":120>c?"1 minute ago":3600>c?Math.floor(c/60)+" minutes ago":7200>c?"1 hour ago":86400>c?Math.floor(c/3600)+" hours ago":1===d?"Yesterday":7>d?d+" days ago":31>d?Math.ceil(d/7)+" weeks ago":d>=31?"more than 5 weeks ago":void 0},toBrowserTimeZone:function(a,b){return this.date(new Date(a),b||"MM/dd/yyyy HH:mm:ss")}}}()}(DateFormat),function(a){a.format=DateFormat.format}(jQuery);
>> \ No newline at end of file
>>
>> Added: lnt/trunk/lnt/server/ui/static/timedate.js
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/static/timedate.js?rev=235959&view=auto
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/static/timedate.js (added)
>> +++ lnt/trunk/lnt/server/ui/static/timedate.js Mon Apr 27 20:24:10 2015
>> @@ -0,0 +1,25 @@
>> +/** Provide date conversions to the utctime and reltime classes.
>> +
>> +
>> +Use JQuery to update the iso times rendered in the templates to browswer local
>> +time.
>> +*/
>> +
>> +jQuery(function() {
>> + jQuery(".utctime").each(function (idx, elem) {
>> + jQuery(elem).text(jQuery.format.toBrowserTimeZone(jQuery(elem).text()));
>> + });
>> +
>> + jQuery(".reltime").each(function (idx, elem) {
>> + var time_text = jQuery(elem).text();
>> + jQuery(elem).tooltip({'title': jQuery.format.toBrowserTimeZone(time_text),
>> + 'delay': { show: 500, hide: 1000 }
>> + });
>> + });
>> +
>> + jQuery(".reltime").each(function (idx, elem) {
>> + jQuery(elem).text(jQuery.format.prettyDate(jQuery(elem).text()));
>> +
>> + });
>> +
>> +});
>>
>> Modified: lnt/trunk/lnt/server/ui/templates/layout.html
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/templates/layout.html?rev=235959&r1=235958&r2=235959&view=diff
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/templates/layout.html (original)
>> +++ lnt/trunk/lnt/server/ui/templates/layout.html Mon Apr 27 20:24:10 2015
>> @@ -11,8 +11,14 @@
>> }}" rel="stylesheet" media='screen and (min-width: 750px)'>
>> <script src="{{ url_for('.static', filename='jquery/1.7.2/jquery-1.7.2.min.js')
>> }}"> </script>
>> + <script src="{{ url_for('.static', filename='jquery/jquery.dateFormat/jquery-dateFormat.min.js')
>> + }}"> </script>
>> +
>> <script src="{{ url_for('.static', filename='bootstrap/js/bootstrap.min.js')
>> }}"></script>
>> + <script src="{{ url_for('.static', filename='timedate.js')
>> + }}"></script>
>> +
>> <meta name="viewport" content="width=device-width, initial-scale=1.0">
>> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
>>
>> @@ -175,8 +181,8 @@
>> <table class="table">
>> <tr>
>> <td>LNT Version: {{ app.version }}</td>
>> - <td>Server Started: {{ app.start_time|asutctime }}</td>
>> - <td>Generated: {{ request.request_time|asutctime }}</td>
>> + <td>Server Started: <span class="utctime">{{ app.start_time|asisotime }}</span></td>
>> + <td>Generated: <span class="utctime">{{ request.request_time|asisotime }}</span></td>
>> <td>Render Time: {{ "%.2fs" % request.elapsed_time() }}</td>
>> </tr>
>> </table>
>>
>> Modified: lnt/trunk/lnt/server/ui/templates/reporting/runs.html
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/templates/reporting/runs.html?rev=235959&r1=235958&r2=235959&view=diff
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/templates/reporting/runs.html (original)
>> +++ lnt/trunk/lnt/server/ui/templates/reporting/runs.html Mon Apr 27 20:24:10 2015
>> @@ -26,11 +26,11 @@
>> <th style="{{ styles['th'] }}">Current</th>
>> <th style="{{ styles['th'] }}">σ {{ primary_field_suffix }}</th>
>> {% if secondary_info %}
>> - <th style="{{ styles['th'] }}">Δ {{ secondary_field_suffix }}</th>
>> + <th style="{{ styles['th'] }}">Δ {{ secondary_field_suffix }}</th>
>> <th style="{{ styles['th'] }}">σ {{ secondary_field_suffix }}</th>
>> {% endif %}
>> </tr>
>> -
>> +
>> {% for name, cr, test_id in bucket %}
>> <tr>
>> <td style="{{ styles['td'] }}">
>> @@ -79,7 +79,7 @@
>> <tr>
>> <td style="{{ styles['td'] }}"><a href="{{ ts_url }}/{{ r.id }}">{{ title }}</a></td>
>> <td style="{{ styles['td'] }}"><a href="{{ ts_url }}/order/{{ r.order.id }}">{{ r.order.llvm_project_revision }}</a></td>
>> - <td style="{{ styles['td'] }}">{{ r.start_time }}</td>
>> + <td style="{{ styles['td'] }}"><span class="utctime">{{ r.start_time.isoformat() }}</span></td>
>> <td style="{{ styles['td'] }}">{{ r.end_time - r.start_time }}</td>
>> </tr>
>> {% else %}
>> @@ -111,7 +111,7 @@
>> {% endif %}
>> </tr>
>> </thead>
>> -
>> +
>> {% for i, name, num_items, num_items_vs_baseline in num_item_buckets %}
>> {% if num_items or num_items_vs_baseline %}
>> <tr>
>> @@ -121,9 +121,9 @@
>> <td style="{{ styles['td'] }}" align="right">{{ num_items_vs_baseline }}</td>
>> {% endif %}
>> </tr>
>> - {% endif %}
>> + {% endif %}
>> {% endfor %}
>> -
>> +
>> <tfoot>
>> <tr>
>> <td style="{{ styles['td'] }}"><b>Total Tests</b></td>
>> @@ -167,4 +167,3 @@
>> </body>
>> </html>
>> {% endif %}
>> -
>>
>> Modified: lnt/trunk/lnt/server/ui/templates/v4_machine.html
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/templates/v4_machine.html?rev=235959&r1=235958&r2=235959&view=diff
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/templates/v4_machine.html (original)
>> +++ lnt/trunk/lnt/server/ui/templates/v4_machine.html Mon Apr 27 20:24:10 2015
>> @@ -13,7 +13,7 @@
>> <li><a href="#parameters"><i class="icon-chevron-right"></i> Parameters</a></li>
>> <li><a href="#submissions"><i class="icon-chevron-right"></i> Submissions</a></li>
>> </ul>
>> -
>> +
>> <h4>Relatives</h4>
>> <ul class="nav nav-list bs-docs-sidenav">
>> {# List all machines with this name. #}
>> @@ -75,7 +75,7 @@
>> {% if loop.first %}
>> <td rowspan="{{ runs|length }}" align=right>{{ order.as_ordered_string() }}</td>
>> {% endif %}
>> - <td>{{ run.start_time }}</td>
>> + <td><span class="utctime">{{ run.start_time.isoformat() }}</span></td>
>> <td>{{ run.end_time - run.start_time }}s</td>
>> <td>{{ utils.render_result(run) }}</td>
>> </tr>
>>
>> Modified: lnt/trunk/lnt/server/ui/templates/v4_order.html
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/templates/v4_order.html?rev=235959&r1=235958&r2=235959&view=diff
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/templates/v4_order.html (original)
>> +++ lnt/trunk/lnt/server/ui/templates/v4_order.html Mon Apr 27 20:24:10 2015
>> @@ -73,11 +73,11 @@
>> <th>Results</th>
>> </tr>
>> </thead>
>> - <tbody>
>> + <tbody>
>> {# Show the active submissions. #}
>> {% for r in ts.query(ts.Run).filter_by(order_id = order.id) %}
>> <tr>
>> - <td>{{r.start_time}}</td>
>> + <td><span class="utctime">{{ r.start_time.isoformat() }}</span></td>
>> <td>{{r.end_time - r.start_time}}</td>
>> <td>{{ utils.render_machine(r.machine) }}</td>
>> <td>{{ utils.render_result(r) }}</td>
>>
>> Modified: lnt/trunk/lnt/server/ui/templates/v4_recent_activity.html
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/templates/v4_recent_activity.html?rev=235959&r1=235958&r2=235959&view=diff
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/templates/v4_recent_activity.html (original)
>> +++ lnt/trunk/lnt/server/ui/templates/v4_recent_activity.html Mon Apr 27 20:24:10 2015
>> @@ -5,6 +5,8 @@
>> {% set components = [(testsuite_name, v4_url_for("v4_recent_activity"))] %}
>> {% block title %}Recent Activity{% endblock %}
>>
>> +
>> +
>> {% block sidebar %}
>> <ul class="nav nav-list bs-docs-sidenav">
>> <li><a href="#machines"><i class="icon-chevron-right"></i> Active Machines</a></li>
>> @@ -29,31 +31,31 @@
>> {% for machine_name,r in active_machines|dictsort %}
>> <tr>
>> <td>{{ utils.render_machine(r.machine) }}</td>
>> - <td>{{ r.start_time }}</td>
>> + <td><span class="reltime">{{r.start_time.isoformat()}}</span></td>
>> <td>{{ utils.render_result(r) }}</td>
>> </tr>
>> {% endfor %}
>> </tbody>
>> </table>
>> -
>> +
>> <section id="submissions" />
>> <h3>Recent Submissions</h3>
>> <table class="table table-striped table-hover table-condensed">
>> <thead>
>> <tr>
>> <th>Run Order</th>
>> - <th>Start Time</th>
>> + <th>Started</th>
>> <th>Duration</th>
>> <th>Machine</th>
>> <th>Results</th>
>> </tr>
>> </thead>
>> - <tbody>
>> + <tbody>
>> {# Show the active submissions. #}
>> {% for r,run_order in active_submissions %}
>> <tr>
>> <td><a href="{{v4_url_for('v4_order', id=r.order.id)}}">{{run_order}}</a></td></td>
>> - <td>{{ r.start_time }}</td>
>> + <td><span class="reltime" data-toggle="tooltip" title="{{r.start_time}}">{{ r.start_time.isoformat() }}</span></td>
>> <td>{{ r.end_time - r.start_time }}</td>
>> <td>{{ utils.render_machine(r.machine) }}</td>
>> <td>{{ utils.render_result(r) }}</td>
>>
>> Modified: lnt/trunk/lnt/server/ui/templates/v4_run.html
>> URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/ui/templates/v4_run.html?rev=235959&r1=235958&r2=235959&view=diff
>> ==============================================================================
>> --- lnt/trunk/lnt/server/ui/templates/v4_run.html (original)
>> +++ lnt/trunk/lnt/server/ui/templates/v4_run.html Mon Apr 27 20:24:10 2015
>> @@ -29,12 +29,12 @@
>> {% set test_status = cr.get_test_status() %}
>> {% set value_status = cr.get_value_status(ignore_small=not options.show_small_diff) %}
>> {% set run_cell_value = "-" if cr.current is none else "%.4f" % cr.current %}
>> -
>> +
>> {% if options.show_previous %}
>> {% set prev_cell_value = "-" if cr.previous is none else "%.4f" % cr.previous %}
>> <td>{{prev_cell_value}}</td>
>> {% endif %}
>> -
>> +
>> {% set cell_color = none %}
>> {% if test_status == analysis.REGRESSED %}
>> {% set cell_color = (233,128,128) %}
>> @@ -43,13 +43,13 @@
>> {% elif test_status == analysis.UNCHANGED_FAIL %}
>> {% set cell_color = (255,195,67) %}
>> {% endif %}
>> -
>> +
>> {% if cell_color %}
>> <td style="background-color:{{ '#%02x%02x%02x' % cell_color }}">{{ run_cell_value }}</td>
>> {% else %}
>> <td>{{run_cell_value}}</td>
>> {% endif %}
>> -
>> +
>> {% if (options.show_all or
>> value_status == analysis.REGRESSED or
>> value_status == analysis.IMPROVED) %}
>> @@ -57,7 +57,7 @@
>> {% else %}
>> <td>-</td>
>> {% endif %}
>> -
>> +
>> {% if options.show_delta %}
>> <td>{{ "-" if cr.delta is none else "%.4f" % cr.delta }}</td>
>> {% endif %}
>> @@ -77,7 +77,7 @@
>> ]
>> </td>
>> {% endif %}
>> -
>> +
>> {% if options.show_sample_counts %}
>> <td>{{cr.get_samples()|length}}</td>
>> {% endif %}
>> @@ -101,7 +101,7 @@
>> {% for r in neighboring_runs %}
>> <li>
>> {{ "<b>"|safe if r.id == run.id else "" }}
>> - <a href="{{v4_url_for('v4_run', id=r.id)}}">{{ r.start_time }}</a>
>> + <a href="{{v4_url_for('v4_run', id=r.id)}}"><span class="utctime">{{ r.start_time.isoformat() }}</span></a>
>> {{ "</b>"|safe if r.id == run.id else "" }}
>> {% endfor %}
>> </ul>
>> @@ -112,7 +112,7 @@
>> {% for r in comparison_neighboring_runs %}
>> <li>
>> {{ "<b>"|safe if compare_to and r.id == compare_to.id else "" }}
>> - <a href="{{v4_url_for('v4_run', id=run.id, compare_to=r.id)}}">{{ r.start_time}}</a>
>> + <a href="{{v4_url_for('v4_run', id=run.id, compare_to=r.id)}}"><span class="utctime">{{ run.start_time.isoformat() }}</span></a>
>> {{ "</b>"|safe if compare_to and r.id == compare_to.id else "" }}
>> {% endfor %}
>> </ul>
>> @@ -274,7 +274,7 @@
>> {% if baseline %}
>> <input type="hidden" name="baseline" value="{{baseline.id}}">
>> {% endif %}
>> -
>> +
>> <input type="submit" name="submit" value="Update">
>> </td>
>> </tr>
>> @@ -290,7 +290,7 @@
>>
>> {% set graph_base=v4_url_for('v4_graph', highlight_run=run.id) %}
>> <form method="GET" action="{{ graph_base }}">
>> -
>> +
>> {# Report one table for each primary field. #}
>> {% for field in primary_fields %}
>> <section id="{{ field.name }}" />
>> @@ -310,7 +310,7 @@
>> {% if options.show_sample_counts %}<th>N</th>{% endif %}
>> </tr>
>> </thead>
>> - <tbody>
>> + <tbody>
>> {% set tests = [] %}
>> {% set (runs, compare_runs) = request_info.sri.get_sliding_runs(run, compare_to, request_info.num_comparison_runs) %}
>> {% for test_name,test_id in test_info %}
>> @@ -342,7 +342,7 @@
>> {% endfor %}
>> <p><input type="submit" value="Graph">
>> </form>
>> -
>> +
>> {% if options.show_data_table %}
>> <h3>Test Data</h3>
>> <table class="table table-striped table-condensed table-hover">
>> @@ -375,5 +375,5 @@
>> </tbody>
>> </table>
>> {% endif %}
>> -
>> +
>> {% endblock %}
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150601/9eb65421/attachment.html>
More information about the llvm-commits
mailing list