mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
add specialized get seasons method
This commit is contained in:
parent
f5b62182b5
commit
878bad724a
20 changed files with 103 additions and 72 deletions
|
@ -22,7 +22,7 @@
|
|||
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);
|
||||
|
@ -509,21 +509,32 @@
|
|||
|
||||
var promise;
|
||||
|
||||
if (item.Type == "Season" && item.IndexNumber != null) {
|
||||
if (item.Type == "Series") {
|
||||
|
||||
promise = ApiClient.getEpisodes(item.SeriesId, {
|
||||
promise = ApiClient.getSeasons(item.Id, {
|
||||
|
||||
season: item.IndexNumber,
|
||||
userId: Dashboard.getCurrentUserId()
|
||||
});
|
||||
}
|
||||
else if (item.Type == "Season" && item.IndexNumber != null) {
|
||||
|
||||
else if (item.Type == "Series" || item.Type == "Season") {
|
||||
if (!user.Configuration.DisplayMissingEpisodes) {
|
||||
query.IsMissing = false;
|
||||
}
|
||||
if (!user.Configuration.DisplayUnairedEpisodes) {
|
||||
query.IsVirtualUnaired = false;
|
||||
if (item.IndexNumber == null) {
|
||||
|
||||
// If there's no known season number, just use generic folder browsing
|
||||
if (!user.Configuration.DisplayMissingEpisodes) {
|
||||
query.IsMissing = false;
|
||||
}
|
||||
if (!user.Configuration.DisplayUnairedEpisodes) {
|
||||
query.IsVirtualUnaired = false;
|
||||
}
|
||||
} else {
|
||||
|
||||
// Use dedicated episodes endpoint
|
||||
promise = ApiClient.getEpisodes(item.SeriesId, {
|
||||
|
||||
season: item.IndexNumber,
|
||||
userId: Dashboard.getCurrentUserId()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -607,7 +618,7 @@
|
|||
|
||||
var html = '';
|
||||
|
||||
var reviews = result.ItemReviews;
|
||||
var reviews = result.Items;
|
||||
|
||||
for (var i = 0, length = reviews.length; i < length; i++) {
|
||||
|
||||
|
|
|
@ -151,18 +151,12 @@
|
|||
|
||||
if (node == '-1') {
|
||||
|
||||
callback({ attr: { id: 'root', rel: 'folder', itemtype: 'root' }, data: 'Root', state: 'open' });
|
||||
loadChildrenOfRootNode(callback);
|
||||
return;
|
||||
}
|
||||
|
||||
var id = node.attr("id");
|
||||
|
||||
if (id == 'root') {
|
||||
|
||||
loadChildrenOfRootNode(callback);
|
||||
return;
|
||||
}
|
||||
|
||||
if (id == 'livetv') {
|
||||
|
||||
loadLiveTvServices(openItems, callback);
|
||||
|
@ -989,7 +983,7 @@
|
|||
}
|
||||
var html = '';
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
html += '<li><a class="data">' + items[i] + '</a><a href="#" onclick="EditItemMetadataPage.removeElementFromListview(this)"></a></li>';
|
||||
html += '<li data-mini="true"><a class="data">' + items[i] + '</a><a href="#" onclick="EditItemMetadataPage.removeElementFromListview(this)" class="btnRemoveFromEditorList"></a></li>';
|
||||
}
|
||||
list.html(html).listview('refresh');
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
}
|
||||
|
||||
function constructPerson(item, person) {
|
||||
var html = '<div class="tileItem posterTileItem">';
|
||||
var html = '<div class="tileItem posterTileItem editorTile">';
|
||||
var imgUrl;
|
||||
var name = person.Name || "";
|
||||
var role = person.Role || "";
|
||||
|
@ -94,7 +94,7 @@
|
|||
|
||||
if (item.LocationType !== "Offline") {
|
||||
html += '<span class="read">';
|
||||
html += '<button type="button" class="edit" data-mini="true" data-inline="true" onclick="EditItemPeoplePage.displayEdit(this)">Edit</button>';
|
||||
html += '<button type="button" class="edit" data-mini="true" data-inline="true" data-icon="pencil" onclick="EditItemPeoplePage.displayEdit(this)">Edit</button>';
|
||||
html += '</span>';
|
||||
}
|
||||
|
||||
|
|
|
@ -1504,7 +1504,7 @@
|
|||
itemId = item.Name;
|
||||
}
|
||||
|
||||
if ((item.MediaType || item.IsFolder) && item.Type != "Channel") {
|
||||
if ((item.MediaType || item.IsFolder) && item.Type != "Channel" && item.Type != "MusicArtist") {
|
||||
if (userData.Played) {
|
||||
html += '<img data-type="' + type + '" data-itemid="' + itemId + '" class="imgUserItemRating imgPlayed" src="css/images/userdata/playedon.png" alt="Played" title="Played" onclick="LibraryBrowser.markPlayed(this);return false;" />';
|
||||
} else {
|
||||
|
|
|
@ -255,7 +255,7 @@ var Dashboard = {
|
|||
showServerRestartWarning: function (systemInfo) {
|
||||
|
||||
var html = '<span style="margin-right: 1em;">Please restart Media Browser Server to finish updating.</span>';
|
||||
|
||||
|
||||
if (systemInfo.CanSelfRestart) {
|
||||
html += '<button type="button" data-icon="refresh" onclick="$(this).button(\'disable\');Dashboard.restartServer();" data-theme="b" data-inline="true" data-mini="true">Restart Server</button>';
|
||||
}
|
||||
|
@ -279,7 +279,7 @@ var Dashboard = {
|
|||
reloadPage: function () {
|
||||
|
||||
var currentUrl = window.location.toString().toLowerCase();
|
||||
|
||||
|
||||
// If they're on a plugin config page just go back to the dashboard
|
||||
// The plugin may not have been loaded yet, or could have been uninstalled
|
||||
if (currentUrl.indexOf('configurationpage') != -1) {
|
||||
|
@ -644,6 +644,8 @@ var Dashboard = {
|
|||
}
|
||||
}
|
||||
|
||||
html += '<a href="edititemmetadata.html" style="margin-top: .5em;">Metadata Manager</a>';
|
||||
|
||||
// collapsible
|
||||
html += '</div>';
|
||||
|
||||
|
@ -1121,8 +1123,8 @@ var Dashboard = {
|
|||
|
||||
return parts.join(':');
|
||||
},
|
||||
|
||||
ratePackage: function(link) {
|
||||
|
||||
ratePackage: function (link) {
|
||||
var id = link.getAttribute('data-id');
|
||||
var name = link.getAttribute('data-name');
|
||||
var rating = link.getAttribute('data-rating');
|
||||
|
@ -1132,25 +1134,25 @@ var Dashboard = {
|
|||
header: "Rate and review " + name,
|
||||
id: id,
|
||||
rating: rating,
|
||||
callback: function(review) {
|
||||
callback: function (review) {
|
||||
console.log(review);
|
||||
dialog.close();
|
||||
|
||||
ApiClient.createPackageReview(review).done(function() {
|
||||
ApiClient.createPackageReview(review).done(function () {
|
||||
Dashboard.alert("Thank you for your review");
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
getStoreRatingHtml: function(rating, id, name, noLinks) {
|
||||
|
||||
getStoreRatingHtml: function (rating, id, name, noLinks) {
|
||||
|
||||
var html = "<div style='margin-left: 5px; margin-right: 5px; display: inline-block'>";
|
||||
if (!rating) rating = 0;
|
||||
|
||||
for (var i = 1; i <= 5; i++) {
|
||||
var title = noLinks ? rating + " stars" : "Rate " + i + (i > 1 ? " stars" : " star");
|
||||
|
||||
|
||||
html += noLinks ? "" : "<a href='#' data-id=" + id + " data-name='" + name + "' data-rating=" + i + " onclick='Dashboard.ratePackage(this);' >";
|
||||
if (rating <= i - 1) {
|
||||
html += "<div class='storeStarRating emptyStarRating' title='" + title + "'></div>";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue