mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
c79be9075a
77 changed files with 1575 additions and 1480 deletions
|
@ -17,6 +17,11 @@
|
||||||
<form class="advancedServerSettingsForm">
|
<form class="advancedServerSettingsForm">
|
||||||
|
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
|
<li>
|
||||||
|
<label for="txtServerName">Friendly server name:</label>
|
||||||
|
<input id="txtServerName" data-mini="true" />
|
||||||
|
<div class="fieldDescription">This name will be used to identify this server. If left blank, the computer name will be used.</div>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label for="txtPortNumber">Http server port number: </label>
|
<label for="txtPortNumber">Http server port number: </label>
|
||||||
<input type="number" id="txtPortNumber" name="txtPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
<input type="number" id="txtPortNumber" name="txtPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
||||||
|
@ -25,16 +30,16 @@
|
||||||
<label for="txtWebSocketPortNumber">Web socket port number: </label>
|
<label for="txtWebSocketPortNumber">Web socket port number: </label>
|
||||||
<input type="number" id="txtWebSocketPortNumber" name="txtWebSocketPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
<input type="number" id="txtWebSocketPortNumber" name="txtWebSocketPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<label for="txtDdns">External DDNS:</label>
|
|
||||||
<input id="txtDdns" data-mini="true" />
|
|
||||||
<div class="fieldDescription">If you have a dynamic DNS enter it here. Media Browser apps will use it when connecting remotely.</div>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<label for="chkEnableUpnp">Enable UPnP</label>
|
<label for="chkEnableUpnp">Enable UPnP</label>
|
||||||
<input type="checkbox" id="chkEnableUpnp" data-mini="true" />
|
<input type="checkbox" id="chkEnableUpnp" data-mini="true" />
|
||||||
<div class="fieldDescription">UPnP allows automated router configuration for remote access. This may not work with some router models.</div>
|
<div class="fieldDescription">UPnP allows automated router configuration for remote access. This may not work with some router models.</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<label for="txtDdns">External DDNS:</label>
|
||||||
|
<input id="txtDdns" data-mini="true" />
|
||||||
|
<div class="fieldDescription">If you have a dynamic DNS enter it here. Media Browser apps will use it when connecting remotely.</div>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -143,6 +143,14 @@
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
|
<li>
|
||||||
|
<label for="copyOrMoveFile">Transfer Method</label>
|
||||||
|
<select id="copyOrMoveFile" data-mini="true">
|
||||||
|
<option value="true">Copy</option>
|
||||||
|
<option value="false">Move</option>
|
||||||
|
</select>
|
||||||
|
<div class="fieldDescription">Copy or move files from the watch folder</div>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="chkOverwriteExistingEpisodes" name="chkOverwriteExistingEpisodes" />
|
<input type="checkbox" id="chkOverwriteExistingEpisodes" name="chkOverwriteExistingEpisodes" />
|
||||||
<label for="chkOverwriteExistingEpisodes">Overwrite existing episodes</label>
|
<label for="chkOverwriteExistingEpisodes">Overwrite existing episodes</label>
|
||||||
|
@ -153,7 +161,7 @@
|
||||||
<div class="fieldDescription">Separate with ;. For example: .nfo;.txt</div>
|
<div class="fieldDescription">Separate with ;. For example: .nfo;.txt</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="chkDeleteEmptyFolders" name="chkDeleteEmptyFolders" />
|
<input type="checkbox" id="chkDeleteEmptyFolders" name="chkDeleteEmptyFolders" data-mini="true" />
|
||||||
<label for="chkDeleteEmptyFolders">Delete empty folders after organizing</label>
|
<label for="chkDeleteEmptyFolders">Delete empty folders after organizing</label>
|
||||||
<div class="fieldDescription">Enable this to keep the download directory clean.</div>
|
<div class="fieldDescription">Enable this to keep the download directory clean.</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -4,17 +4,7 @@
|
||||||
<title>Media Browser</title>
|
<title>Media Browser</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="boxsetsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
<div id="boxsetsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="boxsets">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
|
||||||
<a href="movies.html">Movies</a>
|
|
||||||
<a href="boxsets.html" class="ui-btn-active">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
|
||||||
<a href="moviegenres.html">Genres</a>
|
|
||||||
<a href="moviepeople.html">People</a>
|
|
||||||
<a href="moviestudios.html">Studios</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="alphabetPicker">
|
<div class="alphabetPicker">
|
||||||
</div>
|
</div>
|
||||||
|
@ -26,17 +16,41 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
|
<button id="btnNewCollection" data-mini="true" data-icon="plus" data-inline="true" class="hide">New</button>
|
||||||
<div class="viewSummary"></div>
|
<div class="viewSummary"></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div data-role="panel" id="newCollectionPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
|
<form class="newCollectionForm">
|
||||||
|
|
||||||
|
<h3>New Collection</h3>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="txtNewCollectionName">Name:</label>
|
||||||
|
<input type="text" id="txtNewCollectionName" required="required" />
|
||||||
|
<div class="fieldDescription">Example: Star Wars Collection</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="chkEnableInternetMetadata">Search the internet for artwork and metadata</label>
|
||||||
|
<input type="checkbox" id="chkEnableInternetMetadata" data-mini="true" />
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<p>
|
||||||
|
<button id="btnSubmitNewCollection" type="submit" data-icon="plus" data-mini="true" data-theme="b">Create</button>
|
||||||
|
</p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
|
|
||||||
<form>
|
<form>
|
||||||
<div id="sortpanel">
|
<div id="sortpanel">
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Sort By:
|
||||||
<h3>Sort By:</h3>
|
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
||||||
|
@ -50,8 +64,7 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Sort Order:
|
||||||
<h3>Sort Order:</h3>
|
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
||||||
|
@ -66,8 +79,7 @@
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Filters:
|
||||||
<h3>Filters:</h3>
|
|
||||||
</legend>
|
</legend>
|
||||||
<input class="chkStandardFilter" type="checkbox" name="chkIsFavorite" id="chkIsFavorite" data-filter="IsFavorite" data-mini="true">
|
<input class="chkStandardFilter" type="checkbox" name="chkIsFavorite" id="chkIsFavorite" data-filter="IsFavorite" data-mini="true">
|
||||||
<label for="chkIsFavorite">Favorite</label>
|
<label for="chkIsFavorite">Favorite</label>
|
||||||
|
@ -80,8 +92,7 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Features:
|
||||||
<strong>Features:</strong>
|
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer" data-mini="true">
|
<input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer" data-mini="true">
|
||||||
|
@ -97,6 +108,10 @@
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('.newCollectionForm').off('submit', BoxSetsPage.onNewCollectionSubmit).on('submit', BoxSetsPage.onNewCollectionSubmit);
|
||||||
|
</script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -7,12 +7,16 @@
|
||||||
padding-top: 48px !important;
|
padding-top: 48px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.libraryPage:not(.metadataEditorPage):not(#indexPage):not(#boxsetsPage) {
|
||||||
|
padding-top: 91px !important;
|
||||||
|
}
|
||||||
|
|
||||||
.ui-panel fieldset + fieldset {
|
.ui-panel fieldset + fieldset {
|
||||||
margin-top: 2em;
|
margin-top: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerArrowImage {
|
.headerArrowImage {
|
||||||
height: 24px;
|
height: 20px;
|
||||||
margin-left: .5em;
|
margin-left: .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +28,8 @@
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
top: 0;
|
top: 0;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
|
background: #181818;
|
||||||
|
border-bottom: 1px solid #080808;
|
||||||
}
|
}
|
||||||
|
|
||||||
.viewMenuLink {
|
.viewMenuLink {
|
||||||
|
@ -111,29 +117,65 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav {
|
.libraryViewNav {
|
||||||
text-align: center;
|
height: 42px;
|
||||||
background-image: linear-gradient(#404040,#222);
|
overflow: hidden;
|
||||||
border-bottom: 1px solid #111;
|
border-bottom: 1px solid #333;
|
||||||
border-top: 1px solid #000;
|
position: fixed;
|
||||||
font-family: sans-serif, Arial;
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 48px;
|
||||||
|
z-index: 1000;
|
||||||
|
background-color: #252525;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav .ui-btn-active {
|
.libraryViewNavInner {
|
||||||
border: 0!important;
|
text-align: center;
|
||||||
background-color: #38c;
|
font-family: sans-serif, Arial;
|
||||||
|
font-size: 14px;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 0 0 0;
|
||||||
|
overflow-x: auto;
|
||||||
|
height: 55px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
.libraryViewNav .ui-btn-active .libraryViewNavLinkContent {
|
||||||
|
border-bottom-color: #38c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.libraryViewNav a {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 12px 0 0;
|
||||||
|
color: #eee!important;
|
||||||
|
text-decoration: none;
|
||||||
|
margin: 0 0;
|
||||||
|
position: relative;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.libraryViewNav a:hover {
|
||||||
|
color: #bbb!important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav a {
|
.libraryViewNav a:after {
|
||||||
display: inline-block;
|
content: "|";
|
||||||
padding: .6em 1em;
|
color: #444;
|
||||||
color: #eee!important;
|
font-size: 20px;
|
||||||
text-decoration: none;
|
font-weight: normal !important;
|
||||||
margin: 1px 0;
|
position: absolute;
|
||||||
|
top: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav a:hover {
|
.libraryViewNav a:last-child::after {
|
||||||
color: #bbb!important;
|
content: "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.libraryViewNavLinkContent {
|
||||||
|
border-bottom: 6px solid transparent;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 1em 6px;
|
||||||
|
margin: 0 -2px 0 -1px;
|
||||||
|
}
|
||||||
|
|
||||||
.ehsContent {
|
.ehsContent {
|
||||||
max-width: 620px;
|
max-width: 620px;
|
||||||
|
@ -609,13 +651,6 @@ a.itemTag:hover {
|
||||||
height: 7px;
|
height: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width: 550px) {
|
|
||||||
|
|
||||||
.desktopViewMenuLink {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media all and (min-width: 600px) {
|
@media all and (min-width: 600px) {
|
||||||
.inlineDetailSection:not(.hide) {
|
.inlineDetailSection:not(.hide) {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -627,22 +662,26 @@ a.itemTag:hover {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width: 750px) {
|
@media all and (min-width: 800px) {
|
||||||
|
|
||||||
.libraryViewNav {
|
.libraryMenuButton {
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.desktopHomeLink {
|
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-width: 750px) {
|
@media all and (max-width: 800px) {
|
||||||
|
|
||||||
.libraryMenuButton {
|
.desktopHomeLink {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.desktopViewMenuLink {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.libraryViewNavInner {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width: 750px) {
|
@media all and (max-width: 750px) {
|
||||||
|
@ -776,6 +815,10 @@ a.itemTag:hover {
|
||||||
max-width: 950px;
|
max-width: 950px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.detailPageContent {
|
||||||
|
max-width: 930px;
|
||||||
|
}
|
||||||
|
|
||||||
.primaryDetailPageContent {
|
.primaryDetailPageContent {
|
||||||
max-width: 850px;
|
max-width: 850px;
|
||||||
}
|
}
|
||||||
|
@ -788,9 +831,6 @@ a.itemTag:hover {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-width: 1920px) {
|
|
||||||
}
|
|
||||||
|
|
||||||
.detailPageParentLink {
|
.detailPageParentLink {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
@ -927,7 +967,7 @@ a.itemTag:hover {
|
||||||
border: 0;
|
border: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
height: 14px;
|
height: 14px;
|
||||||
border: 1px solid #222;
|
border: 0 solid #222;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
width: 50px;
|
width: 50px;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
|
|
|
@ -329,30 +329,43 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.popupIdentifyForm, .identificationSearchResults {
|
.popupIdentify form, .identificationSearchResults {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collectionItemSearchResults {
|
||||||
|
max-height: 65%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@media all and (min-height: 500px) {
|
@media all and (min-height: 500px) {
|
||||||
|
|
||||||
.popupIdentifyForm, .identificationSearchResults {
|
.popupIdentify form, .identificationSearchResults {
|
||||||
height: 350px;
|
height: 350px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-height: 600px) {
|
@media all and (min-height: 600px) {
|
||||||
|
|
||||||
.popupIdentifyForm, .identificationSearchResults {
|
.popupIdentify form, .identificationSearchResults {
|
||||||
height: 450px;
|
height: 450px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.collectionItemSearchResults {
|
||||||
|
max-height: 70%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-height: 700px) {
|
@media all and (min-height: 700px) {
|
||||||
|
|
||||||
.popupIdentifyForm, .identificationSearchResults {
|
.popupIdentify form, .identificationSearchResults {
|
||||||
height: 550px;
|
height: 550px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.collectionItemSearchResults {
|
||||||
|
max-height: 75%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-height: 800px) {
|
@media all and (min-height: 800px) {
|
||||||
|
@ -361,9 +374,13 @@
|
||||||
height: 600px;
|
height: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popupIdentifyForm, .identificationSearchResults {
|
.popupIdentify form, .identificationSearchResults {
|
||||||
height: 600px;
|
height: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.collectionItemSearchResults {
|
||||||
|
max-height: 80%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-height: 900px) {
|
@media all and (min-height: 900px) {
|
||||||
|
@ -372,7 +389,7 @@
|
||||||
height: 700px;
|
height: 700px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.popupIdentifyForm, .identificationSearchResults {
|
.popupIdentify form, .identificationSearchResults {
|
||||||
height: 700px;
|
height: 700px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.posterItem {
|
.posterItem {
|
||||||
margin: 8px;
|
margin: 4px 5px;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
font-weight: normal!important;
|
font-weight: normal!important;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
@ -35,10 +35,6 @@
|
||||||
padding: 11px 12px 10px;
|
padding: 11px 12px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.smallBackdropPosterItem, .smallPosterItem {
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.posterItemImage {
|
.posterItemImage {
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
@ -107,7 +103,7 @@
|
||||||
.posterItemTextOverlay .posterItemText {
|
.posterItemTextOverlay .posterItemText {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
padding: 0 5px 5px;
|
padding: 0 5px 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.posterItemTextOverlay .posterItemText:first-child {
|
.posterItemTextOverlay .posterItemText:first-child {
|
||||||
|
@ -136,11 +132,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.squarePosterItem {
|
.squarePosterItem {
|
||||||
width: 142px;
|
width: 148px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.squarePosterItem .posterItemImage {
|
.squarePosterItem .posterItemImage {
|
||||||
height: 142px;
|
height: 148px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.storeReviewCount {
|
.storeReviewCount {
|
||||||
|
@ -149,11 +145,11 @@
|
||||||
|
|
||||||
|
|
||||||
.backdropPosterItem {
|
.backdropPosterItem {
|
||||||
width: 142px;
|
width: 148px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.backdropPosterItem .posterItemImage {
|
.backdropPosterItem .posterItemImage {
|
||||||
height: 79.875px;
|
height: 83.25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.smallBackdropPosterItem {
|
.smallBackdropPosterItem {
|
||||||
|
@ -165,17 +161,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.portraitPosterItem {
|
.portraitPosterItem {
|
||||||
width: 90px;
|
width: 96px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portraitPosterItem .posterItemImage {
|
.portraitPosterItem .posterItemImage {
|
||||||
height: 135px;
|
height: 144px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.posterItemProgress .itemProgressBar {
|
.posterItemProgress .itemProgressBar {
|
||||||
height: 10px;
|
height: 10px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
opacity: .6;
|
opacity: .7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.miniPosterItemProgress {
|
.miniPosterItemProgress {
|
||||||
|
@ -188,6 +184,21 @@
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sessionPosterItem .posterItemText:not(.posterItemName) {
|
||||||
|
color: #000;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sessionPosterItem .posterItemName {
|
||||||
|
color: #fff!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sessionPosterItem .posterItemDefaultText {
|
||||||
|
color: #000!important;
|
||||||
|
font-weight: normal !important;
|
||||||
|
top: 42%;
|
||||||
|
}
|
||||||
|
|
||||||
@media all and (max-width: 600px) {
|
@media all and (max-width: 600px) {
|
||||||
|
|
||||||
.packageReviewText {
|
.packageReviewText {
|
||||||
|
@ -198,19 +209,19 @@
|
||||||
@media all and (min-width: 540px) {
|
@media all and (min-width: 540px) {
|
||||||
|
|
||||||
.backdropPosterItem {
|
.backdropPosterItem {
|
||||||
width: 260px;
|
width: 266px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.backdropPosterItem .posterItemImage {
|
.backdropPosterItem .posterItemImage {
|
||||||
height: 146.25px;
|
height: 149.625px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.smallBackdropPosterItem {
|
.smallBackdropPosterItem {
|
||||||
width: 184px;
|
width: 180px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.smallBackdropPosterItem .posterItemImage {
|
.smallBackdropPosterItem .posterItemImage {
|
||||||
height: 103.5px;
|
height: 101.25px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,55 +229,32 @@
|
||||||
|
|
||||||
|
|
||||||
.squarePosterItem {
|
.squarePosterItem {
|
||||||
width: 164px;
|
width: 170px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.squarePosterItem .posterItemImage {
|
.squarePosterItem .posterItemImage {
|
||||||
height: 164px;
|
height: 170px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portraitPosterItem {
|
.portraitPosterItem {
|
||||||
width: 122px;
|
width: 128px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portraitPosterItem .posterItemImage {
|
.portraitPosterItem .posterItemImage {
|
||||||
height: 183px;
|
height: 192px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-width: 650px) {
|
@media all and (min-width: 650px) {
|
||||||
|
|
||||||
.backdropPosterItem {
|
.backdropPosterItem {
|
||||||
width: 276px;
|
width: 282px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.backdropPosterItem .posterItemImage {
|
.backdropPosterItem .posterItemImage {
|
||||||
height: 155.25px;
|
height: 158.625px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.smallBackdropPosterItem {
|
|
||||||
width: 196px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.smallBackdropPosterItem .posterItemImage {
|
|
||||||
height: 110.25px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media all and (min-width: 750px) {
|
|
||||||
|
|
||||||
.portraitPosterItem {
|
|
||||||
width: 112px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.portraitPosterItem .posterItemImage {
|
|
||||||
height: 168px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media all and (min-width: 1000px) {
|
|
||||||
|
|
||||||
|
|
||||||
.smallBackdropPosterItem {
|
.smallBackdropPosterItem {
|
||||||
width: 202px;
|
width: 202px;
|
||||||
}
|
}
|
||||||
|
@ -276,22 +264,37 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-width: 1200px) {
|
@media all and (min-width: 750px) {
|
||||||
|
|
||||||
.backdropPosterItem {
|
|
||||||
width: 276px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.backdropPosterItem .posterItemImage {
|
|
||||||
height: 155.25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.portraitPosterItem {
|
.portraitPosterItem {
|
||||||
width: 138px;
|
width: 118px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portraitPosterItem .posterItemImage {
|
.portraitPosterItem .posterItemImage {
|
||||||
height: 207px;
|
height: 177px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (min-width: 1000px) {
|
||||||
|
|
||||||
|
|
||||||
|
.smallBackdropPosterItem {
|
||||||
|
width: 208px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.smallBackdropPosterItem .posterItemImage {
|
||||||
|
height: 117px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media all and (min-width: 1200px) {
|
||||||
|
|
||||||
|
.portraitPosterItem {
|
||||||
|
width: 144px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.portraitPosterItem .posterItemImage {
|
||||||
|
height: 216px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.storeReviewCount {
|
.storeReviewCount {
|
||||||
|
@ -302,38 +305,30 @@
|
||||||
@media all and (min-width: 1440px) {
|
@media all and (min-width: 1440px) {
|
||||||
|
|
||||||
.squarePosterItem {
|
.squarePosterItem {
|
||||||
width: 174px;
|
width: 180px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.squarePosterItem .posterItemImage {
|
.squarePosterItem .posterItemImage {
|
||||||
height: 174px;
|
height: 180px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.backdropPosterItem {
|
.backdropPosterItem {
|
||||||
width: 292px;
|
width: 298px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.backdropPosterItem .posterItemImage {
|
.backdropPosterItem .posterItemImage {
|
||||||
height: 164.25px;
|
height: 167.625px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-width: 1920px) {
|
@media all and (min-width: 1920px) {
|
||||||
|
|
||||||
.portraitPosterItem {
|
|
||||||
width: 160px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.portraitPosterItem .posterItemImage {
|
|
||||||
height: 240px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.squarePosterItem {
|
.squarePosterItem {
|
||||||
width: 184px;
|
width: 190px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.squarePosterItem .posterItemImage {
|
.squarePosterItem .posterItemImage {
|
||||||
height: 184px;
|
height: 190px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/********************/
|
/********************/
|
||||||
|
@ -389,4 +384,4 @@
|
||||||
background-image: -moz-linear-gradient(top, #ff3333, #992233);
|
background-image: -moz-linear-gradient(top, #ff3333, #992233);
|
||||||
background-image: -ms-linear-gradient(top, #ff3333, #992233);
|
background-image: -ms-linear-gradient(top, #ff3333, #992233);
|
||||||
background-image: -o-linear-gradient(top, #ff3333, #992233);
|
background-image: -o-linear-gradient(top, #ff3333, #992233);
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,6 +330,10 @@ h1 .imageLink {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.activeDevicesCollapsible .ui-collapsible-content {
|
||||||
|
padding: .5em .5em !important;
|
||||||
|
}
|
||||||
|
|
||||||
@media all and (min-width: 450px) {
|
@media all and (min-width: 450px) {
|
||||||
|
|
||||||
.currentUsername {
|
.currentUsername {
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
<a href="#" data-role="button" class="ui-btn-active">Home</a>
|
<a href="#" data-role="button" class="ui-btn-active">Home</a>
|
||||||
<a href="dashboardinfopage.html" data-role="button">Info</a>
|
<a href="dashboardinfopage.html" data-role="button">Info</a>
|
||||||
|
@ -59,11 +60,9 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div data-role="collapsible" data-collapsed="false" style="margin-top: 2em;">
|
<div class="activeDevicesCollapsible" data-role="collapsible" data-collapsed="false" style="margin-top: 2em;">
|
||||||
<h3>Active Connections</h3>
|
<h3>Active Devices</h3>
|
||||||
<div>
|
<div class="connections">
|
||||||
<table class="tblConnections" style="border-collapse: collapse;">
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
44
dashboard-ui/dlnasettings.html
Normal file
44
dashboard-ui/dlnasettings.html
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>DLNA</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="dlnaSettingsPage" data-role="page" class="page type-interior adminPage dlnaPage">
|
||||||
|
|
||||||
|
<div data-role="content">
|
||||||
|
<div class="content-primary">
|
||||||
|
|
||||||
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
|
<a href="#" data-role="button" class="ui-btn-active">Settings</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form class="dlnaSettingsForm">
|
||||||
|
|
||||||
|
<ul data-role="listview" class="ulForm">
|
||||||
|
<li>
|
||||||
|
<label for="chkEnablePlayTo">Enable DLNA Play To</label>
|
||||||
|
<input type="checkbox" id="chkEnablePlayTo" data-mini="true" />
|
||||||
|
<div class="fieldDescription">Media Browser can detect devices within your network and offer the ability to remote control them.</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<button type="submit" data-theme="b" data-icon="check">
|
||||||
|
Save
|
||||||
|
</button>
|
||||||
|
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('.dlnaSettingsForm').off('submit', DlnaSettingsPage.onSubmit).on('submit', DlnaSettingsPage.onSubmit);
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
78
dashboard-ui/editcollectionitems.html
Normal file
78
dashboard-ui/editcollectionitems.html
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Media Browser</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="editCollectionTitlesPage" data-role="page" data-theme="b" class="page libraryPage metadataEditorPage">
|
||||||
|
<div data-role="content editPageContent">
|
||||||
|
<div class="editPageSidebar">
|
||||||
|
<div class="libraryTree">
|
||||||
|
<ul>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="editPageInnerContent">
|
||||||
|
<h1 class="itemName editPageName"> </h1>
|
||||||
|
<br />
|
||||||
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
|
<a href="#" data-role="button" id="btnEditMetadata">Metadata</a>
|
||||||
|
<a id="btnEditPeople" style="display: none;" href="#" data-role="button">People</a>
|
||||||
|
<a href="#" data-role="button" class="ui-btn-active">Titles</a>
|
||||||
|
<a id="btnEditImages" href="#" data-role="button">Images</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p style="margin-top: -20px;">
|
||||||
|
Add or remove any movies, series, albums, books or games you wish to group within this collection.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<button type="button" id="btnAddItem" data-icon="plus" data-inline="true" data-mini="true">Add</button>
|
||||||
|
<button type="button" id="btnRemoveItems" data-icon="delete" data-inline="true" data-mini="true" disabled="disabled">Remove</button>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div class="collectionItems"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div data-role="popup" data-transition="slidefade" class="popupIdentify popup" data-theme="a">
|
||||||
|
|
||||||
|
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
|
||||||
|
<h3>Add Titles
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div data-role="content">
|
||||||
|
|
||||||
|
<form class="collectionItemSearchForm" style="max-width: initial;">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label for="txtLookupName">Name:</label>
|
||||||
|
|
||||||
|
<div style="display: inline-block; width: 75%;">
|
||||||
|
<input type="text" id="txtLookupName" data-mini="true" required="required" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" data-icon="search" data-mini="true" data-inline="true" data-iconpos="notext">
|
||||||
|
Search
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="collectionItemSearchResults" style="min-height:100px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button id="btnAddItems" type="button" data-icon="plus" data-mini="true">
|
||||||
|
Add
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('.collectionItemSearchForm').off('submit', EditCollectionItemsPage.onSearchFormSubmit).on('submit', EditCollectionItemsPage.onSearchFormSubmit);
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -19,6 +19,7 @@
|
||||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
<a href="#" data-role="button" id="btnEditMetadata">Metadata</a>
|
<a href="#" data-role="button" id="btnEditMetadata">Metadata</a>
|
||||||
<a href="#" data-role="button" id="btnEditPeople" style="display: none;">People</a>
|
<a href="#" data-role="button" id="btnEditPeople" style="display: none;">People</a>
|
||||||
|
<a id="btnEditCollectionTitles" style="display: none;" href="#" data-role="button">Titles</a>
|
||||||
<a href="#" data-role="button" class="ui-btn-active">Images</a>
|
<a href="#" data-role="button" class="ui-btn-active">Images</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
<a href="#" data-role="button" class="ui-btn-active">Metadata</a>
|
<a href="#" data-role="button" class="ui-btn-active">Metadata</a>
|
||||||
<a id="btnEditPeople" style="display: none;" href="#" data-role="button">People</a>
|
<a id="btnEditPeople" style="display: none;" href="#" data-role="button">People</a>
|
||||||
|
<a id="btnEditCollectionTitles" style="display: none;" href="editcollectionitems.html" data-role="button">Titles</a>
|
||||||
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -395,7 +396,7 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
|
|
||||||
<form class="popupIdentifyForm" style="max-width: initial;">
|
<form class="popupIdentifyForm" style="max-width: initial;">
|
||||||
|
|
||||||
<p>Enter one or more search criteria.</p>
|
<p>Enter one or more search criteria.</p>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
@ -414,6 +415,9 @@
|
||||||
<button type="submit" data-theme="b" data-icon="search" data-mini="true">
|
<button type="submit" data-theme="b" data-icon="search" data-mini="true">
|
||||||
Search
|
Search
|
||||||
</button>
|
</button>
|
||||||
|
<button type="button" data-icon="delete" data-mini="true" onclick="$(this).parents('.popup').popup('close');">
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||||
<a href="#" data-role="button" id="btnEditMetadata">Metadata</a>
|
<a href="#" data-role="button" id="btnEditMetadata">Metadata</a>
|
||||||
<a href="#" data-role="button" class="ui-btn-active">People</a>
|
<a href="#" data-role="button" class="ui-btn-active">People</a>
|
||||||
|
<a id="btnEditCollectionTitles" style="display: none;" href="#" data-role="button">Titles</a>
|
||||||
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
||||||
</div>
|
</div>
|
||||||
<div id="divAddPerson" style="display: none;">
|
<div id="divAddPerson" style="display: none;">
|
||||||
|
|
|
@ -15,40 +15,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -15,40 +15,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<div id="itemByNameDetailPage" data-role="page" class="page libraryPage" data-theme="b">
|
<div id="itemByNameDetailPage" data-role="page" class="page libraryPage" data-theme="b">
|
||||||
<div id="movieGenreTabs" class="itemTabs" style="display: none;">
|
<div id="movieGenreTabs" class="itemTabs" style="display: none;">
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Box Sets</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html" class="ui-btn-active">Genres</a>
|
<a href="moviegenres.html" class="ui-btn-active">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
@ -18,9 +18,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="moviePeopleTabs" class="itemTabs" style="display: none;">
|
<div id="moviePeopleTabs" class="itemTabs" style="display: none;">
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Box Sets</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html" class="ui-btn-active">People</a>
|
<a href="moviepeople.html" class="ui-btn-active">People</a>
|
||||||
|
@ -29,9 +29,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="movieStudioTabs" class="itemTabs" style="display: none;">
|
<div id="movieStudioTabs" class="itemTabs" style="display: none;">
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Box Sets</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
|
|
@ -7,20 +7,9 @@
|
||||||
<div id="itemDetailPage" data-role="page" class="page libraryPage" data-theme="b">
|
<div id="itemDetailPage" data-role="page" class="page libraryPage" data-theme="b">
|
||||||
<div id="movieTabs" class="itemTabs" style="display: none;">
|
<div id="movieTabs" class="itemTabs" style="display: none;">
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html" class="ui-btn-active">Movies</a>
|
<a href="movies.html" class="ui-btn-active">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
|
||||||
<a href="moviegenres.html">Genres</a>
|
|
||||||
<a href="moviepeople.html">People</a>
|
|
||||||
<a href="moviestudios.html">Studios</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="boxsetTabs" class="itemTabs" style="display: none;">
|
|
||||||
<div class="libraryViewNav">
|
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
|
||||||
<a href="movies.html">Movies</a>
|
|
||||||
<a href="boxsets.html" class="ui-btn-active">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
@ -29,9 +18,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="trailerTabs" class="itemTabs" style="display: none;">
|
<div id="trailerTabs" class="itemTabs" style="display: none;">
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html" class="ui-btn-active">Trailers</a>
|
<a href="movietrailers.html" class="ui-btn-active">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
@ -173,8 +162,11 @@
|
||||||
<p class="itemTags"></p>
|
<p class="itemTags"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="collectionItems"></div>
|
||||||
<div id="childrenCollapsible" class="hide detailSection">
|
<div id="childrenCollapsible" class="hide detailSection">
|
||||||
<div class="detailSectionHeader"><span id="childrenTitle"></span></div>
|
<div class="detailSectionHeader">
|
||||||
|
<span id="childrenTitle"></span>
|
||||||
|
</div>
|
||||||
<div id="childrenContent" class="detailSectionContent"></div>
|
<div id="childrenContent" class="detailSectionContent"></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="trailersCollapsible" class="detailSection hide">
|
<div id="trailersCollapsible" class="detailSection hide">
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
<label for="chkMissingOverview">Missing Overview</label>
|
<label for="chkMissingOverview">Missing Overview</label>
|
||||||
|
|
||||||
<input class="chkMissingRating" type="checkbox" name="chkMissingRating" id="chkMissingRating" data-mini="true">
|
<input class="chkMissingRating" type="checkbox" name="chkMissingRating" id="chkMissingRating" data-mini="true">
|
||||||
<label for="chkMissingRating">Missing Rating</label>
|
<label for="chkMissingRating">Missing Parental Rating</label>
|
||||||
|
|
||||||
<input class="chkIsUnidentified" type="checkbox" id="chkIsUnidentified" data-mini="true">
|
<input class="chkIsUnidentified" type="checkbox" id="chkIsUnidentified" data-mini="true">
|
||||||
<label for="chkIsUnidentified">Unidentified</label>
|
<label for="chkIsUnidentified">Unidentified</label>
|
||||||
|
|
|
@ -23,11 +23,12 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="chkEnableInternetProviders" name="chkEnableInternetProviders" data-mini="true" />
|
<input type="checkbox" id="chkEnableInternetProviders" name="chkEnableInternetProviders" data-mini="true" />
|
||||||
<label for="chkEnableInternetProviders">Download metadata and images from the internet </label>
|
<label for="chkEnableInternetProviders">Download artwork and metadata from the internet </label>
|
||||||
|
<div class="fieldDescription">Media Browser can download information about your media to enable rich presentations.</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="chkSaveLocal" name="chkSaveLocal" data-mini="true" />
|
<input type="checkbox" id="chkSaveLocal" name="chkSaveLocal" data-mini="true" />
|
||||||
<label for="chkSaveLocal">Save metadata and images within media folders </label>
|
<label for="chkSaveLocal">Save artwork and metadata within media folders </label>
|
||||||
<div class="fieldDescription">Save downloaded metadata and images into media folders where they can be stored permanently and easily edited.</div>
|
<div class="fieldDescription">Save downloaded metadata and images into media folders where they can be stored permanently and easily edited.</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<div id="movieGenresPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
<div id="movieGenresPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html" class="ui-btn-active">Genres</a>
|
<a href="moviegenres.html" class="ui-btn-active">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
@ -19,46 +19,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioMovieCount" value="on" checked="checked" data-sortby="MovieCount,SortName" data-mini="true">
|
|
||||||
<label for="radioMovieCount">Movie count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioTrailerCount" value="on" checked="checked" data-sortby="TrailerCount,SortName" data-mini="true">
|
|
||||||
<label for="radioTrailerCount">Trailer count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<div id="moviePeoplePage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
<div id="moviePeoplePage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html" class="ui-btn-active">People</a>
|
<a href="moviepeople.html" class="ui-btn-active">People</a>
|
||||||
|
@ -21,46 +21,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioMovieCount" value="on" checked="checked" data-sortby="MovieCount,SortName" data-mini="true">
|
|
||||||
<label for="radioMovieCount">Movie count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioTrailerCount" value="on" checked="checked" data-sortby="TrailerCount,SortName" data-mini="true">
|
|
||||||
<label for="radioTrailerCount">Trailer count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<div id="moviesPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
<div id="moviesPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html" class="ui-btn-active">Movies</a>
|
<a href="movies.html" class="ui-btn-active">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
|
41
dashboard-ui/movieslatest.html
Normal file
41
dashboard-ui/movieslatest.html
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Media Browser</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="moviesLatestPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||||
|
|
||||||
|
<div class="libraryViewNav">
|
||||||
|
<a href="#" class="ui-btn-active">Latest</a>
|
||||||
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
|
<a href="movies.html">Movies</a>
|
||||||
|
<a href="movietrailers.html">Trailers</a>
|
||||||
|
<a href="moviegenres.html">Genres</a>
|
||||||
|
<a href="moviepeople.html">People</a>
|
||||||
|
<a href="moviestudios.html">Studios</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div data-role="content">
|
||||||
|
|
||||||
|
<table class="ehsContent">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<h1 class="listHeader">Latest Movies</h1>
|
||||||
|
|
||||||
|
<div id="recentlyAddedItems">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="trailerSection" style="display: none;">
|
||||||
|
<h1 class="listHeader">Latest Trailers</h1>
|
||||||
|
|
||||||
|
<div id="trailerItems">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -7,9 +7,9 @@
|
||||||
<div id="moviesRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
<div id="moviesRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
<a href="moviesrecommended.html" class="ui-btn-active">Suggested</a>
|
<a href="movieslatest.html">Latest</a>
|
||||||
|
<a href="#" class="ui-btn-active">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
@ -28,16 +28,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 class="listHeader">Latest Movies</h1>
|
<div class="recommendations">
|
||||||
|
|
||||||
<div id="recentlyAddedItems">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="trailerSection" style="display: none;">
|
|
||||||
<h1 class="listHeader">Latest Trailers</h1>
|
|
||||||
|
|
||||||
<div id="trailerItems">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<div id="movieStudiosPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
<div id="movieStudiosPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html">Trailers</a>
|
<a href="movietrailers.html">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
@ -19,46 +19,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioMovieCount" value="on" checked="checked" data-sortby="MovieCount,SortName" data-mini="true">
|
|
||||||
<label for="radioMovieCount">Movie count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioTrailerCount" value="on" checked="checked" data-sortby="TrailerCount,SortName" data-mini="true">
|
|
||||||
<label for="radioTrailerCount">Trailer count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
<div id="movieTrailersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
<div id="movieTrailersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||||
|
|
||||||
<div class="libraryViewNav">
|
<div class="libraryViewNav">
|
||||||
|
<a href="movieslatest.html">Latest</a>
|
||||||
<a href="moviesrecommended.html">Suggested</a>
|
<a href="moviesrecommended.html">Suggested</a>
|
||||||
<a href="movies.html">Movies</a>
|
<a href="movies.html">Movies</a>
|
||||||
<a href="boxsets.html">Collections</a>
|
|
||||||
<a href="movietrailers.html" class="ui-btn-active">Trailers</a>
|
<a href="movietrailers.html" class="ui-btn-active">Trailers</a>
|
||||||
<a href="moviegenres.html">Genres</a>
|
<a href="moviegenres.html">Genres</a>
|
||||||
<a href="moviepeople.html">People</a>
|
<a href="moviepeople.html">People</a>
|
||||||
|
|
|
@ -20,49 +20,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioAlbumCount" value="on" checked="checked" data-sortby="AlbumCount,SortName" data-mini="true">
|
|
||||||
<label for="radioAlbumCount">Album count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioMusicVideoCount" value="on" checked="checked" data-sortby="MusicVideoCount,SortName" data-mini="true">
|
|
||||||
<label for="radioMusicVideoCount">Music video count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioSongCount" value="on" checked="checked" data-sortby="SongCount,SortName" data-mini="true">
|
|
||||||
<label for="radioSongCount">Song count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -20,49 +20,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioAlbumCount" value="on" checked="checked" data-sortby="AlbumCount,SortName" data-mini="true">
|
|
||||||
<label for="radioAlbumCount">Album count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioMusicVideoCount" value="on" checked="checked" data-sortby="MusicVideoCount,SortName" data-mini="true">
|
|
||||||
<label for="radioMusicVideoCount">Music video count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioSongCount" value="on" checked="checked" data-sortby="SongCount,SortName" data-mini="true">
|
|
||||||
<label for="radioSongCount">Song count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
|
@ -26,40 +25,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioAlbumCount" value="on" checked="checked" data-sortby="AlbumCount,SortName" data-mini="true">
|
|
||||||
<label for="radioAlbumCount">Album count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioMusicVideoCount" value="on" checked="checked" data-sortby="MusicVideoCount,SortName" data-mini="true">
|
|
||||||
<label for="radioMusicVideoCount">Music video count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioSongCount" value="on" checked="checked" data-sortby="SongCount,SortName" data-mini="true">
|
|
||||||
<label for="radioSongCount">Song count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
$('#txtPortNumber', page).val(config.HttpServerPortNumber);
|
$('#txtPortNumber', page).val(config.HttpServerPortNumber);
|
||||||
|
|
||||||
$('#txtDdns', page).val(config.WanDdns || '');
|
$('#txtDdns', page).val(config.WanDdns || '');
|
||||||
|
$('#txtServerName', page).val(config.ServerName || '');
|
||||||
|
|
||||||
$('#chkEnableUpnp', page).checked(config.EnableUPnP).checkboxradio('refresh');
|
$('#chkEnableUpnp', page).checked(config.EnableUPnP).checkboxradio('refresh');
|
||||||
|
|
||||||
|
@ -52,6 +53,7 @@
|
||||||
config.EnableUPnP = $('#chkEnableUpnp', form).checked();
|
config.EnableUPnP = $('#chkEnableUpnp', form).checked();
|
||||||
|
|
||||||
config.WanDdns = $('#txtDdns', form).val();
|
config.WanDdns = $('#txtDdns', form).val();
|
||||||
|
config.ServerName = $('#txtServerName', form).val();
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||||
});
|
});
|
||||||
|
|
|
@ -71,6 +71,9 @@
|
||||||
$('#txtMultiEpisodePattern', page).val(tvOptions.MultiEpisodeNamePattern).trigger('change');
|
$('#txtMultiEpisodePattern', page).val(tvOptions.MultiEpisodeNamePattern).trigger('change');
|
||||||
|
|
||||||
$('#txtDeleteLeftOverFiles', page).val(tvOptions.LeftOverFileExtensionsToDelete.join(';'));
|
$('#txtDeleteLeftOverFiles', page).val(tvOptions.LeftOverFileExtensionsToDelete.join(';'));
|
||||||
|
|
||||||
|
$('#copyOrMoveFile', page).val(tvOptions.CopyOriginalFile.toString()).selectmenu('refresh');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('pageinit', "#libraryFileOrganizerPage", function () {
|
$(document).on('pageinit', "#libraryFileOrganizerPage", function () {
|
||||||
|
@ -150,6 +153,8 @@
|
||||||
var watchLocation = $('#txtWatchFolder', form).val();
|
var watchLocation = $('#txtWatchFolder', form).val();
|
||||||
tvOptions.WatchLocations = watchLocation ? [watchLocation] : [];
|
tvOptions.WatchLocations = watchLocation ? [watchLocation] : [];
|
||||||
|
|
||||||
|
tvOptions.CopyOriginalFile = $('#copyOrMoveFile', form).val();
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
DashboardPage.newsStartIndex = 0;
|
DashboardPage.newsStartIndex = 0;
|
||||||
|
|
||||||
Dashboard.showLoadingMsg();
|
Dashboard.showLoadingMsg();
|
||||||
DashboardPage.pollForInfo(page);
|
DashboardPage.pollForInfo(page);
|
||||||
DashboardPage.startInterval();
|
DashboardPage.startInterval();
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
pagingHtml += '<div>';
|
pagingHtml += '<div>';
|
||||||
pagingHtml += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false, [], false);
|
pagingHtml += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false, [], false);
|
||||||
pagingHtml += '</div>';
|
pagingHtml += '</div>';
|
||||||
|
|
||||||
html = html.join('') + pagingHtml;
|
html = html.join('') + pagingHtml;
|
||||||
|
|
||||||
var elem = $('.latestNewsItems', page).html(html).trigger('create');
|
var elem = $('.latestNewsItems', page).html(html).trigger('create');
|
||||||
|
@ -135,9 +135,9 @@
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
var table = $('.tblConnections', page);
|
var container = $('.connections', page);
|
||||||
|
|
||||||
$('.trSession', table).addClass('deadSession');
|
$('.sessionPosterItem', container).addClass('deadSession');
|
||||||
|
|
||||||
var deviceId = ApiClient.deviceId();
|
var deviceId = ApiClient.deviceId();
|
||||||
|
|
||||||
|
@ -145,98 +145,181 @@
|
||||||
|
|
||||||
var connection = dashboardInfo.ActiveConnections[i];
|
var connection = dashboardInfo.ActiveConnections[i];
|
||||||
|
|
||||||
var rowId = 'trSession' + connection.Id;
|
var itemId = 'session' + connection.Id;
|
||||||
|
|
||||||
var elem = $('#' + rowId, page);
|
var elem = $('#' + itemId, page);
|
||||||
|
|
||||||
if (elem.length) {
|
if (elem.length) {
|
||||||
DashboardPage.updateSession(elem, connection);
|
DashboardPage.updateSession(elem, connection);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '<tr class="trSession" id="' + rowId + '">';
|
html += '<div class="sessionPosterItem posterItem squarePosterItem" id="' + itemId + '" style="vertical-align:top;margin-bottom:2em;">';
|
||||||
|
|
||||||
html += '<td class="clientType" style="text-align:center;">';
|
|
||||||
html += DashboardPage.getClientType(connection);
|
|
||||||
html += '</td>';
|
|
||||||
|
|
||||||
html += '<td>';
|
|
||||||
|
|
||||||
html += '<div>';
|
|
||||||
|
|
||||||
if (deviceId == connection.DeviceId) {
|
|
||||||
html += connection.Client;
|
|
||||||
} else {
|
|
||||||
html += '<a href="#" onclick="RemoteControl.showMenu({sessionId:\'' + connection.Id + '\'});">' + connection.Client + '</a>';
|
|
||||||
}
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
html += '<div>' + connection.ApplicationVersion + '</div>';
|
|
||||||
html += '<div>' + connection.DeviceName + '</div>';
|
|
||||||
html += '</td>';
|
|
||||||
|
|
||||||
html += '<td class="username">';
|
|
||||||
html += DashboardPage.getUsersHtml(connection);
|
|
||||||
html += '</td>';
|
|
||||||
|
|
||||||
var nowPlayingItem = connection.NowPlayingItem;
|
var nowPlayingItem = connection.NowPlayingItem;
|
||||||
|
var imageUrl = DashboardPage.getNowPlayingImage(nowPlayingItem);
|
||||||
|
|
||||||
html += '<td class="nowPlayingImage">';
|
var style = "";
|
||||||
html += DashboardPage.getNowPlayingImage(nowPlayingItem);
|
|
||||||
html += '</td>';
|
|
||||||
|
|
||||||
html += '<td class="nowPlayingText">';
|
if (imageUrl) {
|
||||||
html += DashboardPage.getNowPlayingText(connection, nowPlayingItem);
|
style += 'background-image:url(\'' + imageUrl + '\');';
|
||||||
html += '</td>';
|
}
|
||||||
|
|
||||||
html += '</tr>';
|
var onclick = connection.DeviceId == deviceId ? '' : ' onclick="RemoteControl.showMenu({sessionId:\'' + connection.Id + '\'});"';
|
||||||
|
|
||||||
|
html += '<a' + onclick + ' data-imageurl="' + imageUrl + '" href="#" class="posterItemImage coveredPosterItemImage" style="' + style + 'background-color:#f2f2f2;display:block;">';
|
||||||
|
|
||||||
|
var defaultTextStyle = '';
|
||||||
|
|
||||||
|
if (nowPlayingItem) {
|
||||||
|
defaultTextStyle = "display:none;";
|
||||||
|
}
|
||||||
|
html += '<div class="posterItemDefaultText" style="' + defaultTextStyle + '">Nothing currently playing</div>';
|
||||||
|
|
||||||
|
html += '<div class="posterItemTextOverlay">';
|
||||||
|
|
||||||
|
var itemNameStyle='';
|
||||||
|
|
||||||
|
if (!nowPlayingItem) {
|
||||||
|
itemNameStyle = "display:none;";
|
||||||
|
}
|
||||||
|
html += '<div class="posterItemText posterItemName" style="' + itemNameStyle + '">' + (nowPlayingItem ? nowPlayingItem.Name : '') + '</div>';
|
||||||
|
|
||||||
|
var progressStyle='';
|
||||||
|
|
||||||
|
if (!nowPlayingItem) {
|
||||||
|
progressStyle = "display:none;";
|
||||||
|
}
|
||||||
|
html += "<div class='posterItemText posterItemProgress' style='" + progressStyle + "'>";
|
||||||
|
|
||||||
|
html += '<progress class="itemProgressBar" min="0" max="100" value="' + DashboardPage.getPlaybackProgress(connection) + '" style="opacity:.9;"></progress>';
|
||||||
|
html += "</div>";
|
||||||
|
html += "</div>";
|
||||||
|
|
||||||
|
html += '<img src="' + DashboardPage.getClientImage(connection) + '" style="top:10px;left:10px;height:24px;position:absolute;opacity: .95;" />';
|
||||||
|
|
||||||
|
html += '</a>';
|
||||||
|
|
||||||
|
html += '<div class="sessionItemText">' + DashboardPage.getSessionItemText(connection) + '</div>';
|
||||||
|
|
||||||
|
//html += '<td class="clientType" style="text-align:center;">';
|
||||||
|
//html += DashboardPage.getClientType(connection);
|
||||||
|
//html += '</td>';
|
||||||
|
|
||||||
|
//html += '<td>';
|
||||||
|
|
||||||
|
//html += '<div>';
|
||||||
|
|
||||||
|
//if (deviceId == connection.DeviceId) {
|
||||||
|
// html += connection.Client;
|
||||||
|
//} else {
|
||||||
|
// html += '<a href="#" onclick="RemoteControl.showMenu({sessionId:\'' + connection.Id + '\'});">' + connection.Client + '</a>';
|
||||||
|
//}
|
||||||
|
//html += '</div>';
|
||||||
|
|
||||||
|
//html += '</td>';
|
||||||
|
|
||||||
|
//html += '<td class="nowPlayingImage">';
|
||||||
|
//html += DashboardPage.getNowPlayingImage(nowPlayingItem);
|
||||||
|
//html += '</td>';
|
||||||
|
|
||||||
|
//html += '<td class="nowPlayingText">';
|
||||||
|
//html += DashboardPage.getNowPlayingText(connection, nowPlayingItem);
|
||||||
|
//html += '</td>';
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
table.append(html).trigger('create');
|
container.append(html).trigger('create');
|
||||||
|
|
||||||
$('.deadSession', table).remove();
|
$('.deadSession', container).remove();
|
||||||
|
},
|
||||||
|
|
||||||
|
getPlaybackProgress: function (session) {
|
||||||
|
|
||||||
|
if (session.NowPlayingItem) {
|
||||||
|
if (session.NowPlayingItem.RunTimeTicks) {
|
||||||
|
|
||||||
|
var pct = (session.NowPlayingPositionTicks || 0) / session.NowPlayingItem.RunTimeTicks;
|
||||||
|
|
||||||
|
return pct * 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
getUsersHtml: function (session) {
|
getUsersHtml: function (session) {
|
||||||
|
|
||||||
var html = '';
|
var html = '<div>';
|
||||||
|
|
||||||
if (session.UserId) {
|
if (session.UserId) {
|
||||||
html += '<div><a href="useredit.html?userid=' + session.UserId + '">' + session.UserName + '</a><div>';
|
html += session.UserName;
|
||||||
}
|
}
|
||||||
|
|
||||||
html += session.AdditionalUsers.map(function (currentSession) {
|
html += session.AdditionalUsers.map(function (currentSession) {
|
||||||
|
|
||||||
return '<div><a href="useredit.html?userid=' + currentSession.UserId + '">' + currentSession.UserName + '</a><div>';
|
return ', ' + currentSession.UserName;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
return html;
|
return html;
|
||||||
},
|
},
|
||||||
|
|
||||||
updateSession: function (row, session) {
|
updateSession: function (elem, session) {
|
||||||
|
|
||||||
row.removeClass('deadSession');
|
elem.removeClass('deadSession');
|
||||||
|
|
||||||
$('.username', row).html(DashboardPage.getUsersHtml(session)).trigger('create');
|
$('.sessionItemText', elem).html(DashboardPage.getSessionItemText(session));
|
||||||
|
|
||||||
var nowPlayingItem = session.NowPlayingItem;
|
var nowPlayingItem = session.NowPlayingItem;
|
||||||
|
|
||||||
$('.nowPlayingText', row).html(DashboardPage.getNowPlayingText(session, nowPlayingItem)).trigger('create');
|
if (nowPlayingItem) {
|
||||||
|
$('.posterItemDefaultText', elem).hide();
|
||||||
|
$('.posterItemProgress', elem).show();
|
||||||
|
$('.posterItemName', elem).show().html(nowPlayingItem.Name);
|
||||||
|
|
||||||
var imageRow = $('.nowPlayingImage', row);
|
$('progress', elem).val(DashboardPage.getPlaybackProgress(session));
|
||||||
|
} else {
|
||||||
|
$('.posterItemDefaultText', elem).show();
|
||||||
|
$('.posterItemProgress', elem).hide();
|
||||||
|
$('.posterItemName', elem).hide().html('');
|
||||||
|
}
|
||||||
|
|
||||||
var image = $('img', imageRow)[0];
|
var imageUrl = DashboardPage.getNowPlayingImage(nowPlayingItem);
|
||||||
|
|
||||||
var nowPlayingItemId = nowPlayingItem ? nowPlayingItem.Id : null;
|
var image = $('.posterItemImage', elem)[0];
|
||||||
var nowPlayingItemImageTag = nowPlayingItem ? nowPlayingItem.PrimaryImageTag : null;
|
|
||||||
|
|
||||||
if (!image || image.getAttribute('data-itemid') != nowPlayingItemId || image.getAttribute('data-tag') != nowPlayingItemImageTag) {
|
if (imageUrl && imageUrl != image.getAttribute('data-imageurl')) {
|
||||||
imageRow.html(DashboardPage.getNowPlayingImage(nowPlayingItem));
|
|
||||||
|
image.style.backgroundImage = 'url(\'' + imageUrl + '\')';
|
||||||
|
image.setAttribute('data-imageurl', imageUrl);
|
||||||
|
|
||||||
|
} else if (!imageUrl && image.getAttribute('data-imageurl')) {
|
||||||
|
|
||||||
|
image.style.backgroundImage = null;
|
||||||
|
image.setAttribute('data-imageurl', '');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
getClientType: function (connection) {
|
getSessionItemText: function (connection) {
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
|
||||||
|
html += '<div class="posterItemText">';
|
||||||
|
html += DashboardPage.getUsersHtml(connection);
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
//html += '<div class="posterItemText">' + connection.Client + '</div>';
|
||||||
|
//html += '<div class="posterItemText">' + connection.ApplicationVersion + '</div>';
|
||||||
|
|
||||||
|
html += '<div class="posterItemText">' + connection.DeviceName + '</div>';
|
||||||
|
|
||||||
|
return html;
|
||||||
|
},
|
||||||
|
|
||||||
|
getClientImage: function (connection) {
|
||||||
|
|
||||||
var clientLowered = connection.Client.toLowerCase();
|
var clientLowered = connection.Client.toLowerCase();
|
||||||
|
|
||||||
|
@ -262,91 +345,81 @@
|
||||||
imgUrl = 'css/images/clients/html5.png';
|
imgUrl = 'css/images/clients/html5.png';
|
||||||
}
|
}
|
||||||
|
|
||||||
return "<img src='" + imgUrl + "' alt='Dashboard' />";
|
return imgUrl;
|
||||||
}
|
}
|
||||||
if (clientLowered == "mb-classic") {
|
if (clientLowered == "mb-classic") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/mbc.png' alt='Media Browser Classic' />";
|
return "css/images/clients/mbc.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "media browser theater") {
|
if (clientLowered == "media browser theater") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/mb.png' alt='Media Browser Theater' />";
|
return "css/images/clients/mb.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "android") {
|
if (clientLowered == "android") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/android.png' alt='Android' />";
|
return "css/images/clients/android.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "roku") {
|
if (clientLowered == "roku") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/roku.jpg' alt='Roku' />";
|
return "css/images/clients/roku.jpg";
|
||||||
}
|
}
|
||||||
if (clientLowered == "ios") {
|
if (clientLowered == "ios") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/ios.png' alt='iOS' />";
|
return "css/images/clients/ios.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "windows rt") {
|
if (clientLowered == "windows rt") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/windowsrt.png' alt='Windows RT' />";
|
return "css/images/clients/windowsrt.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "windows phone") {
|
if (clientLowered == "windows phone") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/windowsphone.png' alt='Windows Phone' />";
|
return "css/images/clients/windowsphone.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "dlna") {
|
if (clientLowered == "dlna") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/dlna.png' alt='Dlna' />";
|
return "css/images/clients/dlna.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "mbkinect") {
|
if (clientLowered == "mbkinect") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/mbkinect.png' alt='MB Kinect' />";
|
return "css/images/clients/mbkinect.png";
|
||||||
}
|
}
|
||||||
if (clientLowered == "xbmc") {
|
if (clientLowered == "xbmc") {
|
||||||
|
|
||||||
return "<img src='css/images/clients/xbmc.png' alt='Xbmc' />";
|
return "css/images/clients/xbmc.png";
|
||||||
}
|
}
|
||||||
|
|
||||||
return connection.Client;
|
return "css/images/clients/mb.png";
|
||||||
},
|
},
|
||||||
|
|
||||||
getNowPlayingImage: function (item) {
|
getNowPlayingImage: function (item) {
|
||||||
|
|
||||||
|
if (item && item.ThumbItemId) {
|
||||||
|
return ApiClient.getImageUrl(item.ThumbItemId, {
|
||||||
|
type: "Thumb",
|
||||||
|
height: 300,
|
||||||
|
tag: item.ThumbImageTag
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item && item.BackdropItemId) {
|
||||||
|
return ApiClient.getImageUrl(item.BackdropItemId, {
|
||||||
|
type: "Backdrop",
|
||||||
|
height: 300,
|
||||||
|
tag: item.BackdropImageTag
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (item && item.PrimaryImageTag) {
|
if (item && item.PrimaryImageTag) {
|
||||||
var url = ApiClient.getImageUrl(item.Id, {
|
return ApiClient.getImageUrl(item.Id, {
|
||||||
type: "Primary",
|
type: "Primary",
|
||||||
height: 100,
|
height: 300,
|
||||||
tag: item.PrimaryImageTag
|
tag: item.PrimaryImageTag
|
||||||
});
|
});
|
||||||
|
|
||||||
url += "&xxx=" + new Date().getTime();
|
|
||||||
|
|
||||||
return "<img data-itemid='" + item.Id + "' data-tag='" + item.PrimaryImageTag + "' class='clientNowPlayingImage' src='" + url + "' alt='" + item.Name + "' title='" + item.Name + "' />";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
},
|
},
|
||||||
|
|
||||||
getNowPlayingText: function (connection, item) {
|
|
||||||
|
|
||||||
var html = "";
|
|
||||||
|
|
||||||
if (item) {
|
|
||||||
|
|
||||||
html += "<div><a href='itemdetails.html?id=" + item.Id + "'>" + item.Name + "</a></div>";
|
|
||||||
|
|
||||||
html += "<div>";
|
|
||||||
|
|
||||||
if (item.RunTimeTicks) {
|
|
||||||
html += Dashboard.getDisplayTime(connection.NowPlayingPositionTicks || 0) + " / ";
|
|
||||||
|
|
||||||
html += Dashboard.getDisplayTime(item.RunTimeTicks);
|
|
||||||
}
|
|
||||||
|
|
||||||
html += "</div>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return html;
|
|
||||||
},
|
|
||||||
|
|
||||||
renderRunningTasks: function (dashboardInfo) {
|
renderRunningTasks: function (dashboardInfo) {
|
||||||
|
|
||||||
var page = $.mobile.activePage;
|
var page = $.mobile.activePage;
|
||||||
|
@ -422,9 +495,9 @@
|
||||||
DashboardPage.renderPluginUpdateInfo(page, dashboardInfo);
|
DashboardPage.renderPluginUpdateInfo(page, dashboardInfo);
|
||||||
DashboardPage.renderPendingInstallations(page, dashboardInfo.SystemInfo);
|
DashboardPage.renderPendingInstallations(page, dashboardInfo.SystemInfo);
|
||||||
},
|
},
|
||||||
|
|
||||||
renderUrls: function (page, systemInfo) {
|
renderUrls: function (page, systemInfo) {
|
||||||
|
|
||||||
var url = ApiClient.serverAddress() + "/mediabrowser";
|
var url = ApiClient.serverAddress() + "/mediabrowser";
|
||||||
|
|
||||||
$('#bookmarkUrl', page).html(url).attr("href", url);
|
$('#bookmarkUrl', page).html(url).attr("href", url);
|
||||||
|
|
45
dashboard-ui/scripts/dlnasettings.js
Normal file
45
dashboard-ui/scripts/dlnasettings.js
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
(function ($, document, window) {
|
||||||
|
|
||||||
|
function loadPage(page, config) {
|
||||||
|
|
||||||
|
$('#chkEnablePlayTo', page).checked(config.DlnaOptions.EnablePlayTo).checkboxradio("refresh");
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).on('pageshow', "#dlnaSettingsPage", function () {
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
|
ApiClient.getServerConfiguration().done(function (config) {
|
||||||
|
|
||||||
|
loadPage(page, config);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function onSubmit() {
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
|
var form = this;
|
||||||
|
|
||||||
|
ApiClient.getServerConfiguration().done(function (config) {
|
||||||
|
|
||||||
|
config.DlnaOptions.EnablePlayTo = $('#chkEnablePlayTo', form).checked();
|
||||||
|
|
||||||
|
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Disable default form submission
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.DlnaSettingsPage = {
|
||||||
|
onSubmit: onSubmit
|
||||||
|
};
|
||||||
|
|
||||||
|
})(jQuery, document, window);
|
306
dashboard-ui/scripts/editcollectionitems.js
Normal file
306
dashboard-ui/scripts/editcollectionitems.js
Normal file
|
@ -0,0 +1,306 @@
|
||||||
|
(function ($, document, window, FileReader, escape) {
|
||||||
|
|
||||||
|
var currentItem;
|
||||||
|
|
||||||
|
function updateTabs(page, item) {
|
||||||
|
|
||||||
|
var query = MetadataEditor.getEditQueryString(item);
|
||||||
|
|
||||||
|
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||||
|
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||||
|
}
|
||||||
|
|
||||||
|
function reload(page) {
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg();
|
||||||
|
|
||||||
|
$('#btnRemoveItems', page).buttonEnabled(false);
|
||||||
|
|
||||||
|
MetadataEditor.getItemPromise().done(function (item) {
|
||||||
|
|
||||||
|
currentItem = item;
|
||||||
|
|
||||||
|
LibraryBrowser.renderName(item, $('.itemName', page), true);
|
||||||
|
|
||||||
|
updateTabs(page, item);
|
||||||
|
|
||||||
|
reloadTitles(page, item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getTitleHtml(item) {
|
||||||
|
|
||||||
|
var html = '<div style="display:inline-block;margin:5px;vertical-align:top;">';
|
||||||
|
|
||||||
|
html += '<div style="width:120px;height:180px;">';
|
||||||
|
if (item.ImageTags.Primary) {
|
||||||
|
|
||||||
|
var imgUrl = ApiClient.getImageUrl(item.Id, {
|
||||||
|
type: "Primary",
|
||||||
|
width: 300,
|
||||||
|
tag: item.ImageTags.Primary
|
||||||
|
});
|
||||||
|
|
||||||
|
html += '<img src="' + imgUrl + '" style="max-width:120px;max-height:180px;" />';
|
||||||
|
|
||||||
|
}
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
html += '<div style="text-align:center;margin-top:4px;max-width:100px;overflow:hidden;height: 32px;">' + item.Name + '</div>';
|
||||||
|
|
||||||
|
if (item.ParentId != currentItem.Id) {
|
||||||
|
html += '<label for="chkRemove' + item.Id + '">Remove</label><input id="chkRemove' + item.Id + '" class="chkRemoveItem" type="checkbox" data-itemid="' + item.Id + '" data-mini="true" />';
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSearchResultHtml(item) {
|
||||||
|
|
||||||
|
var html = '<div style="display:inline-block;margin:3px;vertical-align:top;">';
|
||||||
|
|
||||||
|
html += '<div style="width:100px;height:150px;">';
|
||||||
|
|
||||||
|
if (item.PrimaryImageTag) {
|
||||||
|
|
||||||
|
var imgUrl = ApiClient.getImageUrl(item.ItemId, {
|
||||||
|
type: "Primary",
|
||||||
|
width: 200,
|
||||||
|
tag: item.PrimaryImageTag
|
||||||
|
});
|
||||||
|
|
||||||
|
html += '<img src="' + imgUrl + '" style="max-width:100px;max-height:150px;" />';
|
||||||
|
|
||||||
|
}
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
html += '<div style="text-align:center;margin-top:4px;max-width:100px;overflow:hidden;height: 32px;">' + item.Name + '</div>';
|
||||||
|
|
||||||
|
html += '<label for="chkAdd' + item.ItemId + '">Add</label><input id="chkAdd' + item.ItemId + '" class="chkAddItem" type="checkbox" data-itemid="' + item.ItemId + '" data-mini="true" />';
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
function reloadTitles(page, item) {
|
||||||
|
|
||||||
|
ApiClient.getItems(Dashboard.getCurrentUserId(), {
|
||||||
|
|
||||||
|
ParentId: item.Id
|
||||||
|
|
||||||
|
}).done(function (result) {
|
||||||
|
|
||||||
|
// Scroll back up so they can see the results from the beginning
|
||||||
|
$(document).scrollTop(0);
|
||||||
|
|
||||||
|
var html = result.Items.map(getTitleHtml).join('');
|
||||||
|
|
||||||
|
var elem = $('.collectionItems', page).html(html).trigger('create');
|
||||||
|
|
||||||
|
$('.chkRemoveItem', elem).on('change', function () {
|
||||||
|
|
||||||
|
if ($('.chkRemoveItem:checked', elem).length) {
|
||||||
|
$('#btnRemoveItems', page).buttonEnabled(true);
|
||||||
|
} else {
|
||||||
|
$('#btnRemoveItems', page).buttonEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function showSearchResults(page, searchTerm) {
|
||||||
|
|
||||||
|
ApiClient.getSearchHints({
|
||||||
|
|
||||||
|
userId: Dashboard.getCurrentUserId(),
|
||||||
|
searchTerm: searchTerm,
|
||||||
|
limit: 30,
|
||||||
|
|
||||||
|
includePeople: false,
|
||||||
|
includeGenres: false,
|
||||||
|
includeStudios: false,
|
||||||
|
includeArtists: false,
|
||||||
|
|
||||||
|
IncludeItemTypes: "Movie,Series,Game,MusicAlbum,Book"
|
||||||
|
|
||||||
|
}).done(function (result) {
|
||||||
|
|
||||||
|
renderSearchResults(page, result.SearchHints);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderSearchResults(page, items) {
|
||||||
|
|
||||||
|
var existingIds = $('.chkRemoveItem', page).get().map(function (c) {
|
||||||
|
return c.getAttribute('data-itemid');
|
||||||
|
});
|
||||||
|
|
||||||
|
var html = items.filter(function (i) {
|
||||||
|
|
||||||
|
return existingIds.indexOf(i.ItemId) == -1;
|
||||||
|
|
||||||
|
}).map(getSearchResultHtml).join('');
|
||||||
|
|
||||||
|
var elem = $('.collectionItemSearchResults', page).html(html).trigger('create');
|
||||||
|
|
||||||
|
$('.chkAddItem', elem).on('change', function () {
|
||||||
|
|
||||||
|
if ($('.chkAddItem:checked', elem).length) {
|
||||||
|
$('#btnAddItems', page).buttonEnabled(true);
|
||||||
|
} else {
|
||||||
|
$('#btnAddItems', page).buttonEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function addItemsToCollection(page) {
|
||||||
|
|
||||||
|
var items = $('.chkAddItem:checked', page).get().map(function (c) {
|
||||||
|
|
||||||
|
return c.getAttribute('data-itemid');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!items.length) {
|
||||||
|
Dashboard.alert('Please select at least one item.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var url = ApiClient.getUrl("Collections/" + currentItem.Id + "/Items", {
|
||||||
|
|
||||||
|
Ids: items.join(',')
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url
|
||||||
|
|
||||||
|
}).done(function () {
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
$('.popupIdentify', page).popup('close');
|
||||||
|
|
||||||
|
reload(page);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeItemsFromCollection(page) {
|
||||||
|
var items = $('.chkRemoveItem:checked', page).get().map(function (c) {
|
||||||
|
|
||||||
|
return c.getAttribute('data-itemid');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!items.length) {
|
||||||
|
Dashboard.alert('Please select at least one item.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var url = ApiClient.getUrl("Collections/" + currentItem.Id + "/Items", {
|
||||||
|
|
||||||
|
Ids: items.join(',')
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: "DELETE",
|
||||||
|
url: url
|
||||||
|
|
||||||
|
}).done(function () {
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
|
||||||
|
reload(page);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).on('pageinit', "#editCollectionTitlesPage", function () {
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
|
$('.libraryTree', page).on('itemclicked', function (event, data) {
|
||||||
|
|
||||||
|
if (data.itemType == "libraryreport") {
|
||||||
|
Dashboard.navigate('libraryreport.html');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.itemType == "livetvservice") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (data.id != currentItem.Id) {
|
||||||
|
|
||||||
|
MetadataEditor.currentItemId = data.id;
|
||||||
|
MetadataEditor.currentItemName = data.itemName;
|
||||||
|
MetadataEditor.currentItemType = data.itemType;
|
||||||
|
//Dashboard.navigate('edititemmetadata.html?id=' + data.id);
|
||||||
|
|
||||||
|
//$.mobile.urlHistory.ignoreNextHashChange = true;
|
||||||
|
window.location.hash = 'editItemImagesPage?id=' + data.id;
|
||||||
|
|
||||||
|
reload(page);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btnAddItem', page).on('click', function () {
|
||||||
|
|
||||||
|
|
||||||
|
var popup = $('.popupIdentify', page).popup('open');
|
||||||
|
|
||||||
|
$('#txtLookupName', popup).val('');
|
||||||
|
$('.collectionItemSearchResults', popup).empty();
|
||||||
|
$('#btnAddItems', popup).buttonEnabled(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btnAddItems', page).on('click', function () {
|
||||||
|
|
||||||
|
addItemsToCollection(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btnRemoveItems', page).on('click', function () {
|
||||||
|
|
||||||
|
|
||||||
|
removeItemsFromCollection(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
}).on('pagebeforeshow', "#editCollectionTitlesPage", function () {
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
|
reload(page);
|
||||||
|
|
||||||
|
}).on('pagehide', "#editCollectionTitlesPage", function () {
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
|
currentItem = null;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
window.EditCollectionItemsPage = {
|
||||||
|
|
||||||
|
onSearchFormSubmit: function () {
|
||||||
|
|
||||||
|
var page = $(this).parents('.page');
|
||||||
|
|
||||||
|
showSearchResults(page, $('#txtLookupName', page).val());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
})(jQuery, document, window, window.FileReader, escape);
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
$('#btnEditPeople', page).attr('href', 'edititempeople.html?' + query);
|
$('#btnEditPeople', page).attr('href', 'edititempeople.html?' + query);
|
||||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||||
|
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBaseRemoteOptions() {
|
function getBaseRemoteOptions() {
|
||||||
|
@ -268,12 +269,18 @@
|
||||||
|
|
||||||
updateTabs(page, item);
|
updateTabs(page, item);
|
||||||
|
|
||||||
if (item.Type == "Person" || item.Type == "Studio" || item.Type == "MusicGenre" || item.Type == "Genre" || item.Type == "MusicArtist" || item.Type == "GameGenre" || item.Type == "Channel") {
|
if (item.Type == "Person" || item.Type == "Studio" || item.Type == "MusicGenre" || item.Type == "Genre" || item.Type == "MusicArtist" || item.Type == "GameGenre" || item.Type == "Channel" || item.Type == "BoxSet") {
|
||||||
$('#btnEditPeople', page).hide();
|
$('#btnEditPeople', page).hide();
|
||||||
} else {
|
} else {
|
||||||
$('#btnEditPeople', page).show();
|
$('#btnEditPeople', page).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.Type == "BoxSet") {
|
||||||
|
$('#btnEditCollectionTitles', page).show();
|
||||||
|
} else {
|
||||||
|
$('#btnEditCollectionTitles', page).hide();
|
||||||
|
}
|
||||||
|
|
||||||
ApiClient.getRemoteImageProviders(getBaseRemoteOptions()).done(function (providers) {
|
ApiClient.getRemoteImageProviders(getBaseRemoteOptions()).done(function (providers) {
|
||||||
|
|
||||||
if (providers.length) {
|
if (providers.length) {
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
$('#btnEditPeople', page).attr('href', 'edititempeople.html?' + query);
|
$('#btnEditPeople', page).attr('href', 'edititempeople.html?' + query);
|
||||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||||
|
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||||
}
|
}
|
||||||
|
|
||||||
function reload(page) {
|
function reload(page) {
|
||||||
|
@ -82,12 +83,18 @@
|
||||||
setFieldVisibilities(page, item);
|
setFieldVisibilities(page, item);
|
||||||
fillItemInfo(page, item);
|
fillItemInfo(page, item);
|
||||||
|
|
||||||
if (item.Type == "Person" || item.Type == "Studio" || item.Type == "MusicGenre" || item.Type == "Genre" || item.Type == "MusicArtist" || item.Type == "GameGenre" || item.Type == "Channel") {
|
if (item.Type == "Person" || item.Type == "Studio" || item.Type == "MusicGenre" || item.Type == "Genre" || item.Type == "MusicArtist" || item.Type == "GameGenre" || item.Type == "Channel" || item.Type == "BoxSet") {
|
||||||
$('#btnEditPeople', page).hide();
|
$('#btnEditPeople', page).hide();
|
||||||
} else {
|
} else {
|
||||||
$('#btnEditPeople', page).show();
|
$('#btnEditPeople', page).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item.Type == "BoxSet") {
|
||||||
|
$('#btnEditCollectionTitles', page).show();
|
||||||
|
} else {
|
||||||
|
$('#btnEditCollectionTitles', page).hide();
|
||||||
|
}
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -280,7 +287,17 @@
|
||||||
$('#fldYear', page).show();
|
$('#fldYear', page).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "AdultVideo" || item.Type == "Series" || item.Type == "Game" || item.Type == "BoxSet" || item.Type == "Person" || item.Type == "Book") {
|
if (item.Type == "Movie" ||
|
||||||
|
item.Type == "Trailer" ||
|
||||||
|
item.Type == "AdultVideo" ||
|
||||||
|
item.Type == "Series" ||
|
||||||
|
item.Type == "Game" ||
|
||||||
|
item.Type == "BoxSet" ||
|
||||||
|
item.Type == "Person" ||
|
||||||
|
item.Type == "Book" ||
|
||||||
|
item.Type == "MusicAlbum" ||
|
||||||
|
item.Type == "MusicArtist") {
|
||||||
|
|
||||||
$('#btnIdentify', page).show();
|
$('#btnIdentify', page).show();
|
||||||
} else {
|
} else {
|
||||||
$('#btnIdentify', page).hide();
|
$('#btnIdentify', page).hide();
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||||
|
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||||
}
|
}
|
||||||
|
|
||||||
function reload(page) {
|
function reload(page) {
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.BackdropImageTags || !item.BackdropImageTags.length) {
|
if (!item.BackdropImageTags || !item.BackdropImageTags.length) {
|
||||||
if (item.Type !== "Episode" && item.Type !== "Season" && item.MediaType !== "Audio" && item.Type !== "Channel") {
|
if (item.Type !== "Episode" && item.Type !== "Season" && item.MediaType !== "Audio" && item.Type !== "Channel" && item.Type !== "MusicAlbum") {
|
||||||
htmlName += '<img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." />';
|
htmlName += '<img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." />';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,6 +114,13 @@
|
||||||
nodes.push({ attr: { id: 'libraryreport', rel: 'default', itemtype: 'libraryreport' }, data: 'Reports' });
|
nodes.push({ attr: { id: 'libraryreport', rel: 'default', itemtype: 'libraryreport' }, data: 'Reports' });
|
||||||
|
|
||||||
callback(nodes);
|
callback(nodes);
|
||||||
|
|
||||||
|
if (!selectedId) {
|
||||||
|
|
||||||
|
if (window.location.toString().toLowerCase().indexOf('report.html') != -1) {
|
||||||
|
selectedId = 'libraryreport';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (selectedId && nodes.filter(function (f) {
|
if (selectedId && nodes.filter(function (f) {
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "Episode",
|
IncludeItemTypes: "Episode",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,SeriesInfo,PrimaryImageAspectRatio",
|
Fields: "SeriesInfo,PrimaryImageAspectRatio",
|
||||||
StartIndex: 0,
|
StartIndex: 0,
|
||||||
IsMissing: false,
|
IsMissing: false,
|
||||||
IsVirtualUnaired: false
|
IsVirtualUnaired: false
|
||||||
|
|
|
@ -25,9 +25,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
|
@ -65,36 +62,12 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('pageinit', "#gameGenresPage", function () {
|
$(document).on('pageinit', "#gameGenresPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
|
@ -66,36 +63,12 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('pageinit', "#gameStudiosPage", function () {
|
$(document).on('pageinit', "#gameStudiosPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -174,7 +174,7 @@
|
||||||
var views = [];
|
var views = [];
|
||||||
|
|
||||||
if (counts.MovieCount || counts.TrailerCount) {
|
if (counts.MovieCount || counts.TrailerCount) {
|
||||||
views.push({ id: "moviesView", name: "Movies", url: "moviesrecommended.html", img: "css/images/items/list/chapter.png", background: "#0094FF" });
|
views.push({ id: "moviesView", name: "Movies", url: "movieslatest.html", img: "css/images/items/list/chapter.png", background: "#0094FF" });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (counts.EpisodeCount || counts.SeriesCount) {
|
if (counts.EpisodeCount || counts.SeriesCount) {
|
||||||
|
|
|
@ -396,7 +396,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "",
|
IncludeItemTypes: "",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,AudioInfo,SeriesInfo,ParentId,PrimaryImageAspectRatio",
|
Fields: "AudioInfo,SeriesInfo,ParentId,PrimaryImageAspectRatio",
|
||||||
Limit: LibraryBrowser.getDefaultPageSize(),
|
Limit: LibraryBrowser.getDefaultPageSize(),
|
||||||
StartIndex: 0
|
StartIndex: 0
|
||||||
};
|
};
|
||||||
|
@ -477,10 +477,11 @@
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
preferBackdrop: shape == "backdrop",
|
shape: "square",
|
||||||
shape: shape
|
useAverageAspectRatio: true,
|
||||||
|
showTitle: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
|
|
||||||
if (user.Configuration.IsAdministrator) {
|
if (user.Configuration.IsAdministrator) {
|
||||||
$('#editButtonContainer', page).show();
|
$('#editButtonContainer', page).show();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$('#editButtonContainer', page).hide();
|
$('#editButtonContainer', page).hide();
|
||||||
}
|
}
|
||||||
|
@ -122,7 +123,7 @@
|
||||||
if (item.Type == "Episode" || item.Type == "Series" || item.Type == "Season") {
|
if (item.Type == "Episode" || item.Type == "Series" || item.Type == "Season") {
|
||||||
return "tv";
|
return "tv";
|
||||||
}
|
}
|
||||||
if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "BoxSet") {
|
if (item.Type == "Movie" || item.Type == "Trailer") {
|
||||||
return "movies";
|
return "movies";
|
||||||
}
|
}
|
||||||
if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "MusicVideo") {
|
if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "MusicVideo") {
|
||||||
|
@ -131,6 +132,9 @@
|
||||||
if (item.MediaType == "Game") {
|
if (item.MediaType == "Game") {
|
||||||
return "games";
|
return "games";
|
||||||
}
|
}
|
||||||
|
if (item.Type == "BoxSet") {
|
||||||
|
return "boxsets";
|
||||||
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,10 +166,6 @@
|
||||||
$('#gameSystemTabs', page).show();
|
$('#gameSystemTabs', page).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.Type == "BoxSet") {
|
|
||||||
$('#boxsetTabs', page).show();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.Type == "Trailer") {
|
if (item.Type == "Trailer") {
|
||||||
$('#trailerTabs', page).show();
|
$('#trailerTabs', page).show();
|
||||||
}
|
}
|
||||||
|
@ -177,8 +177,15 @@
|
||||||
|
|
||||||
function setInitialCollapsibleState(page, item, context, user) {
|
function setInitialCollapsibleState(page, item, context, user) {
|
||||||
|
|
||||||
|
$('.collectionItems', page).empty();
|
||||||
|
|
||||||
if (item.IsFolder) {
|
if (item.IsFolder) {
|
||||||
$('#childrenCollapsible', page).removeClass('hide');
|
|
||||||
|
if (item.Type == "BoxSet") {
|
||||||
|
$('#childrenCollapsible', page).addClass('hide');
|
||||||
|
} else {
|
||||||
|
$('#childrenCollapsible', page).removeClass('hide');
|
||||||
|
}
|
||||||
renderChildren(page, item, user);
|
renderChildren(page, item, user);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -346,7 +353,7 @@
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), {
|
ApiClient.getItems(Dashboard.getCurrentUserId(), {
|
||||||
|
|
||||||
Ids: item.SoundtrackIds.join(","),
|
Ids: item.SoundtrackIds.join(","),
|
||||||
ItemFields: "PrimaryImageAspectRatio,ItemCounts,DateCreated,AudioInfo",
|
ItemFields: "PrimaryImageAspectRatio,ItemCounts,AudioInfo",
|
||||||
SortBy: "SortName"
|
SortBy: "SortName"
|
||||||
|
|
||||||
}).done(function (result) {
|
}).done(function (result) {
|
||||||
|
@ -425,7 +432,7 @@
|
||||||
var options = {
|
var options = {
|
||||||
userId: Dashboard.getCurrentUserId(),
|
userId: Dashboard.getCurrentUserId(),
|
||||||
limit: item.Type == "MusicAlbum" ? 4 : 5,
|
limit: item.Type == "MusicAlbum" ? 4 : 5,
|
||||||
fields: "PrimaryImageAspectRatio,DateCreated,UserData"
|
fields: "PrimaryImageAspectRatio,UserData"
|
||||||
};
|
};
|
||||||
|
|
||||||
if (item.Type == "Movie") {
|
if (item.Type == "Movie") {
|
||||||
|
@ -527,7 +534,7 @@
|
||||||
|
|
||||||
function renderChildren(page, item, user) {
|
function renderChildren(page, item, user) {
|
||||||
|
|
||||||
var fields = "ItemCounts,DateCreated,AudioInfo,PrimaryImageAspectRatio";
|
var fields = "ItemCounts,AudioInfo,PrimaryImageAspectRatio";
|
||||||
|
|
||||||
var query = {
|
var query = {
|
||||||
ParentId: item.Id,
|
ParentId: item.Id,
|
||||||
|
@ -570,15 +577,9 @@
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var shape = "smallPoster";
|
var html = '';
|
||||||
|
|
||||||
if (item.Type == "Season") {
|
if (item.Type == "Series") {
|
||||||
shape = "smallBackdrop";
|
|
||||||
}
|
|
||||||
|
|
||||||
var html;
|
|
||||||
|
|
||||||
if (item.Type == "Series" || item.Type == "BoxSet") {
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "portrait",
|
shape: "portrait",
|
||||||
|
@ -606,18 +607,21 @@
|
||||||
centerText: true
|
centerText: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
html = LibraryBrowser.getPosterDetailViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
useAverageAspectRatio: true,
|
|
||||||
shape: shape,
|
|
||||||
showParentName: false,
|
|
||||||
displayAsSpecial: item.Type == "Season" && item.IndexNumber
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#childrenContent', page).html(html).createPosterItemHoverMenu();
|
$('#childrenContent', page).html(html).createPosterItemHoverMenu();
|
||||||
|
|
||||||
|
if (item.Type == "BoxSet") {
|
||||||
|
|
||||||
|
var collectionItemTypes = [
|
||||||
|
{ name: 'Movies', type: 'Movie' },
|
||||||
|
{ name: 'Series', type: 'Series' },
|
||||||
|
{ name: 'Albums', type: 'MusicAlbum' },
|
||||||
|
{ name: 'Games', type: 'Game' },
|
||||||
|
{ name: 'Books', type: 'Book' }
|
||||||
|
];
|
||||||
|
|
||||||
|
renderCollectionItems(page, collectionItemTypes, result.Items, user);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -627,9 +631,6 @@
|
||||||
else if (item.Type == "Series") {
|
else if (item.Type == "Series") {
|
||||||
$('#childrenTitle', page).html('Seasons');
|
$('#childrenTitle', page).html('Seasons');
|
||||||
}
|
}
|
||||||
else if (item.Type == "BoxSet") {
|
|
||||||
$('#childrenTitle', page).html('Titles');
|
|
||||||
}
|
|
||||||
else if (item.Type == "MusicAlbum") {
|
else if (item.Type == "MusicAlbum") {
|
||||||
$('#childrenTitle', page).html('Tracks');
|
$('#childrenTitle', page).html('Tracks');
|
||||||
}
|
}
|
||||||
|
@ -640,6 +641,82 @@
|
||||||
$('#childrenTitle', page).html('Items');
|
$('#childrenTitle', page).html('Items');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function renderCollectionItems(page, types, items, user) {
|
||||||
|
|
||||||
|
for (var i = 0, length = types.length; i < length; i++) {
|
||||||
|
|
||||||
|
var type = types[i];
|
||||||
|
|
||||||
|
var typeItems = items.filter(function (curr) {
|
||||||
|
|
||||||
|
return curr.Type == type.type;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!typeItems.length) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
renderCollectionItemType(page, type, typeItems, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
var otherType = { name: 'Other Items' };
|
||||||
|
|
||||||
|
var otherTypeItems = items.filter(function (curr) {
|
||||||
|
|
||||||
|
return !types.filter(function(t) {
|
||||||
|
|
||||||
|
return t.type == curr.Type;
|
||||||
|
|
||||||
|
}).length;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
if (otherTypeItems.length) {
|
||||||
|
renderCollectionItemType(page, otherType, otherTypeItems, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!items.length) {
|
||||||
|
renderCollectionItemType(page, {name: 'Titles'}, items, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('.collectionItems', page).trigger('create').createPosterItemHoverMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderCollectionItemType(page, type, items, user) {
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
|
||||||
|
html += '<div class="detailSection">';
|
||||||
|
|
||||||
|
html += '<div class="detailSectionHeader" style="position: relative;">';
|
||||||
|
html += '<span>' + type.name + '</span>';
|
||||||
|
|
||||||
|
if (user.Configuration.IsAdministrator) {
|
||||||
|
html += '<a href="editcollectionitems.html?id=' + currentItem.Id + '" data-role="button" data-icon="edit" data-iconpos="notext" data-inline="true" style="position: absolute; right: 0; top: 6px; margin-top: 0; margin-bottom: 0;">Edit</a>';
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
html += '<div class="detailSectionContent">';
|
||||||
|
|
||||||
|
var shape = type.type == 'MusicAlbum' ? 'square' : 'portrait';
|
||||||
|
|
||||||
|
html += LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: items,
|
||||||
|
shape: shape,
|
||||||
|
useAverageAspectRatio: true,
|
||||||
|
showTitle: true,
|
||||||
|
centerText: true
|
||||||
|
});
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
$('.collectionItems', page).append(html);
|
||||||
|
}
|
||||||
|
|
||||||
function renderUserDataIcons(page, item) {
|
function renderUserDataIcons(page, item) {
|
||||||
$('.userDataIcons', page).html(LibraryBrowser.getUserDataIconsHtml(item));
|
$('.userDataIcons', page).html(LibraryBrowser.getUserDataIconsHtml(item));
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,14 +34,23 @@
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||||
|
|
||||||
if (view == "Backdrop") {
|
if (view == "Backdrop") {
|
||||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
|
||||||
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
|
shape: "smallBackdrop",
|
||||||
|
useAverageAspectRatio: true,
|
||||||
|
showTitle: true,
|
||||||
|
centerText: true,
|
||||||
preferBackdrop: true
|
preferBackdrop: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (view == "Poster") {
|
else if (view == "Poster") {
|
||||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items
|
items: result.Items,
|
||||||
|
shape: "portrait",
|
||||||
|
useAverageAspectRatio: true,
|
||||||
|
showTitle: true,
|
||||||
|
centerText: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -71,219 +71,6 @@
|
||||||
return "" + d.getFullYear() + formatDigit(d.getMonth() + 1) + formatDigit(d.getDate()) + formatDigit(d.getHours()) + formatDigit(d.getMinutes()) + formatDigit(d.getSeconds());
|
return "" + d.getFullYear() + formatDigit(d.getMonth() + 1) + formatDigit(d.getDate()) + formatDigit(d.getHours()) + formatDigit(d.getMinutes()) + formatDigit(d.getSeconds());
|
||||||
},
|
},
|
||||||
|
|
||||||
getPosterDetailViewHtml: function (options) {
|
|
||||||
|
|
||||||
var items = options.items;
|
|
||||||
var currentIndexValue;
|
|
||||||
|
|
||||||
if (!options.shape) {
|
|
||||||
options.shape = options.preferBackdrop ? "backdrop" : "poster";
|
|
||||||
}
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
|
|
||||||
for (var i = 0, length = items.length; i < length; i++) {
|
|
||||||
|
|
||||||
var item = items[i];
|
|
||||||
|
|
||||||
if (options.timeline) {
|
|
||||||
var year = item.ProductionYear || "Unknown Year";
|
|
||||||
|
|
||||||
if (year != currentIndexValue) {
|
|
||||||
|
|
||||||
html += '<h2 class="timelineHeader detailSectionHeader">' + year + '</h2>';
|
|
||||||
currentIndexValue = year;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var imgUrl = null;
|
|
||||||
var isDefault = false;
|
|
||||||
var height = null;
|
|
||||||
|
|
||||||
var cssClass = "tileItem";
|
|
||||||
|
|
||||||
if (options.shape) {
|
|
||||||
cssClass += " " + options.shape + "TileItem";
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '<a class="' + cssClass + '" href="' + LibraryBrowser.getHref(item, options.context) + '">';
|
|
||||||
|
|
||||||
if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) {
|
|
||||||
|
|
||||||
imgUrl = LibraryBrowser.getImageUrl(item, 'Backdrop', 0, {
|
|
||||||
height: 198,
|
|
||||||
width: 352
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (options.preferBackdrop && item.ImageTags && item.ImageTags.Thumb) {
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getImageUrl(item.Id, {
|
|
||||||
type: "Thumb",
|
|
||||||
height: 198,
|
|
||||||
width: 352,
|
|
||||||
tag: item.ImageTags.Thumb
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (item.ImageTags && item.ImageTags.Primary) {
|
|
||||||
|
|
||||||
height = 300;
|
|
||||||
|
|
||||||
imgUrl = LibraryBrowser.getImageUrl(item, 'Primary', 0, {
|
|
||||||
maxheight: height
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (item.AlbumId && item.AlbumPrimaryImageTag) {
|
|
||||||
|
|
||||||
height = 300;
|
|
||||||
|
|
||||||
imgUrl = ApiClient.getImageUrl(item.AlbumId, {
|
|
||||||
type: "Primary",
|
|
||||||
height: 100,
|
|
||||||
tag: item.AlbumPrimaryImageTag
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (item.BackdropImageTags && item.BackdropImageTags.length) {
|
|
||||||
|
|
||||||
imgUrl = LibraryBrowser.getImageUrl(item, 'Backdrop', 0, {
|
|
||||||
height: 198,
|
|
||||||
width: 352
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/audio.png";
|
|
||||||
isDefault = true;
|
|
||||||
}
|
|
||||||
else if (item.MediaType == "Video" || item.Type == "Season" || item.Type == "Series") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/video.png";
|
|
||||||
isDefault = true;
|
|
||||||
}
|
|
||||||
else if (item.Type == "Person") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/person.png";
|
|
||||||
isDefault = true;
|
|
||||||
}
|
|
||||||
else if (item.Type == "MusicArtist") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/audiocollection.png";
|
|
||||||
isDefault = true;
|
|
||||||
}
|
|
||||||
else if (item.MediaType == "Game") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/game.png";
|
|
||||||
isDefault = true;
|
|
||||||
}
|
|
||||||
else if (item.Type == "Studio" || item.Type == "Genre" || item.Type == "MusicGenre" || item.Type == "GameGenre") {
|
|
||||||
|
|
||||||
if (options.context == "games") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/game.png";
|
|
||||||
}
|
|
||||||
else if (options.context == "music") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/audio.png";
|
|
||||||
}
|
|
||||||
else if (options.context == "movies") {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/chapter.png";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
imgUrl = "css/images/items/list/collection.png";
|
|
||||||
}
|
|
||||||
isDefault = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
imgUrl = "css/images/items/list/collection.png";
|
|
||||||
isDefault = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
cssClass = isDefault ? "tileImage defaultTileImage" : "tileImage";
|
|
||||||
|
|
||||||
html += '<div class="' + cssClass + '" style="background-image: url(\'' + imgUrl + '\');"></div>';
|
|
||||||
|
|
||||||
html += '<div class="tileContent">';
|
|
||||||
|
|
||||||
if (options.showParentName !== false) {
|
|
||||||
if (item.SeriesName || item.Album || item.AlbumArtist) {
|
|
||||||
var seriesName = item.SeriesName || item.Album || item.AlbumArtist;
|
|
||||||
html += '<div class="tileName">' + seriesName + '</div>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var name = LibraryBrowser.getPosterViewDisplayName(item, options.displayAsSpecial);
|
|
||||||
|
|
||||||
html += '<div class="tileName">' + name + '</div>';
|
|
||||||
|
|
||||||
if (item.CommunityRating || item.CriticRating) {
|
|
||||||
html += '<p>' + LibraryBrowser.getRatingHtml(item) + '</p>';
|
|
||||||
}
|
|
||||||
|
|
||||||
var childText = null;
|
|
||||||
|
|
||||||
if (item.Type == "BoxSet") {
|
|
||||||
|
|
||||||
childText = item.ChildCount == 1 ? "1 Movie" : item.ChildCount + " Movies";
|
|
||||||
|
|
||||||
html += '<p class="itemMiscInfo">' + childText + '</p>';
|
|
||||||
}
|
|
||||||
else if (item.Type == "GameSystem") {
|
|
||||||
|
|
||||||
childText = item.ChildCount == 1 ? "1 Game" : item.ChildCount + " Games";
|
|
||||||
|
|
||||||
html += '<p class="itemMiscInfo">' + childText + '</p>';
|
|
||||||
}
|
|
||||||
else if (item.Type == "MusicAlbum") {
|
|
||||||
|
|
||||||
//childText = item.ChildCount == 1 ? "1 Song" : item.ChildCount + " Songs";
|
|
||||||
|
|
||||||
//html += '<p class="itemMiscInfo">' + childText + '</p>';
|
|
||||||
}
|
|
||||||
else if (item.Type == "Genre" || item.Type == "Studio" || item.Type == "Person" || item.Type == "MusicArtist" || item.Type == "MusicGenre" || item.Type == "GameGenre") {
|
|
||||||
|
|
||||||
var itemCountHtml = LibraryBrowser.getItemCountsHtml(options, item);
|
|
||||||
|
|
||||||
if (itemCountHtml) {
|
|
||||||
html += '<p class="itemMiscInfo">' + itemCountHtml + '</p>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (item.Type == "Game") {
|
|
||||||
|
|
||||||
html += '<p class="itemMiscInfo">' + (item.GameSystem) + '</p>';
|
|
||||||
}
|
|
||||||
else if (item.Type == "Episode") {
|
|
||||||
|
|
||||||
// Skip it. Just clutter
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
html += '<p class="itemMiscInfo">' + LibraryBrowser.getMiscInfoHtml(item) + '</p>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.Type == "MusicAlbum") {
|
|
||||||
|
|
||||||
html += '<p class="itemMiscInfo">' + LibraryBrowser.getMiscInfoHtml(item) + '</p>';
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '<p class="userDataIcons">' + LibraryBrowser.getUserDataIconsHtml(item) + '</p>';
|
|
||||||
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
if (item.LocationType == "Offline" || item.LocationType == "Virtual") {
|
|
||||||
html += LibraryBrowser.getOfflineIndicatorHtml(item);
|
|
||||||
} else {
|
|
||||||
html += LibraryBrowser.getPlayedIndicatorHtml(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
html += "</a>";
|
|
||||||
}
|
|
||||||
|
|
||||||
return html;
|
|
||||||
},
|
|
||||||
|
|
||||||
getItemCountsHtml: function (options, item) {
|
getItemCountsHtml: function (options, item) {
|
||||||
|
|
||||||
var counts = [];
|
var counts = [];
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
|
|
||||||
if (counts.MovieCount) {
|
if (counts.MovieCount) {
|
||||||
|
|
||||||
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'movies' ? selectedCssClass : '') + '" href="moviesrecommended.html">' + (view == 'movies' ? selectedHtml : '') + '<span class="viewName">Movies</span></a>';
|
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'movies' ? selectedCssClass : '') + '" href="movieslatest.html">' + (view == 'movies' ? selectedHtml : '') + '<span class="viewName">Movies</span></a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (counts.SeriesCount) {
|
if (counts.SeriesCount) {
|
||||||
|
@ -92,6 +92,10 @@
|
||||||
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'games' ? selectedCssClass : '') + '" href="gamesrecommended.html">' + (view == 'games' ? selectedHtml : '') + '<span class="viewName">Games</span></a>';
|
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'games' ? selectedCssClass : '') + '" href="gamesrecommended.html">' + (view == 'games' ? selectedHtml : '') + '<span class="viewName">Games</span></a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (counts.BoxSetCount) {
|
||||||
|
html += '<a class="viewMenuLink viewMenuTextLink desktopViewMenuLink' + (view == 'boxsets' ? selectedCssClass : '') + '" href="collections.html">' + (view == 'boxsets' ? selectedHtml : '') + '<span class="viewName">Collections</span></a>';
|
||||||
|
}
|
||||||
|
|
||||||
$('.viewMenuRemoteControlButton', page).before(html);
|
$('.viewMenuRemoteControlButton', page).before(html);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,74 +126,33 @@
|
||||||
|
|
||||||
html += '<p class="libraryPanelHeader"><a href="index.html" class="imageLink"><img src="css/images/mblogoicon.png" /><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></a></p>';
|
html += '<p class="libraryPanelHeader"><a href="index.html" class="imageLink"><img src="css/images/mblogoicon.png" /><span>MEDIA</span><span class="mediaBrowserAccent">BROWSER</span></a></p>';
|
||||||
|
|
||||||
html += '<div data-role="collapsible-set" data-inset="false" data-mini="true">';
|
html += '<ul data-role="listview">';
|
||||||
|
|
||||||
if (counts.MovieCount) {
|
if (counts.MovieCount) {
|
||||||
|
html += '<li><a class="libraryPanelLink" href="movieslatest.html">Movies</a></li>';
|
||||||
html += getCollapsibleHtml('Movies', [
|
|
||||||
|
|
||||||
{ text: 'Suggested', href: 'moviesrecommended.html' },
|
|
||||||
{ text: 'Movies', href: 'movies.html' },
|
|
||||||
{ text: 'Collections', href: 'boxsets.html' },
|
|
||||||
{ text: 'Trailers', href: 'movietrailers.html' },
|
|
||||||
{ text: 'Genres', href: 'moviegenres.html' },
|
|
||||||
{ text: 'People', href: 'moviepeople.html' },
|
|
||||||
{ text: 'Studios', href: 'moviestudios.html' }
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (counts.SeriesCount) {
|
if (counts.SeriesCount) {
|
||||||
html += getCollapsibleHtml('TV', [
|
html += '<li><a class="libraryPanelLink" href="tvrecommended.html">TV</a></li>';
|
||||||
|
|
||||||
{ text: 'Suggested', href: 'tvrecommended.html' },
|
|
||||||
{ text: 'Latest', href: 'tvlatest.html' },
|
|
||||||
{ text: 'Upcoming', href: 'tvupcoming.html' },
|
|
||||||
{ text: 'Shows', href: 'tvshows.html' },
|
|
||||||
{ text: 'Episodes', href: 'episodes.html' },
|
|
||||||
{ text: 'Genres', href: 'tvgenres.html' },
|
|
||||||
{ text: 'People', href: 'tvpeople.html' },
|
|
||||||
{ text: 'Networks', href: 'tvstudios.html' }
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (liveTvInfo.EnabledUsers.indexOf(Dashboard.getCurrentUserId()) != -1) {
|
if (liveTvInfo.EnabledUsers.indexOf(Dashboard.getCurrentUserId()) != -1) {
|
||||||
html += getCollapsibleHtml('Live TV', [
|
html += '<li><a class="libraryPanelLink" href="livetvsuggested.html">Live TV</a></li>';
|
||||||
|
|
||||||
{ text: 'Suggested', href: 'livetvsuggested.html' },
|
|
||||||
{ text: 'Guide', href: 'livetvguide.html' },
|
|
||||||
{ text: 'Channels', href: 'livetvchannels.html' },
|
|
||||||
{ text: 'Recordings', href: 'livetvrecordings.html' },
|
|
||||||
{ text: 'Scheduled', href: 'livetvtimers.html' },
|
|
||||||
{ text: 'Series', href: 'livetvseriestimers.html' }
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (counts.SongCount || counts.MusicVideoCount) {
|
if (counts.SongCount || counts.MusicVideoCount) {
|
||||||
html += getCollapsibleHtml('Music', [
|
html += '<li><a class="libraryPanelLink" href="musicrecommended.html">Music</a></li>';
|
||||||
|
|
||||||
{ text: 'Suggested', href: 'musicrecommended.html' },
|
|
||||||
{ text: 'Songs', href: 'songs.html' },
|
|
||||||
{ text: 'Albums', href: 'musicalbums.html' },
|
|
||||||
{ text: 'Album Artists', href: 'musicalbumartists.html' },
|
|
||||||
{ text: 'Artists', href: 'musicartists.html' },
|
|
||||||
{ text: 'Music Videos', href: 'musicvideos.html' },
|
|
||||||
{ text: 'Genres', href: 'musicgenres.html' }
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (counts.GameCount) {
|
if (counts.GameCount) {
|
||||||
html += getCollapsibleHtml('Games', [
|
html += '<li><a class="libraryPanelLink" href="gamesrecommended.html">Games</a></li>';
|
||||||
|
|
||||||
{ text: 'Suggested', href: 'gamesrecommended.html' },
|
|
||||||
{ text: 'Games', href: 'games.html' },
|
|
||||||
{ text: 'Game Systems', href: 'gamesystems.html' },
|
|
||||||
{ text: 'Genres', href: 'gamegenres.html' },
|
|
||||||
{ text: 'Studios', href: 'gamestudios.html' }
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '</div>';
|
if (counts.BoxSetCount) {
|
||||||
|
html += '<li><a class="libraryPanelLink" href="collections.html">Collections</a></li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '</ul>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
$(page).append(html);
|
$(page).append(html);
|
||||||
|
@ -200,50 +163,23 @@
|
||||||
return panel;
|
return panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCollapsibleHtml(title, links) {
|
|
||||||
|
|
||||||
var i, length;
|
|
||||||
var selectedIndex = -1;
|
|
||||||
var collapsed = 'true';
|
|
||||||
|
|
||||||
var currentUrl = window.location.toString().toLowerCase();
|
|
||||||
|
|
||||||
for (i = 0, length = links.length; i < length; i++) {
|
|
||||||
|
|
||||||
if (currentUrl.indexOf(links[i].href.toLowerCase()) != -1) {
|
|
||||||
collapsed = 'false';
|
|
||||||
selectedIndex = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
|
|
||||||
html += '<div data-role="collapsible" data-mini="true" data-collapsed="' + collapsed + '">';
|
|
||||||
html += '<h4 class="libraryPanelCollapsibleHeader">' + title + '</h4>';
|
|
||||||
|
|
||||||
html += '<ul data-role="listview" data-inset="false">';
|
|
||||||
|
|
||||||
for (i = 0, length = links.length; i < length; i++) {
|
|
||||||
|
|
||||||
var link = links[i];
|
|
||||||
|
|
||||||
var href = selectedIndex == i ? '#' : link.href;
|
|
||||||
|
|
||||||
html += '<li><a class="libraryPanelLink" href="' + href + '">' + link.text + '</a></li>';
|
|
||||||
}
|
|
||||||
|
|
||||||
html += '</ul>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
window.LibraryMenu = {
|
window.LibraryMenu = {
|
||||||
showLibraryMenu: showLibraryMenu
|
showLibraryMenu: showLibraryMenu
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).on('pagebeforeshow', ".libraryPage", function () {
|
$(document).on('pageinit', ".libraryPage", function () {
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
|
$('.libraryViewNav', page).wrapInner('<div class="libraryViewNavInner"></div>');
|
||||||
|
|
||||||
|
$('.libraryViewNav a', page).each(function () {
|
||||||
|
|
||||||
|
this.innerHTML = '<span class="libraryViewNavLinkContent">' + this.innerHTML + '</span>';
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}).on('pagebeforeshow', ".libraryPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
(function ($, document, window) {
|
(function ($, document, window) {
|
||||||
|
|
||||||
|
var defaultSortBy = "SortName";
|
||||||
|
|
||||||
// The base query options
|
// The base query options
|
||||||
var query = {
|
var query = {
|
||||||
|
|
||||||
SortBy: "SeriesSortName,SortName",
|
SortBy: defaultSortBy,
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "MediaStreams,DateCreated,Settings,Studios",
|
Fields: "MediaStreams,DateCreated,Settings,Studios",
|
||||||
|
@ -21,21 +23,22 @@
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Series' },
|
{ name: 'Series', sortField: 'SeriesSortName,SortName' },
|
||||||
{ name: 'Season' },
|
{ name: 'Season', sortField: 'SortName' },
|
||||||
{ name: 'Date Added' }
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
case 'Series':
|
case 'Series':
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Network' },
|
{ name: 'Network', sortField: 'Studio,SortName' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||||
{ name: 'Year' },
|
{ name: 'Year', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||||
{ name: 'Rating' },
|
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||||
{ name: 'Runtime' },
|
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||||
|
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||||
{ name: 'Trailers' },
|
{ name: 'Trailers' },
|
||||||
{ name: 'Specials' }
|
{ name: 'Specials' }
|
||||||
];
|
];
|
||||||
|
@ -44,12 +47,13 @@
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Game System' },
|
{ name: 'Game System', sortField: 'GameSystem,SortName' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,GameSystem,SortName' },
|
||||||
{ name: 'Release Date' },
|
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,GameSystem,SortName' },
|
||||||
{ name: 'Rating' },
|
{ name: 'Parental Rating', sortField: 'OfficialRating,GameSystem,SortName' },
|
||||||
{ name: 'Players' },
|
{ name: 'Community Rating', sortField: 'CommunityRating,GameSystem,SortName' },
|
||||||
|
{ name: 'Players', sortField: 'Players,GameSystem,SortName' },
|
||||||
{ name: 'Trailers' }
|
{ name: 'Trailers' }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -57,13 +61,14 @@
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Album Artist' },
|
{ name: 'Album Artist', sortField: 'AlbumArtist,Album,SortName' },
|
||||||
{ name: 'Album' },
|
{ name: 'Album', sortField: 'Album,SortName' },
|
||||||
|
{ name: 'Disc' },
|
||||||
{ name: 'Track' },
|
{ name: 'Track' },
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'Name' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||||
{ name: 'Release Date' },
|
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||||
{ name: 'Runtime' },
|
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||||
{ name: 'Audio' },
|
{ name: 'Audio' },
|
||||||
{ name: 'Embedded Image' }
|
{ name: 'Embedded Image' }
|
||||||
];
|
];
|
||||||
|
@ -72,13 +77,15 @@
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Series' },
|
{ name: 'Series', sortField: 'SeriesSortName,SortName' },
|
||||||
{ name: 'Season' },
|
{ name: 'Season' },
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||||
{ name: 'Release Date' },
|
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||||
{ name: 'Runtime' },
|
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||||
|
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||||
{ name: 'Video' },
|
{ name: 'Video' },
|
||||||
|
{ name: 'Resolution' },
|
||||||
{ name: 'Audio' },
|
{ name: 'Audio' },
|
||||||
{ name: 'Subtitles' }
|
{ name: 'Subtitles' }
|
||||||
];
|
];
|
||||||
|
@ -87,10 +94,11 @@
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||||
{ name: 'Release Date' },
|
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||||
{ name: 'Rating' },
|
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||||
|
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||||
{ name: 'Trailers' }
|
{ name: 'Trailers' }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -99,42 +107,46 @@
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Series' },
|
{ name: 'Series' },
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||||
{ name: 'Release Date' },
|
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||||
{ name: 'Rating' }
|
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||||
|
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
case 'MusicArtist':
|
case 'MusicArtist':
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Date Added' }
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
case 'MusicAlbum':
|
case 'MusicAlbum':
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Album Artist' },
|
{ name: 'Album Artist', sortField: 'AlbumArtist,SortName' },
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||||
{ name: 'Release Date' },
|
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||||
{ name: 'Rating' },
|
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||||
{ name: 'Runtime' }
|
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||||
|
{ name: 'Runtime', sortField: 'Runtime,SortName' }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
{},
|
{},
|
||||||
{ name: 'Name' },
|
{ name: 'Name', sortField: 'SortName' },
|
||||||
{ name: 'Date Added' },
|
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||||
{ name: 'Release Date' },
|
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||||
{ name: 'Rating' },
|
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||||
{ name: 'Runtime' },
|
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||||
|
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||||
{ name: 'Video' },
|
{ name: 'Video' },
|
||||||
|
{ name: 'Resolution' },
|
||||||
{ name: 'Audio' },
|
{ name: 'Audio' },
|
||||||
{ name: 'Subtitles' },
|
{ name: 'Subtitles' },
|
||||||
{ name: 'Trailers' },
|
{ name: 'Trailers' },
|
||||||
|
@ -144,6 +156,53 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getDefaultSortOrder(reportType) {
|
||||||
|
|
||||||
|
switch (reportType) {
|
||||||
|
|
||||||
|
case 'Season':
|
||||||
|
{
|
||||||
|
return "SeriesSortName,SortName";
|
||||||
|
}
|
||||||
|
case 'Series':
|
||||||
|
{
|
||||||
|
return "SortName";
|
||||||
|
}
|
||||||
|
case 'Game':
|
||||||
|
{
|
||||||
|
return "GameSystem,SortName";
|
||||||
|
}
|
||||||
|
case 'Audio':
|
||||||
|
{
|
||||||
|
return "AlbumArtist,Album,SortName";
|
||||||
|
}
|
||||||
|
case 'Episode':
|
||||||
|
{
|
||||||
|
return "SeriesSortName,SortName";
|
||||||
|
}
|
||||||
|
case 'BoxSet':
|
||||||
|
{
|
||||||
|
return "SortName";
|
||||||
|
}
|
||||||
|
case 'Book':
|
||||||
|
{
|
||||||
|
return "SortName";
|
||||||
|
}
|
||||||
|
case 'MusicArtist':
|
||||||
|
{
|
||||||
|
return "SortName";
|
||||||
|
}
|
||||||
|
case 'MusicAlbum':
|
||||||
|
{
|
||||||
|
return "AlbumArtist,SortName";
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return "SortName";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getItemCellsHtml(item, headercells) {
|
function getItemCellsHtml(item, headercells) {
|
||||||
|
|
||||||
return headercells.map(function (cell) {
|
return headercells.map(function (cell) {
|
||||||
|
@ -151,6 +210,8 @@
|
||||||
var html = '';
|
var html = '';
|
||||||
html += '<td>';
|
html += '<td>';
|
||||||
|
|
||||||
|
var stream;
|
||||||
|
|
||||||
switch (cell.type || cell.name) {
|
switch (cell.type || cell.name) {
|
||||||
|
|
||||||
case 'Album Artist':
|
case 'Album Artist':
|
||||||
|
@ -178,6 +239,11 @@
|
||||||
html += item.Studios.length ? item.Studios[0].Name : ' ';
|
html += item.Studios.length ? item.Studios[0].Name : ' ';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'Disc':
|
||||||
|
{
|
||||||
|
html += item.ParentIndexNumber == null ? '' : item.ParentIndexNumber;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'Track':
|
case 'Track':
|
||||||
{
|
{
|
||||||
html += item.IndexNumber == null ? '' : item.IndexNumber;
|
html += item.IndexNumber == null ? '' : item.IndexNumber;
|
||||||
|
@ -190,7 +256,7 @@
|
||||||
}
|
}
|
||||||
case 'Audio':
|
case 'Audio':
|
||||||
{
|
{
|
||||||
var stream = (item.MediaStreams || []).filter(function (s) {
|
stream = (item.MediaStreams || []).filter(function (s) {
|
||||||
|
|
||||||
return s.Type == 'Audio';
|
return s.Type == 'Audio';
|
||||||
|
|
||||||
|
@ -205,7 +271,7 @@
|
||||||
}
|
}
|
||||||
case 'Video':
|
case 'Video':
|
||||||
{
|
{
|
||||||
var stream = (item.MediaStreams || []).filter(function (s) {
|
stream = (item.MediaStreams || []).filter(function (s) {
|
||||||
|
|
||||||
return s.Type == 'Video';
|
return s.Type == 'Video';
|
||||||
|
|
||||||
|
@ -216,6 +282,19 @@
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'Resolution':
|
||||||
|
{
|
||||||
|
stream = (item.MediaStreams || []).filter(function (s) {
|
||||||
|
|
||||||
|
return s.Type == 'Video';
|
||||||
|
|
||||||
|
})[0];
|
||||||
|
|
||||||
|
if (stream && stream.Width) {
|
||||||
|
html += stream.Width + "*" + (stream.Height || "-");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'Embedded Image':
|
case 'Embedded Image':
|
||||||
{
|
{
|
||||||
if ((item.MediaStreams || []).filter(function (s) {
|
if ((item.MediaStreams || []).filter(function (s) {
|
||||||
|
@ -265,7 +344,7 @@
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'Season':
|
case 'Season':
|
||||||
{
|
{
|
||||||
if (item.Type == "Episode") {
|
if (item.Type == "Episode") {
|
||||||
|
@ -281,12 +360,17 @@
|
||||||
html += '<a href="edititemmetadata.html?id=' + item.Id + '">' + LibraryBrowser.getPosterViewDisplayName(item, false, false) + '</a>';
|
html += '<a href="edititemmetadata.html?id=' + item.Id + '">' + LibraryBrowser.getPosterViewDisplayName(item, false, false) + '</a>';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'Rating':
|
case 'Community Rating':
|
||||||
|
{
|
||||||
|
html += item.CommunityRating || ' ';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'Parental Rating':
|
||||||
{
|
{
|
||||||
html += item.OfficialRating || ' ';
|
html += item.OfficialRating || ' ';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'Year':
|
case 'Year':
|
||||||
case 'Release Date':
|
case 'Release Date':
|
||||||
{
|
{
|
||||||
|
@ -357,7 +441,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.BackdropImageTags || !item.BackdropImageTags.length) {
|
if (!item.BackdropImageTags || !item.BackdropImageTags.length) {
|
||||||
if (item.Type !== "Episode" && item.Type !== "Season" && item.MediaType !== "Audio" && item.Type !== "Channel") {
|
if (item.Type !== "Episode" && item.Type !== "Season" && item.MediaType !== "Audio" && item.Type !== "Channel" && item.Type !== "MusicAlbum") {
|
||||||
html += '<a href="edititemimages.html?id=' + item.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." /></a>';
|
html += '<a href="edititemimages.html?id=' + item.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." /></a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -378,11 +462,11 @@
|
||||||
}).join('');
|
}).join('');
|
||||||
}
|
}
|
||||||
|
|
||||||
function getReportHtml(items, reportType) {
|
function getReportHtml(items, reportType, currentSortField, currentSortDirection) {
|
||||||
|
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
||||||
html += '<table data-role="table" data-mode="reflow" class="tblLibraryReport detailTable stripedTable ui-responsive table-stroke" style="display: table;">';
|
html += '<table id="tblReport" data-role="table" data-mode="reflow" class="tblLibraryReport stripedTable ui-responsive table-stroke detailTable" style="display:table;">';
|
||||||
|
|
||||||
html += '<thead>';
|
html += '<thead>';
|
||||||
html += '<tr>';
|
html += '<tr>';
|
||||||
|
@ -391,7 +475,31 @@
|
||||||
|
|
||||||
html += cells.map(function (c) {
|
html += cells.map(function (c) {
|
||||||
|
|
||||||
return '<th>' + (c.name || ' ') + '</th>';
|
var cellHtml = '<th data-priority="' + (c.priority || 'persist') + '">';
|
||||||
|
|
||||||
|
if (c.sortField) {
|
||||||
|
cellHtml += '<a class="lnkColumnSort" href="#" data-sortfield="' + c.sortField + '" style="text-decoration:underline;">';
|
||||||
|
}
|
||||||
|
|
||||||
|
cellHtml += (c.name || ' ');
|
||||||
|
|
||||||
|
if (c.sortField) {
|
||||||
|
|
||||||
|
cellHtml += '</a>';
|
||||||
|
|
||||||
|
if (c.sortField == currentSortField) {
|
||||||
|
|
||||||
|
if (currentSortDirection == "Descending") {
|
||||||
|
cellHtml += '<span style="font-weight:bold;margin-left:5px;vertical-align:top;font-size:12px;">↓</span>';
|
||||||
|
} else {
|
||||||
|
cellHtml += '<span style="font-weight:bold;margin-left:5px;vertical-align:top;font-size:12px;">↑</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cellHtml += '</th>';
|
||||||
|
|
||||||
|
return cellHtml;
|
||||||
|
|
||||||
}).join('');
|
}).join('');
|
||||||
|
|
||||||
|
@ -427,7 +535,7 @@
|
||||||
|
|
||||||
$('.listBottomPaging', page).html(LibraryBrowser.getPagingHtml(query, result.TotalRecordCount)).trigger('create');
|
$('.listBottomPaging', page).html(LibraryBrowser.getPagingHtml(query, result.TotalRecordCount)).trigger('create');
|
||||||
|
|
||||||
$('.reportContainer', page).html(getReportHtml(result.Items, reportType)).trigger('create');
|
$('.reportContainer', page).html(getReportHtml(result.Items, reportType, query.SortBy, query.SortOrder)).trigger('create');
|
||||||
|
|
||||||
$('.btnNextPage', page).on('click', function () {
|
$('.btnNextPage', page).on('click', function () {
|
||||||
query.StartIndex += query.Limit;
|
query.StartIndex += query.Limit;
|
||||||
|
@ -444,6 +552,34 @@
|
||||||
query.StartIndex = 0;
|
query.StartIndex = 0;
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.lnkColumnSort', page).on('click', function () {
|
||||||
|
|
||||||
|
var order = this.getAttribute('data-sortfield');
|
||||||
|
|
||||||
|
if (query.SortBy == order) {
|
||||||
|
|
||||||
|
if (query.SortOrder == "Descending") {
|
||||||
|
|
||||||
|
query.SortOrder = "Ascending";
|
||||||
|
query.SortBy = defaultSortBy;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
query.SortOrder = "Descending";
|
||||||
|
query.SortBy = order;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
query.SortOrder = "Ascending";
|
||||||
|
query.SortBy = order;
|
||||||
|
}
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
|
@ -536,6 +672,9 @@
|
||||||
query.StartIndex = 0;
|
query.StartIndex = 0;
|
||||||
query.IncludeItemTypes = this.value;
|
query.IncludeItemTypes = this.value;
|
||||||
|
|
||||||
|
query.SortBy = getDefaultSortOrder(this.value);
|
||||||
|
query.SortOrder = "Ascending";
|
||||||
|
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -710,6 +849,9 @@
|
||||||
query.StartIndex = 0;
|
query.StartIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query.SortBy = getDefaultSortOrder($('#selectView', page).val());
|
||||||
|
query.SortOrder = "Ascending";
|
||||||
|
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
|
|
||||||
}).on('pageshow', "#libraryReportPage", function () {
|
}).on('pageshow', "#libraryReportPage", function () {
|
||||||
|
|
|
@ -153,14 +153,15 @@
|
||||||
|
|
||||||
html += '<li><a href="livetvtimer.html?id=' + timer.Id + '">';
|
html += '<li><a href="livetvtimer.html?id=' + timer.Id + '">';
|
||||||
|
|
||||||
var program = timer.ProgramInfo;
|
var program = timer.ProgramInfo || {};
|
||||||
var imgUrl;
|
var imgUrl;
|
||||||
|
|
||||||
if (program.ImageTags && program.ImageTags.Primary) {
|
var programImages = program.ImageTags || {};
|
||||||
|
if (programImages.Primary) {
|
||||||
|
|
||||||
imgUrl = ApiClient.getImageUrl(program.Id, {
|
imgUrl = ApiClient.getImageUrl(program.Id, {
|
||||||
height: 160,
|
height: 160,
|
||||||
tag: program.ImageTags.Primary,
|
tag: programImages.Primary,
|
||||||
type: "Primary"
|
type: "Primary"
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -234,9 +235,9 @@
|
||||||
userId: Dashboard.getCurrentUserId(),
|
userId: Dashboard.getCurrentUserId(),
|
||||||
seriesTimerId: id
|
seriesTimerId: id
|
||||||
|
|
||||||
}).done(function (result) {
|
}).done(function (recordingResult) {
|
||||||
|
|
||||||
renderRecordings(page, result);
|
renderRecordings(page, recordingResult);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -244,9 +245,9 @@
|
||||||
|
|
||||||
seriesTimerId: id
|
seriesTimerId: id
|
||||||
|
|
||||||
}).done(function (result) {
|
}).done(function (timerResult) {
|
||||||
|
|
||||||
renderSchedule(page, result);
|
renderSchedule(page, timerResult);
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,14 @@
|
||||||
|
|
||||||
userId: Dashboard.getCurrentUserId(),
|
userId: Dashboard.getCurrentUserId(),
|
||||||
IsAiring: true,
|
IsAiring: true,
|
||||||
limit: 10
|
limit: 12
|
||||||
|
|
||||||
}).done(function (result) {
|
}).done(function (result) {
|
||||||
|
|
||||||
var html = LibraryBrowser.getPosterViewHtml({
|
var html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "square",
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
showParentTitle: true,
|
showParentTitle: true,
|
||||||
overlayText: true,
|
overlayText: true,
|
||||||
|
@ -31,14 +31,14 @@
|
||||||
userId: Dashboard.getCurrentUserId(),
|
userId: Dashboard.getCurrentUserId(),
|
||||||
IsAiring: false,
|
IsAiring: false,
|
||||||
HasAired: false,
|
HasAired: false,
|
||||||
limit: 10
|
limit: 12
|
||||||
|
|
||||||
}).done(function (result) {
|
}).done(function (result) {
|
||||||
|
|
||||||
var html = LibraryBrowser.getPosterViewHtml({
|
var html = LibraryBrowser.getPosterViewHtml({
|
||||||
|
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "square",
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
showParentTitle: true,
|
showParentTitle: true,
|
||||||
overlayText: true,
|
overlayText: true,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "BoxSet",
|
IncludeItemTypes: "BoxSet",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
Fields: "PrimaryImageAspectRatio",
|
||||||
StartIndex: 0
|
StartIndex: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -26,19 +26,26 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
if (result.TotalRecordCount) {
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
var checkSortOption = $('.radioSortBy:checked', page);
|
||||||
|
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "portrait",
|
shape: "portrait",
|
||||||
context: 'movies',
|
context: 'movies',
|
||||||
useAverageAspectRatio: true,
|
useAverageAspectRatio: true,
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
centerText: true
|
centerText: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount);
|
||||||
|
|
||||||
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>';
|
||||||
|
}
|
||||||
|
|
||||||
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
$('#items', page).html(html).trigger('create').createPosterItemHoverMenu();
|
||||||
|
|
||||||
|
@ -60,6 +67,16 @@
|
||||||
|
|
||||||
LibraryBrowser.saveQueryValues('boxsets', query);
|
LibraryBrowser.saveQueryValues('boxsets', query);
|
||||||
|
|
||||||
|
Dashboard.getCurrentUser().done(function(user) {
|
||||||
|
|
||||||
|
if (user.Configuration.IsAdministrator) {
|
||||||
|
$('#btnNewCollection', page).removeClass('hide');
|
||||||
|
} else {
|
||||||
|
$('#btnNewCollection', page).addClass('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
Dashboard.hideLoadingMsg();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -95,6 +112,13 @@
|
||||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showNewCollectionPanel(page) {
|
||||||
|
|
||||||
|
$('#newCollectionPanel', page).panel('toggle');
|
||||||
|
|
||||||
|
$('#txtNewCollectionName', page).val('').focus();
|
||||||
|
}
|
||||||
|
|
||||||
$(document).on('pageinit', "#boxsetsPage", function () {
|
$(document).on('pageinit', "#boxsetsPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
@ -164,6 +188,11 @@
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#btnNewCollection', page).on('click', function () {
|
||||||
|
|
||||||
|
showNewCollectionPanel(page);
|
||||||
|
});
|
||||||
|
|
||||||
}).on('pagebeforeshow', "#boxsetsPage", function () {
|
}).on('pagebeforeshow', "#boxsetsPage", function () {
|
||||||
|
|
||||||
var limit = LibraryBrowser.getDefaultPageSize();
|
var limit = LibraryBrowser.getDefaultPageSize();
|
||||||
|
@ -183,4 +212,37 @@
|
||||||
updateFilterControls(this);
|
updateFilterControls(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
})(jQuery, document);
|
})(jQuery, document);
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
|
@ -66,36 +63,12 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('pageinit', "#movieGenresPage", function () {
|
$(document).on('pageinit', "#movieGenresPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -27,9 +27,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "portrait",
|
shape: "portrait",
|
||||||
|
@ -68,19 +65,6 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
|
|
||||||
$('.chkPersonTypeFilter', page).each(function () {
|
$('.chkPersonTypeFilter', page).each(function () {
|
||||||
|
|
||||||
var filters = "," + (query.PersonTypes || "");
|
var filters = "," + (query.PersonTypes || "");
|
||||||
|
@ -97,18 +81,6 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "Movie",
|
IncludeItemTypes: "Movie",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
Fields: "PrimaryImageAspectRatio",
|
||||||
StartIndex: 0
|
StartIndex: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
60
dashboard-ui/scripts/movieslatest.js
Normal file
60
dashboard-ui/scripts/movieslatest.js
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
(function ($, document) {
|
||||||
|
|
||||||
|
$(document).on('pagebeforeshow', "#moviesLatestPage", function () {
|
||||||
|
|
||||||
|
var screenWidth = $(window).width();
|
||||||
|
|
||||||
|
var page = this;
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
|
||||||
|
SortBy: "DateCreated",
|
||||||
|
SortOrder: "Descending",
|
||||||
|
IncludeItemTypes: "Movie",
|
||||||
|
Limit: screenWidth >= 1920 ? 32 : (screenWidth >= 1440 ? 24 : (screenWidth >= 800 ? 18 : 12)),
|
||||||
|
Recursive: true,
|
||||||
|
Fields: "PrimaryImageAspectRatio",
|
||||||
|
Filters: "IsUnplayed"
|
||||||
|
};
|
||||||
|
|
||||||
|
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
||||||
|
|
||||||
|
$('#recentlyAddedItems', page).html(LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
useAverageAspectRatio: true
|
||||||
|
|
||||||
|
})).createPosterItemHoverMenu();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
SortBy: "DateCreated",
|
||||||
|
SortOrder: "Descending",
|
||||||
|
IncludeItemTypes: "Trailer",
|
||||||
|
Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 6),
|
||||||
|
Recursive: true,
|
||||||
|
Fields: "PrimaryImageAspectRatio",
|
||||||
|
Filters: "IsUnplayed"
|
||||||
|
};
|
||||||
|
|
||||||
|
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
||||||
|
|
||||||
|
if (result.Items.length) {
|
||||||
|
$('#trailerSection', page).show();
|
||||||
|
} else {
|
||||||
|
$('#trailerSection', page).hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#trailerItems', page).html(LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: result.Items,
|
||||||
|
useAverageAspectRatio: true
|
||||||
|
|
||||||
|
})).createPosterItemHoverMenu();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
})(jQuery, document);
|
|
@ -1,5 +1,41 @@
|
||||||
(function ($, document) {
|
(function ($, document) {
|
||||||
|
|
||||||
|
function getRecommendationHtml(recommendation) {
|
||||||
|
|
||||||
|
var html = '';
|
||||||
|
|
||||||
|
var title = '';
|
||||||
|
|
||||||
|
switch (recommendation.RecommendationType) {
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '<h1 class="listHeader">' + title + '</h1>';
|
||||||
|
|
||||||
|
html += '<div>';
|
||||||
|
html += LibraryBrowser.getPosterViewHtml({
|
||||||
|
items: recommendation.Items,
|
||||||
|
useAverageAspectRatio: true
|
||||||
|
});
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
$(document).on('pagebeforeshow', "#moviesRecommendedPage", function () {
|
$(document).on('pagebeforeshow', "#moviesRecommendedPage", function () {
|
||||||
|
|
||||||
var screenWidth = $(window).width();
|
var screenWidth = $(window).width();
|
||||||
|
@ -8,34 +44,13 @@
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
|
|
||||||
SortBy: "DateCreated",
|
|
||||||
SortOrder: "Descending",
|
|
||||||
IncludeItemTypes: "Movie",
|
|
||||||
Limit: screenWidth >= 1920 ? 21 : (screenWidth >= 1440 ? 16 : 12),
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "PrimaryImageAspectRatio,DateCreated,UserData",
|
|
||||||
Filters: "IsUnplayed"
|
|
||||||
};
|
|
||||||
|
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
|
||||||
|
|
||||||
$('#recentlyAddedItems', page).html(LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
useAverageAspectRatio: true
|
|
||||||
|
|
||||||
})).createPosterItemHoverMenu();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
options = {
|
|
||||||
|
|
||||||
SortBy: "DatePlayed",
|
SortBy: "DatePlayed",
|
||||||
SortOrder: "Descending",
|
SortOrder: "Descending",
|
||||||
IncludeItemTypes: "Movie",
|
IncludeItemTypes: "Movie",
|
||||||
Filters: "IsResumable",
|
Filters: "IsResumable",
|
||||||
Limit: screenWidth >= 1920 ? 4 : (screenWidth >= 1440 ? 4 : 3),
|
Limit: screenWidth >= 1920 ? 4 : (screenWidth >= 1440 ? 4 : 3),
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,UserData"
|
Fields: "PrimaryImageAspectRatio"
|
||||||
};
|
};
|
||||||
|
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
||||||
|
@ -57,33 +72,26 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
options = {
|
var url = ApiClient.getUrl("Movies/Recommendations", {
|
||||||
|
|
||||||
SortBy: "DateCreated",
|
userId: Dashboard.getCurrentUserId(),
|
||||||
SortOrder: "Descending",
|
categoryLimit: screenWidth >= 1200 ? 6 : 3,
|
||||||
IncludeItemTypes: "Trailer",
|
itemLimit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 6),
|
||||||
Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 8 : 6),
|
Fields: "PrimaryImageAspectRatio"
|
||||||
Recursive: true,
|
|
||||||
Fields: "PrimaryImageAspectRatio,DateCreated,UserData",
|
|
||||||
Filters: "IsUnplayed"
|
|
||||||
};
|
|
||||||
|
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
|
||||||
|
|
||||||
if (result.Items.length) {
|
|
||||||
$('#trailerSection', page).show();
|
|
||||||
} else {
|
|
||||||
$('#trailerSection', page).hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#trailerItems', page).html(LibraryBrowser.getPosterViewHtml({
|
|
||||||
items: result.Items,
|
|
||||||
useAverageAspectRatio: true
|
|
||||||
|
|
||||||
})).createPosterItemHoverMenu();
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$.getJSON(url).done(function(recommendations) {
|
||||||
|
|
||||||
|
if (!recommendations.length) {
|
||||||
|
|
||||||
|
$('.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
var html = recommendations.map(getRecommendationHtml).join('');
|
||||||
|
|
||||||
|
$('.recommendations', page).html(html).createPosterItemHoverMenu();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
|
@ -65,37 +62,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('pageinit', "#movieStudiosPage", function () {
|
$(document).on('pageinit', "#movieStudiosPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "Trailer",
|
IncludeItemTypes: "Trailer",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
Fields: "PrimaryImageAspectRatio",
|
||||||
StartIndex: 0
|
StartIndex: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "square",
|
shape: "square",
|
||||||
|
@ -66,19 +63,6 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
|
|
||||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,18 +70,6 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "MusicAlbum",
|
IncludeItemTypes: "MusicAlbum",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
Fields: "PrimaryImageAspectRatio",
|
||||||
StartIndex: 0
|
StartIndex: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "square",
|
shape: "square",
|
||||||
|
@ -65,19 +62,6 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
|
|
||||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,18 +69,6 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
|
@ -66,36 +63,12 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('pageinit', "#musicGenresPage", function () {
|
$(document).on('pageinit', "#musicGenresPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
}
|
}
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
|
|
||||||
html += "<div class='posterItemText' style='color:#000;font-weight:400;font-size:16px;'>";
|
html += "<div class='posterItemText' style='color:#000;font-weight:400;font-size:14px;'>";
|
||||||
|
|
||||||
var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) {
|
var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) {
|
||||||
return ip.Name == plugin.name;
|
return ip.Name == plugin.name;
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
|
|
||||||
html += "</div>";
|
html += "</div>";
|
||||||
|
|
||||||
html += "<div class='posterItemText packageReviewText' style='color:#000;font-weight:400;font-size:15px;'>";
|
html += "<div class='posterItemText packageReviewText' style='color:#000;font-weight:400;font-size:14px;'>";
|
||||||
html += plugin.price > 0 ? "$" + plugin.price.toFixed(2) : "Free";
|
html += plugin.price > 0 ? "$" + plugin.price.toFixed(2) : "Free";
|
||||||
html += Dashboard.getStoreRatingHtml(plugin.avgRating, plugin.id, plugin.name);
|
html += Dashboard.getStoreRatingHtml(plugin.avgRating, plugin.id, plugin.name);
|
||||||
|
|
||||||
|
|
|
@ -721,14 +721,18 @@ var Dashboard = {
|
||||||
name: "Metadata",
|
name: "Metadata",
|
||||||
href: "metadata.html",
|
href: "metadata.html",
|
||||||
selected: pageElem.id == "metadataConfigurationPage" || pageElem.id == "advancedMetadataConfigurationPage" || pageElem.id == "metadataImagesConfigurationPage"
|
selected: pageElem.id == "metadataConfigurationPage" || pageElem.id == "advancedMetadataConfigurationPage" || pageElem.id == "metadataImagesConfigurationPage"
|
||||||
|
}, {
|
||||||
|
name: "Plugins",
|
||||||
|
href: "plugins.html",
|
||||||
|
selected: page.hasClass("pluginConfigurationPage")
|
||||||
}, {
|
}, {
|
||||||
name: "Auto-Organize",
|
name: "Auto-Organize",
|
||||||
href: "autoorganizelog.html",
|
href: "autoorganizelog.html",
|
||||||
selected: page.hasClass("organizePage")
|
selected: page.hasClass("organizePage")
|
||||||
}, {
|
}, {
|
||||||
name: "Plugins",
|
name: "DLNA",
|
||||||
href: "plugins.html",
|
href: "dlnasettings.html",
|
||||||
selected: page.hasClass("pluginConfigurationPage")
|
selected: page.hasClass("dlnaPage")
|
||||||
}, {
|
}, {
|
||||||
name: "Live TV",
|
name: "Live TV",
|
||||||
href: "livetvstatus.html",
|
href: "livetvstatus.html",
|
||||||
|
@ -1141,9 +1145,7 @@ var Dashboard = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageElem = page[0];
|
if ($('.pageTitle', page).length) {
|
||||||
|
|
||||||
if (pageElem.hasPageTitle) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1154,8 +1156,6 @@ var Dashboard = {
|
||||||
}
|
}
|
||||||
|
|
||||||
$(parent).prepend("<h2 class='pageTitle'>" + (document.title || " ") + "</h2>");
|
$(parent).prepend("<h2 class='pageTitle'>" + (document.title || " ") + "</h2>");
|
||||||
|
|
||||||
pageElem.hasPageTitle = true;
|
|
||||||
},
|
},
|
||||||
|
|
||||||
setPageTitle: function (title) {
|
setPageTitle: function (title) {
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "Audio",
|
IncludeItemTypes: "Audio",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "DateCreated,AudioInfo,ParentId",
|
Fields: "AudioInfo,ParentId",
|
||||||
Limit: 200,
|
Limit: 200,
|
||||||
StartIndex: 0
|
StartIndex: 0
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
useAverageAspectRatio: true,
|
useAverageAspectRatio: true,
|
||||||
|
@ -69,19 +66,6 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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 () {
|
$('.chkStandardFilter', page).each(function () {
|
||||||
|
|
||||||
var filters = "," + (query.Filters || "");
|
var filters = "," + (query.Filters || "");
|
||||||
|
@ -96,18 +80,6 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -27,9 +27,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html = LibraryBrowser.getPosterViewHtml({
|
html = LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: "portrait",
|
shape: "portrait",
|
||||||
|
@ -68,19 +65,6 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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 () {
|
$('.chkStandardFilter', page).each(function () {
|
||||||
|
|
||||||
var filters = "," + (query.Filters || "");
|
var filters = "," + (query.Filters || "");
|
||||||
|
@ -106,18 +90,6 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
SortOrder: "Ascending",
|
SortOrder: "Ascending",
|
||||||
IncludeItemTypes: "Series",
|
IncludeItemTypes: "Series",
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "SeriesInfo,DateCreated,PrimaryImageAspectRatio",
|
Fields: "SeriesInfo,PrimaryImageAspectRatio",
|
||||||
StartIndex: 0
|
StartIndex: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,6 @@
|
||||||
|
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
|
|
||||||
var checkSortOption = $('.radioSortBy:checked', page);
|
|
||||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
|
||||||
|
|
||||||
html += LibraryBrowser.getPosterViewHtml({
|
html += LibraryBrowser.getPosterViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
useAverageAspectRatio: true,
|
useAverageAspectRatio: true,
|
||||||
|
@ -69,19 +66,6 @@
|
||||||
|
|
||||||
function updateFilterControls(page) {
|
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 () {
|
$('.chkStandardFilter', page).each(function () {
|
||||||
|
|
||||||
var filters = "," + (query.Filters || "");
|
var filters = "," + (query.Filters || "");
|
||||||
|
@ -96,18 +80,6 @@
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$('.radioSortBy', this).on('click', function () {
|
|
||||||
query.SortBy = this.getAttribute('data-sortby');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.radioSortOrder', this).on('click', function () {
|
|
||||||
query.SortOrder = this.getAttribute('data-sortorder');
|
|
||||||
query.StartIndex = 0;
|
|
||||||
reloadItems(page);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.chkStandardFilter', this).on('change', function () {
|
$('.chkStandardFilter', this).on('change', function () {
|
||||||
|
|
||||||
var filterName = this.getAttribute('data-filter');
|
var filterName = this.getAttribute('data-filter');
|
||||||
|
|
|
@ -6,58 +6,29 @@
|
||||||
|
|
||||||
var query = {
|
var query = {
|
||||||
|
|
||||||
SortBy: "PremiereDate,AirTime,SortName",
|
Limit: 32,
|
||||||
SortOrder: "Ascending",
|
Fields: "SeriesInfo,UserData",
|
||||||
IncludeItemTypes: "Episode",
|
UserId: Dashboard.getCurrentUserId()
|
||||||
Limit: 30,
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "SeriesInfo,UserData"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var missedItemsQuery = $.extend({
|
$.getJSON(ApiClient.getUrl("Shows/Upcoming", query)).done(function (result) {
|
||||||
|
|
||||||
IsUnaired: false
|
var items = result.Items;
|
||||||
|
|
||||||
}, query);
|
if (!items.length) {
|
||||||
|
|
||||||
var yesterday = new Date();
|
|
||||||
|
|
||||||
yesterday.setDate(yesterday.getDate() - 1);
|
|
||||||
yesterday.setHours(0, 0, 0, 0);
|
|
||||||
|
|
||||||
missedItemsQuery.MinPremiereDate = yesterday.toISOString();
|
|
||||||
|
|
||||||
var unairedQuery = $.extend({
|
|
||||||
|
|
||||||
IsUnaired: true
|
|
||||||
|
|
||||||
}, query);
|
|
||||||
|
|
||||||
var promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), missedItemsQuery);
|
|
||||||
var promise2 = ApiClient.getItems(Dashboard.getCurrentUserId(), unairedQuery);
|
|
||||||
|
|
||||||
$.when(promise1, promise2).done(function (response1, response2) {
|
|
||||||
|
|
||||||
var missedItems = response1[0].Items;
|
|
||||||
var unairedItems = response2[0].Items;
|
|
||||||
|
|
||||||
for (var i = 0, length = unairedItems.length; i < length; i++) {
|
|
||||||
missedItems.push(unairedItems[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!missedItems.length) {
|
|
||||||
$('#upcomingItems', page).html("<p>Nothing here. Please ensure <a href='metadata.html'>downloading of internet metadata</a> is enabled.</p>").trigger('create');
|
$('#upcomingItems', page).html("<p>Nothing here. Please ensure <a href='metadata.html'>downloading of internet metadata</a> is enabled.</p>").trigger('create');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#upcomingItems', page).html(LibraryBrowser.getPosterViewHtml({
|
$('#upcomingItems', page).html(LibraryBrowser.getPosterViewHtml({
|
||||||
items: missedItems,
|
items: items,
|
||||||
showLocationTypeIndicator: false,
|
showLocationTypeIndicator: false,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
showPremiereDate: true,
|
showPremiereDate: true,
|
||||||
showPremiereDateIndex: true,
|
showPremiereDateIndex: true,
|
||||||
preferThumb: true
|
preferThumb: true
|
||||||
|
|
||||||
})).createPosterItemHoverMenu();
|
})).createPosterItemHoverMenu();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -14,9 +14,10 @@
|
||||||
// After saving chapter task, now save server config
|
// After saving chapter task, now save server config
|
||||||
ApiClient.getServerConfiguration().done(function (config) {
|
ApiClient.getServerConfiguration().done(function (config) {
|
||||||
|
|
||||||
config.ImageSavingConvention = $('#selectImageSavingConvention', page).val();
|
|
||||||
config.EnableMovieChapterImageExtraction = $('#chkMovies', page).checked();
|
config.EnableMovieChapterImageExtraction = $('#chkMovies', page).checked();
|
||||||
|
|
||||||
|
config.EnableUPnP = $('#chkEnableUpnp', page).checked();
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).done(function (result) {
|
ApiClient.updateServerConfiguration(config).done(function (result) {
|
||||||
|
|
||||||
navigateToNextPage();
|
navigateToNextPage();
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
config.MetadataCountryCode = $('#selectCountry', page).val();
|
config.MetadataCountryCode = $('#selectCountry', page).val();
|
||||||
config.SaveLocalMeta = $('#chkSaveLocalMetadata', page).checked();
|
config.SaveLocalMeta = $('#chkSaveLocalMetadata', page).checked();
|
||||||
|
|
||||||
|
config.EnableInternetProviders = $('#chkEnableInternetProviders', page).checked();
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).done(function (result) {
|
ApiClient.updateServerConfiguration(config).done(function (result) {
|
||||||
|
|
||||||
navigateToNextPage();
|
navigateToNextPage();
|
||||||
|
|
|
@ -18,46 +18,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioSeriesCount" value="on" checked="checked" data-sortby="SeriesCount,SortName" data-mini="true">
|
|
||||||
<label for="radioSeriesCount">Series count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioEpisodeCount" value="on" checked="checked" data-sortby="EpisodeCount,SortName" data-mini="true">
|
|
||||||
<label for="radioEpisodeCount">Episode count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -21,46 +21,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioSeriesCount" value="on" checked="checked" data-sortby="SeriesCount,SortName" data-mini="true">
|
|
||||||
<label for="radioSeriesCount">Series count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioEpisodeCount" value="on" checked="checked" data-sortby="EpisodeCount,SortName" data-mini="true">
|
|
||||||
<label for="radioEpisodeCount">Episode count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -18,46 +18,13 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="listTopPaging">
|
<div class="listTopPaging">
|
||||||
</div>
|
</div>
|
||||||
<div class="viewSummary"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort By:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
|
||||||
<label for="radioSortName">Name</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioSeriesCount" value="on" checked="checked" data-sortby="SeriesCount,SortName" data-mini="true">
|
|
||||||
<label for="radioSeriesCount">Series count</label>
|
|
||||||
|
|
||||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioEpisodeCount" value="on" checked="checked" data-sortby="EpisodeCount,SortName" data-mini="true">
|
|
||||||
<label for="radioEpisodeCount">Episode count</label>
|
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>
|
|
||||||
<strong>Sort Order:</strong>
|
|
||||||
</legend>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
|
||||||
<label for="radioAscending">Ascending</label>
|
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioDescending" value="off" data-sortorder="Descending" data-mini="true">
|
|
||||||
<label for="radioDescending">Descending</label>
|
|
||||||
</fieldset>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
|
|
|
@ -13,16 +13,7 @@
|
||||||
<img src="css/images/mblogoicon.png" />Configure settings</h2>
|
<img src="css/images/mblogoicon.png" />Configure settings</h2>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div style="margin: 1em 0;">
|
<div style="margin: 1em 0 2em;">
|
||||||
<label for="selectImageSavingConvention"><b>Image saving convention:</b></label>
|
|
||||||
<select name="selectImageSavingConvention" id="selectImageSavingConvention">
|
|
||||||
<option value="Compatible" selected="selected">Compatible - MB3/Plex/Xbmc</option>
|
|
||||||
<option value="Legacy">Standard - MB3/MB2</option>
|
|
||||||
</select>
|
|
||||||
<div class="fieldDescription">Media Browser recognizes images from most major media applications. Choosing your downloading convention is useful if you also use other products.</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div style="margin: 2em 0;">
|
|
||||||
<label for="chkVideoImages">Enable video image extraction</label>
|
<label for="chkVideoImages">Enable video image extraction</label>
|
||||||
<input id="chkVideoImages" name="chkVideoImages" type="checkbox" checked="checked" />
|
<input id="chkVideoImages" name="chkVideoImages" type="checkbox" checked="checked" />
|
||||||
<div class="fieldDescription">For videos that don't already have images, and that we're unable to find internet images for. This will add some additional time to the initial library scan but will result in a more pleasing presentation.</div>
|
<div class="fieldDescription">For videos that don't already have images, and that we're unable to find internet images for. This will add some additional time to the initial library scan but will result in a more pleasing presentation.</div>
|
||||||
|
@ -34,6 +25,12 @@
|
||||||
<div class="fieldDescription">Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task at 4am, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.</div>
|
<div class="fieldDescription">Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task at 4am, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div style="margin: 2em 0;">
|
||||||
|
<label for="chkEnableUpnp">Enable automatic port mapping</label>
|
||||||
|
<input type="checkbox" id="chkEnableUpnp" checked="checked" />
|
||||||
|
<div class="fieldDescription">UPnP allows automated router configuration for easy remote access. This may not work with some router models.</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="wizardNavigation">
|
<div class="wizardNavigation">
|
||||||
<button type="button" data-iconpos="left" data-icon="arrow-l" data-inline="true" onclick="history.back();">Previous</button>
|
<button type="button" data-iconpos="left" data-icon="arrow-l" data-inline="true" onclick="history.back();">Previous</button>
|
||||||
<button id="btnNextPage" type="button" data-iconpos="right" data-icon="arrow-r" data-inline="true">Next</button>
|
<button id="btnNextPage" type="button" data-iconpos="right" data-icon="arrow-r" data-inline="true">Next</button>
|
||||||
|
|
|
@ -15,7 +15,12 @@
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div style="margin: 1em 0;">
|
<div style="margin: 1em 0;">
|
||||||
<label for="chkSaveLocalMetadata">Save metadata into media folders</label>
|
<input type="checkbox" id="chkEnableInternetProviders" name="chkEnableInternetProviders" checked="checked" />
|
||||||
|
<label for="chkEnableInternetProviders">Download artwork and metadata from the internet </label>
|
||||||
|
<div class="fieldDescription">Media Browser can download information about your media to enable rich presentations.</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 2em 0;">
|
||||||
|
<label for="chkSaveLocalMetadata">Save artwork and metadata into media folders</label>
|
||||||
<input id="chkSaveLocalMetadata" name="chkSaveLocalMetadata" type="checkbox" checked="checked" />
|
<input id="chkSaveLocalMetadata" name="chkSaveLocalMetadata" type="checkbox" checked="checked" />
|
||||||
<div class="fieldDescription">Saving artwork and metadata directly into media folders will put them in a place where they can be easily edited.</div>
|
<div class="fieldDescription">Saving artwork and metadata directly into media folders will put them in a place where they can be easily edited.</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue