Commit a5fd5005 authored by ojan@chromium.org's avatar ojan@chromium.org

Remove usages of jquery and add sugar.js from garden-o-matic.

Use sugar.js to replace usages of jquery and replace any extraneous
uses as well. Didn't touch the custom event stuff (bind/trigger) or
the tabs UI code. Those will naturally go away as we port things to
polymer. Kept this patch for mechanical simple changes.

The only non-mechanical bits are $.param --> base.queryParam and
fadeIn/fadeOut --> element.animate.

NOTRY=true

Review URL: https://codereview.chromium.org/359283003

git-svn-id: svn://svn.chromium.org/blink/trunk@177188 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 3fc9aadf
...@@ -42,6 +42,7 @@ James, a web developer from Birmingham, UK. ...@@ -42,6 +42,7 @@ James, a web developer from Birmingham, UK.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.15/jquery-ui.min.js"></script>
<script src="scripts/third_party/sugar.js"></script>
<script src="scripts/base.js"></script> <script src="scripts/base.js"></script>
<script src="scripts/config.js"></script> <script src="scripts/config.js"></script>
<script src="scripts/net.js"></script> <script src="scripts/net.js"></script>
......
...@@ -40,6 +40,7 @@ THE POSSIBILITY OF SUCH DAMAGE. ...@@ -40,6 +40,7 @@ THE POSSIBILITY OF SUCH DAMAGE.
<link rel="stylesheet" href="styles/results.css"> <link rel="stylesheet" href="styles/results.css">
<script src="scripts/third_party/sugar.js"></script>
<script src="scripts/base.js"></script> <script src="scripts/base.js"></script>
<script src="scripts/config.js"></script> <script src="scripts/config.js"></script>
<script src="scripts/base_unittests.js"></script> <script src="scripts/base_unittests.js"></script>
......
...@@ -62,7 +62,7 @@ base.uniquifyArray = function(array) ...@@ -62,7 +62,7 @@ base.uniquifyArray = function(array)
{ {
var seen = {}; var seen = {};
var result = []; var result = [];
$.each(array, function(index, value) { array.forEach(function(value) {
if (seen[value]) if (seen[value])
return; return;
seen[value] = true; seen[value] = true;
...@@ -261,4 +261,16 @@ base.underscoredBuilderName = function(builderName) ...@@ -261,4 +261,16 @@ base.underscoredBuilderName = function(builderName)
return builderName.replace(/[ .()]/g, '_'); return builderName.replace(/[ .()]/g, '_');
} }
base.queryParam = function(params)
{
var result = []
Object.keys(params, function(key, value) {
result.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
});
// FIXME: Remove the conversion of space to plus. This is just here
// to remain compatible with jQuery.param, but there's no reason to
// deviate from the built-in encodeURIComponent behavior.
return result.join('&').replace(/%20/g, '+');
}
})(); })();
...@@ -309,4 +309,12 @@ test("parseJSONP", 6, function() { ...@@ -309,4 +309,12 @@ test("parseJSONP", 6, function() {
deepEqual(base.parseJSONP('{"builder(1)":"data"}'), {"builder(1)":"data"}); deepEqual(base.parseJSONP('{"builder(1)":"data"}'), {"builder(1)":"data"});
}); });
test("base.queryParam", 2, function() {
equal(base.queryParam({}), '');
equal(base.queryParam({
'foo bar': 'bar baz',
'1 2': '3 4',
}), 'foo+bar=bar+baz&1+2=3+4');
});
})(); })();
...@@ -106,7 +106,7 @@ builders.buildersFailingNonLayoutTests = function() ...@@ -106,7 +106,7 @@ builders.buildersFailingNonLayoutTests = function()
{ {
return fetchMostRecentBuildInfoByBuilder().then(function(buildInfoByBuilder) { return fetchMostRecentBuildInfoByBuilder().then(function(buildInfoByBuilder) {
var failureList = {}; var failureList = {};
$.each(buildInfoByBuilder, function(builderName, buildInfo) { Object.keys(buildInfoByBuilder, function(builderName, buildInfo) {
if (!buildInfo) if (!buildInfo)
return; return;
var failures = failingSteps(buildInfo); var failures = failingSteps(buildInfo);
......
...@@ -89,7 +89,7 @@ test("controllers.FailingBuilders", 3, function() { ...@@ -89,7 +89,7 @@ test("controllers.FailingBuilders", 3, function() {
ok(failingBuilders.hasFailures()); ok(failingBuilders.hasFailures());
equal(view.outerHTML, '<div>' + equal(view.outerHTML, '<div>' +
'<li style="opacity: 0;">' + '<li>' +
'<div class="how"></div>' + '<div class="how"></div>' +
'<div class="what">' + '<div class="what">' +
'<div class="problem">dummy message:' + '<div class="problem">dummy message:' +
......
...@@ -39,9 +39,9 @@ var g_updateButton = null; ...@@ -39,9 +39,9 @@ var g_updateButton = null;
function updatePartyTime() function updatePartyTime()
{ {
if (!g_unexpectedFailuresController.length() && !g_nonLayoutTestFailureBuilders.hasFailures()) if (!g_unexpectedFailuresController.length() && !g_nonLayoutTestFailureBuilders.hasFailures())
$('#onebar').addClass('partytime'); document.getElementById('onebar').classList.add('partytime');
else else
$('#onebar').removeClass('partytime'); document.getElementById('onebar').classList.remove('partytime');
} }
function updateTreeStatus() function updateTreeStatus()
...@@ -104,7 +104,7 @@ function update() ...@@ -104,7 +104,7 @@ function update()
}); });
} }
$(document).ready(function() { window.addEventListener('DOMContentLoaded', function() {
g_updateTimerId = window.setInterval(update, config.kUpdateFrequency); g_updateTimerId = window.setInterval(update, config.kUpdateFrequency);
window.setInterval(updateTreeStatus, config.kTreeStatusUpdateFrequency); window.setInterval(updateTreeStatus, config.kTreeStatusUpdateFrequency);
...@@ -119,7 +119,8 @@ $(document).ready(function() { ...@@ -119,7 +119,8 @@ $(document).ready(function() {
showResults: function(resultsView) showResults: function(resultsView)
{ {
var resultsContainer = onebar.results(); var resultsContainer = onebar.results();
$(resultsContainer).empty().append(resultsView); resultsContainer.innerHTML = '';
resultsContainer.appendChild(resultsView)
onebar.select('results'); onebar.select('results');
} }
}; };
......
...@@ -35,11 +35,11 @@ model.state.failureAnalysisByTest = {}; ...@@ -35,11 +35,11 @@ model.state.failureAnalysisByTest = {};
function findAndMarkRevertedRevisions(commitDataList) function findAndMarkRevertedRevisions(commitDataList)
{ {
var revertedRevisions = {}; var revertedRevisions = {};
$.each(commitDataList, function(index, commitData) { Object.keys(commitDataList, function(index, commitData) {
if (commitData.revertedRevision) if (commitData.revertedRevision)
revertedRevisions[commitData.revertedRevision] = true; revertedRevisions[commitData.revertedRevision] = true;
}); });
$.each(commitDataList, function(index, commitData) { Object.keys(commitDataList, function(index, commitData) {
if (commitData.revision in revertedRevisions) if (commitData.revision in revertedRevisions)
commitData.wasReverted = true; commitData.wasReverted = true;
}); });
...@@ -150,13 +150,13 @@ model.analyzeUnexpectedFailures = function(failureCallback) ...@@ -150,13 +150,13 @@ model.analyzeUnexpectedFailures = function(failureCallback)
{ {
var unexpectedFailures = results.unexpectedFailuresByTest(model.state.resultsByBuilder); var unexpectedFailures = results.unexpectedFailuresByTest(model.state.resultsByBuilder);
$.each(model.state.failureAnalysisByTest, function(testName, failureAnalysis) { Object.keys(model.state.failureAnalysisByTest, function(testName, failureAnalysis) {
if (!(testName in unexpectedFailures)) if (!(testName in unexpectedFailures))
delete model.state.failureAnalysisByTest[testName]; delete model.state.failureAnalysisByTest[testName];
}); });
var failurePromises = []; var failurePromises = [];
$.each(unexpectedFailures, function(testName, resultNodesByBuilder) { Object.keys(unexpectedFailures, function(testName, resultNodesByBuilder) {
var builderNameList = Object.keys(resultNodesByBuilder); var builderNameList = Object.keys(resultNodesByBuilder);
failurePromises.push(results.unifyRegressionRanges(builderNameList, testName).then(function(result) { failurePromises.push(results.unifyRegressionRanges(builderNameList, testName).then(function(result) {
var oldestFailingRevision = result[0]; var oldestFailingRevision = result[0];
......
...@@ -109,7 +109,7 @@ asyncTest("updateRecentCommits", 2, function() { ...@@ -109,7 +109,7 @@ asyncTest("updateRecentCommits", 2, function() {
model.updateRecentCommits().then(function() { model.updateRecentCommits().then(function() {
var recentCommits = model.state.recentCommits; var recentCommits = model.state.recentCommits;
delete model.state.recentCommits; delete model.state.recentCommits;
$.each(recentCommits, function(index, commitData) { recentCommits.forEach(function(commitData) {
delete commitData.message; delete commitData.message;
}); });
deepEqual(recentCommits, [{ deepEqual(recentCommits, [{
......
...@@ -63,7 +63,7 @@ function zoomImageContainer(url) ...@@ -63,7 +63,7 @@ function zoomImageContainer(url)
container.className = 'zoom-image-container'; container.className = 'zoom-image-container';
var title = url.match(/\-([^\-]*)\.png/)[1]; var title = url.match(/\-([^\-]*)\.png/)[1];
var label = document.createElement('div'); var label = document.createElement('div');
label.className = 'label'; label.className = 'label';
label.appendChild(document.createTextNode(title)); label.appendChild(document.createTextNode(title));
...@@ -137,7 +137,9 @@ function handleMouseOut(e) ...@@ -137,7 +137,9 @@ function handleMouseOut(e)
return; return;
// If e.relatedTarget is null, we've moused out of the document. // If e.relatedTarget is null, we've moused out of the document.
$('pixel-zoom-container').detach(); var container = document.querySelector('.pixel-zoom-container');
if (container)
container.remove();
} }
function handleMouseMove(e) function handleMouseMove(e)
...@@ -153,7 +155,8 @@ function handleMouseMove(e) ...@@ -153,7 +155,8 @@ function handleMouseMove(e)
var resultContainer = (e.target.className == 'result-container') ? var resultContainer = (e.target.className == 'result-container') ?
e.target : parentOfType(e.target, '.result-container'); e.target : parentOfType(e.target, '.result-container');
if (!resultContainer || !resultContainer.querySelector('img')) { if (!resultContainer || !resultContainer.querySelector('img')) {
$(container).detach(); if (container)
container.remove();
return; return;
} }
......
...@@ -101,7 +101,7 @@ function possibleSuffixListFor(failureTypeList) ...@@ -101,7 +101,7 @@ function possibleSuffixListFor(failureTypeList)
// '-pretty-diff.html', // '-pretty-diff.html',
} }
$.each(failureTypeList, function(index, failureType) { failureTypeList.forEach(function(failureType) {
switch(failureType) { switch(failureType) {
case IMAGE: case IMAGE:
pushImageSuffixes(); pushImageSuffixes();
...@@ -222,8 +222,8 @@ function resultsByTest(resultsByBuilder, filter) ...@@ -222,8 +222,8 @@ function resultsByTest(resultsByBuilder, filter)
{ {
var resultsByTest = {}; var resultsByTest = {};
$.each(resultsByBuilder, function(builderName, resultsTree) { Object.keys(resultsByBuilder, function(builderName, resultsTree) {
$.each(filter(resultsTree), function(testName, resultNode) { Object.keys(filter(resultsTree), function(testName, resultNode) {
resultsByTest[testName] = resultsByTest[testName] || {}; resultsByTest[testName] = resultsByTest[testName] || {};
resultsByTest[testName][builderName] = resultNode; resultsByTest[testName][builderName] = resultNode;
}); });
...@@ -251,7 +251,7 @@ results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builder ...@@ -251,7 +251,7 @@ results.failureInfoForTestAndBuilder = function(resultsByTest, testName, builder
results.collectUnexpectedResults = function(dictionaryOfResultNodes) results.collectUnexpectedResults = function(dictionaryOfResultNodes)
{ {
var collectedResults = []; var collectedResults = [];
$.each(dictionaryOfResultNodes, function(key, resultNode) { Object.keys(dictionaryOfResultNodes, function(key, resultNode) {
var analyzer = new results.ResultAnalyzer(resultNode); var analyzer = new results.ResultAnalyzer(resultNode);
collectedResults = collectedResults.concat(analyzer.unexpectedResults()); collectedResults = collectedResults.concat(analyzer.unexpectedResults());
}); });
...@@ -290,7 +290,7 @@ function walkHistory(builderName, testName, continueCallback) ...@@ -290,7 +290,7 @@ function walkHistory(builderName, testName, continueCallback)
var resultsURL = keyList[indexOfNextKeyToFetch].url; var resultsURL = keyList[indexOfNextKeyToFetch].url;
++indexOfNextKeyToFetch; ++indexOfNextKeyToFetch;
g_resultsCache.get(resultsURL).then(function(resultsTree) { g_resultsCache.get(resultsURL).then(function(resultsTree) {
if ($.isEmptyObject(resultsTree)) { if (!Object.size(resultsTree)) {
continueWalk(); continueWalk();
return; return;
} }
...@@ -351,7 +351,7 @@ function mergeRegressionRanges(regressionRanges) ...@@ -351,7 +351,7 @@ function mergeRegressionRanges(regressionRanges)
mergedRange.oldestFailingRevision = 0; mergedRange.oldestFailingRevision = 0;
mergedRange.newestPassingRevision = 0; mergedRange.newestPassingRevision = 0;
$.each(regressionRanges, function(builderName, range) { Object.keys(regressionRanges, function(builderName, range) {
if (!range.oldestFailingRevision && !range.newestPassingRevision) if (!range.oldestFailingRevision && !range.newestPassingRevision)
return return
...@@ -373,7 +373,7 @@ results.unifyRegressionRanges = function(builderNameList, testName) { ...@@ -373,7 +373,7 @@ results.unifyRegressionRanges = function(builderNameList, testName) {
var regressionRanges = {}; var regressionRanges = {};
var rangePromises = []; var rangePromises = [];
$.each(builderNameList, function(index, builderName) { builderNameList.forEach(function(builderName) {
rangePromises.push(results.regressionRangeForFailure(builderName, testName) rangePromises.push(results.regressionRangeForFailure(builderName, testName)
.then(function(result) { .then(function(result) {
var oldestFailingRevision = result[0]; var oldestFailingRevision = result[0];
...@@ -394,7 +394,7 @@ results.resultNodeForTest = function(resultsTree, testName) ...@@ -394,7 +394,7 @@ results.resultNodeForTest = function(resultsTree, testName)
{ {
var testNamePath = testName.split('/'); var testNamePath = testName.split('/');
var currentNode = resultsTree['tests']; var currentNode = resultsTree['tests'];
$.each(testNamePath, function(index, segmentName) { testNamePath.forEach(function(segmentName) {
if (!currentNode) if (!currentNode)
return; return;
currentNode = (segmentName in currentNode) ? currentNode[segmentName] : null; currentNode = (segmentName in currentNode) ? currentNode[segmentName] : null;
...@@ -425,8 +425,8 @@ results.resultType = function(url) ...@@ -425,8 +425,8 @@ results.resultType = function(url)
function sortResultURLsBySuffix(urls) function sortResultURLsBySuffix(urls)
{ {
var sortedURLs = []; var sortedURLs = [];
$.each(kPreferredSuffixOrder, function(i, suffix) { kPreferredSuffixOrder.forEach(function(suffix) {
$.each(urls, function(j, url) { urls.forEach(function(url) {
if (!base.endsWith(url, suffix)) if (!base.endsWith(url, suffix))
return; return;
sortedURLs.push(url); sortedURLs.push(url);
...@@ -445,7 +445,7 @@ results.fetchResultsURLs = function(failureInfo) ...@@ -445,7 +445,7 @@ results.fetchResultsURLs = function(failureInfo)
var suffixList = possibleSuffixListFor(failureInfo.failureTypeList); var suffixList = possibleSuffixListFor(failureInfo.failureTypeList);
var resultURLs = []; var resultURLs = [];
var probePromises = []; var probePromises = [];
$.each(suffixList, function(index, suffix) { suffixList.forEach(function(suffix) {
var url = urlStem + testNameStem + suffix; var url = urlStem + testNameStem + suffix;
probePromises.push(net.probe(url).then( probePromises.push(net.probe(url).then(
function() { function() {
...@@ -462,7 +462,7 @@ results.fetchResultsByBuilder = function(builderNameList) ...@@ -462,7 +462,7 @@ results.fetchResultsByBuilder = function(builderNameList)
{ {
var resultsByBuilder = {}; var resultsByBuilder = {};
var fetchPromises = []; var fetchPromises = [];
$.each(builderNameList, function(index, builderName) { builderNameList.forEach(function(builderName) {
var resultsURL = resultsSummaryURL(builderName); var resultsURL = resultsSummaryURL(builderName);
fetchPromises.push(net.jsonp(resultsURL).then(function(resultsTree) { fetchPromises.push(net.jsonp(resultsURL).then(function(resultsTree) {
resultsByBuilder[builderName] = resultsTree; resultsByBuilder[builderName] = resultsTree;
......
...@@ -29,7 +29,7 @@ var rollbot = rollbot || {}; ...@@ -29,7 +29,7 @@ var rollbot = rollbot || {};
// FIXME: This will need to change once we have a real account for the rollbot. // FIXME: This will need to change once we have a real account for the rollbot.
var rollBotAccount = "eseidel@chromium.org"; var rollBotAccount = "eseidel@chromium.org";
var issueSearchURL = config.kRietveldURL + "/search?" + $.param({ var issueSearchURL = config.kRietveldURL + "/search?" + base.queryParam({
"owner": rollBotAccount, "owner": rollBotAccount,
"closed": 3, // Only open issues. "closed": 3, // Only open issues.
"with_messages": "true", "with_messages": "true",
......
...@@ -145,7 +145,7 @@ function createBuildersFailing(failingBuilderCount) ...@@ -145,7 +145,7 @@ function createBuildersFailing(failingBuilderCount)
return buildersFailing return buildersFailing
} }
$(document).ready(function() { window.addEventListener('DOMContentLoaded', function() {
var actions = new ui.notifications.Stream(); var actions = new ui.notifications.Stream();
document.body.insertBefore(actions, document.body.firstChild); document.body.insertBefore(actions, document.body.firstChild);
......
...@@ -90,7 +90,7 @@ function parseCommitMessage(message) { ...@@ -90,7 +90,7 @@ function parseCommitMessage(message) {
function parseCommitData(responseXML) function parseCommitData(responseXML)
{ {
var commits = Array.prototype.map.call(responseXML.getElementsByTagName('entry'), function(logentry) { var commits = Array.prototype.map.call(responseXML.getElementsByTagName('entry'), function(logentry) {
var author = $.trim(logentry.getElementsByTagName('author')[0].textContent); var author = logentry.getElementsByTagName('author')[0].textContent.trim();
var time = logentry.getElementsByTagName('published')[0].textContent; var time = logentry.getElementsByTagName('published')[0].textContent;
var titleElement = logentry.getElementsByTagName('title')[0]; var titleElement = logentry.getElementsByTagName('title')[0];
var title = titleElement ? titleElement.textContent : null; var title = titleElement ? titleElement.textContent : null;
...@@ -120,7 +120,7 @@ trac.changesetURL = function(revision) ...@@ -120,7 +120,7 @@ trac.changesetURL = function(revision)
view: 'rev', view: 'rev',
revision: revision, revision: revision,
}; };
return config.kBlinkRevisionURL + '?' + $.param(queryParameters); return config.kBlinkRevisionURL + '?' + base.queryParam(queryParameters);
}; };
trac.recentCommitData = function(path, limit) trac.recentCommitData = function(path, limit)
......
...@@ -272,7 +272,7 @@ asyncTest("recentCommitData", 3, function() { ...@@ -272,7 +272,7 @@ asyncTest("recentCommitData", 3, function() {
simulator.runTest(function() { simulator.runTest(function() {
return trac.recentCommitData('trunk', 10).then(function(commitDataList) { return trac.recentCommitData('trunk', 10).then(function(commitDataList) {
$.each(commitDataList, function(index, commitData) { commitDataList.forEach(function(commitData) {
// Including the entire message makes the deepEqual below to unwieldy. // Including the entire message makes the deepEqual below to unwieldy.
delete commitData.message; delete commitData.message;
}); });
......
...@@ -29,7 +29,7 @@ var ui = ui || {}; ...@@ -29,7 +29,7 @@ var ui = ui || {};
ui.displayURLForBuilder = function(builderName) ui.displayURLForBuilder = function(builderName)
{ {
return config.waterfallURL + '?' + $.param({ return config.waterfallURL + '?' + base.queryParam({
'builder': builderName 'builder': builderName
}); });
} }
...@@ -75,8 +75,8 @@ ui.setUseNewWindowForLinks = function(enabled) ...@@ -75,8 +75,8 @@ ui.setUseNewWindowForLinks = function(enabled)
else else
delete localStorage[ui.kUseNewWindowForLinksSetting]; delete localStorage[ui.kUseNewWindowForLinksSetting];
$('a').each(function() { [].forEach.call(document.querySelectorAll('a'), function(link) {
ui.setTargetForLink(this); ui.setTargetForLink(link);
}); });
} }
ui.setUseNewWindowForLinks(!!localStorage[ui.kUseNewWindowForLinksSetting]); ui.setUseNewWindowForLinks(!!localStorage[ui.kUseNewWindowForLinksSetting]);
...@@ -147,8 +147,9 @@ ui.onebar = base.extends('div', { ...@@ -147,8 +147,9 @@ ui.onebar = base.extends('div', {
}, },
_setupLinkSettingHandler: function() _setupLinkSettingHandler: function()
{ {
$('#new-window-for-links').attr('checked', ui.useNewWindowForLinks); if (ui.useNewWindowForLinks)
$('#new-window-for-links').change(function(event) { document.getElementById('new-window-for-links').setAttribute('checked', true);
document.getElementById('new-window-for-links').addEventListener('change', function(event) {
ui.setUseNewWindowForLinks(this.checked); ui.setUseNewWindowForLinks(this.checked);
}); });
}, },
...@@ -278,32 +279,29 @@ ui.revisionDetails = base.extends('span', { ...@@ -278,32 +279,29 @@ ui.revisionDetails = base.extends('span', {
theSpan.appendChild(revisionsNode); theSpan.appendChild(revisionsNode);
// This adds a pop-up when we hover over the summary if the details aren't being shown. // This adds a pop-up when we hover over the summary if the details aren't being shown.
var revisionsPopUp = $('<span id="revisionPopUp">').appendTo(summaryLinkNode); var revisionsPopUp = document.createElement('span')
revisionsPopUp.append($(revisionsTableNode).clone()); revisionsPopUp.id = 'revisionPopUp';
$(summaryLinkNode).mouseover(function(ev) { summaryLinkNode.appendChild(revisionsPopUp);
revisionsPopUp.appendChild(revisionsTableNode.cloneNode(true));
summaryLinkNode.addEventListener('mouseover', function(event) {
if (!revisionsNode.open) { if (!revisionsNode.open) {
var tPosX = $(summaryNode).position().left; revisionsPopUp.style.position = 'absolute';
var tPosY = $(summaryNode).position().top + 16; revisionsPopUp.style.left = summaryNode.offsetLeft + 'px';
$(revisionsPopUp).css({'position': 'absolute', 'top': tPosY, 'left': tPosX}); revisionsPopUp.style.top = (summaryNode.offsetTop + summaryNode.offsetHeight) + 'px';
$(revisionsPopUp).addClass('active'); revisionsPopUp.classList.add('active');
} }
}); });
$(summaryLinkNode).mouseout(function(ev) {
summaryLinkNode.addEventListener('mouseout', function(event) {
if (!revisionsNode.open) { if (!revisionsNode.open) {
$(revisionsPopUp).removeClass("active"); revisionsPopUp.classList.remove("active");
} }
}); });
var totRevision = model.latestRevision(); var totRevision = model.latestRevision();
theSpan.appendChild(document.createTextNode(', trunk is at ')); theSpan.appendChild(document.createTextNode(', trunk is at '));
theSpan.appendChild(ui.createLinkNode(trac.changesetURL(totRevision), totRevision)); theSpan.appendChild(ui.createLinkNode(trac.changesetURL(totRevision), totRevision));
// We want this feature, but need to fetch the lastBlinkRollRevision via the interwebs.
// Promise.all([checkout.lastBlinkRollRevision(), rollbot.fetchCurrentRoll()]).then(function(results) {
// theSpan.lastRolledRevision = results[0];
// theSpan.roll = results[1];
// theSpan.updateUI(totRevision);
// });
} }
}); });
......
...@@ -87,9 +87,10 @@ ui.failures.FailureGrid = base.extends('table', { ...@@ -87,9 +87,10 @@ ui.failures.FailureGrid = base.extends('table', {
_rowByResult: function(result) _rowByResult: function(result)
{ {
var row = this._resultRows[result]; var row = this._resultRows[result];
$(row).show(); if (row) {
if (row) row.style.display = '';
return row; return row;
}
row = this._resultRows[result] = this._body.insertRow(0); row = this._resultRows[result] = this._body.insertRow(0);
row.className = result; row.className = result;
...@@ -126,10 +127,9 @@ ui.failures.FailureGrid = base.extends('table', { ...@@ -126,10 +127,9 @@ ui.failures.FailureGrid = base.extends('table', {
{ {
this._pendingReset = false; this._pendingReset = false;
this._resultRows = {}; this._resultRows = {};
$(this._body).empty(); this._body.innerHTML = '';
// Add the BUILDING row eagerly so that it appears last. // Add the BUILDING row eagerly so that it appears last.
this._rowByResult(kBuildingResult); this._rowByResult(kBuildingResult).style.display = 'none';
$(this._resultRows[kBuildingResult]).hide();
} }
}); });
......
...@@ -50,15 +50,21 @@ ui.notifications.Notification = base.extends('li', { ...@@ -50,15 +50,21 @@ ui.notifications.Notification = base.extends('li', {
this._what = this.appendChild(document.createElement('div')); this._what = this.appendChild(document.createElement('div'));
this._what.className = 'what'; this._what.className = 'what';
this._index = 0; this._index = 0;
$(this).hide().fadeIn('fast'); // FIXME: Why is this requestAnimationFrame needed to make the
// animation happen?
requestAnimationFrame(function() {
this.animate([
{opacity: '0'},
{opacity: '1'},
], 200);
}.bind(this));
}, },
dismiss: function() dismiss: function()
{ {
// FIXME: These fade in/out effects are lame. this.animate([
$(this).fadeOut(function() {opacity: '1'},
{ {opacity: '0'},
this.parentNode && this.parentNode.removeChild(this); ], 200).onfinish = this.remove.bind(this);
});
}, },
}); });
...@@ -73,7 +79,7 @@ ui.notifications.Info = base.extends(ui.notifications.Notification, { ...@@ -73,7 +79,7 @@ ui.notifications.Info = base.extends(ui.notifications.Notification, {
}, },
updateWithNode: function(node) updateWithNode: function(node)
{ {
$(this._what).empty(); this._what.innerHTML = '';
this._what.appendChild(node); this._what.appendChild(node);
} }
}); });
...@@ -123,7 +129,7 @@ ui.notifications.SuspiciousCommit = base.extends(Cause, { ...@@ -123,7 +129,7 @@ ui.notifications.SuspiciousCommit = base.extends(Cause, {
span.className = part; span.className = part;
if (linkFunction) { if (linkFunction) {
var parts = $.isArray(content) ? content : [content]; var parts = Array.isArray(content) ? content : [content];
parts.forEach(function(item, index) { parts.forEach(function(item, index) {
if (index > 0) if (index > 0)
span.appendChild(document.createTextNode(', ')); span.appendChild(document.createTextNode(', '));
...@@ -170,7 +176,7 @@ ui.notifications.FailingTests = base.extends(ui.notifications.Failure, { ...@@ -170,7 +176,7 @@ ui.notifications.FailingTests = base.extends(ui.notifications.Failure, {
if (this.containsFailureAnalysis(failureAnalysis)) if (this.containsFailureAnalysis(failureAnalysis))
return false; return false;
this._testNameList.push(failureAnalysis.testName); this._testNameList.push(failureAnalysis.testName);
$(this._effects).empty(); this._effects.innerHTML = '';
this._forEachTestGroup(function(groupName, testNameList) { this._forEachTestGroup(function(groupName, testNameList) {
this._effects.appendChild(new ui.notifications.FailingTestGroup(groupName, testNameList)) this._effects.appendChild(new ui.notifications.FailingTestGroup(groupName, testNameList))
}.bind(this)); }.bind(this));
...@@ -223,12 +229,13 @@ ui.notifications.BuildersFailing = base.extends(ui.notifications.Failure, { ...@@ -223,12 +229,13 @@ ui.notifications.BuildersFailing = base.extends(ui.notifications.Failure, {
}, },
setFailingBuilders: function(failuresList) setFailingBuilders: function(failuresList)
{ {
$(this._effects).empty().append(Object.keys(failuresList).map(function(builderName) { this._effects.innerHTML = '';
Object.keys(failuresList).map(function(builderName) {
var effect = document.createElement('li'); var effect = document.createElement('li');
effect.className = 'builder'; effect.className = 'builder';
effect.appendChild(new ui.failures.Builder(builderName, failuresList[builderName])); effect.appendChild(new ui.failures.Builder(builderName, failuresList[builderName]));
return effect; this._effects.appendChild(effect);
})); }.bind(this));
} }
}); });
......
...@@ -221,7 +221,7 @@ test('FailingTestsSummary', 10, function() { ...@@ -221,7 +221,7 @@ test('FailingTestsSummary', 10, function() {
'<td></td>' + '<td></td>' +
'<td><a class="failing-builder" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=WebKit+Linux+(dbg)"><span class="version">lucid</span><span class="architecture">64-bit</span></a></td>' + '<td><a class="failing-builder" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=WebKit+Linux+(dbg)"><span class="version">lucid</span><span class="architecture">64-bit</span></a></td>' +
'</tr>' + '</tr>' +
'<tr class="BUILDING" style="">' + '<tr class="BUILDING">' +
'<td><span>BUILDING</span></td>' + '<td><span>BUILDING</span></td>' +
'<td><a class="failing-builder" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=WebKit+Mac10.6"><span class="version">snowleopard</span></a></td>' + '<td><a class="failing-builder" href="http://build.chromium.org/p/chromium.webkit/waterfall?builder=WebKit+Mac10.6"><span class="version">snowleopard</span></a></td>' +
'<td></td>' + '<td></td>' +
......
...@@ -45,7 +45,7 @@ ui.results.ResultsGrid = base.extends('div', { ...@@ -45,7 +45,7 @@ ui.results.ResultsGrid = base.extends('div', {
resultsURLsByTypeAndKind[resultType][results.resultKind(url)] = url; resultsURLsByTypeAndKind[resultType][results.resultKind(url)] = url;
}); });
$.each(resultsURLsByTypeAndKind, function(resultType, resultsURLsByKind) { Object.keys(resultsURLsByTypeAndKind, function(resultType, resultsURLsByKind) {
if (results.kUnknownKind in resultsURLsByKind) { if (results.kUnknownKind in resultsURLsByKind) {
// This is something like "crash" that isn't a comparison. // This is something like "crash" that isn't a comparison.
var result = document.createElement('ct-test-output'); var result = document.createElement('ct-test-output');
...@@ -89,11 +89,13 @@ ui.results.ResultsDetails = base.extends('div', { ...@@ -89,11 +89,13 @@ ui.results.ResultsDetails = base.extends('div', {
var resultsGrid = new ui.results.ResultsGrid(); var resultsGrid = new ui.results.ResultsGrid();
resultsGrid.addResults(resultsURLs); resultsGrid.addResults(resultsURLs);
$(this).empty().append( this.innerHTML = ''
this.appendChild(
new ui.actions.List([ new ui.actions.List([
new ui.actions.Previous(), new ui.actions.Previous(),
new ui.actions.Next() new ui.actions.Next()
])).append(resultsGrid); ]))
this.appendChild(resultsGrid);
}.bind(this)); }.bind(this));
}, },
}); });
...@@ -178,8 +180,7 @@ ui.results.TestSelector = base.extends('div', { ...@@ -178,8 +180,7 @@ ui.results.TestSelector = base.extends('div', {
var cancelResize = function(event) { this._is_resizing = false; }.bind(this); var cancelResize = function(event) { this._is_resizing = false; }.bind(this);
this.addEventListener('mouseup', cancelResize); this.addEventListener('mouseup', cancelResize);
// FIXME: Use addEventListener once WebKit adds support for mouseleave/mouseenter. document.body.addEventListener('mouseleave', cancelResize);
$(window).bind('mouseleave', cancelResize);
this.addEventListener('mousemove', function(event) { this.addEventListener('mousemove', function(event) {
if (!this._is_resizing) if (!this._is_resizing)
...@@ -269,7 +270,8 @@ ui.results.BuilderSelector = base.extends('div', { ...@@ -269,7 +270,8 @@ ui.results.BuilderSelector = base.extends('div', {
var builderHash = base.underscoredBuilderName(builderName); var builderHash = base.underscoredBuilderName(builderName);
var link = document.createElement('a'); var link = document.createElement('a');
$(link).attr('href', "#" + builderHash).text(ui.displayNameForBuilder(builderName)); link.href = "#" + builderHash;
link.textContent = ui.displayNameForBuilder(builderName);
tabStrip.appendChild(document.createElement('li')).appendChild(link); tabStrip.appendChild(document.createElement('li')).appendChild(link);
var content = this._delegate.contentForTestAndBuilder(testName, builderName); var content = this._delegate.contentForTestAndBuilder(testName, builderName);
...@@ -327,7 +329,7 @@ ui.results.View = base.extends('div', { ...@@ -327,7 +329,7 @@ ui.results.View = base.extends('div', {
}, },
setResultsByTest: function(resultsByTest) setResultsByTest: function(resultsByTest)
{ {
$(this).empty(); this.innerHTML = '';
this._resultsByTest = resultsByTest; this._resultsByTest = resultsByTest;
this._testSelector = new ui.results.TestSelector(this, resultsByTest); this._testSelector = new ui.results.TestSelector(this, resultsByTest);
this.appendChild(this._testSelector); this.appendChild(this._testSelector);
......
...@@ -188,8 +188,8 @@ test('View with reftests', 2, function() { ...@@ -188,8 +188,8 @@ test('View with reftests', 2, function() {
view.setResultsByTest(kExampleReftestResults); view.setResultsByTest(kExampleReftestResults);
view.firstResult(); view.firstResult();
equals($('.non-action-button', view).length, 0); equals(view.querySelectorAll('.non-action-button').length, 0);
equals($('.action', view).length, 0); equals(view.querySelectorAll('.action').length, 0);
}); });
asyncTest('View of timeouts', 1, function() { asyncTest('View of timeouts', 1, function() {
...@@ -202,7 +202,7 @@ asyncTest('View of timeouts', 1, function() { ...@@ -202,7 +202,7 @@ asyncTest('View of timeouts', 1, function() {
view.setResultsByTest(kExampleResultsWithTimeoutByTest); view.setResultsByTest(kExampleResultsWithTimeoutByTest);
view.firstResult(); view.firstResult();
emptyPromise.then(function() { emptyPromise.then(function() {
equals($('.results-grid', view).html(), 'No results to display.'); equals(view.querySelector('.results-grid').innerHTML, 'No results to display.');
start(); start();
}); });
}); });
......
...@@ -65,7 +65,7 @@ test("ui.onebar", 2, function() { ...@@ -65,7 +65,7 @@ test("ui.onebar", 2, function() {
onebar.select('unexpected'); onebar.select('unexpected');
equal(window.location.hash, '#unexpected'); equal(window.location.hash, '#unexpected');
$(onebar).detach(); onebar.remove();
}); });
// FIXME: These three results.* tests should be moved ot ui/results_unittests.js. // FIXME: These three results.* tests should be moved ot ui/results_unittests.js.
......
...@@ -4,7 +4,7 @@ Use of this source code is governed by a BSD-style license that can be ...@@ -4,7 +4,7 @@ Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. found in the LICENSE file.
--> -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script src="../scripts/third_party/sugar.js"></script>
<script src="../scripts/base.js"></script> <script src="../scripts/base.js"></script>
<script src="../scripts/config.js"></script> <script src="../scripts/config.js"></script>
<script src="../scripts/net.js"></script> <script src="../scripts/net.js"></script>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment