Roundup Classhelper Enhancement

The classhelper acts as a search tool when filling an input field in the Roundup Issue Tracker. It is placed in a separate window to allow the user to interact with the page that includes the field. The implementation should be an HTML web component that wraps an existing classhelp link and provides a modern JavaScript/REST interface using vanilla JavaScript. If the user's browser does not support web components, it should fall back to the classhelp link.

Details

The Roundup Issue Tracker has a helper panel that allows the user to search for items to fill an input field. This search can be done using different criteria. For example a user search could be done by: username, the user's real name, the user's authorization role, or the user's email address. This is different from the usual auto-complete searches that search using only a single key field. Parameters from the underlying classhelper link will be parsed by the web component to use to create the interface. For example the parameters:

If form or property are missing, the classhelper displays additional information about the class items. For example if @properties=id,name,decription the description propertyof the item would be displayed along with the id and name.

The query string is combined with the last element of the path: /user or /issue to determine what fields can be searched. Specification of available search fields is not defined by a parameter in the wrapped link. So the web component should support a "searchwith" attribute that takes a space (or comma) separated list of property names that will be available for searching.

An issue page showing the link 'list' next to a field
          labeled nosy. Partly covering the page is a new top level
          window displaying the classhelper. The class helper is
          made up of three frames. The top frame allows the user to
          chose by username or role. The middle frame shows the
          results and the bottom frame shows the list of selected
     users.
The current classhelper window displayed on top of an issue

This is currently implemented using the obsolete HTML frameset and frame elements.

Roundup is meant to be customized by the owner. As a result we should not assume that the owner has a web development environment. So all core enhancements to Roundup should be relatively easy (add a few lines to an HTML template and drop in a JavaScript file or additional HTML templates) to deploy and not require third party libraries/frameworks.

The goal is to integrate this into all of the templates provided with Roundup and ship it with the July 2024 v2.4.0 release.

Also it should address the following issues with the classhelp component:

Also it will provide a basis for issue 2551260 replacing the classhelp/calendar system in the future. Parts of issue 2551260 are out of scope (calendar support, radiobutton support) for this project

Out of Scope

Skills/Technologies Required/Excluded

Resources