Skip to content

Commit 2f977a9

Browse files
Fix JS errors on dashboard metrics page
https://bugs.webkit.org/show_bug.cgi?id=149608 Patch by Dean Johnson <[email protected]> on 2015-09-28 Reviewed by Alexey Proskuryakov. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js: Updated to use Settings. (initPlatformsByFamily): (updateHiddenPlatforms): (parsePlatformFamily): Deleted. (updateToggleButtons): Deleted. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js: (updateHiddenPlatforms): Added to remove errors. (initPlatformsByFamily): Added to remove errors. (unhiddenQueues): Updated to use Settings. (documentReady): Added logic to add toggle buttons to the settings menu. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js: (Settings.prototype.parsePlatformFamily): Moved duplicate logic from Main.js and MetricsMain.js to Settings. (Settings.prototype.updateToggleButtons): Moved duplicate logic from Main.js and MetricsMain.js to Settings. * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js: (QueueView.prototype._updateHiddenState): Updated to use Settings. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@190303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 04fd3e9 commit 2f977a9

File tree

5 files changed

+118
-28
lines changed

5 files changed

+118
-28
lines changed

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js

+2-26
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,6 @@ var testNames = {};
104104
testNames[Buildbot.TestCategory.WebKit2] = "WK2 Tests";
105105
testNames[Buildbot.TestCategory.WebKit1] = "WK1 Tests";
106106

107-
function parsePlatformFamily(platformName)
108-
{
109-
if (platformName)
110-
return platformName.substr(0, platformName.indexOf("-"));
111-
return ''
112-
}
113-
114107
function initPlatformsByFamily()
115108
{
116109
var platforms = Dashboard.sortedPlatforms;
@@ -119,31 +112,14 @@ function initPlatformsByFamily()
119112
if (!categorizedQueuesByPlatformAndBuildType[platforms[i].name])
120113
continue;
121114

122-
var platformFamily = parsePlatformFamily(platforms[i].name);
115+
var platformFamily = settings.parsePlatformFamily(platforms[i].name);
123116
if (platformsByFamily[platformFamily])
124117
platformsByFamily[platformFamily].push(platforms[i].name)
125118
else
126119
platformsByFamily[platformFamily] = [platforms[i].name]
127120
}
128121
}
129122

130-
function updateToggleButtons()
131-
{
132-
var hiddenPlatformFamilies = settings.getObject("hiddenPlatformFamilies") || [];
133-
var hiddenFamilyButtons = {"all": hiddenPlatformFamilies.length > 0};
134-
for (var i = 0; i < hiddenPlatformFamilies.length; ++i)
135-
hiddenFamilyButtons[hiddenPlatformFamilies[i]] = true;
136-
137-
var platformFamilyButtons = document.getElementsByClassName("platformFamilyToggleButton");
138-
for (var i = 0; i < platformFamilyButtons.length; ++i) {
139-
var hiddenPlatformFamily = parsePlatformFamily(platformFamilyButtons[i].id);
140-
if (!hiddenFamilyButtons[hiddenPlatformFamily])
141-
platformFamilyButtons[i].classList.add("familyShown");
142-
else
143-
platformFamilyButtons[i].classList.remove("familyShown");
144-
}
145-
}
146-
147123
function updateHiddenPlatforms()
148124
{
149125
var hiddenPlatformFamilies = settings.getObject("hiddenPlatformFamilies") || [];
@@ -160,7 +136,7 @@ function updateHiddenPlatforms()
160136
platformRow.classList.add("hidden");
161137
}
162138
}
163-
updateToggleButtons();
139+
settings.updateToggleButtons();
164140
}
165141

166142
function applyAccessibilityColorSetting()

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js

+66-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ var allBuilderResultsPseudoQueue = { id: "allBuilderResultsPseudoQueue" };
3131
var allResultsPseudoQueue = { id: "allResultsPseudoQueue" };
3232

3333
var categorizedQueuesByPlatformAndBuildType = {};
34+
var platformsByFamily = {};
3435

3536
for (var i = 0; i < buildbots.length; ++i) {
3637
var buildbot = buildbots[i];
@@ -70,6 +71,43 @@ var testNames = {};
7071
testNames[Buildbot.TestCategory.WebKit2] = "WK2 Tests";
7172
testNames[Buildbot.TestCategory.WebKit1] = "WK1 Tests";
7273

74+
75+
function updateHiddenPlatforms()
76+
{
77+
var hiddenPlatformFamilies = settings.getObject("hiddenPlatformFamilies") || [];
78+
var platformRows = document.querySelectorAll("tr.platform");
79+
for (var i = 0; i < platformRows.length; ++i)
80+
platformRows[i].classList.remove("hidden");
81+
82+
for (var i = 0; i < hiddenPlatformFamilies.length; ++i) {
83+
var platformFamily = hiddenPlatformFamilies[i];
84+
for (var j = 0; j < platformsByFamily[platformFamily].length; ++j) {
85+
var name = platformsByFamily[platformFamily][j];
86+
var platformRow = document.querySelector("tr.platform." + name);
87+
if (platformRow)
88+
platformRow.classList.add("hidden");
89+
}
90+
}
91+
settings.updateToggleButtons();
92+
}
93+
94+
95+
function initPlatformsByFamily()
96+
{
97+
var platforms = Dashboard.sortedPlatforms;
98+
for (var i in platforms) {
99+
// Make sure the platform will be displayed on the page before considering its platform family.
100+
if (!categorizedQueuesByPlatformAndBuildType[platforms[i].name])
101+
continue;
102+
103+
var platformFamily = settings.parsePlatformFamily(platforms[i].name);
104+
if (platformsByFamily[platformFamily])
105+
platformsByFamily[platformFamily].push(platforms[i].name)
106+
else
107+
platformsByFamily[platformFamily] = [platforms[i].name]
108+
}
109+
}
110+
73111
function unhiddenQueues()
74112
{
75113
var hiddenPlatformFamilies = settings.getObject("hiddenPlatformFamilies") || [];
@@ -78,7 +116,7 @@ function unhiddenQueues()
78116
var buildbot = buildbots[i];
79117
for (var id in buildbot.queues) {
80118
var queue = buildbot.queues[id];
81-
if (-1 === hiddenPlatformFamilies.indexOf(parsePlatformFamily(queue.platform)))
119+
if (-1 === hiddenPlatformFamilies.indexOf(settings.parsePlatformFamily(queue.platform)))
82120
result.push(queue);
83121
}
84122
}
@@ -305,6 +343,33 @@ function documentReady()
305343
settingsButton.classList.add("settings");
306344
document.body.appendChild(settingsButton);
307345

346+
var settingsWrapper = document.createElement("div");
347+
settingsWrapper.classList.add("unhide", "hidden", "settingsWrapper")
348+
349+
var platformFamilyToggleWrapper = document.createElement("div");
350+
platformFamilyToggleWrapper.classList.add("unhide", "hidden", "familyToggleWrapper");
351+
352+
var unhideAllButton = document.createElement("div");
353+
unhideAllButton.addEventListener("click", function () { settings.clearHiddenPlatformFamilies(); });
354+
unhideAllButton.classList.add("unhide", "hidden", "platformFamilyToggleButton");
355+
unhideAllButton.setAttribute("id", "all-platformFamilyToggleButton");
356+
unhideAllButton.textContent = "all";
357+
platformFamilyToggleWrapper.appendChild(unhideAllButton);
358+
359+
initPlatformsByFamily();
360+
for (var platformFamily in platformsByFamily) {
361+
var platformFamilyToggle = document.createElement("div");
362+
platformFamilyToggle.addEventListener("click", function () {
363+
settings.toggleHiddenPlatformFamily(this.toString());
364+
}.bind(platformFamily));
365+
platformFamilyToggle.classList.add("unhide", "hidden", "platformFamilyToggleButton");
366+
platformFamilyToggle.setAttribute("id", platformFamily + "-platformFamilyToggleButton");
367+
platformFamilyToggle.textContent = platformFamily;
368+
platformFamilyToggleWrapper.appendChild(platformFamilyToggle);
369+
}
370+
settingsWrapper.appendChild(platformFamilyToggleWrapper);
371+
document.body.appendChild(settingsWrapper);
372+
308373
updateHiddenPlatforms();
309374
settings.addSettingListener("hiddenPlatformFamilies", updateHiddenPlatforms);
310375
settings.addSettingListener("enteredSettings", function() {

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ QueueView.prototype = {
6969

7070
var hiddenPlatformFamilies = settings.getObject("hiddenPlatformFamilies");
7171
var wasHidden = !this.updateTimer;
72-
var isHidden = hiddenPlatformFamilies && hiddenPlatformFamilies.contains(parsePlatformFamily(this.platform));
72+
var isHidden = hiddenPlatformFamilies && hiddenPlatformFamilies.contains(settings.parsePlatformFamily(this.platform));
7373

7474
if (wasHidden && !isHidden) {
7575
this._updateQueues();

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js

+24
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ Settings.prototype = {
8484
document.body.classList.toggle("settings-visible");
8585
},
8686

87+
parsePlatformFamily: function(platformName)
88+
{
89+
if (!platformName)
90+
return '';
91+
return platformName.substr(0, platformName.indexOf("-"));
92+
},
93+
8794
toggleHiddenPlatformFamily: function(platformFamily)
8895
{
8996
var hiddenPlatformFamilies = this.getObject("hiddenPlatformFamilies") || [];
@@ -102,4 +109,21 @@ Settings.prototype = {
102109
this.setObject("hiddenPlatformFamilies", []);
103110
this.fireSettingListener("hiddenPlatformFamilies");
104111
},
112+
113+
updateToggleButtons: function()
114+
{
115+
var hiddenPlatformFamilies = this.getObject("hiddenPlatformFamilies") || [];
116+
var hiddenFamilyButtons = {"all": hiddenPlatformFamilies.length > 0};
117+
for (var i = 0; i < hiddenPlatformFamilies.length; ++i)
118+
hiddenFamilyButtons[hiddenPlatformFamilies[i]] = true;
119+
120+
var platformFamilyButtons = document.getElementsByClassName("platformFamilyToggleButton");
121+
for (var i = 0; i < platformFamilyButtons.length; ++i) {
122+
var hiddenPlatformFamily = this.parsePlatformFamily(platformFamilyButtons[i].id);
123+
if (!hiddenFamilyButtons[hiddenPlatformFamily])
124+
platformFamilyButtons[i].classList.add("familyShown");
125+
else
126+
platformFamilyButtons[i].classList.remove("familyShown");
127+
}
128+
},
105129
};

Tools/ChangeLog

+25
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
2015-09-28 Dean Johnson <[email protected]>
2+
3+
Fix JS errors on dashboard metrics page
4+
https://bugs.webkit.org/show_bug.cgi?id=149608
5+
6+
Reviewed by Alexey Proskuryakov.
7+
8+
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js: Updated to use Settings.
9+
(initPlatformsByFamily):
10+
(updateHiddenPlatforms):
11+
(parsePlatformFamily): Deleted.
12+
(updateToggleButtons): Deleted.
13+
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/MetricsMain.js:
14+
(updateHiddenPlatforms): Added to remove errors.
15+
(initPlatformsByFamily): Added to remove errors.
16+
(unhiddenQueues): Updated to use Settings.
17+
(documentReady): Added logic to add toggle buttons to the settings menu.
18+
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Settings.js:
19+
(Settings.prototype.parsePlatformFamily): Moved duplicate logic from Main.js and
20+
MetricsMain.js to Settings.
21+
(Settings.prototype.updateToggleButtons): Moved duplicate logic from Main.js and
22+
MetricsMain.js to Settings.
23+
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/QueueView.js:
24+
(QueueView.prototype._updateHiddenState): Updated to use Settings.
25+
126
2015-09-28 Aakash Jain <[email protected]>
227

328
Appscale query fails because of missing index

0 commit comments

Comments
 (0)