On Tue, Mar 4, 2014 at 4:37 AM, Thimal Kempitiya <[email protected]>wrote:

> Thanks Ryan,
> I checked the plugins in trac-hacks and the trac component architecture.
> so what we expect from this project is a plugin for bloodhound which can do
> auto completion in ticket fields or is it a internal part of bloodhound
> that can do the auto completion.
>

Yeah, you have the right idea. My initial thought is that the proposed
features can be added to the BloodhoundThemePlugin. I wouldn't entirely
rule out having the features be standalone plugins until we have considered
all the aspects in more detail. Probably though, we don't want to clutter
the Bloodhound project with another plugin for basic features like this. If
the features are implemented in the BloodhoundThemePlugin, the user will
still be able to enable/disable each feature provided each feature is
implemented as an individual component.

A reason I think it will work well to integrate the features into
BloodhoundThemePlugin is that you can add the client-side functionality
(i.e. the JavaScript parts) directly in the ticket templates. The server
side request handling can be handled in individual Components within the
BloodhoundThemePlugin.  I'm imagining we have 3 components: KeywordSuggest,
DuplicateTicketSearch, AutocompleteUsers (you don't necessarily need to use
those names though).

If you've tested out the KeywordSuggestPlugin, then you may have a good
idea of what that particular feature might look like. Good next steps would
be to sketch out what the architecture might look like, such as how the
request handling would be done. Familiarize yourself with Bootstrap and
jQuery. jQuery has some great demos on their pages.

You could draft some requirements for each feature, such as:
 - The keywords field will suggest entries that are used in existing
tickets.
That would get you thinking about things such as, how many characters
should the user type before a keyword is suggested. Should the matching be
case-sensitive?: perhaps that should be driven by a configuration option.
How would the user see suggested entries without typing any characters?:
perhaps pressing the down key would bring up an alphabetical list of
entries that the user can scroll through. Will all of the possible
suggestions be retrieved on page load like the KeywordSuggestPlugin does?
What might that impact performance with thousands of keywords? Or should
the suggestions be stored dynamically retrieved server-side? What would be
the performance implications of that approach?: there is sure to be some
latency in retrieving the possible keywords.

I'll hunt around the issue tracker today and see if there is a good
"starter" ticket that you might work on.

Reply via email to