/*jslint laxbreak:true */ /*jslint laxcomma:true */ /*jslint loopfunc:true */ /*jslint strict:true */ /*jslint browser:true */ /*jslint devel:true */ define([ "underscore" , "jquery" , "backbone" , "bootstrap" , "text!../../templates/view-list.html" , "jquery-ui" , "jquery-event-drag" , "datatables" , "dt-scroller" , "dt-tabletools" , "dt-colreorder" ] , function ( _ , $ , Backbone , Bootstrap , tmplListView ) { "use strict"; var List = Backbone.View.extend({ options: { type: "playlist" } , dataTable: null , tableSchemaDefaults: { } , tableSchema: [ { // Now playing column mData: null , sTitle: "" , sDefaultContent: "" , bSortable: false , bSearchable: false , sWidth: "15px" , fnCreatedCell: function(nTd, sData, oData, iRow, iCol) { var span = document.createElement("span"); nTd.appendChild(span); } } , { mData: "dmap_itemname" , sTitle: "Title" , sDefaultContent: "Unknown" } , { mData: "daap_songartist" , sTitle: "Artist" , sDefaultContent: "Unknown" , aDataSort: [2, 6, 3, 5, 4] } , { mData: "daap_songalbum" , sTitle: "Album" , sDefaultContent: "Unknown" , aDataSort: [3, 6, 5, 4] } , { mData: "daap_songtracknumber" , sTitle: "Track" , sClass: "center" , sDefaultContent: "" /*, sType: "numeric"*/ , sWidth: "75px" , mRender: function(data, type, full) { if (data === "") { return ""; } else if (full.daap_songtrackcount) { return data + " of " + full.daap_songtrackcount; } else { return data; } } } , { mData: "daap_songdiscnumber" , sTitle: "Disc" , sClass: "center" , sDefaultContent: "Unknown" /*, sType: "numeric"*/ , sWidth: "50px" , mRender: function(data, type, full) { if (data === "") { return ""; } else if (full.daap_songdisccount) { return data + " of " + full.daap_songdisccount; } else { return data; } } } , { mData: "daap_songyear" , sTitle: "Year" , sClass: "center" , sDefaultContent: "" , sType: "numeric" , sWidth: "50px" } , { mData: "daap_songgenre" , sTitle: "Genre" , sClass: "center" , sDefaultContent: "" , bVisible: false } , { mData: "daap_songtime" , sTitle: "Time" , sClass: "center" , sDefaultContent: "" /*, sType: "numeric"*/ , sWidth: "75px" , bVisible: true , mRender: function(data, type, full) { if (data !== "") { return songMSTimeFormat(data); } else { return data; } } } , { mData: "daap_songuserrating" , sTitle: "Rating" , sClass: "center" , sType: "numeric" , sDefaultContent: "" , bVisible: false } , { mData: "dmap_itemid" , sTitle: "ID" , sClass: "center" , sDefaultContent: "" , bVisible: false } ] , detailsFields: [ { title: "Title" , field: "dmap_itemname" } , { title: "Artist" , field: "daap_songartist" } , { title: "Album" , field: "daap_songalbum" } , { title: "Composer" , field: "daap_songcomposer" } , { title: "Genre" , field: "daap_songgenre" } , { title: "Track Number" , field: "daap_songtracknumber" , render: function(data, full) { var value = data; if (data === "") { value = "Unknown"; } if (typeof full.daap_songtrackcount !== "undefined") { value += " of " + full.daap_songtrackcount; } return value; } } , { title: "Disc Number" , field: "daap_songdiscnumber" , render: function(data, full) { var value = data; if (typeof full.daap_songdisccount !== "undefined") { value += " of " + full.daap_songdisccount; } return value; } } , { title: "Year" , field: "daap_songyear" } , { title: "Rating" , field: "daap_songuserrating" } , { title: "Compilation" , field: "daap_songcompilation" , defaults: "No" , render: function (data, full) { return (data == 1 ? "Yes" : "No"); } } , { title: "Duration" , field: "daap_songtime" , render: function (data, full) { return songMSTimeFormat(data); } } , { title: "BPM" , field: "daap_songbeatsperminute" } , { title: "Bit Rate" , field: "daap_songbitrate" , render: function (data, full) { if (data > 0) { data += "kbps"; } return data; } } , { title: "Sample Rate" , field: "daap_songsamplerate" , render: function (data, full) { if (data !== "") { if (data > 1000) { data = (data / 1000) + "k"; } data += "Hz"; } return data; } } , { title: "Date added" , field: "daap_songdateadded" } ] , tableSort: [] , initialize: function (options) { _.bindAll(this , "resize" , "render" , "show" , "hide" ); var that = this ; if (options && options.el) { $(options.el).html(tmplListView); } else { options = options || {}; options.el = document.createElement("div"); options.el.id = "__view-playlist"; options.el.className = "playlist-view-container"; $(options.el).html(tmplListView); this.el = options.el; this.$el = $(this.el); } List.__super__.initialize.apply(this, arguments); //this.$el.find("table:first").html("