% function renderSparkline(values, opts) { opts = opts || {}; var w = opts.w || 96; var h = opts.h || 28; if (!values || values.length < 2) return ''; var min = Math.min.apply(null, values); var max = Math.max.apply(null, values); var range = max - min || 1; var xStep = w / (values.length - 1); var pts = values.map(function(v, i) { return { x: (i * xStep).toFixed(1), y: (((max - v) / range) * (h - 4) + 2).toFixed(1) }; }); var linePath = pts.map(function(p, i) { return (i === 0 ? 'M' : 'L') + ' ' + p.x + ' ' + p.y; }).join(' '); var last = pts[pts.length - 1]; var areaPath = linePath + ' L ' + last.x + ' ' + h + ' L 0 ' + h + ' Z'; return ''; } %> <% if (ratings.length === 0) { %>
No players tracked yet.
<% } else { %>| # | Player | Rating+ Δ since last update | Predicted+ gap from today | |
|---|---|---|---|---|
| <%= index + 1 %> |
<%= player.name %>
#<%= player.pdgaNumber %>
|
<% if (player.rating) { %> <% } else { %> <% } %> |
<% if (player.predictedRating) { %>
<%= player.predictedRating %>
<%- include('delta-pill', { value: player.deltaPredicted, extraClass: 'delta-predicted-pill' }) %>
<% if (player.stdDev) { %>±<%= player.stdDev %><% } %>
<% } else { %>
<% } %>
|
|
|
<%- include('player-history', {
pdgaNumber: player.pdgaNumber,
history: player.ratingHistory || [],
player: player
}) %>
|
||||