Opened 13 years ago

Closed 13 years ago

Last modified 11 years ago

#771 closed bug (fixed)

query feature doesn't use multi-level components

Reported by: wkornewald Owned by: johndrinkwater
Priority: normal Milestone: Website R1
Component: Website/Trac Version:
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by wkornewald)

Go to "View Tickets"/"Custom Query" and add a query for "Component". It shows the raw list ("desktop/tracker", etc.) instead of a multi-level select.

Change History (29)

comment:1 Changed 13 years ago by johndrinkwater

Looking into it :)

comment:2 Changed 13 years ago by admin

Owner: set to johndrinkwater

comment:3 Changed 13 years ago by admin

Hmm, your second point needs to be assigned to tic/charlie. Py isn't my thing, just yet.

comment:4 Changed 13 years ago by wkornewald

Okay, I'll file a second bug for it.

comment:5 Changed 13 years ago by wkornewald

Description: modified (diff)
Summary: query feature and Milestone view don't use multi-level componentsquery feature doesn't use multi-level components

comment:6 Changed 13 years ago by wkornewald

Second bug is #4.

comment:7 Changed 13 years ago by johndrinkwater

Fixed, afaik ( read comment at the end of #2 )

comment:8 Changed 13 years ago by wkornewald

Cool. Now, there is just one single other "bug":

When selecting some component all subcomponents should be queried, too. I.e.: search for "apps" and you also get the results for "apps/mediaplayer", etc.

comment:9 Changed 13 years ago by johndrinkwater

Owner: changed from johndrinkwater to admin
Status: newassigned

atm we can't give the user access to select "apps" because of that change you requested (the one to remove entries, and to automatically expand the first entry). I'm happy to revert that for queries.

You just want the behaviour on the query view ? Hmm, the query page only has is | is not for the component field, do we need add 'contains', or should the backend be the only thing adjusted?

The completed script will be sending "apps" or "drivers/graphics" as part components, the rest is down to the backend then (compo/nent% should cover both parent and subchildren)

comment:10 Changed 13 years ago by johndrinkwater

Following on from your request/suggestion, I've made a new version (always at the same URL - http://ezri.nextraweb.com/examples/js/haiku/ )

For the normal Ticket page, you can only select valid leafs. For the query page, you can select super/sub or super/ depending on what you are looking for.

Todo: edit modes in query.js to allow 'contains', need to refer to the python guys for that though.

(sidenote, Konq doesn't half behave weirdly.. ) Opera, Mozilla, and Konq are good for it. Please test, ty.

comment:11 Changed 13 years ago by admin

Component: appsweb/trac
Milestone: Website R1

comment:12 Changed 13 years ago by admin

We don't need "contains", but "starts with". But the end-user should still only see "is" and "is not". The query for "is" would become:

component == "apps"
component <starts-with> "apps/"

(once with "/", once without). Otherwise we could search for "apps" and also find "apps-tests/playground" (just an example).

comment:13 Changed 13 years ago by johndrinkwater

Component: web/tracapps

Just testing out the repaired script, excuse the component change

comment:14 Changed 13 years ago by johndrinkwater

Component: appsweb/trac

good, s'working (displays "apps" with another option with ""+"mediaplayer")

comment:15 Changed 13 years ago by wkornewald

Owner: changed from admin to johndrinkwater
Status: assignednew

comment:16 Changed 13 years ago by johndrinkwater

What's the news in relation to query.js being updated?

comment:17 Changed 13 years ago by wkornewald

It doesn't get updated. Maybe it's getting loaded from some other location than we expect, but even Mikael didn't know and there are not a lot of places...

comment:18 Changed 13 years ago by johndrinkwater

Was asked if there was anyway to not edit query.js:

Trac sends a list of query options in javascript in the /query page; I'd love to add the hook here so that our method is called, but there isn't provision for adding this without adjusting query anyhow. Could use javascript from our file to hook into the add filter dropdown, but we can't be certain we don't get call before their method (ie, we'd be called before the element was added), and we wouldn't have a handle on the obj anyhow.

I look into another way, if possible :)

comment:19 Changed 13 years ago by wkornewald

I think that we need a clean solution if we modify query.js. I'd like everything to be committed to the official repos, so we have less patches to maintain.

comment:20 Changed 13 years ago by wkornewald

Okay, I've adjusted query.js, but there are two new bugs:

  • "&amp;" is not converted to "&" (and probably other chars, too)
  • after having selected a component and clicking Update it switches back to a flat (!) component list, but correctly converts "&amp;" to "&"

comment:21 Changed 13 years ago by johndrinkwater

Status: newassigned
  • "&amp;" is not converted to "&" (and probably other chars, too)

TBH, Trac is doing the wrong thing here, escaping & inside Javascript strings is bad, as it has potentional to break certain browsers; Would be better to CDATA the <script> sections... anyhow, because we can't have a clean + simple &entity to character conversion, I think adding just &amp; will be enough for now. It should also fix the POST problem (ie, query doesnt listen to selected component)

  • after having selected a component and clicking Update it switches back to a flat (!) component list, but correctly converts "&amp;" to "&"

This is due to it now outputting the option as HTML, rather than from the JS. A reason why the &amp; is being parsed by the browser rather than JS.. just needs more hook work, i'll do it tomorrow lunchtime.

comment:22 Changed 13 years ago by johndrinkwater

Following on from #20, is there much point continuing with this js ?

comment:23 Changed 13 years ago by wkornewald

Yes, I'd like to keep it. The admin interface will have to be adapted, instead.

comment:24 Changed 13 years ago by johndrinkwater

OK, newer version should include fixes to previous problems; the file has gained in size a little, but I think thats ok for testing sake. I can compact it when we have the final working copying. You need only update componentselect.js, query.js shouldn't need another edit. And I am still looking into another way to attach ourselves rather than edit query. Just been busy :)

  • I've removed a method that Trac already had (addEvent), so we must make certain this script is included after trac.js
  • ampersandmp; "bug" is fixed, but i'd prefer to get it fixed with Trac instead; If you didn't notice, even without my script Trac breaks ampersands
  • On another note, Konq 3.5.1 hates ampersand in option entries. Unescaped it underlines text like a menu shortcut, and escaped it stays escaped :)

comment:25 Changed 13 years ago by wkornewald

Okay, let's better solve this by using "+" instead of "&". If it's even incompatible with Konqueror and makes so many problems I prefer a clean solution. Maybe we will not even have these "A & B" entries. Could you please remove the "hack" for fixing "&amp;"? If it will be fixed it should be in Trac.

comment:26 Changed 13 years ago by johndrinkwater

Platform: All

Right, that's the &amp; hack removed. I've also removed the need to edit query.js, so if you can revert query.js to repo quality, and fetch my new componentselect.js that should be enough.

comment:27 Changed 13 years ago by johndrinkwater

Resolution: fixed
Status: assignedclosed

<.<

.>

I think it's OK now. Anymore problems to new bugs thanks.

comment:28 Changed 13 years ago by wkornewald

Yep. Good job!

Note: See TracTickets for help on using tickets.