@ -14,6 +14,7 @@ define([
, "jquery-ui"
, "jquery-event-drag"
, "jquery-clone-styles"
, "datatables"
, "dt-scroller"
@ -293,21 +294,22 @@ _
List . _ _super _ _ . initialize . apply ( this , arguments ) ;
//this.$el.find("table:first").html("<tr><td><h1>" + this.type + "</h1></td></tr>");
this . $el . find ( "tr" ) . draggable ( ) ;
this . $el . find ( "td" ) . draggable ( ) ;
if ( that . options . type === "playlist" ) {
if ( that . options . type === "playlist" && that . options . collection ) {
that . options . collection . fetch ( ) ;
that . options . collection . on ( "add" , function _ _fnPlaylistAddRow ( model ) {
if ( that . dataTable ) {
that . dataTable . fnAddData ( model . toJSON ( ) , that . $el . is ( ":visible" ) ) ;
}
} ) ;
}
return this ;
}
// FIXME: Sometimes the parent element's size is 0 and resizing fails.
, resize : function ( ) {
var that = this
, parentEl = that . options . parentEl //that.$el.parent()
, parentEl = that . options . parentEl || that . $el . parent ( )
, parentWidth = parentEl . innerWidth ( )
, parentHeight = parentEl . innerHeight ( )
;
@ -325,9 +327,7 @@ console.log(parentWidth, that.$el.innerWidth(), parentHeight, that.$el, parentEl
, render : function ( ) {
var that = this
, initialHeight = that . $el . innerHeight ( ) - 20
;
this . dataTable = this . $el . find ( "table:first" ) . dataTable ( {
, dataTableOpts = {
sScrollY : initialHeight + "px"
, sDom : "RTrtS"
, oColReorder : {
@ -346,9 +346,6 @@ console.log(parentWidth, that.$el.innerWidth(), parentHeight, that.$el, parentEl
//, bProcessing: true
//, bServerSide: true
// Default sorting order
, aaSorting : [ [ 2 , "asc" ] , [ 6 , "asc" ] , [ 3 , "asc" ] , [ 5 , "asc" ] , [ 4 , "asc" ] ]
, aaData : that . collection . toJSON ( )
, aoColumns : that . tableSchema
@ -382,6 +379,8 @@ console.log(parentWidth, that.$el.innerWidth(), parentHeight, that.$el, parentEl
$ ( this )
. closest ( "tr" )
. clone ( )
. css ( $ ( this ) . getStyleObject ( ) )
. addClass ( "selected" )
)
. parent ( )
;
@ -403,8 +402,11 @@ console.log(parentWidth, that.$el.innerWidth(), parentHeight, that.$el, parentEl
//var rowModel = that.collection.get(aData.id);
//view.rows.push(new DtRowView({id: aData.id, el: nRow, model: rowModel}));
}
/ *
, fnServerData : function ( sSource , aoData , fnCallback , settings ) {
console . log ( sSource , aoData , fnCallback , settings ) ;
}
/ *
// function used to populate the DataTable with the current
// content of the collection
var populateTable = function ( )
@ -440,7 +442,25 @@ console.log(parentWidth, that.$el.innerWidth(), parentHeight, that.$el, parentEl
}
}
* /
} ) ;
}
;
// Default sorting order
if ( that . options . type !== "playlist" ) {
dataTableOpts . aaSorting = [ [ 2 , "asc" ] , [ 6 , "asc" ] , [ 3 , "asc" ] , [ 5 , "asc" ] , [ 4 , "asc" ] ] ;
} else {
var schemaLastItem = ( that . tableSchema . length - 1 ) ;
dataTableOpts . aaSorting = [ [ schemaLastItem , "asc" ] ] ;
that . tableSchema [ schemaLastItem ] . mData = "order" ;
for ( var i = 0 ; i < schemaLastItem ; i ++ ) {
that . tableSchema [ i ] . bSortable = false ;
}
dataTableOpts . aoColumns = that . tableSchema ;
}
this . dataTable = this . $el . find ( "table:first" ) . dataTable ( dataTableOpts ) ;
}