| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Skia Performance Monitoring | Clusters</title> |
| |
| {{template "header.html" .}} |
| |
| <link href="/res/imp/cluster.html" rel="import" /> |
| <link href="/res/imp/sort.html" rel="import" /> |
| <link href="/res/imp/commit-selector.html" rel="import" /> |
| |
| <style type="text/css" media="screen"> |
| #clSorting { |
| padding: 1em 0; |
| } |
| #start { |
| margin: 0.3em; |
| } |
| .issue { |
| margin: 1em 0; |
| } |
| sort-sk { |
| display: block; |
| } |
| .floatingLabel { |
| display: block; |
| margin-top: 1em; |
| margin-bottom: 0.5em; |
| font-size: 0.75em; |
| color: #757575; |
| } |
| </style> |
| </head> |
| <body> |
| <scaffold-sk responsiveWidth="700px"> |
| {{template "titlebar.html" .}} |
| <div id="container"> |
| <section id=clustering> |
| <h2>Trace Clustering</h2> |
| <p> |
| <paper-input value="0.001" id="_stddev" label="Standard Deviation Threshhold" floatingLabel></paper-input> |
| </p> |
| <p> |
| <paper-input value="50" id="_k" label="Number Of Clusters" floatingLabel></paper-input> |
| </p> |
| <p> |
| <span class="floatingLabel">Commit to cluster around (currently non-functional)</span> |
| <commit-selector-sk></commit-selector-sk> |
| </p> |
| <p class=issue> |
| <label for="_issue">Issue:</label> |
| <select name="_issue" id="_issue" size="1"> |
| <option selected> </option> |
| </select> |
| </p> |
| <query-sk></query-sk> |
| <br/> |
| <paper-button raised id="start">Calculate</paper-button> |
| |
| |
| <sort-sk target=clResults> |
| <paper-button data-key="clustersize">Cluster Size </paper-button> |
| <paper-button data-key="stepregression" data-default=up>Regression </paper-button> |
| <paper-button data-key="stepsize">Step Size </paper-button> |
| <paper-button data-key="steplse">Least Squares</paper-button> |
| <paper-button data-key="timestamp">Step Time</paper-button> |
| </sort-sk> |
| <div id="clResults"> |
| </div> |
| </section> |
| </div> |
| </scaffold-sk> |
| <script type="text/javascript" charset="utf-8"> |
| (function() { |
| |
| /** |
| * beginClustering by clearing out the old results and starting the XHR |
| * request to get new clustering results. |
| */ |
| function beginClustering(k, stddev, issue, selections) { |
| sk.clearChildren($$$('#clResults')); |
| |
| document.body.style.cursor = 'wait'; |
| var url = '/clustering/?_k=' + k + '&_stddev=' + stddev + '&_issue=' + issue + '&' + selections; |
| sk.get(url).then(JSON.parse).then(function(json) { |
| var container = $$$('#clResults'); |
| json.Clusters.forEach(function(c){ |
| var sum = document.createElement('cluster-summary-sk'); |
| container.appendChild(sum); |
| sum.summary = c; |
| }); |
| document.body.style.cursor = 'auto'; |
| }).catch(function(e){ |
| alert(e); |
| document.body.style.cursor = 'auto'; |
| }); |
| }; |
| |
| function onLoad() { |
| sk.get('/trybots/').then(JSON.parse).then(function(json){ |
| var select = $$$('#_issue'); |
| json.forEach(function(issue) { |
| var op = document.createElement('OPTION'); |
| op.value = issue; |
| op.innerText = issue; |
| select.appendChild(op); |
| }); |
| }); |
| |
| $$$('#start').addEventListener('click', function(){ |
| beginClustering( |
| $$$('#_k').value, $$$('#_stddev').value, $$$('#_issue').value, $$$('query-sk').currentQuery); |
| }); |
| |
| $$('input[name="sort"]').forEach(function(ele) { |
| ele.addEventListener('click', sort); |
| }); |
| |
| sk.get('/tiles/0/-1/').then(JSON.parse).then(function(json){ |
| $$$('query-sk').setParamSet(json.paramset); |
| }); |
| |
| }; |
| |
| sk.DomReady.then(onLoad); |
| |
| })(); |
| </script> |
| </body> |
| </html> |