Changeset 95066 in webkit


Ignore:
Timestamp:
Sep 13, 2011 6:20:29 PM (13 years ago)
Author:
abarth@webkit.org
Message:

garden-o-matic should tell you about the progress of your rebaseline
https://bugs.webkit.org/show_bug.cgi?id=67967

Reviewed by Dimitri Glazkov.

This patch adds ui.MessageBox, which is a light wrapper around jQuery
UI's dialog widget. We then use ui.MessageBox to show status messages
about in-progress rebaselines. As each baseline is downloaded, the
MessageBox updates. This UI replaces our temporary "alert"-based UI.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css:
Location:
trunk/Tools
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js

    r94314 r95066  
    105105};
    106106
    107 checkout.rebaseline = function(failureInfoList, callback)
     107checkout.rebaseline = function(failureInfoList, callback, progressCallback)
    108108{
    109109    callIfCheckoutAvailable(function() {
     
    113113                'test': failureInfo.testName,
    114114            }), function() {
     115                if (progressCallback)
     116                    progressCallback(failureInfo);
    115117                callback();
    116118            });
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js

    r94722 r95066  
    2828(function(){
    2929
     30// FIXME: Where should this function go?
     31function rebaselineWithStatusUpdates(failureInfoList)
     32{
     33    var statusView = new ui.MessageBox(
     34        'Rebaseline status',
     35        'Performing rebaseline...');
     36
     37    checkout.rebaseline(failureInfoList, function() {
     38        statusView.addMessage('Rebaseline done! Please land with "webkit-patch land-cowboy".');
     39
     40        statusView.addActionList(new ui.actions.List([new ui.actions.Close()]));
     41        $(statusView).bind('close', statusView.close.bind(statusView));
     42    }, function(failureInfo) {
     43        statusView.addMessage(failureInfo.testName + ' on ' + ui.displayNameForBuilder(failureInfo.builderName));
     44    });
     45}
     46
    3047controllers.ResultsDetails = base.extends(Object, {
    3148    init: function(view, resultsByTest)
     
    5673            }
    5774        });
    58         checkout.rebaseline(failureInfoList, function() {
    59             // FIXME: We should have a better dialog than this!
    60             alert('Rebaseline done! Please land with "webkit-patch land-cowboy".');
    61         });
     75        rebaselineWithStatusUpdates(failureInfoList);
    6276    }
    6377});
     
    120134    {
    121135        var failureInfoList = base.flattenArray(failures.testNameList().map(model.unexpectedFailureInfoForTestName));
    122         checkout.rebaseline(failureInfoList, function() {
    123             // FIXME: We should have a better dialog than this!
    124             alert('Rebaseline done! Please land with "webkit-patch land-cowboy".');
    125         });
     136        rebaselineWithStatusUpdates(failureInfoList);
    126137    }
    127138});
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js

    r94540 r95066  
    133133});
    134134
     135ui.MessageBox = base.extends('div',  {
     136    init: function(title, message)
     137    {
     138        this._content = document.createElement('div');
     139        this.appendChild(this._content);
     140        this.addMessage(message);
     141        document.body.appendChild(this);
     142        $(this).dialog({
     143            resizable: false,
     144            title: title,
     145            width: $(window).width() * 0.80,  // FIXME: We should have CSS do this work for us.
     146        });
     147        $(this).bind('dialogclose', function() {
     148            $(this).detach();
     149        }.bind(this));
     150    },
     151    close: function()
     152    {
     153        $(this).dialog('close');
     154    },
     155    addMessage: function(message)
     156    {
     157        var element = document.createElement('div');
     158        $(element).addClass('message').text(message);
     159        this._content.appendChild(element);
     160    },
     161    addActionList: function(actionList)
     162    {
     163        this.appendChild(actionList);
     164    }
     165});
     166
    135167})();
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js

    r94722 r95066  
    5151        this._eventName = 'blame';
    5252        this.title = 'Blames this failure on this revision.'
     53    }
     54});
     55
     56ui.actions.Close = base.extends(Action, {
     57    init: function() {
     58        this.textContent = 'Close';
     59        this._eventName = 'close';
    5360    }
    5461});
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js

    r94150 r95066  
    115115});
    116116
     117test("MessageBox", 1, function() {
     118    var messageBox = new ui.MessageBox('The Title', 'First message');
     119    messageBox.addMessage('Second Message');
     120    equal(messageBox.outerHTML,
     121        '<div class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 132px; height: auto; " scrolltop="0" scrollleft="0">' +
     122            '<div>' +
     123                '<div class="message">First message</div>' +
     124                '<div class="message">Second Message</div>' +
     125            '</div>' +
     126        '</div>');
     127    messageBox.close();
     128});
     129
    117130})();
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css

    r94722 r95066  
    2424 */
    2525
    26 .results-view ul.actions {
     26.results-view ul.actions, .ui-dialog ul.actions {
    2727    float: right;
    2828    margin: 0;
     
    3232}
    3333
    34 .results-view ul.actions li {
     34.results-view ul.actions li, .ui-dialog ul.actions li {
    3535    display: inline-block;
    3636}
  • trunk/Tools/ChangeLog

    r95062 r95066  
     12011-09-13  Adam Barth  <abarth@webkit.org>
     2
     3        garden-o-matic should tell you about the progress of your rebaseline
     4        https://bugs.webkit.org/show_bug.cgi?id=67967
     5
     6        Reviewed by Dimitri Glazkov.
     7
     8        This patch adds ui.MessageBox, which is a light wrapper around jQuery
     9        UI's dialog widget.  We then use ui.MessageBox to show status messages
     10        about in-progress rebaselines.  As each baseline is downloaded, the
     11        MessageBox updates.  This UI replaces our temporary "alert"-based UI.
     12
     13        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js:
     14        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
     15        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
     16        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/actions.js:
     17        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js:
     18        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css:
     19
    1202011-09-13  Leandro Pereira  <leandro@profusion.mobi>
    221
Note: See TracChangeset for help on using the changeset viewer.