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

#712 - Group multiple versions

This commit is contained in:
Luke Pulverenti 2014-03-19 00:59:45 -04:00
parent 233e30e233
commit 39c57da623
37 changed files with 66 additions and 110 deletions

View file

@ -17,7 +17,6 @@
<div class="listTopPaging">
</div>
<button id="btnNewCollection" data-mini="true" data-icon="plus" data-inline="true" class="hide">New</button>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
@ -45,7 +44,7 @@
</form>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<div id="sortpanel">
@ -76,7 +75,7 @@
</div>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>Filters:

View file

@ -36,10 +36,6 @@
font-size: 90%;
}
.viewSummary {
padding: .5em 0;
}
.viewMenuLink {
text-decoration: none;
color: #ccc!important;

View file

@ -27,11 +27,10 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -83,7 +82,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -22,7 +22,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -22,13 +22,12 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -68,7 +67,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -22,7 +22,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -176,8 +176,9 @@
<div id="trailersContent" class="detailSectionContent"></div>
</div>
<div id="alternateVersionsCollapsible" class="detailSection hide">
<div class="detailSectionHeader">
<div class="detailSectionHeader" style="position: relative;">
Alternate Versions
<button type="button" class="btnSplitVersions" style="position: absolute; right: 0; top: 6px; margin-top: 0; margin-bottom: 0;" data-mini="true" data-inline="true" data-icon="delete" data-iconpos="notext" title="Split Versions Apart">Split Versions Apart</button>
</div>
<div id="alternateVersionsContent" class="detailSectionContent"></div>
</div>

View file

@ -29,11 +29,10 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -79,7 +78,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -23,7 +23,7 @@
<div id="items"></div>
</div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">

View file

@ -26,7 +26,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -28,7 +28,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -32,11 +32,10 @@
<div class="viewControls" data-role="controlgroup" data-type="horizontal">
<button data-mini="true" data-icon="sort" data-inline="true" data-iconpos="notext" title="Sort" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
<button data-mini="true" data-icon="filter" data-inline="true" data-iconpos="notext" title="Filter" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
<!-- <button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="Select" class="btnToggleSelections">Select</button>-->
<button data-mini="true" data-icon="check" data-inline="true" data-iconpos="notext" title="Select" class="btnToggleSelections">Select</button>
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
<div class="selectionCommands" style="display: none;">
<div data-role="controlgroup" data-type="horizontal" class="selectionCommandsControlGroup">
@ -46,7 +45,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -107,7 +106,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup" data-type="horizontal" style="margin-bottom: 1em;">

View file

@ -26,7 +26,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -26,11 +26,10 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -81,7 +80,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -27,7 +27,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -32,11 +32,10 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -74,7 +73,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -27,7 +27,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -21,7 +21,6 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>

View file

@ -26,11 +26,10 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -85,7 +84,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

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

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

@ -901,23 +901,29 @@
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
});
$('#alternateVersionsContent', page).html(html).trigger('create').createPosterItemMenus();
$('#alternateVersionsContent', page).html(html).trigger('create');
} else {
$('#alternateVersionsCollapsible', page).hide();
}

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-alternateversioncount="' + (item.AlternateVersionCount || '0') + '" 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;"><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

@ -175,18 +175,25 @@
function splitVersions(id, page) {
Dashboard.showLoadingMsg();
Dashboard.confirm("Are you sure you wish to split the versions apart into separate items?", "Split Versions Apart", function (confirmResult) {
$.ajax({
type: "DELETE",
url: ApiClient.getUrl("Videos/" + id + "/AlternateVersions")
if (confirmResult) {
}).done(function () {
Dashboard.showLoadingMsg();
Dashboard.hideLoadingMsg();
$.ajax({
type: "DELETE",
url: ApiClient.getUrl("Videos/" + id + "/AlternateVersions")
$('.itemsContainer', page).trigger('needsrefresh');
}).done(function () {
Dashboard.hideLoadingMsg();
$('.itemsContainer', page).trigger('needsrefresh');
});
}
});
}
function getContextMenuOptions(elem) {
@ -205,7 +212,7 @@
items.push({ type: 'divider' });
items.push({ type: 'header', text: 'Manage' });
items.push({ type: 'command', text: 'Split Versions', name: 'SplitVersions' });
items.push({ type: 'command', text: 'Split Versions Apart', name: 'SplitVersions' });
}
return items;
@ -221,7 +228,7 @@
return;
}
if ($('.itemSelectionPanel', elem).length) {
if ($('.itemSelectionPanel:visible', elem).length) {
return;
}

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,

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

@ -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({

View file

@ -22,11 +22,10 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -75,7 +74,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -25,7 +25,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -28,7 +28,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>

View file

@ -34,11 +34,10 @@
</div>
<div class="listTopPaging">
</div>
<div class="viewSummary"></div>
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="sortPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
@ -78,7 +77,7 @@
</fieldset>
</form>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup" data-type="horizontal" style="margin-bottom: 1em;">
<legend>Filters:</legend>

View file

@ -25,7 +25,7 @@
</div>
<div id="items" class="itemsContainer"></div>
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<fieldset data-role="controlgroup">
<legend>