Bug 781602

Summary: Tab order of managed resource changes
Product: [Other] RHQ Project Reporter: Alan Santos <asantos>
Component: Core UIAssignee: John Sanda <jsanda>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.3CC: hrupp, jsanda, kejohnso
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-01 15:21:29 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 735475    

Description Alan Santos 2012-01-13 15:24:04 EST
Description of problem:
Selecting different resources causes tabs to reorder when the original resource is re-selected.

How reproducible:

Steps to Reproduce:
1) Open  http://ec2-184-73-101-114.compute-1.amazonaws.com:7080/coregui/#Resource/10651
or any other suitable platform resource with AS 5 plugins (probably many other types suffer from this)

2) expand AS 5 folder

3) select eap instance  - note tab order - specifically 'content' and events, operations, drift

4) select bundle handler - note tab order and the fact that events, operations and drift are not there.

5) reselect eap - note tab order and the fact that events, operations and drift are back, but after content.

Actual results:
Tab order changes

Expected results:
Tab order remains constant and events, order, drift are before content.

Additional info:
I believe this behavior has happened with other types of resources..
Comment 1 John Sanda 2012-02-17 16:23:14 EST
I am seeing different behavior but that may be due to the upgraded GWT and SmartGWT libraries. When I select the bundler handler, I get the following exception:

com.google.gwt.core.client.JavaScriptException:(TypeError): _9 is undefined
(TypeError): _9 is undefined
   at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
   at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
   at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
   at com.google.gwt.dev.shell.ModuleSpace.invokeNativeVoid(ModuleSpace.java:289)
   at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:107)
   at com.smartgwt.client.widgets.tab.TabSet.removeTab(TabSet.java)
   at org.rhq.enterprise.gui.coregui.client.components.tab.TwoLevelTabSet.setTabHidden(TwoLevelTabSet.java:93)
   at org.rhq.enterprise.gui.coregui.client.inventory.common.detail.AbstractTwoLevelTabSetView.updateTab(AbstractTwoLevelTabSetView.java:121)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView.updateDriftTabContent(ResourceDetailView.java:525)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView.updateTabContent(ResourceDetailView.java:299)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView$28.onTypesLoaded(ResourceDetailView.java:653)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository$3.onTypesLoaded(ResourceTypeRepository.java:197)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository.getResourceTypes(ResourceTypeRepository.java:251)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.type.ResourceTypeRepository.getResourceTypes(ResourceTypeRepository.java:194)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView.loadResourceType(ResourceDetailView.java:640)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView.access$24(ResourceDetailView.java:638)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView$27.onSuccess(ResourceDetailView.java:616)
   at org.rhq.enterprise.gui.coregui.client.inventory.resource.detail.ResourceDetailView$27.onSuccess(ResourceDetailView.java:1)
   at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:232)
   at org.rhq.enterprise.gui.coregui.client.util.rpc.TrackingRequestCallback.onResponseReceived(TrackingRequestCallback.java:90)
   at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
   at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)

Then when I go back and click on my JBoss server, I no longer see the drift or content tabs. The other, visible tabs are however in the same order as they were previously. All of the tabs, including drift and content, due render in the original order after a page refresh.
Comment 2 John Sanda 2012-02-17 16:58:22 EST
I also want to point out that I do not get the above exception consistently/
Comment 3 John Sanda 2012-02-21 14:18:12 EST
For this bug, comment 1 can be disregarded. The exception is a regression introduced from the changes in bug 772259. I have pushed a fix for this.

master commit hash: 4ad367088998fcb67b0a058c4fb8bd5ed4133838

For testing it is important to know the fixed order of tabs which is as follows,

1. Summary
2. Inventory
3. Alerts
4. Monitoring
5. Events
6. Operations
7. Configuration
8. Drift
9. Content

Note that regardless of which tabs are visible, relative order should be preserved. For example, suppose I click on an agent in the inventory tree. The Drift and Content tabs should not be visible, and the remaining tabs should appear as Summary, Inventory, Alerts, Monitoring, Events, Operations, Configuration.

Now suppose I click on the Agent Plugin Container resource which is a child service of the agent. The Events, Configuration, Drift, and Content tabs should not be visible. The remaining tabs should appear in the following order - Summary, Inventory, Alerts, Monitoring, Operations. Notice that the order of tabs relative to one another is the same.

As a last example, if I click on a JBossAS Server, the Configuration tab should not be visible. The remaining tabs should appear in the following order - Summary, Inventory, Alerts, Monitoring, Events, Operations, Drift, Content. Again, notice for instance that Operations appears before Drift which comes after Configuration.
Comment 4 Heiko W. Rupp 2013-09-01 15:21:29 EDT
Bulk closing of BZs that have no target version set, but which are ON_QA for more than a year and thus are in production for a long time.