Always use v3 UI for dashboards and analysis task pages
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 May 2016 07:33:28 +0000 (07:33 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 May 2016 07:33:28 +0000 (07:33 +0000)
https://bugs.webkit.org/show_bug.cgi?id=157647

Reviewed by Darin Adler.

Redirect dashboard pages from v1 and v2 to v3's summary page. Also redirect v1 UI's charts page and v2 UI's
analysis task pages to the corresponding v3 pages.

Keep v2's charts page accessible since some features such as segmentation is still only available on v2 UI.

* public/index.html:
(init.showCharts): Redirect to v3 UI once the chart list has been parsed.
(init.redirectChartsToV3): Added.
* public/v2/index.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@200820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/index.html
Websites/perf.webkit.org/public/v2/index.html

index a084c92..30fbf57 100644 (file)
@@ -1,5 +1,22 @@
 2016-05-13  Ryosuke Niwa  <rniwa@webkit.org>
 
+        Always use v3 UI for dashboards and analysis task pages
+        https://bugs.webkit.org/show_bug.cgi?id=157647
+
+        Reviewed by Darin Adler.
+
+        Redirect dashboard pages from v1 and v2 to v3's summary page. Also redirect v1 UI's charts page and v2 UI's
+        analysis task pages to the corresponding v3 pages.
+
+        Keep v2's charts page accessible since some features such as segmentation is still only available on v2 UI.
+
+        * public/index.html:
+        (init.showCharts): Redirect to v3 UI once the chart list has been parsed.
+        (init.redirectChartsToV3): Added.
+        * public/v2/index.html:
+
+2016-05-13  Ryosuke Niwa  <rniwa@webkit.org>
+
         Show a spinner while fetching data on summary page
         https://bugs.webkit.org/show_bug.cgi?id=157658
 
index adead70..b813ba5 100644 (file)
@@ -2,6 +2,12 @@
 <html>
 <head>
 <title>Perf Monitor is Loading...</title>
+<script>
+
+if (location.hash.indexOf('#mode=dashboard') >= 0)
+    location.href = '/v3/';
+
+</script>
 <script src="js/jquery.js" defer></script>
 <script src="js/jquery.flot.js" defer></script>
 <script src="js/jquery.flot.crosshair.js" defer></script>
@@ -1056,9 +1062,36 @@ function init() {
             // Ignore any exception thrown by parse.
         }
 
+        redirectChartsToV3(chartList);
+
         chartList.forEach(function (item) { createChartFromListPair(item[0], item[1]); });
     }
 
+    function redirectChartsToV3(chartList)
+    {
+        var v3URLParams = [];
+        var numberOfDays = URLState.get('days');
+        if (parseInt(numberOfDays) == numberOfDays)
+            v3URLParams.push('since=' + (+Date.now() - numberOfDays * 24 * 3600 * 1000));
+
+        var v3PaneList = [];
+        for (var item of chartList) {
+            var platform = nameToPlatform[item[0]];
+            var metric = fullNameToMetric[item[1]];
+            if (platform && metric)
+                v3PaneList.push(`(${platform.id}-${metric.id})`);
+        }
+        v3URLParams.push(`paneList=(${v3PaneList.join('-')})`);
+
+        try {
+            var zoomValues = JSON.parse(URLState.get('zoom', '[]'));
+            if (zoomValues.length == 2)
+                v3URLParams.push(`zoom=(${zoomValues[0]}-${zoomValues[1]})`);
+        } catch (error) { }
+
+        location.href = '/v3/#/charts?' + v3URLParams.join('&');
+    }
+
     // FIXME: We should use exponential slider for charts page where we expect to have
     // the full JSON as opposed to the dashboard where we can't afford loading really big JSON files.
     var exponential = true;
index 034289a..1c8fc26 100644 (file)
@@ -6,6 +6,19 @@
 
     <link rel="prefetch" href="../data/manifest.json">
     <script type="application/json" src="../data/manifest.json"></script>
+    <script>
+
+        function redirectToV3IfNeeded()
+        {
+            var hash = window.location.hash;
+            if (hash.startsWith('#/analysis') || hash.startsWith('#/dashboard'))
+                window.location.pathname = '/v3/';
+        }
+
+        window.onhashchange = redirectToV3IfNeeded;
+        redirectToV3IfNeeded();
+
+    </script>
 
     <link rel="stylesheet" href="app.css">
     <link rel="stylesheet" href="chart-pane.css">