1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
This commit is contained in:
Luke Pulverenti 2014-10-20 16:23:40 -04:00
parent 80f38f2eae
commit 50a8de7608
18 changed files with 384 additions and 111 deletions

View file

@ -1169,6 +1169,17 @@
$('#selectImageRefreshMode', page).val('missing').selectmenu('refresh');
}
function performSimpleRefresh(page) {
refreshWithOptions(page, {
Recursive: true,
ImageRefreshMode: 'FullRefresh',
MetadataRefreshMode: 'FullRefresh',
ReplaceAllMetadata: true
});
}
function refreshFromPopupOptions(page) {
var metadataRefreshMode = $('#selectMetadataRefreshMode', page).val();
@ -1208,6 +1219,11 @@
performAdvancedRefresh(page);
});
$('.btnSimpleRefresh', this).on('click', function () {
performSimpleRefresh(page);
});
$('#btnIdentify', page).on('click', function () {
showIdentificationForm(page);

View file

@ -598,7 +598,8 @@
if (item.Type == "Movie") {
promise = ApiClient.getSimilarMovies(item.Id, options);
}
else if (item.Type == "Trailer") {
else if (item.Type == "Trailer" ||
(item.Type == "ChannelVideoItem" && item.ExtraType == "Trailer")) {
promise = ApiClient.getSimilarTrailers(item.Id, options);
}
else if (item.Type == "MusicAlbum") {

View file

@ -19,7 +19,17 @@
var userId = Dashboard.getCurrentUserId();
ApiClient.getItems(userId, query).done(function (result) {
var parentItemPromise = query.ParentId ?
ApiClient.getItem(userId, query.ParentId) :
ApiClient.getRootFolder(userId);
var itemsPromise = ApiClient.getItems(userId, query);
$.when(parentItemPromise, itemsPromise).done(function(r1, r2) {
var item = r1[0];
currentItem = item;
var result = r2[0];
// Scroll back up so they can see the results from the beginning
$(document).scrollTop(0);
@ -43,6 +53,8 @@
context = 'folders';
}
var defaultAction = currentItem.Type == 'PhotoAlbum' ? 'photoslideshow' : null;
if (view == "Backdrop") {
html = LibraryBrowser.getPosterViewHtml({
@ -51,7 +63,8 @@
showTitle: true,
centerText: true,
preferBackdrop: true,
context: context
context: context,
defaultAction: defaultAction
});
}
else if (view == "Poster") {
@ -60,7 +73,8 @@
shape: "auto",
showTitle: true,
centerText: true,
context: context
context: context,
defaultAction: defaultAction
});
}
@ -80,17 +94,6 @@
LibraryBrowser.saveQueryValues(getParameterByName('parentId'), query);
Dashboard.hideLoadingMsg();
});
var promise = query.ParentId ?
ApiClient.getItem(userId, query.ParentId) :
ApiClient.getRootFolder(userId);
promise.done(function (item) {
currentItem = item;
var name = item.Name;
if (item.IndexNumber != null) {
@ -109,6 +112,7 @@
item: item
}]);
Dashboard.hideLoadingMsg();
});
Dashboard.getCurrentUser().done(function (user) {
@ -152,6 +156,48 @@
$('#selectPageSize', page).val(query.Limit).selectmenu('refresh');
}
function startSlideshow(page, index) {
index += (query.StartIndex || 0);
var userId = Dashboard.getCurrentUserId();
var localQuery = $.extend({}, query);
localQuery.StartIndex = 0;
localQuery.Limit = null;
localQuery.MediaTypes = "Photo";
localQuery.Recursive = true;
localQuery.Filters = "IsNotFolder";
ApiClient.getItems(userId, localQuery).done(function(result) {
showSlideshow(page, result.Items, index);
});
}
function showSlideshow(page, items, index) {
var slideshowItems = items.map(function (item) {
var imgUrl = ApiClient.getScaledImageUrl(item.Id, {
tag: item.ImageTags.Primary,
type: 'Primary'
});
return {
title: item.Name,
href: imgUrl
};
});
$.swipebox(slideshowItems, {
initialIndexOnArray: index || 0,
hideBarsDelay: 30000
});
}
$(document).on('pageinit', "#itemListPage", function () {
var page = this;
@ -219,6 +265,10 @@
reloadItems(page);
});
$('.itemsContainer', page).on('photoslideshow', function (e, index) {
startSlideshow(page, index);
});
}).on('pageshow', "#itemListPage", function () {
var page = this;

View file

@ -760,6 +760,9 @@
var action = elem.getAttribute('data-action');
var elemWithAttributes = elem.getAttribute('data-itemid') ? elem : elem.parentNode;
var index;
var itemsContainer;
var itemId = elemWithAttributes.getAttribute('data-itemid');
if (action == 'play') {
@ -767,13 +770,22 @@
}
else if (action == 'playallfromhere') {
var index = elemWithAttributes.getAttribute('data-index');
var itemsContainer = $(elem).parents('.itemsContainer');
index = elemWithAttributes.getAttribute('data-index');
itemsContainer = $(elem).parents('.itemsContainer');
closeContextMenu();
itemsContainer.trigger('playallfromhere', [index]);
}
else if (action == 'photoslideshow') {
itemsContainer = $(elem).parents('.itemsContainer');
index = $('.card', itemsContainer).get().indexOf(elem);
closeContextMenu();
itemsContainer.trigger('photoslideshow', [index]);
}
return false;
}
@ -861,6 +873,10 @@
function onUserDataChanged(userData) {
var cssClass = LibraryBrowser.getUserDataCssClass(userData.Key);
if (!cssClass) {
return;
}
$('.' + cssClass).each(function () {

View file

@ -83,7 +83,7 @@
userId: Dashboard.getCurrentUserId(),
categoryLimit: screenWidth >= 1200 ? 4 : 3,
ItemLimit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 6 : 5)),
ItemLimit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 7 : 7)),
Fields: "PrimaryImageAspectRatio"
});

View file

@ -1,25 +1,40 @@
(function ($, document) {
var view = LibraryBrowser.getDefaultItemsView('Poster', 'List');
// The base query options
var query = {
SortBy: "SortName",
SortOrder: "Ascending",
IncludeItemTypes: "Trailer",
Recursive: true,
Fields: "PrimaryImageAspectRatio",
Fields: "PrimaryImageAspectRatio,SortName",
StartIndex: 0
};
function getSavedQueryKey() {
return 'trailers' + (query.ParentId || '');
}
function reloadItems(page) {
Dashboard.showLoadingMsg();
ApiClient.getItems(Dashboard.getCurrentUserId(), query).done(function (result) {
query.UserId = Dashboard.getCurrentUserId();
ApiClient.getJSON(ApiClient.getUrl('Trailers', query)).done(function (result) {
// Scroll back up so they can see the results from the beginning
$(document).scrollTop(0);
if (result.Items.length) {
$('.noItemsMessage', page).hide();
}
else {
$('.noItemsMessage', page).show();
}
var html = '';
var pagingHtml = LibraryBrowser.getQueryPagingHtml({
@ -27,24 +42,76 @@
limit: query.Limit,
totalRecordCount: result.TotalRecordCount,
viewButton: true,
showLimit: false
showLimit: false,
addSelectionButton: true
});
$('.listTopPaging', page).html(pagingHtml).trigger('create');
updateFilterControls(page);
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "portrait",
context: 'movies',
showTitle: false,
centerText: true
});
if (view == "Thumb") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "backdrop",
preferThumb: true,
context: 'movies',
selectionPanel: true,
lazy: true,
overlayText: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Banner") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "banner",
preferBanner: true,
context: 'movies',
lazy: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "List") {
html = LibraryBrowser.getListViewHtml({
items: result.Items,
context: 'movies',
sortBy: query.SortBy
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Poster") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "portrait",
context: 'movies',
showTitle: false,
centerText: true,
selectionPanel: true,
lazy: true,
overlayText: true
});
$('.itemsContainer', page).removeClass('timelineItemsContainer');
}
else if (view == "Timeline") {
html = LibraryBrowser.getPosterViewHtml({
items: result.Items,
shape: "portrait",
context: 'movies',
showTitle: true,
timeline: true,
centerText: true,
selectionPanel: true,
lazy: true
});
$('.itemsContainer', page).addClass('timelineItemsContainer');
}
html += pagingHtml;
$('#items', page).html(html).trigger('create').createCardMenus();
$('.itemsContainer', page).html(html).trigger('create').createCardMenus();
$('.btnNextPage', page).on('click', function () {
query.StartIndex += query.Limit;
@ -56,7 +123,16 @@
reloadItems(page);
});
LibraryBrowser.saveQueryValues('movietrailers', query);
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
Dashboard.getCurrentUser().done(function (user) {
if (user.Configuration.EnableMediaPlayback && result.Items.length) {
$('.btnTrailerReel', page).show();
} else {
$('.btnTrailerReel', page).hide();
}
});
Dashboard.hideLoadingMsg();
});
@ -86,10 +162,33 @@
}).checkboxradio('refresh');
$('.alphabetPicker', page).alphaValue(query.NameStartsWith);
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
$('#selectPageSize', page).val(query.Limit).selectmenu('refresh');
}
function playReel(page) {
$('.popupTrailerReel', page).popup('close');
var reelQuery = {
UserId: Dashboard.getCurrentUserId(),
SortBy: 'Random',
Limit: 50,
Fields: "MediaSources,Chapters"
};
if ($('#chkUnwatchedOnly', page).checked()) {
reelQuery.Filters = "IsPlayed";
}
ApiClient.getJSON(ApiClient.getUrl('Trailers', reelQuery)).done(function (result) {
MediaController.play({
items: result.Items
});
});
}
$(document).on('pageinit', "#movieTrailersPage", function () {
var page = this;
@ -137,14 +236,29 @@
reloadItems(page);
});
$('.itemsContainer', page).on('needsrefresh', function () {
reloadItems(page);
});
$('#selectPageSize', page).on('change', function () {
query.Limit = parseInt(this.value);
query.StartIndex = 0;
reloadItems(page);
});
$('.btnTrailerReel', page).on('click', function () {
$('.popupTrailerReel', page).popup('open');
});
}).on('pagebeforeshow', "#movieTrailersPage", function () {
query.ParentId = LibraryMenu.getTopParentId();
var page = this;
var limit = LibraryBrowser.getDefaultPageSize();
// If the default page size has changed, the start index will have to be reset
@ -153,13 +267,33 @@
query.StartIndex = 0;
}
LibraryBrowser.loadSavedQueryValues('movietrailers', query);
var viewkey = getSavedQueryKey();
reloadItems(this);
LibraryBrowser.loadSavedQueryValues(viewkey, query);
LibraryBrowser.getSavedViewSetting(viewkey).done(function (val) {
if (val) {
$('#selectView', page).val(val).selectmenu('refresh').trigger('change');
} else {
reloadItems(page);
}
});
}).on('pageshow', "#movieTrailersPage", function () {
updateFilterControls(this);
});
window.MovieTrailerPage = {
onSubmit: function () {
var page = $(this).parents('.page');
playReel(page);
return false;
}
};
})(jQuery, document);