Merge remote-tracking branch 'upstream/master' into ribbons
This commit is contained in:
@@ -17,6 +17,11 @@
|
||||
<form class="advancedServerSettingsForm">
|
||||
|
||||
<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>
|
||||
<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" />
|
||||
@@ -25,16 +30,16 @@
|
||||
<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" />
|
||||
</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>
|
||||
<label for="chkEnableUpnp">Enable UPnP</label>
|
||||
<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>
|
||||
</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 data-role="listview" class="ulForm">
|
||||
<li>
|
||||
|
||||
@@ -143,6 +143,14 @@
|
||||
</div>
|
||||
<br />
|
||||
<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>
|
||||
<input type="checkbox" id="chkOverwriteExistingEpisodes" name="chkOverwriteExistingEpisodes" />
|
||||
<label for="chkOverwriteExistingEpisodes">Overwrite existing episodes</label>
|
||||
@@ -153,7 +161,7 @@
|
||||
<div class="fieldDescription">Separate with ;. For example: .nfo;.txt</div>
|
||||
</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>
|
||||
<div class="fieldDescription">Enable this to keep the download directory clean.</div>
|
||||
</li>
|
||||
|
||||
@@ -4,17 +4,7 @@
|
||||
<title>Media Browser</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="boxsetsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
|
||||
<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 id="boxsetsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="boxsets">
|
||||
|
||||
<div class="alphabetPicker">
|
||||
</div>
|
||||
@@ -26,17 +16,41 @@
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<button id="btnNewCollection" data-mini="true" data-icon="plus" data-inline="true" class="hide">New</button>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
|
||||
<form>
|
||||
<div id="sortpanel">
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>
|
||||
<h3>Sort By:</h3>
|
||||
<legend>Sort By:
|
||||
</legend>
|
||||
|
||||
<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 data-role="controlgroup">
|
||||
<legend>
|
||||
<h3>Sort Order:</h3>
|
||||
<legend>Sort Order:
|
||||
</legend>
|
||||
|
||||
<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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>
|
||||
<h3>Filters:</h3>
|
||||
<legend>Filters:
|
||||
</legend>
|
||||
<input class="chkStandardFilter" type="checkbox" name="chkIsFavorite" id="chkIsFavorite" data-filter="IsFavorite" data-mini="true">
|
||||
<label for="chkIsFavorite">Favorite</label>
|
||||
@@ -80,8 +92,7 @@
|
||||
</fieldset>
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>
|
||||
<strong>Features:</strong>
|
||||
<legend>Features:
|
||||
</legend>
|
||||
|
||||
<input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer" data-mini="true">
|
||||
@@ -97,6 +108,10 @@
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$('.newCollectionForm').off('submit', BoxSetsPage.onNewCollectionSubmit).on('submit', BoxSetsPage.onNewCollectionSubmit);
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -7,12 +7,16 @@
|
||||
padding-top: 48px !important;
|
||||
}
|
||||
|
||||
.libraryPage:not(.metadataEditorPage):not(#indexPage):not(#boxsetsPage) {
|
||||
padding-top: 91px !important;
|
||||
}
|
||||
|
||||
.ui-panel fieldset + fieldset {
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
.headerArrowImage {
|
||||
height: 24px;
|
||||
height: 20px;
|
||||
margin-left: .5em;
|
||||
}
|
||||
|
||||
@@ -24,6 +28,8 @@
|
||||
z-index: 1000;
|
||||
top: 0;
|
||||
padding-left: 10px;
|
||||
background: #181818;
|
||||
border-bottom: 1px solid #080808;
|
||||
}
|
||||
|
||||
.viewMenuLink {
|
||||
@@ -111,29 +117,65 @@
|
||||
}
|
||||
|
||||
.libraryViewNav {
|
||||
text-align: center;
|
||||
background-image: linear-gradient(#404040,#222);
|
||||
border-bottom: 1px solid #111;
|
||||
border-top: 1px solid #000;
|
||||
font-family: sans-serif, Arial;
|
||||
height: 42px;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #333;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 48px;
|
||||
z-index: 1000;
|
||||
background-color: #252525;
|
||||
}
|
||||
|
||||
.libraryViewNav .ui-btn-active {
|
||||
border: 0!important;
|
||||
background-color: #38c;
|
||||
.libraryViewNavInner {
|
||||
text-align: center;
|
||||
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 {
|
||||
display: inline-block;
|
||||
padding: .6em 1em;
|
||||
color: #eee!important;
|
||||
text-decoration: none;
|
||||
margin: 1px 0;
|
||||
.libraryViewNav a:after {
|
||||
content: "|";
|
||||
color: #444;
|
||||
font-size: 20px;
|
||||
font-weight: normal !important;
|
||||
position: absolute;
|
||||
top: 7px;
|
||||
}
|
||||
|
||||
.libraryViewNav a:hover {
|
||||
color: #bbb!important;
|
||||
}
|
||||
.libraryViewNav a:last-child::after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.libraryViewNavLinkContent {
|
||||
border-bottom: 6px solid transparent;
|
||||
display: inline-block;
|
||||
padding: 0 1em 6px;
|
||||
margin: 0 -2px 0 -1px;
|
||||
}
|
||||
|
||||
.ehsContent {
|
||||
max-width: 620px;
|
||||
@@ -609,13 +651,6 @@ a.itemTag:hover {
|
||||
height: 7px;
|
||||
}
|
||||
|
||||
@media all and (max-width: 550px) {
|
||||
|
||||
.desktopViewMenuLink {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 600px) {
|
||||
.inlineDetailSection:not(.hide) {
|
||||
display: inline-block;
|
||||
@@ -627,22 +662,26 @@ a.itemTag:hover {
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 750px) {
|
||||
@media all and (min-width: 800px) {
|
||||
|
||||
.libraryViewNav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.desktopHomeLink {
|
||||
.libraryMenuButton {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 750px) {
|
||||
@media all and (max-width: 800px) {
|
||||
|
||||
.libraryMenuButton {
|
||||
.desktopHomeLink {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.desktopViewMenuLink {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.libraryViewNavInner {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 750px) {
|
||||
@@ -776,6 +815,10 @@ a.itemTag:hover {
|
||||
max-width: 950px;
|
||||
}
|
||||
|
||||
.detailPageContent {
|
||||
max-width: 930px;
|
||||
}
|
||||
|
||||
.primaryDetailPageContent {
|
||||
max-width: 850px;
|
||||
}
|
||||
@@ -788,9 +831,6 @@ a.itemTag:hover {
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1920px) {
|
||||
}
|
||||
|
||||
.detailPageParentLink {
|
||||
text-decoration: none;
|
||||
}
|
||||
@@ -927,7 +967,7 @@ a.itemTag:hover {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
height: 14px;
|
||||
border: 1px solid #222;
|
||||
border: 0 solid #222;
|
||||
border-radius: 0;
|
||||
width: 50px;
|
||||
margin-right: 5px;
|
||||
|
||||
@@ -329,30 +329,43 @@
|
||||
}
|
||||
}
|
||||
|
||||
.popupIdentifyForm, .identificationSearchResults {
|
||||
.popupIdentify form, .identificationSearchResults {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.collectionItemSearchResults {
|
||||
max-height: 65%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
||||
@media all and (min-height: 500px) {
|
||||
|
||||
.popupIdentifyForm, .identificationSearchResults {
|
||||
.popupIdentify form, .identificationSearchResults {
|
||||
height: 350px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-height: 600px) {
|
||||
|
||||
.popupIdentifyForm, .identificationSearchResults {
|
||||
.popupIdentify form, .identificationSearchResults {
|
||||
height: 450px;
|
||||
}
|
||||
|
||||
.collectionItemSearchResults {
|
||||
max-height: 70%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-height: 700px) {
|
||||
|
||||
.popupIdentifyForm, .identificationSearchResults {
|
||||
.popupIdentify form, .identificationSearchResults {
|
||||
height: 550px;
|
||||
}
|
||||
|
||||
.collectionItemSearchResults {
|
||||
max-height: 75%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-height: 800px) {
|
||||
@@ -361,9 +374,13 @@
|
||||
height: 600px;
|
||||
}
|
||||
|
||||
.popupIdentifyForm, .identificationSearchResults {
|
||||
.popupIdentify form, .identificationSearchResults {
|
||||
height: 600px;
|
||||
}
|
||||
|
||||
.collectionItemSearchResults {
|
||||
max-height: 80%;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-height: 900px) {
|
||||
@@ -372,7 +389,7 @@
|
||||
height: 700px;
|
||||
}
|
||||
|
||||
.popupIdentifyForm, .identificationSearchResults {
|
||||
.popupIdentify form, .identificationSearchResults {
|
||||
height: 700px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.posterItem {
|
||||
margin: 8px;
|
||||
margin: 4px 5px;
|
||||
text-shadow: none;
|
||||
font-weight: normal!important;
|
||||
display: inline-block;
|
||||
@@ -35,10 +35,6 @@
|
||||
padding: 11px 12px 10px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem, .smallPosterItem {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.posterItemImage {
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
@@ -107,7 +103,7 @@
|
||||
.posterItemTextOverlay .posterItemText {
|
||||
background-color: transparent;
|
||||
padding-left: 5px;
|
||||
padding: 0 5px 5px;
|
||||
padding: 0 5px 3px;
|
||||
}
|
||||
|
||||
.posterItemTextOverlay .posterItemText:first-child {
|
||||
@@ -136,11 +132,11 @@
|
||||
}
|
||||
|
||||
.squarePosterItem {
|
||||
width: 142px;
|
||||
width: 148px;
|
||||
}
|
||||
|
||||
.squarePosterItem .posterItemImage {
|
||||
height: 142px;
|
||||
height: 148px;
|
||||
}
|
||||
|
||||
.storeReviewCount {
|
||||
@@ -149,11 +145,11 @@
|
||||
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 142px;
|
||||
width: 148px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
height: 79.875px;
|
||||
height: 83.25px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem {
|
||||
@@ -165,17 +161,17 @@
|
||||
}
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 90px;
|
||||
width: 96px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
height: 135px;
|
||||
height: 144px;
|
||||
}
|
||||
|
||||
.posterItemProgress .itemProgressBar {
|
||||
height: 10px;
|
||||
width: 100%;
|
||||
opacity: .6;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.miniPosterItemProgress {
|
||||
@@ -188,6 +184,21 @@
|
||||
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) {
|
||||
|
||||
.packageReviewText {
|
||||
@@ -198,19 +209,19 @@
|
||||
@media all and (min-width: 540px) {
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 260px;
|
||||
width: 266px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
height: 146.25px;
|
||||
height: 149.625px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem {
|
||||
width: 184px;
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem .posterItemImage {
|
||||
height: 103.5px;
|
||||
height: 101.25px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,55 +229,32 @@
|
||||
|
||||
|
||||
.squarePosterItem {
|
||||
width: 164px;
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
.squarePosterItem .posterItemImage {
|
||||
height: 164px;
|
||||
height: 170px;
|
||||
}
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 122px;
|
||||
width: 128px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
height: 183px;
|
||||
height: 192px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 650px) {
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 276px;
|
||||
width: 282px;
|
||||
}
|
||||
|
||||
.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 {
|
||||
width: 202px;
|
||||
}
|
||||
@@ -276,22 +264,37 @@
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1200px) {
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 276px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
height: 155.25px;
|
||||
}
|
||||
@media all and (min-width: 750px) {
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 138px;
|
||||
width: 118px;
|
||||
}
|
||||
|
||||
.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 {
|
||||
@@ -302,38 +305,30 @@
|
||||
@media all and (min-width: 1440px) {
|
||||
|
||||
.squarePosterItem {
|
||||
width: 174px;
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
.squarePosterItem .posterItemImage {
|
||||
height: 174px;
|
||||
height: 180px;
|
||||
}
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 292px;
|
||||
width: 298px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
height: 164.25px;
|
||||
height: 167.625px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (min-width: 1920px) {
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
height: 240px;
|
||||
}
|
||||
|
||||
.squarePosterItem {
|
||||
width: 184px;
|
||||
width: 190px;
|
||||
}
|
||||
|
||||
.squarePosterItem .posterItemImage {
|
||||
height: 184px;
|
||||
height: 190px;
|
||||
}
|
||||
}
|
||||
/********************/
|
||||
@@ -388,4 +383,4 @@
|
||||
background-image: -moz-linear-gradient(top, #ff3333, #992233);
|
||||
background-image: -ms-linear-gradient(top, #ff3333, #992233);
|
||||
background-image: -o-linear-gradient(top, #ff3333, #992233);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -330,6 +330,10 @@ h1 .imageLink {
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.activeDevicesCollapsible .ui-collapsible-content {
|
||||
padding: .5em .5em !important;
|
||||
}
|
||||
|
||||
@media all and (min-width: 450px) {
|
||||
|
||||
.currentUsername {
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
<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">Home</a>
|
||||
<a href="dashboardinfopage.html" data-role="button">Info</a>
|
||||
@@ -59,11 +60,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="collapsible" data-collapsed="false" style="margin-top: 2em;">
|
||||
<h3>Active Connections</h3>
|
||||
<div>
|
||||
<table class="tblConnections" style="border-collapse: collapse;">
|
||||
</table>
|
||||
<div class="activeDevicesCollapsible" data-role="collapsible" data-collapsed="false" style="margin-top: 2em;">
|
||||
<h3>Active Devices</h3>
|
||||
<div class="connections">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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">
|
||||
<a href="#" data-role="button" id="btnEditMetadata">Metadata</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>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<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="btnEditCollectionTitles" style="display: none;" href="editcollectionitems.html" data-role="button">Titles</a>
|
||||
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
||||
</div>
|
||||
|
||||
@@ -395,7 +396,7 @@
|
||||
<div data-role="content">
|
||||
|
||||
<form class="popupIdentifyForm" style="max-width: initial;">
|
||||
|
||||
|
||||
<p>Enter one or more search criteria.</p>
|
||||
|
||||
<div>
|
||||
@@ -414,6 +415,9 @@
|
||||
<button type="submit" data-theme="b" data-icon="search" data-mini="true">
|
||||
Search
|
||||
</button>
|
||||
<button type="button" data-icon="delete" data-mini="true" onclick="$(this).parents('.popup').popup('close');">
|
||||
Cancel
|
||||
</button>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<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" 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>
|
||||
</div>
|
||||
<div id="divAddPerson" style="display: none;">
|
||||
|
||||
@@ -15,40 +15,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -15,40 +15,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<div id="itemByNameDetailPage" data-role="page" class="page libraryPage" data-theme="b">
|
||||
<div id="movieGenreTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</a>
|
||||
<a href="movies.html">Movies</a>
|
||||
<a href="boxsets.html">Box Sets</a>
|
||||
<a href="movietrailers.html">Trailers</a>
|
||||
<a href="moviegenres.html" class="ui-btn-active">Genres</a>
|
||||
<a href="moviepeople.html">People</a>
|
||||
@@ -18,9 +18,9 @@
|
||||
</div>
|
||||
<div id="moviePeopleTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</a>
|
||||
<a href="movies.html">Movies</a>
|
||||
<a href="boxsets.html">Box Sets</a>
|
||||
<a href="movietrailers.html">Trailers</a>
|
||||
<a href="moviegenres.html">Genres</a>
|
||||
<a href="moviepeople.html" class="ui-btn-active">People</a>
|
||||
@@ -29,9 +29,9 @@
|
||||
</div>
|
||||
<div id="movieStudioTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</a>
|
||||
<a href="movies.html">Movies</a>
|
||||
<a href="boxsets.html">Box Sets</a>
|
||||
<a href="movietrailers.html">Trailers</a>
|
||||
<a href="moviegenres.html">Genres</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="movieTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</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="moviegenres.html">Genres</a>
|
||||
<a href="moviepeople.html">People</a>
|
||||
@@ -29,9 +18,9 @@
|
||||
</div>
|
||||
<div id="trailerTabs" class="itemTabs" style="display: none;">
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</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="moviegenres.html">Genres</a>
|
||||
<a href="moviepeople.html">People</a>
|
||||
@@ -173,8 +162,11 @@
|
||||
<p class="itemTags"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collectionItems"></div>
|
||||
<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>
|
||||
<div id="trailersCollapsible" class="detailSection hide">
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
<label for="chkMissingOverview">Missing Overview</label>
|
||||
|
||||
<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">
|
||||
<label for="chkIsUnidentified">Unidentified</label>
|
||||
|
||||
@@ -23,11 +23,12 @@
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<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>
|
||||
<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>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<div id="movieGenresPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</a>
|
||||
<a href="movies.html">Movies</a>
|
||||
<a href="boxsets.html">Collections</a>
|
||||
<a href="movietrailers.html">Trailers</a>
|
||||
<a href="moviegenres.html" class="ui-btn-active">Genres</a>
|
||||
<a href="moviepeople.html">People</a>
|
||||
@@ -19,46 +19,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<div id="moviePeoplePage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</a>
|
||||
<a href="movies.html">Movies</a>
|
||||
<a href="boxsets.html">Collections</a>
|
||||
<a href="movietrailers.html">Trailers</a>
|
||||
<a href="moviegenres.html">Genres</a>
|
||||
<a href="moviepeople.html" class="ui-btn-active">People</a>
|
||||
@@ -21,46 +21,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<div id="moviesPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</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>
|
||||
|
||||
@@ -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 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="boxsets.html">Collections</a>
|
||||
<a href="movietrailers.html">Trailers</a>
|
||||
<a href="moviegenres.html">Genres</a>
|
||||
<a href="moviepeople.html">People</a>
|
||||
@@ -28,16 +28,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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 class="recommendations">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<div id="movieStudiosPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</a>
|
||||
<a href="movies.html">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>
|
||||
@@ -19,46 +19,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<div id="movieTrailersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="movies">
|
||||
|
||||
<div class="libraryViewNav">
|
||||
<a href="movieslatest.html">Latest</a>
|
||||
<a href="moviesrecommended.html">Suggested</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="moviegenres.html">Genres</a>
|
||||
<a href="moviepeople.html">People</a>
|
||||
|
||||
@@ -20,49 +20,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -20,49 +20,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
@@ -26,40 +25,6 @@
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
$('#txtPortNumber', page).val(config.HttpServerPortNumber);
|
||||
|
||||
$('#txtDdns', page).val(config.WanDdns || '');
|
||||
$('#txtServerName', page).val(config.ServerName || '');
|
||||
|
||||
$('#chkEnableUpnp', page).checked(config.EnableUPnP).checkboxradio('refresh');
|
||||
|
||||
@@ -52,6 +53,7 @@
|
||||
config.EnableUPnP = $('#chkEnableUpnp', form).checked();
|
||||
|
||||
config.WanDdns = $('#txtDdns', form).val();
|
||||
config.ServerName = $('#txtServerName', form).val();
|
||||
|
||||
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||
});
|
||||
|
||||
@@ -71,6 +71,9 @@
|
||||
$('#txtMultiEpisodePattern', page).val(tvOptions.MultiEpisodeNamePattern).trigger('change');
|
||||
|
||||
$('#txtDeleteLeftOverFiles', page).val(tvOptions.LeftOverFileExtensionsToDelete.join(';'));
|
||||
|
||||
$('#copyOrMoveFile', page).val(tvOptions.CopyOriginalFile.toString()).selectmenu('refresh');
|
||||
|
||||
}
|
||||
|
||||
$(document).on('pageinit', "#libraryFileOrganizerPage", function () {
|
||||
@@ -150,6 +153,8 @@
|
||||
var watchLocation = $('#txtWatchFolder', form).val();
|
||||
tvOptions.WatchLocations = watchLocation ? [watchLocation] : [];
|
||||
|
||||
tvOptions.CopyOriginalFile = $('#copyOrMoveFile', form).val();
|
||||
|
||||
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
|
||||
});
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var page = this;
|
||||
|
||||
DashboardPage.newsStartIndex = 0;
|
||||
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
DashboardPage.pollForInfo(page);
|
||||
DashboardPage.startInterval();
|
||||
@@ -58,7 +58,7 @@
|
||||
pagingHtml += '<div>';
|
||||
pagingHtml += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount, false, [], false);
|
||||
pagingHtml += '</div>';
|
||||
|
||||
|
||||
html = html.join('') + pagingHtml;
|
||||
|
||||
var elem = $('.latestNewsItems', page).html(html).trigger('create');
|
||||
@@ -135,9 +135,9 @@
|
||||
|
||||
var html = '';
|
||||
|
||||
var table = $('.tblConnections', page);
|
||||
var container = $('.connections', page);
|
||||
|
||||
$('.trSession', table).addClass('deadSession');
|
||||
$('.sessionPosterItem', container).addClass('deadSession');
|
||||
|
||||
var deviceId = ApiClient.deviceId();
|
||||
|
||||
@@ -145,98 +145,181 @@
|
||||
|
||||
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) {
|
||||
DashboardPage.updateSession(elem, connection);
|
||||
continue;
|
||||
}
|
||||
|
||||
html += '<tr class="trSession" id="' + rowId + '">';
|
||||
|
||||
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>';
|
||||
html += '<div class="sessionPosterItem posterItem squarePosterItem" id="' + itemId + '" style="vertical-align:top;margin-bottom:2em;">';
|
||||
|
||||
var nowPlayingItem = connection.NowPlayingItem;
|
||||
var imageUrl = DashboardPage.getNowPlayingImage(nowPlayingItem);
|
||||
|
||||
html += '<td class="nowPlayingImage">';
|
||||
html += DashboardPage.getNowPlayingImage(nowPlayingItem);
|
||||
html += '</td>';
|
||||
var style = "";
|
||||
|
||||
html += '<td class="nowPlayingText">';
|
||||
html += DashboardPage.getNowPlayingText(connection, nowPlayingItem);
|
||||
html += '</td>';
|
||||
if (imageUrl) {
|
||||
style += 'background-image:url(\'' + imageUrl + '\');';
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
var html = '';
|
||||
var html = '<div>';
|
||||
|
||||
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) {
|
||||
|
||||
return '<div><a href="useredit.html?userid=' + currentSession.UserId + '">' + currentSession.UserName + '</a><div>';
|
||||
return ', ' + currentSession.UserName;
|
||||
});
|
||||
|
||||
html += '</div>';
|
||||
|
||||
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;
|
||||
|
||||
$('.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 nowPlayingItemImageTag = nowPlayingItem ? nowPlayingItem.PrimaryImageTag : null;
|
||||
var image = $('.posterItemImage', elem)[0];
|
||||
|
||||
if (!image || image.getAttribute('data-itemid') != nowPlayingItemId || image.getAttribute('data-tag') != nowPlayingItemImageTag) {
|
||||
imageRow.html(DashboardPage.getNowPlayingImage(nowPlayingItem));
|
||||
if (imageUrl && imageUrl != image.getAttribute('data-imageurl')) {
|
||||
|
||||
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();
|
||||
|
||||
@@ -262,91 +345,81 @@
|
||||
imgUrl = 'css/images/clients/html5.png';
|
||||
}
|
||||
|
||||
return "<img src='" + imgUrl + "' alt='Dashboard' />";
|
||||
return imgUrl;
|
||||
}
|
||||
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") {
|
||||
|
||||
return "<img src='css/images/clients/mb.png' alt='Media Browser Theater' />";
|
||||
return "css/images/clients/mb.png";
|
||||
}
|
||||
if (clientLowered == "android") {
|
||||
|
||||
return "<img src='css/images/clients/android.png' alt='Android' />";
|
||||
return "css/images/clients/android.png";
|
||||
}
|
||||
if (clientLowered == "roku") {
|
||||
|
||||
return "<img src='css/images/clients/roku.jpg' alt='Roku' />";
|
||||
return "css/images/clients/roku.jpg";
|
||||
}
|
||||
if (clientLowered == "ios") {
|
||||
|
||||
return "<img src='css/images/clients/ios.png' alt='iOS' />";
|
||||
return "css/images/clients/ios.png";
|
||||
}
|
||||
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") {
|
||||
|
||||
return "<img src='css/images/clients/windowsphone.png' alt='Windows Phone' />";
|
||||
return "css/images/clients/windowsphone.png";
|
||||
}
|
||||
if (clientLowered == "dlna") {
|
||||
|
||||
return "<img src='css/images/clients/dlna.png' alt='Dlna' />";
|
||||
return "css/images/clients/dlna.png";
|
||||
}
|
||||
if (clientLowered == "mbkinect") {
|
||||
|
||||
return "<img src='css/images/clients/mbkinect.png' alt='MB Kinect' />";
|
||||
return "css/images/clients/mbkinect.png";
|
||||
}
|
||||
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) {
|
||||
|
||||
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) {
|
||||
var url = ApiClient.getImageUrl(item.Id, {
|
||||
return ApiClient.getImageUrl(item.Id, {
|
||||
type: "Primary",
|
||||
height: 100,
|
||||
height: 300,
|
||||
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 "";
|
||||
},
|
||||
|
||||
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) {
|
||||
|
||||
var page = $.mobile.activePage;
|
||||
@@ -422,9 +495,9 @@
|
||||
DashboardPage.renderPluginUpdateInfo(page, dashboardInfo);
|
||||
DashboardPage.renderPendingInstallations(page, dashboardInfo.SystemInfo);
|
||||
},
|
||||
|
||||
|
||||
renderUrls: function (page, systemInfo) {
|
||||
|
||||
|
||||
var url = ApiClient.serverAddress() + "/mediabrowser";
|
||||
|
||||
$('#bookmarkUrl', page).html(url).attr("href", url);
|
||||
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||
}
|
||||
|
||||
function getBaseRemoteOptions() {
|
||||
@@ -268,12 +269,18 @@
|
||||
|
||||
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();
|
||||
} else {
|
||||
$('#btnEditPeople', page).show();
|
||||
}
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
$('#btnEditCollectionTitles', page).show();
|
||||
} else {
|
||||
$('#btnEditCollectionTitles', page).hide();
|
||||
}
|
||||
|
||||
ApiClient.getRemoteImageProviders(getBaseRemoteOptions()).done(function (providers) {
|
||||
|
||||
if (providers.length) {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
$('#btnEditPeople', page).attr('href', 'edititempeople.html?' + query);
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
@@ -82,12 +83,18 @@
|
||||
setFieldVisibilities(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();
|
||||
} else {
|
||||
$('#btnEditPeople', page).show();
|
||||
}
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
$('#btnEditCollectionTitles', page).show();
|
||||
} else {
|
||||
$('#btnEditCollectionTitles', page).hide();
|
||||
}
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
@@ -280,7 +287,17 @@
|
||||
$('#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();
|
||||
} else {
|
||||
$('#btnIdentify', page).hide();
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
$('#btnEditMetadata', page).attr('href', 'edititemmetadata.html?' + query);
|
||||
$('#btnEditImages', page).attr('href', 'edititemimages.html?' + query);
|
||||
$('#btnEditCollectionTitles', page).attr('href', 'editcollectionitems.html?' + query);
|
||||
}
|
||||
|
||||
function reload(page) {
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
}
|
||||
|
||||
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." />';
|
||||
}
|
||||
}
|
||||
@@ -114,6 +114,13 @@
|
||||
nodes.push({ attr: { id: 'libraryreport', rel: 'default', itemtype: 'libraryreport' }, data: 'Reports' });
|
||||
|
||||
callback(nodes);
|
||||
|
||||
if (!selectedId) {
|
||||
|
||||
if (window.location.toString().toLowerCase().indexOf('report.html') != -1) {
|
||||
selectedId = 'libraryreport';
|
||||
}
|
||||
}
|
||||
|
||||
if (selectedId && nodes.filter(function (f) {
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Episode",
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,SeriesInfo,PrimaryImageAspectRatio",
|
||||
Fields: "SeriesInfo,PrimaryImageAspectRatio",
|
||||
StartIndex: 0,
|
||||
IsMissing: false,
|
||||
IsVirtualUnaired: false
|
||||
|
||||
@@ -25,9 +25,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "backdrop",
|
||||
@@ -65,36 +62,12 @@
|
||||
|
||||
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 () {
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "backdrop",
|
||||
@@ -66,36 +63,12 @@
|
||||
|
||||
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 () {
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
var views = [];
|
||||
|
||||
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) {
|
||||
|
||||
@@ -396,7 +396,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "",
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,AudioInfo,SeriesInfo,ParentId,PrimaryImageAspectRatio",
|
||||
Fields: "AudioInfo,SeriesInfo,ParentId,PrimaryImageAspectRatio",
|
||||
Limit: LibraryBrowser.getDefaultPageSize(),
|
||||
StartIndex: 0
|
||||
};
|
||||
@@ -477,10 +477,11 @@
|
||||
}
|
||||
else {
|
||||
|
||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
preferBackdrop: shape == "backdrop",
|
||||
shape: shape
|
||||
shape: "square",
|
||||
useAverageAspectRatio: true,
|
||||
showTitle: true
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
$('#editButtonContainer', page).show();
|
||||
|
||||
} else {
|
||||
$('#editButtonContainer', page).hide();
|
||||
}
|
||||
@@ -122,7 +123,7 @@
|
||||
if (item.Type == "Episode" || item.Type == "Series" || item.Type == "Season") {
|
||||
return "tv";
|
||||
}
|
||||
if (item.Type == "Movie" || item.Type == "Trailer" || item.Type == "BoxSet") {
|
||||
if (item.Type == "Movie" || item.Type == "Trailer") {
|
||||
return "movies";
|
||||
}
|
||||
if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "MusicVideo") {
|
||||
@@ -131,6 +132,9 @@
|
||||
if (item.MediaType == "Game") {
|
||||
return "games";
|
||||
}
|
||||
if (item.Type == "BoxSet") {
|
||||
return "boxsets";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -162,10 +166,6 @@
|
||||
$('#gameSystemTabs', page).show();
|
||||
}
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
$('#boxsetTabs', page).show();
|
||||
}
|
||||
|
||||
if (item.Type == "Trailer") {
|
||||
$('#trailerTabs', page).show();
|
||||
}
|
||||
@@ -177,8 +177,15 @@
|
||||
|
||||
function setInitialCollapsibleState(page, item, context, user) {
|
||||
|
||||
$('.collectionItems', page).empty();
|
||||
|
||||
if (item.IsFolder) {
|
||||
$('#childrenCollapsible', page).removeClass('hide');
|
||||
|
||||
if (item.Type == "BoxSet") {
|
||||
$('#childrenCollapsible', page).addClass('hide');
|
||||
} else {
|
||||
$('#childrenCollapsible', page).removeClass('hide');
|
||||
}
|
||||
renderChildren(page, item, user);
|
||||
}
|
||||
else {
|
||||
@@ -346,7 +353,7 @@
|
||||
ApiClient.getItems(Dashboard.getCurrentUserId(), {
|
||||
|
||||
Ids: item.SoundtrackIds.join(","),
|
||||
ItemFields: "PrimaryImageAspectRatio,ItemCounts,DateCreated,AudioInfo",
|
||||
ItemFields: "PrimaryImageAspectRatio,ItemCounts,AudioInfo",
|
||||
SortBy: "SortName"
|
||||
|
||||
}).done(function (result) {
|
||||
@@ -425,7 +432,7 @@
|
||||
var options = {
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
limit: item.Type == "MusicAlbum" ? 4 : 5,
|
||||
fields: "PrimaryImageAspectRatio,DateCreated,UserData"
|
||||
fields: "PrimaryImageAspectRatio,UserData"
|
||||
};
|
||||
|
||||
if (item.Type == "Movie") {
|
||||
@@ -527,7 +534,7 @@
|
||||
|
||||
function renderChildren(page, item, user) {
|
||||
|
||||
var fields = "ItemCounts,DateCreated,AudioInfo,PrimaryImageAspectRatio";
|
||||
var fields = "ItemCounts,AudioInfo,PrimaryImageAspectRatio";
|
||||
|
||||
var query = {
|
||||
ParentId: item.Id,
|
||||
@@ -570,15 +577,9 @@
|
||||
|
||||
} else {
|
||||
|
||||
var shape = "smallPoster";
|
||||
var html = '';
|
||||
|
||||
if (item.Type == "Season") {
|
||||
shape = "smallBackdrop";
|
||||
}
|
||||
|
||||
var html;
|
||||
|
||||
if (item.Type == "Series" || item.Type == "BoxSet") {
|
||||
if (item.Type == "Series") {
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "portrait",
|
||||
@@ -606,18 +607,21 @@
|
||||
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();
|
||||
|
||||
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") {
|
||||
$('#childrenTitle', page).html('Seasons');
|
||||
}
|
||||
else if (item.Type == "BoxSet") {
|
||||
$('#childrenTitle', page).html('Titles');
|
||||
}
|
||||
else if (item.Type == "MusicAlbum") {
|
||||
$('#childrenTitle', page).html('Tracks');
|
||||
}
|
||||
@@ -640,6 +641,82 @@
|
||||
$('#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) {
|
||||
$('.userDataIcons', page).html(LibraryBrowser.getUserDataIconsHtml(item));
|
||||
}
|
||||
|
||||
@@ -34,14 +34,23 @@
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
if (view == "Backdrop") {
|
||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "smallBackdrop",
|
||||
useAverageAspectRatio: true,
|
||||
showTitle: true,
|
||||
centerText: true,
|
||||
preferBackdrop: true
|
||||
});
|
||||
}
|
||||
else if (view == "Poster") {
|
||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
||||
items: result.Items
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
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());
|
||||
},
|
||||
|
||||
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) {
|
||||
|
||||
var counts = [];
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
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) {
|
||||
@@ -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>';
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -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 += '<div data-role="collapsible-set" data-inset="false" data-mini="true">';
|
||||
html += '<ul data-role="listview">';
|
||||
|
||||
if (counts.MovieCount) {
|
||||
|
||||
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' }
|
||||
]);
|
||||
html += '<li><a class="libraryPanelLink" href="movieslatest.html">Movies</a></li>';
|
||||
}
|
||||
|
||||
if (counts.SeriesCount) {
|
||||
html += getCollapsibleHtml('TV', [
|
||||
|
||||
{ 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' }
|
||||
]);
|
||||
html += '<li><a class="libraryPanelLink" href="tvrecommended.html">TV</a></li>';
|
||||
}
|
||||
|
||||
if (liveTvInfo.EnabledUsers.indexOf(Dashboard.getCurrentUserId()) != -1) {
|
||||
html += getCollapsibleHtml('Live TV', [
|
||||
|
||||
{ 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' }
|
||||
]);
|
||||
html += '<li><a class="libraryPanelLink" href="livetvsuggested.html">Live TV</a></li>';
|
||||
}
|
||||
|
||||
if (counts.SongCount || counts.MusicVideoCount) {
|
||||
html += getCollapsibleHtml('Music', [
|
||||
|
||||
{ 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' }
|
||||
]);
|
||||
html += '<li><a class="libraryPanelLink" href="musicrecommended.html">Music</a></li>';
|
||||
}
|
||||
|
||||
if (counts.GameCount) {
|
||||
html += getCollapsibleHtml('Games', [
|
||||
|
||||
{ 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 += '<li><a class="libraryPanelLink" href="gamesrecommended.html">Games</a></li>';
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
if (counts.BoxSetCount) {
|
||||
html += '<li><a class="libraryPanelLink" href="collections.html">Collections</a></li>';
|
||||
}
|
||||
|
||||
html += '</ul>';
|
||||
html += '</div>';
|
||||
|
||||
$(page).append(html);
|
||||
@@ -200,50 +163,23 @@
|
||||
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 = {
|
||||
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;
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
(function ($, document, window) {
|
||||
|
||||
var defaultSortBy = "SortName";
|
||||
|
||||
// The base query options
|
||||
var query = {
|
||||
|
||||
SortBy: "SeriesSortName,SortName",
|
||||
SortBy: defaultSortBy,
|
||||
SortOrder: "Ascending",
|
||||
Recursive: true,
|
||||
Fields: "MediaStreams,DateCreated,Settings,Studios",
|
||||
@@ -21,21 +23,22 @@
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Series' },
|
||||
{ name: 'Season' },
|
||||
{ name: 'Date Added' }
|
||||
{ name: 'Series', sortField: 'SeriesSortName,SortName' },
|
||||
{ name: 'Season', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' }
|
||||
];
|
||||
}
|
||||
case 'Series':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name' },
|
||||
{ name: 'Network' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Year' },
|
||||
{ name: 'Rating' },
|
||||
{ name: 'Runtime' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Network', sortField: 'Studio,SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Year', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Trailers' },
|
||||
{ name: 'Specials' }
|
||||
];
|
||||
@@ -44,12 +47,13 @@
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name' },
|
||||
{ name: 'Game System' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Release Date' },
|
||||
{ name: 'Rating' },
|
||||
{ name: 'Players' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Game System', sortField: 'GameSystem,SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,GameSystem,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,GameSystem,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,GameSystem,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,GameSystem,SortName' },
|
||||
{ name: 'Players', sortField: 'Players,GameSystem,SortName' },
|
||||
{ name: 'Trailers' }
|
||||
];
|
||||
}
|
||||
@@ -57,13 +61,14 @@
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Album Artist' },
|
||||
{ name: 'Album' },
|
||||
{ name: 'Album Artist', sortField: 'AlbumArtist,Album,SortName' },
|
||||
{ name: 'Album', sortField: 'Album,SortName' },
|
||||
{ name: 'Disc' },
|
||||
{ name: 'Track' },
|
||||
{ name: 'Name' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Release Date' },
|
||||
{ name: 'Runtime' },
|
||||
{ name: 'Name', sortField: 'Name' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Embedded Image' }
|
||||
];
|
||||
@@ -72,13 +77,15 @@
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Series' },
|
||||
{ name: 'Series', sortField: 'SeriesSortName,SortName' },
|
||||
{ name: 'Season' },
|
||||
{ name: 'Name' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Release Date' },
|
||||
{ name: 'Runtime' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Video' },
|
||||
{ name: 'Resolution' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Subtitles' }
|
||||
];
|
||||
@@ -87,10 +94,11 @@
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Release Date' },
|
||||
{ name: 'Rating' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Trailers' }
|
||||
];
|
||||
}
|
||||
@@ -99,42 +107,46 @@
|
||||
return [
|
||||
{},
|
||||
{ name: 'Series' },
|
||||
{ name: 'Name' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Release Date' },
|
||||
{ name: 'Rating' }
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' }
|
||||
];
|
||||
}
|
||||
case 'MusicArtist':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name' },
|
||||
{ name: 'Date Added' }
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' }
|
||||
];
|
||||
}
|
||||
case 'MusicAlbum':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Album Artist' },
|
||||
{ name: 'Name' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Release Date' },
|
||||
{ name: 'Rating' },
|
||||
{ name: 'Runtime' }
|
||||
{ name: 'Album Artist', sortField: 'AlbumArtist,SortName' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' }
|
||||
];
|
||||
}
|
||||
default:
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name' },
|
||||
{ name: 'Date Added' },
|
||||
{ name: 'Release Date' },
|
||||
{ name: 'Rating' },
|
||||
{ name: 'Runtime' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Video' },
|
||||
{ name: 'Resolution' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Subtitles' },
|
||||
{ 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) {
|
||||
|
||||
return headercells.map(function (cell) {
|
||||
@@ -151,6 +210,8 @@
|
||||
var html = '';
|
||||
html += '<td>';
|
||||
|
||||
var stream;
|
||||
|
||||
switch (cell.type || cell.name) {
|
||||
|
||||
case 'Album Artist':
|
||||
@@ -178,6 +239,11 @@
|
||||
html += item.Studios.length ? item.Studios[0].Name : ' ';
|
||||
break;
|
||||
}
|
||||
case 'Disc':
|
||||
{
|
||||
html += item.ParentIndexNumber == null ? '' : item.ParentIndexNumber;
|
||||
break;
|
||||
}
|
||||
case 'Track':
|
||||
{
|
||||
html += item.IndexNumber == null ? '' : item.IndexNumber;
|
||||
@@ -190,7 +256,7 @@
|
||||
}
|
||||
case 'Audio':
|
||||
{
|
||||
var stream = (item.MediaStreams || []).filter(function (s) {
|
||||
stream = (item.MediaStreams || []).filter(function (s) {
|
||||
|
||||
return s.Type == 'Audio';
|
||||
|
||||
@@ -205,7 +271,7 @@
|
||||
}
|
||||
case 'Video':
|
||||
{
|
||||
var stream = (item.MediaStreams || []).filter(function (s) {
|
||||
stream = (item.MediaStreams || []).filter(function (s) {
|
||||
|
||||
return s.Type == 'Video';
|
||||
|
||||
@@ -216,6 +282,19 @@
|
||||
}
|
||||
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':
|
||||
{
|
||||
if ((item.MediaStreams || []).filter(function (s) {
|
||||
@@ -265,7 +344,7 @@
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 'Season':
|
||||
{
|
||||
if (item.Type == "Episode") {
|
||||
@@ -281,12 +360,17 @@
|
||||
html += '<a href="edititemmetadata.html?id=' + item.Id + '">' + LibraryBrowser.getPosterViewDisplayName(item, false, false) + '</a>';
|
||||
break;
|
||||
}
|
||||
case 'Rating':
|
||||
case 'Community Rating':
|
||||
{
|
||||
html += item.CommunityRating || ' ';
|
||||
break;
|
||||
}
|
||||
case 'Parental Rating':
|
||||
{
|
||||
html += item.OfficialRating || ' ';
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case 'Year':
|
||||
case 'Release Date':
|
||||
{
|
||||
@@ -357,7 +441,7 @@
|
||||
}
|
||||
|
||||
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>';
|
||||
}
|
||||
}
|
||||
@@ -378,11 +462,11 @@
|
||||
}).join('');
|
||||
}
|
||||
|
||||
function getReportHtml(items, reportType) {
|
||||
function getReportHtml(items, reportType, currentSortField, currentSortDirection) {
|
||||
|
||||
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 += '<tr>';
|
||||
@@ -391,7 +475,31 @@
|
||||
|
||||
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('');
|
||||
|
||||
@@ -427,7 +535,7 @@
|
||||
|
||||
$('.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 () {
|
||||
query.StartIndex += query.Limit;
|
||||
@@ -444,6 +552,34 @@
|
||||
query.StartIndex = 0;
|
||||
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) {
|
||||
@@ -536,6 +672,9 @@
|
||||
query.StartIndex = 0;
|
||||
query.IncludeItemTypes = this.value;
|
||||
|
||||
query.SortBy = getDefaultSortOrder(this.value);
|
||||
query.SortOrder = "Ascending";
|
||||
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
@@ -710,6 +849,9 @@
|
||||
query.StartIndex = 0;
|
||||
}
|
||||
|
||||
query.SortBy = getDefaultSortOrder($('#selectView', page).val());
|
||||
query.SortOrder = "Ascending";
|
||||
|
||||
reloadItems(page);
|
||||
|
||||
}).on('pageshow', "#libraryReportPage", function () {
|
||||
|
||||
@@ -153,14 +153,15 @@
|
||||
|
||||
html += '<li><a href="livetvtimer.html?id=' + timer.Id + '">';
|
||||
|
||||
var program = timer.ProgramInfo;
|
||||
var program = timer.ProgramInfo || {};
|
||||
var imgUrl;
|
||||
|
||||
if (program.ImageTags && program.ImageTags.Primary) {
|
||||
var programImages = program.ImageTags || {};
|
||||
if (programImages.Primary) {
|
||||
|
||||
imgUrl = ApiClient.getImageUrl(program.Id, {
|
||||
height: 160,
|
||||
tag: program.ImageTags.Primary,
|
||||
tag: programImages.Primary,
|
||||
type: "Primary"
|
||||
});
|
||||
} else {
|
||||
@@ -234,9 +235,9 @@
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
seriesTimerId: id
|
||||
|
||||
}).done(function (result) {
|
||||
}).done(function (recordingResult) {
|
||||
|
||||
renderRecordings(page, result);
|
||||
renderRecordings(page, recordingResult);
|
||||
|
||||
});
|
||||
|
||||
@@ -244,9 +245,9 @@
|
||||
|
||||
seriesTimerId: id
|
||||
|
||||
}).done(function (result) {
|
||||
}).done(function (timerResult) {
|
||||
|
||||
renderSchedule(page, result);
|
||||
renderSchedule(page, timerResult);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
IsAiring: true,
|
||||
limit: 10
|
||||
limit: 12
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
|
||||
items: result.Items,
|
||||
shape: "backdrop",
|
||||
shape: "square",
|
||||
showTitle: true,
|
||||
showParentTitle: true,
|
||||
overlayText: true,
|
||||
@@ -31,14 +31,14 @@
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
IsAiring: false,
|
||||
HasAired: false,
|
||||
limit: 10
|
||||
limit: 12
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
var html = LibraryBrowser.getPosterViewHtml({
|
||||
|
||||
items: result.Items,
|
||||
shape: "backdrop",
|
||||
shape: "square",
|
||||
showTitle: true,
|
||||
showParentTitle: true,
|
||||
overlayText: true,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "BoxSet",
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
StartIndex: 0
|
||||
};
|
||||
|
||||
@@ -26,19 +26,26 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
if (result.TotalRecordCount) {
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "portrait",
|
||||
context: 'movies',
|
||||
useAverageAspectRatio: true,
|
||||
showTitle: true,
|
||||
centerText: true
|
||||
});
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "portrait",
|
||||
context: 'movies',
|
||||
useAverageAspectRatio: true,
|
||||
showTitle: 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();
|
||||
|
||||
@@ -60,6 +67,16 @@
|
||||
|
||||
LibraryBrowser.saveQueryValues('boxsets', query);
|
||||
|
||||
Dashboard.getCurrentUser().done(function(user) {
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
$('#btnNewCollection', page).removeClass('hide');
|
||||
} else {
|
||||
$('#btnNewCollection', page).addClass('hide');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
}
|
||||
@@ -95,6 +112,13 @@
|
||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
||||
}
|
||||
|
||||
function showNewCollectionPanel(page) {
|
||||
|
||||
$('#newCollectionPanel', page).panel('toggle');
|
||||
|
||||
$('#txtNewCollectionName', page).val('').focus();
|
||||
}
|
||||
|
||||
$(document).on('pageinit', "#boxsetsPage", function () {
|
||||
|
||||
var page = this;
|
||||
@@ -164,6 +188,11 @@
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
$('#btnNewCollection', page).on('click', function () {
|
||||
|
||||
showNewCollectionPanel(page);
|
||||
});
|
||||
|
||||
}).on('pagebeforeshow', "#boxsetsPage", function () {
|
||||
|
||||
var limit = LibraryBrowser.getDefaultPageSize();
|
||||
@@ -183,4 +212,37 @@
|
||||
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);
|
||||
@@ -26,9 +26,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "backdrop",
|
||||
@@ -66,36 +63,12 @@
|
||||
|
||||
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 () {
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -27,9 +27,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "portrait",
|
||||
@@ -68,19 +65,6 @@
|
||||
|
||||
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 () {
|
||||
|
||||
var filters = "," + (query.PersonTypes || "");
|
||||
@@ -97,18 +81,6 @@
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Movie",
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
StartIndex: 0
|
||||
};
|
||||
|
||||
|
||||
@@ -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 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 () {
|
||||
|
||||
var screenWidth = $(window).width();
|
||||
@@ -8,34 +44,13 @@
|
||||
|
||||
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",
|
||||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Movie",
|
||||
Filters: "IsResumable",
|
||||
Limit: screenWidth >= 1920 ? 4 : (screenWidth >= 1440 ? 4 : 3),
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,UserData"
|
||||
Fields: "PrimaryImageAspectRatio"
|
||||
};
|
||||
|
||||
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
||||
@@ -57,33 +72,26 @@
|
||||
|
||||
});
|
||||
|
||||
options = {
|
||||
|
||||
SortBy: "DateCreated",
|
||||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Trailer",
|
||||
Limit: screenWidth >= 1920 ? 7 : (screenWidth >= 1440 ? 8 : 6),
|
||||
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();
|
||||
|
||||
var url = ApiClient.getUrl("Movies/Recommendations", {
|
||||
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
categoryLimit: screenWidth >= 1200 ? 6 : 3,
|
||||
itemLimit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 6),
|
||||
Fields: "PrimaryImageAspectRatio"
|
||||
});
|
||||
|
||||
$.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);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "backdrop",
|
||||
@@ -65,37 +62,12 @@
|
||||
}
|
||||
|
||||
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 () {
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Trailer",
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
StartIndex: 0
|
||||
};
|
||||
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "square",
|
||||
@@ -66,19 +63,6 @@
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -86,18 +70,6 @@
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "MusicAlbum",
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,PrimaryImageAspectRatio",
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
StartIndex: 0
|
||||
};
|
||||
|
||||
|
||||
@@ -25,9 +25,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "square",
|
||||
@@ -65,19 +62,6 @@
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -85,18 +69,6 @@
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "backdrop",
|
||||
@@ -66,36 +63,12 @@
|
||||
|
||||
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 () {
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
}
|
||||
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) {
|
||||
return ip.Name == plugin.name;
|
||||
@@ -108,7 +108,7 @@
|
||||
|
||||
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 += Dashboard.getStoreRatingHtml(plugin.avgRating, plugin.id, plugin.name);
|
||||
|
||||
|
||||
@@ -721,14 +721,18 @@ var Dashboard = {
|
||||
name: "Metadata",
|
||||
href: "metadata.html",
|
||||
selected: pageElem.id == "metadataConfigurationPage" || pageElem.id == "advancedMetadataConfigurationPage" || pageElem.id == "metadataImagesConfigurationPage"
|
||||
}, {
|
||||
name: "Plugins",
|
||||
href: "plugins.html",
|
||||
selected: page.hasClass("pluginConfigurationPage")
|
||||
}, {
|
||||
name: "Auto-Organize",
|
||||
href: "autoorganizelog.html",
|
||||
selected: page.hasClass("organizePage")
|
||||
}, {
|
||||
name: "Plugins",
|
||||
href: "plugins.html",
|
||||
selected: page.hasClass("pluginConfigurationPage")
|
||||
name: "DLNA",
|
||||
href: "dlnasettings.html",
|
||||
selected: page.hasClass("dlnaPage")
|
||||
}, {
|
||||
name: "Live TV",
|
||||
href: "livetvstatus.html",
|
||||
@@ -1141,9 +1145,7 @@ var Dashboard = {
|
||||
return;
|
||||
}
|
||||
|
||||
var pageElem = page[0];
|
||||
|
||||
if (pageElem.hasPageTitle) {
|
||||
if ($('.pageTitle', page).length) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1154,8 +1156,6 @@ var Dashboard = {
|
||||
}
|
||||
|
||||
$(parent).prepend("<h2 class='pageTitle'>" + (document.title || " ") + "</h2>");
|
||||
|
||||
pageElem.hasPageTitle = true;
|
||||
},
|
||||
|
||||
setPageTitle: function (title) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Audio",
|
||||
Recursive: true,
|
||||
Fields: "DateCreated,AudioInfo,ParentId",
|
||||
Fields: "AudioInfo,ParentId",
|
||||
Limit: 200,
|
||||
StartIndex: 0
|
||||
};
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html += LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
useAverageAspectRatio: true,
|
||||
@@ -69,19 +66,6 @@
|
||||
|
||||
function updateFilterControls(page) {
|
||||
|
||||
// Reset form values using the last used query
|
||||
$('.radioSortBy', page).each(function () {
|
||||
|
||||
this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.radioSortOrder', page).each(function () {
|
||||
|
||||
this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.chkStandardFilter', page).each(function () {
|
||||
|
||||
var filters = "," + (query.Filters || "");
|
||||
@@ -96,18 +80,6 @@
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -27,9 +27,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html = LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
shape: "portrait",
|
||||
@@ -68,19 +65,6 @@
|
||||
|
||||
function updateFilterControls(page) {
|
||||
|
||||
// Reset form values using the last used query
|
||||
$('.radioSortBy', page).each(function () {
|
||||
|
||||
this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.radioSortOrder', page).each(function () {
|
||||
|
||||
this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.chkStandardFilter', page).each(function () {
|
||||
|
||||
var filters = "," + (query.Filters || "");
|
||||
@@ -106,18 +90,6 @@
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Series",
|
||||
Recursive: true,
|
||||
Fields: "SeriesInfo,DateCreated,PrimaryImageAspectRatio",
|
||||
Fields: "SeriesInfo,PrimaryImageAspectRatio",
|
||||
StartIndex: 0
|
||||
};
|
||||
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
|
||||
updateFilterControls(page);
|
||||
|
||||
var checkSortOption = $('.radioSortBy:checked', page);
|
||||
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
|
||||
|
||||
html += LibraryBrowser.getPosterViewHtml({
|
||||
items: result.Items,
|
||||
useAverageAspectRatio: true,
|
||||
@@ -69,19 +66,6 @@
|
||||
|
||||
function updateFilterControls(page) {
|
||||
|
||||
// Reset form values using the last used query
|
||||
$('.radioSortBy', page).each(function () {
|
||||
|
||||
this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.radioSortOrder', page).each(function () {
|
||||
|
||||
this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.chkStandardFilter', page).each(function () {
|
||||
|
||||
var filters = "," + (query.Filters || "");
|
||||
@@ -96,18 +80,6 @@
|
||||
|
||||
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 () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
@@ -6,58 +6,29 @@
|
||||
|
||||
var query = {
|
||||
|
||||
SortBy: "PremiereDate,AirTime,SortName",
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Episode",
|
||||
Limit: 30,
|
||||
Recursive: true,
|
||||
Fields: "SeriesInfo,UserData"
|
||||
Limit: 32,
|
||||
Fields: "SeriesInfo,UserData",
|
||||
UserId: Dashboard.getCurrentUserId()
|
||||
};
|
||||
|
||||
var missedItemsQuery = $.extend({
|
||||
$.getJSON(ApiClient.getUrl("Shows/Upcoming", query)).done(function (result) {
|
||||
|
||||
IsUnaired: false
|
||||
var items = result.Items;
|
||||
|
||||
}, query);
|
||||
|
||||
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) {
|
||||
if (!items.length) {
|
||||
$('#upcomingItems', page).html("<p>Nothing here. Please ensure <a href='metadata.html'>downloading of internet metadata</a> is enabled.</p>").trigger('create');
|
||||
return;
|
||||
}
|
||||
|
||||
$('#upcomingItems', page).html(LibraryBrowser.getPosterViewHtml({
|
||||
items: missedItems,
|
||||
items: items,
|
||||
showLocationTypeIndicator: false,
|
||||
shape: "backdrop",
|
||||
showTitle: true,
|
||||
showPremiereDate: true,
|
||||
showPremiereDateIndex: true,
|
||||
preferThumb: true
|
||||
|
||||
})).createPosterItemHoverMenu();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -14,9 +14,10 @@
|
||||
// After saving chapter task, now save server config
|
||||
ApiClient.getServerConfiguration().done(function (config) {
|
||||
|
||||
config.ImageSavingConvention = $('#selectImageSavingConvention', page).val();
|
||||
config.EnableMovieChapterImageExtraction = $('#chkMovies', page).checked();
|
||||
|
||||
config.EnableUPnP = $('#chkEnableUpnp', page).checked();
|
||||
|
||||
ApiClient.updateServerConfiguration(config).done(function (result) {
|
||||
|
||||
navigateToNextPage();
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
config.MetadataCountryCode = $('#selectCountry', page).val();
|
||||
config.SaveLocalMeta = $('#chkSaveLocalMetadata', page).checked();
|
||||
|
||||
config.EnableInternetProviders = $('#chkEnableInternetProviders', page).checked();
|
||||
|
||||
ApiClient.updateServerConfiguration(config).done(function (result) {
|
||||
|
||||
navigateToNextPage();
|
||||
|
||||
@@ -18,46 +18,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -21,46 +21,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -18,46 +18,13 @@
|
||||
<div data-role="content">
|
||||
<div class="viewSettings">
|
||||
<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>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="viewSummary"></div>
|
||||
</div>
|
||||
<div id="items" class="itemsContainer"></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">
|
||||
<form>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
||||
@@ -13,16 +13,7 @@
|
||||
<img src="css/images/mblogoicon.png" />Configure settings</h2>
|
||||
|
||||
<br />
|
||||
<div style="margin: 1em 0;">
|
||||
<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;">
|
||||
<div style="margin: 1em 0 2em;">
|
||||
<label for="chkVideoImages">Enable video image extraction</label>
|
||||
<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>
|
||||
@@ -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>
|
||||
|
||||
<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">
|
||||
<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>
|
||||
|
||||
@@ -15,7 +15,12 @@
|
||||
|
||||
<br />
|
||||
<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" />
|
||||
<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>
|
||||
|
||||
Reference in New Issue
Block a user