2013-04-01 11:59:56 -04:00
( function ( $ , document ) {
2014-03-11 22:11:01 -04:00
function getRecommendationHtml ( recommendation ) {
2013-04-01 11:59:56 -04:00
2014-03-11 22:11:01 -04:00
var html = '' ;
2014-01-30 16:23:54 -05:00
2014-03-11 22:11:01 -04:00
var title = '' ;
2014-05-11 01:11:53 -04:00
2014-03-11 22:11:01 -04:00
switch ( recommendation . RecommendationType ) {
2014-05-11 01:11:53 -04:00
2014-03-11 22:11:01 -04:00
case 'SimilarToRecentlyPlayed' :
title = 'Because you watched ' + recommendation . BaselineItemName ;
break ;
case 'SimilarToLikedItem' :
title = 'Because you like ' + recommendation . BaselineItemName ;
break ;
case 'HasDirectorFromRecentlyPlayed' :
case 'HasLikedDirector' :
title = 'Directed by ' + recommendation . BaselineItemName ;
break ;
case 'HasActorFromRecentlyPlayed' :
case 'HasLikedActor' :
title = 'Starring ' + recommendation . BaselineItemName ;
break ;
}
2014-05-11 01:11:53 -04:00
2014-03-11 22:11:01 -04:00
html += '<h1 class="listHeader">' + title + '</h1>' ;
2013-04-01 11:59:56 -04:00
2014-03-11 22:11:01 -04:00
html += '<div>' ;
html += LibraryBrowser . getPosterViewHtml ( {
2014-04-03 18:50:04 -04:00
items : recommendation . Items
2013-04-01 11:59:56 -04:00
} ) ;
2014-03-11 22:11:01 -04:00
html += '</div>' ;
return html ;
}
2014-05-11 01:11:53 -04:00
2014-03-11 22:11:01 -04:00
$ ( document ) . on ( 'pagebeforeshow' , "#moviesRecommendedPage" , function ( ) {
2013-04-01 11:59:56 -04:00
2014-05-01 22:54:33 -04:00
var parentId = LibraryMenu . getTopParentId ( ) ;
2014-03-11 22:11:01 -04:00
var screenWidth = $ ( window ) . width ( ) ;
2013-04-01 11:59:56 -04:00
2014-03-11 22:11:01 -04:00
var page = this ;
2014-05-11 01:11:53 -04:00
2014-03-11 22:11:01 -04:00
var options = {
2013-04-01 11:59:56 -04:00
SortBy : "DatePlayed" ,
SortOrder : "Descending" ,
IncludeItemTypes : "Movie" ,
Filters : "IsResumable" ,
2014-05-05 01:05:43 -04:00
Limit : screenWidth >= 1920 ? 5 : ( screenWidth >= 1440 ? 4 : 3 ) ,
2013-04-01 11:59:56 -04:00
Recursive : true ,
2014-04-26 23:42:05 -04:00
Fields : "PrimaryImageAspectRatio" ,
2014-05-01 22:54:33 -04:00
CollapseBoxSetItems : false ,
ParentId : parentId
2013-04-01 11:59:56 -04:00
} ;
ApiClient . getItems ( Dashboard . getCurrentUserId ( ) , options ) . done ( function ( result ) {
if ( result . Items . length ) {
$ ( '#resumableSection' , page ) . show ( ) ;
} else {
$ ( '#resumableSection' , page ) . hide ( ) ;
}
2014-05-11 01:11:53 -04:00
2013-04-01 22:14:37 -07:00
$ ( '#resumableItems' , page ) . html ( LibraryBrowser . getPosterViewHtml ( {
2013-04-01 11:59:56 -04:00
items : result . Items ,
2013-12-22 12:16:24 -05:00
preferBackdrop : true ,
shape : 'backdrop' ,
2014-05-09 15:43:06 -04:00
overlayText : screenWidth >= 600 ,
2013-12-22 12:16:24 -05:00
showTitle : true
2014-05-11 01:11:53 -04:00
2014-03-16 00:23:58 -04:00
} ) ) . createPosterItemMenus ( ) ;
2013-04-01 11:59:56 -04:00
} ) ;
2014-03-11 22:11:01 -04:00
var url = ApiClient . getUrl ( "Movies/Recommendations" , {
2014-05-11 01:11:53 -04:00
2014-03-11 22:11:01 -04:00
userId : Dashboard . getCurrentUserId ( ) ,
categoryLimit : screenWidth >= 1200 ? 6 : 3 ,
2014-05-05 01:05:43 -04:00
itemLimit : screenWidth >= 1920 ? 10 : ( screenWidth >= 1440 ? 8 : 6 ) ,
2014-05-01 22:54:33 -04:00
Fields : "PrimaryImageAspectRatio" ,
ParentId : parentId
2014-03-11 22:11:01 -04:00
} ) ;
2013-04-05 00:15:00 -04:00
2014-05-11 01:11:53 -04:00
$ . getJSON ( url ) . done ( function ( recommendations ) {
2013-04-05 00:15:00 -04:00
2014-03-11 22:11:01 -04:00
if ( ! recommendations . length ) {
2013-04-05 00:15:00 -04:00
2014-03-11 22:11:01 -04:00
$ ( '.recommendations' , page ) . html ( '<br/><p>No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.</p>' ) ;
return ;
2013-04-05 00:15:00 -04:00
}
2014-03-11 22:11:01 -04:00
var html = recommendations . map ( getRecommendationHtml ) . join ( '' ) ;
2013-04-05 00:15:00 -04:00
2014-03-16 00:23:58 -04:00
$ ( '.recommendations' , page ) . html ( html ) . createPosterItemMenus ( ) ;
2013-04-05 00:15:00 -04:00
} ) ;
2014-05-11 01:11:53 -04:00
2013-04-01 11:59:56 -04:00
} ) ;
} ) ( jQuery , document ) ;