/* Click on row, show details */
$ ( document ) . on ( 'click' , '.seriesTable a, .dataTable a' , function ( event ) {
if ( $ ( this ) . attr ( 'data-ajax' ) === "true" || $ ( this ) . attr ( 'onclick' ) )
return ;
event . preventDefault ( ) ;
var link = $ ( this ) . attr ( 'href' ) ;
if ( $ ( this ) . attr ( 'target' ) === '_blank' )
window . open ( link ) ;
else
window . location = link ;
event . stopPropegation ( ) ;
} ) ;
$ ( '.seriesTable .data-row td:not(:last-child)' ) . live ( 'click' , function ( ) {
if ( $ ( this ) . closest ( 'table' ) . hasClass ( 'no-details' ) )
return ;
$ ( this ) . parent ( 'tr' ) . next ( '.detail-row' ) . toggle ( ) ;
} ) ;
function grid _onError ( e ) {
//Suppress the alert
e . preventDefault ( ) ;
}
//Perform the details opening
var oTable ;
$ ( '.dataTable td:not(:last-child)' ) . live ( 'click' , function ( ) {
if ( $ ( this ) . closest ( 'table' ) . hasClass ( 'no-details' ) )
return ;
var nTr = this . parentNode ;
if ( $ ( nTr ) . hasClass ( 'details-opened' ) ) {
oTable . fnClose ( nTr ) ;
$ ( nTr ) . removeClass ( 'details-opened' ) ;
}
else {
oTable . fnOpen ( nTr , fnFormatDetails ( nTr ) , 'Details' ) ;
$ ( nTr ) . addClass ( 'details-opened' ) ;
}
} ) ;
//Datatables format display details
function fnFormatDetails ( nTr ) {
var aData = oTable . fnGetData ( nTr ) ;
return aData [ "Details" ] ;
}
//Reload/Redraw the grid from the server (bServerSide == true)
function redrawGrid ( ) {
oTable . fnDraw ( ) ;
}
//Force reload using Ajax Binding (bServerSide == false)
function reloadGrid ( ) {
oTable . fnReloadAjax ( ) ;
}
//SignalR
$ ( function ( ) {
// Proxy created on the fly
var episodeHub = $ . connection . episodeHub ;
// Declare a function on the chat hub so the server can invoke it
episodeHub . updatedStatus = function ( data ) {
var row = $ ( '[data-episode-id="' + data . EpisodeId + '"]' ) ;
if ( row . length == 0 )
return ;
var statusElement = $ ( row ) . find ( 'i.statusImage' ) ;
if ( statusElement . length == 0 )
return ;
statusElement . attr ( 'data-status' , data . EpisodeStatus ) ;
if ( data . EpisodeStatus != "Missing" ) {
statusElement . parent ( 'td' ) . removeClass ( 'episodeMissing' ) ;
}
if ( data . Quality != null ) {
var qualityColumn = $ ( row ) . find ( '.episodeQuality' ) ;
if ( qualityColumn )
qualityColumn . text ( data . Quality ) ;
}
} ;
// Start the connection
$ . connection . hub . start ( { transport : 'longPolling' } ) ;
} ) ;