1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

fixes #762 - Marking unwatched doesn't update display

This commit is contained in:
Luke Pulverenti 2014-07-03 22:22:57 -04:00
parent 5bec78f61f
commit 41825781d2
49 changed files with 443 additions and 505 deletions

View file

@ -11,7 +11,7 @@
<div class="readOnlyContent">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="support.html" data-role="button">${TabGeneral}</a>
<a href="log.html" data-role="button">${TabLog}</a>
<a href="log.html" data-role="button">${TabLogs}</a>
<a href="supporter.html" data-role="button">${TabBecomeSupporter}</a>
<a href="supporterkey.html" data-role="button">${TabSupporterKey}</a>
<a href="about.html" data-role="button" class="ui-btn-active">${TabAbout}</a>

View file

@ -13,6 +13,7 @@
<a href="#" data-role="button" class="ui-btn-active">${TabGeneral}</a>
<a href="notificationsettings.html" data-role="button">${TabNotifications}</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="appsplayback.html" data-role="button">${TabResume}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>

View file

@ -13,6 +13,7 @@
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="notificationsettings.html" data-role="button">${TabNotifications}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabPaths}</a>
<a href="appsplayback.html" data-role="button">${TabResume}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>
@ -45,16 +46,6 @@
<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">${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">${ButtonSelectDirectory}</button>
<div class="fieldDescription">
${LabelTranscodingTempPathHelp}
</div>
</li>
</ul>
<br />
<ul data-role="listview" class="ulForm">

View file

@ -13,6 +13,7 @@
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="notificationsettings.html" data-role="button">${TabNotifications}</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="appsplayback.html" data-role="button">${TabResume}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>
@ -38,6 +39,7 @@
<div class="fieldDescription">${LabelExternalDDNSHelp}</div>
</li>
</ul>
<br />
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="check" data-mini="true">

View file

@ -1,54 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>${HeaderUsers}</title>
</head>
<body>
<div id="allUserSettingsPage" data-role="page" class="page type-interior userProfilesConfigurationPage">
<div data-role="content">
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="userprofiles.html" data-role="button">${TabProfiles}</a>
<a href="#" class="ui-btn-active" data-role="button">${TabSecurity}</a>
</div>
<form id="allUserSettingsForm">
<p>${HeaderRequireManualLogin}</p>
<div data-role="controlgroup">
<input type="checkbox" data-mini="true" id="chkMobileClients" />
<label for="chkMobileClients">${OptionMobileApps}</label>
<input type="checkbox" data-mini="true" id="chkOtherApps" />
<label for="chkOtherApps">${OptionOtherApps}</label>
</div>
<div class="fieldDescription">${HeaderRequireManualLoginHelp}</div>
<br />
<br />
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="check">
${ButtonSave}
</button>
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
${ButtonCancel}
</button>
</li>
</ul>
</form>
</div>
</div>
<script type="text/javascript">
$('#allUserSettingsForm').on('submit', AllUserSettingsPage.onSubmit);
</script>
</div>
</body>
</html>

View file

@ -1,16 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<title>${TitleAppSettings}</title>
<title>${TitleAdvanced}</title>
</head>
<body>
<div id="appsPlaybackPage" data-role="page" class="page appsPage type-interior">
<div id="appsPlaybackPage" data-role="page" class="page type-interior advancedConfigurationPage">
<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">${TabResume}</a>
<a href="appsweather.html" data-role="button">${TabWeather}</a>
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="notificationsettings.html" data-role="button">${TabNotifications}</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="#" class="ui-btn-active" data-role="button">${TabResume}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="appsplayback.html" data-role="button">${TabTranscoding}</a>
</div>
<form class="appsPlaybackForm">

View file

@ -1,51 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>${TitleAppSettings}</title>
</head>
<body>
<div id="appsWeatherPage" data-role="page" class="page appsPage type-interior">
<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">${TabResume}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabWeather}</a>
</div>
<form class="appsWeatherForm">
<ul data-role="listview" class="ulForm">
<li>
<label for="txtWeatherLocation">${LabelWeatherDisplayLocation}</label>
<input id="txtWeatherLocation" name="txtWeatherLocation" type="text" />
<div class="fieldDescription">
${LabelWeatherDisplayLocationHelp}
</div>
</li>
<li>
<label for="selectWeatherUnit">${LabelWeatherDisplayUnit}</label>
<select id="selectWeatherUnit" name="selectWeatherUnit">
<option value="Celsius">${OptionCelsius}</option>
<option value="Fahrenheit">${OptionFahrenheit}</option>
</select>
</li>
<li>
<button type="submit" data-theme="b" data-icon="check">
${ButtonSave}
</button>
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete">
${ButtonCancel}
</button>
</li>
</ul>
</form>
</div>
</div>
<script type="text/javascript">
$('.appsWeatherForm').off('submit', AppsWeatherPage.onSubmit).on('submit', AppsWeatherPage.onSubmit);
</script>
</div>
</body>
</html>

View file

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html>
<head>
<title>${TitleDashboard}</title>
</head>
<body>
<div id="dashboardBrandingPage" data-role="page" class="page type-interior dashboardHomePage">
<div data-role="content">
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="dashboard.html" data-role="button">${TabHome}</a>
<a href="dashboardgeneral.html" data-role="button">${TabGeneral}</a>
<a href="dashboardinfopage.html" data-role="button">${TabInfo}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabBranding}</a>
</div>
<form class="dashboardBrandingForm">
<p>${HeaderBrandingHelp}</p>
<br />
<ul data-role="listview" class="ulForm">
<li>
<label for="txtLoginDisclaimer">${LabelLoginDisclaimer}</label>
<input id="txtLoginDisclaimer" data-mini="true" />
<div class="fieldDescription">${LabelLoginDisclaimerHelp}</div>
</li>
</ul>
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
${ButtonSave}
</button>
<button type="button" onclick="Dashboard.navigate('dashboard.html');" data-icon="delete" data-mini="true">
${ButtonCancel}
</button>
</li>
</ul>
</form>
</div>
</div>
<script type="text/javascript">
$('.dashboardBrandingForm')
.off('submit', BrandingPage.onSubmit)
.on('submit', BrandingPage.onSubmit);
</script>
</div>
</body>
</html>

View file

@ -14,7 +14,7 @@
<ul data-role="listview" class="ulForm">
<li>
<label for="selectChannelResolution">${LabelChannelStreamQuality}</label>
<select id="selectChannelResolution">
<select id="selectChannelResolution" data-mini="true">
<option value="">${OptionBestAvailableStreamQuality}</option>
<option value="1920">1080p</option>
<option value="1280">720p</option>

View file

@ -782,7 +782,7 @@ a.itemTag:hover {
background: rgba(248, 58, 34, .8);
}
.unplayedIndicator, .playedIndicator {
.playedIndicator {
display: block;
position: absolute;
top: 5px;
@ -798,7 +798,7 @@ a.itemTag:hover {
background: rgba(82, 181, 75, .8);
}
.unplayedIndicator div:after, .playedIndicator div:after {
.playedIndicator div:after {
background-color: transparent !important;
}

View file

@ -133,7 +133,7 @@
height: 2px!important;
}
#videoPlayer.fullscreenVideo .inactive {
#videoPlayer .inactive {
display: none!important;
}

View file

@ -1,7 +1,8 @@
/* Now playing bar */
.nowPlayingBar {
padding: 6px 0 14px 0;
border-top: 1px solid green;
border-top: 2px solid green;
text-align: center;
}
.nowPlayingBarImage {
@ -148,6 +149,7 @@ input[type="range"]::-ms-fill-upper {
.nowPlayingBar {
padding: 10px 5px 10px 0;
text-align: left;
}
}

View file

@ -170,7 +170,6 @@ pre, textarea.pre {
.imgLogoText {
height: 45px;
display: none;
margin-left: 5px;
}
@ -409,7 +408,6 @@ h1 .imageLink {
.imgLogoText {
height: 50px;
display: inline;
}
.header {
@ -689,6 +687,7 @@ h1 .imageLink {
z-index: 1097;
color: #fff;
border: 0 !important;
background-color: #111;
}
.footerNotification {

View file

@ -13,6 +13,7 @@
<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">${TabInfo}</a>
<a href="branding.html" data-role="button">${TabBranding}</a>
</div>
<div class="dashboardContent">
<div class="readOnlyContent dashboardHomeLeftColumn">

View file

@ -13,6 +13,7 @@
<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">${TabInfo}</a>
<a href="branding.html" data-role="button">${TabBranding}</a>
</div>
<form class="dashboardGeneralForm">

View file

@ -14,6 +14,7 @@
<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">${TabInfo}</a>
<a href="branding.html" data-role="button">${TabBranding}</a>
</div>
<div data-role="collapsible" data-collapsed="false" style="margin-top: 1em;">

View file

@ -43,8 +43,8 @@
<select data-mini="true" data-inline="true" id="selectRefreshMode">
<option value="all">Refresh All Data</option>
<option value="allandimages">Refresh All Data and Images</option>
<option value="missing">Add Missing Data Only</option>
<option value="advanced">Advanced</option>
</select>
</div>
@ -507,11 +507,53 @@
</div>
<div data-role="popup" class="popup popupAdvancedRefresh" data-theme="a">
<div class="ui-bar-a" style="text-align: center; padding: 0 20px;">
<h3 style="margin: .5em;">Refresh Metadata</h3>
</div>
<div data-role="content">
<form class="popupAdvancedRefreshForm" style="min-width: 200px;">
<br />
<div>
<label for="selectMetadataRefreshMode">Metadata refresh mode:</label>
<select id="selectMetadataRefreshMode" data-mini="true">
<option value="">None</option>
<option value="missing">Add Missing Data Only</option>
<option value="all">Refresh All Data</option>
</select>
</div>
<br />
<div>
<label for="selectImageRefreshMode">Images refresh mode:</label>
<select id="selectImageRefreshMode" data-mini="true">
<option value="">None</option>
<option value="missing">Download missing images</option>
<option value="all">Replace existing images</option>
</select>
</div>
<br />
<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>
<script type="text/javascript">
$('.editItemMetadataForm').off('submit', EditItemMetadataPage.onSubmit).on('submit', EditItemMetadataPage.onSubmit);
$('.popupConfirmDeleteForm').off('submit', EditItemMetadataPage.onDeleteFormSubmitted).on('submit', EditItemMetadataPage.onDeleteFormSubmitted);
$('.popupIdentifyForm').off('submit', EditItemMetadataPage.onIdentificationFormSubmitted).on('submit', EditItemMetadataPage.onIdentificationFormSubmitted);
$('.popupEditPersonForm').off('submit', EditItemMetadataPage.onPersonInfoFormSubmit).on('submit', EditItemMetadataPage.onPersonInfoFormSubmit);
$('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit);
</script>
</div>

View file

@ -1,5 +1,4 @@

<!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<title>${TitleAdvanced}</title>
@ -14,6 +13,7 @@
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="notificationsettings.html" data-role="button">${TabNotifications}</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="appsplayback.html" data-role="button">${TabResume}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabTranscoding}</a>
</div>
@ -42,6 +42,16 @@
<br />
<ul data-role="listview" class="ulForm">
<li>
<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">${ButtonSelectDirectory}</button>
<div class="fieldDescription">
${LabelTranscodingTempPathHelp}
</div>
</li>
<li>
<label for="txtDownMixAudioBoost">${LabelDownMixAudioScale}</label>
<input type="number" id="txtDownMixAudioBoost" pattern="[0-9]*" required="required" min=".5" max="3" step=".1" data-mini="true" />

View file

@ -16,7 +16,6 @@
<div class="readOnlyContent">
<p>${PathSubstitutionHelp}</p>
</div>
<table id="tblPaths" data-role="table" data-mode="reflow" class="ui-responsive">
<thead>
@ -29,6 +28,7 @@
<tbody class="tbodyPathSubstitutions">
</tbody>
</table>
</div>
<br />

View file

@ -14,7 +14,7 @@
<a href="livetvsettings.html" data-role="button">${TabSettings}</a>
</div>
<div style="margin-top: 2em;">
<div class="readOnlyContent" style="margin-top: 2em;">
<div class="liveTvStatusContent" style="display: none;">
@ -25,7 +25,7 @@
</div>
<br />
<div class="readOnlyContent refreshGuidePanel hide">
<div class="refreshGuidePanel hide">
<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;">${LabelLastResult} <span class="lastRefreshGuideResult"></span></div>

View file

@ -10,23 +10,16 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="support.html" data-role="button">${TabGeneral}</a>
<a href="log.html" data-role="button" class="ui-btn-active">${TabLog}</a>
<a href="log.html" data-role="button" class="ui-btn-active">${TabLogs}</a>
<a href="supporter.html" data-role="button">${TabBecomeSupporter}</a>
<a href="supporterkey.html" data-role="button">${TabSupporterKey}</a>
<a href="about.html" data-role="button">${TabAbout}</a>
</div>
<p>
Log path: <span id="logPath"></span>
</p>
<p>
<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">${ButtonAutoScroll}</label>
<input type="checkbox" id="chkAutoScrollBottom" name="chkAutoScrollBottom" onchange="LogPage.updateAutoScroll(this.checked);" data-inline="true" />
</p>
<p>${HeaderServerLogFiles}</p>
<div class="serverLogs">
</div>
</div>
</div>
</div>

View file

@ -16,9 +16,8 @@
<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">
<button type="submit" data-icon="check">
${ButtonSignIn}
</button>
</p>
@ -28,34 +27,13 @@
<div id="divUsers"></div>
<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>
<div data-role="popup" id="popupLogin" class="popup" data-dismissible="false">
<form class="loginForm">
<div class="ui-bar-a" style="text-align: center;">
<h3>${HeaderPleaseSignIn}</h3>
</div>
<div data-role="content">
<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">
${ButtonSignIn}
</button>
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');">
${ButtonCancel}
</button>
</p>
</div>
</form>
<p class="disclaimer" style="text-align: center; margin-top: 2em;"></p>
</div>
<script type="text/javascript">
$('.loginForm').on('submit', LoginPage.onSubmit);
$('#manualLoginForm').on('submit', LoginPage.onManualSubmit);
</script>
</div>

View file

@ -11,11 +11,11 @@
<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">${TabBasics}</a>
<a href="metadataimages.html" data-role="button">${TabAdvanced}</a>
<a href="metadataimages.html" data-role="button">${TabServices}</a>
<a href="metadatachapters.html" data-role="button">${TabChapters}</a>
<a href="metadatasubtitles.html" data-role="button">${TabSubtitles}</a>
<a href="metadataxbmc.html" data-role="button">${TabXbmcMetadata}</a>
<a href="metadataadvanced.html" data-role="button">${TabOther}</a>
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
</div>
<form id="metadataConfigurationForm">

View file

@ -11,11 +11,11 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="metadata.html" data-role="button">${TabBasics}</a>
<a href="metadataimages.html" data-role="button">${TabAdvanced}</a>
<a href="metadataimages.html" data-role="button">${TabServices}</a>
<a href="metadatachapters.html" data-role="button">${TabChapters}</a>
<a href="metadatasubtitles.html" data-role="button">${TabSubtitles}</a>
<a href="metadataxbmc.html" data-role="button">${TabXbmcMetadata}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabOther}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabAdvanced}</a>
</div>
<form id="advancedMetadataConfigurationForm">

View file

@ -11,11 +11,11 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="metadata.html" data-role="button">${TabBasics}</a>
<a href="metadataimages.html" data-role="button">${TabAdvanced}</a>
<a href="metadataimages.html" data-role="button">${TabServices}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabChapters}</a>
<a href="metadatasubtitles.html" data-role="button">${TabSubtitles}</a>
<a href="metadataxbmc.html" data-role="button">${TabXbmcMetadata}</a>
<a href="metadataadvanced.html" data-role="button">${TabOther}</a>
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
</div>
<form class="metadataChaptersForm">

View file

@ -11,11 +11,11 @@
<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">${TabBasics}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabAdvanced}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabServices}</a>
<a href="metadatachapters.html" data-role="button">${TabChapters}</a>
<a href="metadatasubtitles.html" data-role="button">${TabSubtitles}</a>
<a href="metadataxbmc.html" data-role="button">${TabXbmcMetadata}</a>
<a href="metadataadvanced.html" data-role="button">${TabOther}</a>
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
</div>
<div class="tabContent">
@ -29,10 +29,10 @@
<br />
<div class="metadataReaders" style="margin-bottom: 2em; width: 75%;">
</div>
<div class="metadataFetchers" style="margin-bottom: 2em;">
</div>
<div class="metadataSavers" style="margin-bottom: 2em; width: 75%;">
</div>
<div class="metadataFetchers" style="margin-bottom: 2em;">
</div>
<div class="imageFetchers" style="margin-bottom: 2em;">
</div>

View file

@ -11,11 +11,11 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="metadata.html" data-role="button">${TabBasics}</a>
<a href="metadataimages.html" data-role="button">${TabAdvanced}</a>
<a href="metadataimages.html" data-role="button">${TabServices}</a>
<a href="metadatachapters.html" data-role="button">${TabChapters}</a>
<a href="#" class="ui-btn-active" data-role="button">${TabSubtitles}</a>
<a href="metadataxbmc.html" data-role="button">${TabXbmcMetadata}</a>
<a href="metadataadvanced.html" data-role="button">${TabOther}</a>
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
</div>
<form class="metadataSubtitlesForm">

View file

@ -11,11 +11,11 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="metadata.html" data-role="button">${TabBasics}</a>
<a href="metadataimages.html" data-role="button">${TabAdvanced}</a>
<a href="metadataimages.html" data-role="button">${TabServices}</a>
<a href="metadatachapters.html" data-role="button">${TabChapters}</a>
<a href="metadatasubtitles.html" data-role="button">${TabSubtitles}</a>
<a href="#" class="ui-btn-active" data-role="button">${TabXbmcMetadata}</a>
<a href="metadataadvanced.html" data-role="button">${TabOther}</a>
<a href="metadataadvanced.html" data-role="button">${TabAdvanced}</a>
</div>
<form class="metadataXbmcForm">
@ -43,6 +43,11 @@
<input id="chkSaveImagePaths" type="checkbox" data-mini="true" />
<div class="fieldDescription">${LabelXbmcMetadataSaveImagePathsHelp}</div>
</li>
<li>
<label for="chkEnableExtraThumbs">${LabelXbmcMetadataEnableExtraThumbs}</label>
<input id="chkEnableExtraThumbs" type="checkbox" data-mini="true" />
<div class="fieldDescription">${LabelXbmcMetadataEnableExtraThumbsHelp}</div>
</li>
<li>
<label for="chkEnablePathSubstitution">${LabelXbmcMetadataEnablePathSubstitution}</label>
<input id="chkEnablePathSubstitution" type="checkbox" data-mini="true" />

View file

@ -13,6 +13,7 @@
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="notificationsettings.html" data-role="button" class="ui-btn-active">${TabNotifications}</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="appsplayback.html" data-role="button">${TabResume}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>

View file

@ -13,6 +13,7 @@
<a href="advanced.html" data-role="button">${TabGeneral}</a>
<a href="#" data-role="button" class="ui-btn-active">${TabNotifications}</a>
<a href="advancedpaths.html" data-role="button">${TabPaths}</a>
<a href="appsplayback.html" data-role="button">${TabResume}</a>
<a href="advancedserversettings.html" data-role="button">${TabServer}</a>
<a href="encodingsettings.html" data-role="button">${TabTranscoding}</a>
</div>

View file

@ -3,7 +3,6 @@
function loadPage(page, config) {
$('#txtCachePath', page).val(config.CachePath || '');
$('#txtTranscodingTempPath', page).val(config.TranscodingTempPath || '');
$('#txtItemsByNamePath', page).val(config.ItemsByNamePath || '');
$('#txtMetadataPath', page).val(config.MetadataPath || '');
@ -46,26 +45,6 @@
});
});
$('#btnSelectTranscodingTempPath', page).on("click.selectDirectory", function () {
var picker = new DirectoryBrowser(page);
picker.show({
callback: function (path) {
if (path) {
$('#txtTranscodingTempPath', page).val(path);
}
picker.close();
},
header: Globalize.translate('HeaderSelectTranscodingPath'),
instruction: Globalize.translate('HeaderSelectTranscodingPathHelp')
});
});
$('#btnSelectIBNPath', page).on("click.selectDirectory", function () {
var picker = new DirectoryBrowser(page);
@ -119,7 +98,6 @@
ApiClient.getServerConfiguration().done(function (config) {
config.CachePath = $('#txtCachePath', form).val();
config.TranscodingTempPath = $('#txtTranscodingTempPath', form).val();
config.ItemsByNamePath = $('#txtItemsByNamePath', form).val();
config.MetadataPath = $('#txtMetadataPath', form).val();

View file

@ -1,48 +0,0 @@
(function ($, document, window) {
function loadPage(page, config) {
$('#chkMobileClients', page).checked(config.RequireMobileManualLogin).checkboxradio("refresh");
$('#chkOtherApps', page).checked(config.RequireNonMobileManualLogin).checkboxradio("refresh");
Dashboard.hideLoadingMsg();
}
$(document).on('pageshow', "#allUserSettingsPage", function () {
Dashboard.showLoadingMsg();
var page = this;
ApiClient.getServerConfiguration().done(function (config) {
loadPage(page, config);
});
});
function allUserSettingsPage() {
var self = this;
self.onSubmit = function () {
Dashboard.showLoadingMsg();
var form = this;
ApiClient.getServerConfiguration().done(function (config) {
config.RequireMobileManualLogin = $('#chkMobileClients', form).checked();
config.RequireNonMobileManualLogin = $('#chkOtherApps', form).checked();
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
});
// Disable default form submission
return false;
};
}
window.AllUserSettingsPage = new allUserSettingsPage();
})(jQuery, document, window);

View file

@ -1,41 +0,0 @@
(function ($, document, window) {
$(document).on('pageshow', "#appsWeatherPage", function () {
Dashboard.showLoadingMsg();
var page = this;
ApiClient.getServerConfiguration().done(function (config) {
$('#txtWeatherLocation', page).val(config.WeatherLocation);
$('#selectWeatherUnit', page).val(config.WeatherUnit).selectmenu("refresh");
$('input:first', page).focus();
Dashboard.hideLoadingMsg();
});
});
window.AppsWeatherPage = {
onSubmit: function () {
var form = this;
Dashboard.showLoadingMsg();
ApiClient.getServerConfiguration().done(function (config) {
config.WeatherLocation = $('#txtWeatherLocation', form).val();
config.WeatherUnit = $('#selectWeatherUnit', form).val();
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
});
// Disable default form submission
return false;
}
};
})($, document, window);

View file

@ -0,0 +1,45 @@
(function ($, document, window) {
var brandingConfigKey = "branding";
function loadPage(page, config) {
$('#txtLoginDisclaimer', page).val(config.LoginDisclaimer || '');
Dashboard.hideLoadingMsg();
}
$(document).on('pageshow', "#dashboardBrandingPage", function () {
Dashboard.showLoadingMsg();
var page = this;
ApiClient.getNamedConfiguration(brandingConfigKey).done(function (config) {
loadPage(page, config);
});
});
window.BrandingPage = {
onSubmit: function () {
Dashboard.showLoadingMsg();
var form = this;
ApiClient.getNamedConfiguration(brandingConfigKey).done(function (config) {
config.LoginDisclaimer = $('#txtLoginDisclaimer', form).val();
ApiClient.updateNamedConfiguration(brandingConfigKey, config).done(Dashboard.processServerConfigurationUpdateResult);
});
// Disable default form submission
return false;
}
};
})(jQuery, document, window);

View file

@ -117,7 +117,7 @@
return i.getAttribute('data-channelid');
});
ApiClient.updateNamedConfiguration(config).done("channels", Dashboard.processServerConfigurationUpdateResult);
ApiClient.updateNamedConfiguration("channels", config).done(Dashboard.processServerConfigurationUpdateResult);
});
// Disable default form submission

View file

@ -987,6 +987,13 @@
return false;
};
self.onRefreshFormSubmit = function() {
var page = $(this).parents('.page');
refreshFromPopupOptions(page);
return false;
};
self.onPersonInfoFormSubmit = function () {
var page = $(this).parents('.page');
@ -1197,31 +1204,65 @@
});
}
function performAdvancedRefresh(page) {
$('.popupAdvancedRefresh', page).popup('open');
$('#selectMetadataRefreshMode', page).val('all').selectmenu('refresh');
$('#selectImageRefreshMode', page).val('missing').selectmenu('refresh');
}
function refreshFromPopupOptions(page) {
var metadataRefreshMode = $('#selectMetadataRefreshMode', page).val();
var imageRefreshMode = $('#selectImageRefreshMode', page).val();
refreshWithOptions(page, {
Recursive: true,
ImageRefreshMode: imageRefreshMode == 'none' ? 'None' : 'FullRefresh',
MetadataRefreshMode: metadataRefreshMode == 'none' ? 'None' : 'FullRefresh',
ReplaceAllImages: imageRefreshMode == imageRefreshMode == 'all',
ReplaceAllMetadata: metadataRefreshMode == 'all'
});
$('.popupAdvancedRefresh', page).popup('close');
}
function refreshWithOptions(page, options) {
$('#refreshLoading', page).show();
$('#btnDelete', page).buttonEnabled(false);
$('#btnRefresh', page).buttonEnabled(false);
$('.btnSave', page).buttonEnabled(false);
ApiClient.refreshItem(currentItem.Id, options).done(function () {
reload(page);
});
}
$(document).on('pageinit', "#editItemMetadataPage", function () {
var page = this;
$('#btnRefresh', this).on('click', function () {
$('#btnDelete', page).buttonEnabled(false);
$('#btnRefresh', page).buttonEnabled(false);
$('.btnSave', page).buttonEnabled(false);
var metadataRefreshMode = $('#selectRefreshMode', page).val();
$('#refreshLoading', page).show();
if (metadataRefreshMode == 'advanced') {
performAdvancedRefresh(page);
} else {
var mode = $('#selectRefreshMode', page).val();
ApiClient.refreshItem(currentItem.Id, {
forced: mode == 'allandimages' || mode == 'all',
recursive: true,
replaceAllImages: mode == 'allandimages'
}).done(function () {
reload(page);
refreshWithOptions(page, {
Recursive: true,
ImageRefreshMode: 'FullRefresh',
MetadataRefreshMode: 'FullRefresh',
ReplaceAllImages: false,
ReplaceAllMetadata: metadataRefreshMode == 'all'
});
}
});
$('#btnIdentify', page).on('click', function () {

View file

@ -11,11 +11,36 @@
}).checkboxradio('refresh');
$('#txtDownMixAudioBoost', page).val(config.DownMixAudioBoost);
$('#txtTranscodingTempPath', page).val(config.TranscodingTempPath || '');
Dashboard.hideLoadingMsg();
}
$(document).on('pageshow', "#encodingSettingsPage", function () {
$(document).on('pageinit', "#encodingSettingsPage", function () {
var page = this;
$('#btnSelectTranscodingTempPath', page).on("click.selectDirectory", function () {
var picker = new DirectoryBrowser(page);
picker.show({
callback: function (path) {
if (path) {
$('#txtTranscodingTempPath', page).val(path);
}
picker.close();
},
header: Globalize.translate('HeaderSelectTranscodingPath'),
instruction: Globalize.translate('HeaderSelectTranscodingPathHelp')
});
});
}).on('pageshow', "#encodingSettingsPage", function () {
Dashboard.showLoadingMsg();
@ -41,6 +66,7 @@
config.EnableDebugEncodingLogging = $('#chkEnableDebugEncodingLogging', form).checked();
config.MediaEncodingQuality = $('.radioEncodingQuality:checked', form).val();
config.DownMixAudioBoost = $('#txtDownMixAudioBoost', form).val();
config.TranscodingTempPath = $('#txtTranscodingTempPath', form).val();
ApiClient.updateServerConfiguration(config).done(Dashboard.processServerConfigurationUpdateResult);
});

View file

@ -810,7 +810,7 @@
dataSrc = ' data-src="' + imgUrl + '"';
}
var progressHtml = options.showProgress === false ? '' : LibraryBrowser.getItemProgressBarHtml(item);
var progressHtml = options.showProgress === false || item.IsFolder ? '' : LibraryBrowser.getItemProgressBarHtml((item.Type == 'Recording' ? item : item.UserData));
html += '<div class="' + imageCssClass + '" style="' + style + '"' + dataSrc + '>';
@ -842,9 +842,9 @@
if (!options.overlayText) {
if (progressHtml) {
html += '<div class="posterItemTextOverlay posterItemProgressContainer">';
html += '<div class="posterItemTextOverlay">';
html += "<div class='posterItemProgress miniPosterItemProgress'>";
html += progressHtml;
html += progressHtml || "&nbsp;";
html += "</div>";
html += "</div>";
}
@ -903,7 +903,7 @@
if (options.overlayText) {
if (progressHtml) {
html += "<div class='posterItemText posterItemProgress posterItemProgressContainer'>";
html += "<div class='posterItemText posterItemProgress'>";
html += progressHtml || "&nbsp;";
html += "</div>";
}
@ -1094,15 +1094,12 @@
getPlayedIndicatorHtml: function (item) {
if (item.Type == "TvChannel") {
return '';
}
if (item.Type == "Series" || item.Type == "Season" || item.Type == "BoxSet" || item.MediaType == "Video" || item.MediaType == "Game" || item.MediaType == "Book") {
if (item.RecursiveUnplayedItemCount) {
return '<div class="unplayedIndicator">' + item.RecursiveUnplayedItemCount + '</div>';
if (item.UserData.UnplayedItemCount) {
return '<div class="playedIndicator">' + item.UserData.UnplayedItemCount + '</div>';
}
if (item.PlayedPercentage == 100 || (item.UserData && item.UserData.Played)) {
if (item.UserData.PlayedPercentage >= 100 || (item.UserData && item.UserData.Played)) {
return '<div class="playedIndicator"><div class="ui-icon-check ui-btn-icon-notext"></div></div>';
}
}
@ -1393,16 +1390,11 @@
return '<progress class="itemProgressBar recordingProgressBar" min="0" max="100" value="' + item.CompletionPercentage + '"></progress>';
}
if (item.UserData && item.UserData.PlaybackPositionTicks && item.RunTimeTicks) {
var tooltip = Dashboard.getDisplayTime(item.UserData.PlaybackPositionTicks) + " / " + Dashboard.getDisplayTime(item.RunTimeTicks);
var pct = (item.UserData.PlaybackPositionTicks / item.RunTimeTicks) * 100;
var pct = item.PlayedPercentage;
if (pct && pct < 100) {
return '<progress title="' + tooltip + '" class="itemProgressBar" min="0" max="100" value="' + pct + '"></progress>';
}
return '<progress class="itemProgressBar" min="0" max="100" value="' + pct + '"></progress>';
}
return null;
@ -1640,7 +1632,7 @@
html += "</a>";
}
var progressHtml = LibraryBrowser.getItemProgressBarHtml(item);
var progressHtml = item.IsFolder ? '' : LibraryBrowser.getItemProgressBarHtml((item.Type == 'Recording' ? item : item.UserData));
if (progressHtml) {
html += '<div class="detailImageProgressContainer">';

View file

@ -499,17 +499,27 @@
if (!$('.playedIndicator', posterItem).length) {
var html = '<div class="unplayedIndicator"><div class="ui-icon-check ui-btn-icon-notext"></div></div>';
$(html).insertAfter($('.posterItemOverlayTarget', posterItem));
$('<div class="playedIndicator"></div>').insertAfter($('.posterItemOverlayTarget', posterItem));
}
$('.playedIndicator', posterItem).html('<div class="ui-icon-check ui-btn-icon-notext"></div>');
$('.posterItemProgress', posterItem).remove();
}
else if (userData.UnplayedItemCount) {
if (!$('.playedIndicator', posterItem).length) {
$('<div class="playedIndicator"></div>').insertAfter($('.posterItemOverlayTarget', posterItem));
}
$('.playedIndicator', posterItem).html(userData.UnplayedItemCount);
}
else {
} else {
$('.playedIndicator', posterItem).remove();
}
// TODO: Handle progress bar
// $('.posterItemProgressContainer').remove();
var progressHtml = LibraryBrowser.getItemProgressBarHtml(userData);
$('.posterItemProgress', posterItem).html(progressHtml);
}
}
function onUserDataChanged(userData) {

View file

@ -1,23 +1,13 @@
var LoginPage = {
onPageInit: function () {
var page = this;
$("#popupLogin", page).popup({
afteropen: function (event, ui) {
$('#pw').focus();
}
});
},
onPageShow: function () {
Dashboard.showLoadingMsg();
var page = this;
var isLocalhost = window.location.toString().toLowerCase().indexOf('localhost') != -1;
var location = window.location.toString().toLowerCase();
var isLocalhost = location.indexOf('localhost') != -1 || location.indexOf('127.0.0.1') != -1;
if (isLocalhost) {
$('.localhostMessage', page).show();
@ -27,31 +17,38 @@
// Show all users on localhost
var promise1 = !isLocalhost ? ApiClient.getPublicUsers() : ApiClient.getUsers({ IsDisabled: false });
var promise2 = ApiClient.getServerConfiguration();
$.when(promise1, promise2).done(function (response1, response2) {
promise1.done(function (users) {
var users = response1[0];
var config = response2[0];
var showManualForm = config.RequireMobileManualLogin || !users.length;
var showManualForm = !users.length || !isLocalhost;
if (showManualForm) {
$('.visualLoginForm', page).hide();
$('#manualLoginForm', page).show();
$('#txtManualName', page).focus();
LoginPage.showManualForm(page);
} else {
$('.visualLoginForm', page).show();
$('#manualLoginForm', page).hide();
LoginPage.showVisualForm(page);
LoginPage.loadUserList(users);
}
Dashboard.hideLoadingMsg();
});
ApiClient.getJSON(ApiClient.getUrl('Branding/Configuration')).done(function (options) {
$('.disclaimer', page).html(options.LoginDisclaimer || '');
});
},
showManualForm: function (page) {
$('.visualLoginForm', page).hide();
$('#manualLoginForm', page).show();
$('#txtManualName', page).focus();
},
showVisualForm: function (page) {
$('.visualLoginForm', page).show();
$('#manualLoginForm', page).hide();
},
getLastSeenText: function (lastActivityDate) {
@ -126,21 +123,12 @@
loadUserList: function (users) {
var html = "";
var isLocalhost = window.location.toString().toLowerCase().indexOf('localhost') != -1;
for (var i = 0, length = users.length; i < length; i++) {
var user = users[i];
var linkId = "lnkUser" + i;
if (isLocalhost) {
html += "<a class='posterItem squarePosterItem' id='" + linkId + "' data-userid='" + user.Id + "' href='index.html?u=" + user.Id + "' data-ajax='false' \">";
}
else if (user.HasPassword) {
html += "<a class='posterItem squarePosterItem' id='" + linkId + "' data-userid='" + user.Id + "' href='#popupLogin' data-rel='popup' onclick='LoginPage.authenticatingLinkId=this.id;' \">";
} else {
html += "<a class='posterItem squarePosterItem' id='" + linkId + "' data-userid='" + user.Id + "' href='#' onclick='LoginPage.authenticateUserLink(this);' \">";
}
if (user.PrimaryImageTag) {
@ -178,18 +166,6 @@
},
onSubmit: function () {
$('#popupLogin', '#loginPage').popup('close');
var link = $('#' + LoginPage.authenticatingLinkId)[0];
LoginPage.authenticateUser(link.getAttribute('data-userid'), $('#pw', '#loginPage').val());
// Disable default form submission
return false;
},
onManualSubmit: function () {
LoginPage.authenticateUserByName($('#txtManualName', '#loginPage').val(), $('#txtManualPassword', '#loginPage').val());
@ -199,4 +175,4 @@
}
};
$(document).on('pageshow', "#loginPage", LoginPage.onPageShow).on('pageinit', "#loginPage", LoginPage.onPageInit);
$(document).on('pagebeforeshow', "#loginPage", LoginPage.onPageShow);

View file

@ -1,83 +1,48 @@
var LogPage = {
(function () {
onPageShow: function () {
$(document).on('pagebeforeshow', "#logPage", function () {
var page = this;
LogPage.startLine = 0;
ApiClient.getJSON(ApiClient.getUrl('System/Logs')).done(function (logs) {
$('#logContents', page).html('');
var html = '';
$(ApiClient).on("websocketmessage", LogPage.onWebSocketMessage).on("websocketopen", LogPage.onWebSocketConnectionChange).on("websocketerror", LogPage.onWebSocketConnectionChange).on("websocketclose", LogPage.onWebSocketConnectionChange);
html += '<ul data-role="listview" data-inset="true">';
LogPage.startInterval();
html += logs.map(function (log) {
ApiClient.getSystemInfo().done(function(systemInfo) {
var logUrl = ApiClient.getUrl('System/Logs/Log', {
name: log.Name
});
var logHtml = '<li><a href="' + logUrl + '" target="_blank">';
$('#logPath', page).html(systemInfo.LogPath);
logHtml += '<h3>';
logHtml += log.Name;
logHtml += '</h3>';
var date = parseISO8601Date(log.DateModified, { toLocal: true });
var text = date.toLocaleDateString();
text += ' ' + LiveTvHelpers.getDisplayTime(date);
logHtml += '<p>' + text + '</p>';
logHtml += '</li>';
return logHtml;
})
.join('');
html += '</ul>';
$('.serverLogs', page).html(html).trigger('create');
});
},
onPageHide: function () {
$(ApiClient).off("websocketmessage", LogPage.onWebSocketMessage).off("websocketopen", LogPage.onWebSocketConnectionChange).off("websocketerror", LogPage.onWebSocketConnectionChange).off("websocketclose", LogPage.onWebSocketConnectionChange);
});
LogPage.stopInterval();
},
startInterval: function () {
if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("LogFileStart", "0,2000");
}
},
stopInterval: function () {
if (ApiClient.isWebSocketOpen()) {
ApiClient.sendWebSocketMessage("LogFileStop");
}
},
onWebSocketConnectionChange: function () {
LogPage.stopInterval();
LogPage.startInterval();
},
onWebSocketMessage: function (e, msg) {
if (msg.MessageType == "LogFile") {
LogPage.appendLines(msg.Data);
}
},
appendLines: function (lines) {
if (!lines.length) {
return;
}
LogPage.startLine += lines.length;
lines = lines.join('\n') + '\n';
var elem = $('#logContents', $.mobile.activePage).append(lines)[0];
elem.style.height = (elem.scrollHeight) + 'px';
if ($('#chkAutoScroll', $.mobile.activePage).checked()) {
$('html, body').animate({ scrollTop: $(document).height() }, 'slow');
}
},
updateAutoScroll: function (value) {
var page = $.mobile.activePage;
$('#chkAutoScrollBottom', page).checked(value).checkboxradio('refresh');
$('#chkAutoScroll', page).checked(value).checkboxradio('refresh');
}
};
$(document).on('pageshow', "#logPage", LogPage.onPageShow).on('pagehide', "#logPage", LogPage.onPageHide);
})();

View file

@ -31,10 +31,8 @@
if (remoteFullscreen) {
exitFullScreenToWindow();
$('.hiddenOnIdle').removeClass("inactive");
} else {
enterFullScreen();
$('.hiddenOnIdle').addClass("inactive");
}
remoteFullscreen = !remoteFullscreen;
@ -835,7 +833,7 @@
}
// Some 1080- videos are reported as 1912?
if (maxAllowedWidth >= 1910) {
if (maxAllowedWidth >= 1900) {
options.push({ name: '1080p - 30Mbps', maxWidth: 1920, bitrate: 30000000 });
options.push({ name: '1080p - 25Mbps', maxWidth: 1920, bitrate: 25000000 });
options.push({ name: '1080p - 20Mbps', maxWidth: 1920, bitrate: 20000000 });
@ -845,13 +843,13 @@
options.push({ name: '1080p - 6Mbps', maxWidth: 1920, bitrate: 6000000 });
options.push({ name: '1080p - 5Mbps', maxWidth: 1920, bitrate: 5000000 });
}
else if (maxAllowedWidth >= 1270) {
else if (maxAllowedWidth >= 1260) {
options.push({ name: '720p - 10Mbps', maxWidth: 1280, bitrate: 10000000 });
options.push({ name: '720p - 8Mbps', maxWidth: 1280, bitrate: 8000000 });
options.push({ name: '720p - 6Mbps', maxWidth: 1280, bitrate: 6000000 });
options.push({ name: '720p - 5Mbps', maxWidth: 1280, bitrate: 5000000 });
}
else if (maxAllowedWidth >= 470) {
else if (maxAllowedWidth >= 460) {
options.push({ name: '480p - 4Mbps', maxWidth: 720, bitrate: 4000000 });
options.push({ name: '480p - 3.5Mbps', maxWidth: 720, bitrate: 3500000 });
options.push({ name: '480p - 3Mbps', maxWidth: 720, bitrate: 3000000 });
@ -860,7 +858,7 @@
options.push({ name: '480p - 1.5Mbps', maxWidth: 720, bitrate: 1500000 });
}
if (maxAllowedWidth >= 1270) {
if (maxAllowedWidth >= 1260) {
options.push({ name: '720p - 4Mbps', maxWidth: 1280, bitrate: 4000000 });
options.push({ name: '720p - 3Mbps', maxWidth: 1280, bitrate: 3000000 });
options.push({ name: '720p - 2Mbps', maxWidth: 1280, bitrate: 2000000 });
@ -898,18 +896,20 @@
function bindEventsForPlayback() {
$(document).on('webkitfullscreenchange.videoplayer mozfullscreenchange.videoplayer fullscreenchange.videoplayer', function (e) {
var hideElementsOnIdle = !$.browser.mobile;
if (hideElementsOnIdle) {
$('.itemVideo').off('mousemove.videoplayer keydown.videoplayer scroll.videoplayer', idleHandler);
$('.itemVideo').on('mousemove.videoplayer keydown.videoplayer scroll.videoplayer', idleHandler).trigger('mousemove');
}
$(document).on('webkitfullscreenchange.videoplayer mozfullscreenchange.videoplayer fullscreenchange.videoplayer', function (e) {
if (self.isFullScreen()) {
enterFullScreen();
idleState = true;
$('.itemVideo').on('mousemove.videoplayer keydown.videoplayer scroll.videoplayer', idleHandler).trigger('mousemove');
} else {
$('.hiddenOnIdle').removeClass("inactive");
exitFullScreenToWindow();
}
@ -938,11 +938,13 @@
return;
});
$(document.body).on("mousemove.videplayer", "#videoPlayer.fullscreenVideo #itemVideo", function () {
if (hideElementsOnIdle) {
$(document.body).on("mousemove.videplayer", "#itemVideo", function () {
idleHandler(this);
});
}
}
function unbindEventsForPlayback() {
@ -951,7 +953,7 @@
// Stop playback on browser back button nav
$(window).off("popstate.videoplayer");
$(document.body).off("mousemove.videplayer", "#videoPlayer.fullscreenVideo #itemVideo");
$(document.body).off("mousemove.videplayer");
$('.itemVideo').off('mousemove.videoplayer keydown.videoplayer scroll.videoplayer');
}
@ -1156,7 +1158,12 @@
volumeSlider.val(initialVolume).slider('refresh');
updateVolumeButtons(initialVolume);
video.on("volumechange.mediaplayerevent", function (e) {
video.on("loadstart.mediaplayerevent", function (e) {
Dashboard.showLoadingMsg();
}).on("volumechange.mediaplayerevent", function (e) {
var vol = this.volume;
@ -1182,6 +1189,8 @@
}).on("playing.mediaplayerevent", function (e) {
Dashboard.hideLoadingMsg();
$('#video-playButton', videoControls).hide();
$('#video-pauseButton', videoControls).show();
$("#play", videoElement).show().addClass("fadeOut");

View file

@ -360,7 +360,7 @@
return;
}
html += '<div class="ui-controlgroup-label" style="margin-bottom:0;padding-left:2px;">Preferred Local Metadata:</div>';
html += '<div class="ui-controlgroup-label" style="margin-bottom:0;padding-left:2px;">Metadata Readers:</div>';
html += '<ul data-role="listview" data-inset="true" data-mini="true" style="margin-top:.5em;margin-bottom:.5em;">';
for (var i = 0, length = plugins.length; i < length; i++) {

View file

@ -14,6 +14,7 @@
$('#selectReleaseDateFormat', page).val(config.ReleaseDateFormat).selectmenu('refresh');
$('#chkSaveImagePaths', page).checked(config.SaveImagePathsInNfo).checkboxradio('refresh');
$('#chkEnablePathSubstitution', page).checked(config.EnablePathSubstitution).checkboxradio('refresh');
$('#chkEnableExtraThumbs', page).checked(config.EnableExtraThumbsDuplication).checkboxradio('refresh');
Dashboard.hideLoadingMsg();
}
@ -47,6 +48,7 @@
config.ReleaseDateFormat = $('#selectReleaseDateFormat', form).val();
config.SaveImagePathsInNfo = $('#chkSaveImagePaths', form).checked();
config.EnablePathSubstitution = $('#chkEnablePathSubstitution', form).checked();
config.EnableExtraThumbsDuplication = $('#chkEnableExtraThumbs', form).checked();
ApiClient.updateNamedConfiguration(metadataKey, config).done(Dashboard.processServerConfigurationUpdateResult);
});

View file

@ -684,10 +684,6 @@ var Dashboard = {
divider: true,
href: "userprofiles.html",
selected: page.hasClass("userProfilesConfigurationPage") || (pageElem.id == "mediaLibraryPage" && getParameterByName('userId'))
}, {
name: "App Settings",
href: "appsplayback.html",
selected: page.hasClass("appsPage")
}, {
name: "Advanced",
divider: true,
@ -1190,23 +1186,29 @@ var Dashboard = {
}
};
if (!window.WebSocket) {
(function () {
if (!window.WebSocket) {
alert("This browser does not support web sockets. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.");
}
}
else if (!IsStorageEnabled()) {
else if (!IsStorageEnabled()) {
alert("This browser does not support local storage or is running in private mode. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.");
}
}
var ApiClient = MediaBrowser.ApiClient.create("Dashboard", window.dashboardVersion);
window.ApiClient = MediaBrowser.ApiClient.create("Dashboard", window.dashboardVersion);
$(ApiClient).on("websocketopen", Dashboard.onWebSocketOpened).on("websocketmessage", Dashboard.onWebSocketMessageReceived);
$(function () {
$(ApiClient).on("websocketopen", Dashboard.onWebSocketOpened)
.on("websocketmessage", Dashboard.onWebSocketMessageReceived);
ApiClient.currentUserId(Dashboard.getCurrentUserId());
})();
$(function () {
var videoPlayerHtml = '<div id="mediaPlayer" data-theme="b" class="ui-bar-b" style="display: none;">';
videoPlayerHtml += '<div class="videoBackdrop">';
@ -1321,7 +1323,6 @@ $(document).on('pagebeforeshow', ".page", function () {
var page = $(this);
var userId = Dashboard.getCurrentUserId();
ApiClient.currentUserId(userId);
if (userId) {

View file

@ -11,7 +11,7 @@
<div class="readOnlyContent">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="support.html" data-role="button" class="ui-btn-active">${TabGeneral}</a>
<a href="log.html" data-role="button">${TabLog}</a>
<a href="log.html" data-role="button">${TabLogs}</a>
<a href="supporter.html" data-role="button">${TabBecomeSupporter}</a>
<a href="supporterkey.html" data-role="button">${TabSupporterKey}</a>
<a href="about.html" data-role="button">${TabAbout}</a>

View file

@ -11,7 +11,7 @@
<div class="readOnlyContent">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="support.html" data-role="button">${TabGeneral}</a>
<a href="log.html" data-role="button">${TabLog}</a>
<a href="log.html" data-role="button">${TabLogs}</a>
<a href="supporter.html" data-role="button" class="ui-btn-active">${TabBecomeSupporter}</a>
<a href="supporterkey.html" data-role="button">${TabSupporterKey}</a>
<a href="about.html" data-role="button">${TabAbout}</a>

View file

@ -11,7 +11,7 @@
<div class="readOnlyContent">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="support.html" data-role="button">${TabGeneral}</a>
<a href="log.html" data-role="button">${TabLog}</a>
<a href="log.html" data-role="button">${TabLogs}</a>
<a href="supporter.html" data-role="button">${TabBecomeSupporter}</a>
<a href="supporterkey.html" data-role="button" class="ui-btn-active">${TabSupporterKey}</a>
<a href="about.html" data-role="button">${TabAbout}</a>

View file

@ -10,7 +10,6 @@
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="userprofiles.html" data-role="button" class="ui-btn-active">${TabProfiles}</a>
<a href="allusersettings.html" data-role="button">${TabSecurity}</a>
</div>