View Issue Details

IDProjectCategoryView StatusLast Update
0025666mantisbtuipublic2020-05-22 11:07
Reporterdregad Assigned To 
PriorityhighSeverityfeatureReproducibilityhave not tried
Status confirmedResolutionopen 
Summary0025666: Replace user selection list with an autocomplete widget progressive remote search
Description

The current user selection widget relies on an HTML SELECT widget, which is fine when there is a small number of entries in the list. However, when there are many users in the system (e.g. on this tracker, which has nearly 40K users as of this writing), the list is unwieldy or even useless, and causes a significant performance issue as it takes a significant amount of time for the server to load the list and the browser to render it (about 40 seconds on the computer I'm using now).

It should be replaced with another mechanism, e.g. an INPUT with autocomplete / progressive search, such as jQueryUI https://jqueryui.com/autocomplete/ or similar.

Although this topic has been discussed several times in the past (0017577, https://github.com/mantisbt/mantisbt/pull/1486 come to mind, but there are probably others references as well), it was never formally logged as a distinct issue AFAICT.

TagsNo tags attached.

Relationships

related to 0017577 assigneddregad Improve print_user_option_list() performance 
related to 0025658 new Require javascript 
has duplicate 0017962 closeddregad Implement auto-complete for reporter field in bug_update_page 
related to 0025901 acknowledgeddregad Manage project page loads ALL users 
related to 0025906 assignedsyncguru Add autocomplete inline popup menu for @mentions while typing 

Activities

dregad

dregad

2019-03-29 09:43

developer   ~0061797

For reference, here's an old attempt at tackling this https://github.com/dregad/mantisbt/commits/dynamic-reporter-select (probably a half-baked, semi-functional work-in-progress, I haven't actually looked at this code since 2015).

cproensa

cproensa

2019-03-29 10:19

developer   ~0061798

This has a dependecy on 0025658
A static alternative can't be offered without defeating this purpose:

  • Cant provide the current selection list as fallback, that's what we want to avoid
  • Cant provide some kind of popup strategy, because that also need js.

Regarding implementation:

  • We removed jqueryui time ago.
  • i see we already include typeahead, iirc, it's only used for very isolated cases. However, if we have a better alternative, those could be migrated too.
  • the server side is probably expected to be implemented by rest api
dregad

dregad

2019-03-29 11:08

developer   ~0061799

This has a dependecy on 0025658
A static alternative can't be offered without defeating this purpose:
Cant provide the current selection list as fallback, that's what we want to avoid

I tend to agree, but at the same time someone intent on not using JavaScript has to accept that Mantis will work in degraded mode, so I would not qualify this as a hard dependency. In other words, I think falling back to the current selection list would be acceptable in this case.

We removed jqueryui time ago.

I know, I just gave that as an example of what I meant by "autocomplete".
I have no particular preference or recommendation with regards to what library to use.

the server side is probably expected to be implemented by rest api

Right.

c_schmitz

c_schmitz

2020-05-22 11:07

reporter   ~0064019

We have now almost 200,000 users. Certain parts of the admin interface are now blocking/unusable due to this issue, because when 200,000 names are loaded into a dropdown the browser crashes and a small kitten is killed somewhere.
We are now in 2020 and this issue existed since 2014.

Is there anything we can help with to resolve this issue?