You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 43 Next »

Go to Community Requests Table

Phases

Note, the proof of concept part can probably be done concurrently with the ux investigation and design

  • User eXperience investigation / gather requirements (pain points with current UI, workflows, etc)
  • Design the UI screens, workflows, etc
  • Proof of concept of accessible widgets and write framework code (custom tags, common javascript etc)
    • autocomplete
    • tree control
    • popup window
    • menu
    • layout (frame-like)
    • tooltips
  • Development (iterative)
  • Testing

Architecture

  • In order to reuse work done in the existing Lite UI, the same architecture will be used: Javascript framework on top of jquery/dhtmlx.  There is no custom javascript per function, just server side java ajax which controls the screen via a Javascript layer
  • The main screen design will be centered around a tree control on the left pane which will browse the repository, sort of like Windows Explorer or Eclipse or other similar software
  • We could have two UI paths in the same UI application: one which is a rich application which might not be accessible, and one which is a very light application which will be accessible and mobile friendly.  The first page of the application should be a splash page which is accessible and mobile friendly where the user can set a preference about which UI they want associated with their account or which to use for this session.  Browser detection could help here too.  The accessible/mobile part could be purely based on Grouper WS-like operations...
  • Favorites or recent activity could be associated with the user in the database (e.g. with membership attributes) so that it is easy for the user to setup tasks so they can quickly do their work the next time they use the Grouper UI

Guidelines

  • Reduce number of screens required for actions
  • Reduce number of clicks (e.g. feedback should be in a div which appears instead of a popup that requires an OK).  Note: the div should have a close button not auto-close
  • Reduce the number of queries for actions
  • Make sure most of the logic is in the API, not the UI code.  Would be nice if the gaps between what is used and the WS are noted
  • Have the UI be usable by keyboard without requiring the mouse
    • Note, could use accesskey for buttons (probably need to add this to the UI framework)
  • Do not keep stuff in session, just cache globally, and use request.  The only things in session would be things that can be cached for the user but figured out if needed.  e.g. authentication information.  The app should be able to be used in a load balanced environment with session clustering.  No unserializable stuff in session
    • Make sure app works in different tabs in same browser (it wills since no data in session)
  • The tree control on the left of the UI prevents the URL from changing with clicks, however, we can put anchor URLs periodically as the user uses the app, so that bookmarks, back, forward, etc still work.  This is already somewhat in the UI framework, need to revisit
  •  

Security

  • All methods should be POST, though if GET is required, have a whitelist
  • Prevent CSRF by having a key (SESSIONID?) which is transmitted with each request in a form variable (will this work for dhtmlx GET requests?).  Have a switch that turns this off

Ideas

  • Overall search screen should allow search for all grouper objects
  • Comboboxes should have filters (e.g. for which source)
  • Comboboxes should show results with a <space> if there arent too many of them (maybe also if there is invalid text?)  See the action permission combobox
  • Have recently used objects available
  • Have a screen with each type of UI widget it in it for browser testing
  • Hide dangerous operations (e.g. delete object) behind menus so they are less likely to be accidentally pressed
  • Might need more custom tags to help display objects easier.  for instance a subject display custom tag...
  • All searches should be case-insensitive (e.g. group searches, attribute searches, group searches in subject results), should search name, display name, and description, alias, etc
  • Maybe if there arent too many options in dropdowns, it could be a select instead of combo
  • Get query count for each operation and make sure it is minimal :)

Help framework

Community requests

We ask community members to add their recommendations, requirements, or other functional, technical, process, or participation requests for the v2.2. UI to the following table. If you have more to say than fits into a Description cell, please create a child page and put a link to that in the Description cell.

If you see an existing entry that reflects a concern or request that you share, please add your name and/or institution name to the Requester(s) cell.

Request name

Description

Requester(s)

Use Spring MVC and Web-Flow

Use same underlying technologies as Jasig CAS, thereby reducing skill sets necessary to deploy and customize a CAS-protected grouper installation.

U Penn, U Montreal

HTML customization

Use CSS themes (perhaps along the lines of csszengarden) and customizable JSP header and footer includes.

U Penn

Internationalization (i18n)

One language could be globally configured. Supporting multiple language would be better, but it's not a top priority. It could be detected from the browser (which is nice, but a default value would also work) but it has to be user-changeable using a drop-box or link of some kind since browser language might not be what the user prefers to see.

U Montreal

Display group relationships

Visual display of groups impacting membership of a given group. Would illustrate subgroups and composite factors, perhaps expanded by levels.

U Montreal

UX participation

User eXperience professional can help with process to ensure good UI usability and workflow.

U Chicago

Images of people in person picker

We would like a future Grouper UI to be able to display an image/photo of a subject (person) when choosing subjects to add as members of a group
We would like a future Grouper UI to be able to display an
image/photo of a subject (person) when choosing subjects to
add as members of a group

LIGO

Why isn't subject a member search/display

Would be nice to have a way to search a group's membership and display why a particular subject is not a member of a group.  Example: given group x:y:allowed I'd lookup a subject and the UI would display that I'm not a member of the group because of my membership in x:y:deny or the subject is not a member of any groups which make up :allowed.  This would be very helpful for debugging a particular subject's membership issues when there are a lot of composite groups in play affecting the final group in question.

U Chicago

Input-Gathering Process

We'll aim to conduct the input gathering process as follows:

Date(s)

Activity

April 1 - May 31

Gather community requirements and requests in table above. Weekly reflection on grouper-dev list of new requests and any discussion of them. Counter proposals? Acceptable? Relative priority? Do others want to add their names as Requesters?

April 23

I2 SMM Grouper WG F2F

May 1

Float initial proposal for technology stack to be used to build v2.2 UI. Post to grouper-dev.

May 1-14

Drive discussion on grouper-dev of tech stack, with intent to settle as much of it as possible during this period.

May 18?

IAM Online focused on Grouper v2.2 UI planning & requirements

May 15

Float initial proposal for UX process to grouper-dev

May 15-31

Drive discussion on grouper-dev of UX process with intent to settle it during this period.

June 1-15

Finalize acceptance status of each request by grouper-dev and assign each to a priority class.

  • No labels