new tableDrag(table, tableSettings)
- Source:
 
    Provides table and field manipulation.
    Parameters:
| Name | Type | Description | 
|---|---|---|
table | 
            
            HTMLElement | DOM object for the table to be made draggable. | 
tableSettings | 
            
            object | Settings for the table added via drupal_add_dragtable(). | 
Members
$table :jQuery
- Source:
 
Type:
(nullable) $toggleWeightButton :jQuery
- Source:
 
Type:
changed :boolean
- Source:
 
    Whether anything in the entire table has changed.
    Type:
- boolean
 
changedRowIds
- Source:
 
    Keeps track of rows that have changed.
        
            
(nullable) dragObject :HTMLElement
- Source:
 
    Used to hold information about a current drag operation.
    Type:
- HTMLElement
 
indentAmount :number
- Source:
 
Type:
- number
 
indentCount :number
- Source:
 
    Total width of indents, set in makeDraggable.
    Type:
- number
 
indentEnabled :boolean
- Source:
 
    Check this table's settings for parent relationships.
For efficiency, large sections of code can be skipped if we don't need to
track horizontal movement and indentations.
    Type:
- boolean
 
maxDepth :number
- Source:
 
    Maximum amount of allowed parenting.
    Type:
- number
 
(nullable) oldRowElement :HTMLElement
- Source:
 
    Remember the previous element.
    Type:
- HTMLElement
 
(nullable) oldY :number
- Source:
 
    Used to determine up or down direction from last mouse move.
    Type:
- number
 
(nullable) rowObject :HTMLElement
- Source:
 
    Provides operations for row manipulation.
    Type:
- HTMLElement
 
rtl :number
- Source:
 
    Direction of the table.
    Type:
- number
 
(nullable) scrollInterval :number
- Source:
 
Type:
- number
 
scrollSettings :object
- Source:
 
Properties:
| Name | Type | Description | 
|---|---|---|
amount | 
            
            number | |
interval | 
            
            number | |
trigger | 
            
            number | 
    Configure the scroll settings.
    Type:
- object
 
scrollY :number
- Source:
 
Type:
- number
 
striping :boolean
- Source:
 
Type:
- boolean
 
table :HTMLElement
- Source:
 
Type:
- HTMLElement
 
tableSettings :object
- Source:
 
Type:
- object
 
windowHeight :number
- Source:
 
Type:
- number
 
Methods
addColspanClass(columnIndex) → {function}
- Source:
 
    Mark cells that have colspan.
In order to adjust the colspan instead of hiding them altogether.
    Parameters:
| Name | Type | Description | 
|---|---|---|
columnIndex | 
            
            number | The column index to add colspan class to. | 
Returns:
    Function to add colspan class.
- Type
 - function
 
checkScroll(cursorY) → {number}
- Source:
 
    Check the suggested scroll of the table.
    Parameters:
| Name | Type | Description | 
|---|---|---|
cursorY | 
            
            number | The Y position of the cursor. | 
Returns:
    The suggested scroll.
- Type
 - number
 
copyDragClasses(sourceRow, targetRow, group)
- Source:
 
    Copy all tableDrag related classes from one row to another.
Copy all special tableDrag classes from one row's form elements to a
different one, removing any special classes that the destination row
may have had.
    Parameters:
| Name | Type | Description | 
|---|---|---|
sourceRow | 
            
            HTMLElement | The element for the source row. | 
targetRow | 
            
            HTMLElement | The element for the target row. | 
group | 
            
            string | The group selector. | 
displayColumns(displayWeight)
- Source:
 
    Hide or display weight columns. Triggers an event on change.
    Parameters:
| Name | Type | Description | 
|---|---|---|
displayWeight | 
            
            boolean | 'true' will show weight columns. | 
Fires:
dragRow(event, self) → {boolean|undefined}
- Source:
 
    Pointer movement handler, bound to document.
    Parameters:
| Name | Type | Description | 
|---|---|---|
event | 
            
            jQuery.Event | The pointer event. | 
self | 
            
            Drupal.tableDrag | The tableDrag instance. | 
Returns:
    Undefined if no dragObject is defined, false otherwise.
- Type
 - boolean | undefined
 
dragStart(event, self, item)
- Source:
 
    Pointer event initiator, creates drag object and information.
    Parameters:
| Name | Type | Description | 
|---|---|---|
event | 
            
            jQuery.Event | The event object that trigger the drag. | 
self | 
            
            Drupal.tableDrag | The drag handle. | 
item | 
            
            HTMLElement | The item that is being dragged. | 
dropRow(event, self)
- Source:
 
    Pointerup behavior.
    Parameters:
| Name | Type | Description | 
|---|---|---|
event | 
            
            jQuery.Event | The pointer event. | 
self | 
            
            Drupal.tableDrag | The tableDrag instance. | 
findDropTargetRow(x, y) → {*}
- Source:
 
    Find the row the mouse is currently over.
This row is then taken and swapped with the one being dragged.
    Parameters:
| Name | Type | Description | 
|---|---|---|
x | 
            
            number | The x coordinate of the mouse on the page (not the screen). | 
y | 
            
            number | The y coordinate of the mouse on the page (not the screen). | 
Returns:
    The drop target row, if found.
- Type
 - *
 
getPointerOffset(target, event) → {object}
- Source:
 
    Get the event offset from the target element.
Given a target element and a pointer event, get the event offset from that
element. To do this we need the element's position and the target position.
    Parameters:
| Name | Type | Description | 
|---|---|---|
target | 
            
            HTMLElement | The target HTML element. | 
event | 
            
            jQuery.Event | The pointer event. | 
Returns:
    An object with `x` and `y` keys indicating the position.
- Type
 - object
 
hideColumns()
- Source:
 
    Hide the columns containing weight/parent form elements.
Undo showColumns().
        
            
    
    initColumns()
- Source:
 
    Initialize columns containing form elements to be hidden by default.
Identify and mark each cell with a CSS class so we can easily toggle
show/hide it. Finally, hide columns if user does not have a
'Drupal.tableDrag.showWeight' localStorage value.
        
            
    
    makeDraggable(item)
- Source:
 
    Take an item and add event handlers to make it become draggable.
    Parameters:
| Name | Type | Description | 
|---|---|---|
item | 
            
            HTMLElement | The item to add event handlers to. | 
onDrag() → {null}
- Source:
 
    Stub function. Allows a custom handler when a row begins dragging.
Returns:
    Returns null when the stub function is used.
- Type
 - null
 
onDrop() → {null}
- Source:
 
    Stub function. Allows a custom handler when a row is dropped.
Returns:
    Returns null when the stub function is used.
- Type
 - null
 
pointerCoords(event) → {object}
- Source:
 
    Get the coordinates from the event (allowing for browser differences).
    Parameters:
| Name | Type | Description | 
|---|---|---|
event | 
            
            jQuery.Event | The pointer event. | 
Returns:
    An object with `x` and `y` keys indicating the position.
- Type
 - object
 
restripeTable()
- Source:
 
    Command to restripe table properly.
        
            
    
    row(tableRow, method, indentEnabled, maxDepth, addClasses)
- Source:
 
    Constructor to make a new object to manipulate a table row.
    Parameters:
| Name | Type | Description | 
|---|---|---|
tableRow | 
            
            HTMLElement | The DOM element for the table row we will be manipulating. | 
method | 
            
            string | The method in which this row is being moved. Either 'keyboard' or 'mouse'. | 
indentEnabled | 
            
            boolean | Whether the containing table uses indentations. Used for optimizations. | 
maxDepth | 
            
            number | The maximum amount of indentations this row may contain. | 
addClasses | 
            
            boolean | Whether we want to add classes to this row to indicate child relationships. | 
rowSettings(group, row) → {object}
- Source:
 
    Find the target used within a particular row and group.
    Parameters:
| Name | Type | Description | 
|---|---|---|
group | 
            
            string | Group selector. | 
row | 
            
            HTMLElement | The row HTML element. | 
Returns:
    The table row settings.
- Type
 - object
 
setScroll(scrollAmount)
- Source:
 
    Set the scroll for the table.
    Parameters:
| Name | Type | Description | 
|---|---|---|
scrollAmount | 
            
            number | The amount of scroll to apply to the window. | 
showColumns()
- Source:
 
    Show the columns containing weight/parent form elements.
Undo hideColumns().
        
            
    
    toggleColumns()
- Source:
 
    Toggle the weight column depending on 'showWeight' value.
Store only default override.
        
            
    
    updateField(changedRow, group)
- Source:
 
    After the row is dropped, update a single table field.
    Parameters:
| Name | Type | Description | 
|---|---|---|
changedRow | 
            
            HTMLElement | DOM object for the row that was just dropped. | 
group | 
            
            string | The settings group on which field updates will occur. | 
updateFields(changedRow)
- Source:
 
    After the row is dropped, update the table fields.
    Parameters:
| Name | Type | Description | 
|---|---|---|
changedRow | 
            
            HTMLElement | DOM object for the row that was just dropped. |