History log of /external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4879914c122f4ed97eae3b08c5af1930fd75b39d 13-Nov-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a bug where hosts in a cloned job weren't removed when deselecting the host from the "browse hosts" table. This again turned out to be a relatively large change for the size of the problem, because I chose to make some refactorings to attack some of the design problems the were behind the issue in the first place.

The core issue was that the ArrayDataSource was using a plain SortedSet<JSONObject> to hold the selected hosts. This is good because we want to keep them sorted, but it's bad because it uses the default object equality for JSONObjects, but we want to use a special equality based on ID or hostname. We normally accomplish that with JSONObjectSet, but that doesn't get us the sorting. JSONObjectSet is sort of a hack in the first place; the proper solution is to use custom objects that override equality.

As a first step towards that approach, I created a Host class under the models autotest.afe.models package. In order to minimize the scope of this change, I made it override JSONObject, so that we can move incrementally. I made it override equality and made HostDataSource convert the results to Host objects before returning them.

Unfortunately, I ran into a second problem. DataSource passes back results in a JSONArray. Since JSONArrays use native JS objects for storage, the objects you get out of them are always real JSONObjects, constructed on the fly -- not just declared type, but actual type. Even if you put Hosts in, they'll effectively be converted back to plain JSONObjects when you take them out. This is a reflection of a second design problem -- we shouldn't use JSONArrays to pass data around within the program. So I changed DataSource to convert results to List<JSONObject> and pass the data back that way. This required minor changes across many files, but nothing drastic anywhere.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3943 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
79a7b0d387aac103fc1d125353eefa361030452a 17-Sep-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Removed the uses of the following deprecated classes:

DisclosureEvent
DisclosureHandler
FocusListener
KeyboardListener
TabListener
PopupListener
SuggestionEvent
SuggestionHandler
ScrollListener
WindowResizeListener

Signed-off-by: James Ren <jamesren@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3735 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
9e494cc00c53f9dd0fabec3ef675cb874a9130ad 31-Aug-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Change how we construct the basic page layout in AFE and TKO. The TabView class was sneaking around with RootPanels and DOM elements, effectively doing what HTMLPanel was intended to do in a naughty way. GWT 1.5 was naive enough to let that go on behind its back (although it wasn't safe), but GWT 1.6 won't have any of it (read: assertion errors). So change TabView to use an HTMLPanel properly, and change all the views to construct their layouts the new, nice way.

More info, in an old email from Joel Webber: http://markmail.org/message/xliklhgn5vvuibm4#query:%22A%20widget%20that%20has%20an%20existing%20parent%20widget%20may%20not%20be%20added%20to%20the%20detach%20list%22+page:1+mid:xliklhgn5vvuibm4+state:results

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3630 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
cb881ae6105a841389d8239e12c23561cc762e29 30-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Currently, the 'view all logs' link is less usable as it is pointing to the /results/JOB/HOST/ directory while the
Test Details view refers to specific test.
Adding a new link - 'view test logs' - pointing to the specific test result dir (e.g. /results/JOB/HOST/TEST/).

Signed-off-by: Dror Russo <drusso@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3323 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
130ba9e35163d5b5e1fc5767b3b0975d40bc0a6f 19-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> point drop-down test log viewers to newly named logs, and tweak the name of the autoserv logs to be a bit more accurate

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3300 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
4cfdce15cca1bc4988ee4531e49f3da4d18848ea 15-Jun-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> change client-side logging to split files by severity and move them to the debug dir. this is quite a bit more involved than the server-side change because of some buggy directory clearing code and various places that depended on the old configuration.

This also changes the TKO autoserv log viewers to point to the new .DEBUG and .ERROR autoserv logs.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3266 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
89e7a1205ac482a0f57d7d5e0e87d62c57afe6dd 07-Apr-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Fix log viewers sizing in FF3. Apparently elements with overflow: auto (or scroll or hidden) don't do percentage widths properly in FF3. So to workaround it, shrink the scrolling div to zero width, let the parent assume the correct size, then dynamically grab that width in pixels and set the scroller to that exact width. Also listen for and respond to window resize events, since we're setting explicit widths.

Also had to change styles of the outermost tab frame to ensure the logs would expand to fit the window, and while i was at it, started a new common.css file for such things.

This still doesn't work in Chrome. I'm convinced it's a Chrome bug, but I'll have to wait till I have more free time later next week to investigate. Sorry Chrome users.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2962 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
ef6fe028fcc667366e8ac30fe63ba314a4b1d745 27-Mar-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> generic JSON-RPC implementation using JSONP (JSON with Padding). the central part of this change consists of:
* refactored JsonRpcProxy to extract all XmlHttpRequest-specific logic into a new XhrHttpRequest subclass, and made JsonRpcProxy abstract
* introduced new PaddedJsonRpcProxy subclass of XmlHttpRequest that uses JSONP instead of XHR
* added new handle_jsonp_rpc_request() method to rpc_handler.py, to handle JSONP requests on the server side

This enables the entire frontend (either AFE or TKO) to operate via JSONP instead of XHR. I didn't make them do that now, since there's no reason, but it will be critical when we go to make components embeddable in other pages (on other domains). Other changes here include:

* made TestDetailView use PaddedJsonRpcProxy (it previous had its own custom JSONP logic, which was all moved into PaddedJsonRpcProxy).
* made retrieve_logs.cgi and jsonp_fetcher.cgi support JSONP requests, so that log fetching requests could go through the shared JsonRpcProxy codepath. retrieve_logs.cgi still supports the old GET params interface for backwards compatibility (at least old TKO still uses it, and possible other scripts).

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2943 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
77618197b903dbf95d26314478b742497e482359 26-Jan-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Wrap the TKO drop-down log viewers with scroll panels, so that when FF3 cuts them off, you can still scroll over to see their contents. Also limit the max height, since there's a scroller now.

This is far from perfect in FF3 (works beautifully in FF2) but I think it's an improvement, and I don't have time at the moment to mess around with FF's quirky layout mechanisms.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2691 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
9484c31ad1021c2e3b0ae796c31b220b5c057436 07-Jan-2009 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Change drop-down log viewers in TKO to use JSONP instead of XmlHttpRequests so they can handle direction to other servers. If you're curious what the hell JSONP is, check out http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=Article_UsingGWTForJSONMashups.

Signed-off-by: Steve Howard <showard@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2607 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
11bd063f741c3bcfc59cadfed4abc65686df10ef 30-Sep-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> add test attributes to test detail view, in an expandable box


git-svn-id: http://test.kernel.org/svn/autotest/trunk@2202 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
e732ee7d450b11261c82df0950fde8e02f839b26 23-Sep-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> -added capability to have site-specific urlconfs in TKO Django server
-added ClassFactory and SiteClassFactory to autotest.tko package to allow site-specific modifications to TKO. made some changes to the AFE [Site]ClassFactory files (reducing visibility)
-added get_detailed_test_views RPC which includes information about labels and attributes associated with a test
-made changes to model_logic.py to make fewer assumptions about models. these were basically bugs in model_logic.py that weren't exposed until i started doing fancier queries on TKO models.
-made list_objects capable of accepting a field list
-changed JsonRpcProxy to contain base URLs instead of full RPC urls; this way, other components (graphing, jlog) can use them (and i made graphing use this URL, which fixes a bug in the embedded URL generation)
-added RealHyperlink widget to common.ui package, representing a plain old hyperlink to another page (as opposed to Hyperlink and SimpleHyperlink, which are intended to be handling by the GWT code). this eases dynamic updates of the link href and allows setting visibility, styles, and all the other good stuff that comes along with using Widgets.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2191 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java
35444864c7b6f49865a7e17aa0052987b72e4728 08-Aug-2008 showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> Initial checkin of new TKO interface.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1959 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/TestDetailView.java