perf-o-matic should have a way to hide some platforms and tests
[WebKit-https.git] / Websites / webkit-perf.appspot.com / js / config.js
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3  * You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 var USE_GENERATED_IMAGES_IN_DASHBOARD = true;
6 var MAX_GRAPHS = 6;
7 var MAX_CSETS = 100;
8 var DAY = 86400000;
9
10 var COLORS = ['#e7454c', '#6dba4b', '#4986cf', '#f5983d', '#884e9f', '#bf5c41'];
11
12 // server for JSON performance data
13 var SERVER = location.protocol.indexOf('http') == 0 ? location.protocol + '//' + location.host : 'http://webkit-perf.appspot.com';
14
15 // server for static dashboard images
16 var IMAGE_SERVER = SERVER;
17
18 if ($.color) {
19     var LIGHT_COLORS = $.map(COLORS, function(color) {
20         return $.color.parse(color).add('a', -.5).toString();
21     });
22 }
23
24 var PLOT_OPTIONS = {
25     xaxis: { mode: 'time' },
26     yaxis: { min: 0 },
27     selection: { mode: 'x', color: '#97c6e5' },
28     series: { shadowSize: 0 },
29     lines: { show: false },
30     points: { show: true },
31     grid: {
32         color: '#cdd6df',
33         borderWidth: 2,
34         backgroundColor: '#fff',
35         hoverable: true,
36         clickable: true,
37         autoHighlight: false
38     }
39 };
40
41 var OVERVIEW_OPTIONS = {
42     xaxis: { mode: 'time' },
43     yaxis: { min: 0 },
44     selection: { mode: 'x', color: '#97c6e5' },
45     series: {
46         lines: { show: true, lineWidth: 1 },
47         shadowSize: 0
48     },
49     grid: {
50         color: '#cdd6df',
51         borderWidth: 2,
52         backgroundColor: '#fff',
53         tickColor: 'rgba(0,0,0,0)'
54     }
55 };
56
57 var REPOSITORIES = ['WebKit', 'Chromium'];
58 var DEFAULT_REPOSITORY = 'WebKit';
59
60 function urlForChangeset(branch, changeset, repository)
61 {
62     if (repository == 'Chromium')
63         return 'http://src.chromium.org/viewvc/chrome?view=rev&revision=' +
64                changeset;
65     else
66         return 'http://trac.webkit.org/changeset/' + changeset;
67 }
68
69 function urlForChangesetList(branch, changesetList, repository)
70 {
71     var min = Math.min.apply(Math, changesetList);
72     var max = Math.max.apply(Math, changesetList);
73     if (repository == 'Chromium')
74         return 'http://build.chromium.org/f/chromium/perf/dashboard/ui/' +
75                'changelog.html?url=/trunk/src&mode=html&range=' + min + ':' +
76                max;
77     else
78         return 'http://trac.webkit.org/log/?rev=' + max + '&stop_rev=' + min +
79                '&verbose=on';
80 }
81
82 // FIXME move this back to dashboard.js once the bug 718925 is fixed
83 function fetchDashboardManifest(callback)
84 {
85     $.ajaxSetup({
86         'error': function(xhr, e, message) {
87             error('Could not download dashboard data from server', e);
88         },
89         cache: true,
90     });
91
92     $.getJSON(SERVER + '/api/test/dashboard', function (dashboardManifest) {
93         var testToId = dashboardManifest['testToId'];
94         var tests = Object.keys(testToId).sort();
95         var sortedTestToId = {};
96         for (var i = 0; i < tests.length; i++)
97             sortedTestToId[tests[i]] = testToId[tests[i]];
98         dashboardManifest['testToId'] = sortedTestToId;
99         callback(dashboardManifest);
100     });
101 }
102
103 (function() {
104     $.ajaxSetup({
105         'error': function(xhr, e, message) {
106             error('Could not determine the the login status', e);
107         },
108         cache: true,
109     });
110
111     $.getJSON('/api/user/is-admin', function (isAdmin) {
112         if (isAdmin) {
113             $('#header nav').append('<a href="/admin/">Admin</a>');
114             if (!$('#header nav .selected').length) {
115                 $('#header nav a').last().addClass('selected')
116             }
117         }
118     })
119 })();