mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update recordings
This commit is contained in:
parent
5581539648
commit
e97b2577b7
8 changed files with 99 additions and 256 deletions
|
@ -6,6 +6,8 @@
|
|||
|
||||
function reload(page) {
|
||||
|
||||
page = $(page)[0];
|
||||
|
||||
unbindItemChanged(page);
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
|
@ -123,20 +125,16 @@
|
|||
var buttonId = "btnOpen1" + idInfo.Key;
|
||||
var formatString = idInfo.UrlFormatString || '';
|
||||
|
||||
html += '<div data-role="fieldcontain">';
|
||||
var idLabel = Globalize.translate('LabelDynamicExternalId').replace('{0}', idInfo.Name);
|
||||
html += '<label for="' + id + '">' + idLabel + '</label>';
|
||||
var labelText = Globalize.translate('LabelDynamicExternalId').replace('{0}', idInfo.Name);
|
||||
|
||||
html += '<div style="display: inline-block; width: 80%;">';
|
||||
html += '<div>';
|
||||
|
||||
var value = providerIds[idInfo.Key] || '';
|
||||
|
||||
html += '<input class="txtExternalId" value="' + value + '" data-providerkey="' + idInfo.Key + '" data-formatstring="' + formatString + '" data-buttonclass="' + buttonId + '" id="' + id + '" />';
|
||||
|
||||
html += '</div>';
|
||||
html += '<paper-input style="display:inline-block;width:80%;" class="txtExternalId" value="' + value + '" data-providerkey="' + idInfo.Key + '" data-formatstring="' + formatString + '" data-buttonclass="' + buttonId + '" id="' + id + '" label="' + labelText + '"></paper-input>';
|
||||
|
||||
if (formatString) {
|
||||
html += '<a class="' + buttonId + '" href="#" target="_blank" data-icon="arrow-r" data-inline="true" data-iconpos="notext" data-role="button" style="float: none; width: 1.75em"></a>';
|
||||
html += '<a class="clearLink ' + buttonId + '" href="#" target="_blank" data-role="none" style="float: none; width: 1.75em"><paper-icon-button icon="open-in-browser"></paper-icon-button></a>';
|
||||
}
|
||||
|
||||
html += '</div>';
|
||||
|
@ -433,8 +431,9 @@
|
|||
populateListView($('#listKeywords', page), item.Keywords);
|
||||
|
||||
var lockData = (item.LockData || false);
|
||||
var chkLockData = $("#chkLockData", page).attr('checked', lockData).checkboxradio('refresh');
|
||||
if (chkLockData.checked()) {
|
||||
var chkLockData = page.querySelector("#chkLockData");
|
||||
chkLockData.checked = lockData;
|
||||
if (chkLockData.checked) {
|
||||
$('#providerSettingsContainer', page).hide();
|
||||
} else {
|
||||
$('#providerSettingsContainer', page).show();
|
||||
|
@ -708,20 +707,16 @@
|
|||
return list.find('a.data').map(function () { return $(this).text(); }).get();
|
||||
}
|
||||
|
||||
function generateSliders(fields, type) {
|
||||
function generateSliders(fields, currentFields) {
|
||||
|
||||
var html = '';
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
|
||||
var field = fields[i];
|
||||
var name = field.name;
|
||||
var value = field.value || field.name;
|
||||
html += '<div data-role="fieldcontain">';
|
||||
html += '<label for="lock' + value + '">' + name + '</label>';
|
||||
html += '<select class="selectLockedField" id="lock' + value + '" data-role="slider" data-mini="true">';
|
||||
html += '<option value="' + value + '">' + Globalize.translate('OptionOff') + '</option>';
|
||||
html += '<option value="" selected="selected">' + Globalize.translate('OptionOn') + '</option>';
|
||||
html += '</select>';
|
||||
html += '</div>';
|
||||
var checkedHtml = currentFields.indexOf(value) == -1 ? ' checked' : '';
|
||||
html += '<paper-checkbox class="selectLockedField" data-value="' + value + '" style="display:block;margin:1em 0;"' + checkedHtml + '>' + name + '</paper-checkbox>';
|
||||
}
|
||||
return html;
|
||||
}
|
||||
|
@ -760,14 +755,10 @@
|
|||
|
||||
var html = '';
|
||||
|
||||
html += "<h1>" + Globalize.translate('HeaderFields') + "</h1>";
|
||||
html += "<p>" + Globalize.translate('HeaderFieldsHelp') + "</p>";
|
||||
html += generateSliders(metadatafields, 'Fields');
|
||||
container.html(html).trigger('create');
|
||||
for (var fieldIndex = 0; fieldIndex < lockedFields.length; fieldIndex++) {
|
||||
var field = lockedFields[fieldIndex];
|
||||
$('#lock' + field).val(field).slider('refresh');
|
||||
}
|
||||
html += "<h1>" + Globalize.translate('HeaderEnabledFields') + "</h1>";
|
||||
html += "<p>" + Globalize.translate('HeaderEnabledFieldsHelp') + "</p>";
|
||||
html += generateSliders(metadatafields, lockedFields);
|
||||
container.html(html);
|
||||
}
|
||||
|
||||
function getSelectedAirDays(form) {
|
||||
|
@ -869,11 +860,12 @@
|
|||
OfficialRating: $('#selectOfficialRating', form).val(),
|
||||
CustomRating: $('#selectCustomRating', form).val(),
|
||||
People: currentItem.People,
|
||||
LockData: $("#chkLockData", form).prop('checked'),
|
||||
LockedFields: $('.selectLockedField', form).map(function () {
|
||||
var value = $(this).val();
|
||||
if (value != '') return value;
|
||||
}).get()
|
||||
LockData: form.querySelector("#chkLockData").checked,
|
||||
LockedFields: $('.selectLockedField', form).get().filter(function (c) {
|
||||
return !c.checked;
|
||||
}).map(function (c) {
|
||||
return c.getAttribute('data-value');
|
||||
})
|
||||
};
|
||||
|
||||
item.ProviderIds = $.extend({}, currentItem.ProviderIds || {});
|
||||
|
@ -1376,7 +1368,7 @@
|
|||
}
|
||||
|
||||
function showMoreMenu(page, elem) {
|
||||
|
||||
|
||||
Dashboard.getCurrentUser().done(function (user) {
|
||||
|
||||
var moreCommands = LibraryBrowser.getMoreCommands(currentItem, user);
|
||||
|
|
|
@ -2359,7 +2359,7 @@
|
|||
showLayoutMenu: function (button, currentLayout) {
|
||||
|
||||
// Add banner and list once all screens support them
|
||||
var views = ['Poster', 'PosterCard', 'Thumb', 'ThumbCard'];
|
||||
var views = ['List', 'Poster', 'PosterCard', 'Thumb', 'ThumbCard'];
|
||||
|
||||
var menuItems = views.map(function (v) {
|
||||
return {
|
||||
|
|
|
@ -1,21 +1,38 @@
|
|||
(function ($, document) {
|
||||
|
||||
var view = LibraryBrowser.getDefaultItemsView('Poster', 'Poster');
|
||||
var data = {};
|
||||
function getPageData() {
|
||||
var key = getSavedQueryKey();
|
||||
var pageData = data[key];
|
||||
|
||||
// The base query options
|
||||
var query = {
|
||||
if (!pageData) {
|
||||
pageData = data[key] = {
|
||||
query: {
|
||||
SortBy: "SortName",
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Playlist",
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete,SyncInfo",
|
||||
StartIndex: 0,
|
||||
Limit: LibraryBrowser.getDefaultPageSize()
|
||||
},
|
||||
view: LibraryBrowser.getSavedView(key) || LibraryBrowser.getDefaultItemsView('Poster', 'Poster')
|
||||
};
|
||||
|
||||
SortBy: "SortName",
|
||||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: "Playlist",
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,SortName,CumulativeRunTimeTicks,CanDelete,SyncInfo",
|
||||
StartIndex: 0
|
||||
};
|
||||
pageData.query.ParentId = LibraryMenu.getTopParentId();
|
||||
LibraryBrowser.loadSavedQueryValues(key, pageData.query);
|
||||
}
|
||||
return pageData;
|
||||
}
|
||||
|
||||
function getQuery() {
|
||||
|
||||
return getPageData().query;
|
||||
}
|
||||
|
||||
function getSavedQueryKey() {
|
||||
|
||||
return 'playlists2' + (query.ParentId || '');
|
||||
return getWindowUrl();
|
||||
}
|
||||
|
||||
function showLoadingMessage(page) {
|
||||
|
@ -31,6 +48,7 @@
|
|||
|
||||
showLoadingMessage(page);
|
||||
|
||||
var query = getQuery();
|
||||
var promise1 = ApiClient.getItems(Dashboard.getCurrentUserId(), query);
|
||||
var promise2 = Dashboard.getCurrentUser();
|
||||
|
||||
|
@ -43,16 +61,20 @@
|
|||
window.scrollTo(0, 0);
|
||||
|
||||
var html = '';
|
||||
var view = getPageData().view;
|
||||
|
||||
$('.listTopPaging', page).html(LibraryBrowser.getQueryPagingHtml({
|
||||
startIndex: query.StartIndex,
|
||||
limit: query.Limit,
|
||||
totalRecordCount: result.TotalRecordCount,
|
||||
viewButton: true,
|
||||
showLimit: false
|
||||
viewButton: false,
|
||||
showLimit: false,
|
||||
updatePageSizeSetting: false,
|
||||
addLayoutButton: true,
|
||||
currentLayout: view
|
||||
|
||||
})).trigger('create');
|
||||
|
||||
updateFilterControls(page);
|
||||
var trigger = false;
|
||||
|
||||
if (result.TotalRecordCount) {
|
||||
|
@ -117,116 +139,21 @@
|
|||
reloadItems(page);
|
||||
});
|
||||
|
||||
$('.btnChangeLayout', page).on('layoutchange', function (e, layout) {
|
||||
getPageData().view = layout;
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
LibraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||
|
||||
hideLoadingMessage(page);
|
||||
});
|
||||
}
|
||||
|
||||
function updateFilterControls(page) {
|
||||
|
||||
// Reset form values using the last used query
|
||||
$('.radioSortBy', page).each(function () {
|
||||
|
||||
this.checked = (query.SortBy || '').toLowerCase() == this.getAttribute('data-sortby').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.radioSortOrder', page).each(function () {
|
||||
|
||||
this.checked = (query.SortOrder || '').toLowerCase() == this.getAttribute('data-sortorder').toLowerCase();
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('.chkStandardFilter', page).each(function () {
|
||||
|
||||
var filters = "," + (query.Filters || "");
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
|
||||
this.checked = filters.indexOf(',' + filterName) != -1;
|
||||
|
||||
}).checkboxradio('refresh');
|
||||
|
||||
$('#selectView', page).val(view).selectmenu('refresh');
|
||||
|
||||
$('#selectPageSize', page).val(query.Limit).selectmenu('refresh');
|
||||
}
|
||||
|
||||
$(document).on('pageinitdepends', "#playlistsPage", function () {
|
||||
$(document).on('pagebeforeshowready', "#playlistsPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
$('.radioSortBy', this).on('click', function () {
|
||||
query.SortBy = this.getAttribute('data-sortby');
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
$('.radioSortOrder', this).on('click', function () {
|
||||
query.SortOrder = this.getAttribute('data-sortorder');
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
$('.chkStandardFilter', this).on('change', function () {
|
||||
|
||||
var filterName = this.getAttribute('data-filter');
|
||||
var filters = query.Filters || "";
|
||||
|
||||
filters = (',' + filters).replace(',' + filterName, '').substring(1);
|
||||
|
||||
if (this.checked) {
|
||||
filters = filters ? (filters + ',' + filterName) : filterName;
|
||||
}
|
||||
|
||||
query.StartIndex = 0;
|
||||
query.Filters = filters;
|
||||
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
$('#selectView', this).on('change', function () {
|
||||
|
||||
view = this.value;
|
||||
|
||||
reloadItems(page);
|
||||
|
||||
LibraryBrowser.saveViewSetting(getSavedQueryKey(), view);
|
||||
});
|
||||
|
||||
$('#selectPageSize', page).on('change', function () {
|
||||
query.Limit = parseInt(this.value);
|
||||
query.StartIndex = 0;
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
}).on('pagebeforeshowready', "#playlistsPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
query.ParentId = LibraryMenu.getTopParentId();
|
||||
|
||||
var limit = LibraryBrowser.getDefaultPageSize();
|
||||
|
||||
// If the default page size has changed, the start index will have to be reset
|
||||
if (limit != query.Limit) {
|
||||
query.Limit = limit;
|
||||
query.StartIndex = 0;
|
||||
}
|
||||
|
||||
var viewkey = getSavedQueryKey();
|
||||
|
||||
LibraryBrowser.loadSavedQueryValues(viewkey, query);
|
||||
|
||||
LibraryBrowser.getSavedViewSetting(viewkey).done(function (val) {
|
||||
|
||||
if (val) {
|
||||
$('#selectView', page).val(val).selectmenu('refresh').trigger('change');
|
||||
} else {
|
||||
reloadItems(page);
|
||||
}
|
||||
});
|
||||
|
||||
updateFilterControls(this);
|
||||
|
||||
reloadItems(page);
|
||||
});
|
||||
|
||||
})(jQuery, document);
|
Loading…
Add table
Add a link
Reference in a new issue