1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
This commit is contained in:
tikuf 2014-04-07 12:43:29 +10:00
commit c0bc01bff5
56 changed files with 1043 additions and 743 deletions

View file

@ -78,6 +78,10 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
return name;
}());
self.deviceName = function () {
return deviceName;
};
self.deviceId = function () {
return deviceId;
};

View file

@ -20,10 +20,10 @@
<img class="imgLogoIcon" src="css/images/mblogoicon.png" /><img class="imgLogoText" src="css/images/mblogotextblack.png" />
<br />
<br />
Version <span id="appVersionNumber"></span>
<span id="appVersionNumber">${VersionNumber}</span>
</p>
<hr />
<p>Please support other free products we utilize:</p>
<p>${PleaseSupportOtherProduces}</p>
<p>
<a href="http://fanart.tv" target="_blank">FanArt.tv</a>
@ -38,14 +38,14 @@
<a href="http://www.themoviedb.org" target="_blank">TheMovieDb.org</a>
</p>
<p>
<a href="http://www.omdbapi.com" target="_blank">The OMDB</a>
<a href="http://www.omdbapi.com" target="_blank">The Open Movie Database</a>
</p>
<p>
<a href="http://thetvdb.com" target="_blank">TheTVDB.com</a>
</p>
<p>
Utilizing <a href="http://www.pismotechnic.com/pfm/" target="_blank">Pismo File Mount</a> through a donated license.
<a href="http://www.pismotechnic.com/pfm/" target="_blank">${PismoMessage}</a>
</p>
</div>
</div>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Advanced</title>
<title>${TitleAdvanced}</title>
</head>
<body>
<div id="advancedConfigurationPage" data-role="page" class="page type-interior advancedConfigurationPage">
@ -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">${TabGeneral}</a>
<a href="advancedpaths.html" data-role="button">Paths</a>
<a href="advancedserversettings.html" data-role="button">Server</a>
<a href="encodingsettings.html" data-role="button">Transcoding</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>
<form id="advancedConfigurationForm">
<ul data-role="listview" class="ulForm">
<li id="fldRunAtStartup" style="display: none;">
<input type="checkbox" id="chkRunAtStartup" name="chkRunAtStartup" data-mini="true" />
<label for="chkRunAtStartup">Run server at startup</label>
<label for="chkRunAtStartup">${LabelRunServerAtStartup}</label>
<div id="windowsStartupDescription" class="fieldDescription warningFieldDescription" style="display: none;">
This will start the tray icon on windows startup. To start the windows service, uncheck this and run the service from the windows control panel. Please note that you cannot run both at the same time, so you will need to exit the tray icon before starting the service.
${LabelRunServerAtStartupHelp}
</div>
</li>
<li>
<input type="checkbox" id="chkDebugLog" name="chkDebugLog" data-mini="true" />
<label for="chkDebugLog">Enable debug logging </label>
<label for="chkDebugLog">${LabelEnableDebugLogging}</label>
</li>
</ul>
<h2>Updates</h2>
<ul data-role="listview" class="ulForm">
<li>
<label for="selectAutomaticUpdateLevel">Automatic update level</label>
<label for="selectAutomaticUpdateLevel">${LabelAutomaticUpdateLevel}</label>
<select name="selectAutomaticUpdateLevel" id="selectAutomaticUpdateLevel" data-mini="true">
<option value="Release">Official Release</option>
<option value="Beta">Beta</option>
<option value="Dev">Dev (Unstable)</option>
<option value="Release">${OptionRelease}</option>
<option value="Beta">${OptionBeta}</option>
<option value="Dev">${OptionDev}</option>
</select>
<div id="devBuildWarning" class="fieldDescription warningFieldDescription" style="display: none;">
${DevBuildWarning}
@ -45,9 +45,9 @@
</li>
<li id="fldEnableAutomaticRestart" style="display: none;">
<input type="checkbox" id="chkEnableAutomaticRestart" name="chkEnableAutomaticRestart" data-mini="true" />
<label for="chkEnableAutomaticRestart">Allow the server to restart automatically to apply updates</label>
<label for="chkEnableAutomaticRestart">${LabelAllowServerAutoRestart}</label>
<div class="fieldDescription">
The server will only restart during idle periods, when no users are active.
${LabelAllowServerAutoRestartHelp}
</div>
</li>
</ul>
@ -55,10 +55,10 @@
<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>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Advanced</title>
<title>${TitleAdvanced}</title>
</head>
<body>
<div id="advancedPathsPage" data-role="page" class="page type-interior advancedConfigurationPage">
@ -11,47 +11,47 @@
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="#" data-role="button" class="ui-btn-active">Paths</a>
<a href="advancedserversettings.html" data-role="button">Server</a>
<a href="encodingsettings.html" data-role="button">Transcoding</a>
<a href="#" data-role="button" class="ui-btn-active">${TabPaths}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>
<form class="advancedPathsForm">
<p>Specify custom paths where desired. Leave fields empty to use the defaults.</p>
<p>${LabelCustomPaths}</p>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtCachePath">Cache path: </label>
<label for="txtCachePath">${LabelCachePath}</label>
<div style="display: inline-block; width: 92%;">
<input type="text" id="txtCachePath" name="txtCachePath" data-mini="true" />
</div>
<button id="btnSelectCachePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">Select Directory</button>
<div class="fieldDescription">This folder contains server cache files, such as images.</div>
<button id="btnSelectCachePath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
<div class="fieldDescription">${LabelCachePathHelp}</div>
</li>
<li>
<label for="txtItemsByNamePath">Images by name path: </label>
<label for="txtItemsByNamePath">${LabelImagesByNamePath}</label>
<div style="display: inline-block; width: 92%;">
<input type="text" id="txtItemsByNamePath" name="txtItemsByNamePath" />
</div>
<button id="btnSelectIBNPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">Select Directory</button>
<div class="fieldDescription">This folder contains actor, artist, genre and studio images.</div>
<button id="btnSelectIBNPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
<div class="fieldDescription">${LabelImagesByNamePathHelp}</div>
</li>
<li>
<label for="txtMetadataPath">Metadata path: </label>
<label for="txtMetadataPath">${LabelMetadataPath}</label>
<div style="display: inline-block; width: 92%;">
<input type="text" id="txtMetadataPath" name="txtMetadataPath" />
</div>
<button id="btnSelectMetadataPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">Select Directory</button>
<div class="fieldDescription">This location contains downloaded artwork and metadata that is not configured to be stored in media folders.</div>
<button id="btnSelectMetadataPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
<div class="fieldDescription">${LabelMetadataPathHelp}</div>
</li>
<li>
<label for="txtTranscodingTempPath">Transcoding temporary path: </label>
<label for="txtTranscodingTempPath">${LabelTranscodingTempPath}</label>
<div style="display: inline-block; width: 92%;">
<input type="text" id="txtTranscodingTempPath" name="txtTranscodingTempPath" data-mini="true" />
</div>
<button id="btnSelectTranscodingTempPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">Select Directory</button>
<button id="btnSelectTranscodingTempPath" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
<div class="fieldDescription">
This folder contains working files used by the transcoder.
${LabelTranscodingTempPathHelp}
</div>
</li>
</ul>
@ -59,10 +59,10 @@
<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>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Advanced</title>
<title>${TitleAdvanced}</title>
</head>
<body>
<div id="advancedServerSettingsPage" data-role="page" class="page type-interior advancedConfigurationPage">
@ -11,9 +11,9 @@
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="advancedpaths.html" data-role="button">Paths</a>
<a href="#" data-role="button" class="ui-btn-active">Server</a>
<a href="encodingsettings.html" data-role="button">Transcoding</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>
<form class="advancedServerSettingsForm">

View file

@ -28,7 +28,7 @@
<div style="display: inline-block; width: 92%;">
<input type="text" id="txtWatchFolder" name="txtWatchFolder" />
</div>
<button id="btnSelectWatchFolder" type="button" data-icon="search" data-iconpos="notext" data-inline="true">Select Directory</button>
<button id="btnSelectWatchFolder" type="button" data-icon="search" data-iconpos="notext" data-inline="true">${ButtonSelectDirectory}</button>
<div class="fieldDescription">
The server will poll this folder during the "Organize new media files" <a href="scheduledtasks.html">scheduled task</a>.
</div>

View file

@ -427,7 +427,7 @@ a.itemTag:hover {
background-size: cover;
background-position: center 15%;
background-repeat: no-repeat;
height: 550px;
height: 570px;
position: relative;
}
@ -482,13 +482,14 @@ a.itemTag:hover {
}
.itemDetailImage {
max-height: 220px;
max-height: 280px;
max-width: 320px;
-moz-box-shadow: 0px 0 20px #000;
-webkit-box-shadow: 0px 0 20px #000;
box-shadow: 0px 0 20px #000;
border: solid 1px #222;
margin-top: -20px;
margin-bottom: 10px;
}
.noBackdrop .itemDetailImage {
@ -645,7 +646,7 @@ a.itemTag:hover {
.detailImageProgressContainer {
position: absolute;
bottom: 3px;
bottom: 10px;
right: 0;
left: 0;
text-align: center;

View file

@ -218,6 +218,7 @@
#videoControls .currentTime {
margin-right: 0;
min-width: 120px;
}
#videoControls #video-advanced-controls {

View file

@ -10,7 +10,7 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="dlnasettings.html" data-role="button">Settings</a>
<a href="dlnasettings.html" data-role="button">${TabSettings}</a>
<a href="dlnaprofiles.html" data-role="button" class="ui-btn-active">Profiles</a>
</div>
@ -144,7 +144,7 @@
<div class="codecProfiles"></div>
</div>
<div class="tabContent tabMediaProfiles">
<p>Response profiles provide a way to customize responses sent to the device when playing certain kinds of media.</p>
<p>Response profiles provide a way to customize information sent to the device when playing certain kinds of media.</p>
<div class="mediaProfiles"></div>
</div>
<br />

View file

@ -10,7 +10,7 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="dlnasettings.html" data-role="button">Settings</a>
<a href="dlnasettings.html" data-role="button">${TabSettings}</a>
<a href="#" data-role="button" class="ui-btn-active">Profiles</a>
</div>

View file

@ -10,7 +10,7 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="#" data-role="button" class="ui-btn-active">Settings</a>
<a href="#" data-role="button" class="ui-btn-active">${TabSettings}</a>
<a href="dlnaprofiles.html" data-role="button">Profiles</a>
</div>

View file

@ -52,7 +52,7 @@
</div>
<div style="vertical-align: bottom; display: inline-block;">
<div id="fldDelete" style="display: none;">
<button id="btnDelete" type="button" data-icon="delete" data-mini="true" data-inline="true">Delete</button>
<button id="btnDelete" type="button" data-icon="delete" data-mini="true" data-inline="true">${ButtonDelete}</button>
</div>
</div>
</div>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Advanced</title>
<title>${TitleAdvanced}</title>
</head>
<body>
<div id="encodingSettingsPage" data-role="page" class="page type-interior advancedConfigurationPage">
@ -11,9 +11,9 @@
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="advancedpaths.html" data-role="button">Paths</a>
<a href="advancedserversettings.html" data-role="button">Server</a>
<a href="#" data-role="button" class="ui-btn-active">Transcoding</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabTranscoding}</a>
</div>
<form class="encodingSettingsForm">

View file

@ -137,10 +137,10 @@
<label for="chkIso">${OptionIso}</label>
<input class="chkHDFilter" type="checkbox" name="chkHD" id="chkHD" data-filter="IsHD" data-mini="true">
<label for="chkHD">HD</label>
<label for="chkHD">${OptionIsHD}</label>
<input class="chkSDFilter" type="checkbox" name="chkSD" id="chkSD" data-filter="IsHD" data-mini="true">
<label for="chkSD">SD</label>
<label for="chkSD">${OptionIsSD}</label>
</fieldset>
<fieldset data-role="controlgroup">

View file

@ -7,7 +7,7 @@
<div id="gameGenresPage" data-role="page" class="page libraryPage listPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">Games</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>

View file

@ -7,7 +7,7 @@
<div id="gamesPage" data-role="page" class="page libraryPage listPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html" class="ui-btn-active">Games</a>
<a href="games.html" class="ui-btn-active">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>

View file

@ -7,7 +7,7 @@
<div id="gamesRecommendedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<a href="gamesrecommended.html" class="ui-btn-active">${TabSuggested}</a>
<a href="games.html">Games</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>

View file

@ -7,7 +7,7 @@
<div id="gameStudiosPage" data-role="page" class="page libraryPage listPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">Games</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html" class="ui-btn-active">${TabStudios}</a>

View file

@ -7,7 +7,7 @@
<div id="gamesystemsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="games">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">Games</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html" class="ui-btn-active">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>

View file

@ -99,7 +99,7 @@
<div id="gameGenreTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">Games</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html" class="ui-btn-active">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>
@ -108,7 +108,7 @@
<div id="gameStudioTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">Games</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html" class="ui-btn-active">${TabStudios}</a>
@ -143,7 +143,7 @@
</div>
<div class="detailButtonsContainer">
<span id="playButtonContainer" style="display: none;">
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
<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>

View file

@ -75,7 +75,7 @@
<div id="gameTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html" class="ui-btn-active">Games</a>
<a href="games.html" class="ui-btn-active">${TabGames}</a>
<a href="gamesystems.html">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>
@ -84,7 +84,7 @@
<div id="gameSystemTabs" class="itemTabs" style="display: none;">
<div class="libraryViewNav">
<a href="gamesrecommended.html">${TabSuggested}</a>
<a href="games.html">Games</a>
<a href="games.html">${TabGames}</a>
<a href="gamesystems.html" class="ui-btn-active">Game Systems</a>
<a href="gamegenres.html">${TabGenres}</a>
<a href="gamestudios.html">${TabStudios}</a>
@ -109,32 +109,32 @@
<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>
</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>
</div>
</td>
</tr>
</table>
<div class="detailButtonsContainer">
<span id="missingIndicator" style="margin-left: .5em; display: none;">
<span style="background: #cc3333; padding: 5px 1em; border-radius: 5px;">MISSING</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">Play</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">Play</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>
</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>

View file

@ -76,10 +76,10 @@
<label for="chkIso">${OptionIso}</label>
<input class="chkHDFilter" type="checkbox" name="chkHD" id="chkHD" data-filter="IsHD" data-mini="true">
<label for="chkHD">HD</label>
<label for="chkHD">${OptionIsHD}</label>
<input class="chkSDFilter" type="checkbox" name="chkSD" id="chkSD" data-filter="IsHD" data-mini="true">
<label for="chkSD">SD</label>
<label for="chkSD">${OptionIsSD}</label>
<input class="chk3DFilter" type="checkbox" name="chk3D" id="chk3D" data-filter="Digital3D,Sbs3D" data-mini="true">
<label for="chk3D">${Option3D}</label>

View file

@ -7,11 +7,11 @@
<div id="liveTvChannelPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html" class="ui-btn-active">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<table class="detailPageContent primaryDetailPageContent">
<tr>
@ -28,10 +28,10 @@
</table>
<div class="detailButtonsContainer">
<span id="playButtonContainer" style="display: none;">
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">${ButtonPlay}</button>
</span>
<span id="editButtonContainer" style="display: none;">
<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>
</div>
<div data-role="content">

View file

@ -7,11 +7,11 @@
<div id="liveTvChannelsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html" class="ui-btn-active">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content">
<div class="viewSettings">

View file

@ -7,21 +7,20 @@
<div id="liveTvGuidePage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html" class="ui-btn-active">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html" class="ui-btn-active">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content" style="padding-top: 5px;">
<div>
<div style="text-align: center;">
<select id="selectDate" data-mini="true" data-icon="calendar" data-inline="true">
<option>Today</option>
</select>
<div style="display: inline-block; vertical-align: middle;">
Channels
${HeaderChannels}
</div>
<div style="display: inline-block; vertical-align: middle;" class="channelPaging">
</div>

View file

@ -7,11 +7,11 @@
<div id="liveTvNewRecordingPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content">
<form class="liveTvNewRecordingForm" style="margin: 0 auto;">
@ -29,75 +29,75 @@
<div style="display: none;" id="eligibleForSeriesFields">
<p>
<input type="checkbox" data-mini="true" id="chkRecordSeries" />
<label for="chkRecordSeries">Record Series</label>
<label for="chkRecordSeries">${OptionRecordSeries}</label>
</p>
<br />
<ul data-role="listview" class="ulForm" id="seriesFields" style="display: none;">
<li>
<h3>Days</h3>
<h3>${HeaderDays}</h3>
<div data-role="controlgroup">
<input type="checkbox" data-mini="true" id="chkSunday" />
<label for="chkSunday">Sunday</label>
<label for="chkSunday">${OptionSunday}</label>
<input type="checkbox" data-mini="true" id="chkMonday" />
<label for="chkMonday">Monday</label>
<label for="chkMonday">${OptionMonday}</label>
<input type="checkbox" data-mini="true" id="chkTuesday" />
<label for="chkTuesday">Tuesday</label>
<label for="chkTuesday">${OptionTuesday}</label>
<input type="checkbox" data-mini="true" id="chkWednesday" />
<label for="chkWednesday">Wednesday</label>
<label for="chkWednesday">${OptionWednesday}</label>
<input type="checkbox" data-mini="true" id="chkThursday" />
<label for="chkThursday">Thursday</label>
<label for="chkThursday">${OptionThursday}</label>
<input type="checkbox" data-mini="true" id="chkFriday" />
<label for="chkFriday">Friday</label>
<label for="chkFriday">${OptionFriday}</label>
<input type="checkbox" data-mini="true" id="chkSaturday" />
<label for="chkSaturday">Saturday</label>
<label for="chkSaturday">${OptionSaturday}</label>
</div>
</li>
<li>
<label for="chkNewOnly">Record only new episodes</label>
<label for="chkNewOnly">${OptionRecordOnlyNewEpisodes}</label>
<input type="checkbox" id="chkNewOnly" data-mini="true" />
</li>
<li>
<label for="chkAnyTime">Record program at any time</label>
<label for="chkAnyTime">${OptionRecordAnytime}</label>
<input type="checkbox" id="chkAnyTime" data-mini="true" />
</li>
<li>
<label for="chkAllChannels">Record program on all channels</label>
<label for="chkAllChannels">${OptionRecordOnAllChannels}</label>
<input type="checkbox" id="chkAllChannels" data-mini="true" />
</li>
</ul>
</div>
<div data-role="collapsible" data-mini="true">
<h3>Pre/Post Padding</h3>
<h3>${HeaderPrePostPadding}</h3>
<div>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtPrePaddingSeconds">Pre-padding minutes: </label>
<label for="txtPrePaddingSeconds">${LabelPrePaddingMinutes}</label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" max="30" step="1" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
<label for="chkPrePaddingRequired">Pre-padding is required in order to record.</label>
<label for="chkPrePaddingRequired">${OptionPrePaddingRequired}</label>
</li>
<li>
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtPostPaddingSeconds">Post-padding minutes: </label>
<label for="txtPostPaddingSeconds">${LabelPostPaddingMinutes}</label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" max="30" step="1" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />
<label for="chkPostPaddingRequired">Post-padding is required in order to record.</label>
<label for="chkPostPaddingRequired">${OptionPostPaddingRequired}</label>
</li>
</ul>
</div>
@ -107,10 +107,10 @@
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
Record
${ButtonRecord}
</button>
<button id="btnCancel" type="button" data-icon="delete" data-mini="true">
Cancel
${ButtonCancel}
</button>
</li>
</ul>

View file

@ -7,11 +7,11 @@
<div id="liveTvProgramPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html" class="ui-btn-active">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html" class="ui-btn-active">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
<div class="itemBackdropContent">
@ -39,13 +39,13 @@
</div>
<div class="detailButtonsContainer">
<span id="playButtonContainer" style="display: none;">
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">${ButtonPlay}</button>
</span>
<span id="cancelRecordingButtonContainer" style="display: none;">
<button id="btnCancelRecording" type="button" data-icon="delete" data-inline="true" data-mini="true">Cancel Recording</button>
<button id="btnCancelRecording" type="button" data-icon="delete" data-inline="true" data-mini="true">${ButtonCancelRecording}</button>
</span>
<span id="recordButtonContainer" style="display: none;">
<button id="btnRecord" type="button" data-icon="video" data-inline="true" data-mini="true">Record</button>
<button id="btnRecord" type="button" data-icon="video" data-inline="true" data-mini="true">${ButtonRecord}</button>
</span>
</div>
<div data-role="content">
@ -53,7 +53,7 @@
<div id="detailsSection" class="detailSection">
<div class="detailSectionHeader" style="margin-top: 0;">
Details
${HeaderDetails}
</div>
<div class="detailSectionContent" style="padding: 0 1em;">

View file

@ -7,11 +7,11 @@
<div id="liveTvRecordingPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
<div class="itemBackdropContent">
@ -39,10 +39,10 @@
</div>
<div class="detailButtonsContainer">
<span id="playButtonContainer" style="display: none;">
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">Play</button>
<button id="btnPlay" type="button" data-icon="play" data-inline="true" data-mini="true">${ButtonPlay}</button>
</span>
<span id="deleteButtonContainer" style="display: none;">
<button id="btnDelete" type="button" data-icon="delete" data-inline="true" data-mini="true">Delete</button>
<button id="btnDelete" type="button" data-icon="delete" data-inline="true" data-mini="true">${ButtonDelete}</button>
</span>
</div>
<div data-role="content">
@ -50,7 +50,7 @@
<div id="detailsSection" class="detailSection">
<div class="detailSectionHeader" style="margin-top: 0;">
Details
${HeaderDetails}
</div>
<div class="detailSectionContent" style="padding: 0 1em;">

View file

@ -7,11 +7,11 @@
<div id="liveTvRecordingListPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content">
<h1 class="listName" style="text-align: center;"></h1>

View file

@ -7,28 +7,28 @@
<div id="liveTvRecordingsPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html" class="ui-btn-active">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html" class="ui-btn-active">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content">
<table class="ehsContent">
<tr>
<td>
<div id="activeRecordings" style="display: none;">
<h1 class="listHeader">Active Recordings</h1>
<h1 class="listHeader">${HeaderActiveRecordings}</h1>
<div class="recordingItems"></div>
<br />
</div>
<div id="latestRecordings" style="display: none;">
<h1 class="listHeader">Latest Recordings</h1>
<h1 class="listHeader">${HeaderLatestRecordings}</h1>
<div class="recordingItems"></div>
<br />
</div>
<div id="recordingGroups" style="display: none;">
<h1 class="listHeader"><a href="livetvrecordinglist.html">All Recordings<img src="css/images/rightarrow.png" class="headerArrowImage" /></a></h1>
<h1 class="listHeader"><a href="livetvrecordinglist.html">${HeaderAllRecordings}<img src="css/images/rightarrow.png" class="headerArrowImage" /></a></h1>
<div id="recordingGroupItems"></div>
</div>
</td>

View file

@ -7,11 +7,11 @@
<div id="liveTvSeriesTimerPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html" class="ui-btn-active">${TabSeries}</a>
</div>
<div data-role="content">
<form class="liveTvSeriesTimerForm" style="margin: 0 auto; max-width: 720px;">
@ -34,67 +34,67 @@
<div class="settingsTab tab">
<ul data-role="listview" class="ulForm">
<li>
<h3>Days</h3>
<h3>${HeaderDays}</h3>
<div data-role="controlgroup">
<input type="checkbox" data-mini="true" id="chkSunday" />
<label for="chkSunday">Sunday</label>
<label for="chkSunday">${OptionSunday}</label>
<input type="checkbox" data-mini="true" id="chkMonday" />
<label for="chkMonday">Monday</label>
<label for="chkMonday">${OptionMonday}</label>
<input type="checkbox" data-mini="true" id="chkTuesday" />
<label for="chkTuesday">Tuesday</label>
<label for="chkTuesday">${OptionTuesday}</label>
<input type="checkbox" data-mini="true" id="chkWednesday" />
<label for="chkWednesday">Wednesday</label>
<label for="chkWednesday">${OptionWednesday}</label>
<input type="checkbox" data-mini="true" id="chkThursday" />
<label for="chkThursday">Thursday</label>
<label for="chkThursday">${OptionThursday}</label>
<input type="checkbox" data-mini="true" id="chkFriday" />
<label for="chkFriday">Friday</label>
<label for="chkFriday">${OptionFriday}</label>
<input type="checkbox" data-mini="true" id="chkSaturday" />
<label for="chkSaturday">Saturday</label>
<label for="chkSaturday">${OptionSaturday}</label>
</div>
</li>
<li>
<label for="chkNewOnly">Record only new episodes</label>
<label for="chkNewOnly">${OptionRecordOnlyNewEpisodes}</label>
<input type="checkbox" id="chkNewOnly" data-mini="true" />
</li>
<li>
<label for="chkAnyTime">Record program at any time</label>
<label for="chkAnyTime">${OptionRecordAnytime}</label>
<input type="checkbox" id="chkAnyTime" data-mini="true" />
</li>
<li>
<label for="chkAllChannels">Record program on all channels</label>
<label for="chkAllChannels">${OptionRecordOnAllChannels}</label>
<input type="checkbox" id="chkAllChannels" data-mini="true" />
</li>
</ul>
<div data-role="collapsible" data-mini="true">
<h3>Pre/Post Padding</h3>
<h3>${HeaderPrePostPadding}</h3>
<div>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtPrePaddingSeconds">Pre-padding minutes: </label>
<label for="txtPrePaddingSeconds">${LabelPrePaddingMinutes}</label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" max="30" step="1" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
<label for="chkPrePaddingRequired">Pre-padding is required in order to record.</label>
<label for="chkPrePaddingRequired">${OptionPrePaddingRequired}</label>
</li>
<li>
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtPostPaddingSeconds">Post-padding minutes: </label>
<label for="txtPostPaddingSeconds">${LabelPostPaddingMinutes}</label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" max="30" step="1" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />
<label for="chkPostPaddingRequired">Post-padding is required in order to record.</label>
<label for="chkPostPaddingRequired">${OptionPostPaddingRequired}</label>
</li>
</ul>
</div>
@ -102,10 +102,10 @@
<br />
<div>
<button type="submit" data-theme="a" data-icon="check" data-mini="true">
Save
${ButtonSave}
</button>
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true">
Cancel
${ButtonCancel}
</button>
</div>
</div>

View file

@ -7,11 +7,11 @@
<div id="liveTvSeriesTimersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html" class="ui-btn-active">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html" class="ui-btn-active">${TabSeries}</a>
</div>
<div data-role="content">
<div style="max-width: 600px; margin: 0 auto;">
@ -32,10 +32,10 @@
</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="radioPriority" value="off" data-sortby="Priority" data-mini="true">
<label for="radioPriority">Priority</label>
<label for="radioPriority">${OptionPriority}</label>
</fieldset>
<fieldset data-role="controlgroup">

View file

@ -10,8 +10,8 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="livetvstatus.html" data-role="button">Status</a>
<a href="#" data-role="button" class="ui-btn-active">Settings</a>
<a href="livetvstatus.html" data-role="button">${TabStatus}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabSettings}</a>
</div>
<form class="liveTvSettingsForm" style="display: none;">

View file

@ -10,8 +10,8 @@
<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">Status</a>
<a href="livetvsettings.html" data-role="button">Settings</a>
<a href="#" data-role="button" class="ui-btn-active">${TabStatus}</a>
<a href="livetvsettings.html" data-role="button">${TabSettings}</a>
</div>
<div style="margin-top: 2em;">
@ -26,7 +26,7 @@
<br />
<div class="readOnlyContent refreshGuidePanel hide">
<button type="button" class="btnRefreshGuide" data-icon="refresh" data-mini="true">Refresh Guide Data</button>
<button type="button" class="btnRefreshGuide" data-icon="refresh" data-mini="true">${ButtonRefreshGuideData}</button>
<progress max="100" min="0" style="width: 100%;" class="refreshGuideProgress"></progress>
<div style="margin-top: 5px;">Last Result: <span class="lastRefreshGuideResult"></span></div>
</div>
@ -54,7 +54,7 @@
<p>A Live TV service provider plugin is required in order to continue.</p>
<p>Please <a href="plugincatalog.html">install</a> one of our available plugins, such as ServerWmc.</p>
<p><a href="plugincatalog.html">Please install one of our available plugins, such as ServerWmc.</a></p>
</div>
</div>
</div>

View file

@ -7,23 +7,23 @@
<div id="liveTvSuggestedPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="#" class="ui-btn-active">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content">
<table class="ehsContent">
<tr>
<td>
<div id="activePrograms">
<h1 class="listHeader">What's On</h1>
<h1 class="listHeader">${HeaderWhatsOnTV}</h1>
<div class="activeProgramItems"></div>
<br />
</div>
<div id="upcomingPrograms">
<h1 class="listHeader">Upcoming TV</h1>
<h1 class="listHeader">${HeaderUpcomingTV}</h1>
<div class="upcomingProgramItems"></div>
<br />
</div>

View file

@ -7,11 +7,11 @@
<div id="liveTvTimerPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html" class="ui-btn-active">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content">
@ -40,28 +40,28 @@
<form class="liveTvTimerForm" style="margin: 0 auto;">
<div data-role="collapsible" data-mini="true">
<h3>Pre/Post Padding</h3>
<h3>${HeaderPrePostPadding}</h3>
<div>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtPrePaddingSeconds">Pre-padding minutes: </label>
<label for="txtPrePaddingSeconds">${LabelPrePaddingMinutes}</label>
<input type="number" id="txtPrePaddingSeconds" pattern="[0-9]*" required="required" min="0" max="30" step="1" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPrePaddingRequired" />
<label for="chkPrePaddingRequired">Pre-padding is required in order to record.</label>
<label for="chkPrePaddingRequired">${OptionPrePaddingRequired}</label>
</li>
<li>
<div style="height: .5em;"></div>
</li>
<li>
<label for="txtPostPaddingSeconds">Post-padding minutes: </label>
<label for="txtPostPaddingSeconds">${LabelPostPaddingMinutes}</label>
<input type="number" id="txtPostPaddingSeconds" pattern="[0-9]*" required="required" min="0" max="30" step="1" />
</li>
<li>
<input type="checkbox" data-mini="true" id="chkPostPaddingRequired" />
<label for="chkPostPaddingRequired">Post-padding is required in order to record.</label>
<label for="chkPostPaddingRequired">${OptionPostPaddingRequired}</label>
</li>
</ul>
</div>
@ -72,15 +72,15 @@
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="a" data-icon="check" data-mini="true">
Save
${ButtonSave}
</button>
<button type="button" onclick="Dashboard.navigate('livetvtimers.html');" data-icon="delete" data-mini="true">
Cancel
${ButtonCancel}
</button>
</li>
</ul>
<p style="border-top: 1px solid #444; padding-top: .5em; margin-top: 3em;">
<button id="btnCancelTimer" type="button" data-mini="true" data-icon="delete">Cancel Recording</button>
<button id="btnCancelTimer" type="button" data-mini="true" data-icon="delete">${ButtonCancelRecording}</button>
</p>
</form>

View file

@ -7,11 +7,11 @@
<div id="liveTvTimersPage" data-role="page" class="page libraryPage" data-theme="b" data-view="livetv">
<div class="libraryViewNav">
<a href="livetvsuggested.html">${TabSuggested}</a>
<a href="livetvguide.html">Guide</a>
<a href="livetvchannels.html">Channels</a>
<a href="livetvrecordings.html">Recordings</a>
<a href="livetvtimers.html" class="ui-btn-active">Scheduled</a>
<a href="livetvseriestimers.html">Series</a>
<a href="livetvguide.html">${TabGuide}</a>
<a href="livetvchannels.html">${TabChannels}</a>
<a href="livetvrecordings.html">${TabRecordings}</a>
<a href="livetvtimers.html" class="ui-btn-active">${TabScheduled}</a>
<a href="livetvseriestimers.html">${TabSeries}</a>
</div>
<div data-role="content">
<div style="max-width: 600px; margin: 0 auto;">

View file

@ -19,12 +19,12 @@
Log path: <span id="logPath"></span>
</p>
<p>
<label for="chkAutoScroll">Auto-scroll</label>
<label for="chkAutoScroll">${ButtonAutoScroll}</label>
<input type="checkbox" id="chkAutoScroll" onchange="LogPage.updateAutoScroll(this.checked);" name="chkAutoScroll" data-inline="true" />
</p>
<textarea id="logContents" class="pre" style="overflow-y: hidden;"></textarea>
<p>
<label for="chkAutoScrollBottom">Auto-scroll</label>
<label for="chkAutoScrollBottom">${ButtonAutoScroll}</label>
<input type="checkbox" id="chkAutoScrollBottom" name="chkAutoScrollBottom" onchange="LogPage.updateAutoScroll(this.checked);" data-inline="true" />
</p>
</div>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Sign In</title>
<title>${TitleSignIn}</title>
</head>
<body>
<div id="loginPage" data-role="page" class="page standalonePage">
@ -9,17 +9,17 @@
<div data-role="content">
<form class="manualLoginForm" id="manualLoginForm" style="display: none; text-align: center; margin: 0 auto;">
<h2 style="text-align: left;">Please sign in</h2>
<h2 style="text-align: left;">${HeaderPleaseSignIn}</h2>
<label for="txtManualName" style="text-align: left;">User:</label>
<label for="txtManualName" style="text-align: left;">${LabelUser}</label>
<input type="text" name="txtManualName" id="txtManualName" required="required" />
<label for="txtManualPassword" style="text-align: left;">Password:</label>
<label for="txtManualPassword" style="text-align: left;">${LabelPassword}</label>
<input type="password" name="txtManualPassword" id="txtManualPassword" placeholder="password" />
<p>
<button type="submit" data-theme="b" data-icon="check">
Sign in
${ButtonSignIn}
</button>
</p>
</form>
@ -27,8 +27,8 @@
<div class="visualLoginForm" style="display: none; text-align: center;">
<div id="divUsers"></div>
<p class="localhostMessage" style="text-align: center; display: none;">Passwords are not required when logging in from localhost.</p>
<p style="text-align: center;"><a onclick="$('.manualLoginForm').show();$('.visualLoginForm').hide();$('#txtManualName').focus();" href="#">Manual Login</a></p>
<p class="localhostMessage" style="text-align: center; display: none;">${PasswordLocalhostMessage}</p>
<p style="text-align: center;"><a onclick="$('.manualLoginForm').show();$('.visualLoginForm').hide();$('#txtManualName').focus();" href="#">${ButtonManualLogin}</a></p>
</div>
</div>
@ -36,18 +36,18 @@
<div data-role="popup" id="popupLogin" class="popup" data-dismissible="false">
<form class="loginForm">
<div class="ui-bar-a" style="text-align: center;">
<h3>Please sign in</h3>
<h3>${HeaderPleaseSignIn}</h3>
</div>
<div data-role="content">
<label for="pw" class="ui-hidden-accessible">Password:</label>
<label for="pw" class="ui-hidden-accessible">${LabelPassword}</label>
<input type="password" name="pw" id="pw" value="" placeholder="password" />
<p>
<button type="submit" data-theme="b" data-icon="check">
Sign in
${ButtonSignIn}
</button>
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');">
Cancel
${ButtonCancel}
</button>
</p>
</div>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Metadata</title>
<title>${TitleMetadata}</title>
</head>
<body>
<div id="metadataConfigurationPage" data-role="page" class="page type-interior">
@ -10,12 +10,12 @@
<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">Basics</a>
<a href="#" data-role="button" class="ui-btn-active">${TabBasics}</a>
<a href="metadataimages.html?type=movies" data-role="button">${TabMovies}</a>
<a href="metadataimages.html?type=tv" data-role="button">TV</a>
<a href="metadataimages.html?type=games" data-role="button">Games</a>
<a href="metadataimages.html?type=music" data-role="button">Music</a>
<a href="metadataimages.html?type=others" data-role="button">Others</a>
<a href="metadataimages.html?type=tv" data-role="button">${TabTV}</a>
<a href="metadataimages.html?type=games" data-role="button">${TabGames}</a>
<a href="metadataimages.html?type=music" data-role="button">${TabMusic}</a>
<a href="metadataimages.html?type=others" data-role="button">${TabOthers}</a>
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
</div>
@ -23,36 +23,36 @@
<ul data-role="listview" class="ulForm">
<li>
<input type="checkbox" id="chkEnableInternetProviders" name="chkEnableInternetProviders" data-mini="true" />
<label for="chkEnableInternetProviders">Download artwork and metadata from the internet </label>
<div class="fieldDescription">Media Browser can download information about your media to enable rich presentations.</div>
<label for="chkEnableInternetProviders">${LabelDownloadInternetMetadata}</label>
<div class="fieldDescription">${LabelDownloadInternetMetadataHelp}</div>
</li>
<li>
<input type="checkbox" id="chkSaveLocal" name="chkSaveLocal" data-mini="true" />
<label for="chkSaveLocal">Save artwork and metadata within media folders </label>
<div class="fieldDescription">Save downloaded metadata and images into media folders where they can be stored permanently and easily edited.</div>
<label for="chkSaveLocal">${LabelSaveLocalMetadata}</label>
<div class="fieldDescription">${LabelSaveLocalMetadataHelp}</div>
</li>
<li>
<label for="selectImageSavingConvention">Image saving convention: </label>
<label for="selectImageSavingConvention">${LabelImageSavingConvention}</label>
<select name="selectImageSavingConvention" id="selectImageSavingConvention" data-mini="true">
<option value="Compatible">Compatible - MB3/Plex/Xbmc</option>
<option value="Legacy">Standard - MB3/MB2</option>
<option value="Compatible">${OptionImageSavingCompatible}</option>
<option value="Legacy">${OptionImageSavingStandard}</option>
</select>
<div class="fieldDescription">Media Browser recognizes images from most major media applications. Choosing your downloading convention is useful if you also use other products.</div>
<div class="fieldDescription">${LabelImageSavingConventionHelp}</div>
</li>
<li>
<label for="selectLanguage">Preferred language: </label>
<label for="selectLanguage">${LabelMetadataDownloadLanguage}</label>
<select name="selectLanguage" id="selectLanguage" data-mini="true" required="required"></select>
</li>
<li>
<label for="selectCountry">Country: </label>
<label for="selectCountry">${LabelCountry}</label>
<select name="selectCountry" id="selectCountry" data-mini="true" required="required"></select>
</li>
<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>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Metadata</title>
<title>${TitleMetadata}</title>
</head>
<body>
<div id="advancedMetadataConfigurationPage" data-role="page" class="page type-interior">
@ -10,55 +10,55 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="metadata.html" data-role="button">Basics</a>
<a href="metadata.html" data-role="button">${TabBasics}</a>
<a href="metadataimages.html?type=movies" data-role="button">${TabMovies}</a>
<a href="metadataimages.html?type=tv" data-role="button">TV</a>
<a href="metadataimages.html?type=games" data-role="button">Games</a>
<a href="metadataimages.html?type=music" data-role="button">Music</a>
<a href="metadataimages.html?type=others" data-role="button">Others</a>
<a href="metadataimages.html?type=tv" data-role="button">${TabTV}</a>
<a href="metadataimages.html?type=games" data-role="button">${TabGames}</a>
<a href="metadataimages.html?type=music" data-role="button">${TabMusic}</a>
<a href="metadataimages.html?type=others" data-role="button">${TabOthers}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabAdvanced}</a>
</div>
<form id="advancedMetadataConfigurationForm">
<ul data-role="listview" class="ulForm">
<li>
<label>Extract chapter images for:</label>
<label>${HeaderExtractChapterImagesFor}</label>
<div data-role="controlgroup">
<input type="checkbox" data-mini="true" id="chkMovies" name="chkMovies" />
<label for="chkMovies">Movies</label>
<label for="chkMovies">${OptionMovies}</label>
<input type="checkbox" data-mini="true" id="chkEpisodes" name="chkEpisodes" />
<label for="chkEpisodes">Episodes</label>
<label for="chkEpisodes">${OptionEpisodes}</label>
<input type="checkbox" data-mini="true" id="chkOtherVideos" name="chkOtherVideos" />
<label for="chkOtherVideos">Other Videos</label>
<div class="fieldDescription">Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task at 4am, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.</div>
<label for="chkOtherVideos">${OptionOtherVideos}</label>
<div class="fieldDescription">${ExtractChapterImagesHelp}</div>
</div>
</li>
</ul>
<h2>Automatic Updates</h2>
<h2>${HeaderAutomaticUpdates}</h2>
<ul data-role="listview" class="ulForm">
<li>
<input type="checkbox" id="chkEnableFanartUpdates" name="chkEnableFanartUpdates" data-mini="true" />
<label for="chkEnableFanartUpdates">Enable automatic updates from FanArt.tv</label>
<div class="fieldDescription">If enabled, new images will be downloaded automatically as they're added to fanart.tv. Existing images will not be replaced.</div>
<label for="chkEnableFanartUpdates">${LabelAutomaticUpdatesFanart}</label>
<div class="fieldDescription">${LabelAutomaticUpdatesFanartHelp}</div>
</li>
<li>
<input type="checkbox" id="chkEnableTmdbPersonUpdates" name="chkEnableTmdbPersonUpdates" data-mini="true" />
<label for="chkEnableTmdbPersonUpdates">Enable automatic updates from TheMovieDB.org</label>
<div class="fieldDescription">If enabled, new images will be downloaded automatically as they're added to TheMovieDB.org. Existing images will not be replaced.</div>
<label for="chkEnableTmdbPersonUpdates">${LabelAutomaticUpdatesTmdb}</label>
<div class="fieldDescription">${LabelAutomaticUpdatesTmdbHelp}</div>
</li>
<li>
<input type="checkbox" id="chkEnableTvdbUpdates" name="chkEnableTvdbUpdates" data-mini="true" />
<label for="chkEnableTvdbUpdates">Enable automatic updates from TheTVDB.com</label>
<div class="fieldDescription">If enabled, new images will be downloaded automatically as they're added to TheTVDB.com. Existing images will not be replaced.</div>
<label for="chkEnableTvdbUpdates">${LabelAutomaticUpdatesTvdb}</label>
<div class="fieldDescription">${LabelAutomaticUpdatesTvdbHelp}</div>
</li>
<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>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<title>Metadata</title>
<title>${TitleMetadata}</title>
</head>
<body>
<div id="metadataImagesConfigurationPage" data-role="page" class="page type-interior">
@ -10,12 +10,12 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true" style="margin-bottom: 20px!important;">
<a href="metadata.html" data-role="button">Basics</a>
<a href="metadata.html" data-role="button">${TabBasics}</a>
<a href="metadataimages.html?type=movies" data-role="button" class="categoryTab moviesTab">${TabMovies}</a>
<a href="metadataimages.html?type=tv" data-role="button" class="categoryTab tvTab">TV</a>
<a href="metadataimages.html?type=games" data-role="button" class="categoryTab gamesTab">Games</a>
<a href="metadataimages.html?type=music" data-role="button" class="categoryTab musicTab">Music</a>
<a href="metadataimages.html?type=others" data-role="button" class="categoryTab othersTab">Others</a>
<a href="metadataimages.html?type=tv" data-role="button" class="categoryTab tvTab">${TabTV}</a>
<a href="metadataimages.html?type=games" data-role="button" class="categoryTab gamesTab">${TabGames}</a>
<a href="metadataimages.html?type=music" data-role="button" class="categoryTab musicTab">${TabMusic}</a>
<a href="metadataimages.html?type=others" data-role="button" class="categoryTab othersTab">${TabOthers}</a>
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
</div>
@ -46,7 +46,6 @@
<div>
<label for="txtMaxBackdrops">Maximum number of backdrops per item: </label>
<input type="number" id="txtMaxBackdrops" name="txtMaxBackdrops" pattern="[0-9]*" required="required" min="0" data-mini="true" />
<div class="fieldDescription">To prevent duplicate backdrop downloading, backdrops are only automatically downloaded when there are no backdrops present. Once an item has a single backdrop, further changes will need to be made manually using the metadata manager.</div>
</div>
<br />
<div>
@ -123,10 +122,10 @@
<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>

View file

@ -23,24 +23,24 @@
<div class="viewControls">
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectView" name="selectView">
<option value="Thumb">Thumb</option>
<option value="Poster">Poster</option>
<option value="Banner">Banner</option>
<option value="Timeline">Timeline</option>
<option value="Thumb">${OptionThumb}</option>
<option value="Poster">${OptionPoster}</option>
<option value="Banner">${OptionBanner}</option>
<option value="Timeline">${OptionTimeline}</option>
</select>
</div>
</div>
<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>
@ -61,7 +61,7 @@
<label for="radioBudget">${OptionBudget}</label>
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioCommunityRating" value="off" data-sortby="CommunityRating,SortName" data-mini="true">
<label for="radioCommunityRating">IMDb rating</label>
<label for="radioCommunityRating">${OptionImdbRating}</label>
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioCriticRating" value="off" data-sortby="CriticRating,SortName" data-mini="true">
<label for="radioCriticRating">${OptionCriticRating}</label>
@ -73,7 +73,7 @@
<label for="radioDatePlayed">${OptionDatePlayed}</label>
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioMetascore" value="off" data-sortby="Metascore,SortName" data-mini="true">
<label for="radioMetascore">Metascore</label>
<label for="radioMetascore">${OptionMetascore}</label>
<input class="radioSortBy" type="radio" name="radioSortBy" id="radioContentRating" value="off" data-sortby="OfficialRating,SortName" data-mini="true">
<label for="radioContentRating">${OptionParentalRating}</label>
@ -120,7 +120,7 @@
<div class="basicFilters">
<fieldset data-role="controlgroup">
<legend>
<strong>User Data:</strong>
<strong>${HeaderFilters}</strong>
</legend>
<input class="chkStandardFilter" type="checkbox" name="chkPlayed" id="chkPlayed" data-filter="IsPlayed" data-mini="true">
<label for="chkPlayed">${OptionPlayed}</label>
@ -155,10 +155,10 @@
<label for="chkIso">${OptionIso}</label>
<input class="chkHDFilter" type="checkbox" name="chkHD" id="chkHD" data-filter="IsHD" data-mini="true">
<label for="chkHD">HD</label>
<label for="chkHD">${OptionIsHD}</label>
<input class="chkSDFilter" type="checkbox" name="chkSD" id="chkSD" data-filter="IsHD" data-mini="true">
<label for="chkSD">SD</label>
<label for="chkSD">${OptionIsSD}</label>
<input class="chk3DFilter" type="checkbox" name="chk3D" id="chk3D" data-filter="Digital3D,Sbs3D" data-mini="true">
<label for="chk3D">${Option3D}</label>
@ -176,7 +176,7 @@
<label for="chkMissingImdbId">${OptionMissingImdbId}</label>
<input class="chkMissingTmdbId" type="checkbox" name="chkMissingTmdbId" id="chkMissingTmdbId" data-mini="true">
<label for="chkMissingTmdbId">Missing Tmdb Id</label>
<label for="chkMissingTmdbId">${OptionMissingTmdbId}</label>
<input class="chkMissingOverview" type="checkbox" name="chkMissingOverview" id="chkMissingOverview" data-mini="true">
<label for="chkMissingOverview">${OptionMissingOverview}</label>

View file

@ -4,8 +4,11 @@
var page = this;
apiClient.getSystemInfo().done(function(info) {
$('#appVersionNumber', page).html(info.Version);
apiClient.getSystemInfo().done(function (info) {
var elem = $('#appVersionNumber', page);
elem.html(elem.html().replace('{0}', info.Version));
});
});

File diff suppressed because it is too large Load diff

View file

@ -217,7 +217,7 @@
html += '<td>';
html += '<div>';
html += '<div style="max-width:200px;">';
if (deviceId == connection.DeviceId) {
html += connection.DeviceName;
} else {

View file

@ -2,6 +2,22 @@
var currentItem;
function getExternalPlayUrl(item) {
var providerIds = item.ProviderIds || {};
if (item.GameSystem == "Nintendo" && item.MediaType == "Game" && providerIds.NesBox && providerIds.NesBoxRom) {
return "http://nesbox.com/game/" + providerIds.NesBox + '/rom/' + providerIds.NesBoxRom;
}
if (item.GameSystem == "Super Nintendo" && item.MediaType == "Game" && providerIds.NesBox && providerIds.NesBoxRom) {
return "http://snesbox.com/game/" + providerIds.NesBox + '/rom/' + providerIds.NesBoxRom;
}
return null;
}
function reload(page) {
var id = getParameterByName('id');
@ -117,22 +133,6 @@
$('#btnEdit', page).attr('href', "edititemmetadata.html?id=" + id);
}
function getExternalPlayUrl(item) {
if (item.GameSystem == "Nintendo" && item.MediaType == "Game" && item.ProviderIds.NesBox && item.ProviderIds.NesBoxRom) {
return "http://nesbox.com/game/" + item.ProviderIds.NesBox + '/rom/' + item.ProviderIds.NesBoxRom;
}
if (item.GameSystem == "Super Nintendo" && item.MediaType == "Game" && item.ProviderIds.NesBox && item.ProviderIds.NesBoxRom) {
return "http://snesbox.com/game/" + item.ProviderIds.NesBox + '/rom/' + item.ProviderIds.NesBoxRom;
}
return null;
};
function setPeopleHeader(page, item) {
if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.MediaType == "Book" || item.MediaType == "Photo") {

View file

@ -20,14 +20,14 @@
loadSavedQueryValues: function (key, query) {
//var values = localStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
var values = localStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
//if (values) {
if (values) {
// values = JSON.parse(values);
values = JSON.parse(values);
// return $.extend(query, values);
//}
return $.extend(query, values);
}
return query;
},
@ -1397,7 +1397,7 @@
var url;
var imageHeight = 440;
var imageHeight = 600;
if (imageTags.Primary) {

View file

@ -84,99 +84,6 @@
html += '</ul>';
//var cssClass = "detailTable";
//html += '<div class="detailTableContainer"><table class="detailTable" >';
//html += '<thead>';
//html += '<tr>';
//html += '<th class="tabletColumn">&nbsp;</th>';
//html += '<th>Name</th>';
//html += '<th class="desktopColumn">Channel</th>';
//html += '<th>Date</th>';
//html += '<th>Time</th>';
//html += '<th class="tabletColumn">Length</th>';
//html += '<th class="tabletColumn">Status</th>';
//html += '<th class="desktopColumn">Series</th>';
//html += '</tr>';
//html += '</thead>';
//html += '<tbody>';
//for (var i = 0, length = timers.length; i < length; i++) {
// var timer = timers[i];
// html += '<tr>';
// html += '<td class="tabletColumn">';
// html += '<button data-timerid="' + timer.Id + '" class="btnDeleteTimer" type="button" data-icon="delete" data-inline="true" data-mini="true" data-iconpos="notext">Cancel</button>';
// html += '</td>';
// html += '<td>';
// html += '<a href="livetvtimer.html?id=' + timer.Id + '">' + timer.Name + '</a>';
// html += '</td>';
// html += '<td class="desktopColumn">';
// if (timer.ChannelId) {
// html += '<a href="livetvchannel.html?id=' + timer.ChannelId + '">' + timer.ChannelName + '</a>';
// }
// html += '</td>';
// var startDate = timer.StartDate;
// try {
// startDate = parseISO8601Date(startDate, { toLocal: true });
// } catch (err) {
// }
// html += '<td>' + startDate.toLocaleDateString() + '</td>';
// html += '<td>' + LiveTvHelpers.getDisplayTime(timer.StartDate) + '</td>';
// var minutes = timer.RunTimeTicks / 600000000;
// minutes = minutes || 1;
// html += '<td class="tabletColumn">' + Math.round(minutes) + 'min</td>';
// html += '<td class="tabletColumn">';
// if (timer.Status == 'ConflictedNotOk' || timer.Status == 'Error') {
// html += '<span style="color:red;">';
// html += timer.Status;
// html += '</span>';
// } else {
// html += timer.Status;
// }
// html += '</td>';
// html += '<td class="desktopColumn">';
// if (timer.SeriesTimerId) {
// html += '<a href="livetvseriestimer.html?id=' + timer.SeriesTimerId + '" title="View Series Recording">';
// html += '<div class="timerCircle seriesTimerCircle"></div>';
// html += '<div class="timerCircle seriesTimerCircle"></div>';
// html += '<div class="timerCircle seriesTimerCircle"></div>';
// html += '</a>';
// }
// html += '</td>';
// html += '</tr>';
//}
//html += '</tbody>';
//html += '</table></div>';
var elem = $('#items', page).html(html).trigger('create');
$('.btnDeleteTimer', elem).on('click', function () {

View file

@ -37,16 +37,24 @@
throw new Error('null player');
}
if (!targetInfo) {
throw new Error('null targetInfo');
}
currentPlayer = player;
currentTargetInfo = targetInfo;
currentTargetInfo = targetInfo || player.getCurrentTargetInfo();
$(self).trigger('playerchange');
};
self.setDefaultPlayerActive = function() {
self.setActivePlayer(self.getDefaultPlayer());
};
self.removeActivePlayer = function (name) {
if (self.getPlayerInfo().name == name) {
self.setDefaultPlayerActive();
}
};
self.getTargets = function () {
var deferred = $.Deferred();
@ -70,6 +78,17 @@
}
targets = targets.sort(function(a,b) {
var aVal = a.isLocalPlayer ? 0 : 1;
var bVal = b.isLocalPlayer ? 0 : 1;
aVal = aVal.toString() + a.name;
bVal = bVal.toString() + b.name;
return aVal.localeCompare(bVal);
});
deferred.resolveWith(null, [targets]);
});
@ -144,6 +163,17 @@
return p.isLocalPlayer;
})[0];
};
self.getDefaultPlayer = function () {
return currentPlayer.isLocalPlayer ?
currentPlayer :
players.filter(function (p) {
return p.isDefaultPlayer;
})[0];
};
}
window.MediaController = new mediaController();
@ -169,6 +199,12 @@
}
}
else if (msg.MessageType === "ServerShuttingDown") {
MediaController.setDefaultPlayerActive();
}
else if (msg.MessageType === "ServerRestarting") {
MediaController.setDefaultPlayerActive();
}
else if (msg.MessageType === "Playstate") {
if (msg.Data.Command === 'Stop') {
@ -201,7 +237,7 @@
localPlayer.mute();
}
else if (cmd.Name === 'Unmute') {
localPlayer.unmute();
localPlayer.unMute();
}
else if (cmd.Name === 'VolumeUp') {
localPlayer.volumeUp();

View file

@ -22,7 +22,6 @@
var fullscreenExited = false;
var idleState = true;
var remoteFullscreen = false;
var videoMenuVisible = false;
self.initVideoPlayer = function () {
video = playVideo(item, mediaSource, startPosition, user);
@ -32,7 +31,7 @@
self.remoteFullscreen = function () {
var videoControls = $("#videoControls");
if (remoteFullscreen) {
exitFullScreenToWindow();
videoControls.removeClass("inactive");
@ -263,7 +262,7 @@
video.removeClass("cursor-active").addClass("cursor-inactive");
videoControls.removeClass("active").addClass("inactive");
}, 4000);
};
}
function requestFullScreen(element) {
@ -276,7 +275,7 @@
enterFullScreen();
}
};
}
function changeHandler(event) {
@ -284,7 +283,7 @@
fullscreenExited = self.isFullScreen() == false;
});
};
}
function enterFullScreen() {
@ -294,7 +293,7 @@
remoteFullscreen = true;
};
}
function exitFullScreenToWindow() {
@ -304,7 +303,7 @@
remoteFullscreen = false;
};
}
function toggleFlyout(flyout, button) {
@ -334,14 +333,14 @@
hideFlyout(flyout);
}
};
}
function hideFlyout(flyout) {
flyout.slideUp().empty();
$(document.body).off("mousedown.hidesearchhints");
};
}
function getChaptersFlyoutHtml() {
@ -400,10 +399,10 @@
}
return html;
};
}
function getAudioTracksHtml() {
var streams = currentMediaSource.MediaStreams.filter(function (currentStream) {
return currentStream.Type == "Audio";
});
@ -468,7 +467,7 @@
}
return html;
};
}
function getSubtitleTracksHtml() {
@ -541,7 +540,7 @@
}
return html;
};
}
function getQualityFlyoutHtml() {
@ -582,7 +581,7 @@
}
return html;
};
}
function getInitialSubtitleStreamIndex(mediaStreams, user) {
@ -621,13 +620,20 @@
}
return null;
};
}
function getInitialAudioStreamIndex(mediaStreams, user) {
// Find all audio streams with at least one channel
// Find all audio streams
var audioStreams = mediaStreams.filter(function (stream) {
return stream.Type == "Audio" && stream.Channels;
return stream.Type == "Audio";
}).sort(function (a, b) {
var av = a.IsDefault ? 0 : 1;
var bv = b.IsDefault ? 0 : 1;
return av - bv;
});
if (user.Configuration.AudioLanguagePreference) {
@ -643,9 +649,9 @@
}
// Just use the first audio stream
return audioStreams.length ? audioStreams[0].Index : null;
};
return audioStreams[0];
}
function getVideoQualityOptions(mediaStreams) {
var videoStream = mediaStreams.filter(function (stream) {
@ -722,8 +728,8 @@
options[selectedIndex].selected = true;
return options;
};
}
function playVideo(item, mediaSource, startPosition, user) {
var mediaStreams = mediaSource.MediaStreams || [];
@ -753,9 +759,6 @@
})[0];
m3U8Quality = $.extend(m3U8Quality, self.getFinalVideoParams(mediaSource, mp4Quality.maxWidth, mp4Quality.bitrate, baseParams.AudioStreamIndex, baseParams.SubtitleStreamIndex, '.mp4'));
// Webm must be ahead of mp4 due to the issue of mp4 playing too fast in chrome
var prioritizeWebmOverH264 = $.browser.chrome || $.browser.msie;
var isStatic = mp4Quality.isStatic;
self.startTimeTicksOffset = isStatic ? 0 : startPosition || 0;
@ -815,18 +818,15 @@
html += '<source type="application/x-mpegURL" src="' + hlsVideoUrl + '" />';
}
if (prioritizeWebmOverH264 && !isStatic) {
// Have to put webm ahead of mp4 because it will play in fast forward in chrome
// And firefox doesn't like fragmented mp4
if (!isStatic) {
html += '<source type="video/webm" src="' + webmVideoUrl + '" />';
}
html += '<source type="video/mp4" src="' + mp4VideoUrl + '" />';
if (!prioritizeWebmOverH264 && !isStatic) {
html += '<source type="video/webm" src="' + webmVideoUrl + '" />';
}
html += '</video>';
var mediaPlayer = $("#mediaPlayer").show();
@ -920,6 +920,11 @@
$("#pause", videoElement).hide().removeClass("fadeOut");
}, 300);
// Pause stop timer
self.pauseStop = setTimeout(function () {
self.stop();
}, 5 * 60 * 1000); // 5 minutes
}).on("playing", function (e) {
$('#video-playButton', videoControls).hide();
@ -929,6 +934,9 @@
$("#play", videoElement).hide().removeClass("fadeOut");
}, 300);
// Remove pause setop timer
self.clearPauseStop();
}).on("timeupdate", function () {
if (!self.isPositionSliderActive) {
@ -938,6 +946,8 @@
}).on("error", function () {
self.clearPauseStop();
$("html").css("cursor", "default");
$(".ui-loader").hide();
self.resetEnhancements();
@ -1016,7 +1026,7 @@
if (e.keyCode == 27) {
self.stop();
$(this).unbind("keyup.enhancePlayer");
$(this).off("keyup.enhancePlayer");
}
});
@ -1028,6 +1038,6 @@
currentMediaSource = mediaSource;
return videoElement[0];
};
}
};
})();

View file

@ -24,6 +24,7 @@
self.playlist = [];
self.isLocalPlayer = true;
self.isDefaultPlayer = true;
self.name = 'Html5 Player';
self.getTargets = function () {
@ -32,7 +33,8 @@
name: 'My Browser',
id: ApiClient.deviceId(),
playerName: self.name,
playableMediaTypes: ['Audio', 'Video']
playableMediaTypes: ['Audio', 'Video'],
isLocalPlayer: true
}];
return targets;
@ -58,8 +60,19 @@
return Math.floor(10000000 * (mediaElement || currentMediaElement).currentTime) + self.startTimeTicksOffset;
};
self.clearPauseStop = function() {
if (self.pauseStop) {
console.log('clearing pause stop timer');
window.clearTimeout(self.pauseStop);
self.pauseStop = null;
}
};
self.onPlaybackStopped = function () {
self.clearPauseStop();
$(this).off('ended.playbackstopped');
self.currentTimeElement.empty();
@ -114,7 +127,7 @@
}
// Chrome or IE with plugin installed
if (canPlayWebm() && !$.browser.mozilla) {
if (canPlayWebm()) {
return '.webm';
}
@ -231,7 +244,7 @@
return false;
}
if (mediaSource.VideoType != "VideoFile" || mediaSource.LocationType != "FileSystem") {
if (mediaSource.VideoType != "VideoFile") {
console.log('Transcoding because the content is not a video file');
return false;
}
@ -256,10 +269,7 @@
return false;
}
var videoBitrate = videoStream.BitRate || 0;
var audioBitrate = audioStream ? audioStream.BitRate || 0 : null;
if ((videoBitrate + audioBitrate) > bitrate) {
if (!mediaSource.Bitrate || mediaSource.Bitrate > bitrate) {
console.log('Transcoding because bitrate is too high');
return false;
}
@ -1159,12 +1169,16 @@
};
var getItemFields = "MediaSources,Chapters";
self.getCurrentTargetInfo = function () {
return self.getTargets()[0];
};
}
window.MediaPlayer = new mediaPlayer();
window.MediaController.registerPlayer(window.MediaPlayer);
window.MediaController.setActivePlayer(window.MediaPlayer, window.MediaPlayer.getTargets()[0]);
window.MediaController.setActivePlayer(window.MediaPlayer);
})(document, setTimeout, clearTimeout, screen, localStorage, $, setInterval, window);

View file

@ -34,8 +34,8 @@
var fieldId = "liPluginUpdateFielda" + fieldIndex;
var enabledOptions = [
Globalize.translate('OptionOff'),
Globalize.translate('OptionOn')
{ name: Globalize.translate('OptionOff'), value: 'Off' },
{ name: Globalize.translate('OptionOn'), value: 'On' }
];
var options = PluginUpdatesPage.getHtmlOptions(enabledOptions, (plugin.EnableAutoUpdate ? "On" : "Off"));
@ -46,9 +46,9 @@
fieldId = "liPluginUpdateFieldb" + fieldIndex;
var updateOptions = [
Globalize.translate('OptionRelease'),
Globalize.translate('OptionBeta'),
Globalize.translate('OptionDev')
{ name: Globalize.translate('OptionRelease'), value: 'Release' },
{ name: Globalize.translate('OptionBeta'), value: 'Beta' },
{ name: Globalize.translate('OptionDev'), value: 'Dev' }
];
options = PluginUpdatesPage.getHtmlOptions(updateOptions, plugin.UpdateClass);
@ -61,18 +61,20 @@
elem.append(html).trigger('create');
},
getHtmlOptions: function (names, selectedValue) {
getHtmlOptions: function (options, selectedValue) {
var html = "";
for (var i = 0, length = names.length; i < length; i++) {
for (var i = 0, length = options.length; i < length; i++) {
var name = names[i];
var option = options[i];
var name = option.name;
var value = option.value;
if (name == selectedValue) {
html += '<option value="' + name + '" selected="selected">' + name + '</option>';
if (value == selectedValue) {
html += '<option value="' + value + '" selected="selected">' + name + '</option>';
} else {
html += '<option value="' + name + '">' + name + '</option>';
html += '<option value="' + value + '">' + name + '</option>';
}
}

View file

@ -424,7 +424,7 @@
PlayCommand: playType
};
if (options.startPositionTicks) {
remoteOptions.startPositionTicks = options.startPositionTicks;
}
@ -468,6 +468,22 @@
return mediaType == 'Audio' || mediaType == 'Video';
};
self.stop = function () {
};
self.mute = function () {
};
self.unMute = function () {
};
self.toggleMute = function () {
};
self.getTargets = function () {
var deferred = $.Deferred();
@ -489,7 +505,8 @@
id: s.Id,
playerName: self.name,
appName: s.Client,
playableMediaTypes: s.PlayableMediaTypes
playableMediaTypes: s.PlayableMediaTypes,
isLocalPlayer: false
};
});
@ -506,4 +523,18 @@
MediaController.registerPlayer(new remoteControlPlayer());
function onWebSocketMessageReceived(e, msg) {
if (msg.MessageType === "SessionEnded") {
console.log("Server reports another session ended");
if (MediaController.getPlayerInfo().id == msg.Data.Id) {
MediaController.setDefaultPlayerActive();
}
}
}
$(ApiClient).on("websocketmessage", onWebSocketMessageReceived);
})(window, document, jQuery);

View file

@ -1289,7 +1289,7 @@ $(function () {
videoPlayerHtml += '<div class="nowPlayingMediaInfo"></div>';
videoPlayerHtml += '<button id="video-muteButton" class="mediaButton muteButton" title="Mute" type="button" onclick="MediaPlayer.mute();" data-icon="audio" data-iconpos="notext" data-inline="true">Mute</button>';
videoPlayerHtml += '<button id="video-unmuteButton" class="mediaButton unmuteButton" title="Unmute" type="button" onclick="MediaPlayer.unmute();" data-icon="volume-off" data-iconpos="notext" data-inline="true">Unmute</button>';
videoPlayerHtml += '<button id="video-unmuteButton" class="mediaButton unmuteButton" title="Unmute" type="button" onclick="MediaPlayer.unMute();" data-icon="volume-off" data-iconpos="notext" data-inline="true">Unmute</button>';
videoPlayerHtml += '<div class="volumeSliderContainer sliderContainer">';
videoPlayerHtml += '<input type="range" class="mediaSlider volumeSlider slider" step=".05" min="0" max="1" value="0" style="display:none;" data-mini="true" data-theme="a" data-highlight="true" />';
@ -1310,8 +1310,6 @@ $(function () {
videoPlayerHtml += '<button onclick="MediaPlayer.showChaptersFlyout();" id="video-chaptersButton" class="mediaButton chaptersButton" title="Scenes" type="button" data-icon="video" data-iconpos="notext" data-inline="true">Scenes</button>';
videoPlayerHtml += '<div class="mediaFlyoutContainer"><div id="video-chaptersFlyout" style="display:none;" class="mediaPlayerFlyout chaptersFlyout"></div></div>';
videoPlayerHtml += '<button onclick="CastPlayer.initializeLocalPlayer();CastPlayer.playMedia();" id="video-ccastButton" class="mediaButton videoCCastButton" title="Cast" type="button" data-icon="ccast" data-iconpos="notext" data-inline="true" style="display: none;">Cast</button>';
videoPlayerHtml += '<button onclick="MediaPlayer.toggleFullscreen();" id="video-fullscreenButton" class="mediaButton fullscreenButton" title="Fullscreen" type="button" data-icon="action" data-iconpos="notext" data-inline="true">Fullscreen</button>';
videoPlayerHtml += '</div>'; // video-advanced-controls
@ -1349,7 +1347,7 @@ $(function () {
footerHtml += '<div class="nowPlayingMediaInfo"></div>';
footerHtml += '<button id="muteButton" class="mediaButton muteButton" title="Mute" type="button" onclick="MediaPlayer.mute();" data-icon="audio" data-iconpos="notext" data-inline="true">Mute</button>';
footerHtml += '<button id="unmuteButton" class="mediaButton unmuteButton" title="Unmute" type="button" onclick="MediaPlayer.unmute();" data-icon="volume-off" data-iconpos="notext" data-inline="true">Unmute</button>';
footerHtml += '<button id="unmuteButton" class="mediaButton unmuteButton" title="Unmute" type="button" onclick="MediaPlayer.unMute();" data-icon="volume-off" data-iconpos="notext" data-inline="true">Unmute</button>';
footerHtml += '<div class="volumeSliderContainer sliderContainer">';
footerHtml += '<input type="range" class="mediaSlider volumeSlider slider" step=".05" min="0" max="1" value="0" style="display:none;" data-mini="true" data-theme="a" data-highlight="true" />';

View file

@ -12,7 +12,7 @@
<h2>
<img src="css/images/mblogoicon.png" />${LabelWindowsService}</h2>
<p>A Windows Service has been installed.</p>
<p>${AWindowsServiceHasBeenInstalled}</p>
<p>${WindowsServiceIntro1}</p>