[rt-users] cannot bookmark searches on relative comparisons?

Tim Pierce twp at unchi.org
Wed Dec 10 09:03:35 EST 2003


On Tue, Dec 09, 2003 at 06:34:30PM -0800, Jason Taylor wrote:
> >>Tim Pierce wrote:
> >>
> >>I am using RT 3.0.2 and am having trouble bookmarking searches that
> >>involve relative comparisons.  For example:
> >>
> >>  * I search for tickets where "owner = joe" and "priority < 100"
> >>  * Bookmark this search.
> >>  * Search for tickets where "owner = fred", but don't bookmark it.
> >>  * Open a new browser window.
> >>  * Visit the bookmarked search.
> 
> My suspicions are still leaning toward a URL length issue.  Maybe 
> getting truncated in Mason or some other perl module.

Oops, I fixed this after a couple days of hunting but neglected to
post the fix back to the list (since no one else seemed to be bothered
by it :-)

Unfortunately my development environment is a little squotzed at the
moment, so I don't have true diffs to give you, but you need to modify
Search/Listing.html.  There's a line that looks like this:

<A HREF="<% $RT::WebPath%>/Search/Listing.html?Bookmark=<%$session{'tickets'}->FreezeLimits()|u%>&TicketsSortBy=<%$session{'tickets_sort_by'}%>&TicketsSortOrder=<%$session{'tickets_sort_order'}%>&RowsPerPage=<%$session{'tickets_rows_per_page'}%>"><&|/l&>Bookmarkable URL for this search</&></a>

"FreezeLimits()|u" should be changed to "FreezeLimits()|u,n":

<A HREF="<% $RT::WebPath%>/Search/Listing.html?Bookmark=<%$session{'tickets'}->FreezeLimits()|u,n%>&TicketsSortBy=<%$session{'tickets_sort_by'}%>&TicketsSortOrder=<%$session{'tickets_sort_order'}%>&RowsPerPage=<%$session{'tickets_rows_per_page'}%>"><&|/l&>Bookmarkable URL for this search</&></a>

The reason is that RT is both HTML-escaping and URL-escaping the
bookmark search parameters when it sends this URL to the browser, but
it doesn't HTML-unescape the string when the browser sends it back.
So the server attempts to perform a search on criteria like "priority
< 100" which of course is not intelligible to SQL.  Since the
string is already being URL-escaped (with the "|u") flag, we can turn
off HTML-escaping (which is what adding ",n" means).

At some point I'll collect my changes and submit a proper diff for
this fix.

-- twp



More information about the rt-users mailing list