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

Merge upstream/master

This commit is contained in:
Tim Hobbs 2014-03-20 01:58:16 -07:00
commit 48ce08d2aa
39 changed files with 229 additions and 195 deletions

View file

@ -28,16 +28,14 @@
updateFilterControls();
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
html += LibraryBrowser.getPosterViewHtml({
items: result.Items,
useAverageAspectRatio: true,
shape: "backdrop",
showTitle: true,
showParentTitle: true,
overlayText: true
overlayText: true,
selectionPanel: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
@ -263,6 +261,12 @@
reloadItems(page);
});
$('.itemsContainer', page).on('needsrefresh', function () {
reloadItems(page);
});
}).on('pagebeforeshow', "#episodesPage", function () {
var limit = LibraryBrowser.getDefaultPageSize();

View file

@ -27,9 +27,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "auto",

View file

@ -57,11 +57,27 @@
$('#playExternalButtonContainer', page).hide();
}
if (item.LocalTrailerCount && item.LocationType !== "Offline" && item.PlayAccess == 'Full') {
if (item.LocalTrailerCount && item.PlayAccess == 'Full') {
$('#trailerButtonContainer', page).show();
} else {
$('#trailerButtonContainer', page).hide();
}
if (!item.LocalTrailerCount && item.RemoteTrailers.length && item.PlayAccess == 'Full') {
$('#externalTrailerButtonContainer', page).show();
$('#btnPlayExternalTrailer', page).attr('href', item.RemoteTrailers[0].Url);
} else {
$('#externalTrailerButtonContainer', page).hide();
$('#btnPlayExternalTrailer', page).attr('href', '#');
}
if (user.Configuration.IsAdministrator) {
$('.btnSplitVersions', page).show();
} else {
$('.btnSplitVersions', page).hide();
}
});
if (item.LocationType == "Offline") {
@ -203,12 +219,7 @@
$('#scenesCollapsible', page).show();
renderScenes(page, item, user, 4);
}
if (item.LocalTrailerCount || !item.RemoteTrailers.length || item.Type == "Trailer") {
$('#trailersCollapsible', page).addClass('hide');
} else {
$('#trailersCollapsible', page).removeClass('hide');
renderTrailers(page, item, user);
}
if (!item.SpecialFeatureCount || item.SpecialFeatureCount == 0 || item.Type == "Series") {
$('#specialsCollapsible', page).addClass('hide');
} else {
@ -745,7 +756,7 @@
ApiClient.getCriticReviews(item.Id, options).done(function (result) {
if (result.TotalRecordCount || item.CriticRatingSummary) {
if (result.TotalRecordCount || item.CriticRatingSummary || item.AwardSummary) {
$('#criticReviewsCollapsible', page).show();
renderCriticReviewsContent(page, result, limit);
} else {
@ -897,27 +908,34 @@
function renderAlternateVersions(page, item, user) {
var url = ApiClient.getUrl("Videos/" + item.Id + "/AlternateVersions", {
var url = ApiClient.getUrl("Videos/" + item.Id + "/Versions", {
userId: user.Id
});
$.getJSON(url).done(function (result) {
$.getJSON(url).done(function (items) {
if (result.Items.length) {
if (items.length) {
$('#alternateVersionsCollapsible', page).show();
var html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
items: items.map(function (i) {
var extended = $.extend({}, item, i);
extended.Id = item.Id;
return extended;
}),
shape: "portrait",
context: 'movies',
useAverageAspectRatio: true,
showTitle: true,
centerText: true,
formatIndicators: true
formatIndicators: true,
linkItem: false,
showProgress: false,
showUnplayedIndicator: false
});
$('#alternateVersionsContent', page).html(html).trigger('create').createPosterItemMenus();
$('#alternateVersionsContent', page).html(html).trigger('create');
} else {
$('#alternateVersionsCollapsible', page).hide();
}
@ -1015,7 +1033,7 @@
}
if (stream.Width || stream.Height) {
attributes.push('<span class="mediaInfoAttribute" id="mediaWidthHeight" data-width="' + stream.Width + '" data-height="' + stream.Height + '">' + stream.Width + 'x' + stream.Height + '</span>');
attributes.push('<span class="mediaInfoAttribute">' + stream.Width + 'x' + stream.Height + '</span>');
}
if (stream.AspectRatio && stream.Codec != "mjpeg") {
@ -1122,38 +1140,6 @@
});
}
function renderTrailers(page, item, user) {
if (item.Type == "Trailer") {
$('#trailerSectionHeader', page).html('More trailers');
} else {
$('#trailerSectionHeader', page).html('Trailers');
}
var remoteTrailersHtml = '';
for (var i = 0, length = item.RemoteTrailers.length; i < length; i++) {
var trailer = item.RemoteTrailers[i];
var id = getParameterByName('v', trailer.Url);
if (id) {
remoteTrailersHtml += '<iframe class="posterItem smallBackdropPosterItem" style="margin:0 3px;width:auto;" src="//www.youtube.com/embed/' + id + '?wmode=opaque" frameborder="0" allowfullscreen></iframe>';
}
}
var elem = $('#trailersContent', page).html(remoteTrailersHtml).css({ "position": "relative", "z-index": 0 });
if (item.LocalTrailerCount) {
ApiClient.getLocalTrailers(user.Id, item.Id).done(function (trailers) {
elem.prepend(getVideosHtml(trailers, user));
});
}
}
function renderCast(page, item, context, limit) {
var html = '';
@ -1226,6 +1212,39 @@
MediaPlayer.play([currentItem], startPosition);
}
function splitVersions(page) {
var id = getParameterByName('id');
Dashboard.confirm("Are you sure you wish to split the versions apart into separate items?", "Split Versions Apart", function (confirmResult) {
if (confirmResult) {
Dashboard.showLoadingMsg();
$.ajax({
type: "DELETE",
url: ApiClient.getUrl("Videos/" + id + "/AlternateVersions")
}).done(function () {
Dashboard.hideLoadingMsg();
reload(page);
});
}
});
}
function playTrailer(page) {
ApiClient.getLocalTrailers(Dashboard.getCurrentUserId(), currentItem.Id).done(function (trailers) {
MediaPlayer.play(trailers);
});
}
$(document).on('pageinit', "#itemDetailPage", function () {
var page = this;
@ -1243,12 +1262,7 @@
});
$('#btnPlayTrailer', page).on('click', function () {
ApiClient.getLocalTrailers(Dashboard.getCurrentUserId(), currentItem.Id).done(function (trailers) {
MediaPlayer.play(trailers);
});
playTrailer(page);
});
$('#btnPlayExternal', page).on('click', function () {
@ -1269,6 +1283,11 @@
});
});
$('.btnSplitVersions', page).on('click', function () {
splitVersions(page);
});
}).on('pageshow', "#itemDetailPage", function () {
var page = this;

View file

@ -30,9 +30,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Backdrop") {
html = LibraryBrowser.getPosterViewHtml({

View file

@ -665,7 +665,9 @@
cssClass += ' ' + options.shape + 'PosterItem';
html += '<a data-itemid="' + item.Id + '" class="' + cssClass + '" data-primaryversionid="' + (item.PrimaryVersionId || '') + '" data-locationtype="' + item.LocationType + '" data-mediatype="' + (item.MediaType || '') + '" href="' + LibraryBrowser.getHref(item, options.context) + '">';
var href = options.linkItem === false ? '#' : LibraryBrowser.getHref(item, options.context);
html += '<a data-itemid="' + item.Id + '" class="' + cssClass + '" data-alternateversioncount="' + (item.AlternateVersionCount || '0') + '" href="' + href + '">';
// Ribbon
if (item.MediaType == "Video" && options.formatIndicators) {
@ -706,7 +708,7 @@
imageCssClass += " coveredPosterItemImage";
}
var progressHtml = LibraryBrowser.getItemProgressBarHtml(item);
var progressHtml = options.showProgress === false ? '' : LibraryBrowser.getItemProgressBarHtml(item);
html += '<div class="' + imageCssClass + '" style="' + style + '">';
@ -731,7 +733,7 @@
var chkItemSelectId = 'chkItemSelect' + i;
// Render this pre-enhanced to save on jquery mobile dom manipulation
html += '<div class="itemSelectionPanel" onclick="return false;"><div class="ui-checkbox"><label class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-checkbox-off" for="' + chkItemSelectId + '">Select</label><input id="' + chkItemSelectId + '" type="checkbox" class="chkItemSelect" data-enhanced="true" /></div></div>';
html += '<div class="itemSelectionPanel" onclick="return false;" style="display:none;"><div class="ui-checkbox ui-mini"><label class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-checkbox-off" for="' + chkItemSelectId + '">Select</label><input id="' + chkItemSelectId + '" type="checkbox" class="chkItemSelect" data-enhanced="true" /></div></div>';
}
@ -1158,21 +1160,6 @@
}
},
getViewSummaryHtml: function (query, checkedSortOption) {
var html = '';
if (query.SortBy) {
var id = checkedSortOption[0].id;
var sortBy = checkedSortOption.siblings('label[for=' + id + ']').text();
html += 'Sorted by ' + sortBy.trim().toLowerCase() + ', ' + (query.SortOrder || 'ascending').toLowerCase();
}
return html;
},
getPagingHtml: function (query, totalRecordCount, updatePageSizeSetting, pageSizes, showLimit) {
if (query.Limit && updatePageSizeSetting !== false) {

View file

@ -166,6 +166,34 @@
function onMenuCommand(command, elem) {
var id = elem.getAttribute('data-itemid');
var page = $(elem).parents('.page');
if (command == 'SplitVersions') {
splitVersions(id, page);
}
}
function splitVersions(id, page) {
Dashboard.confirm("Are you sure you wish to split the versions apart into separate items?", "Split Versions Apart", function (confirmResult) {
if (confirmResult) {
Dashboard.showLoadingMsg();
$.ajax({
type: "DELETE",
url: ApiClient.getUrl("Videos/" + id + "/AlternateVersions")
}).done(function () {
Dashboard.hideLoadingMsg();
$('.itemsContainer', page).trigger('needsrefresh');
});
}
});
}
function getContextMenuOptions(elem) {
@ -173,7 +201,6 @@
var items = [];
var id = elem.getAttribute('data-itemid');
var mediatype = elem.getAttribute('data-mediatype');
items.push({ type: 'header', text: 'Edit' });
@ -181,12 +208,12 @@
items.push({ type: 'link', text: 'Images', url: 'edititemimages.html?id=' + id });
//if (mediatype == 'Video' && elem.getAttribute('data-locationtype') == 'FileSystem' && !elem.getAttribute('data-primaryversionid')) {
if (elem.getAttribute('data-alternateversioncount') != '0') {
// items.push({ type: 'divider' });
// items.push({ type: 'header', text: 'Manage' });
// items.push({ type: 'command', text: 'Alternate Versions', name: 'AlternateVersions' });
//}
items.push({ type: 'divider' });
items.push({ type: 'header', text: 'Manage' });
items.push({ type: 'command', text: 'Split Versions Apart', name: 'SplitVersions' });
}
return items;
}
@ -201,7 +228,7 @@
return;
}
if ($('.itemSelectionPanel', elem).length) {
if ($('.itemSelectionPanel:visible', elem).length) {
return;
}
@ -260,11 +287,11 @@
if (user.Configuration.IsAdministrator) {
//sequence.createContextMenu({
// getOptions: getContextMenuOptions,
// command: onMenuCommand,
// selector: '.posterItem'
//});
sequence.createContextMenu({
getOptions: getContextMenuOptions,
command: onMenuCommand,
selector: '.posterItem'
});
}
});
@ -290,6 +317,8 @@
selectionCommands.show();
$('.itemSelectionPanel', page).show();
$('.chkItemSelect:checked', page).checked(false).checkboxradio('refresh');
}
Dashboard.hideLoadingMsg();
@ -301,25 +330,25 @@
$('.itemSelectionPanel', page).hide();
}
function getSelectedItems(page) {
var selection = $('.chkItemSelect:checked', page);
return selection.parents('.posterItem')
.map(function() {
.map(function () {
return this.getAttribute('data-itemid');
}).get();
}
function combineVersions(page) {
var selection = getSelectedItems(page);
if (selection.length < 2) {
Dashboard.alert({
message: "Please select two or more items to combine.",
title: "Error"
@ -328,7 +357,36 @@
return;
}
hideSelections();
var names = $('.chkItemSelect:checked', page).parents('.posterItem').get().reverse().map(function (e) {
return $('.posterItemText', e).html();
}).join('<br/>');
var msg = "The following titles will be grouped into one item:<br/><br/>" + names;
msg += "<br/><br/>Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?";
Dashboard.confirm(msg, "Group Versions", function (confirmResult) {
if (confirmResult) {
Dashboard.showLoadingMsg();
$.ajax({
type: "POST",
url: ApiClient.getUrl("Videos/MergeVersions", { Ids: selection.join(',') })
}).done(function () {
Dashboard.hideLoadingMsg();
hideSelections();
$('.itemsContainer', page).trigger('needsrefresh');
});
}
});
}
$(document).on('pageinit', ".libraryPage", function () {
@ -339,10 +397,6 @@
toggleSelections(page);
});
$('.itemsContainer', page).on('listrender', function () {
hideSelections(page);
});
$('.btnMergeVersions', page).on('click', function () {
combineVersions(page);
});

View file

@ -28,9 +28,6 @@
if (result.TotalRecordCount) {
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "portrait",

View file

@ -29,9 +29,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
@ -70,7 +67,7 @@
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount);
$('#items', page).html(html).trigger('create').createPosterItemMenus().trigger('listrender');
$('#items', page).html(html).trigger('create').createPosterItemMenus();
$('.btnNextPage', page).on('click', function () {
query.StartIndex += query.Limit;
@ -345,6 +342,12 @@
reloadItems(page);
});
$('.itemsContainer', page).on('needsrefresh', function() {
reloadItems(page);
});
}).on('pagebeforeshow', "#moviesPage", function () {
var page = this;

View file

@ -26,9 +26,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "portrait",

View file

@ -28,9 +28,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Poster") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,

View file

@ -26,9 +26,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "square",

View file

@ -102,11 +102,11 @@
hours = 0;
}
hours = hours.toFixed(0);
hours = Math.floor(hours);
ticks -= (hours * 36000000000);
var minutes = (ticks / 600000000).toFixed(0);
var minutes = Math.floor((ticks / 600000000));
var suffix = "am";

View file

@ -47,9 +47,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
html += LibraryBrowser.getSongTableHtml(result.Items, {
showAlbum: true,
showArtist: true,

View file

@ -28,9 +28,6 @@
updateFilterControls(page);
var checkSortOption = $('.radioSortBy:checked', page);
$('.viewSummary', page).html(LibraryBrowser.getViewSummaryHtml(query, checkSortOption)).trigger('create');
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({