Allow users to break up long lists of items into separate pages. They should be able to decide if they want paging and how many per page.
Sakai has page navigation now -- "List Navigator UI Component" in the Sakai style guide. The default for how many items to show on a page varies. How many makes sense depends on context, how many total items, what type of items, etc. The idea here is to make this navigator remember the users last setting (across sessions). That way they set if for what makes sense given the current situation and it is persistent. As things change for them they simply change the setting to meet current needs and again it's persistent until they need to change it again. Currently this is a "one size fits all" default and many users have to change it every time they visit a particular page.
Problems with current Sakai widget
- Often users change this setting every time they visit a particular page/tool. As explained above, the default setting for how many to show on a page doesn't always make sense.
- Related to above, widget doesn't remember users setting from previous session.
- Widget takes up significant (extremely valuable) real estate at top of page.
- Current widget is displayed even if the number of items is less than is required for paging (i.e. there are 9 items listed and paging kicks in by default after 10).
Use Cases / Requirements for new component
- User can choose to break up long lists of information into several pages.
- Show users how many there are and where they are in the list (i.e. viewing 10 - 20 or 2,356)
- Allow users to "show all".
- Allow users to decide how many to show on each page. The best option will depend on a variety of dynamic circumstances (how many in list, what they are doing with the items, whether they need to see the items globally...)
- Remember users last setting (from previous session). This should be specific to the instance of the paginator.
- Allow users to "jump to" a certain set of records (e.g. students with a last name starting with "G")
- Provide other methods of filtering large sets of records into smaller sub-sets (e.g. associated filter)
References / Competitive Analysis
NOTE: Many of the below are for search navigation so should used strictly as a reference for more robust web application pages where users need to actually do something with the items in a list (other than just choose one).
Item Navigation (long list of items users may need to do something with)
- Sakai's "List Navigator UI Component" in style guide & Item Pagination design pattern in the Sakai Design Pattern Library
- "Item Pagination" - Yahoo design pattern, http://developer.yahoo.com/ypatterns/pattern.php?pattern=itempagination#
- gmail paging
- netflix.com - no paging is just a long scrolling list
- In this case we are probably giving the user the wrong thing when we think of giving them a list that big. If they are looking for something
in a huge list, things like a user or site or email, probably the first step should be to offer them a way to search or filter the list to help
them narrow things down and find what they need, without having to wait for whole thing to load up. I suppose there might be some cases where
they do want a whole long list, maybe to print the enrollment list for their course, but then paging can make that more difficult as well. - Peter Knoop
- "Search Pagination" - Yahoo design pattern, http://developer.yahoo.com/ypatterns/pattern.php?pattern=searchpagination
- amazon.com, http://www.amazon.com/s/ref=nb_ss_b/105-2487600-6556431?url=search-alias%3Dstripbooks&field-keywords=interaction+design&x=0&y=0
- http://humanized.com/reader/ (start scrolling down and you will see more data added to the page via AJAX) - This ajax paging scheme works great if you have a ranked ordering of items that the user wants to see (i.e. a blog with most current on top). But this may not be the best approach to a Gradebook that has hundreds of students and you want to get to the students with last name of "P"... then you would want to jump to a particular page and not scroll down (or click next) through a bunch of irrelevant pages. - Ryan Lowe