2013-04-03 21:21:46 -07:00
( function ( $ , document ) {
2013-04-29 19:00:42 -07:00
// The base query options
var query = {
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
SortBy : "SortName" ,
SortOrder : "Ascending" ,
IncludeItemTypes : "BoxSet" ,
Recursive : true ,
2014-03-11 19:11:01 -07:00
Fields : "PrimaryImageAspectRatio" ,
2013-04-29 19:00:42 -07:00
StartIndex : 0
} ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
function reloadItems ( page ) {
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
Dashboard . showLoadingMsg ( ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
ApiClient . getItems ( Dashboard . getCurrentUserId ( ) , query ) . done ( function ( result ) {
2013-04-03 21:21:46 -07:00
2013-05-17 12:18:54 -07:00
// Scroll back up so they can see the results from the beginning
$ ( document ) . scrollTop ( 0 ) ;
2013-04-29 19:00:42 -07:00
var html = '' ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
$ ( '.listTopPaging' , page ) . html ( LibraryBrowser . getPagingHtml ( query , result . TotalRecordCount , true ) ) . trigger ( 'create' ) ;
2013-04-03 21:21:46 -07:00
2013-10-18 09:09:47 -07:00
updateFilterControls ( page ) ;
2014-03-07 11:48:55 -07:00
if ( result . TotalRecordCount ) {
var checkSortOption = $ ( '.radioSortBy:checked' , page ) ;
$ ( '.viewSummary' , page ) . html ( LibraryBrowser . getViewSummaryHtml ( query , checkSortOption ) ) . trigger ( 'create' ) ;
html = LibraryBrowser . getPosterViewHtml ( {
items : result . Items ,
shape : "portrait" ,
context : 'movies' ,
useAverageAspectRatio : true ,
showTitle : true ,
centerText : true
} ) ;
html += LibraryBrowser . getPagingHtml ( query , result . TotalRecordCount ) ;
} else {
html += '<p>Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.</p>' ;
}
2013-04-11 08:43:57 -07:00
2014-03-15 21:23:58 -07:00
$ ( '#items' , page ) . html ( html ) . trigger ( 'create' ) . createPosterItemMenus ( ) ;
2013-04-11 08:43:57 -07:00
2013-04-29 19:00:42 -07:00
$ ( '.btnNextPage' , page ) . on ( 'click' , function ( ) {
query . StartIndex += query . Limit ;
reloadItems ( page ) ;
} ) ;
2013-04-15 15:03:05 -07:00
2013-04-29 19:00:42 -07:00
$ ( '.btnPreviousPage' , page ) . on ( 'click' , function ( ) {
query . StartIndex -= query . Limit ;
reloadItems ( page ) ;
} ) ;
2013-04-15 15:03:05 -07:00
2013-04-29 19:00:42 -07:00
$ ( '.selectPageSize' , page ) . on ( 'change' , function ( ) {
query . Limit = parseInt ( this . value ) ;
query . StartIndex = 0 ;
reloadItems ( page ) ;
} ) ;
2013-04-27 15:52:41 -07:00
2013-10-18 09:09:47 -07:00
LibraryBrowser . saveQueryValues ( 'boxsets' , query ) ;
2014-03-07 12:31:05 -07:00
Dashboard . getCurrentUser ( ) . done ( function ( user ) {
if ( user . Configuration . IsAdministrator ) {
$ ( '#btnNewCollection' , page ) . removeClass ( 'hide' ) ;
} else {
$ ( '#btnNewCollection' , page ) . addClass ( 'hide' ) ;
}
} ) ;
2013-04-29 19:00:42 -07:00
Dashboard . hideLoadingMsg ( ) ;
} ) ;
}
2013-04-03 21:21:46 -07:00
2013-10-18 09:09:47 -07:00
function updateFilterControls ( page ) {
// Reset form values using the last used query
$ ( '.radioSortBy' , page ) . each ( function ( ) {
this . checked = ( query . SortBy || '' ) . toLowerCase ( ) == this . getAttribute ( 'data-sortby' ) . toLowerCase ( ) ;
} ) . checkboxradio ( 'refresh' ) ;
$ ( '.radioSortOrder' , page ) . each ( function ( ) {
this . checked = ( query . SortOrder || '' ) . toLowerCase ( ) == this . getAttribute ( 'data-sortorder' ) . toLowerCase ( ) ;
} ) . checkboxradio ( 'refresh' ) ;
$ ( '.chkStandardFilter' , page ) . each ( function ( ) {
var filters = "," + ( query . Filters || "" ) ;
var filterName = this . getAttribute ( 'data-filter' ) ;
this . checked = filters . indexOf ( ',' + filterName ) != - 1 ;
} ) . checkboxradio ( 'refresh' ) ;
$ ( '#chkTrailer' , page ) . checked ( query . HasTrailer == true ) . checkboxradio ( 'refresh' ) ;
$ ( '#chkThemeSong' , page ) . checked ( query . HasThemeSong == true ) . checkboxradio ( 'refresh' ) ;
$ ( '#chkThemeVideo' , page ) . checked ( query . HasThemeVideo == true ) . checkboxradio ( 'refresh' ) ;
$ ( '.alphabetPicker' , page ) . alphaValue ( query . NameStartsWithOrGreater ) ;
}
2014-03-07 08:53:23 -07:00
function showNewCollectionPanel ( page ) {
$ ( '#newCollectionPanel' , page ) . panel ( 'toggle' ) ;
2014-03-07 11:48:55 -07:00
$ ( '#txtNewCollectionName' , page ) . val ( '' ) . focus ( ) ;
2014-03-07 08:53:23 -07:00
}
2013-04-29 19:00:42 -07:00
$ ( document ) . on ( 'pageinit' , "#boxsetsPage" , function ( ) {
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
var page = this ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
$ ( '.radioSortBy' , this ) . on ( 'click' , function ( ) {
query . SortBy = this . getAttribute ( 'data-sortby' ) ;
reloadItems ( page ) ;
} ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
$ ( '.radioSortOrder' , this ) . on ( 'click' , function ( ) {
query . SortOrder = this . getAttribute ( 'data-sortorder' ) ;
reloadItems ( page ) ;
} ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
$ ( '.chkStandardFilter' , this ) . on ( 'change' , function ( ) {
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
var filterName = this . getAttribute ( 'data-filter' ) ;
var filters = query . Filters || "" ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
filters = ( ',' + filters ) . replace ( ',' + filterName , '' ) . substring ( 1 ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
if ( this . checked ) {
filters = filters ? ( filters + ',' + filterName ) : filterName ;
}
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
query . StartIndex = 0 ;
query . Filters = filters ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
reloadItems ( page ) ;
} ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
$ ( '#chkTrailer' , this ) . on ( 'change' , function ( ) {
2013-04-06 11:57:38 -07:00
2013-04-29 19:00:42 -07:00
query . StartIndex = 0 ;
query . HasTrailer = this . checked ? true : null ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
reloadItems ( page ) ;
} ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
$ ( '#chkThemeSong' , this ) . on ( 'change' , function ( ) {
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
query . StartIndex = 0 ;
query . HasThemeSong = this . checked ? true : null ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
reloadItems ( page ) ;
} ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
$ ( '#chkThemeVideo' , this ) . on ( 'change' , function ( ) {
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
query . StartIndex = 0 ;
query . HasThemeVideo = this . checked ? true : null ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
reloadItems ( page ) ;
} ) ;
2013-04-03 21:21:46 -07:00
2013-05-16 12:00:42 -07:00
$ ( '.alphabetPicker' , this ) . on ( 'alphaselect' , function ( e , character ) {
2013-05-16 20:24:41 -07:00
query . NameStartsWithOrGreater = character ;
2013-05-17 11:05:49 -07:00
query . StartIndex = 0 ;
2013-05-16 12:00:42 -07:00
reloadItems ( page ) ;
} ) . on ( 'alphaclear' , function ( e ) {
2013-05-16 20:24:41 -07:00
query . NameStartsWithOrGreater = '' ;
2013-05-16 12:00:42 -07:00
reloadItems ( page ) ;
} ) ;
2014-03-07 08:53:23 -07:00
$ ( '#btnNewCollection' , page ) . on ( 'click' , function ( ) {
showNewCollectionPanel ( page ) ;
} ) ;
2013-04-29 19:00:42 -07:00
} ) . on ( 'pagebeforeshow' , "#boxsetsPage" , function ( ) {
2013-04-03 21:21:46 -07:00
2013-05-15 12:40:47 -07:00
var limit = LibraryBrowser . getDefaultPageSize ( ) ;
// If the default page size has changed, the start index will have to be reset
if ( limit != query . Limit ) {
query . Limit = limit ;
query . StartIndex = 0 ;
}
2013-10-17 13:59:46 -07:00
LibraryBrowser . loadSavedQueryValues ( 'boxsets' , query ) ;
2013-04-29 19:00:42 -07:00
reloadItems ( this ) ;
2013-04-03 21:21:46 -07:00
2013-04-29 19:00:42 -07:00
} ) . on ( 'pageshow' , "#boxsetsPage" , function ( ) {
2013-04-03 21:21:46 -07:00
2013-10-18 09:09:47 -07:00
updateFilterControls ( this ) ;
2013-04-29 19:00:42 -07:00
} ) ;
2013-04-03 21:21:46 -07:00
2014-03-07 08:53:23 -07:00
window . BoxSetsPage = {
onNewCollectionSubmit : function ( ) {
Dashboard . showLoadingMsg ( ) ;
var page = $ ( this ) . parents ( '.page' ) ;
var url = ApiClient . getUrl ( "Collections" , {
Name : $ ( '#txtNewCollectionName' , page ) . val ( ) ,
IsLocked : ! $ ( '#chkEnableInternetMetadata' , page ) . checked ( )
} ) ;
$ . ajax ( {
type : "POST" ,
url : url
} ) . done ( function ( ) {
Dashboard . hideLoadingMsg ( ) ;
$ ( '#newCollectionPanel' , page ) . panel ( 'toggle' ) ;
reloadItems ( page ) ;
} ) ;
2014-03-05 22:17:13 -07:00
return false ;
}
} ;
2013-04-03 21:21:46 -07:00
} ) ( jQuery , document ) ;