a397e604073b2c8d77aab5b97fe8966dcfd40a24 |
|
11-Jun-2010 |
jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> |
Add a listener to the embedded spreadsheet, to open the full TKO results interface upon click. Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@4596 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
8a7f36583afe076a7198d1b34fe109aa491dc277 |
|
06-May-2010 |
jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> |
Remove SimpleHyperlink and replace with Anchor, which is a built-in class that does the same thing. Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@4480 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
b852bce914dc3ae05b26f3655bfb437ffed001be |
|
07-Apr-2010 |
jamesren <jamesren@592f7852-d20e-0410-864c-8624ca9c26a4> |
Adding the GWT framework for the Test Planner. This adds a new application to the GWT frontend, but does not link to it from the other frontends yet. I don't anticipate anyone to be using this just yet. Once the project reaches the point where I can release a working prototype, I will create user documentation for it and send an announcement. Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@4378 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
1c4d2394fbe949fef83661a25cfe9a32bf8569aa |
|
12-Jan-2010 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Slightly more useful drilldown ordering for spreadsheet view. This avoids an "infinite loop" case where there's more than one result of the same test name in a single job tag. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@4104 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
8b0ea2285c1327a686ff0b6ab245915e7fd20094 |
|
23-Dec-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Overhaul how we deal with related data in TKO -- test labels, test attributes, machine labels, and iteration results. This has proven one of the trickiest areas of TKO. The first foray into this area was machine label headers, an early feature request implemented in a pretty ad-hoc manner in spreadsheet view which allowed them to be used as header fields. (Ironically, this was closest to the right approach on the server side, but I didn't appreciate it at the time. The original client-side implementation was a mess.) Next was filtering on test attributes and test labels, implemented with the include_labels, exclude_labels, include_attributes_where, and exclude_attributes_where options. This server-side implementation supported filtering but not viewing, grouping or sorting at all. Furthermore, even the filtering support was weak -- it only supporting ORing of inclusion requests and ANDing of exclusion requests. The client-side implementation was still pretty messy but was moving towards correctness. Finally, support was recently added for viewing iteration results in table view, but grouping and filtering were excluded since they would've been very difficult to fit into the design. This was again a limited server-side approach, though the client-side implementation continued improving, albeit still using the trouble "generator items" in the mutliple list selector widget. When I started working on support for test iterations and attributes in TKO table view, I finally hit upon the right server-side approach: specify the attributes that you're interested in, have the server perform a separate JOIN for each one, so that there's now a new column for each one, NULL if the attribute didn't exist and having the attribute's value if it did. Once it's created as a normal column, the user can do selection, grouping, sorting and filtering using the regular mechanisms. Everything just works. (For labels, it's slightly different, since whether or not a label is attached to a test is a boolean value. I opted to have the column's value be either NULL or the name of the label.) Well, not quite perfectly. MySQL lets us define column aliases in a SELECT which are then usable in GROUP BY and ORDER BY. They aren't however, usable in the WHERE clause, because certain select expressions may not exist at the time the WHERE is applied. (Our expressions happen to be fine, but MySQL will have none of it.) There's absolutely no way I can see to define aliases for use in the WHERE clause. And unfortunately, our current interface allows users to provide a WHERE clause directly, so we can't perform translations or substitutions. As a result, filtering must be performed a little differently for these fields. You can't just say <field_name> = "<value>", like you can for most fields. For test attributes and iteration results, you say <field_name>.value = "<value>". For test labels and machine labels, you say <field_name>.id IS [NOT] NULL. The first part of this CL is changing the server to use this new approach. get_test_views() now accepts test_label_fields, test_attribute_fields, machine_label_fields, and iteration_result_fields parameters, which allow the user to add extra fields based on these data types. At the same time, I've changed how the TKO web clients deals with these data types in a way that mirrors the new way of handling these features on the server. There is now a global widget for adding custom fields based on any of the four data types. Once one is created, it can be used just like any other field in spreadsheet view, table view, and the global condition. This vastly simplifies most pieces of the code that previously dealt with these features, and it greatly expands the available space of features. Where we formerly had spreadsheet grouping/filtering on machine labels, table viewing of iteration results, and limited filtering on test labels and attributes, we now have viewing, grouping sorting, and filtering on all four. High-level changes involved: Server side * added code to TestViewManager to handle the new options for creating fields, documented them, and documented that these options are supported and the rest are deprecated (we can probably delete them but we should check, they might be in use) * added thorough unit tests for all of the above. on a side note, i discovered a neat feature of SQLite where you can add any function you've defined at a callable function from SQL statements. I used this to add some functions emulating MySQL-only functions. This could be used to good effect elsewhere, but this CL is big enough :) * got rid of now-obsolete code for machine_label_headers option and iteration views Client side: * made HeaderFields immutable. Mutable HeaderFields turned out to be way too much of a nightmare. Users can specify values for ParameterizedFields at creation time, and if they want to modify them, they can delete and add. * made all parts of the application (namely SpreadsheetView (both header selectors), TableView, and CommonPanel) use a single global HeaderFieldCollection * changed ParameterizedFieldListPresenter to handle the new job of allowing creation and deletion of any kind of ParameterizedField. This new widget replaces the label/attribute filtering widget in the CommonPanel -- I got rid of all the code for that widget. * removed the now-obsolete code for "generator items" in the MultiListSelectPresenter. * finally made TableView use HeaderSelect. Since HeaderSelect plays a more significant role and it's role is more unified, it made sense to finally do this (TableView was previously duplicating logic from HeaderSelect, which was only used in SpreadsheetView). Since the HeaderSelect used in TableView is much simpler than the one used in SpreadsheetView, I extracted a new class SpreadsheetHeaderSelect, using composition rather than inheritance (it didn't really follow an is-a relationship). Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@4049 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
e299d4603ca85fb3fea2bfbac52c16c66475ac1f |
|
23-Nov-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Do not allow empty global filter in Spreadsheet view or Table view. Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3970 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
3f2110914421a50e509e619e6e876e0af096144c |
|
19-Nov-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Fix the "swap" link in TKO spreadsheet view, at least partially. It was completely broken and now it works except when machine label headers are active. I did it in a way that moves towards a more correct design, by introducing a State class for the HeaderSelect presenter, which sort of acts as a model class. Nonetheless, I performed a minimal refactoring necessary to accomplish the goal cleanly. Possible next steps would be: * introduce a State object for the ParameterizedFieldListPresenter, and make HeaderSelect.State include an instance of that state. This, if done properly, would fix the above-mentioned remaining bug with swapping. * move functionality to the State object that belongs there. addHistoryArguments() and handleHistoryArguments are two examples. It could also use accessors/mutators for its fields. * change the interface of HeaderSelect to get rid of all the state accessors/mutators. Rather, there should be one pair of getter/setter for the saved state. Clients should perform other actions on the State object itself. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3958 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
b9c6617bdc063b3b4aa760a0a45190ee069139fd |
|
13-Nov-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Modify DynamicTableSelectionListener so that when select "none" is clicked, only deselect items matching the current filters. This turned out to be considerably trickier than i thought, because in order to do this properly and efficiently, it has to work like this: when "none" is clicked, make an RPC call for all the currently filtered items that fall within the currently selected set. We do this by making a new request to the table's active DataSource with the current filtering params plus a list of selected item IDs. There are two problems here: 1) Not all tables show DB objects -- in particular, the host detail view table when "show verifies/repairs/cleanups" is selected, and the TKO table view when grouping is active. For these tables, there's no way to filter on selected items by ID. Fortunately, these tables also happen to not be prone to the original issue, because they can't be filtered. So I added some code to only apply this new logic to tables that have active user-controlled filters. This is pretty ugly from a design point of view, but I had to take a practical approach -- it works, the code is clean, and I couldn't think of any workable alternatives. 2) The DataSource interface was poorly designed such that an RpcDataSource was stateful (and mutated every time a new request was made), so there was no way to make a new request on a DataSource without messing up its state and therefore potentially messing up the table using it. To get around this, I redesigned the interface to use a separate Query objects. Now, both the DataSource and the Query objects are immutable, and making a separate query for the "select none" operation is easy. (This actually also encouraged a change to DynamicTable to be much more efficient by avoiding many unnecessary get_num_*() calls.) Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3941 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
4cd4763a855d8eb7d25fd4963babc432eb4d25e6 |
|
12-Oct-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Remove deprecated uses of TableListener, and implement proper oncontextmenu handling Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3828 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
227a7a1d0484dcfa4c6d996a1c10e95437d059ef |
|
18-Sep-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
OK, one more refactoring -- this time, make TableView use HeaderFields (something I've wanted to do for a long time, there has been a TODO at the top of TableView for ages) and consolidate a lot more logic. Part of this was in the introduction of a new HeaderFieldCollection class, the rest was simple consolidation due to common use of HeaderField. TableView and HeaderSelect still duplicate a lot of logic, sadly, although it's not immediately obvious from the code at this point. Eventually I'll fully consolidate those, but at this point I think I'm ready to implement the iteration view feature that I've been working towards the whole time. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3753 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
7f2b0e15c5928ea2914d078e385ca717d078c6d5 |
|
17-Sep-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Removed deprecated uses of isChecked/setChecked. (Depends on [PATCH] Removed deprecated ChangeListener uses.) Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3738 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
0d92da0fe19a095fc5678c4159e6a1756df65e48 |
|
17-Sep-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Removed deprecated ChangeListener uses. (Depends on [PATCH] Removed the uses of some deprecated classes) Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3737 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.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/SpreadsheetView.java
|
a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86 |
|
11-Sep-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Removed deprecated ClickListener uses. Mostly trivial changes. The only significant change was in autotest.common.ui.SimpleHyperlink. Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3709 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
e463a8a926964673c2517bfef5ac394206b106c6 |
|
08-Sep-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Add default drilldown behavior. Drilldown from new fields (like job queued day) was broken because they weren't added to the drilldown map; it's best to just have a default and not allow things to break like that. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3669 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
d9e04c1a7950691cc348e70fa2470f8c414ae94f |
|
08-Sep-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Refactor code related to double list selecting widgets used in both SpreadsheetView and TableView. This will facilitate code reuse and extension for the feature to include test iterations/attributes in table view. It will also make unit testing possible and provides cleaner organization of the code. The major effort here is to refactor the DoubleListSelector and HeaderSelect classes according to the Passive View pattern. There are passive view classes for the double list itself (DoubleListSelector, which will be renamed in a future CL to DoubleListSelectDisplay) and for the spreadsheet header selection UI (HeaderSelectorView, which I think I'll also rename to HeaderSelectorDisplay). There is a new class, MultiListSelectPresenter, which incorporates the presentation logic from DoubleListSelector as well as some of the logic from HeaderSelect related to switch between a single and double list. The remaining code in HeaderSelect was modified to use a MultiListSelectPresenter as much as possible, retaining only the code specific to the spreadsheet header selection (and the management of machine label headers will likely be extracted and generalized too, since that sort of thing will be necessary for test attributes/iterations). Finally, small modifications to Spreadsheet View and TableView were required to have them use the new interfaces. This change also introduces the ToggleLink widget, consolidating logic that had been applied in multiple places previously. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3667 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.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/SpreadsheetView.java
|
194a59d6976a5dbd5b464fb2b14ceb089f91c050 |
|
09-Jun-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Modify TKO Spreadsheet View's "Export to CSV" function to handle selection of cell content. Also fixed history token handling to handle content value customization. Additionally, fixed history token handling of the "latest only latest test per cell" checkbox in the TKO Spreadsheet View. Risk: low Visibility: medium (functionality change) Signed-off-by: James Ren <jamesren@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3228 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
77401f351bd4ef6b6af99e46a9f905b161062574 |
|
26-May-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Allow all TestView fields to be displayed in cell contents in Spreadsheet View. Risk: low Visibility: medium (UI change) Signed-off-by: James Ren <jamesren@google.com> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest git-svn-id: http://test.kernel.org/svn/autotest/trunk@3175 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
37059dfb50063124bce014d3217e3610499d917f |
|
08-May-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
CSV support for TKO table view. * make RpcDataSource record the last RPC call params, since that's much easier than reconstructing it as I was doing for SpreadsheetVIew * make TableDecorator support an Export CSV link, and make TableView use it * add onExportCsv to Table View, plus some minor refactorings there that happened along the way * generalize CSV code from SpreadsheetView and extract to TkoUtils * add new CsvEncoder classes for table view * change logic to decide which CsvEncoder to use -- simply dispatching off of method name isn't good enough, since both spreadsheet and table views use get_status_counts * add new unit tests for the three kinds of table view Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3096 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
f6348c999bc60ee048510c8e28f74f944a32d97c |
|
05-May-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
When the user performs a whole-table action in TKO spreadsheet view, make sure we obey the "show only latest test per cell" checkbox. This isn't an issue for actions on particular cells, because we already use the test IDs since the cells are single-test cells. But whole table actions use a different code path. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3090 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
3d6ae118f69717e68bc15b9aed7b6a6c7dd9bab0 |
|
02-May-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Export CSV support for spreadsheet view. * new Django view, handle_csv(), with a new URLconf, /new_tko/server/csv/ * new module csv_encoder with logic to encode the results of an RPC call into CSV format * logic in csv_encoder to convert results of get_status_counts() (or get_latest_tests()) into CSV, when called from spreadsheet view * added optional "Export to CSV" link to TableActionsPanel, and made SpreadsheetView use it with a handler to call the /csv/ entry point with the current query info Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3086 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
9f4500a294eea35dce003cee41c558fcde3eb09f |
|
27-Apr-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Last few changes necessary to make first embeddable graphs work * add EmbeddedTkoClient GWT entry point + associated scripts, GWT XML, launch configuration, apache config * added EmbeddedTkoClientTest.html, a simple demonstration/test of using embedded widgets * modify TabView to no longer be a Composite, but instead have a getWidget element. this allows us to defer any DOM manipulation to initialize() and therefore avoid executing it at all in the embedded case. the introduction of code to TabView.initialize() (it was previous abstract) required adding a super.initalize() call to *all* subclasses, and there are a lot, hence the large number of files in this change. * added Plot.getNativeProxy(), generating a native JS object that acts as a proxy to the GWT Plot object * extend JsonRpcProxy to allow use of PaddedJsonRpcProxys * remove debug prints from PaddedJsonRpcProxy * fix a little bug where a return statement was missing from Plot.showDrilldown() Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@3039 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
c674d3ea684f75f3e05f5834b598050eb1c8856d |
|
12-Mar-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Support opening drilldown results in a new tab/window from spreadsheet and table views. When drilling down in spreadsheet and table views, either into a group or into test details for a single test, the user can open the resulting page in a new tab/window by control-clicking. I included what I believe is the proper code to support middle-clicking as well, but I could not see any browser support. I tried the GWT hosted mode browser and FF2 on linux, and FF3 and windows. I changed the cell selection combo to shift-click (I don't think anyone uses that feature anyway :-/). The main technical challenge here was this: state is spread throughout a number of classes that make up the UI for spreadsheet and table views. Code for generating the history tokens is spread throughout those classes as well, using the state in each class. In order to open results in a new tab, the code needs to generate the history token for the new state while leaving the current UI unmodified. It would do this by calling functions to modify application state appropriately, then generate the new history token, and then revert to the previous application state before opening the new token in a new tab. However, since the UI widgets and state variables were all intertwined and spread throughout the code, this was impossible to do as the code was -- when we made calls to setup the new application state, the displayed UI would be modified. To solve this, I modified a number of classes to implement updateStateFromView() and updateViewFromState() methods, making the separation between state and view more well-defined and explicitly controlled. I ensured that all state-modifying functions don't modify the view at all, and I made sure the history-generating functions only use state variables. Then I was able to make the code setup a new state, generate the new history token, and restore the old state without any visible changes in the UI. I also modified CustomHistory and clients so that history tokens passing into and out of CustomHistory are dictionaries instead of strings. I find this a bit cleaner and (more importantly) it allows CustomHistory to safely check for token equality (checking strings is unsafe because ordering could change while content remains the same, thanks to the nondeterminism of iterating over a Map). Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@2876 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
313ab769319f56b940a2784cc0cbdebd005c5799 |
|
25-Feb-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Make the "Triage failures" button obey the "show only latest test per cell" filter. This is a bit of a tricky issue because the table view doesn't have a concept of cells, so the option can't carry directly over. I've made it simply add a big SQL filter "AND test_idx IN (...)" where ... is a giant list of all the test IDs displayed in the spreadsheet. I don't think it's ideal but it should work well, at least for now. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@2818 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
aac13a7fbd2d380e98f088b89fb57cb4fa3cf853 |
|
17-Feb-2009 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
When clicking "Triage failures", only include failed results. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@2812 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
f248952e42ea33c34e41a49817e50f98c65c2716 |
|
24-Oct-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Add feature to make spreadsheet header fields from combinations of machine labels. The user can create as many different machine-label-based fields as she wishes. For each field, she can enter a list of labels to be included. The field will then group on each combination of those labels. -added new HeaderField abstract class with two implementations - SimpleHeaderField for normal fields and MachineLabelField for the new machine label fields -made HeaderSelect capable of creating MachineLabelFields. In single header mode, selecting "Machine labels..." creates one, and deselecting it destroys it. In multiple header mode, each time "Machine labels..." is selected a new machine labels field is created, and deselecting one destroys it. -made HeaderSelect display text boxes for each MachineLabelField for the user to input the label list. -created HeaderSelect.addQueryParameters, moved fixed value logic into it (from SpreadsheetView.java), and put logic for machine label header in it. -made TestGroupDataSource accept raw query parameters, and updated SpreadsheetDataProcessor to pass it through. -modified SpreadsheetView to use HeaderFields throughout. Eventually other code (such as TableView) should be made to use them. -added capability for ConditionTestSet to accept raw condition pieces. Eventually it will only work this way and I'll get rid of the field setting logic, since that's been moved to SimpleHeaderField. -added ExtendedListBox class containing a bunch of utilities for ListBoxes that I've wanted for a long time. Several other parts of the code (DoubleListSelector, some of the graphing stuff) should be changes to use these utilities eventually. -added ChangeListener support to DoubleListSelector -made rpc interface accept a new "machine_label_headers" parameters, and added logic to tko_rpc_utils.py to construct SQL for machine label headers -modified TestView manager to support a join into host labels git-svn-id: http://test.kernel.org/svn/autotest/trunk@2331 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
9dbdcda5104991cbf344ea5cba1aa58e1af444f3 |
|
14-Oct-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Add feature to abort individual host queue entries the job detail and host detail pages. Performed a few other cleanups along the way. -refactor TableActionsPanel, extract separate TableSelectionPanel -make TableDecorator support a SelectionManager and a TableActionsPanel (or selection panel or other such control) just above the paginator. this makes it really easy to add selection capability, selection checkboxes, and an actions menu to any table. -refactor TableDecorator in general since it kinda sucked -change all existing code that does table selection to use the new TableDecorator support. this include job list view, the create job host selector (which now uses the common selection links instead of its old buttons), and tko.TableView. -add selection support + a bulk abort action to the tables in job detail view and host detail view. this itself was easy given the above refactorings. git-svn-id: http://test.kernel.org/svn/autotest/trunk@2283 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
8a6eb0cf5777dded2354408e8007d9223e813c92 |
|
01-Oct-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
add support for showing only the latest test run per cell in spreadsheet mode. this involved some extensive refactorings on both the client and server which then made the actual change quite simple. Refactorings: -refactored group querying code in TempManager to be much more general (it's no longer oriented around fetching COUNT(*)). it also now returns dicts instead of raw rows. -refactored much of the logic from the group-related RPCs into GroupDataProcessor, which now handles almost all the work, again in a more general fashion -made group RPCs always return a sample test index with each group; this allows the client to drill down to single-test groups without having to make an extra query to get the test index (it also makes the latest test feature easier to implement) -refactor TestSet to support a new getTestIndex method for single test sets -added new SingleTestSet class for single test sets, and made TestSet creation code use this instead of ConditionTestSet -made ConditionTestSet always be for multiple tests -changed drilldown code to use TestSet.getTestIndex() to avoid making an extra RPC call (in both spreadsheet and table views) -got rid fo TkoUtils.getTestId, which is no longer needed since test IDs are passed down with the groups New features: -added get_latest_tests RPC to get the latest test per group, but still return information in the same format as get_status_counts -added "show only latest test per cell" to spreadsheet view, made it control the RPC that gets called, and added history support for it About the get_latest_tests RPC - it uses two rather simple SQL queries and some processing in Python. I tried six different ways of computing this information, some using a single SQL query to do everything and some doing everything in Python, and this approach was by far the fastest. Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@2216 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
8c9b839c2f5073a755952a8a865a04db3b2d4547 |
|
30-Sep-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
add primitive support for fixed header values. fixed headers can be given as a comma- or whitespace-separated list of values. they will serve to both limit to results to the given values (something that could just as well be done with the WHERE clause, but I figured people would want this behavior) + force all given values to be included, even if it causes empty rows. * add support to GroupDataProcessor + relevant RPCs in Django to support fixed header values, but *only* for single headers (i.e. no composite header support) * add text box to GWT spreadsheet UI, accessible only in single-header mode. box accepts comma- or whitespace-separated list of values. * add necessary code to process fixed headers + pass them to server, and to store in history URL git-svn-id: http://test.kernel.org/svn/autotest/trunk@2204 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.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/SpreadsheetView.java
|
64aeecdec485192241e5377b3fa5ac7cf57a0c12 |
|
19-Sep-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
-add feature to filter on test attributes in TKO -new server arguments "include_attributes_where" and "exclude_attributes_where" for filtering on test attributes -refactor joining code in TKO models.py to support test attributes joining -add new UI to CommonPanel.java to filter on test attributes. some of the UI code was written in a general way so that in the future it could be merged with some of the graphing UI code. -modified TestSets and code that uses them to fix two bugs - first, TestSets didn't contain all the relevant filtering information (only the SQL clause), and second, the SQL clause would build up incorrectly during drilldown git-svn-id: http://test.kernel.org/svn/autotest/trunk@2177 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
ce12f55f4530950f7fc6ddc73d1867ebb954d356 |
|
19-Sep-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Attached is a large patch for a powerful and flexible new graphing system for new TKO. This system subsumes all the previous kernel graphing scripts under the tko/ directory and is capable of much more. These wiki pages document usage of the new system and give an idea of what it's capable of: http://autotest.kernel.org/wiki/MetricsPlot http://autotest.kernel.org/wiki/MachineQualHistograms Feel free to try it out and please let us know if you run into any trouble. This system is the work of our summer intern James Ren. Thank you for all your fantastic work, James! From: James Ren <jamesren@stanford.edu> git-svn-id: http://test.kernel.org/svn/autotest/trunk@2171 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
d50ffb4b0ef514fb969d53b82e23ab41d4d3812e |
|
04-Sep-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
-add easy invalidation functionality -add "show invalidated tests" option to common panel, disabled by default -made client submit "exclude_labels" option to exclude invalid tests. this required somewhat widespread changes because it means the global condition is no longer just a SQL string but now a collection of parameters -add "invalidate tests" option to spreadsheet/table context menu, and button to test detail view. it's really just a shortcut to add the "invalidated" label. -added logic to the server to handle "exclude_labels" option. it was done in this generic way because in the future i plan to add a UI to exclude any label or labels. -force test label names to be unique -fix a bug in logic to determine all labels assigned to a set of tests -got rid of auto-refresh when changing between spreadsheet and table after the condition had changed Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@2099 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
3b8563acf345e8327fb3f0cb4b96869ce55f5080 |
|
03-Sep-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Change mouse selection events to include ctrl-click and meta-click (which is command-click on the mac and windows-click on windows, but the former is the important one). git-svn-id: http://test.kernel.org/svn/autotest/trunk@2085 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
0281350135d1216c722e1d6fb85044f505c2319b |
|
20-Aug-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
-rewrite most of the label management code to be much more efficient -ensure label modifications always act on the right set of tests, by ensuring the GWT client uses the right SQL condition git-svn-id: http://test.kernel.org/svn/autotest/trunk@2017 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
21085f22a3c616ff12bf80b997187a00e44f851b |
|
19-Aug-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
-fix bug with drilldown on null headers -make spreadsheet view ignore TEST_NA entries Signed-off-by: Steve Howard <showard@google.com> git-svn-id: http://test.kernel.org/svn/autotest/trunk@2012 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.java
|
0c31bc5ef2ecdf8edf19468e1a373520110f5bc6 |
|
08-Aug-2008 |
showard <showard@592f7852-d20e-0410-864c-8624ca9c26a4> |
Make query controls collapsible in spreadsheet and table views. This should help enable better use of screen real estate, especially in spreadsheet view. git-svn-id: http://test.kernel.org/svn/autotest/trunk@1965 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/frontend/client/src/autotest/tko/SpreadsheetView.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/SpreadsheetView.java
|