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

Merge pull request #811 from grafixeyehero/nowplaying-tvmode

Fix nowplaying  for tv mode
This commit is contained in:
dkanada 2020-02-26 19:19:32 +09:00 committed by GitHub
commit 89a5c2d590
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 41 additions and 6 deletions

View file

@ -14,6 +14,9 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}, },
showSettings: function () { showSettings: function () {
show('/settings/settings.html'); show('/settings/settings.html');
},
showNowPlaying: function () {
show("/nowplaying.html");
} }
}; };

View file

@ -1,4 +1,4 @@
define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageLoader", "playbackManager", "nowPlayingHelper", "events", "connectionManager", "apphost", "globalize", "cardStyle", "emby-itemscontainer", "css!./remotecontrol.css", "emby-ratingbutton"], function (browser, datetime, backdrop, libraryBrowser, listView, imageLoader, playbackManager, nowPlayingHelper, events, connectionManager, appHost, globalize) { define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageLoader", "playbackManager", "nowPlayingHelper", "events", "connectionManager", "apphost", "globalize", "layoutManager", "userSettings", "cardStyle", "emby-itemscontainer", "css!./remotecontrol.css", "emby-ratingbutton"], function (browser, datetime, backdrop, libraryBrowser, listView, imageLoader, playbackManager, nowPlayingHelper, events, connectionManager, appHost, globalize, layoutManager, userSettings) {
"use strict"; "use strict";
function showAudioMenu(context, player, button, item) { function showAudioMenu(context, player, button, item) {
@ -228,6 +228,11 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
buttonVisible(context.querySelector(".btnFastForward"), null != item); buttonVisible(context.querySelector(".btnFastForward"), null != item);
var positionSlider = context.querySelector(".nowPlayingPositionSlider"); var positionSlider = context.querySelector(".nowPlayingPositionSlider");
if (positionSlider && item && item.RunTimeTicks) {
positionSlider.setKeyboardSteps(userSettings.skipBackLength() * 1000000 / item.RunTimeTicks,
userSettings.skipForwardLength() * 1000000 / item.RunTimeTicks);
}
if (positionSlider && !positionSlider.dragging) { if (positionSlider && !positionSlider.dragging) {
positionSlider.disabled = !playState.CanSeek; positionSlider.disabled = !playState.CanSeek;
var isProgressClear = state.MediaSource && null == state.MediaSource.RunTimeTicks; var isProgressClear = state.MediaSource && null == state.MediaSource.RunTimeTicks;
@ -693,6 +698,12 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
context.querySelector(".sendMessageForm").addEventListener("submit", onMessageSubmit); context.querySelector(".sendMessageForm").addEventListener("submit", onMessageSubmit);
context.querySelector(".typeTextForm").addEventListener("submit", onSendStringSubmit); context.querySelector(".typeTextForm").addEventListener("submit", onSendStringSubmit);
events.on(playbackManager, "playerchange", onPlayerChange); events.on(playbackManager, "playerchange", onPlayerChange);
if (layoutManager.tv) {
var positionSlider = context.querySelector(".nowPlayingPositionSlider");
positionSlider.classList.add("focusable");
positionSlider.enableKeyboardDragging();
}
} }
function onDialogClosed(e) { function onDialogClosed(e) {

View file

@ -12,7 +12,7 @@
<input type="range" is="emby-slider" pin step="1" min="0" max="100" value="0" class="nowPlayingPositionSlider" data-slider-keep-progress="true" /> <input type="range" is="emby-slider" pin step="1" min="0" max="100" value="0" class="nowPlayingPositionSlider" data-slider-keep-progress="true" />
</div> </div>
<div class="nowPlayingInfoButtons"> <div class="nowPlayingInfoButtons focuscontainer-x">
<button is="paper-icon-button-light" class="btnPreviousTrack btnPlayStateCommand autoSize" title="${ButtonPreviousTrack}"> <button is="paper-icon-button-light" class="btnPreviousTrack btnPlayStateCommand autoSize" title="${ButtonPreviousTrack}">
<i class="material-icons skip_previous"></i> <i class="material-icons skip_previous"></i>
</button> </button>

View file

@ -12,6 +12,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
html += "</div>"; html += "</div>";
html += '<div class="headerRight">'; html += '<div class="headerRight">';
html += '<span class="headerSelectedPlayer"></span>'; html += '<span class="headerSelectedPlayer"></span>';
html += '<button is="paper-icon-button-light" class="headerAudioPlayerButton audioPlayerButton headerButton headerButtonRight hide"><i class="material-icons music_note"></i></button>';
html += '<button is="paper-icon-button-light" class="headerCastButton castButton headerButton headerButtonRight hide"><i class="material-icons">cast</i></button>'; html += '<button is="paper-icon-button-light" class="headerCastButton castButton headerButton headerButtonRight hide"><i class="material-icons">cast</i></button>';
html += '<button type="button" is="paper-icon-button-light" class="headerButton headerButtonRight headerSearchButton hide"><i class="material-icons">search</i></button>'; html += '<button type="button" is="paper-icon-button-light" class="headerButton headerButtonRight headerSearchButton hide"><i class="material-icons">search</i></button>';
html += '<button is="paper-icon-button-light" class="headerButton headerButtonRight headerUserButton hide"><i class="material-icons">person</i></button>'; html += '<button is="paper-icon-button-light" class="headerButton headerButtonRight headerUserButton hide"><i class="material-icons">person</i></button>';
@ -27,6 +28,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
headerHomeButton = skinHeader.querySelector(".headerHomeButton"); headerHomeButton = skinHeader.querySelector(".headerHomeButton");
headerUserButton = skinHeader.querySelector(".headerUserButton"); headerUserButton = skinHeader.querySelector(".headerUserButton");
headerCastButton = skinHeader.querySelector(".headerCastButton"); headerCastButton = skinHeader.querySelector(".headerCastButton");
headerAudioPlayerButton = skinHeader.querySelector(".headerAudioPlayerButton");
headerSearchButton = skinHeader.querySelector(".headerSearchButton"); headerSearchButton = skinHeader.querySelector(".headerSearchButton");
lazyLoadViewMenuBarImages(); lazyLoadViewMenuBarImages();
@ -116,6 +118,10 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
Dashboard.navigate("home.html"); Dashboard.navigate("home.html");
} }
function showAudioPlayer() {
return appRouter.showNowPlaying();
}
function bindMenuEvents() { function bindMenuEvents() {
mainDrawerButton = document.querySelector(".mainDrawerButton"); mainDrawerButton = document.querySelector(".mainDrawerButton");
@ -140,9 +146,27 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
headerCastButton.addEventListener("click", onCastButtonClicked); headerCastButton.addEventListener("click", onCastButtonClicked);
} }
headerAudioPlayerButton.addEventListener("click", showAudioPlayer);
if (layoutManager.mobile) { if (layoutManager.mobile) {
initHeadRoom(skinHeader); initHeadRoom(skinHeader);
} }
events.on(playbackManager, 'playbackstart', onPlaybackStart);
events.on(playbackManager, 'playbackstop', onPlaybackStop);
}
function onPlaybackStart(e) {
if (playbackManager.isPlayingAudio() && layoutManager.tv) {
headerAudioPlayerButton.classList.remove("hide");
} else {
headerAudioPlayerButton.classList.add("hide");
}
}
function onPlaybackStop(e, stopInfo) {
if (stopInfo.nextMediaType != 'Audio') {
headerAudioPlayerButton.classList.add("hide");
}
} }
function onCastButtonClicked() { function onCastButtonClicked() {
@ -763,6 +787,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
var currentUser; var currentUser;
var headerCastButton; var headerCastButton;
var headerSearchButton; var headerSearchButton;
var headerAudioPlayerButton;
var enableLibraryNavDrawer = !layoutManager.tv; var enableLibraryNavDrawer = !layoutManager.tv;
var skinHeader = document.querySelector(".skinHeader"); var skinHeader = document.querySelector(".skinHeader");
var requiresUserRefresh = true; var requiresUserRefresh = true;

View file

@ -989,10 +989,6 @@ var AppInfo = {};
Dashboard.navigate("mypreferencesmenu.html"); Dashboard.navigate("mypreferencesmenu.html");
}; };
appRouter.showNowPlaying = function () {
Dashboard.navigate("nowplaying.html");
};
appRouter.setTitle = function (title) { appRouter.setTitle = function (title) {
LibraryMenu.setTitle(title); LibraryMenu.setTitle(title);
}; };