Filtered Browsing

Description

When browsing a changeset, Trac supports filtering the changeset by path, including drilling through folders. This is a very nice feature, but it is tied to changesets. If you wanted to implement your own filtered browsing, there isn't really a good starting point for doing so.

We have a specific use case where supporting filtered browsing would be very handy, but our use case is really, really specific to our needs, so we wanted to do this in a more generic fashion so that others might be able to take advantage of this as well.

Our specific need is that there are some files in the repository that would act just like the list of files in a changeset, except that they are not tied to a changeset, they are an arbitrary list that is maintained externally (don't ask why - we didn't design that, we just want to figure out a way to support it). If you're familiar with the concept of changelists in Subversion 1.5, it's kind of like that: a user specified list of places in the repository that get lumped together.

So, the goal of the plugin is to be able to support this arbitrary filtered browsing. Additionally, the user should just be able to drill in to the filtered browsing from the directory that contains the special file with the list of content. Hopefully that can be done without needing to modify the Trac source that implements the browser functionality.

If you have other use cases beyond the virtual directory please enter a ticket against this plugin. The code is nowhere near ready yet, so handling other filtered browsing needs might not be too difficult to add.

Bugs/Feature Requests

Existing bugs and feature requests for FilteringBrowserPlugin are here.

If you have any issues, create a new ticket.

Download

Download the zipped source from here.

Source

You can check out FilteringBrowserPlugin from here using Subversion, or browse the source with Trac.

Example

See plugin description

Recent Changes

[5480] by chrisheller on 04/04/09 02:03:32

New hack FilteringBrowserPlugin, created by chrisheller

Author/Contributors

Author: chrisheller
Contributors: