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 () {
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";
function showAudioMenu(context, player, button, item) {
@ -228,6 +228,11 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
buttonVisible(context.querySelector(".btnFastForward"), null != item);
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) {
positionSlider.disabled = !playState.CanSeek;
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(".typeTextForm").addEventListener("submit", onSendStringSubmit);
events.on(playbackManager, "playerchange", onPlayerChange);
if (layoutManager.tv) {
var positionSlider = context.querySelector(".nowPlayingPositionSlider");
positionSlider.classList.add("focusable");
positionSlider.enableKeyboardDragging();
}
}
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" />
</div>
<div class="nowPlayingInfoButtons">
<div class="nowPlayingInfoButtons focuscontainer-x">
<button is="paper-icon-button-light" class="btnPreviousTrack btnPlayStateCommand autoSize" title="${ButtonPreviousTrack}">
<i class="material-icons skip_previous"></i>
</button>

View file

@ -12,6 +12,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
html += "</div>";
html += '<div class="headerRight">';
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 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>';
@ -27,6 +28,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
headerHomeButton = skinHeader.querySelector(".headerHomeButton");
headerUserButton = skinHeader.querySelector(".headerUserButton");
headerCastButton = skinHeader.querySelector(".headerCastButton");
headerAudioPlayerButton = skinHeader.querySelector(".headerAudioPlayerButton");
headerSearchButton = skinHeader.querySelector(".headerSearchButton");
lazyLoadViewMenuBarImages();
@ -116,6 +118,10 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
Dashboard.navigate("home.html");
}
function showAudioPlayer() {
return appRouter.showNowPlaying();
}
function bindMenuEvents() {
mainDrawerButton = document.querySelector(".mainDrawerButton");
@ -140,9 +146,27 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
headerCastButton.addEventListener("click", onCastButtonClicked);
}
headerAudioPlayerButton.addEventListener("click", showAudioPlayer);
if (layoutManager.mobile) {
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() {
@ -763,6 +787,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
var currentUser;
var headerCastButton;
var headerSearchButton;
var headerAudioPlayerButton;
var enableLibraryNavDrawer = !layoutManager.tv;
var skinHeader = document.querySelector(".skinHeader");
var requiresUserRefresh = true;

View file

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