diff options
author | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-21 04:22:31 +0000 |
---|---|---|
committer | tonyg@chromium.org <tonyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-21 04:22:31 +0000 |
commit | 28463e89cc3824b2f3af6c9cf545d153293d0430 (patch) | |
tree | 427d6e0cf4e422a979f51b21b2716d5f9aa39f0e /tools/telemetry/support | |
parent | f6eebe9d0eb3061a63d4bc3150df01aed105ebc0 (diff) | |
download | chromium_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.html | 43 |
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> |