"Search in Prototype" is broken in 6.1.1

Dave shared this problem 4 years ago
Solved

I am able to perform a search, in that the "Search in Prototype" dialog displays matching components.


That is all I can do. Clicking the search results does not select them in the mockup, and the "OK" button does nothing. I must click "Cancel" or "✕" to close the dialog.

Comments (5)

photo
1

Follow-up:


1) Will you please at least acknowledge this report? Search is badly broken, and it keeps me from being able to use your product effectively.


2) Search apparently doesn't even find all the occurrences of the query string: I have a prototype that contains a component named "Content_Detail_Panel". It also contains half a dozen places where the string "Content_Detail_Panel" occurs in event conditions. Searching for "Content_Detail_Panel" always results in exactly one hit, and it is never the component with that name. It's hard to tell what it's finding, because when I click the search result, it selects (possibly at random?) a container element (a group or a dynamic panel) that may or may not contain an element that may or may not refer to or be named "Content_Detail_Panel".


Can you at least suggest an alternative that is better than what I am about to do, which is:


• Quit Justinmind


• Unzip the .vp file into a directory


• Edit /screens/.xml


• Re-zip the changed file back into the .vp file

photo
1

Hi Dave,


We haven't been able to reproduce the error. Could you send us a video please?


Thanks

photo
1

I'm sorry for the delay: got the flu this week.


Here's a screen shot showing the search panel correctly finding a component called "Stream_Detail_Panel" (the name changed since last week), but when I click the found item in the search results list, the wrong item is selected in the outline:


2b51238f83eb4de3adf12b0b71065fcc


Here's a GIF animation showing that the "OK" button does nothing at all:


Note: although it looks like I click the "Cancel" button, I merely hovered over it, then decided to close the dialog with the "✕" button in the top-right corner.

photo
1

Further discovery:


With a screen named "Settings Module," which is not the Initial Screen of the prototype, selected in the canvas, I performed a search that matched components on that screen as well as on "Engagement Module," which is the Initial Screen.


Clicking on search result items from the "Engagement Module" screen switched to the screen and brought the selected components into view as expected.


Clicking on search result items from the "Settings Module" screen failed: the screen containing the component came into view, but no component was selected.


I hope this helps.


Update


I swapped the "Initial Screen" setting between the two pages, saved, and performed the search again: No difference.


Search Result items on "Engagement Module" (the original Initial Screen) continue to work, while items on "Settings Module" (the new Initial Screen) continue to fail.


At least from this admittedly simplistic test, it does not appear that the Initial Screen setting is what is making the difference.

photo
1

OK, I figured out what's happening:


The bug arises when the search result items are contained within a layer of a dynamic panel that is not currently visible or are currently not visible due to the "eyeball" setting in the outline.


In my case, the structure of the "Settings Module" page is, roughly, this:


⋮ (various components)


▾ Outer_Dynamic_Panel (responds to side nav, contains "screens")


... ▾ One_of_11_Layers (one per "screen" — think of it as a tabbed interface)


...... ▾ Inner_Dynamic_Panel (for master/detail views)


......... ▾ One_of_Several_Layers (one per "view")


............ ▾ Yet_Another_Dynamic_Panel (for vertical layout - probably not needed)


............... ▾ The_Only_Layer_Here


.................. ⋮ (groups and components making up the view)


.................. ▾ One_of_the_Groups


..................... ☞ One_of_the_Search_Result_Items


......... ✔︎ Another_of_Several_Layers (which happens to be the Default Layer)


⋮ (various other components)


With "Another_of_Several_Layers" in view (as it is the default layer of "Inner_Dynamic_Panel"), if a search result points to "One_of_the_Search_Result_Items", which is within the (currently out-of-view) "One_of_Several_Layers", it will not be selected in the canvas when it is clicked in the search result list.


Expected result: Clicking on a search result item activates the full path from the "root" of the document to the selected item, setting active panels along the path as necessary to bring it into view.


Also: If the item is hidden in the canvas (via the "eyeball" setting in the outline), either change the eyeball setting to make it visible (which is a little bit rude, if the user has carefully set all the eyeball settings by hand) or (better) add a column to the search panel that shows that it is invisible and affords the user a chance to make it visible manually.


Workaround


Take an educated guess as to which layer in which dynamic panel may contain the search result item and bring it into view before clicking it in the search panel. If your item is hidden via the eyeball button, it will be selected in the outline: activate the eyeball to view it.


Not Tested:


I do not currently use the "Hide components marked as hidden" feature, because I don't know if this bug has been fixed in 6.2.0. I have no idea how that feature may interact — for good or ill — with search.