mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-18 03:18:19 -07:00
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
This commit is contained in:
commit
1a56ea5c0a
@ -223,6 +223,9 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
|
||||
if (!userId) {
|
||||
throw new Error("null userId");
|
||||
}
|
||||
if (!itemId) {
|
||||
throw new Error("null itemId");
|
||||
}
|
||||
|
||||
var url = self.getUrl("Users/" + userId + "/Items/" + itemId);
|
||||
|
||||
|
@ -19,31 +19,31 @@
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="txtPortNumber">Http server port number: </label>
|
||||
<label for="txtPortNumber">${LabelHttpServerPortNumber}</label>
|
||||
<input type="number" id="txtPortNumber" name="txtPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
||||
</li>
|
||||
<li id="fldWebSocketPortNumber" style="display: none;">
|
||||
<label for="txtWebSocketPortNumber">Web socket port number: </label>
|
||||
<label for="txtWebSocketPortNumber">${LabelWebSocketPortNumber}</label>
|
||||
<input type="number" id="txtWebSocketPortNumber" name="txtWebSocketPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="chkEnableUpnp">Enable UPnP</label>
|
||||
<label for="chkEnableUpnp">${LabelEnableAutomaticPortMapping}</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>
|
||||
<div class="fieldDescription">${LabelEnableAutomaticPortHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtDdns">External DDNS:</label>
|
||||
<label for="txtDdns">${LabelExternalDDNS}</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>
|
||||
<div class="fieldDescription">${LabelExternalDDNSHelp}</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
|
||||
|
@ -35,10 +35,10 @@
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>App Settings</title>
|
||||
<title>${TitleAppSettings}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="appsPlaybackPage" data-role="page" class="page appsPage type-interior">
|
||||
@ -9,39 +9,39 @@
|
||||
<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">Resume</a>
|
||||
<a href="appsweather.html" data-role="button">Weather</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabResume}</a>
|
||||
<a href="appsweather.html" data-role="button">${TabWeather}</a>
|
||||
</div>
|
||||
<form class="appsPlaybackForm">
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="txtMinResumePct">Min resume percentage: </label>
|
||||
<label for="txtMinResumePct">${LabelMinResumePercentage}</label>
|
||||
<input type="number" id="txtMinResumePct" name="txtMinResumePct" pattern="[0-9]*" required="required" min="0" max="100" />
|
||||
<div class="fieldDescription">
|
||||
Titles are assumed unplayed if stopped before this time
|
||||
${LabelMinResumePercentageHelp}
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtMaxResumePct">Max resume percentage: </label>
|
||||
<label for="txtMaxResumePct">${LabelMaxResumePercentage}</label>
|
||||
<input type="number" id="txtMaxResumePct" name="txtMaxResumePct" pattern="[0-9]*" required="required" min="1" max="100" />
|
||||
<div class="fieldDescription">
|
||||
Titles are assumed fully played if stopped after this time
|
||||
${LabelMaxResumePercentageHelp}
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtMinResumeDuration">Min resume duration (seconds): </label>
|
||||
<label for="txtMinResumeDuration">${LabelMinResumeDuration}</label>
|
||||
<input type="number" id="txtMinResumeDuration" name="txtMinResumeDuration" pattern="[0-9]*" required="required" min="0" />
|
||||
<div class="fieldDescription">
|
||||
Titles shorter than this will not be resumable
|
||||
${LabelMinResumeDurationHelp}
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>App Settings</title>
|
||||
<title>${TitleAppSettings}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="appsWeatherPage" data-role="page" class="page appsPage type-interior">
|
||||
@ -9,8 +9,8 @@
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="appsplayback.html" data-role="button">Resume</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Weather</a>
|
||||
<a href="appsplayback.html" data-role="button">${TabResume}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabWeather}</a>
|
||||
</div>
|
||||
<form class="appsWeatherForm">
|
||||
|
||||
@ -31,10 +31,10 @@
|
||||
</li>
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -16,30 +16,30 @@
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<button id="btnNewCollection" data-mini="true" data-icon="plus" data-inline="true" class="hide">New</button>
|
||||
<button id="btnNewCollection" data-mini="true" data-icon="plus" data-inline="true" class="hide">${ButtonNew}</button>
|
||||
</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>
|
||||
<h3>${HeaderNewCollection}</h3>
|
||||
|
||||
<br />
|
||||
<div>
|
||||
<label for="txtNewCollectionName">Name:</label>
|
||||
<label for="txtNewCollectionName">${LabelName}</label>
|
||||
<input type="text" id="txtNewCollectionName" required="required" />
|
||||
<div class="fieldDescription">Example: Star Wars Collection</div>
|
||||
<div class="fieldDescription">${NewCollectionNameExample}</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<div>
|
||||
<label for="chkEnableInternetMetadata">Search the internet for artwork and metadata</label>
|
||||
<label for="chkEnableInternetMetadata">${OptionSearchForInternetMetadata}</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>
|
||||
<button id="btnSubmitNewCollection" type="submit" data-icon="plus" data-mini="true" data-theme="b">${ButtonCreate}</button>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
@ -49,11 +49,12 @@
|
||||
<form>
|
||||
<div id="sortpanel">
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>Sort By:
|
||||
<legend>
|
||||
<strong>${HeaderSortBy}</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>
|
||||
<label for="radioSortName">${OptionNameSort}</label>
|
||||
|
||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioCommunityRating" value="off" data-sortby="CommunityRating" data-mini="true">
|
||||
<label for="radioCommunityRating">${OptionCommunityRating}</label>
|
||||
@ -63,7 +64,8 @@
|
||||
</fieldset>
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>Sort Order:
|
||||
<legend>
|
||||
<strong>${HeaderSortOrder}</strong>
|
||||
</legend>
|
||||
|
||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 6.5 KiB |
@ -537,6 +537,10 @@ a.itemTag:hover {
|
||||
padding: 0 1em;
|
||||
}
|
||||
|
||||
.mobileDetailButtons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.libraryPage ::-webkit-scrollbar {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
@ -598,7 +602,7 @@ a.itemTag:hover {
|
||||
}
|
||||
|
||||
.libraryPanelHeader {
|
||||
margin: 10px 0 20px 0;
|
||||
margin: 5px 0 25px 0;
|
||||
}
|
||||
|
||||
.libraryPanelHeader a {
|
||||
@ -722,11 +726,11 @@ a.itemTag:hover {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.mobileOverview, .mobileGenres {
|
||||
.mobileOverview, .mobileGenres, .mobileDetailButtons {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.desktopOverview, .desktopGenres {
|
||||
.desktopOverview, .desktopGenres, .desktopDetailButtons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -299,7 +299,6 @@ h1 .imageLink {
|
||||
padding: .75em .5em .75em 1.25em;
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
color: #fff!important;
|
||||
font-weight: normal !important;
|
||||
}
|
||||
@ -327,7 +326,7 @@ h1 .imageLink {
|
||||
}
|
||||
|
||||
.appLinks img {
|
||||
height: 30px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.activeDevicesCollapsible .ui-collapsible-content {
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Dashboard</title>
|
||||
<title>${TitleDashboard}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="dashboardPage" data-role="page" class="page type-interior adminPage dashboardHomePage">
|
||||
@ -10,9 +10,9 @@
|
||||
<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="#" data-role="button" class="ui-btn-active">${TabHome}</a>
|
||||
<a href="dashboardgeneral.html" data-role="button">${TabGeneral}</a>
|
||||
<a href="dashboardinfopage.html" data-role="button">Info</a>
|
||||
<a href="dashboardinfopage.html" data-role="button">${TabInfo}</a>
|
||||
</div>
|
||||
|
||||
<div class="dashboardContent">
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Dashboard</title>
|
||||
<title>${TitleDashboard}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="dashboardGeneralPage" data-role="page" class="page type-interior adminPage dashboardHomePage">
|
||||
@ -10,33 +10,38 @@
|
||||
<div class="content-primary">
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="dashboard.html" data-role="button">Home</a>
|
||||
<a href="dashboard.html" data-role="button">${TabHome}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabGeneral}</a>
|
||||
<a href="dashboardinfopage.html" data-role="button">Info</a>
|
||||
<a href="dashboardinfopage.html" data-role="button">${TabInfo}</a>
|
||||
</div>
|
||||
|
||||
<form class="dashboardGeneralForm">
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="txtServerName">Friendly server name:</label>
|
||||
<label for="txtServerName">${LabelFriendlyServerName}</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>
|
||||
<div class="fieldDescription">${LabelFriendlyServerNameHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="selectLocalizationLanguage">Preferred display language</label>
|
||||
<label for="selectLocalizationLanguage">${LabelPreferredDisplayLanguage}</label>
|
||||
<select id="selectLocalizationLanguage" data-mini="true">
|
||||
</select>
|
||||
<div class="fieldDescription">Translating Media Browser is an ongoing project. <a href="http://mediabrowser3.com/community/index.php?/topic/5727-join-our-translation-team/" target="_blank">Read about how you can contribute</a>.</div>
|
||||
<div class="fieldDescription">
|
||||
<div>${LabelPreferredDisplayLanguageHelp}</div>
|
||||
<div>
|
||||
<a href="http://mediabrowser3.com/community/index.php?/topic/5727-join-our-translation-team/" target="_blank">${LabelReadHowYouCanContribute}</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Dashboard</title>
|
||||
<title>${TitleDashboard}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="dashboardInfoPage" data-role="page" class="page type-interior adminPage dashboardHomePage">
|
||||
@ -11,22 +11,22 @@
|
||||
<div class="readOnlyContent">
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="dashboard.html" data-role="button">Home</a>
|
||||
<a href="dashboard.html" data-role="button">${TabHome}</a>
|
||||
<a href="dashboardgeneral.html" data-role="button">${TabGeneral}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Info</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabInfo}</a>
|
||||
</div>
|
||||
|
||||
<div data-role="collapsible" data-collapsed="false" style="margin-top: 1em;">
|
||||
<h3>Links</h3>
|
||||
<h3>${HeaderLinks}</h3>
|
||||
<div>
|
||||
<p><a href="http://mediabrowser3.com/community" target="_blank">Community</a> - Join us!</p>
|
||||
<p><a href="https://github.com/MediaBrowser/MediaBrowser" target="_blank">Github</a></p>
|
||||
<p><a href="../swagger-ui/index.html" target="_blank">Api Documentation</a></p>
|
||||
<p><a href="http://mediabrowser3.com/community" target="_blank">${LinkCommunity}</a></p>
|
||||
<p><a href="https://github.com/MediaBrowser/MediaBrowser" target="_blank">${LinkGithub}</a></p>
|
||||
<p><a href="../swagger-ui/index.html" target="_blank">${LinkApiDocumentation}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="collapsible" data-collapsed="false" style="margin-top: 1em;">
|
||||
<h3>System Paths</h3>
|
||||
<h3>${HeaderSystemPaths}</h3>
|
||||
<div>
|
||||
<p><b>Cache:</b> <span id="cachePath"></span></p>
|
||||
<p><b>Images by name:</b> <span id="imagesByNamePath"></span></p>
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="dlnasettings.html" data-role="button">${TabSettings}</a>
|
||||
<a href="dlnaprofiles.html" data-role="button" class="ui-btn-active">Profiles</a>
|
||||
<a href="dlnaprofiles.html" data-role="button" class="ui-btn-active">${TabProfiles}</a>
|
||||
</div>
|
||||
|
||||
<form class="dlnaProfileForm" style="max-width: 650px;">
|
||||
@ -132,19 +132,21 @@
|
||||
<div class="transcodingProfiles"></div>
|
||||
</div>
|
||||
<div class="tabContent tabContainerProfiles">
|
||||
<p>Container profiles indicate the limitations of a device when playing specific formats. If a limitation applies then the media will be transcoded, even if the device supports the container natively.</p>
|
||||
<p>Container profiles indicate the limitations of a device when playing specific formats. If a limitation applies then the media will be transcoded, even if the format is configured for direct play.</p>
|
||||
<button class="btnAddContainerProfile" type="button" data-mini="true" data-icon="plus">New</button>
|
||||
<br />
|
||||
<div class="containerProfiles"></div>
|
||||
</div>
|
||||
<div class="tabContent tabCodecProfiles">
|
||||
<p>Codec profiles indicate the limitations of a device when playing specific codecs. If a limitation applies then the media will be transcoded, even if the device supports the codec natively.</p>
|
||||
<p>Codec profiles indicate the limitations of a device when playing specific codecs. If a limitation applies then the media will be transcoded, even if the codec is configured for direct play.</p>
|
||||
<button class="btnAddCodecProfile" type="button" data-mini="true" data-icon="plus">New</button>
|
||||
<br />
|
||||
<div class="codecProfiles"></div>
|
||||
</div>
|
||||
<div class="tabContent tabMediaProfiles">
|
||||
<p>Response profiles provide a way to customize information sent to the device when playing certain kinds of media.</p>
|
||||
<button class="btnAddResponseProfile" type="button" data-mini="true" data-icon="plus">New</button>
|
||||
<br />
|
||||
<div class="mediaProfiles"></div>
|
||||
</div>
|
||||
<br />
|
||||
@ -300,18 +302,32 @@
|
||||
|
||||
<p>Define additional conditions that must be met in order for a file to be direct played.</p>
|
||||
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="selectContainerProfileType">Type:</label>
|
||||
<select id="selectContainerProfileType" data-mini="true">
|
||||
<option value="Photo">Photo</option>
|
||||
<option value="Video">Video</option>
|
||||
</select>
|
||||
<!-- <div data-role="controlgroup" data-type="horizontal" data-mini="true">
|
||||
<input type="radio" name="radioContainerProfileTab" class="radioTabButton" id="radioContainerProfileInfo" value="tabContainerBasics">
|
||||
<label for="radioContainerProfileInfo">Info</label>
|
||||
<input type="radio" name="radioContainerProfileTab" class="radioTabButton" id="radioContainerProfileConditions" value="tabContainerConditions">
|
||||
<label for="radioContainerProfileConditions">Conditions</label>
|
||||
</div>-->
|
||||
|
||||
<div class="tabContent tabContainerBasics">
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="selectContainerProfileType">Type:</label>
|
||||
<select id="selectContainerProfileType" data-mini="true">
|
||||
<option value="Photo">Photo</option>
|
||||
<option value="Video">Video</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtContainerProfileContainer">Containers:</label>
|
||||
<input type="text" id="txtContainerProfileContainer" data-mini="true" />
|
||||
<div>Separated by comma. This can be left empty to apply to all containers</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtContainerProfileContainer">Containers:</label>
|
||||
<input type="text" id="txtContainerProfileContainer" data-mini="true" />
|
||||
<div>Separated by comma. This can be left empty to apply to all containers</div>
|
||||
<div class="tabContent tabContainerConditions" style="display: none;">
|
||||
|
||||
</div>
|
||||
|
||||
<p>
|
||||
@ -349,9 +365,57 @@
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtCodecProfileCodec">Codecs:</label>
|
||||
<input type="text" id="txtCodecProfileCodec" data-mini="true" />
|
||||
<div>Separated by comma. This can be left empty to apply to all codecs</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||
Ok
|
||||
</button>
|
||||
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');" data-mini="true">
|
||||
Cancel
|
||||
</button>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div data-role="popup" data-transition="slidefade" id="responseProfilePopup" class="popup">
|
||||
|
||||
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
|
||||
<h3>Response Profile</h3>
|
||||
</div>
|
||||
|
||||
<div data-role="content">
|
||||
<form class="editResponseProfileForm">
|
||||
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="selectResponseProfileType">Type:</label>
|
||||
<select id="selectResponseProfileType" data-mini="true">
|
||||
<option value="Audio">Audio</option>
|
||||
<option value="Photo">Photo</option>
|
||||
<option value="Video">Video</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtResponseProfileContainer">Container:</label>
|
||||
<input type="text" id="txtResponseProfileContainer" data-mini="true" />
|
||||
<div>Separated by comma. This can be left empty to apply to all containers</div>
|
||||
</div>
|
||||
|
||||
<div id="fldResponseProfileVideoCodec" style="margin: 1em 0;">
|
||||
<label for="txtResponseProfileVideoCodec">Video codecs:</label>
|
||||
<input type="text" id="txtResponseProfileVideoCodec" data-mini="true" />
|
||||
<div>Separated by comma. This can be left empty to apply to all codecs</div>
|
||||
</div>
|
||||
|
||||
<div id="fldResponseProfileAudioCodec" style="margin: 1em 0 2em;">
|
||||
<label for="txtResponseProfileAudioCodec">Audio codecs:</label>
|
||||
<input type="text" id="txtResponseProfileAudioCodec" data-mini="true" />
|
||||
<div>Separated by comma. This can be left empty to apply to all codecs</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||
Ok
|
||||
@ -370,6 +434,7 @@
|
||||
$('.transcodingProfileForm').off('submit', DlnaProfilePage.onTranscodingProfileFormSubmit).on('submit', DlnaProfilePage.onTranscodingProfileFormSubmit);
|
||||
$('.containerProfileForm').off('submit', DlnaProfilePage.onContainerProfileFormSubmit).on('submit', DlnaProfilePage.onContainerProfileFormSubmit);
|
||||
$('.codecProfileForm').off('submit', DlnaProfilePage.onCodecProfileFormSubmit).on('submit', DlnaProfilePage.onCodecProfileFormSubmit);
|
||||
$('.editResponseProfileForm').off('submit', DlnaProfilePage.onResponseProfileFormSubmit).on('submit', DlnaProfilePage.onResponseProfileFormSubmit);
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -11,26 +11,26 @@
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="dlnasettings.html" data-role="button">${TabSettings}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Profiles</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabProfiles}</a>
|
||||
</div>
|
||||
|
||||
<div class="readOnlyContent">
|
||||
|
||||
<div style="position: relative;">
|
||||
<h2>Custom Profiles</h2>
|
||||
<h2>${HeaderCustomDlnaProfiles}</h2>
|
||||
<div style="position: absolute; right: 0; top: -12px;">
|
||||
<a data-role="button" data-icon="plus" data-mini="true" href="dlnaprofile.html">New</a>
|
||||
<a data-role="button" data-icon="plus" data-mini="true" href="dlnaprofile.html">${ButtonNew}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Create a custom profile to target a new device or override a system profile.</p>
|
||||
<p>${CustomDlnaProfilesHelp}</p>
|
||||
|
||||
<div class="customProfiles"></div>
|
||||
|
||||
<br />
|
||||
<h2>System Profiles</h2>
|
||||
<h2>${HeaderSystemDlnaProfiles}</h2>
|
||||
|
||||
<p>System profiles are read-only. To override a system profile, create a custom profile targeting the same device.</p>
|
||||
<p>${SystemDlnaProfilesHelp}</p>
|
||||
|
||||
<div class="systemProfiles"></div>
|
||||
</div>
|
||||
|
@ -11,33 +11,33 @@
|
||||
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabSettings}</a>
|
||||
<a href="dlnaprofiles.html" data-role="button">Profiles</a>
|
||||
<a href="dlnaprofiles.html" data-role="button">${TabProfiles}</a>
|
||||
</div>
|
||||
|
||||
<form class="dlnaSettingsForm">
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="chkEnablePlayTo">Enable DLNA Play To</label>
|
||||
<label for="chkEnablePlayTo">${LabelEnableDlnaPlayTo}</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>
|
||||
<div class="fieldDescription">${LabelEnableDlnaPlayToHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="chkEnableDlnaDebugLogging">Enable DLNA debug logging</label>
|
||||
<label for="chkEnableDlnaDebugLogging">${LabelEnableDlnaDebugLogging}</label>
|
||||
<input type="checkbox" id="chkEnableDlnaDebugLogging" data-mini="true" />
|
||||
<div class="fieldDescription">This will create large log files and should only be used as needed for troubleshooting purposes.</div>
|
||||
<div class="fieldDescription">${LabelEnableDlnaDebugLoggingHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtClientDiscoveryInterval">Client discovery interval (seconds)</label>
|
||||
<label for="txtClientDiscoveryInterval">${LabelEnableDlnaClientDiscoveryInterval}</label>
|
||||
<input type="number" id="txtClientDiscoveryInterval" data-mini="true" min="1" max="300" />
|
||||
<div class="fieldDescription">Determines the duration in seconds of the interval between SSDP searches performed by Media Browser.</div>
|
||||
<div class="fieldDescription">${LabelEnableDlnaClientDiscoveryIntervalHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -17,19 +17,19 @@
|
||||
<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 href="#" data-role="button" id="btnEditMetadata">${TabMetadata}</a>
|
||||
<a id="btnEditPeople" style="display: none;" href="#" data-role="button">${TabPeople}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Titles</a>
|
||||
<a id="btnEditImages" href="#" data-role="button">Images</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabCollectionTitles}</a>
|
||||
<a id="btnEditImages" href="#" data-role="button">${TabImages}</a>
|
||||
</div>
|
||||
|
||||
<p style="margin-top: -20px;">
|
||||
Add or remove any movies, series, albums, books or games you wish to group within this collection.
|
||||
${EditCollectionItemsHelp}
|
||||
</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>
|
||||
<button type="button" id="btnAddItem" data-icon="plus" data-inline="true" data-mini="true">${ButtonAdd}</button>
|
||||
<button type="button" id="btnRemoveItems" data-icon="delete" data-inline="true" data-mini="true" disabled="disabled">${ButtonRemove}</button>
|
||||
</div>
|
||||
<br />
|
||||
<div class="collectionItems"></div>
|
||||
@ -39,7 +39,7 @@
|
||||
<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>${HeaderAddTitles}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
@ -48,14 +48,14 @@
|
||||
<form class="collectionItemSearchForm" style="max-width: initial;">
|
||||
|
||||
<div>
|
||||
<label for="txtLookupName">Name:</label>
|
||||
<label for="txtLookupName">${LabelName}</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
|
||||
${ButtonSearch}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -63,7 +63,7 @@
|
||||
</div>
|
||||
|
||||
<button id="btnAddItems" type="button" data-icon="plus" data-mini="true">
|
||||
Add
|
||||
${ButtonAdd}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -17,10 +17,10 @@
|
||||
<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 href="#" data-role="button" id="btnEditMetadata">${TabMetadata}</a>
|
||||
<a href="#" data-role="button" id="btnEditPeople" style="display: none;">${TabPeople}</a>
|
||||
<a id="btnEditCollectionTitles" style="display: none;" href="#" data-role="button">Titles</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Images</a>
|
||||
<a id="btnEditCollectionTitles" style="display: none;" href="#" data-role="button">${TabCollectionTitles}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabImages}</a>
|
||||
</div>
|
||||
|
||||
<div style="margin: -25px 0 1em;">
|
||||
|
@ -16,10 +16,10 @@
|
||||
<h1 class="itemName editPageName"> </h1>
|
||||
<br />
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="#" data-role="button" class="ui-btn-active">Metadata</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabMetadata}</a>
|
||||
<a id="btnEditPeople" style="display: none;" href="#" data-role="button">${TabPeople}</a>
|
||||
<a id="btnEditCollectionTitles" style="display: none;" href="editcollectionitems.html" data-role="button">Titles</a>
|
||||
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
||||
<a id="btnEditCollectionTitles" style="display: none;" href="editcollectionitems.html" data-role="button">${TabCollectionTitles}</a>
|
||||
<a href="#" data-role="button" id="btnEditImages">${TabImages}</a>
|
||||
</div>
|
||||
|
||||
<form class="editItemMetadataForm editMetadataForm" style="margin-top: -20px;">
|
||||
|
@ -16,13 +16,13 @@
|
||||
<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 href="#" data-role="button" id="btnEditMetadata">${TabMetadata}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabPeople}</a>
|
||||
<a id="btnEditCollectionTitles" style="display: none;" href="#" data-role="button">Titles</a>
|
||||
<a href="#" data-role="button" id="btnEditImages">Images</a>
|
||||
<a id="btnEditCollectionTitles" style="display: none;" href="#" data-role="button">${TabCollectionTitles}</a>
|
||||
<a href="#" data-role="button" id="btnEditImages">${TabImages}</a>
|
||||
</div>
|
||||
<div id="divAddPerson" style="display: none;">
|
||||
<button type="button" data-icon="plus" data-inline="true" data-mini="true" onclick="EditItemPeoplePage.addPerson();">Add Person</button>
|
||||
<button type="button" data-icon="plus" data-inline="true" data-mini="true" onclick="EditItemPeoplePage.addPerson();">${ButtonAdd}</button>
|
||||
</div>
|
||||
<div class="itemsContainer" id="peopleContainer" style="text-align: left;"></div>
|
||||
</div>
|
||||
|
@ -19,46 +19,46 @@
|
||||
<form class="encodingSettingsForm">
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>Transcoding Quality Preference:</legend>
|
||||
<legend>${HeaderTranscodingQualityPreference}</legend>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioAuto" value="Auto">
|
||||
<label for="radioAuto">
|
||||
Auto<br />
|
||||
<span style="font-weight: normal;">The server will decide quality and speed</span></label>
|
||||
${OptionAutomatic}<br />
|
||||
<span style="font-weight: normal;">${OptionAutomaticTranscodingHelp}</span></label>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioHighSpeed" value="HighSpeed">
|
||||
<label for="radioHighSpeed">
|
||||
Higher speed<br />
|
||||
<span style="font-weight: normal;">Lower quality, but faster encoding</span></label>
|
||||
${OptionHighSpeedTranscoding}<br />
|
||||
<span style="font-weight: normal;">${OptionHighSpeedTranscodingHelp}</span></label>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioHighQuality" value="HighQuality">
|
||||
<label for="radioHighQuality">
|
||||
Higher quality<br />
|
||||
<span style="font-weight: normal;">Higher quality, but slower encoding</span></label>
|
||||
${OptionHighQualityTranscoding}<br />
|
||||
<span style="font-weight: normal;">${OptionHighQualityTranscodingHelp}</span></label>
|
||||
<input type="radio" name="radioEncodingQuality" class="radioEncodingQuality" id="radioMaxQuality" value="MaxQuality">
|
||||
<label for="radioMaxQuality">
|
||||
Max quality<br />
|
||||
<span style="font-weight: normal;">Best quality with slower encoding and high CPU usage</span></label>
|
||||
${OptionMaxQualityTranscoding}<br />
|
||||
<span style="font-weight: normal;">${OptionMaxQualityTranscodingHelp}</span></label>
|
||||
</fieldset>
|
||||
|
||||
<br />
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<input type="checkbox" id="chkAllowUpscaling" name="chkAllowUpscaling" data-mini="true" />
|
||||
<label for="chkAllowUpscaling">Allow video upscaling when requested by clients</label>
|
||||
<div class="fieldDescription">In some cases this will result in improved video quality but will increase CPU usage.</div>
|
||||
<label for="chkAllowUpscaling">${OptionUpscaling}</label>
|
||||
<div class="fieldDescription">${OptionUpscalingHelp}</div>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="chkEnableDebugEncodingLogging" name="chkEnableDebugEncodingLogging" data-mini="true" />
|
||||
<label for="chkEnableDebugEncodingLogging">Enable debug transcoding logging</label>
|
||||
<div class="fieldDescription">This will create very large log files and is only recommended as needed for troubleshooting purposes.</div>
|
||||
<label for="chkEnableDebugEncodingLogging">${OptionEnableDebugTranscodingLogging}</label>
|
||||
<div class="fieldDescription">${OptionEnableDebugTranscodingLoggingHelp}</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -24,13 +24,13 @@
|
||||
<div class="viewControls" data-role="controlgroup" data-type="horizontal">
|
||||
<button data-mini="true" data-icon="sort" data-inline="true" data-iconpos="notext" title="${ButtonSort}" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">${ButtonSort}</button>
|
||||
<button data-mini="true" data-icon="filter" data-inline="true" data-iconpos="notext" title="${ButtonFilter}" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">${ButtonFilter}</button>
|
||||
<button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="Select" class="btnToggleSelections">Select</button>
|
||||
<button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="${ButtonSelect}" class="btnToggleSelections">${ButtonSelect}</button>
|
||||
</div>
|
||||
<div class="listTopPaging">
|
||||
</div>
|
||||
<div class="selectionCommands" style="display: none;">
|
||||
<div data-role="controlgroup" data-type="horizontal" class="selectionCommandsControlGroup">
|
||||
<button class="btnMergeVersions" data-mini="true" data-icon="recycle" data-inline="true" title="Combine Versions">Group Versions</button>
|
||||
<button class="btnMergeVersions" data-mini="true" data-icon="recycle" data-inline="true" title="${ButtonGroupVersions}">${ButtonGroupVersions}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -45,13 +45,13 @@
|
||||
</legend>
|
||||
|
||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSeriesSortName" value="on" checked="checked" data-sortby="SeriesSortName,SortName" data-mini="true">
|
||||
<label for="radioSeriesSortName">Series name</label>
|
||||
<label for="radioSeriesSortName">${OptionSeriesSortName}</label>
|
||||
|
||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
||||
<label for="radioSortName">Episode sort name</label>
|
||||
<label for="radioSortName">${OptionEpisodeSortName}</label>
|
||||
|
||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioCommunityRating" value="off" data-sortby="CommunityRating,SeriesSortName,SortName" data-mini="true">
|
||||
<label for="radioCommunityRating">Tvdb rating</label>
|
||||
<label for="radioCommunityRating">${OptionTvdbRating}</label>
|
||||
|
||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioDateCreated" value="off" data-sortby="DateCreated,SeriesSortName,SortName" data-mini="true">
|
||||
<label for="radioDateCreated">${OptionDateAdded}</label>
|
||||
@ -113,13 +113,13 @@
|
||||
<label for="chkDislikes">${OptionDislikes}</label>
|
||||
|
||||
<input type="checkbox" name="chkSpecialFeature" id="chkSpecialFeature" data-mini="true">
|
||||
<label for="chkSpecialFeature">Season 0</label>
|
||||
<label for="chkSpecialFeature">${OptionSpecialEpisode}</label>
|
||||
|
||||
<input type="checkbox" name="chkMissingEpisode" id="chkMissingEpisode" data-mini="true">
|
||||
<label for="chkMissingEpisode">Missing Episode</label>
|
||||
<label for="chkMissingEpisode">${OptionMissingEpisode}</label>
|
||||
|
||||
<input type="checkbox" name="chkFutureEpisode" id="chkFutureEpisode" data-mini="true">
|
||||
<label for="chkFutureEpisode">Unaired Episode</label>
|
||||
<label for="chkFutureEpisode">${OptionUnairedEpisode}</label>
|
||||
|
||||
</fieldset>
|
||||
<fieldset data-role="controlgroup">
|
||||
|
@ -8,7 +8,7 @@
|
||||
<div class="libraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggested}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
<a href="gamesystems.html">Game Systems</a>
|
||||
<a href="gamesystems.html">${TabGameSystems}</a>
|
||||
<a href="gamegenres.html" class="ui-btn-active">${TabGenres}</a>
|
||||
<a href="gamestudios.html">${TabStudios}</a>
|
||||
</div>
|
||||
@ -37,13 +37,6 @@
|
||||
<input class="chkStandardFilter" type="checkbox" name="chkDislikes" id="chkDislikes" data-filter="Dislikes" data-mini="true">
|
||||
<label for="chkDislikes">${OptionDislikes}</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>
|
||||
<strong>Game System:</strong>
|
||||
</legend>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
<div class="libraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggested}</a>
|
||||
<a href="games.html" class="ui-btn-active">${TabGames}</a>
|
||||
<a href="gamesystems.html">Game Systems</a>
|
||||
<a href="gamesystems.html">${TabGameSystems}</a>
|
||||
<a href="gamegenres.html">${TabGenres}</a>
|
||||
<a href="gamestudios.html">${TabStudios}</a>
|
||||
</div>
|
||||
@ -36,7 +36,7 @@
|
||||
</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>
|
||||
<label for="radioSortName">${OptionNameSort}</label>
|
||||
|
||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioCommunityRating" value="off" data-sortby="CommunityRating" data-mini="true">
|
||||
<label for="radioCommunityRating">${OptionCommunityRating}</label>
|
||||
@ -91,20 +91,20 @@
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>
|
||||
<strong>Players:</strong>
|
||||
<strong>${HeaderNumberOfPlayers}</strong>
|
||||
</legend>
|
||||
|
||||
<input class="radioPlayers" type="radio" name="radioPlayers" id="radioAll" value="on" checked="checked" data-value="all" data-mini="true">
|
||||
<label for="radioAll">Any</label>
|
||||
<label for="radioAll">${OptionAnyNumberOfPlayers}</label>
|
||||
|
||||
<input class="radioPlayers" type="radio" name="radioPlayers" id="radioTwo" value="off" data-value="2" data-mini="true">
|
||||
<label for="radioTwo">2+</label>
|
||||
<label for="radioTwo">${Option2Player}</label>
|
||||
|
||||
<input class="radioPlayers" type="radio" name="radioPlayers" id="radioThree" value="off" data-value="3" data-mini="true">
|
||||
<label for="radioThree">3+</label>
|
||||
<label for="radioThree">${Option3Player}</label>
|
||||
|
||||
<input class="radioPlayers" type="radio" name="radioPlayers" id="radioFour" value="off" data-value="4" data-mini="true">
|
||||
<label for="radioFour">4+</label>
|
||||
<label for="radioFour">${Option4Player}</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
|
@ -16,13 +16,13 @@
|
||||
<table class="ehsContent">
|
||||
<tr>
|
||||
<td>
|
||||
<h1 class="listHeader">Latest Games</h1>
|
||||
<h1 class="listHeader">${HeaderLatestGames}</h1>
|
||||
|
||||
<div id="recentlyAddedItems">
|
||||
</div>
|
||||
|
||||
<div id="recentlyPlayedSection" style="display: none;">
|
||||
<h1 class="listHeader">Recently Played Games</h1>
|
||||
<h1 class="listHeader">${HeaderRecentlyPlayedGames}</h1>
|
||||
|
||||
<div id="recentlyPlayedItems">
|
||||
</div>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<div class="libraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggested}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
<a href="gamesystems.html">Game Systems</a>
|
||||
<a href="gamesystems.html">${TabGameSystems}</a>
|
||||
<a href="gamegenres.html">${TabGenres}</a>
|
||||
<a href="gamestudios.html" class="ui-btn-active">${TabStudios}</a>
|
||||
</div>
|
||||
@ -37,13 +37,6 @@
|
||||
<input class="chkStandardFilter" type="checkbox" name="chkDislikes" id="chkDislikes" data-filter="Dislikes" data-mini="true">
|
||||
<label for="chkDislikes">${OptionDislikes}</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
<legend>
|
||||
<strong>Game Systems:</strong>
|
||||
</legend>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<div class="libraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggested}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
<a href="gamesystems.html" class="ui-btn-active">Game Systems</a>
|
||||
<a href="gamesystems.html" class="ui-btn-active">${TabGameSystems}</a>
|
||||
<a href="gamegenres.html">${TabGenres}</a>
|
||||
<a href="gamestudios.html">${TabStudios}</a>
|
||||
</div>
|
||||
|
@ -15,7 +15,7 @@
|
||||
<div id="views">
|
||||
</div>
|
||||
<br />
|
||||
<h1 class="listHeader"><a href="itemlist.html">Media Folders<img src="css/images/rightarrow.png" class="headerArrowImage" /></a></h1>
|
||||
<h1 class="listHeader"><a href="itemlist.html">${HeaderMediaFolders}<img src="css/images/rightarrow.png" class="headerArrowImage" /></a></h1>
|
||||
|
||||
<div id="divCollections"></div>
|
||||
</td>
|
||||
|
@ -146,7 +146,7 @@
|
||||
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">${ButtonPlay}</button>
|
||||
</span>
|
||||
<span id="editButtonContainer" style="display: none;">
|
||||
<a id="btnEdit" data-role="button" data-icon="edit" data-inline="true" data-mini="true" href="#">Edit</a>
|
||||
<a id="btnEdit" data-role="button" data-icon="edit" data-inline="true" data-mini="true" href="#">${ButtonEdit}</a>
|
||||
</span>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
|
@ -85,7 +85,7 @@
|
||||
<div class="libraryViewNav">
|
||||
<a href="gamesrecommended.html">${TabSuggested}</a>
|
||||
<a href="games.html">${TabGames}</a>
|
||||
<a href="gamesystems.html" class="ui-btn-active">Game Systems</a>
|
||||
<a href="gamesystems.html" class="ui-btn-active">${TabGameSystems}</a>
|
||||
<a href="gamegenres.html">${TabGenres}</a>
|
||||
<a href="gamestudios.html">${TabStudios}</a>
|
||||
</div>
|
||||
@ -109,35 +109,38 @@
|
||||
<p id="artist"></p>
|
||||
<p class="itemGenres desktopGenres"></p>
|
||||
<p class="itemOverview desktopOverview"></p>
|
||||
<div class="detailButtonsContainer" style="text-align: left;">
|
||||
<span id="missingIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">MISSING</span>
|
||||
<div class="detailButtonsContainer desktopDetailButtons" style="text-align: left;">
|
||||
<span class="missingIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">${LabelMissing}</span>
|
||||
</span>
|
||||
<span id="offlineIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">OFFLINE</span>
|
||||
</span>
|
||||
<span id="playButtonContainer" style="display: none;">
|
||||
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">${ButtonPlay}</button>
|
||||
</span>
|
||||
<span id="trailerButtonContainer" style="display: none;">
|
||||
<button id="btnPlayTrailer" type="button" data-icon="video" data-inline="true" data-mini="true">Trailer</button>
|
||||
</span>
|
||||
<span id="externalTrailerButtonContainer" style="display: none;">
|
||||
<a id="btnPlayExternalTrailer" data-role="button" data-icon="video" data-inline="true" data-mini="true" href="#" target="_blank">Trailer</a>
|
||||
</span>
|
||||
<span id="playExternalButtonContainer" style="display: none;">
|
||||
<a id="btnPlayExternal" data-role="button" data-icon="play" data-inline="true" data-mini="true" href="#" target="_blank">${ButtonPlay}</a>
|
||||
</span>
|
||||
<span id="editButtonContainer" style="display: none;">
|
||||
<a id="btnEdit" data-role="button" data-icon="edit" data-inline="true" data-mini="true" href="#">Edit</a>
|
||||
<span class="offlineIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">${LabelOffline}</span>
|
||||
</span>
|
||||
<button class="btnPlay hide" type="button" data-icon="play" data-inline="true" data-mini="true">${ButtonPlay}</button>
|
||||
<button class="btnPlayTrailer hide" type="button" data-icon="video" data-inline="true" data-mini="true">${ButtonPlayTrailer}</button>
|
||||
<a class="btnPlayExternalTrailer hide" data-role="button" data-icon="video" data-inline="true" data-mini="true" href="#" target="_blank">${ButtonPlayTrailer}</a>
|
||||
<a class="btnPlayExternal hide" data-role="button" data-icon="play" data-inline="true" data-mini="true" href="#" target="_blank">${ButtonPlay}</a>
|
||||
<a class="btnEdit hide" data-role="button" data-icon="edit" data-inline="true" data-mini="true" href="#">${ButtonEdit}</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="detailButtonsContainer mobileDetailButtons">
|
||||
<span class="missingIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">${LabelMissing}</span>
|
||||
</span>
|
||||
<span class="offlineIndicator" style="margin-left: .5em; display: none;">
|
||||
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">${LabelOffline}</span>
|
||||
</span>
|
||||
<button class="btnPlay hide" type="button" data-icon="play" data-inline="true" data-mini="true">${ButtonPlay}</button>
|
||||
<button class="btnPlayTrailer hide" type="button" data-icon="video" data-inline="true" data-mini="true">${ButtonPlayTrailer}</button>
|
||||
<a class="btnPlayExternalTrailer hide" data-role="button" data-icon="video" data-inline="true" data-mini="true" href="#" target="_blank">${ButtonPlayTrailer}</a>
|
||||
<a class="btnPlayExternal hide" data-role="button" data-icon="play" data-inline="true" data-mini="true" href="#" target="_blank">${ButtonPlay}</a>
|
||||
<a class="btnEdit hide" data-role="button" data-icon="edit" data-inline="true" data-mini="true" href="#">${ButtonEdit}</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#" id="lnkPreviousItem" class="lnkPreviousItem lnkSibling hide" data-role="button" title="Previous" data-icon="carat-l" data-mini="true" data-inline="true" data-iconpos="notext">Previous</a>
|
||||
<a href="#" id="lnkNextItem" class="lnkNextItem lnkSibling hide" data-role="button" title="Next" data-icon="carat-r" data-mini="true" data-inline="true" data-iconpos="notext">Next</a>
|
||||
<a href="#" id="lnkPreviousItem" class="lnkPreviousItem lnkSibling hide" data-role="button" title="${ButtonPrevious}" data-icon="carat-l" data-mini="true" data-inline="true" data-iconpos="notext">${ButtonPrevious}</a>
|
||||
<a href="#" id="lnkNextItem" class="lnkNextItem lnkSibling hide" data-role="button" title="${ButtonNext}" data-icon="carat-r" data-mini="true" data-inline="true" data-iconpos="notext">${ButtonNext}</a>
|
||||
<p class="itemGenres mobileGenres"></p>
|
||||
<p class="itemOverview mobileOverview"></p>
|
||||
</div>
|
||||
@ -162,7 +165,7 @@
|
||||
<div class="detailTab tabMediaInfo">
|
||||
|
||||
<div class="splitVersionContainer" style="border-bottom: 1px solid #444;">
|
||||
<button type="button" class="btnSplitVersions" data-mini="true" data-inline="true" data-icon="delete" title="Split Versions Apart">Split Versions Apart</button>
|
||||
<button type="button" class="btnSplitVersions" data-mini="true" data-inline="true" data-icon="delete" title="${ButtonSplitVersionsApart}">${ButtonSplitVersionsApart}</button>
|
||||
</div>
|
||||
<div id="mediaInfoContent"></div>
|
||||
|
||||
@ -184,43 +187,42 @@
|
||||
</div>
|
||||
<div id="additionalPartsCollapsible" class="detailSection hide">
|
||||
<div class="detailSectionHeader">
|
||||
Additional Parts
|
||||
${HeaderAdditionalParts}
|
||||
</div>
|
||||
<div id="additionalPartsContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="castCollapsible" style="display: none;" class="detailSection">
|
||||
<div id="peopleHeader" class="detailSectionHeader">
|
||||
Cast & Crew
|
||||
${HeaderCastCrew}
|
||||
</div>
|
||||
<div id="castContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="specialsCollapsible" class="detailSection hide">
|
||||
<div class="detailSectionHeader">
|
||||
Special Features
|
||||
${HeaderSpecialFeatures}
|
||||
</div>
|
||||
<div id="specialsContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="musicVideosCollapsible" style="display: none;" class="detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
Music Videos
|
||||
${HeaderMusicVideos}
|
||||
</div>
|
||||
<div id="musicVideosContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="soundtracksCollapsible" style="display: none;" class="detailSection">
|
||||
<div id="soundtracksHeader" class="detailSectionHeader">
|
||||
Soundtracks
|
||||
${HeaderSoundtracks}
|
||||
</div>
|
||||
<div id="soundtracksContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="similarCollapsible" style="display: none;" class="detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
Similar
|
||||
</div>
|
||||
<div id="similarContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="criticReviewsCollapsible" style="display: none;" class="detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
Awards and Reviews
|
||||
${HeaderAwardsAndReviews}
|
||||
</div>
|
||||
<div style="padding: 0 .5em;">
|
||||
<p id="awardSummary"></p>
|
||||
@ -237,20 +239,20 @@
|
||||
</div>
|
||||
<div id="scenesCollapsible" style="display: none;" class="detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
Scenes
|
||||
${HeaderScenes}
|
||||
</div>
|
||||
<div id="scenesContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
<div id="themeSongsCollapsible" style="display: none;" class="detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
Theme Songs
|
||||
${HeaderThemeSongs}
|
||||
</div>
|
||||
<div id="themeSongsContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
|
||||
<div id="themeVideosCollapsible" style="display: none;" class="detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
Theme Videos
|
||||
${HeaderThemeVideos}
|
||||
</div>
|
||||
<div id="themeVideosContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
<div id="galleryCollapsible" class="detailSection">
|
||||
<div class="detailSectionHeader">
|
||||
Gallery
|
||||
${HeaderGallery}
|
||||
</div>
|
||||
<div id="galleryContent" class="detailSectionContent"></div>
|
||||
</div>
|
||||
|
@ -11,15 +11,15 @@
|
||||
|
||||
<h1 class="listHeader" style="margin: 0; text-align: center;"><span id="itemName"></span>
|
||||
<span id="editButtonContainer" style="display: none; margin-left: .5em;">
|
||||
<button id="btnEdit" type="button" data-icon="edit" data-inline="true" data-mini="true">Edit</button>
|
||||
<button id="btnEdit" type="button" data-icon="edit" data-inline="true" data-mini="true">${ButtonEdit}</button>
|
||||
</span>
|
||||
</h1>
|
||||
<div class="viewSettings">
|
||||
<div class="viewControls">
|
||||
<div style="display: inline-block;">
|
||||
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
|
||||
<option value="Backdrop">Backdrop</option>
|
||||
<option value="Poster">Poster</option>
|
||||
<option value="Backdrop">${OptionBackdrop}</option>
|
||||
<option value="Poster">${OptionPoster}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@ -41,7 +41,7 @@
|
||||
</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>
|
||||
<label for="radioSortName">${OptionNameSort}</label>
|
||||
|
||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioCommunityRating" value="off" data-sortby="CommunityRating" data-mini="true">
|
||||
<label for="radioCommunityRating">${OptionCommunityRating}</label>
|
||||
@ -62,7 +62,7 @@
|
||||
<label for="radioRuntime">${OptionRuntime}</label>
|
||||
|
||||
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioIsFolder" value="off" data-sortby="IsFolder,SortName" data-mini="true">
|
||||
<label for="radioIsFolder">Folders</label>
|
||||
<label for="radioIsFolder">${OptionFolderSort}</label>
|
||||
</fieldset>
|
||||
|
||||
<fieldset data-role="controlgroup">
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<title>${TitleMediaLibrary}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="mediaLibraryPage" data-role="page" class="page type-interior mediaLibraryPage">
|
||||
@ -9,22 +9,22 @@
|
||||
<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">Folders</a>
|
||||
<a href="librarypathmapping.html" data-role="button">Path Substitution</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabFolders}</a>
|
||||
<a href="librarypathmapping.html" data-role="button">${TabPathSubstitution}</a>
|
||||
<a href="librarysettings.html" data-role="button">${TabAdvanced}</a>
|
||||
</div>
|
||||
<div class="readOnlyContent">
|
||||
<p style="margin: 2em 0;">Refer to the <a href="https://github.com/MediaBrowser/MediaBrowser/wiki/Library-Structure" target="_blank">media library wiki.</a> for suggested folder structures.</p>
|
||||
<p style="margin: 2em 0;"><a href="https://github.com/MediaBrowser/MediaBrowser/wiki/Library-Structure" target="_blank">${ReferToMediaLibraryWiki}</a></p>
|
||||
<div id="divMediaLibrary">
|
||||
<p>
|
||||
<button type="button" data-mini="true" data-icon="plus" onclick="MediaLibraryPage.addVirtualFolder();">Add media folder</button>
|
||||
<button type="button" data-mini="true" data-icon="plus" onclick="MediaLibraryPage.addVirtualFolder();">${ButtonAddMediaFolder}</button>
|
||||
</p>
|
||||
<div id="divVirtualFolders"></div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<div class="readOnlyContent refreshLibraryPanel hide">
|
||||
<button type="button" class="btnRefresh" data-icon="refresh" data-mini="true">Scan Library</button>
|
||||
<button type="button" class="btnRefresh" data-icon="refresh" data-mini="true">${ButtonScanLibrary}</button>
|
||||
<progress max="100" min="0" style="width: 100%;" class="refreshProgress"></progress>
|
||||
<div style="margin-top: 5px;">Last Result: <span class="lastRefreshResult"></span></div>
|
||||
</div>
|
||||
@ -35,31 +35,31 @@
|
||||
<div data-role="popup" data-transition="slidefade" id="popupEnterText" class="popup">
|
||||
|
||||
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
|
||||
<h3>Rename Media Folder</h3>
|
||||
<h3></h3>
|
||||
</div>
|
||||
|
||||
<div data-role="content">
|
||||
<form id="textEntryForm">
|
||||
<p>
|
||||
<label id="lblValue" for="txtValue">New name:</label>
|
||||
<label id="lblValue" for="txtValue"></label>
|
||||
<input type="text" name="txtValue" id="txtValue" required="required" />
|
||||
</p>
|
||||
|
||||
<p id="fldCollectionType">
|
||||
<label for="selectCollectionType">Folder type:</label>
|
||||
<label for="selectCollectionType">${LabelFolderType}</label>
|
||||
<select id="selectCollectionType" name="selectCollectionType"></select>
|
||||
</p>
|
||||
|
||||
<p class="collectionTypeFieldDescription">
|
||||
* Requires the use of a plugin, e.g. GameBrowser or MB Bookshelf.
|
||||
${MediaFolderHelpPluginRequired}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Ok
|
||||
${ButtonOk}
|
||||
</button>
|
||||
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</p>
|
||||
</form>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Media Library</title>
|
||||
<title>${TitleMediaLibrary}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="libraryPathMappingPage" data-role="page" class="page type-interior mediaLibraryPage">
|
||||
@ -9,21 +9,21 @@
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="library.html" data-role="button">Folders</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">Path Substitution</a>
|
||||
<a href="library.html" data-role="button">${TabFolders}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabPathSubstitution}</a>
|
||||
<a href="librarysettings.html" data-role="button">${TabAdvanced}</a>
|
||||
</div>
|
||||
|
||||
<div class="readOnlyContent">
|
||||
<p>Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.</p>
|
||||
<p>${PathSubstitutionHelp}</p>
|
||||
</div>
|
||||
|
||||
<table id="tblPaths" data-role="table" data-mode="reflow" class="ui-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>From</th>
|
||||
<th>To</th>
|
||||
<th>${HeaderFrom}</th>
|
||||
<th>${HeaderTo}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="tbodyPathSubstitutions">
|
||||
@ -35,21 +35,21 @@
|
||||
<form class="libraryPathMappingForm">
|
||||
|
||||
<div>
|
||||
<h3 class="ui-bar-a" style="padding: .7em 1em;">Add Substitution</h3>
|
||||
<h3 class="ui-bar-a" style="padding: .7em 1em;">${ButtonAddPathSubstitution}</h3>
|
||||
<div>
|
||||
<label for="txtFrom">From:</label>
|
||||
<label for="txtFrom">${LabelFrom}</label>
|
||||
<input id="txtFrom" type="text" required="required" data-mini="true" />
|
||||
<div class="fieldDescription">Example: D:\Movies (on the server)</div>
|
||||
<div class="fieldDescription">${LabelFromHelp}</div>
|
||||
</div>
|
||||
<br />
|
||||
<div>
|
||||
<label for="txtTo">To:</label>
|
||||
<label for="txtTo">${LabelTo}</label>
|
||||
<input id="txtTo" type="text" required="required" data-mini="true" />
|
||||
<div class="fieldDescription">Example: \\MyServer\Movies (a path clients can access)</div>
|
||||
<div class="fieldDescription">${LabelToHelp}</div>
|
||||
</div>
|
||||
<br />
|
||||
<p>
|
||||
<button type="submit" data-mini="true" data-icon="plus">Add</button>
|
||||
<button type="submit" data-mini="true" data-icon="plus">${ButtonAdd}</button>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Media Library</title>
|
||||
<title>${TitleMediaLibrary}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="librarySettingsPage" data-role="page" class="page type-interior mediaLibraryPage">
|
||||
@ -9,8 +9,8 @@
|
||||
<div data-role="content">
|
||||
<div class="content-primary">
|
||||
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
|
||||
<a href="library.html" data-role="button">Folders</a>
|
||||
<a href="librarypathmapping.html" data-role="button">Path Substitution</a>
|
||||
<a href="library.html" data-role="button">${TabFolders}</a>
|
||||
<a href="librarypathmapping.html" data-role="button">${TabPathSubstitution}</a>
|
||||
<a href="#" data-role="button" class="ui-btn-active">${TabAdvanced}</a>
|
||||
</div>
|
||||
|
||||
@ -19,21 +19,21 @@
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<input type="checkbox" id="chkEnableRealtimeMonitor" name="chkEnableRealtimeMonitor" />
|
||||
<label for="chkEnableRealtimeMonitor">Enable real time monitoring</label>
|
||||
<label for="chkEnableRealtimeMonitor">${LabelEnableRealtimeMonitor}</label>
|
||||
<div class="fieldDescription">
|
||||
Changes will be processed immediately, on supported file systems.
|
||||
${LabelEnableRealtimeMonitorHelp}
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="txtSeasonZeroName">Season 0 display name: </label>
|
||||
<label for="txtSeasonZeroName">${LabelSeasonZeroDisplayName}</label>
|
||||
<input type="text" id="txtSeasonZeroName" name="txtSeasonZeroName" required="required" />
|
||||
</li>
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -23,11 +23,11 @@
|
||||
<br />
|
||||
<div data-role="controlgroup" data-type="horizontal" data-mini="true" class="seriesTimerTabs">
|
||||
<input type="radio" name="radioSeriesTimerTab" class="radioSeriesTimerTab" id="radioSettings" value="settings">
|
||||
<label for="radioSettings">Settings</label>
|
||||
<label for="radioSettings">${TabSettings}</label>
|
||||
<input type="radio" name="radioSeriesTimerTab" class="radioSeriesTimerTab" id="radioRecordings" value="recordings">
|
||||
<label for="radioRecordings">Recordings</label>
|
||||
<label for="radioRecordings">${TabRecordings}</label>
|
||||
<input type="radio" name="radioSeriesTimerTab" class="radioSeriesTimerTab" id="radioScheduled" value="schedule">
|
||||
<label for="radioScheduled">Schedule</label>
|
||||
<label for="radioScheduled">${TabScheduled}</label>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Live TV</title>
|
||||
<title>${TitleLiveTV}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="liveTvSettingsPage" data-role="page" class="page type-interior liveTvSettingsPage">
|
||||
@ -18,16 +18,16 @@
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="selectActiveService">Active service: </label>
|
||||
<label for="selectActiveService">${LabelActiveService}</label>
|
||||
<select id="selectActiveService" data-mini="true">
|
||||
</select>
|
||||
<div class="fieldDescription">Multiple tv plugins can be installed but only one can be active at a time.</div>
|
||||
<div class="fieldDescription">${LabelActiveServiceHelp}</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label for="selectGuideDays">Number of days of guide data to download: </label>
|
||||
<label for="selectGuideDays">${LabelNumberOfGuideDays}</label>
|
||||
<select id="selectGuideDays" data-mini="true">
|
||||
<option value="">Auto</option>
|
||||
<option value="">${OptionAutomatic}</option>
|
||||
<option value="1">1</option>
|
||||
<option value="2">2</option>
|
||||
<option value="3">3</option>
|
||||
@ -36,17 +36,17 @@
|
||||
<option value="6">6</option>
|
||||
<option value="7">7</option>
|
||||
</select>
|
||||
<div class="fieldDescription">Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.</div>
|
||||
<div class="fieldDescription">${LabelNumberOfGuideDaysHelp}</div>
|
||||
</li>
|
||||
</ul>
|
||||
<br />
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Save
|
||||
${ButtonSave}
|
||||
</button>
|
||||
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
@ -54,9 +54,9 @@
|
||||
</form>
|
||||
<div class="noLiveTvServices" style="display: none;">
|
||||
<div class="readOnlyContent" style="margin-top: 2em;">
|
||||
<p>A Live TV service provider plugin is required in order to continue.</p>
|
||||
<p>${LiveTvPluginRequired}</p>
|
||||
|
||||
<p>Please <a href="plugincatalog.html">install</a> one of our available plugins, such as ServerWmc.</p>
|
||||
<p><a href="plugincatalog.html">${LiveTvPluginRequiredHelp}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Live TV</title>
|
||||
<title>${TitleLiveTV}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="liveTvStatusPage" data-role="page" class="page type-interior liveTvSettingsPage">
|
||||
@ -32,7 +32,7 @@
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h2>Tuners</h2>
|
||||
<h2>${HeaderTvTuners}</h2>
|
||||
|
||||
<table data-role="table" data-mode="reflow" class="tblTuners stripedTable ui-responsive table-stroke">
|
||||
<thead>
|
||||
@ -52,9 +52,9 @@
|
||||
|
||||
<div class="noLiveTvServices" style="display: none;">
|
||||
|
||||
<p>A Live TV service provider plugin is required in order to continue.</p>
|
||||
<p>${LiveTvPluginRequired}</p>
|
||||
|
||||
<p><a href="plugincatalog.html">Please install one of our available plugins, such as ServerWmc.</a></p>
|
||||
<p><a href="plugincatalog.html">${LiveTvPluginRequiredHelp}</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -19,8 +19,7 @@
|
||||
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
|
||||
</div>
|
||||
|
||||
<p>Customize options per media type</p>
|
||||
|
||||
<p>${HeaderCustomizeOptionsPerMediaType}</p>
|
||||
|
||||
<div class="tabs">
|
||||
</div>
|
||||
@ -39,79 +38,79 @@
|
||||
</div>
|
||||
|
||||
<div data-role="collapsible">
|
||||
<h2>Image Settings</h2>
|
||||
<h2>${HeaderImageSettings}</h2>
|
||||
<div>
|
||||
<br />
|
||||
<div class="backdropFields" style="margin-bottom: 2em; display: none;">
|
||||
<div>
|
||||
<label for="txtMaxBackdrops">Maximum number of backdrops per item: </label>
|
||||
<label for="txtMaxBackdrops">${LabelMaxBackdropsPerItem}</label>
|
||||
<input type="number" id="txtMaxBackdrops" name="txtMaxBackdrops" pattern="[0-9]*" required="required" min="0" data-mini="true" />
|
||||
</div>
|
||||
<br />
|
||||
<div>
|
||||
<label for="txtMinBackdropDownloadWidth">Minimum backdrop download width: </label>
|
||||
<label for="txtMinBackdropDownloadWidth">${LabelMinBackdropDownloadWidth}</label>
|
||||
<input type="number" id="txtMinBackdropDownloadWidth" name="txtMinBackdropDownloadWidth" pattern="[0-9]*" required="required" min="0" data-mini="true" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="screenshotFields" style="margin-bottom: 2em; display: none;">
|
||||
<div>
|
||||
<label for="txtMaxScreenshots">Maximum number of screenshots per item: </label>
|
||||
<label for="txtMaxScreenshots">${LabelMaxScreenshotsPerItem}</label>
|
||||
<input type="number" id="txtMaxScreenshots" name="txtMaxScreenshots" pattern="[0-9]*" required="required" min="0" data-mini="true" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="txtMinScreenshotDownloadWidth">Minimum screenshot download width: </label>
|
||||
<label for="txtMinScreenshotDownloadWidth">${LabelMinScreenshotDownloadWidth}</label>
|
||||
<input type="number" id="txtMinScreenshotDownloadWidth" name="txtMinScreenshotDownloadWidth" pattern="[0-9]*" required="required" min="0" data-mini="true" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="imageSelections" data-role="controlgroup" style="border-bottom: 1px solid #ddd;">
|
||||
<legend>Fetch Images:</legend>
|
||||
<legend>${HeaderFetchImages}</legend>
|
||||
<div class="imageType" data-imagetype="Primary" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadPrimary" name="chkDownloadPrimary" />
|
||||
<label for="chkDownloadPrimary">Primary</label>
|
||||
<label for="chkDownloadPrimary">${OptionDownloadPrimaryImage}</label>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="imageType" data-imagetype="Art" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadArt" name="chkDownloadArt" />
|
||||
<label for="chkDownloadArt">Art</label>
|
||||
<label for="chkDownloadArt">${OptionDownloadArtImage}</label>
|
||||
</div>
|
||||
|
||||
<div class="imageType" data-imagetype="BoxRear" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkBack" name="chkBack" />
|
||||
<label for="chkBack">Back</label>
|
||||
<label for="chkBack">${OptionDownloadBackImage}</label>
|
||||
</div>
|
||||
|
||||
<div class="imageType" data-imagetype="Banner" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadBanner" name="chkDownloadBanner" />
|
||||
<label for="chkDownloadBanner">Banner</label>
|
||||
<label for="chkDownloadBanner">${OptionDownloadBannerImage}</label>
|
||||
</div>
|
||||
|
||||
<div class="imageType" data-imagetype="Box" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadBox" name="chkDownloadBox" />
|
||||
<label for="chkDownloadBox">Box</label>
|
||||
<label for="chkDownloadBox">${OptionDownloadBoxImage}</label>
|
||||
</div>
|
||||
|
||||
<div class="imageType" data-imagetype="Disc" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadDisc" name="chkDownloadDisc" />
|
||||
<label for="chkDownloadDisc">Disc</label>
|
||||
<label for="chkDownloadDisc">${OptionDownloadDiscImage}</label>
|
||||
</div>
|
||||
|
||||
<div class="imageType" data-imagetype="Logo" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadLogo" name="chkDownloadLogo" />
|
||||
<label for="chkDownloadLogo">Logo</label>
|
||||
<label for="chkDownloadLogo">${OptionDownloadLogoImage}</label>
|
||||
</div>
|
||||
|
||||
<div class="imageType" data-imagetype="Menu" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadMenu" name="chkDownloadMenu" />
|
||||
<label for="chkDownloadMenu">Menu</label>
|
||||
<label for="chkDownloadMenu">${OptionDownloadMenuImage}</label>
|
||||
</div>
|
||||
|
||||
<div class="imageType" data-imagetype="Thumb" style="display: none;">
|
||||
<input type="checkbox" data-mini="true" id="chkDownloadThumb" name="chkDownloadThumb" />
|
||||
<label for="chkDownloadThumb">Thumb</label>
|
||||
<label for="chkDownloadThumb">${OptionDownloadThumbImage}</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<body>
|
||||
<div id="playlistPage" data-role="page" class="page libraryPage" data-theme="b">
|
||||
|
||||
<div class="parentName">${HeaderNowPlaying}</div>
|
||||
<div class="parentName" style="text-align: center;">${HeaderNowPlaying}</div>
|
||||
<div data-role="content">
|
||||
|
||||
<div id="playlist" class="detailTableContainer">
|
||||
|
@ -11,7 +11,7 @@
|
||||
<p id="pTaskDescription"></p>
|
||||
<p>
|
||||
<button type="button" data-icon="plus" onclick="ScheduledTaskPage.showAddTriggerPopup();">
|
||||
Add Task Trigger
|
||||
${ButtonAddScheduledTaskTrigger}
|
||||
</button>
|
||||
</p>
|
||||
<ul id="ulTaskTriggers" data-role="listview" data-inset="true" data-auto-enhanced="false" data-split-icon="minus"></ul>
|
||||
@ -21,45 +21,45 @@
|
||||
<div data-role="popup" id="popupAddTrigger" class="popup" style="min-width: 300px;">
|
||||
<form class="addTriggerForm">
|
||||
<div class="ui-bar-b" style="text-align: center; padding: 0 20px;">
|
||||
<h3>Add Task Trigger</h3>
|
||||
<h3>${HeaderAddScheduledTaskTrigger}</h3>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
|
||||
<ul data-role="listview" class="ulForm">
|
||||
<li>
|
||||
<label for="selectTriggerType">Trigger Type:</label>
|
||||
<label for="selectTriggerType">${LabelTriggerType}</label>
|
||||
<select id="selectTriggerType" name="selectTriggerType" onchange="ScheduledTaskPage.refreshTriggerFields(this.value);">
|
||||
<option value="DailyTrigger">Daily</option>
|
||||
<option value="WeeklyTrigger">Weekly</option>
|
||||
<option value="IntervalTrigger">On an interval</option>
|
||||
<option value="StartupTrigger">On application startup</option>
|
||||
<option value="SystemEventTrigger">After a system event</option>
|
||||
<option value="DailyTrigger">${OptionDaily}</option>
|
||||
<option value="WeeklyTrigger">${OptionWeekly}</option>
|
||||
<option value="IntervalTrigger">${OptionOnInterval}</option>
|
||||
<option value="StartupTrigger">${OptionOnAppStartup}</option>
|
||||
<option value="SystemEventTrigger">${OptionAfterSystemEvent}</option>
|
||||
</select>
|
||||
</li>
|
||||
<li id="fldDayOfWeek">
|
||||
<label for="selectDayOfWeek">Day:</label>
|
||||
<label for="selectDayOfWeek">${LabelDay}</label>
|
||||
<select id="selectDayOfWeek" name="selectDayOfWeek">
|
||||
<option value="Sunday">Sunday</option>
|
||||
<option value="Monday">Monday</option>
|
||||
<option value="Tuesday">Tuesday</option>
|
||||
<option value="Wednesday">Wednesday</option>
|
||||
<option value="Thursday">Thursday</option>
|
||||
<option value="Friday">Friday</option>
|
||||
<option value="Saturday">Saturday</option>
|
||||
<option value="Sunday">${OptionSunday}</option>
|
||||
<option value="Monday">${OptionMonday}</option>
|
||||
<option value="Tuesday">${OptionTuesday}</option>
|
||||
<option value="Wednesday">${OptionWednesday}</option>
|
||||
<option value="Thursday">${OptionThursday}</option>
|
||||
<option value="Friday">${OptionFriday}</option>
|
||||
<option value="Saturday">${OptionSaturday}</option>
|
||||
</select>
|
||||
</li>
|
||||
<li id="fldTimeOfDay">
|
||||
<label for="txtTimeOfDay">Time:</label>
|
||||
<label for="txtTimeOfDay">${LabelTime}</label>
|
||||
<input type="time" id="txtTimeOfDay" name="txtTimeOfDay" required="required" />
|
||||
</li>
|
||||
<li id="fldSelectSystemEvent">
|
||||
<label for="selectSystemEvent">Event:</label>
|
||||
<label for="selectSystemEvent">${LabelEvent}</label>
|
||||
<select id="selectSystemEvent" name="selectSystemEvent">
|
||||
<option value="WakeFromSleep">Wake from sleep</option>
|
||||
<option value="WakeFromSleep">${OptionWakeFromSleep}</option>
|
||||
</select>
|
||||
</li>
|
||||
<li id="fldSelectInterval">
|
||||
<label for="selectInterval">Every:</label>
|
||||
<label for="selectInterval">${LabelEveryXMinutes}</label>
|
||||
<select id="selectInterval" name="selectInterval">
|
||||
<option value="9000000000">15 minutes</option>
|
||||
<option value="18000000000">30 minutes</option>
|
||||
@ -75,10 +75,10 @@
|
||||
</li>
|
||||
<li>
|
||||
<button type="submit" data-theme="b" data-icon="check">
|
||||
Add
|
||||
${ButtonAdd}
|
||||
</button>
|
||||
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');">
|
||||
Cancel
|
||||
${ButtonCancel}
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -11,7 +11,7 @@
|
||||
Dashboard.showLoadingMsg();
|
||||
DashboardPage.pollForInfo(page);
|
||||
DashboardPage.startInterval();
|
||||
|
||||
|
||||
$(ApiClient).on("websocketmessage", DashboardPage.onWebSocketMessage)
|
||||
.on("websocketopen", DashboardPage.onWebSocketConnectionChange)
|
||||
.on("websocketerror", DashboardPage.onWebSocketConnectionChange)
|
||||
@ -173,7 +173,7 @@
|
||||
pollForInfo: function (page) {
|
||||
|
||||
ApiClient.getSessions().done(function (sessions) {
|
||||
|
||||
|
||||
DashboardPage.renderInfo(page, sessions);
|
||||
});
|
||||
},
|
||||
@ -360,9 +360,13 @@
|
||||
return "<img src='css/images/clients/mbkinect.png' alt='MB Kinect' />";
|
||||
}
|
||||
if (clientLowered == "xbmc") {
|
||||
|
||||
return "<img src='css/images/clients/xbmc.png' alt='Xbmc' />";
|
||||
}
|
||||
if (clientLowered == "chromecast") {
|
||||
|
||||
return "<img src='css/images/chromecast/ic_media_route_on_holo_light.png' alt='Chromecast' />";
|
||||
}
|
||||
|
||||
|
||||
return connection.Client;
|
||||
},
|
||||
|
@ -75,20 +75,6 @@
|
||||
renderResponseProfiles(page, profile.ResponseProfiles);
|
||||
}
|
||||
|
||||
function editDirectPlayProfile(page, directPlayProfile) {
|
||||
|
||||
isSubProfileNew = directPlayProfile == null;
|
||||
directPlayProfile = directPlayProfile || {};
|
||||
currentSubProfile = directPlayProfile;
|
||||
|
||||
var popup = $('#popupEditDirectPlayProfile', page).popup('open');
|
||||
|
||||
$('#selectDirectPlayProfileType', popup).val(directPlayProfile.Type || 'Video').selectmenu('refresh').trigger('change');
|
||||
$('#txtDirectPlayContainer', popup).val(directPlayProfile.Container || '');
|
||||
$('#txtDirectPlayAudioCodec', popup).val(directPlayProfile.AudioCodec || '');
|
||||
$('#txtDirectPlayVideoCodec', popup).val(directPlayProfile.VideoCodec || '');
|
||||
}
|
||||
|
||||
function saveDirectPlayProfile(page) {
|
||||
|
||||
currentSubProfile.Type = $('#selectDirectPlayProfileType', page).val();
|
||||
@ -171,6 +157,22 @@
|
||||
|
||||
}
|
||||
|
||||
function editDirectPlayProfile(page, directPlayProfile) {
|
||||
|
||||
isSubProfileNew = directPlayProfile == null;
|
||||
directPlayProfile = directPlayProfile || {};
|
||||
currentSubProfile = directPlayProfile;
|
||||
|
||||
var popup = $('#popupEditDirectPlayProfile', page);
|
||||
|
||||
$('#selectDirectPlayProfileType', popup).val(directPlayProfile.Type || 'Video').selectmenu('refresh').trigger('change');
|
||||
$('#txtDirectPlayContainer', popup).val(directPlayProfile.Container || '');
|
||||
$('#txtDirectPlayAudioCodec', popup).val(directPlayProfile.AudioCodec || '');
|
||||
$('#txtDirectPlayVideoCodec', popup).val(directPlayProfile.VideoCodec || '');
|
||||
|
||||
popup.popup('open');
|
||||
}
|
||||
|
||||
function renderTranscodingProfiles(page, profiles) {
|
||||
|
||||
var html = '';
|
||||
@ -233,7 +235,7 @@
|
||||
transcodingProfile = transcodingProfile || {};
|
||||
currentSubProfile = transcodingProfile;
|
||||
|
||||
var popup = $('#transcodingProfilePopup', page).popup('open');
|
||||
var popup = $('#transcodingProfilePopup', page);
|
||||
|
||||
$('#selectTranscodingProfileType', popup).val(transcodingProfile.Type || 'Video').selectmenu('refresh').trigger('change');
|
||||
$('#txtTranscodingContainer', popup).val(transcodingProfile.Container || '');
|
||||
@ -246,6 +248,8 @@
|
||||
$('#chkReportByteRangeRequests', popup).checked(transcodingProfile.TranscodeSeekInfo == 'Bytes').checkboxradio('refresh');
|
||||
|
||||
$('.radioTabButton:first', popup).checked(true).checkboxradio('refresh').trigger('change');
|
||||
|
||||
popup.popup('open');
|
||||
}
|
||||
|
||||
function deleteTranscodingProfile(page, index) {
|
||||
@ -351,10 +355,14 @@
|
||||
containerProfile = containerProfile || {};
|
||||
currentSubProfile = containerProfile;
|
||||
|
||||
var popup = $('#containerProfilePopup', page).popup('open');
|
||||
var popup = $('#containerProfilePopup', page);
|
||||
|
||||
$('#selectContainerProfileType', popup).val(containerProfile.Type || 'Video').selectmenu('refresh').trigger('change');
|
||||
$('#txtContainerProfileContainer', popup).val(containerProfile.Container || '');
|
||||
|
||||
$('.radioTabButton:first', popup).checked(true).checkboxradio('refresh').trigger('change');
|
||||
|
||||
popup.popup('open');
|
||||
}
|
||||
|
||||
function saveContainerProfile(page) {
|
||||
@ -447,10 +455,14 @@
|
||||
codecProfile = codecProfile || {};
|
||||
currentSubProfile = codecProfile;
|
||||
|
||||
var popup = $('#codecProfilePopup', page).popup('open');
|
||||
var popup = $('#codecProfilePopup', page);
|
||||
|
||||
$('#selectCodecProfileType', popup).val(codecProfile.Type || 'Video').selectmenu('refresh').trigger('change');
|
||||
$('#txtCodecProfileCodec', popup).val(codecProfile.Codec || '');
|
||||
|
||||
$('.radioTabButton:first', popup).checked(true).checkboxradio('refresh').trigger('change');
|
||||
|
||||
popup.popup('open');
|
||||
}
|
||||
|
||||
function saveCodecProfile(page) {
|
||||
@ -525,6 +537,13 @@
|
||||
var index = this.getAttribute('data-profileindex');
|
||||
deleteResponseProfile(page, index);
|
||||
});
|
||||
|
||||
$('.lnkEditSubProfile', elem).on('click', function () {
|
||||
|
||||
var index = parseInt(this.getAttribute('data-profileindex'));
|
||||
|
||||
editResponseProfile(page, currentProfile.ResponseProfiles[index]);
|
||||
});
|
||||
}
|
||||
|
||||
function deleteResponseProfile(page, index) {
|
||||
@ -532,7 +551,43 @@
|
||||
currentProfile.ResponseProfiles.splice(index, 1);
|
||||
|
||||
renderResponseProfiles(page, currentProfile.ResponseProfiles);
|
||||
}
|
||||
|
||||
function editResponseProfile(page, responseProfile) {
|
||||
|
||||
isSubProfileNew = responseProfile == null;
|
||||
responseProfile = responseProfile || {};
|
||||
currentSubProfile = responseProfile;
|
||||
|
||||
var popup = $('#responseProfilePopup', page);
|
||||
|
||||
$('#selectResponseProfileType', popup).val(responseProfile.Type || 'Video').selectmenu('refresh').trigger('change');
|
||||
$('#txtResponseProfileContainer', popup).val(responseProfile.Container || '');
|
||||
$('#txtResponseProfileAudioCodec', popup).val(responseProfile.AudioCodec || '');
|
||||
$('#txtResponseProfileVideoCodec', popup).val(responseProfile.VideoCodec || '');
|
||||
|
||||
$('.radioTabButton:first', popup).checked(true).checkboxradio('refresh').trigger('change');
|
||||
|
||||
popup.popup('open');
|
||||
}
|
||||
|
||||
function saveResponseProfile(page) {
|
||||
|
||||
currentSubProfile.Type = $('#selectResponseProfileType', page).val();
|
||||
currentSubProfile.Container = $('#txtResponseProfileContainer', page).val();
|
||||
currentSubProfile.AudioCodec = $('#txtResponseProfileAudioCodec', page).val();
|
||||
currentSubProfile.VideoCodec = $('#txtResponseProfileVideoCodec', page).val();
|
||||
|
||||
if (isSubProfileNew) {
|
||||
|
||||
currentProfile.ResponseProfiles.push(currentSubProfile);
|
||||
}
|
||||
|
||||
renderSubProfiles(page, currentProfile);
|
||||
|
||||
currentSubProfile = null;
|
||||
|
||||
$('#responseProfilePopup', page).popup('close');
|
||||
}
|
||||
|
||||
function saveProfile(page, profile) {
|
||||
@ -648,6 +703,22 @@
|
||||
|
||||
});
|
||||
|
||||
$('#selectResponseProfileType', page).on('change', function () {
|
||||
|
||||
if (this.value == 'Video') {
|
||||
$('#fldResponseProfileVideoCodec', page).show();
|
||||
} else {
|
||||
$('#fldResponseProfileVideoCodec', page).hide();
|
||||
}
|
||||
|
||||
if (this.value == 'Photo') {
|
||||
$('#fldResponseProfileAudioCodec', page).hide();
|
||||
} else {
|
||||
$('#fldResponseProfileAudioCodec', page).show();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$('.btnAddDirectPlayProfile', page).on('click', function () {
|
||||
|
||||
editDirectPlayProfile(page);
|
||||
@ -672,6 +743,12 @@
|
||||
|
||||
});
|
||||
|
||||
$('.btnAddResponseProfile', page).on('click', function () {
|
||||
|
||||
editResponseProfile(page);
|
||||
|
||||
});
|
||||
|
||||
}).on('pageshow', "#dlnaProfilePage", function () {
|
||||
|
||||
var page = this;
|
||||
@ -737,6 +814,15 @@
|
||||
|
||||
saveCodecProfile(page);
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
onResponseProfileFormSubmit: function() {
|
||||
var form = this;
|
||||
var page = $(form).parents('.page');
|
||||
|
||||
saveResponseProfile(page);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
@ -220,11 +220,31 @@ function humane_elapsed(firstDateStr, secondDateStr) {
|
||||
|
||||
}
|
||||
|
||||
function getWindowUrl(win) {
|
||||
return (win || window).location.href;
|
||||
}
|
||||
|
||||
function getWindowLocationSearch(win) {
|
||||
|
||||
var search = (win || window).location.search;
|
||||
|
||||
if (!search) {
|
||||
|
||||
var index = window.location.href.indexOf('?');
|
||||
if (index != -1) {
|
||||
search = window.location.href.substring(index);
|
||||
}
|
||||
}
|
||||
|
||||
return search || '';
|
||||
}
|
||||
|
||||
function getParameterByName(name, url) {
|
||||
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
|
||||
var regexS = "[\\?&]" + name + "=([^&#]*)";
|
||||
var regex = new RegExp(regexS, "i");
|
||||
var results = regex.exec(url || window.location.search);
|
||||
|
||||
var results = regex.exec(url || getWindowLocationSearch());
|
||||
if (results == null)
|
||||
return "";
|
||||
else
|
||||
|
@ -87,7 +87,7 @@
|
||||
$('#playButtonContainer', page).hide();
|
||||
}
|
||||
|
||||
var editImagesHref = user.Configuration.IsAdministrator ? 'edititemimages.html' + window.location.search : null;
|
||||
var editImagesHref = user.Configuration.IsAdministrator ? 'edititemimages.html' + getWindowLocationSearch() : null;
|
||||
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item, editImagesHref));
|
||||
|
||||
if (user.Configuration.IsAdministrator && item.LocationType !== "Offline") {
|
||||
@ -524,7 +524,7 @@
|
||||
|
||||
reload(page);
|
||||
|
||||
$('#btnEdit', page).attr('href', 'edititemmetadata.html' + window.location.search);
|
||||
$('#btnEdit', page).attr('href', 'edititemmetadata.html' + getWindowLocationSearch());
|
||||
|
||||
}).on('pagehide', "#itemByNameDetailPage", function () {
|
||||
|
||||
|
@ -46,42 +46,41 @@
|
||||
LibraryBrowser.renderDetailPageBackdrop(page, item);
|
||||
|
||||
if (user.Configuration.IsAdministrator) {
|
||||
$('#editButtonContainer', page).show();
|
||||
$('.btnEdit', page).removeClass('hide');
|
||||
|
||||
} else {
|
||||
$('#editButtonContainer', page).hide();
|
||||
$('.btnEdit', page).addClass('hide');
|
||||
}
|
||||
|
||||
var externalPlayUrl = getExternalPlayUrl(item);
|
||||
$('#btnPlayExternal', page).attr('href', externalPlayUrl || '#');
|
||||
$('.btnPlayExternal', page).attr('href', externalPlayUrl || '#');
|
||||
|
||||
if (externalPlayUrl) {
|
||||
$('#playExternalButtonContainer', page).show();
|
||||
$('#playButtonContainer', page).hide();
|
||||
$('.btnPlayExternal', page).removeClass('hide');
|
||||
$('.btnPlay', page).addClass('hide');
|
||||
}
|
||||
else if (MediaController.canPlay(item)) {
|
||||
$('#playButtonContainer', page).show();
|
||||
$('#playExternalButtonContainer', page).hide();
|
||||
$('.btnPlay', page).removeClass('hide');
|
||||
$('.btnPlayExternal', page).addClass('hide');
|
||||
}
|
||||
else {
|
||||
$('#playButtonContainer', page).hide();
|
||||
$('#playExternalButtonContainer', page).hide();
|
||||
$('.btnPlay', page).addClass('hide');
|
||||
$('.btnPlayExternal', page).addClass('hide');
|
||||
}
|
||||
|
||||
if (item.LocalTrailerCount && item.PlayAccess == 'Full') {
|
||||
$('#trailerButtonContainer', page).show();
|
||||
$('.btnPlayTrailer', page).removeClass('hide');
|
||||
} else {
|
||||
$('#trailerButtonContainer', page).hide();
|
||||
$('.btnPlayTrailer', page).addClass('hide');
|
||||
}
|
||||
|
||||
if (!item.LocalTrailerCount && item.RemoteTrailers.length && item.PlayAccess == 'Full') {
|
||||
$('#externalTrailerButtonContainer', page).show();
|
||||
|
||||
$('#btnPlayExternalTrailer', page).attr('href', item.RemoteTrailers[0].Url);
|
||||
|
||||
$('.btnPlayExternalTrailer', page).removeClass('hide').attr('href', item.RemoteTrailers[0].Url);
|
||||
|
||||
} else {
|
||||
$('#externalTrailerButtonContainer', page).hide();
|
||||
$('#btnPlayExternalTrailer', page).attr('href', '#');
|
||||
|
||||
$('.btnPlayExternalTrailer', page).addClass('hide').attr('href', '#');
|
||||
}
|
||||
|
||||
if (user.Configuration.IsAdministrator && item.MediaSources && item.MediaSources.length > 1) {
|
||||
@ -93,10 +92,10 @@
|
||||
|
||||
if (item.LocationType == "Offline") {
|
||||
|
||||
$('#offlineIndicator', page).show();
|
||||
$('.offlineIndicator', page).show();
|
||||
}
|
||||
else {
|
||||
$('#offlineIndicator', page).hide();
|
||||
$('.offlineIndicator', page).hide();
|
||||
}
|
||||
|
||||
var isMissingEpisode = false;
|
||||
@ -113,10 +112,10 @@
|
||||
|
||||
if (isMissingEpisode) {
|
||||
|
||||
$('#missingIndicator', page).show();
|
||||
$('.missingIndicator', page).show();
|
||||
}
|
||||
else {
|
||||
$('#missingIndicator', page).hide();
|
||||
$('.missingIndicator', page).hide();
|
||||
}
|
||||
|
||||
setPeopleHeader(page, item);
|
||||
@ -128,9 +127,7 @@
|
||||
Dashboard.hideLoadingMsg();
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('#btnEdit', page).attr('href', "edititemmetadata.html?id=" + id);
|
||||
$('.btnEdit', page).attr('href', "edititemmetadata.html?id=" + id);
|
||||
}
|
||||
|
||||
function setPeopleHeader(page, item) {
|
||||
@ -1332,7 +1329,7 @@
|
||||
|
||||
var page = this;
|
||||
|
||||
$('#btnPlay', page).on('click', function () {
|
||||
$('.btnPlay', page).on('click', function () {
|
||||
var userdata = currentItem.UserData || {};
|
||||
|
||||
var mediaType = currentItem.MediaType;
|
||||
@ -1344,11 +1341,11 @@
|
||||
LibraryBrowser.showPlayMenu(this, currentItem.Id, currentItem.Type, currentItem.IsFolder, mediaType, userdata.PlaybackPositionTicks);
|
||||
});
|
||||
|
||||
$('#btnPlayTrailer', page).on('click', function () {
|
||||
$('.btnPlayTrailer', page).on('click', function () {
|
||||
playTrailer(page);
|
||||
});
|
||||
|
||||
$('#btnPlayExternal', page).on('click', function () {
|
||||
$('.btnPlayExternal', page).on('click', function () {
|
||||
|
||||
ApiClient.markPlayed(Dashboard.getCurrentUserId(), currentItem.Id, new Date());
|
||||
});
|
||||
|
@ -338,6 +338,10 @@
|
||||
|
||||
getHref: function (item, itemByNameContext) {
|
||||
|
||||
if (!item) {
|
||||
throw new Error('item cannot be null');
|
||||
}
|
||||
|
||||
if (item.url) {
|
||||
return item.url;
|
||||
}
|
||||
|
@ -649,7 +649,7 @@
|
||||
}
|
||||
|
||||
// Just use the first audio stream
|
||||
return audioStreams[0];
|
||||
return audioStreams[0].Index;
|
||||
}
|
||||
|
||||
function getVideoQualityOptions(mediaStreams) {
|
||||
|
@ -344,7 +344,7 @@ var Dashboard = {
|
||||
|
||||
navigate: function (url, preserveQueryString) {
|
||||
|
||||
var queryString = window.location.search;
|
||||
var queryString = getWindowLocationSearch();
|
||||
if (preserveQueryString && queryString) {
|
||||
url += queryString;
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
</div>
|
||||
|
||||
<form id="supporterKeyForm">
|
||||
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtSupporterKey">MB3 Supporter Key (paste from email)</label>
|
||||
<input type="password" id="txtSupporterKey" name="txtSupporterKey" data-inline="true" />
|
||||
@ -33,8 +34,9 @@
|
||||
|
||||
</div>
|
||||
<div style="margin: 2em 0;">
|
||||
|
||||
<label for="txtLegacyKey">MB2 Supporter Key</label>
|
||||
<input type="password" id="txtLegacyKey" name="txtLegacyKey" data-inline="true" />
|
||||
<input type="password" id="txtLegacyKey" name="txtLegacyKey" />
|
||||
<div class="fieldDescription">
|
||||
Some premium plugins may give credit for registrations with previous versions in MB2.
|
||||
</div>
|
||||
@ -42,7 +44,6 @@
|
||||
</div>
|
||||
<p>
|
||||
<button type="submit" id="mbLegacyKeyBtn" data-theme="b" data-icon="check">Save</button>
|
||||
|
||||
</p>
|
||||
</form>
|
||||
<br />
|
||||
@ -52,7 +53,7 @@
|
||||
<form id="lostKeyForm">
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtEmail">Email Address</label>
|
||||
<input type="email" required id="txtEmail" name="txtEmail" data-inline="true" />
|
||||
<input type="email" required id="txtEmail" name="txtEmail" />
|
||||
<div class="fieldDescription">The email address that was used to purchase the key.</div>
|
||||
</div>
|
||||
<p>
|
||||
@ -73,19 +74,19 @@
|
||||
</p>
|
||||
<div style="margin: 1em 0;">
|
||||
<label for="txtEmail">Current Email Address</label>
|
||||
<input type="email" required id="txtNewEmail" name="txtNewEmail" data-inline="true" />
|
||||
<input type="email" required id="txtNewEmail" name="txtNewEmail" />
|
||||
<div class="fieldDescription">
|
||||
The current email address to which your new key was sent.
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<label for="txtNewKey">New Supporter Key</label>
|
||||
<input type="password" required="required" id="txtNewKey" name="txtNewKey" data-inline="true" />
|
||||
<input type="password" required="required" id="txtNewKey" name="txtNewKey" />
|
||||
</p>
|
||||
<p>
|
||||
|
||||
<label for="txtOldKey">Old Supporter Key</label>
|
||||
<input type="password" required="required" id="txtOldKey" name="txtOldKey" data-inline="true" />
|
||||
<input type="password" required="required" id="txtOldKey" name="txtOldKey" />
|
||||
</p>
|
||||
<p>
|
||||
<button type="submit" id="mbLinkKeysBtn" data-icon="check" data-theme="b">Link Keys</button>
|
||||
|
Loading…
Reference in New Issue
Block a user