Personal tools
You are here: Home Products Plone Roadmap #146: Improve sharing page
Document Actions

#146: Improve sharing page

Contents
  1. Motivation
  2. Proposal
by Danny Bloemendaal last modified January 3, 2007 - 06:32
The sharing page has to be simplified significantly.
Proposed by
Alexander Limi
Seconded by
Danny Bloemendaal
Proposal type
User interface
Assigned to release
State
completed

Motivation

The sharing page in 2.x is more or less unusable.

Proposal

The user interface will be greatly simplified using new (ajax) technology.

First there will be an overview of all the rolemappings that are in place. It will see both acquired mappings as local mappings. The acquired mappings are not editable while the local mappings are:

[x] Inherit permission
--------------------------------------------------------------
User    Editor    Reader    Role-x    Role-y
--------------------------------------------------------------
Group1     V      V    [ ]     [x]
John    [x]      V    [ ]    [ ]
Designers  [x]    [ ]    [ ]    [ ]
All    [ ]    [x]    [ ]    [ ]
--------------------------------------------------------------
[cancel] [apply]

Group1 has acquired roles Editor, Reader and a local role Role-y.
John has local roles Editor and an acquired role Reader.
The group Designers has a local role Editor.
The group All has a local role Reader.

When you uncheck the Inherit permissions (wording needs to be changed), a javascript removes the rows with only acquired mappings. Non-js browser will just have to click to the apply button.

Global roles and acquired roles are treated as the same. Essentially they are.

Users have the user icon, groups have the group icon. (In the future we may use small versions of the user picture).

Adding new users and groups

To accommodate the addition of new users and groups an additional row is added to the overview table:
[x] Inherit permission
--------------------------------------------------------------
User    Editor    Reader    Role-x    Role-y
--------------------------------------------------------------
Group1     V      V    [ ]     [x]
John    [x]      V    [ ]    [ ]
Designers  [x]    [ ]    [ ]    [ ]
All    [ ]    [x]    [ ]    [ ]
--------------------------------------------------------------
[ ] [ ] [ ] [ ] [ ]
--------------------------------------------------------------
[cancel] [apply]

This new row contains an input field that allows you to type in user names, group names or part of user/group names. Upon getting focus, that input field will open a dropdown list containing all the users and groups (well, not all, only the visible subset). While typing the list of users immediately limits the result set based on what's been typed. It behaves like some kind of LiveSearch. While the drop down is being displayed, the user can also move up/down in the list to select his target or he can use the mouse to click on it. Double clikcing on the name or pressing enter will add the selected user or group to the list, just above the input field. The role mappings for this new user/group is like it is set with the checkboxes behind the input field. That allows for quickly adding new users with a preset rolemapping. Simply set the mapping before adding new users and then go through all of them.

Non-js browsers still can use the input field but pressing enter will reload the page and show the search results after which you can select the found users and groups.  A bit like it is done in the old style.


[x] Inherit permission
--------------------------------------------------------------
User    Editor    Reader    Role-x    Role-y
--------------------------------------------------------------
Group1     V      V    [ ]     [x]
John    [x]      V    [ ]    [ ]
Designers  [x]    [ ]    [ ]    [ ]
All    [ ]    [x]    [ ]    [ ]
--------------------------------------------------------------
[Jo ] [ ] [x] [ ] [ ]
-|John -----|--------------------------------------------
|Johan |
|JobGroup |
|Hanna Jo |
|Fred Johnson |
-----------------



Some additional notes:

The roles being displayed are configured in a portal property (white list).

Archipelago sprint implementation

Posted by Alexander Limi at August 28, 2006 - 04:21
The implementation might be in 

https://svn.plone.org/svn/plone/CMFPlone/branches/plip124-ueberselection-widget/

since I believe they used this as a use case for the ÜberSelectionWidget. In any case, it's easy to recreate - and depends mostly on the JS framework chosen (and the workflow bits) - this PLIP is mostly to keep track of the UI implementation to tie it all together.

Recommendation -- expire roles

Posted by Michael Schreiber at February 2, 2007 - 16:07
May I make a suggestion? We have clients whom we wish to allow a trial period (subscription) of a product. It would be really cool to be able to set an expiration date (optional) on the subscription (view) of the product.

For any issues with the web site functionality, please file a ticket.

Please consult the policy on plone.org content if you want your content published on this site.

Servers and hosting by