mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update xbox one profile
This commit is contained in:
parent
f515eab01b
commit
b28e9b73bb
24 changed files with 624 additions and 532 deletions
|
@ -9,7 +9,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav movieTabs">
|
<div class="libraryViewNav scopedLibraryViewNav movieTabs">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="#" class="ui-btn-active">${TabCollections}</a>
|
<a href="#" class="ui-btn-active">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
|
|
@ -238,11 +238,6 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardImage canvas {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.coveredCardImage {
|
.coveredCardImage {
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,14 +114,6 @@
|
||||||
background-image: url("images/icons/subtitles.png");
|
background-image: url("images/icons/subtitles.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-icon-wireless:after {
|
|
||||||
background-image: url("images/icons/wireless.png");
|
|
||||||
}
|
|
||||||
/* Fallback */
|
|
||||||
.ui-nosvg .ui-icon-wireless:after {
|
|
||||||
background-image: url("images/icons/wireless.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-icon-expand:after {
|
.ui-icon-expand:after {
|
||||||
background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%20Tiny%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11-tiny.dtd%22%3E%3Csvg%20version%3D%221.1%22%20baseProfile%3D%22tiny%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%20500%20500%22%20xml%3Aspace%3D%22preserve%22%3E%20%3Cpath%20d%3D%22M210.659%20294.643q0%203.627-2.79%206.417l-92.634%2092.634%2040.179%2040.179q5.301%205.301%205.301%2012.556t-5.301%2012.556-12.556%205.301h-125q-7.254%200-12.556-5.301t-5.301-12.556v-125q0-7.254%205.301-12.556t12.556-5.301%2012.556%205.301l40.179%2040.179%2092.634-92.634q2.79-2.79%206.417-2.79t6.417%202.79l31.808%2031.808q2.79%202.79%202.79%206.417zM428.571%2053.571v125q0%207.254-5.301%2012.556t-12.556%205.301-12.556-5.301l-40.179-40.179-92.634%2092.634q-2.79%202.79-6.417%202.79t-6.417-2.79l-31.808-31.808q-2.79-2.79-2.79-6.417t2.79-6.417l92.634-92.634-40.179-40.179q-5.301-5.301-5.301-12.556t5.301-12.556%2012.556-5.301h125q7.254%200%2012.556%205.301t5.301%2012.556z%22%20fill%3D%22%23ffffff%22%20%2F%3E%3C%2Fsvg%3E");
|
background-image: url("data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%20Tiny%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11-tiny.dtd%22%3E%3Csvg%20version%3D%221.1%22%20baseProfile%3D%22tiny%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2216px%22%20height%3D%2216px%22%20viewBox%3D%220%200%20500%20500%22%20xml%3Aspace%3D%22preserve%22%3E%20%3Cpath%20d%3D%22M210.659%20294.643q0%203.627-2.79%206.417l-92.634%2092.634%2040.179%2040.179q5.301%205.301%205.301%2012.556t-5.301%2012.556-12.556%205.301h-125q-7.254%200-12.556-5.301t-5.301-12.556v-125q0-7.254%205.301-12.556t12.556-5.301%2012.556%205.301l40.179%2040.179%2092.634-92.634q2.79-2.79%206.417-2.79t6.417%202.79l31.808%2031.808q2.79%202.79%202.79%206.417zM428.571%2053.571v125q0%207.254-5.301%2012.556t-12.556%205.301-12.556-5.301l-40.179-40.179-92.634%2092.634q-2.79%202.79-6.417%202.79t-6.417-2.79l-31.808-31.808q-2.79-2.79-2.79-6.417t2.79-6.417l92.634-92.634-40.179-40.179q-5.301-5.301-5.301-12.556t5.301-12.556%2012.556-5.301h125q7.254%200%2012.556%205.301t5.301%2012.556z%22%20fill%3D%22%23ffffff%22%20%2F%3E%3C%2Fsvg%3E");
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 345 B |
|
@ -1443,14 +1443,14 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
||||||
}
|
}
|
||||||
|
|
||||||
.userProfileSettingsForm .detailSectionContent {
|
.userProfileSettingsForm .detailSectionContent {
|
||||||
padding: 0 1em;
|
padding: 0 .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width: 700px) {
|
@media all and (max-width: 700px) {
|
||||||
|
|
||||||
.userProfileSettingsForm .detailSection {
|
.userProfileSettingsForm .detailSection {
|
||||||
margin-left: 1em;
|
margin-left: .5em;
|
||||||
margin-right: 1em;
|
margin-right: .5em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1505,3 +1505,6 @@ span.itemCommunityRating:not(:empty) + .userDataIcons {
|
||||||
.homeLatestTabDisabled .homeLatestTab {
|
.homeLatestTabDisabled .homeLatestTab {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
.movieTrailersTabDisabled .movieTrailersTab {
|
||||||
|
display: none !important;
|
||||||
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
.libraryPage {
|
.libraryPage {
|
||||||
padding-top: 49px !important;
|
padding-top: 50px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryPage:not(.metadataEditorPage):not(.noSecondaryNavPage) {
|
.libraryPage:not(.metadataEditorPage):not(.noSecondaryNavPage) {
|
||||||
padding-top: 99px !important;
|
padding-top: 98px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryMenuDivider {
|
.libraryMenuDivider {
|
||||||
|
@ -118,9 +118,7 @@
|
||||||
left: 0;
|
left: 0;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
top: 0;
|
top: 0;
|
||||||
border-top: 0;
|
border: 0;
|
||||||
border-left: 0;
|
|
||||||
border-right: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav {
|
.libraryViewNav {
|
||||||
|
@ -133,6 +131,7 @@
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
text-transform: uppercase;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
padding: 0 0 0;
|
padding: 0 0 0;
|
||||||
overflow-x: scroll;
|
overflow-x: scroll;
|
||||||
|
@ -141,6 +140,13 @@
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bottomLibraryViewNav {
|
||||||
|
top: initial;
|
||||||
|
bottom: 0;
|
||||||
|
border-top: 1px solid #444;
|
||||||
|
height: 51px;
|
||||||
|
}
|
||||||
|
|
||||||
.viewMenuBar {
|
.viewMenuBar {
|
||||||
background-color: #111;
|
background-color: #111;
|
||||||
}
|
}
|
||||||
|
@ -232,9 +238,13 @@
|
||||||
border-bottom: 5px solid transparent;
|
border-bottom: 5px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.libraryViewNav a:not(.ui-btn-active):hover {
|
.bottomLibraryViewNav a {
|
||||||
color: #2ad !important;
|
padding: 12px 0 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.libraryViewNav a:not(.ui-btn-active):hover {
|
||||||
|
color: #2ad !important;
|
||||||
|
}
|
||||||
|
|
||||||
.libraryViewNavLinkContent {
|
.libraryViewNavLinkContent {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
|
@ -176,7 +176,7 @@ h1 a:hover {
|
||||||
transform: translateY(0%);
|
transform: translateY(0%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.headroom--unpinned {
|
.headroom--unpinned:not(.headroomDisabled) {
|
||||||
-webkit-transform: translateY(-100%);
|
-webkit-transform: translateY(-100%);
|
||||||
transform: translateY(-100%);
|
transform: translateY(-100%);
|
||||||
}
|
}
|
||||||
|
@ -613,9 +613,9 @@ h1 .imageLink {
|
||||||
/* Footer */
|
/* Footer */
|
||||||
#footer {
|
#footer {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: -2px;
|
bottom: 0;
|
||||||
left: -2px;
|
left: 0;
|
||||||
right: -2px;
|
right: 0;
|
||||||
/* Above everything, except for the video player and popup overlays */
|
/* Above everything, except for the video player and popup overlays */
|
||||||
z-index: 1097;
|
z-index: 1097;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
@ -623,6 +623,10 @@ h1 .imageLink {
|
||||||
background-color: rgba(26,26,26,.9);
|
background-color: rgba(26,26,26,.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.footerOverBottomTabs {
|
||||||
|
bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
.footerNotification {
|
.footerNotification {
|
||||||
padding: .75em 1em;
|
padding: .75em 1em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="moviegenres.html" class="ui-btn-active">${TabGenres}</a>
|
<a href="moviegenres.html" class="ui-btn-active">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="ui-btn-active moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="ui-btn-active moviePeopleTab">${TabPeople}</a>
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html" class="lnkMovies">${TabMovies}</a>
|
<a href="movies.html" class="lnkMovies">${TabMovies}</a>
|
||||||
<a href="movietrailers.html" class="lnkMovieTrailers">${TabTrailers}</a>
|
<a href="movietrailers.html" class="lnkMovieTrailers movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies" class="lnkCollections">${TabCollections}</a>
|
<a href="collections.html?context=movies" class="lnkCollections">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="#" class="ui-btn-active">${TabGenres}</a>
|
<a href="#" class="ui-btn-active">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="#" class="ui-btn-active">${TabPeople}</a>
|
<a href="#" class="ui-btn-active">${TabPeople}</a>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="#" class="ui-btn-active">${TabMovies}</a>
|
<a href="#" class="ui-btn-active">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="#" class="ui-btn-active">${TabSuggestions}</a>
|
<a href="#" class="ui-btn-active">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<div class="libraryViewNav scopedLibraryViewNav">
|
<div class="libraryViewNav scopedLibraryViewNav">
|
||||||
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
<a href="moviesrecommended.html">${TabSuggestions}</a>
|
||||||
<a href="movies.html">${TabMovies}</a>
|
<a href="movies.html">${TabMovies}</a>
|
||||||
<a href="movietrailers.html">${TabTrailers}</a>
|
<a href="movietrailers.html" class="movieTrailersTab">${TabTrailers}</a>
|
||||||
<a href="collections.html?context=movies">${TabCollections}</a>
|
<a href="collections.html?context=movies">${TabCollections}</a>
|
||||||
<a href="moviegenres.html">${TabGenres}</a>
|
<a href="moviegenres.html">${TabGenres}</a>
|
||||||
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
<a href="moviepeople.html" class="moviePeopleTab">${TabPeople}</a>
|
||||||
|
|
|
@ -13,142 +13,144 @@
|
||||||
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
|
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br />
|
<div data-role="content">
|
||||||
<form class="displayPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
|
<br />
|
||||||
|
<form class="displayPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
|
||||||
|
|
||||||
<div class="detailSection">
|
<div class="detailSection">
|
||||||
<div class="detailSectionHeader">
|
<div class="detailSectionHeader">
|
||||||
${HeaderMyViews}
|
${HeaderMyViews}
|
||||||
</div>
|
|
||||||
<div class="detailSectionContent">
|
|
||||||
<div>
|
|
||||||
<p>${LabelSelectFolderGroups}</p>
|
|
||||||
<div class="folderGroupList"></div>
|
|
||||||
<div class="fieldDescription">${LabelSelectFolderGroupsHelp}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<div class="detailSectionContent">
|
||||||
|
|
||||||
<div>
|
|
||||||
<div data-role="controlgroup">
|
|
||||||
<label for="chkDisplayCollectionView">${LabelDisplayCollectionsView}</label>
|
|
||||||
<input id="chkDisplayCollectionView" type="checkbox" />
|
|
||||||
</div>
|
|
||||||
<div class="fieldDescription">${LabelDisplayCollectionsViewHelp}</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br />
|
|
||||||
<div data-role="controlgroup">
|
|
||||||
<label for="chkDisplayFolderView">${LabelDisplayFoldersView}</label>
|
|
||||||
<input id="chkDisplayFolderView" type="checkbox" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br />
|
|
||||||
<div data-role="collapsible">
|
|
||||||
<h2>${HeaderChannels}</h2>
|
|
||||||
<div>
|
<div>
|
||||||
<p>${LabelGroupChannelsIntoViews}</p>
|
<p>${LabelSelectFolderGroups}</p>
|
||||||
<div class="channelGroupList"></div>
|
<div class="folderGroupList"></div>
|
||||||
<div class="fieldDescription">${LabelGroupChannelsIntoViewsHelp}</div>
|
<div class="fieldDescription">${LabelSelectFolderGroupsHelp}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<br />
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="detailSection viewStylesSection" style="display:none;">
|
|
||||||
<div class="detailSectionHeader">
|
|
||||||
${HeaderViewStyles}
|
|
||||||
</div>
|
|
||||||
<div class="detailSectionContent">
|
|
||||||
<p>${LabelSelectViewStyles}</p>
|
|
||||||
<div class="viewStylesList">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="fieldDescription">${LabelSelectViewStylesHelp}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="detailSection">
|
|
||||||
<div class="detailSectionHeader">
|
|
||||||
${HeaderViewOrder}
|
|
||||||
</div>
|
|
||||||
<div class="detailSectionContent">
|
|
||||||
<p>${LabelSelectUserViewOrder}</p>
|
|
||||||
<div class="viewOrderList">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="detailSection">
|
|
||||||
<div class="detailSectionHeader">
|
|
||||||
${HeaderLatestItems}
|
|
||||||
</div>
|
|
||||||
<div class="detailSectionContent">
|
|
||||||
<p>${LabelSelectLastestItemsFolders}</p>
|
|
||||||
<div class="latestItemsList">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br />
|
|
||||||
<div data-role="controlgroup">
|
|
||||||
<label for="chkHidePlayedFromLatest">${OptionHideWatchedContentFromLatestMedia}</label>
|
|
||||||
<input id="chkHidePlayedFromLatest" type="checkbox" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="detailSection">
|
|
||||||
<div class="detailSectionHeader">
|
|
||||||
${HeaderOtherDisplaySettings}
|
|
||||||
</div>
|
|
||||||
<div class="detailSectionContent">
|
|
||||||
<br />
|
|
||||||
<div data-role="controlgroup">
|
|
||||||
<div>
|
<div>
|
||||||
<input type="checkbox" id="chkDisplayMissingEpisodes" />
|
<div data-role="controlgroup">
|
||||||
<label for="chkDisplayMissingEpisodes">${LabelDisplayMissingEpisodesWithinSeasons}</label>
|
<label for="chkDisplayCollectionView">${LabelDisplayCollectionsView}</label>
|
||||||
|
<input id="chkDisplayCollectionView" type="checkbox" />
|
||||||
|
</div>
|
||||||
|
<div class="fieldDescription">${LabelDisplayCollectionsViewHelp}</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<input type="checkbox" id="chkDisplayUnairedEpisodes" />
|
<br />
|
||||||
<label for="chkDisplayUnairedEpisodes">${LabelUnairedMissingEpisodesWithinSeasons}</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<div data-role="controlgroup">
|
<div data-role="controlgroup">
|
||||||
<input type="checkbox" id="chkDisplayTrailersWithinMovieSuggestions" />
|
<label for="chkDisplayFolderView">${LabelDisplayFoldersView}</label>
|
||||||
<label for="chkDisplayTrailersWithinMovieSuggestions">${LabelDisplayTrailersWithinMovieSuggestions}</label>
|
<input id="chkDisplayFolderView" type="checkbox" />
|
||||||
</div>
|
</div>
|
||||||
<div class="fieldDescription">${LabelDisplayTrailersWithinMovieSuggestionsHelp}</div>
|
|
||||||
</div>
|
<br />
|
||||||
<br />
|
<div data-role="collapsible">
|
||||||
<div>
|
<h2>${HeaderChannels}</h2>
|
||||||
<div data-role="controlgroup">
|
<div>
|
||||||
<input type="checkbox" id="chkGroupMoviesIntoCollections" />
|
<p>${LabelGroupChannelsIntoViews}</p>
|
||||||
<label for="chkGroupMoviesIntoCollections">${LabelGroupMoviesIntoCollections}</label>
|
<div class="channelGroupList"></div>
|
||||||
|
<div class="fieldDescription">${LabelGroupChannelsIntoViewsHelp}</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="fieldDescription">${LabelGroupMoviesIntoCollectionsHelp}</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
<div class="detailSection viewStylesSection" style="display:none;">
|
||||||
|
<div class="detailSectionHeader">
|
||||||
|
${HeaderViewStyles}
|
||||||
|
</div>
|
||||||
|
<div class="detailSectionContent">
|
||||||
|
<p>${LabelSelectViewStyles}</p>
|
||||||
|
<div class="viewStylesList">
|
||||||
|
|
||||||
<ul data-role="listview" class="ulForm">
|
</div>
|
||||||
<li>
|
<div class="fieldDescription">${LabelSelectViewStylesHelp}</div>
|
||||||
<button type="submit" data-theme="a" data-icon="check" data-mini="true">
|
</div>
|
||||||
${ButtonOk}
|
</div>
|
||||||
</button>
|
|
||||||
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true">
|
<div class="detailSection">
|
||||||
${ButtonCancel}
|
<div class="detailSectionHeader">
|
||||||
</button>
|
${HeaderViewOrder}
|
||||||
</li>
|
</div>
|
||||||
</ul>
|
<div class="detailSectionContent">
|
||||||
</form>
|
<p>${LabelSelectUserViewOrder}</p>
|
||||||
<script type="text/javascript">
|
<div class="viewOrderList">
|
||||||
$('.displayPreferencesForm').off('submit', DisplayPreferencesPage.onSubmit).on('submit', DisplayPreferencesPage.onSubmit);
|
|
||||||
</script>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="detailSection">
|
||||||
|
<div class="detailSectionHeader">
|
||||||
|
${HeaderLatestItems}
|
||||||
|
</div>
|
||||||
|
<div class="detailSectionContent">
|
||||||
|
<p>${LabelSelectLastestItemsFolders}</p>
|
||||||
|
<div class="latestItemsList">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div data-role="controlgroup">
|
||||||
|
<label for="chkHidePlayedFromLatest">${OptionHideWatchedContentFromLatestMedia}</label>
|
||||||
|
<input id="chkHidePlayedFromLatest" type="checkbox" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="detailSection">
|
||||||
|
<div class="detailSectionHeader">
|
||||||
|
${HeaderOtherDisplaySettings}
|
||||||
|
</div>
|
||||||
|
<div class="detailSectionContent">
|
||||||
|
<br />
|
||||||
|
<div data-role="controlgroup">
|
||||||
|
<div>
|
||||||
|
<input type="checkbox" id="chkDisplayMissingEpisodes" />
|
||||||
|
<label for="chkDisplayMissingEpisodes">${LabelDisplayMissingEpisodesWithinSeasons}</label>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="checkbox" id="chkDisplayUnairedEpisodes" />
|
||||||
|
<label for="chkDisplayUnairedEpisodes">${LabelUnairedMissingEpisodesWithinSeasons}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<div data-role="controlgroup">
|
||||||
|
<input type="checkbox" id="chkDisplayTrailersWithinMovieSuggestions" />
|
||||||
|
<label for="chkDisplayTrailersWithinMovieSuggestions">${LabelDisplayTrailersWithinMovieSuggestions}</label>
|
||||||
|
</div>
|
||||||
|
<div class="fieldDescription">${LabelDisplayTrailersWithinMovieSuggestionsHelp}</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<div data-role="controlgroup">
|
||||||
|
<input type="checkbox" id="chkGroupMoviesIntoCollections" />
|
||||||
|
<label for="chkGroupMoviesIntoCollections">${LabelGroupMoviesIntoCollections}</label>
|
||||||
|
</div>
|
||||||
|
<div class="fieldDescription">${LabelGroupMoviesIntoCollectionsHelp}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul data-role="listview" class="ulForm">
|
||||||
|
<li>
|
||||||
|
<button type="submit" data-theme="a" data-icon="check">
|
||||||
|
${ButtonOk}
|
||||||
|
</button>
|
||||||
|
<button type="button" onclick="history.back();" data-icon="delete">
|
||||||
|
${ButtonCancel}
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</form>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('.displayPreferencesForm').off('submit', DisplayPreferencesPage.onSubmit).on('submit', DisplayPreferencesPage.onSubmit);
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -12,78 +12,80 @@
|
||||||
<a href="#" class="lnkMyProfile">${TabProfile}</a>
|
<a href="#" class="lnkMyProfile">${TabProfile}</a>
|
||||||
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
|
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
|
||||||
</div>
|
</div>
|
||||||
|
<div data-role="content">
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<form style="margin: 0 auto;" class="languagePreferencesForm userProfileSettingsForm">
|
<form style="margin: 0 auto;" class="languagePreferencesForm userProfileSettingsForm">
|
||||||
|
|
||||||
|
|
||||||
<div class="detailSection">
|
<div class="detailSection">
|
||||||
<div class="detailSectionHeader">
|
<div class="detailSectionHeader">
|
||||||
${HeaderLanguagePreferences}
|
${HeaderLanguagePreferences}
|
||||||
|
</div>
|
||||||
|
<div class="detailSectionContent">
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectAudioLanguage">${LabelAudioLanguagePreference}</label>
|
||||||
|
<select id="selectAudioLanguage" data-mini="true"></select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div data-role="controlgroup">
|
||||||
|
<input type="checkbox" id="chkPlayDefaultAudioTrack" />
|
||||||
|
<label for="chkPlayDefaultAudioTrack">${LabelPlayDefaultAudioTrack}</label>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectSubtitleLanguage">${LabelSubtitleLanguagePreference}</label>
|
||||||
|
<select id="selectSubtitleLanguage" data-mini="true"></select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectSubtitlePlaybackMode">${LabelSubtitlePlaybackMode}</label>
|
||||||
|
<select id="selectSubtitlePlaybackMode" data-mini="true">
|
||||||
|
<option value="Default">${OptionDefaultSubtitles}</option>
|
||||||
|
<option value="OnlyForced">${OptionOnlyForcedSubtitles}</option>
|
||||||
|
<option value="Always">${OptionAlwaysPlaySubtitles}</option>
|
||||||
|
<option value="None">${OptionNoSubtitles}</option>
|
||||||
|
</select>
|
||||||
|
<div class="fieldDescription subtitlesDefaultHelp subtitlesHelp" style="display: none;">${OptionDefaultSubtitlesHelp}</div>
|
||||||
|
<div class="fieldDescription subtitlesAlwaysHelp subtitlesHelp" style="display: none;">${OptionAlwaysPlaySubtitlesHelp}</div>
|
||||||
|
<div class="fieldDescription subtitlesOnlyForcedHelp subtitlesHelp" style="display: none;">${OptionOnlyForcedSubtitlesHelp}</div>
|
||||||
|
<div class="fieldDescription subtitlesNoneHelp subtitlesHelp" style="display: none;">${OptionNoSubtitlesHelp}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="detailSectionContent">
|
<div class="detailSection cinemaModeOptions" style="display:none;">
|
||||||
<br />
|
<div class="detailSectionHeader">
|
||||||
<div>
|
${HeaderCinemaMode}
|
||||||
<label for="selectAudioLanguage">${LabelAudioLanguagePreference}</label>
|
|
||||||
<select id="selectAudioLanguage" data-mini="true"></select>
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<div class="detailSectionContent">
|
||||||
<div data-role="controlgroup">
|
<br />
|
||||||
<input type="checkbox" id="chkPlayDefaultAudioTrack" />
|
<div data-role="controlgroup">
|
||||||
<label for="chkPlayDefaultAudioTrack">${LabelPlayDefaultAudioTrack}</label>
|
<input type="checkbox" id="chkEnableCinemaMode" />
|
||||||
</div>
|
<label for="chkEnableCinemaMode">${LabelEnableCinemaMode}</label>
|
||||||
<br />
|
</div>
|
||||||
<div>
|
|
||||||
<label for="selectSubtitleLanguage">${LabelSubtitleLanguagePreference}</label>
|
<div class="fieldDescription">${CinemaModeConfigurationHelp}</div>
|
||||||
<select id="selectSubtitleLanguage" data-mini="true"></select>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<label for="selectSubtitlePlaybackMode">${LabelSubtitlePlaybackMode}</label>
|
|
||||||
<select id="selectSubtitlePlaybackMode" data-mini="true">
|
|
||||||
<option value="Default">${OptionDefaultSubtitles}</option>
|
|
||||||
<option value="OnlyForced">${OptionOnlyForcedSubtitles}</option>
|
|
||||||
<option value="Always">${OptionAlwaysPlaySubtitles}</option>
|
|
||||||
<option value="None">${OptionNoSubtitles}</option>
|
|
||||||
</select>
|
|
||||||
<div class="fieldDescription subtitlesDefaultHelp subtitlesHelp" style="display: none;">${OptionDefaultSubtitlesHelp}</div>
|
|
||||||
<div class="fieldDescription subtitlesAlwaysHelp subtitlesHelp" style="display: none;">${OptionAlwaysPlaySubtitlesHelp}</div>
|
|
||||||
<div class="fieldDescription subtitlesOnlyForcedHelp subtitlesHelp" style="display: none;">${OptionOnlyForcedSubtitlesHelp}</div>
|
|
||||||
<div class="fieldDescription subtitlesNoneHelp subtitlesHelp" style="display: none;">${OptionNoSubtitlesHelp}</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
<ul data-role="listview" class="ulForm">
|
||||||
<div class="detailSection cinemaModeOptions" style="display:none;">
|
<li>
|
||||||
<div class="detailSectionHeader">
|
<button type="submit" data-theme="a" data-icon="check">
|
||||||
${HeaderCinemaMode}
|
${ButtonOk}
|
||||||
</div>
|
</button>
|
||||||
<div class="detailSectionContent">
|
<button type="button" onclick="history.back();" data-icon="delete">
|
||||||
<br />
|
${ButtonCancel}
|
||||||
<div data-role="controlgroup">
|
</button>
|
||||||
<input type="checkbox" id="chkEnableCinemaMode" />
|
</li>
|
||||||
<label for="chkEnableCinemaMode">${LabelEnableCinemaMode}</label>
|
</ul>
|
||||||
</div>
|
</form>
|
||||||
|
<script type="text/javascript">
|
||||||
<div class="fieldDescription">${CinemaModeConfigurationHelp}</div>
|
$('.languagePreferencesForm').off('submit', LanguagePreferencesPage.onSubmit).on('submit', LanguagePreferencesPage.onSubmit);
|
||||||
</div>
|
</script>
|
||||||
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<ul data-role="listview" class="ulForm">
|
|
||||||
<li>
|
|
||||||
<button type="submit" data-theme="a" data-icon="check" data-mini="true">
|
|
||||||
${ButtonOk}
|
|
||||||
</button>
|
|
||||||
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true">
|
|
||||||
${ButtonCancel}
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</form>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$('.languagePreferencesForm').off('submit', LanguagePreferencesPage.onSubmit).on('submit', LanguagePreferencesPage.onSubmit);
|
|
||||||
</script>
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -13,188 +13,190 @@
|
||||||
<a href="#" class="ui-btn-active lnkWebClientPreferences">${TabAppSettings}</a>
|
<a href="#" class="ui-btn-active lnkWebClientPreferences">${TabAppSettings}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br />
|
<div data-role="content">
|
||||||
<form class="webClientPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
|
<br />
|
||||||
|
<form class="webClientPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
|
||||||
|
|
||||||
<div class="detailSection">
|
<div class="detailSection homePageConfigurationSection" style="display:none;">
|
||||||
<div class="detailSectionHeader">
|
<div class="detailSectionHeader">
|
||||||
${HeaderHomePage}
|
${HeaderHomePage}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="detailSectionContent">
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectHomeSection1">${LabelHomePageSection1}</label>
|
||||||
|
<select id="selectHomeSection1" data-mini="true">
|
||||||
|
<option value="">${OptionAuto}</option>
|
||||||
|
<option value="latestmedia">${OptionLatestMedia}</option>
|
||||||
|
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
||||||
|
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
||||||
|
<option value="librarytiles">${OptionMyMedia}</option>
|
||||||
|
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
||||||
|
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
||||||
|
<option value="resume">${OptionResumablemedia}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectHomeSection2">${LabelHomePageSection2}</label>
|
||||||
|
<select id="selectHomeSection2" data-mini="true">
|
||||||
|
<option value="">${OptionAuto}</option>
|
||||||
|
<option value="latestmedia">${OptionLatestMedia}</option>
|
||||||
|
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
||||||
|
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
||||||
|
<option value="librarytiles">${OptionMyMedia}</option>
|
||||||
|
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
||||||
|
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
||||||
|
<option value="resume">${OptionResumablemedia}</option>
|
||||||
|
<option value="none">${OptionNone}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectHomeSection3">${LabelHomePageSection3}</label>
|
||||||
|
<select id="selectHomeSection3" data-mini="true">
|
||||||
|
<option value="">${OptionAuto}</option>
|
||||||
|
<option value="latestmedia">${OptionLatestMedia}</option>
|
||||||
|
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
||||||
|
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
||||||
|
<option value="librarytiles">${OptionMyMedia}</option>
|
||||||
|
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
||||||
|
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
||||||
|
<option value="resume">${OptionResumablemedia}</option>
|
||||||
|
<option value="none">${OptionNone}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectHomeSection4">${LabelHomePageSection4}</label>
|
||||||
|
<select id="selectHomeSection4" data-mini="true">
|
||||||
|
<option value="">${OptionAuto}</option>
|
||||||
|
<option value="latestmedia">${OptionLatestMedia}</option>
|
||||||
|
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
||||||
|
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
||||||
|
<option value="librarytiles">${OptionMyMedia}</option>
|
||||||
|
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
||||||
|
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
||||||
|
<option value="resume">${OptionResumablemedia}</option>
|
||||||
|
<option value="none">${OptionNone}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="chkEnableLibraryTileNames">${LabelShowLibraryTileNames}</label>
|
||||||
|
<input type="checkbox" id="chkEnableLibraryTileNames" data-mini="true">
|
||||||
|
<div class="fieldDescription">${LabelShowLibraryTileNamesHelp}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="detailSectionContent">
|
<div class="detailSection">
|
||||||
<br />
|
<div class="detailSectionHeader">
|
||||||
<div>
|
${HeaderSettingsForThisDevice}
|
||||||
<label for="selectHomeSection1">${LabelHomePageSection1}</label>
|
|
||||||
<select id="selectHomeSection1" data-mini="true">
|
|
||||||
<option value="">${OptionAuto}</option>
|
|
||||||
<option value="latestmedia">${OptionLatestMedia}</option>
|
|
||||||
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
|
||||||
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
|
||||||
<option value="librarytiles">${OptionMyMedia}</option>
|
|
||||||
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
|
||||||
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
|
||||||
<option value="resume">${OptionResumablemedia}</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<div class="detailSectionContent">
|
||||||
<div>
|
<br />
|
||||||
<label for="selectHomeSection2">${LabelHomePageSection2}</label>
|
<div>
|
||||||
<select id="selectHomeSection2" data-mini="true">
|
<label for="selectMaxBitrate">${LabelMaxStreamingBitrate}</label>
|
||||||
<option value="">${OptionAuto}</option>
|
<select id="selectMaxBitrate" data-mini="true">
|
||||||
<option value="latestmedia">${OptionLatestMedia}</option>
|
<option value="30000000">30Mbps</option>
|
||||||
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
<option value="25000000">25Mbps</option>
|
||||||
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
<option value="20000000">20Mbps</option>
|
||||||
<option value="librarytiles">${OptionMyMedia}</option>
|
<option value="15000000">15Mbps</option>
|
||||||
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
<option value="10000000">10Mbps</option>
|
||||||
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
<option value="8000000">8Mbps</option>
|
||||||
<option value="resume">${OptionResumablemedia}</option>
|
<option value="6000000">6Mbps</option>
|
||||||
<option value="none">${OptionNone}</option>
|
<option value="5000000">5Mbps</option>
|
||||||
</select>
|
<option value="4000000">4Mbps</option>
|
||||||
</div>
|
<option value="3000000">3Mbps</option>
|
||||||
<br />
|
<option value="2500000">2.5Mbps</option>
|
||||||
<div>
|
<option value="2000000">2Mbps</option>
|
||||||
<label for="selectHomeSection3">${LabelHomePageSection3}</label>
|
<option value="1500000">1.5Mbps</option>
|
||||||
<select id="selectHomeSection3" data-mini="true">
|
<option value="1000000">1Mbps</option>
|
||||||
<option value="">${OptionAuto}</option>
|
<option value="720000">720kbps</option>
|
||||||
<option value="latestmedia">${OptionLatestMedia}</option>
|
<option value="420000">420kbps</option>
|
||||||
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
<option value="400000">400kbps</option>
|
||||||
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
<option value="320000">320kbps</option>
|
||||||
<option value="librarytiles">${OptionMyMedia}</option>
|
<option value="192000">192kbps</option>
|
||||||
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
</select>
|
||||||
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
</div>
|
||||||
<option value="resume">${OptionResumablemedia}</option>
|
<br />
|
||||||
<option value="none">${OptionNone}</option>
|
<div>
|
||||||
</select>
|
<label for="selectMaxChromecastBitrate">${LabelMaxChromecastBitrate}</label>
|
||||||
</div>
|
<select id="selectMaxChromecastBitrate" data-mini="true">
|
||||||
<br />
|
<option value="30000000">30Mbps</option>
|
||||||
<div>
|
<option value="25000000">25Mbps</option>
|
||||||
<label for="selectHomeSection4">${LabelHomePageSection4}</label>
|
<option value="20000000">20Mbps</option>
|
||||||
<select id="selectHomeSection4" data-mini="true">
|
<option value="15000000">15Mbps</option>
|
||||||
<option value="">${OptionAuto}</option>
|
<option value="12000000">12Mbps</option>
|
||||||
<option value="latestmedia">${OptionLatestMedia}</option>
|
<option value="11000000">11Mbps</option>
|
||||||
<option value="latestchannelmedia">${OptionLatestChannelMedia}</option>
|
<option value="10000000">10Mbps</option>
|
||||||
<option value="latesttvrecordings">${OptionLatestTvRecordings}</option>
|
<option value="9000000">9Mbps</option>
|
||||||
<option value="librarytiles">${OptionMyMedia}</option>
|
<option value="8000000">8Mbps</option>
|
||||||
<option value="smalllibrarytiles">${OptionMyMediaSmall}</option>
|
<option value="7000000">7Mbps</option>
|
||||||
<option value="librarybuttons">${OptionMyMediaButtons}</option>
|
<option value="6000000">6Mbps</option>
|
||||||
<option value="resume">${OptionResumablemedia}</option>
|
<option value="5000000">5Mbps</option>
|
||||||
<option value="none">${OptionNone}</option>
|
<option value="4000000">4Mbps</option>
|
||||||
</select>
|
<option value="3000000">3Mbps</option>
|
||||||
</div>
|
<option value="2500000">2.5Mbps</option>
|
||||||
<br />
|
<option value="2000000">2Mbps</option>
|
||||||
<div>
|
<option value="1500000">1.5Mbps</option>
|
||||||
<label for="chkEnableLibraryTileNames">${LabelShowLibraryTileNames}</label>
|
<option value="1000000">1Mbps</option>
|
||||||
<input type="checkbox" id="chkEnableLibraryTileNames" data-mini="true">
|
<option value="720000">720kbps</option>
|
||||||
<div class="fieldDescription">${LabelShowLibraryTileNamesHelp}</div>
|
<option value="420000">420kbps</option>
|
||||||
|
<option value="400000">400kbps</option>
|
||||||
|
<option value="320000">320kbps</option>
|
||||||
|
<option value="192000">192kbps</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="selectThemeSong">${LabelEnableThemeSongs}</label>
|
||||||
|
<select id="selectThemeSong" data-mini="true">
|
||||||
|
<option value="">${OptionAuto}</option>
|
||||||
|
<option value="1">${OptionYes}</option>
|
||||||
|
<option value="0">${OptionNo}</option>
|
||||||
|
</select>
|
||||||
|
<div class="fieldDescription">${LabelEnableThemeSongsHelp}</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div class="fldEnableBackdrops" style="display:none;">
|
||||||
|
<label for="selectBackdrop">${LabelEnableBackdrops}</label>
|
||||||
|
<select id="selectBackdrop" data-mini="true">
|
||||||
|
<option value="">${OptionAuto}</option>
|
||||||
|
<option value="1">${OptionYes}</option>
|
||||||
|
<option value="0">${OptionNo}</option>
|
||||||
|
</select>
|
||||||
|
<div class="fieldDescription">${LabelEnableBackdropsHelp}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<fieldset data-role="controlgroup">
|
||||||
|
<legend>${LabelExternalPlayers}</legend>
|
||||||
|
<!--<input type="checkbox" id="chkGoodplayer" class="chkExternalPlayer" data-name="GoodPlayer" data-scheme="goodplayer://{0}" />
|
||||||
|
<label for="chkGoodplayer">GoodPlayer</label>-->
|
||||||
|
<input type="checkbox" id="chkVlc" class="chkExternalPlayer" data-name="Vlc" data-scheme="vlc://{0}" />
|
||||||
|
<label for="chkVlc">Vlc</label>
|
||||||
|
</fieldset>
|
||||||
|
<div style="padding: 0 2px;">${LabelExternalPlayersHelp}</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="detailSection">
|
<ul data-role="listview" class="ulForm">
|
||||||
<div class="detailSectionHeader">
|
<li>
|
||||||
${HeaderSettingsForThisDevice}
|
<button type="submit" data-theme="a" data-icon="check">
|
||||||
</div>
|
${ButtonOk}
|
||||||
<div class="detailSectionContent">
|
</button>
|
||||||
<br />
|
<button type="button" onclick="history.back();" data-icon="delete">
|
||||||
<div>
|
${ButtonCancel}
|
||||||
<label for="selectMaxBitrate">${LabelMaxStreamingBitrate}</label>
|
</button>
|
||||||
<select id="selectMaxBitrate" data-mini="true">
|
</li>
|
||||||
<option value="30000000">30Mbps</option>
|
</ul>
|
||||||
<option value="25000000">25Mbps</option>
|
</form>
|
||||||
<option value="20000000">20Mbps</option>
|
</div>
|
||||||
<option value="15000000">15Mbps</option>
|
|
||||||
<option value="10000000">10Mbps</option>
|
|
||||||
<option value="8000000">8Mbps</option>
|
|
||||||
<option value="6000000">6Mbps</option>
|
|
||||||
<option value="5000000">5Mbps</option>
|
|
||||||
<option value="4000000">4Mbps</option>
|
|
||||||
<option value="3000000">3Mbps</option>
|
|
||||||
<option value="2500000">2.5Mbps</option>
|
|
||||||
<option value="2000000">2Mbps</option>
|
|
||||||
<option value="1500000">1.5Mbps</option>
|
|
||||||
<option value="1000000">1Mbps</option>
|
|
||||||
<option value="720000">720kbps</option>
|
|
||||||
<option value="420000">420kbps</option>
|
|
||||||
<option value="400000">400kbps</option>
|
|
||||||
<option value="320000">320kbps</option>
|
|
||||||
<option value="192000">192kbps</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<label for="selectMaxChromecastBitrate">${LabelMaxChromecastBitrate}</label>
|
|
||||||
<select id="selectMaxChromecastBitrate" data-mini="true">
|
|
||||||
<option value="30000000">30Mbps</option>
|
|
||||||
<option value="25000000">25Mbps</option>
|
|
||||||
<option value="20000000">20Mbps</option>
|
|
||||||
<option value="15000000">15Mbps</option>
|
|
||||||
<option value="12000000">12Mbps</option>
|
|
||||||
<option value="11000000">11Mbps</option>
|
|
||||||
<option value="10000000">10Mbps</option>
|
|
||||||
<option value="9000000">9Mbps</option>
|
|
||||||
<option value="8000000">8Mbps</option>
|
|
||||||
<option value="7000000">7Mbps</option>
|
|
||||||
<option value="6000000">6Mbps</option>
|
|
||||||
<option value="5000000">5Mbps</option>
|
|
||||||
<option value="4000000">4Mbps</option>
|
|
||||||
<option value="3000000">3Mbps</option>
|
|
||||||
<option value="2500000">2.5Mbps</option>
|
|
||||||
<option value="2000000">2Mbps</option>
|
|
||||||
<option value="1500000">1.5Mbps</option>
|
|
||||||
<option value="1000000">1Mbps</option>
|
|
||||||
<option value="720000">720kbps</option>
|
|
||||||
<option value="420000">420kbps</option>
|
|
||||||
<option value="400000">400kbps</option>
|
|
||||||
<option value="320000">320kbps</option>
|
|
||||||
<option value="192000">192kbps</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<label for="selectThemeSong">${LabelEnableThemeSongs}</label>
|
|
||||||
<select id="selectThemeSong" data-mini="true">
|
|
||||||
<option value="">${OptionAuto}</option>
|
|
||||||
<option value="1">${OptionYes}</option>
|
|
||||||
<option value="0">${OptionNo}</option>
|
|
||||||
</select>
|
|
||||||
<div class="fieldDescription">${LabelEnableThemeSongsHelp}</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div class="fldEnableBackdrops" style="display:none;">
|
|
||||||
<label for="selectBackdrop">${LabelEnableBackdrops}</label>
|
|
||||||
<select id="selectBackdrop" data-mini="true">
|
|
||||||
<option value="">${OptionAuto}</option>
|
|
||||||
<option value="1">${OptionYes}</option>
|
|
||||||
<option value="0">${OptionNo}</option>
|
|
||||||
</select>
|
|
||||||
<div class="fieldDescription">${LabelEnableBackdropsHelp}</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<fieldset data-role="controlgroup">
|
|
||||||
<legend>${LabelExternalPlayers}</legend>
|
|
||||||
<!--<input type="checkbox" id="chkGoodplayer" class="chkExternalPlayer" data-name="GoodPlayer" data-scheme="goodplayer://{0}" />
|
|
||||||
<label for="chkGoodplayer">GoodPlayer</label>-->
|
|
||||||
<input type="checkbox" id="chkVlc" class="chkExternalPlayer" data-name="Vlc" data-scheme="vlc://{0}" />
|
|
||||||
<label for="chkVlc">Vlc</label>
|
|
||||||
</fieldset>
|
|
||||||
<div style="padding: 0 2px;">${LabelExternalPlayersHelp}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ul data-role="listview" class="ulForm">
|
|
||||||
<li>
|
|
||||||
<button type="submit" data-theme="a" data-icon="check" data-mini="true">
|
|
||||||
${ButtonOk}
|
|
||||||
</button>
|
|
||||||
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true">
|
|
||||||
${ButtonCancel}
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</form>
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$('.webClientPreferencesForm').off('submit', WebClientPreferencesPage.onSubmit).on('submit', WebClientPreferencesPage.onSubmit);
|
$('.webClientPreferencesForm').off('submit', WebClientPreferencesPage.onSubmit).on('submit', WebClientPreferencesPage.onSubmit);
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -13,116 +13,117 @@
|
||||||
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
|
<a href="#" class="lnkWebClientPreferences">${TabAppSettings}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br />
|
<div data-role="content">
|
||||||
<div class="readOnlyContent" style="margin: 0 auto; padding: 0 1em;">
|
<br />
|
||||||
<div id="fldImage" style="display:inline-block;"></div>
|
<div class="readOnlyContent" style="margin: 0 auto; padding: 0 1em;">
|
||||||
|
<div id="fldImage" style="display:inline-block;"></div>
|
||||||
|
|
||||||
<div style="vertical-align:top;margin: .5em 0 0 1em;display:inline-block;">
|
<div style="vertical-align:top;margin: .5em 0 0 1em;display:inline-block;">
|
||||||
<h2 class="username" style="margin: 0;"></h2>
|
<h2 class="username" style="margin: 0;"></h2>
|
||||||
<button id="btnDeleteImage" type="button" data-icon="delete" style="display: none;margin-top:1em;">
|
<button id="btnDeleteImage" type="button" data-icon="delete" style="display: none;margin-top:1em;">
|
||||||
${ButtonDeleteImage}
|
${ButtonDeleteImage}
|
||||||
</button>
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="connectMessage readOnlyContent" style="display:none;margin: 0 auto; padding: 0 1em; text-align:center;">
|
<div class="connectMessage readOnlyContent" style="display:none;margin: 0 auto; padding: 0 1em; text-align:center;">
|
||||||
<p>${MessageProfileInfoSynced}</p>
|
<p>${MessageProfileInfoSynced}</p>
|
||||||
<div style="margin-top: .75em;"><a href="http://emby.media/connect" target="_blank">${ButtonLearnMoreAboutEmbyConnect}</a></div>
|
<div style="margin-top: .75em;"><a href="http://emby.media/connect" target="_blank">${ButtonLearnMoreAboutEmbyConnect}</a></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form class="newImageForm userProfileSettingsForm" style="display:none;margin: 1em auto 0;">
|
<form class="newImageForm userProfileSettingsForm" style="display:none;margin: 1em auto 0;">
|
||||||
|
|
||||||
<div data-role="collapsible">
|
<div data-role="collapsible">
|
||||||
<h2 id="headerUploadNewImage" style="display: none;">${HeaderUploadNewImage}</h2>
|
<h2 id="headerUploadNewImage" style="display: none;">${HeaderUploadNewImage}</h2>
|
||||||
<div>
|
<div>
|
||||||
<div id="fldNewImage">
|
<div id="fldNewImage">
|
||||||
<p>${ImageUploadAspectRatioHelp}</p>
|
<p>${ImageUploadAspectRatioHelp}</p>
|
||||||
<input type="file" accept="image/*" id="uploadUserImage" name="uploadUserImage" onchange="MyProfilePage.onFileUploadChange(this);" />
|
<input type="file" accept="image/*" id="uploadUserImage" name="uploadUserImage" onchange="MyProfilePage.onFileUploadChange(this);" />
|
||||||
|
|
||||||
<div id="userImageDropZone" class="imageDropZone">
|
<div id="userImageDropZone" class="imageDropZone">
|
||||||
<h3>${LabelDropImageHere}</h3>
|
<h3>${LabelDropImageHere}</h3>
|
||||||
<output id="userImageOutput"></output>
|
<output id="userImageOutput"></output>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="fldNewImagePreview"></div>
|
||||||
|
<div id="fldUpload" style="display: none;">
|
||||||
|
<button type="submit" data-icon="check" data-theme="a">${ButtonUpload}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="fldNewImagePreview"></div>
|
</div>
|
||||||
<div id="fldUpload" style="display: none;">
|
|
||||||
<button type="submit" data-icon="check" data-theme="a">${ButtonUpload}</button>
|
</form>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<form class="updatePasswordForm passwordSection userProfileSettingsForm" style="display:none;margin: 0 auto 2em;">
|
||||||
|
|
||||||
|
<div class="detailSection">
|
||||||
|
<div class="detailSectionHeader">
|
||||||
|
${HeaderPassword}
|
||||||
|
</div>
|
||||||
|
<div class="detailSectionContent">
|
||||||
|
<br />
|
||||||
|
<div id="fldCurrentPassword" style="display: none;">
|
||||||
|
<label for="txtCurrentPassword">${LabelCurrentPassword}</label>
|
||||||
|
<input type="password" id="txtCurrentPassword" name="txtCurrentPassword" />
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="txtNewPassword">${LabelNewPassword}</label>
|
||||||
|
<input type="password" id="txtNewPassword" name="txtNewPassword" />
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="txtNewPasswordConfirm">${LabelNewPasswordConfirm}</label>
|
||||||
|
<input type="password" id="txtNewPasswordConfirm" name="txtNewPasswordConfirm" />
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||||
|
${ButtonSave}
|
||||||
|
</button>
|
||||||
|
<div id="btnResetPassword" style="display: none;">
|
||||||
|
<button type="button" data-icon="lock" onclick="UpdatePasswordPage.resetPassword();" data-mini="true">
|
||||||
|
${ButtonResetPassword}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
|
<form class="localAccessForm localAccessSection userProfileSettingsForm" style="margin: 0 auto;">
|
||||||
</form>
|
<div class="detailSection">
|
||||||
|
<div class="detailSectionHeader">
|
||||||
<br />
|
${HeaderEasyPinCode}
|
||||||
|
|
||||||
<form class="updatePasswordForm passwordSection userProfileSettingsForm" style="display:none;margin: 0 auto 2em;">
|
|
||||||
|
|
||||||
<div class="detailSection">
|
|
||||||
<div class="detailSectionHeader">
|
|
||||||
${HeaderPassword}
|
|
||||||
</div>
|
|
||||||
<div class="detailSectionContent">
|
|
||||||
<br />
|
|
||||||
<div id="fldCurrentPassword" style="display: none;">
|
|
||||||
<label for="txtCurrentPassword">${LabelCurrentPassword}</label>
|
|
||||||
<input type="password" id="txtCurrentPassword" name="txtCurrentPassword" />
|
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<div class="detailSectionContent">
|
||||||
<div>
|
<br />
|
||||||
<label for="txtNewPassword">${LabelNewPassword}</label>
|
<div>${EasyPasswordHelp}</div>
|
||||||
<input type="password" id="txtNewPassword" name="txtNewPassword" />
|
<br />
|
||||||
</div>
|
<div>
|
||||||
<br />
|
<label for="txtEasyPassword">${LabelEasyPinCode}</label>
|
||||||
<div>
|
<input type="password" id="txtEasyPassword" />
|
||||||
<label for="txtNewPasswordConfirm">${LabelNewPasswordConfirm}</label>
|
</div>
|
||||||
<input type="password" id="txtNewPasswordConfirm" name="txtNewPasswordConfirm" />
|
<br />
|
||||||
</div>
|
<div>
|
||||||
<br />
|
<label for="chkEnableLocalEasyPassword">${LabelInNetworkSignInWithEasyPassword}</label>
|
||||||
<div>
|
<input type="checkbox" id="chkEnableLocalEasyPassword" />
|
||||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
<div class="fieldDescription">${LabelInNetworkSignInWithEasyPasswordHelp}</div>
|
||||||
${ButtonSave}
|
</div>
|
||||||
</button>
|
<br />
|
||||||
<div id="btnResetPassword" style="display: none;">
|
<div>
|
||||||
<button type="button" data-icon="lock" onclick="UpdatePasswordPage.resetPassword();" data-mini="true">
|
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
||||||
${ButtonResetPassword}
|
${ButtonSave}
|
||||||
|
</button>
|
||||||
|
<button id="btnResetEasyPassword" style="display:none;" type="button" data-icon="lock" onclick="UpdatePasswordPage.resetEasyPassword();" data-mini="true">
|
||||||
|
${ButtonResetEasyPassword}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</form>
|
||||||
</form>
|
</div>
|
||||||
<form class="localAccessForm localAccessSection userProfileSettingsForm" style="margin: 0 auto;">
|
|
||||||
<div class="detailSection">
|
|
||||||
<div class="detailSectionHeader">
|
|
||||||
${HeaderEasyPinCode}
|
|
||||||
</div>
|
|
||||||
<div class="detailSectionContent">
|
|
||||||
<br />
|
|
||||||
<div>${EasyPasswordHelp}</div>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<label for="txtEasyPassword">${LabelEasyPinCode}</label>
|
|
||||||
<input type="password" id="txtEasyPassword" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<label for="chkEnableLocalEasyPassword">${LabelInNetworkSignInWithEasyPassword}</label>
|
|
||||||
<input type="checkbox" id="chkEnableLocalEasyPassword" />
|
|
||||||
<div class="fieldDescription">${LabelInNetworkSignInWithEasyPasswordHelp}</div>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
|
|
||||||
${ButtonSave}
|
|
||||||
</button>
|
|
||||||
<button id="btnResetEasyPassword" style="display:none;" type="button" data-icon="lock" onclick="UpdatePasswordPage.resetEasyPassword();" data-mini="true">
|
|
||||||
${ButtonResetEasyPassword}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$('.newImageForm').off('submit', MyProfilePage.onImageSubmit).on('submit', MyProfilePage.onImageSubmit);
|
$('.newImageForm').off('submit', MyProfilePage.onImageSubmit).on('submit', MyProfilePage.onImageSubmit);
|
||||||
$('.updatePasswordForm').off('submit', UpdatePasswordPage.onSubmit).on('submit', UpdatePasswordPage.onSubmit);
|
$('.updatePasswordForm').off('submit', UpdatePasswordPage.onSubmit).on('submit', UpdatePasswordPage.onSubmit);
|
||||||
|
|
|
@ -123,9 +123,13 @@
|
||||||
|
|
||||||
function loadRecentlyAdded(elem, user, context) {
|
function loadRecentlyAdded(elem, user, context) {
|
||||||
|
|
||||||
|
var limit = AppInfo.hasLowImageBandwidth ?
|
||||||
|
16 :
|
||||||
|
24;
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
|
|
||||||
Limit: 24,
|
Limit: limit,
|
||||||
Fields: "PrimaryImageAspectRatio,SyncInfo",
|
Fields: "PrimaryImageAspectRatio,SyncInfo",
|
||||||
ImageTypeLimit: 1,
|
ImageTypeLimit: 1,
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb"
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb"
|
||||||
|
|
|
@ -71,6 +71,8 @@
|
||||||
|
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
|
html = normalizeLinksHtml(html);
|
||||||
|
|
||||||
$(document.body).prepend(html);
|
$(document.body).prepend(html);
|
||||||
$('.viewMenuBar').trigger('create');
|
$('.viewMenuBar').trigger('create');
|
||||||
|
|
||||||
|
@ -78,6 +80,18 @@
|
||||||
bindMenuEvents();
|
bindMenuEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function replaceAll(str, find, replace) {
|
||||||
|
return str.replace(new RegExp(find, 'g'), replace);
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalizeLinksHtml(html) {
|
||||||
|
|
||||||
|
if (AppInfo.resetOnLibraryChange) {
|
||||||
|
html = replaceAll(html, '<a ', '<a data-ajax="false"');
|
||||||
|
}
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
function bindMenuEvents() {
|
function bindMenuEvents() {
|
||||||
|
|
||||||
if (AppInfo.isTouchPreferred) {
|
if (AppInfo.isTouchPreferred) {
|
||||||
|
@ -99,6 +113,15 @@
|
||||||
initHeadRoom(viewMenuBar);
|
initHeadRoom(viewMenuBar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateViewMenuBarHeadroom(page, viewMenuBar) {
|
||||||
|
|
||||||
|
if ($(page).hasClass('libraryPage')) {
|
||||||
|
viewMenuBar.removeClass('headroomDisabled');
|
||||||
|
} else {
|
||||||
|
viewMenuBar.addClass('headroomDisabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getItemHref(item, context) {
|
function getItemHref(item, context) {
|
||||||
|
|
||||||
return LibraryBrowser.getHref(item, context);
|
return LibraryBrowser.getHref(item, context);
|
||||||
|
@ -114,7 +137,7 @@
|
||||||
html += '<div class="libraryMenuDivider"></div>';
|
html += '<div class="libraryMenuDivider"></div>';
|
||||||
html += '<div class="adminMenuOptions">';
|
html += '<div class="adminMenuOptions">';
|
||||||
|
|
||||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="dashboard" href="dashboard.html"><span class="fa fa-cog sidebarLinkIcon"></span>' + Globalize.translate('ButtonDashboard') + '</a>';
|
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="dashboard" data-rel="none" href="dashboard.html"><span class="fa fa-cog sidebarLinkIcon"></span>' + Globalize.translate('ButtonDashboard') + '</a>';
|
||||||
html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" href="edititemmetadata.html"><span class="fa fa-edit sidebarLinkIcon"></span>' + Globalize.translate('ButtonMetadataManager') + '</a>';
|
html += '<a class="sidebarLink lnkMediaFolder editorViewMenu" data-itemid="editor" href="edititemmetadata.html"><span class="fa fa-edit sidebarLinkIcon"></span>' + Globalize.translate('ButtonMetadataManager') + '</a>';
|
||||||
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="reports" href="reports.html"><span class="fa fa-bar-chart sidebarLinkIcon"></span>' + Globalize.translate('ButtonReports') + '</a>';
|
html += '<a class="sidebarLink lnkMediaFolder" data-itemid="reports" href="reports.html"><span class="fa fa-bar-chart sidebarLinkIcon"></span>' + Globalize.translate('ButtonReports') + '</a>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
@ -218,6 +241,8 @@
|
||||||
|
|
||||||
}).join('');
|
}).join('');
|
||||||
|
|
||||||
|
html = normalizeLinksHtml(html);
|
||||||
|
|
||||||
var elem = $('.libraryMenuOptions').html(html);
|
var elem = $('.libraryMenuOptions').html(html);
|
||||||
|
|
||||||
$('.sidebarLink', elem).on('click', function () {
|
$('.sidebarLink', elem).on('click', function () {
|
||||||
|
@ -308,6 +333,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
html += getViewsHtml();
|
html += getViewsHtml();
|
||||||
|
html = normalizeLinksHtml(html);
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
@ -492,11 +518,13 @@
|
||||||
}).on('pagebeforeshow', ".page:not(.standalonePage)", function () {
|
}).on('pagebeforeshow', ".page:not(.standalonePage)", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
var viewMenuBar = $('.viewMenuBar');
|
||||||
if (!$('.viewMenuBar').length) {
|
if (!$('.viewMenuBar').length) {
|
||||||
|
|
||||||
ConnectionManager.user().done(function (user) {
|
ConnectionManager.user().done(function (user) {
|
||||||
|
|
||||||
renderHeader(user);
|
renderHeader(user);
|
||||||
|
updateViewMenuBarHeadroom(page, $('.viewMenuBar'));
|
||||||
|
|
||||||
updateCastIcon();
|
updateCastIcon();
|
||||||
|
|
||||||
|
@ -506,6 +534,7 @@
|
||||||
} else {
|
} else {
|
||||||
updateContextText(page);
|
updateContextText(page);
|
||||||
updateLibraryNavLinks(page);
|
updateLibraryNavLinks(page);
|
||||||
|
updateViewMenuBarHeadroom(page, viewMenuBar);
|
||||||
}
|
}
|
||||||
|
|
||||||
var jpage = $(page);
|
var jpage = $(page);
|
||||||
|
@ -519,14 +548,20 @@
|
||||||
$(document.body).removeClass('dashboardDocument').removeClass('libraryDocument');
|
$(document.body).removeClass('dashboardDocument').removeClass('libraryDocument');
|
||||||
}
|
}
|
||||||
|
|
||||||
}).on('pagebeforeshow', ".page", function () {
|
}).on('pagebeforeshow', ".libraryPage", function () {
|
||||||
|
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
if ($(page).hasClass('standalonePage')) {
|
if (AppInfo.enableBottomTabs) {
|
||||||
$('.viewMenuBar').hide();
|
$('.libraryViewNav', page).addClass('bottomLibraryViewNav');
|
||||||
|
$(page).addClass('noSecondaryNavPage');
|
||||||
} else {
|
} else {
|
||||||
$('.viewMenuBar').show();
|
|
||||||
|
$('.libraryViewNav', page).each(function () {
|
||||||
|
|
||||||
|
initHeadRoom(this);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}).on('pageshow', ".libraryPage", function () {
|
}).on('pageshow', ".libraryPage", function () {
|
||||||
|
@ -541,12 +576,6 @@
|
||||||
// Scroll back up so in case vertical scroll was messed with
|
// Scroll back up so in case vertical scroll was messed with
|
||||||
$(document).scrollTop(0);
|
$(document).scrollTop(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.libraryViewNav', page).each(function () {
|
|
||||||
|
|
||||||
initHeadRoom(this);
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function initHeadRoom(elem) {
|
function initHeadRoom(elem) {
|
||||||
|
|
|
@ -100,6 +100,12 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.fldEnableBackdrops', page).show();
|
$('.fldEnableBackdrops', page).show();
|
||||||
|
|
||||||
|
if (Dashboard.isRunningInCordova()) {
|
||||||
|
$('.homePageConfigurationSection', page).hide();
|
||||||
|
} else {
|
||||||
|
$('.homePageConfigurationSection', page).show();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
window.WebClientPreferencesPage = {
|
window.WebClientPreferencesPage = {
|
||||||
|
|
|
@ -108,9 +108,7 @@ var Dashboard = {
|
||||||
|
|
||||||
if (!Dashboard.getUserPromise) {
|
if (!Dashboard.getUserPromise) {
|
||||||
|
|
||||||
var userId = Dashboard.getCurrentUserId();
|
Dashboard.getUserPromise = ConnectionManager.currentApiClient().getCurrentUser().fail(Dashboard.logout);
|
||||||
|
|
||||||
Dashboard.getUserPromise = ConnectionManager.currentApiClient().getUser(userId).fail(Dashboard.logout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Dashboard.getUserPromise;
|
return Dashboard.getUserPromise;
|
||||||
|
@ -368,7 +366,7 @@ var Dashboard = {
|
||||||
|
|
||||||
showFooterNotification: function (options) {
|
showFooterNotification: function (options) {
|
||||||
|
|
||||||
if (Dashboard.isRunningInCordova()) {
|
if (!AppInfo.enableFooterNotifications) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -376,7 +374,7 @@ var Dashboard = {
|
||||||
|
|
||||||
options.id = options.id || "notification" + new Date().getTime() + parseInt(Math.random());
|
options.id = options.id || "notification" + new Date().getTime() + parseInt(Math.random());
|
||||||
|
|
||||||
var footer = $("#footer").css("top", "initial").show();
|
var footer = $(".footer").css("top", "initial").show();
|
||||||
|
|
||||||
var parentElem = $('#footerNotifications', footer);
|
var parentElem = $('#footerNotifications', footer);
|
||||||
|
|
||||||
|
@ -572,10 +570,14 @@ var Dashboard = {
|
||||||
refreshSystemInfoFromServer: function () {
|
refreshSystemInfoFromServer: function () {
|
||||||
|
|
||||||
if (Dashboard.getAccessToken()) {
|
if (Dashboard.getAccessToken()) {
|
||||||
ApiClient.getSystemInfo().done(function (info) {
|
if (AppInfo.enableFooterNotifications) {
|
||||||
|
ApiClient.getSystemInfo().done(function (info) {
|
||||||
|
|
||||||
Dashboard.updateSystemInfo(info);
|
Dashboard.updateSystemInfo(info);
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
Dashboard.ensureWebSocket();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -702,7 +704,6 @@ var Dashboard = {
|
||||||
|
|
||||||
resetPluginSecurityInfo: function () {
|
resetPluginSecurityInfo: function () {
|
||||||
Dashboard.getPluginSecurityInfoPromise = null;
|
Dashboard.getPluginSecurityInfoPromise = null;
|
||||||
Dashboard.validateCurrentUser();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
ensureHeader: function (page) {
|
ensureHeader: function (page) {
|
||||||
|
@ -922,7 +923,10 @@ var Dashboard = {
|
||||||
}
|
}
|
||||||
|
|
||||||
ApiClient.openWebSocket();
|
ApiClient.openWebSocket();
|
||||||
ApiClient.reportCapabilities(Dashboard.capabilities());
|
|
||||||
|
if (!Dashboard.isConnectMode()) {
|
||||||
|
ApiClient.reportCapabilities(Dashboard.capabilities());
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
processGeneralCommand: function (cmd) {
|
processGeneralCommand: function (cmd) {
|
||||||
|
@ -1480,6 +1484,11 @@ var AppInfo = {};
|
||||||
if ($.browser.mobile) {
|
if ($.browser.mobile) {
|
||||||
AppInfo.hasLowImageBandwidth = true;
|
AppInfo.hasLowImageBandwidth = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Dashboard.isRunningInCordova()) {
|
||||||
|
AppInfo.enableBottomTabs = true;
|
||||||
|
AppInfo.resetOnLibraryChange = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
@ -1496,6 +1505,11 @@ var AppInfo = {};
|
||||||
AppInfo.enableMusicSongsTab = true;
|
AppInfo.enableMusicSongsTab = true;
|
||||||
AppInfo.enableMusicArtistsTab = true;
|
AppInfo.enableMusicArtistsTab = true;
|
||||||
AppInfo.enableHomeLatestTab = true;
|
AppInfo.enableHomeLatestTab = true;
|
||||||
|
AppInfo.enableMovieTrailersTab = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Dashboard.isRunningInCordova()) {
|
||||||
|
AppInfo.enableFooterNotifications = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1557,7 +1571,9 @@ var AppInfo = {};
|
||||||
if (window.ApiClient) {
|
if (window.ApiClient) {
|
||||||
ApiClient.getDefaultImageQuality = Dashboard.getDefaultImageQuality;
|
ApiClient.getDefaultImageQuality = Dashboard.getDefaultImageQuality;
|
||||||
|
|
||||||
Dashboard.importCss(ApiClient.getUrl('Branding/Css'));
|
if (!Dashboard.isRunningInCordova()) {
|
||||||
|
Dashboard.importCss(ApiClient.getUrl('Branding/Css'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1597,6 +1613,10 @@ var AppInfo = {};
|
||||||
$(document.body).addClass('homeLatestTabDisabled');
|
$(document.body).addClass('homeLatestTabDisabled');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!AppInfo.enableMovieTrailersTab) {
|
||||||
|
$(document.body).addClass('movieTrailersTabDisabled');
|
||||||
|
}
|
||||||
|
|
||||||
if (Dashboard.isRunningInCordova()) {
|
if (Dashboard.isRunningInCordova()) {
|
||||||
$(document).addClass('nativeApp');
|
$(document).addClass('nativeApp');
|
||||||
}
|
}
|
||||||
|
@ -1674,14 +1694,14 @@ var AppInfo = {};
|
||||||
var mediaPlayerElem = $('#mediaPlayer', document.body);
|
var mediaPlayerElem = $('#mediaPlayer', document.body);
|
||||||
mediaPlayerElem.trigger('create');
|
mediaPlayerElem.trigger('create');
|
||||||
|
|
||||||
var footerHtml = '<div id="footer" data-theme="b" class="ui-bar-b">';
|
var footerHtml = '<div id="footer" class="footer" data-theme="b" class="ui-bar-b">';
|
||||||
|
|
||||||
footerHtml += '<div id="footerNotifications"></div>';
|
footerHtml += '<div id="footerNotifications"></div>';
|
||||||
footerHtml += '</div>';
|
footerHtml += '</div>';
|
||||||
|
|
||||||
$(document.body).append(footerHtml);
|
$(document.body).append(footerHtml);
|
||||||
|
|
||||||
var footerElem = $('#footer', document.body);
|
var footerElem = $('.footer', document.body);
|
||||||
footerElem.trigger('create');
|
footerElem.trigger('create');
|
||||||
|
|
||||||
$(window).on("beforeunload", function () {
|
$(window).on("beforeunload", function () {
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
function loadNextUp(page, context) {
|
function loadNextUp(page, context) {
|
||||||
|
|
||||||
var limit = AppInfo.hasLowImageBandwidth ?
|
var limit = AppInfo.hasLowImageBandwidth ?
|
||||||
18 :
|
16 :
|
||||||
24;
|
24;
|
||||||
|
|
||||||
var query = {
|
var query = {
|
||||||
|
@ -69,13 +69,17 @@
|
||||||
|
|
||||||
var parentId = LibraryMenu.getTopParentId();
|
var parentId = LibraryMenu.getTopParentId();
|
||||||
|
|
||||||
|
var limit = AppInfo.hasLowImageBandwidth ?
|
||||||
|
4 :
|
||||||
|
6;
|
||||||
|
|
||||||
var options = {
|
var options = {
|
||||||
|
|
||||||
SortBy: "DatePlayed",
|
SortBy: "DatePlayed",
|
||||||
SortOrder: "Descending",
|
SortOrder: "Descending",
|
||||||
IncludeItemTypes: "Episode",
|
IncludeItemTypes: "Episode",
|
||||||
Filters: "IsResumable",
|
Filters: "IsResumable",
|
||||||
Limit: 6,
|
Limit: limit,
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData,SyncInfo",
|
Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData,SyncInfo",
|
||||||
ExcludeLocationTypes: "Virtual",
|
ExcludeLocationTypes: "Virtual",
|
||||||
|
|
40
dashboard-ui/thirdparty/apiclient/apiclient.js
vendored
40
dashboard-ui/thirdparty/apiclient/apiclient.js
vendored
|
@ -54,23 +54,24 @@
|
||||||
return serverInfo;
|
return serverInfo;
|
||||||
};
|
};
|
||||||
|
|
||||||
var currentUser;
|
var currentUserPromise;
|
||||||
/**
|
/**
|
||||||
* Gets or sets the current user id.
|
* Gets or sets the current user id.
|
||||||
*/
|
*/
|
||||||
self.getCurrentUser = function () {
|
self.getCurrentUser = function () {
|
||||||
|
|
||||||
if (currentUser != null) {
|
var promise = currentUserPromise;
|
||||||
|
|
||||||
var deferred = DeferredBuilder.Deferred();
|
if (promise == null) {
|
||||||
deferred.resolveWith(null, [currentUser]);
|
|
||||||
return deferred.promise();
|
promise = self.getUser(self.getCurrentUserId()).fail(function () {
|
||||||
|
currentUserPromise = null;
|
||||||
|
});
|
||||||
|
|
||||||
|
currentUserPromise = promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
return self.getUser(self.getCurrentUserId()).done(function (user) {
|
return promise;
|
||||||
|
|
||||||
currentUser = user;
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -88,7 +89,7 @@
|
||||||
self.setCurrentUserId = function (userId, token) {
|
self.setCurrentUserId = function (userId, token) {
|
||||||
|
|
||||||
currentUserId = userId;
|
currentUserId = userId;
|
||||||
currentUser = null;
|
currentUserPromise = null;
|
||||||
accessToken = token;
|
accessToken = token;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -376,7 +377,7 @@
|
||||||
webSocket.onmessage = function (msg) {
|
webSocket.onmessage = function (msg) {
|
||||||
|
|
||||||
msg = JSON.parse(msg.data);
|
msg = JSON.parse(msg.data);
|
||||||
Events.trigger(self, 'websocketmessage', [msg]);
|
onWebSocketMessage(msg);
|
||||||
};
|
};
|
||||||
|
|
||||||
webSocket.onopen = function () {
|
webSocket.onopen = function () {
|
||||||
|
@ -404,6 +405,23 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function onWebSocketMessage(msg) {
|
||||||
|
|
||||||
|
if (msg.MessageType === "UserDeleted") {
|
||||||
|
currentUserPromise = null;
|
||||||
|
}
|
||||||
|
else if (msg.MessageType === "UserUpdated" || msg.MessageType === "UserConfigurationUpdated") {
|
||||||
|
|
||||||
|
var user = msg.Data;
|
||||||
|
if (user.Id == self.getCurrentUserId()) {
|
||||||
|
|
||||||
|
currentUserPromise = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Events.trigger(self, 'websocketmessage', [msg]);
|
||||||
|
}
|
||||||
|
|
||||||
self.sendWebSocketMessage = function (name, data) {
|
self.sendWebSocketMessage = function (name, data) {
|
||||||
|
|
||||||
logger.log('Sending web socket message: ' + name);
|
logger.log('Sending web socket message: ' + name);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue