mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
#762 - Marking unwatched doesn't update display
This commit is contained in:
parent
43d35c0f6f
commit
121f5e2b28
1 changed files with 140 additions and 106 deletions
|
@ -26,116 +26,146 @@
|
||||||
|
|
||||||
ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {
|
ApiClient.getItem(Dashboard.getCurrentUserId(), id).done(function (item) {
|
||||||
|
|
||||||
currentItem = item;
|
reloadFromItem(page, item);
|
||||||
|
|
||||||
var context = getContext(item);
|
|
||||||
|
|
||||||
renderHeader(page, item, context);
|
|
||||||
|
|
||||||
LibraryBrowser.renderName(item, $('.itemName', page));
|
|
||||||
LibraryBrowser.renderParentName(item, $('.parentName', page));
|
|
||||||
|
|
||||||
Dashboard.getCurrentUser().done(function (user) {
|
|
||||||
|
|
||||||
var imageHref = user.Configuration.IsAdministrator ? "edititemimages.html?id=" + item.Id : "";
|
|
||||||
|
|
||||||
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item, imageHref));
|
|
||||||
|
|
||||||
setInitialCollapsibleState(page, item, context, user);
|
|
||||||
renderDetails(page, item, context);
|
|
||||||
LibraryBrowser.renderDetailPageBackdrop(page, item);
|
|
||||||
|
|
||||||
if (user.Configuration.IsAdministrator) {
|
|
||||||
$('.btnEdit', page).removeClass('hide');
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$('.btnEdit', page).addClass('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
var externalPlayUrl = getExternalPlayUrl(item);
|
|
||||||
$('.btnPlayExternal', page).attr('href', externalPlayUrl || '#');
|
|
||||||
|
|
||||||
if (externalPlayUrl) {
|
|
||||||
$('.btnPlayExternal', page).removeClass('hide');
|
|
||||||
$('.btnPlay', page).addClass('hide');
|
|
||||||
}
|
|
||||||
else if (MediaController.canPlay(item)) {
|
|
||||||
$('.btnPlay', page).removeClass('hide');
|
|
||||||
$('.btnPlayExternal', page).addClass('hide');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('.btnPlay', page).addClass('hide');
|
|
||||||
$('.btnPlayExternal', page).addClass('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.LocalTrailerCount && item.PlayAccess == 'Full') {
|
|
||||||
$('.btnPlayTrailer', page).removeClass('hide');
|
|
||||||
} else {
|
|
||||||
$('.btnPlayTrailer', page).addClass('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!item.LocalTrailerCount && item.RemoteTrailers.length && item.PlayAccess == 'Full') {
|
|
||||||
|
|
||||||
$('.btnPlayExternalTrailer', page).removeClass('hide').attr('href', item.RemoteTrailers[0].Url);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
$('.btnPlayExternalTrailer', page).addClass('hide').attr('href', '#');
|
|
||||||
}
|
|
||||||
|
|
||||||
var groupedVersions = (item.MediaSources || []).filter(function (g) {
|
|
||||||
return g.Type == "Grouping";
|
|
||||||
});
|
|
||||||
|
|
||||||
if (user.Configuration.IsAdministrator && groupedVersions.length) {
|
|
||||||
$('.splitVersionContainer', page).show();
|
|
||||||
} else {
|
|
||||||
$('.splitVersionContainer', page).hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (item.LocationType == "Offline") {
|
|
||||||
|
|
||||||
$('.offlineIndicator', page).show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('.offlineIndicator', page).hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
var isMissingEpisode = false;
|
|
||||||
|
|
||||||
if (item.LocationType == "Virtual" && item.Type == "Episode") {
|
|
||||||
try {
|
|
||||||
if (item.PremiereDate && (new Date().getTime() >= parseISO8601Date(item.PremiereDate, { toLocal: true }).getTime())) {
|
|
||||||
isMissingEpisode = true;
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isMissingEpisode) {
|
|
||||||
|
|
||||||
$('.missingIndicator', page).show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('.missingIndicator', page).hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
setPeopleHeader(page, item);
|
|
||||||
|
|
||||||
$(page).trigger('displayingitem', [{
|
|
||||||
|
|
||||||
item: item,
|
|
||||||
context: context
|
|
||||||
}]);
|
|
||||||
|
|
||||||
Dashboard.hideLoadingMsg();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.btnEdit', page).attr('href', "edititemmetadata.html?id=" + id);
|
$('.btnEdit', page).attr('href', "edititemmetadata.html?id=" + id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function reloadFromItem(page, item) {
|
||||||
|
|
||||||
|
currentItem = item;
|
||||||
|
|
||||||
|
var context = getContext(item);
|
||||||
|
|
||||||
|
renderHeader(page, item, context);
|
||||||
|
|
||||||
|
LibraryBrowser.renderName(item, $('.itemName', page));
|
||||||
|
LibraryBrowser.renderParentName(item, $('.parentName', page));
|
||||||
|
|
||||||
|
Dashboard.getCurrentUser().done(function (user) {
|
||||||
|
|
||||||
|
var imageHref = user.Configuration.IsAdministrator ? "edititemimages.html?id=" + item.Id : "";
|
||||||
|
|
||||||
|
$('#itemImage', page).html(LibraryBrowser.getDetailImageHtml(item, imageHref));
|
||||||
|
|
||||||
|
setInitialCollapsibleState(page, item, context, user);
|
||||||
|
renderDetails(page, item, context);
|
||||||
|
LibraryBrowser.renderDetailPageBackdrop(page, item);
|
||||||
|
|
||||||
|
if (user.Configuration.IsAdministrator) {
|
||||||
|
$('.btnEdit', page).removeClass('hide');
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$('.btnEdit', page).addClass('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
var externalPlayUrl = getExternalPlayUrl(item);
|
||||||
|
$('.btnPlayExternal', page).attr('href', externalPlayUrl || '#');
|
||||||
|
|
||||||
|
if (externalPlayUrl) {
|
||||||
|
$('.btnPlayExternal', page).removeClass('hide');
|
||||||
|
$('.btnPlay', page).addClass('hide');
|
||||||
|
}
|
||||||
|
else if (MediaController.canPlay(item)) {
|
||||||
|
$('.btnPlay', page).removeClass('hide');
|
||||||
|
$('.btnPlayExternal', page).addClass('hide');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('.btnPlay', page).addClass('hide');
|
||||||
|
$('.btnPlayExternal', page).addClass('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.LocalTrailerCount && item.PlayAccess == 'Full') {
|
||||||
|
$('.btnPlayTrailer', page).removeClass('hide');
|
||||||
|
} else {
|
||||||
|
$('.btnPlayTrailer', page).addClass('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!item.LocalTrailerCount && item.RemoteTrailers.length && item.PlayAccess == 'Full') {
|
||||||
|
|
||||||
|
$('.btnPlayExternalTrailer', page).removeClass('hide').attr('href', item.RemoteTrailers[0].Url);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$('.btnPlayExternalTrailer', page).addClass('hide').attr('href', '#');
|
||||||
|
}
|
||||||
|
|
||||||
|
var groupedVersions = (item.MediaSources || []).filter(function (g) {
|
||||||
|
return g.Type == "Grouping";
|
||||||
|
});
|
||||||
|
|
||||||
|
if (user.Configuration.IsAdministrator && groupedVersions.length) {
|
||||||
|
$('.splitVersionContainer', page).show();
|
||||||
|
} else {
|
||||||
|
$('.splitVersionContainer', page).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (item.LocationType == "Offline") {
|
||||||
|
|
||||||
|
$('.offlineIndicator', page).show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('.offlineIndicator', page).hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
var isMissingEpisode = false;
|
||||||
|
|
||||||
|
if (item.LocationType == "Virtual" && item.Type == "Episode") {
|
||||||
|
try {
|
||||||
|
if (item.PremiereDate && (new Date().getTime() >= parseISO8601Date(item.PremiereDate, { toLocal: true }).getTime())) {
|
||||||
|
isMissingEpisode = true;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isMissingEpisode) {
|
||||||
|
|
||||||
|
$('.missingIndicator', page).show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('.missingIndicator', page).hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
setPeopleHeader(page, item);
|
||||||
|
|
||||||
|
$(page).trigger('displayingitem', [{
|
||||||
|
|
||||||
|
item: item,
|
||||||
|
context: context
|
||||||
|
}]);
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg();
|
||||||
|
}
|
||||||
|
|
||||||
|
function onWebSocketMessage(e, data) {
|
||||||
|
|
||||||
|
var msg = data;
|
||||||
|
var page = $.mobile.activePage;
|
||||||
|
|
||||||
|
if (msg.MessageType === "UserDataChanged") {
|
||||||
|
|
||||||
|
if (currentItem && msg.Data.UserId == Dashboard.getCurrentUserId()) {
|
||||||
|
|
||||||
|
var key = currentItem.UserData.Key;
|
||||||
|
|
||||||
|
var userData = msg.Data.UserDataList.filter(function (u) {
|
||||||
|
|
||||||
|
return u.Key == key;
|
||||||
|
})[0];
|
||||||
|
|
||||||
|
if (userData) {
|
||||||
|
currentItem.UserData = userData;
|
||||||
|
reloadFromItem(page, currentItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function setPeopleHeader(page, item) {
|
function setPeopleHeader(page, item) {
|
||||||
|
|
||||||
if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.MediaType == "Book" || item.MediaType == "Photo") {
|
if (item.Type == "Audio" || item.Type == "MusicAlbum" || item.MediaType == "Book" || item.MediaType == "Photo") {
|
||||||
|
@ -1458,6 +1488,8 @@
|
||||||
|
|
||||||
reload(page);
|
reload(page);
|
||||||
|
|
||||||
|
$(ApiClient).on('websocketmessage', onWebSocketMessage);
|
||||||
|
|
||||||
}).on('pagehide', "#itemDetailPage", function () {
|
}).on('pagehide', "#itemDetailPage", function () {
|
||||||
|
|
||||||
currentItem = null;
|
currentItem = null;
|
||||||
|
@ -1465,6 +1497,8 @@
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
$(page).off("click.moreScenes").off("click.morePeople").off("click.moreSpecials").off("click.moreCriticReviews");
|
$(page).off("click.moreScenes").off("click.morePeople").off("click.moreSpecials").off("click.moreCriticReviews");
|
||||||
|
|
||||||
|
$(ApiClient).off('websocketmessage', onWebSocketMessage);
|
||||||
});
|
});
|
||||||
|
|
||||||
function itemDetailPage() {
|
function itemDetailPage() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue