Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 227863

Summary: Draggable portal boxes
Product: Community Reporter: Bjorn Freeman-Benson <bjorn.freeman-benson>
Component: Project Management & PortalAssignee: Portal Bugzilla Dummy Inbox <portal-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: enhancement    
Priority: P4 CC: gabe.obrien
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Bjorn Freeman-Benson CLA 2008-04-18 18:36:50 EDT
Allow users to rearrange their portal display by dragging and rearranging the portal boxes. Save their layout with their personal information.
Comment 1 Karl Matthias CLA 2008-04-21 12:11:21 EDT
How would this work with sort_order() and with new components never before shown?  Would layout be completely arbitrary or would there only be slots where components could fit?  So are there two columns and you can lay them out on the columns, or can you slap them on there, overlapping, etc, however you like?  Previously when something was important we could bring it to everyone's attention by putting it at the top of the list.  Can we still do that somehow?
Comment 2 Bjorn Freeman-Benson CLA 2008-04-21 12:19:32 EDT
(In reply to comment #1)
The layout would start with the sort_order.
When a layout is rearranged, it obviously may violate the sort_order, so for those boxes the user has effectively defined a new sort_order. Thus if there is an "all hands bulletin" it would be set to sort_order #1 and it would still appear at the top of the list.

New boxes would be created as they are now: below the current box. Or we could be fancier and place the new box in the correct sort_order position.

Two columns.

Boxes can have dynamic sort_order, changing their position based on importance. Perhaps we could change sort_order to have two values: an order and a draggability. (Maybe negative orders are not draggable?) Thus a dynamic box might have sort_order 60 in one state and -20 in another state. When in the first state, it is draggable, but when in the second state it is not. ??
Comment 3 Karl Matthias CLA 2008-05-09 12:32:05 EDT
I suggest YUI for this as it can be hosted/cached outside our environment.  And it's the best tooling that I know of with regard to AJAX GUI interaction.  I'm sure Gabe concurs.
Comment 4 Gabe O'Brien CLA 2008-05-09 12:43:23 EDT
I will admit it, I have a big crush on YUI.  So I would second the call to use YUI.  

If we made each column a unsorted list <ul> with list element <li> enclosing each widget.  Then we could use the drag and drop lib and allow the lists to be reordered by dragging up and down.   Moving from the left to right columns would just be removing from right adding to left (or the opposite).

Still have to figure out a good way of storing this layout information in a database.
Comment 5 Karl Matthias CLA 2008-05-09 12:47:35 EDT
There are other things to be considered as well.  Where do new components appear?  Do they change the sort order to appear next the component that created them, always appear at the top, or always at the bottom?  What about when a component is removed?  How do we store the sort order for a component that can create multiple windows like an election?  What if it's a new component we' ve never seen before?  What if a component that was listed goes away (like election ended)?
Comment 6 Bjorn Freeman-Benson CLA 2008-09-17 18:52:35 EDT
Realistically, we're not going to do this. Closing.
Comment 7 Karl Matthias CLA 2008-09-17 20:46:07 EDT
Closed for STAGING_266.