mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
start on manual collection creation
This commit is contained in:
parent
cc87a41cad
commit
e8a58abae8
9 changed files with 73 additions and 64 deletions
|
@ -25,16 +25,16 @@
|
||||||
<label for="txtWebSocketPortNumber">Web socket port number: </label>
|
<label for="txtWebSocketPortNumber">Web socket port number: </label>
|
||||||
<input type="number" id="txtWebSocketPortNumber" name="txtWebSocketPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
<input type="number" id="txtWebSocketPortNumber" name="txtWebSocketPortNumber" pattern="[0-9]*" required="required" min="1" data-mini="true" />
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<label for="txtDdns">External DDNS:</label>
|
|
||||||
<input id="txtDdns" data-mini="true" />
|
|
||||||
<div class="fieldDescription">If you have a dynamic DNS enter it here. Media Browser apps will use it when connecting remotely.</div>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<label for="chkEnableUpnp">Enable UPnP</label>
|
<label for="chkEnableUpnp">Enable UPnP</label>
|
||||||
<input type="checkbox" id="chkEnableUpnp" data-mini="true" />
|
<input type="checkbox" id="chkEnableUpnp" data-mini="true" />
|
||||||
<div class="fieldDescription">UPnP allows automated router configuration for remote access. This may not work with some router models.</div>
|
<div class="fieldDescription">UPnP allows automated router configuration for remote access. This may not work with some router models.</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<label for="txtDdns">External DDNS:</label>
|
||||||
|
<input id="txtDdns" data-mini="true" />
|
||||||
|
<div class="fieldDescription">If you have a dynamic DNS enter it here. Media Browser apps will use it when connecting remotely.</div>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
<div data-role="content">
|
<div data-role="content">
|
||||||
<div class="viewSettings">
|
<div class="viewSettings">
|
||||||
<div class="viewControls">
|
<div class="viewControls">
|
||||||
|
<button data-mini="true" data-icon="plus" data-inline="true" onclick="$('#newCollectionPanel', $(this).parents('.page')).panel( 'toggle' );">New</button>
|
||||||
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
<button data-mini="true" data-icon="sort" data-inline="true" onclick="$('#sortPanel', $(this).parents('.page')).panel( 'toggle' );">Sort</button>
|
||||||
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
<button data-mini="true" data-icon="filter" data-inline="true" onclick="$('#filterPanel', $(this).parents('.page')).panel( 'toggle' );">Filter</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -30,13 +31,34 @@
|
||||||
</div>
|
</div>
|
||||||
<div id="items" class="itemsContainer"></div>
|
<div id="items" class="itemsContainer"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div data-role="panel" id="newCollectionPanel" data-position="right" data-display="overlay" data-theme="a" data-position-fixed="true">
|
||||||
|
<form class="newCollectionForm">
|
||||||
|
|
||||||
|
<h3>New Collection</h3>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<div>
|
||||||
|
<label for="txtNewCollectionName">Name:</label>
|
||||||
|
<input type="text" id="txtNewCollectionName" required="required" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label for="chkEnableInternetMetadata">Search the internet for artwork and metadata</label>
|
||||||
|
<input type="checkbox" id="chkEnableInternetMetadata" data-mini="true" />
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<p>
|
||||||
|
<button type="submit" data-icon="plus" data-mini="true" data-theme="b">Create</button>
|
||||||
|
</p>
|
||||||
|
</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-theme="a" data-position-fixed="true">
|
||||||
|
|
||||||
<form>
|
<form>
|
||||||
<div id="sortpanel">
|
<div id="sortpanel">
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Sort By:
|
||||||
<h3>Sort By:</h3>
|
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
<input class="radioSortBy defaultSort" type="radio" name="radioSortBy" id="radioSortName" value="on" checked="checked" data-sortby="SortName" data-mini="true">
|
||||||
|
@ -50,8 +72,7 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Sort Order:
|
||||||
<h3>Sort Order:</h3>
|
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
<input class="radioSortOrder" type="radio" name="radioSortOrder" id="radioAscending" value="on" checked="checked" data-sortorder="Ascending" data-mini="true">
|
||||||
|
@ -66,8 +87,7 @@
|
||||||
<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-theme="a" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Filters:
|
||||||
<h3>Filters:</h3>
|
|
||||||
</legend>
|
</legend>
|
||||||
<input class="chkStandardFilter" type="checkbox" name="chkIsFavorite" id="chkIsFavorite" data-filter="IsFavorite" data-mini="true">
|
<input class="chkStandardFilter" type="checkbox" name="chkIsFavorite" id="chkIsFavorite" data-filter="IsFavorite" data-mini="true">
|
||||||
<label for="chkIsFavorite">Favorite</label>
|
<label for="chkIsFavorite">Favorite</label>
|
||||||
|
@ -80,8 +100,7 @@
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>Features:
|
||||||
<strong>Features:</strong>
|
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer" data-mini="true">
|
<input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer" data-mini="true">
|
||||||
|
@ -97,6 +116,10 @@
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('.newCollectionForm').off('submit', BoxSetsPage.onNewCollectionSubmit).on('submit', BoxSetsPage.onNewCollectionSubmit);
|
||||||
|
</script>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -23,11 +23,12 @@
|
||||||
<ul data-role="listview" class="ulForm">
|
<ul data-role="listview" class="ulForm">
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="chkEnableInternetProviders" name="chkEnableInternetProviders" data-mini="true" />
|
<input type="checkbox" id="chkEnableInternetProviders" name="chkEnableInternetProviders" data-mini="true" />
|
||||||
<label for="chkEnableInternetProviders">Download metadata and images from the internet </label>
|
<label for="chkEnableInternetProviders">Download artwork and metadata from the internet </label>
|
||||||
|
<div class="fieldDescription">Media Browser can download information about your media to enable rich presentations.</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="chkSaveLocal" name="chkSaveLocal" data-mini="true" />
|
<input type="checkbox" id="chkSaveLocal" name="chkSaveLocal" data-mini="true" />
|
||||||
<label for="chkSaveLocal">Save metadata and images within media folders </label>
|
<label for="chkSaveLocal">Save artwork and metadata within media folders </label>
|
||||||
<div class="fieldDescription">Save downloaded metadata and images into media folders where they can be stored permanently and easily edited.</div>
|
<div class="fieldDescription">Save downloaded metadata and images into media folders where they can be stored permanently and easily edited.</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -183,4 +183,13 @@
|
||||||
updateFilterControls(this);
|
updateFilterControls(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
window.BoxSetsPage = {
|
||||||
|
|
||||||
|
onNewCollectionSubmit: function() {
|
||||||
|
|
||||||
|
Dashboard.alert('Coming soon');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
})(jQuery, document);
|
})(jQuery, document);
|
|
@ -6,58 +6,29 @@
|
||||||
|
|
||||||
var query = {
|
var query = {
|
||||||
|
|
||||||
SortBy: "PremiereDate,AirTime,SortName",
|
Limit: 32,
|
||||||
SortOrder: "Ascending",
|
Fields: "SeriesInfo,UserData",
|
||||||
IncludeItemTypes: "Episode",
|
UserId: Dashboard.getCurrentUserId()
|
||||||
Limit: 30,
|
|
||||||
Recursive: true,
|
|
||||||
Fields: "SeriesInfo,UserData"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var missedItemsQuery = $.extend({
|
$.getJSON(ApiClient.getUrl("Shows/Upcoming", query)).done(function (result) {
|
||||||
|
|
||||||
IsUnaired: false
|
var items = result.Items;
|
||||||
|
|
||||||
}, query);
|
if (!items.length) {
|
||||||
|
|
||||||
var yesterday = new Date();
|
|
||||||
|
|
||||||
yesterday.setDate(yesterday.getDate() - 1);
|
|
||||||
yesterday.setHours(0, 0, 0, 0);
|
|
||||||
|
|
||||||
missedItemsQuery.MinPremiereDate = yesterday.toISOString();
|
|
||||||
|
|
||||||
var unairedQuery = $.extend({
|
|
||||||
|
|
||||||
IsUnaired: true
|
|
||||||
|
|
||||||
}, query);
|
|
||||||
|
|
||||||
var promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), missedItemsQuery);
|
|
||||||
var promise2 = ApiClient.getItems(Dashboard.getCurrentUserId(), unairedQuery);
|
|
||||||
|
|
||||||
$.when(promise1, promise2).done(function (response1, response2) {
|
|
||||||
|
|
||||||
var missedItems = response1[0].Items;
|
|
||||||
var unairedItems = response2[0].Items;
|
|
||||||
|
|
||||||
for (var i = 0, length = unairedItems.length; i < length; i++) {
|
|
||||||
missedItems.push(unairedItems[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!missedItems.length) {
|
|
||||||
$('#upcomingItems', page).html("<p>Nothing here. Please ensure <a href='metadata.html'>downloading of internet metadata</a> is enabled.</p>").trigger('create');
|
$('#upcomingItems', page).html("<p>Nothing here. Please ensure <a href='metadata.html'>downloading of internet metadata</a> is enabled.</p>").trigger('create');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#upcomingItems', page).html(LibraryBrowser.getPosterViewHtml({
|
$('#upcomingItems', page).html(LibraryBrowser.getPosterViewHtml({
|
||||||
items: missedItems,
|
items: items,
|
||||||
showLocationTypeIndicator: false,
|
showLocationTypeIndicator: false,
|
||||||
shape: "backdrop",
|
shape: "backdrop",
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
showPremiereDate: true,
|
showPremiereDate: true,
|
||||||
showPremiereDateIndex: true,
|
showPremiereDateIndex: true,
|
||||||
preferThumb: true
|
preferThumb: true
|
||||||
|
|
||||||
})).createPosterItemHoverMenu();
|
})).createPosterItemHoverMenu();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -14,9 +14,10 @@
|
||||||
// After saving chapter task, now save server config
|
// After saving chapter task, now save server config
|
||||||
ApiClient.getServerConfiguration().done(function (config) {
|
ApiClient.getServerConfiguration().done(function (config) {
|
||||||
|
|
||||||
config.ImageSavingConvention = $('#selectImageSavingConvention', page).val();
|
|
||||||
config.EnableMovieChapterImageExtraction = $('#chkMovies', page).checked();
|
config.EnableMovieChapterImageExtraction = $('#chkMovies', page).checked();
|
||||||
|
|
||||||
|
config.EnableUPnP = $('#chkEnableUpnp', page).checked();
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).done(function (result) {
|
ApiClient.updateServerConfiguration(config).done(function (result) {
|
||||||
|
|
||||||
navigateToNextPage();
|
navigateToNextPage();
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
config.MetadataCountryCode = $('#selectCountry', page).val();
|
config.MetadataCountryCode = $('#selectCountry', page).val();
|
||||||
config.SaveLocalMeta = $('#chkSaveLocalMetadata', page).checked();
|
config.SaveLocalMeta = $('#chkSaveLocalMetadata', page).checked();
|
||||||
|
|
||||||
|
config.EnableInternetProviders = $('#chkEnableInternetProviders', page).checked();
|
||||||
|
|
||||||
ApiClient.updateServerConfiguration(config).done(function (result) {
|
ApiClient.updateServerConfiguration(config).done(function (result) {
|
||||||
|
|
||||||
navigateToNextPage();
|
navigateToNextPage();
|
||||||
|
|
|
@ -13,16 +13,7 @@
|
||||||
<img src="css/images/mblogoicon.png" />Configure settings</h2>
|
<img src="css/images/mblogoicon.png" />Configure settings</h2>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div style="margin: 1em 0;">
|
<div style="margin: 1em 0 2em;">
|
||||||
<label for="selectImageSavingConvention"><b>Image saving convention:</b></label>
|
|
||||||
<select name="selectImageSavingConvention" id="selectImageSavingConvention">
|
|
||||||
<option value="Compatible" selected="selected">Compatible - MB3/Plex/Xbmc</option>
|
|
||||||
<option value="Legacy">Standard - MB3/MB2</option>
|
|
||||||
</select>
|
|
||||||
<div class="fieldDescription">Media Browser recognizes images from most major media applications. Choosing your downloading convention is useful if you also use other products.</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div style="margin: 2em 0;">
|
|
||||||
<label for="chkVideoImages">Enable video image extraction</label>
|
<label for="chkVideoImages">Enable video image extraction</label>
|
||||||
<input id="chkVideoImages" name="chkVideoImages" type="checkbox" checked="checked" />
|
<input id="chkVideoImages" name="chkVideoImages" type="checkbox" checked="checked" />
|
||||||
<div class="fieldDescription">For videos that don't already have images, and that we're unable to find internet images for. This will add some additional time to the initial library scan but will result in a more pleasing presentation.</div>
|
<div class="fieldDescription">For videos that don't already have images, and that we're unable to find internet images for. This will add some additional time to the initial library scan but will result in a more pleasing presentation.</div>
|
||||||
|
@ -34,6 +25,12 @@
|
||||||
<div class="fieldDescription">Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task at 4am, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.</div>
|
<div class="fieldDescription">Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task at 4am, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div style="margin: 2em 0;">
|
||||||
|
<label for="chkEnableUpnp">Enable automatic port mapping</label>
|
||||||
|
<input type="checkbox" id="chkEnableUpnp" checked="checked" />
|
||||||
|
<div class="fieldDescription">UPnP allows automated router configuration for easy remote access. This may not work with some router models.</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="wizardNavigation">
|
<div class="wizardNavigation">
|
||||||
<button type="button" data-iconpos="left" data-icon="arrow-l" data-inline="true" onclick="history.back();">Previous</button>
|
<button type="button" data-iconpos="left" data-icon="arrow-l" data-inline="true" onclick="history.back();">Previous</button>
|
||||||
<button id="btnNextPage" type="button" data-iconpos="right" data-icon="arrow-r" data-inline="true">Next</button>
|
<button id="btnNextPage" type="button" data-iconpos="right" data-icon="arrow-r" data-inline="true">Next</button>
|
||||||
|
|
|
@ -15,7 +15,12 @@
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div style="margin: 1em 0;">
|
<div style="margin: 1em 0;">
|
||||||
<label for="chkSaveLocalMetadata">Save metadata into media folders</label>
|
<input type="checkbox" id="chkEnableInternetProviders" name="chkEnableInternetProviders" checked="checked" />
|
||||||
|
<label for="chkEnableInternetProviders">Download artwork and metadata from the internet </label>
|
||||||
|
<div class="fieldDescription">Media Browser can download information about your media to enable rich presentations.</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 2em 0;">
|
||||||
|
<label for="chkSaveLocalMetadata">Save artwork and metadata into media folders</label>
|
||||||
<input id="chkSaveLocalMetadata" name="chkSaveLocalMetadata" type="checkbox" checked="checked" />
|
<input id="chkSaveLocalMetadata" name="chkSaveLocalMetadata" type="checkbox" checked="checked" />
|
||||||
<div class="fieldDescription">Saving artwork and metadata directly into media folders will put them in a place where they can be easily edited.</div>
|
<div class="fieldDescription">Saving artwork and metadata directly into media folders will put them in a place where they can be easily edited.</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue