This documentation is currently being moved to our new documentation site.
Please view or edit the documentation there, instead.
If you're looking for Fluid Project coordination, design, communication, etc, try the Fluid Project Wiki.
Tutorial - List Reorderer
This tutorial has not yet been updated to reflect the latest APIs.
Step 1: Prepare your markup
You also need to tell the Reorderer which of your list items should be reorderable. Perhaps the first item on your list, "Select the date," really needs to stay the first item, since everything else depends on the date. You don't want that item to be movable, so you can't just make every list item orderable.
You'll tell the Reorderer which items are to be orderable with another jQuery selector. Let's add a CSS class for that, say movable:
That's all - these are the only changes you need to make to your HTML.
Step 2: Write the script
You'll need to create a file to contain your initialization script - the script you write to apply the Reorderer to your list.
In the example of the todo list, create a file called todo-list.js and in this file, write a function that looks like this:
In this function call, the first parameter, "#todo-list", is a jQuery selector identifying the element with the ID "todo-list". The second parameter is a Javascript object that contains options for customizing the List Reorderer. One of the options is called selectors, and we're using that options to provide a jQuery selector identifying elements with the CSS class "movable". That's all the information required by the fluid.reorderList() function.
By enclosing the function call inside jQuery(document).ready(), we ensure that the list is fully rendered before we apply the Reorderer to it.
Step 3: Add the script to your HTML
You'll need to add your initialization script, along with the Fluid library, to you HTML file. In the header of the file, link to the Javascript files with <script> tags:
<script type="text/javascript" src="infusion-1.2/InfusionAll.js"></script>
<script type="text/javascript" src="todo-list.js"></script>
Keep in mind that the InfusionAll.js file is minified - all of the whitespace has been removed - so it isn't really human-readable. If you're using the source distribution and you want to be able to debug the code, you'll want to include each of the required files individually. This would look like this:
But all of these individual files are not necessary to make it work - the InfusionAll.js file has everything you need.
That's it! That's all you need to do to make your list reorderable!
Step 4: Apply styles
If you look at your file in a browser now, it doesn't look any different than it looked before - there's no way to tell that your list items are reorderable. That's what the styles are for.
There are a number of "interesting moments" that happen when dealing with a reorderable list. These include, for example, when the mouse hovers over a reorderable item, or when an item is selected using the keyboard. The Reorderer automatically applies CSS classes to the list items to mark these interesting moments. You can use these classes to define styles that inform users of the moments.
The CSS classes that are applied by the Reorderer, and the 'interesting moments' they are used for, are described below.
If we add a stylesheet with these styles (along with some global styles to make the font look a bit nicer, etc.), your list will look like this:
When you hover over an item, it will be apparent:
If you use the tab and arrow keys to select an item, you'll be able to tell:
And while you're dragging, you'll be able to tell where the drop will happen: