Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Big Select List: Difference between revisions

From MoodleDocs
mNo edit summary
Line 20: Line 20:
* A list with too many elements on it is very slow to load
* A list with too many elements on it is very slow to load
* A complete list of all options becomes awkward to work with before it reaches 100 entries, even if it is sorted alphabetically.
* A complete list of all options becomes awkward to work with before it reaches 100 entries, even if it is sorted alphabetically.
* If interaction with the list (adding, searching) requires a new page load
* If interaction with the list (adding selection, searching) requires a new page load, it easily becomes very slow and it becomes less apparent what the application did in reaction to the user's action
* Some users may not have javascript support on, so it cannot be depended on
* Some users may not have javascript support on, so it cannot be depended on



Revision as of 17:36, 29 June 2009

Moodle User Interface Guidelines > Big Select List

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.

This is a guideline for the Moodle User Interface Guidelines. Comments: developer forum thread

Problem

User needs to select one or more items from a potentially very large master list.

Context

You are designing a user interface for Moodle. (TODO: What else? Or remove section?)

Forces: factors that affect selection

  • If there are too many items in a list from which a user has to find items to select, finding what they need becomes difficult
    • The largest Moodle sites have hundreds of thousands of users, tens of thousands of courses, and some courses contain over a thousand students.
  • If there is a list with radio buttons it can be searched with the browser's find functionality, if the user knows it
  • The SELECT element in HTML can have multiple items in it selected by pushing an additional key on the keyboard while clicking with the mouse
    • requires quite intricate hand coordination which is probably too much for some of our users
    • the selection is easily lost by accident
    • users might not know about the additional key
  • A list with too many elements on it is very slow to load
  • A complete list of all options becomes awkward to work with before it reaches 100 entries, even if it is sorted alphabetically.
  • If interaction with the list (adding selection, searching) requires a new page load, it easily becomes very slow and it becomes less apparent what the application did in reaction to the user's action
  • Some users may not have javascript support on, so it cannot be depended on

Solution

Image 1: Big Select List (Moodle 2.0)
  • Put two select boxes side by side and buttons for adding and removing elements between them.
  • Under each select box, add a text field and a 'Search' button next to it. (In Moodle 1.9, only under the select box on the right)

Users can select one or more elements in one of the select lists, and press [◀ Add] or [Remove ▶] to move them to the other list.

Users can write a search term (which fields of the user's profile does this search?) and trigger the [Search] to have the list only show those users with data matching the search terms. This is the only way to use the UI in case there are too many users in the list and they can not be listed all at once.

Examples and implementation

TODO: Further explain the example below.

Assign course roles UI

Image 1: Big Select List (Moodle 2.0)
Image 2: Moodle 1.9 version of Big Select List with lots of selectable users

TODO: Create Big Select List Implementation

Further information / Sources

TODO: Anyone, if you know of any, please add references if you know any other place this kind of an UI is discussed or described. Was it created originally for Moodle?