summaryrefslogtreecommitdiffstats
path: root/tools/telemetry/support
diff options
context:
space:
mode:
authortonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-21 04:22:31 +0000
committertonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-21 04:22:31 +0000
commit28463e89cc3824b2f3af6c9cf545d153293d0430 (patch)
tree427d6e0cf4e422a979f51b21b2716d5f9aa39f0e /tools/telemetry/support
parentf6eebe9d0eb3061a63d4bc3150df01aed105ebc0 (diff)
downloadchromium_src-28463e89cc3824b2f3af6c9cf545d153293d0430.zip
chromium_src-28463e89cc3824b2f3af6c9cf545d153293d0430.tar.gz
chromium_src-28463e89cc3824b2f3af6c9cf545d153293d0430.tar.bz2
[Telemetry] Add an undelete button.
We keep a stack of deleted runs and allow them to be restored one-by-one. Depends on: https://codereview.chromium.org/23007019/ BUG=269176 NOTRY=True Review URL: https://chromiumcodereview.appspot.com/22859022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218644 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/telemetry/support')
-rw-r--r--tools/telemetry/support/html_output/results-template.html43
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/telemetry/support/html_output/results-template.html b/tools/telemetry/support/html_output/results-template.html
index 919228d..15750dd 100644
--- a/tools/telemetry/support/html_output/results-template.html
+++ b/tools/telemetry/support/html_output/results-template.html
@@ -165,6 +165,7 @@ td.missing {
<div style="padding: 0 10px; white-space: nowrap;">
Result <span id="time-memory" class="checkbox"><span class="checked">Time</span><span>Memory</span></span>
Reference <span id="reference" class="checkbox"></span>
+<span class="checkbox"><span class="checked" id="undelete">Undelete</span></span>
</div>
<table id="container"></table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
@@ -280,6 +281,34 @@ function PerfTestMetric(name, metric, unit, isImportant) {
}
}
+function UndeleteManager() {
+ var key = 'telemetry_undeleteIds'
+ var undeleteIds = localStorage[key];
+ if (undeleteIds) {
+ undeleteIds = JSON.parse(undeleteIds);
+ } else {
+ undeleteIds = [];
+ }
+
+ this.ondelete = function(id) {
+ undeleteIds.push(id);
+ localStorage[key] = JSON.stringify(undeleteIds);
+ }
+ this.undeleteMostRecent = function() {
+ if (!this.mostRecentlyDeletedId())
+ return;
+ var id = undeleteIds.pop();
+ localStorage.removeItem(id);
+ localStorage[key] = JSON.stringify(undeleteIds);
+ }
+ this.mostRecentlyDeletedId = function() {
+ if (!undeleteIds.length)
+ return undefined;
+ return undeleteIds[undeleteIds.length-1];
+ }
+}
+var undeleteManager = new UndeleteManager();
+
var plotColor = 'rgb(230,50,50)';
var subpointsPlotOptions = {
lines: {show:true, lineWidth: 0},
@@ -422,6 +451,7 @@ function createTable(tests, runs, shouldIgnoreMemory, referenceIndex) {
for (var i = 0; i < runs.length; i++) {
if (runs[i].id() == event.target.parentNode.id) {
runs[i].hide();
+ undeleteManager.ondelete(runs[i].id());
location.reload();
break;
}
@@ -616,9 +646,11 @@ function init() {
var runs = [];
var metrics = {};
+ var deletedRunsById = {};
$.each(JSON.parse(document.getElementById('results-json').textContent), function (index, entry) {
var run = new TestRun(entry);
if (run.isHidden()) {
+ deletedRunsById[run.id()] = run;
return;
}
@@ -671,6 +703,17 @@ function init() {
$(checkbox).trigger('change', $(this));
});
});
+
+ if (undeleteManager.mostRecentlyDeletedId()) {
+ $('#undelete').html('Undelete ' + deletedRunsById[undeleteManager.mostRecentlyDeletedId()].label());
+ $('#undelete').attr('title', deletedRunsById[undeleteManager.mostRecentlyDeletedId()].description());
+ $('#undelete').click(function (event) {
+ undeleteManager.undeleteMostRecent();
+ location.reload();
+ });
+ } else {
+ $('#undelete').hide();
+ }
}
</script>