Bug 748474

Summary: Search option should be specific to the category
Product: [Other] RHQ Project Reporter: Jeeva Kandasamy <jkandasa>
Component: SearchBarAssignee: John Mazzitelli <mazz>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: urgent Docs Contact:
Priority: urgent    
Version: unspecifiedCC: hrupp, ian.springer, mazz
Target Milestone: ---   
Target Release: JON 3.0.0, RHQ 4.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 745494    
Attachments:
Description Flags
Screen shot of search page on 'Platforms' none

Description Jeeva Kandasamy 2011-10-24 14:41:16 UTC
Created attachment 529893 [details]
Screen shot of search page on 'Platforms'

Description of problem:

I'm doing search on 'Platforms',
But result contains 'Platforms', 'Servers', 'Services'. This is applicable for 'Servers' and 'Services' and 'Unavailable Servers' pages also.

Note: If I do search with the string 'category=platform dhcp201-148.englab.pnq.redhat.com', everything works as expected. We may append the string 'category=platform', 'category=server', 'category=services', 'category=server availability=down' on the back-end based on the category that we selected to avoid this.

Version-Release number of selected component :
Version: 4.1.0-SNAPSHOT
Build Number: d09acdb
GWT Version: 2.0.4
SmartGWT Version: 2.4
RHQ

How reproducible:
100%

Steps to Reproduce:
1. Select 'Inventory-->Platforms'
2. On the search box enter "dhcp201-148.englab.pnq.redhat.com" and press 'Enter' key
3. Look at the screen, Servers also listed.
4. do the same for the pages 'Services', 'Servers' and 'Unavailable Servers'
  
Actual results:
Listing all the resources, does not specific to the category

Expected results:
Should list specific to the category

Additional info: Screenshot is attached.

Comment 1 John Mazzitelli 2011-10-24 15:24:42 UTC
From Ian:
---------

I don't see it as a regression. Before my recent change, we hard-coded a 
resourceCategory=PLATFORM filter (totally unrelated to the search bar) 
and also prepopulated the search bar with "category=platform". If the 
user edited the search bar and deleted "category=platform", the results 
would still be filtered to show only platforms (due to the hard-coded 
resourceCategory=PLATFORM filter). IMO, this is not intuitive; if the 
user is allowed to remove the "category=platform" text, then that should 
stop filtering by platforms.

I saw three options to make this intuitive:

a) remove the hard-coded resourceCategory=PLATFORM filter, so if the 
user deletes "category=platform" from the search bar, all resource will 
be listed
b) keep the hard-coded resourceCategory=PLATFORM filter but stop 
prepopulating the search bar with "category=platform"; this is tricky, 
because we'd have to make sure the hard-coded resourceCategory=PLATFORM 
filter always takes precedence over the any category filtration 
specified in the search bar (e.g. user could enter "category=server")
c) prepopulate the search bar with "category=platform" but make that 
text read-only (i.e. so the user can add additional text to the search 
expression but cannot delete or edit the initial "category=platform" portion

My change last week implemented a).

I think c) would be the best option but is more involved. Typically, I 
think it could be done by associating a SmartGWT MaskValidator with the 
search bar form item; however, since the search bar widget is 
implemented using vanilla GWT, this may or may not work as expected.

Comment 2 John Mazzitelli 2011-10-24 15:25:49 UTC
> I don't see it as a regression. Before my recent change, we hard-coded a 
> resourceCategory=PLATFORM filter (totally unrelated to the search bar) 
> and also prepopulated the search bar with "category=platform". If the 
> user edited the search bar and deleted "category=platform", the results 
> would still be filtered to show only platforms (due to the hard-coded 
> resourceCategory=PLATFORM filter). IMO, this is not intuitive; if the 
> user is allowed to remove the "category=platform" text, then that should 
> stop filtering by platforms.

Ah.. right. That's how we did it. Actually, what people are saying here
is that it *IS* intuitive. Because Jeeva selected "platform", the user
is in the context of viewing only platforms. By showing ALL resources
(not just platforms), Jeeva found that unintuitive.

I sense that Alan has the same general feeling - if the user is in the
context of viewing only platforms (as determined by selecting the
"platform" item on the left), it should only show platforms (we I
presume means even if the "category=platform" was removed from the
search bar, but that gets to your c) solution below).

> a) remove the hard-coded resourceCategory=PLATFORM filter, so if the 
> user deletes "category=platform" from the search bar, all resource will 
> be listed

We do this same kind of thing in other places. I can recall adding this
kind of thing in some other locations in the GUI where we initially
filtered on a fixed criteria - did you remove all hardcoded filters?
Should we review all the places where this was changed?

> b) keep the hard-coded resourceCategory=PLATFORM filter but stop 
> prepopulating the search bar with "category=platform"; this is tricky, 
> because we'd have to make sure the hard-coded resourceCategory=PLATFORM 
> filter always takes precedence over the any category filtration 
> specified in the search bar (e.g. user could enter "category=server")

FWIW, I was the one that added the prepopulation of the search bar
because it was confusing with an empty search bar. You'd click on
"platform", get the list of resources with an empty search bar and only
see platforms. At least this way, you'd see the search bar with
"category=platform" and it should make sense why you are seeing only
platforms, "ah, because the search bar is filtering on
category=platform".

> c) prepopulate the search bar with "category=platform" but make that 
> text read-only (i.e. so the user can add additional text to the search 
> expression but cannot delete or edit the initial "category=platform" portion
> My change last week implemented a).
> 
> I think c) would be the best option but is more involved. Typically, I 
> think it could be done by associating a SmartGWT MaskValidator with the 
> search bar form item; however, since the search bar widget is 
> implemented using vanilla GWT, this may or may not work as expected.
> 

That would be a nice way to fix this.

Comment 3 Charles Crouch 2011-10-25 00:09:50 UTC
Right now I don't see a compelling reason to change from the behaviour we had in JON2.4.1, i.e.

1) you select Platforms/Servers/Services, you get an empty Search box and a list of resources of that category
2) you type something in and you see search suggestions restricted to that category.
3) you execute a search and if the name matches something from that category you will see the results, otherwise you will see an empty list. So searching for the name of the platform, if you've already selected Servers, will return nothing

If people want a free form search across the whole inventory they can go to the All Resources section and see unfiltered suggestions and results.

Now if and when we decide to remove the whole concept of platforms/server/services then we can obviously revisit this.

Comment 4 Charles Crouch 2011-10-25 00:53:00 UTC
Same goes for the group views

Comment 5 John Mazzitelli 2011-10-25 21:04:09 UTC
this is in my "mazzmaster" local branch. I'll push to master once its unfrozen

Comment 6 John Mazzitelli 2011-11-01 13:46:31 UTC
git commits:
release_jon3.x: bfdc984796b40483ca07bf6755ef8edb1265e6ed
master: 63b0af8fb4ade7e4c447c084cbff3544eadc832a

Comment 7 Jeeva Kandasamy 2011-11-03 07:42:06 UTC
verified on the build RHQ 4.3.0
Detailed Version: 
Version: 4.3.0-SNAPSHOT
Build Number: ca0281f
GWT Version: 2.0.4
SmartGWT Version: 2.4
-------------
Working as expected. 
Verified on the locations,(Inventory)

All Resources
Platforms
Servers
Services
Unavailable Servers
All Groups
Compatible Groups
Mixed Groups
Problem Groups

Note: Yet to verify on JON 3.0.0 release

Comment 8 Mike Foley 2011-11-08 18:55:17 UTC
based on the documented git commits ... i am going to mark this verified

git commits:
release_jon3.x: bfdc984796b40483ca07bf6755ef8edb1265e6ed
master: 63b0af8fb4ade7e4c447c084cbff3544eadc832a

Comment 9 Ian Springer 2011-11-09 15:43:13 UTC
Another issue with the way this currently works is that the auto-suggestion dropdown menu will still provide suggestions outside of the category being viewed. But when the user selects one of those suggestions, no results are shown. This is obviously not at all intuitive. For example:

1) go to the Platforms view
2) enter "CPU" in the search box
3) a list of CPU services will be shown in the auto-suggestion dropdown
4) select one of the CPU services - no results are shown

Comment 10 Mike Foley 2012-02-07 19:25:31 UTC
changing status of VERIFIED BZs for JON 2.4.2 and JON 3.0 to CLOSED/CURRENTRELEASE

Comment 11 Mike Foley 2012-02-07 19:25:32 UTC
marking VERIFIED JON 3 bugs to CLOSED/CURRENTRELEASE