mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update metadata editor
This commit is contained in:
parent
1bdfae7682
commit
9ce277ff9d
1 changed files with 82 additions and 87 deletions
|
@ -55,9 +55,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSelectedAirDays(form) {
|
function getSelectedAirDays(form) {
|
||||||
var checked = form.querySelectorAll('.chkAirDay:checked') || [];
|
var checkedItems = form.querySelectorAll('.chkAirDay:checked') || [];
|
||||||
return Array.prototype.map.call(checked, function () {
|
return Array.prototype.map.call(checkedItems, function (c) {
|
||||||
return this.getAttribute('data-day');
|
return c.getAttribute('data-day');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,98 +121,93 @@
|
||||||
|
|
||||||
var form = this;
|
var form = this;
|
||||||
|
|
||||||
try {
|
var item = {
|
||||||
var item = {
|
Id: currentItem.Id,
|
||||||
Id: currentItem.Id,
|
Name: form.querySelector('#txtName').value,
|
||||||
Name: form.querySelector('#txtName').value,
|
OriginalTitle: form.querySelector('#txtOriginalName').value,
|
||||||
OriginalTitle: form.querySelector('#txtOriginalName').value,
|
ForcedSortName: form.querySelector('#txtSortName').value,
|
||||||
ForcedSortName: form.querySelector('#txtSortName').value,
|
DisplayMediaType: form.querySelector('#txtDisplayMediaType').value,
|
||||||
DisplayMediaType: form.querySelector('#txtDisplayMediaType').value,
|
CommunityRating: form.querySelector('#txtCommunityRating').value,
|
||||||
CommunityRating: form.querySelector('#txtCommunityRating').value,
|
VoteCount: form.querySelector('#txtCommunityVoteCount').value,
|
||||||
VoteCount: form.querySelector('#txtCommunityVoteCount').value,
|
HomePageUrl: form.querySelector('#txtHomePageUrl').value,
|
||||||
HomePageUrl: form.querySelector('#txtHomePageUrl').value,
|
Budget: form.querySelector('#txtBudget').value,
|
||||||
Budget: form.querySelector('#txtBudget').value,
|
Revenue: form.querySelector('#txtRevenue').value,
|
||||||
Revenue: form.querySelector('#txtRevenue').value,
|
CriticRating: form.querySelector('#txtCriticRating').value,
|
||||||
CriticRating: form.querySelector('#txtCriticRating').value,
|
CriticRatingSummary: form.querySelector('#txtCriticRatingSummary').value,
|
||||||
CriticRatingSummary: form.querySelector('#txtCriticRatingSummary').value,
|
IndexNumber: form.querySelector('#txtIndexNumber').value || null,
|
||||||
IndexNumber: form.querySelector('#txtIndexNumber').value || null,
|
AbsoluteEpisodeNumber: form.querySelector('#txtAbsoluteEpisodeNumber').value,
|
||||||
AbsoluteEpisodeNumber: form.querySelector('#txtAbsoluteEpisodeNumber').value,
|
DvdEpisodeNumber: form.querySelector('#txtDvdEpisodeNumber').value,
|
||||||
DvdEpisodeNumber: form.querySelector('#txtDvdEpisodeNumber').value,
|
DvdSeasonNumber: form.querySelector('#txtDvdSeasonNumber').value,
|
||||||
DvdSeasonNumber: form.querySelector('#txtDvdSeasonNumber').value,
|
AirsBeforeSeasonNumber: form.querySelector('#txtAirsBeforeSeason').value,
|
||||||
AirsBeforeSeasonNumber: form.querySelector('#txtAirsBeforeSeason').value,
|
AirsAfterSeasonNumber: form.querySelector('#txtAirsAfterSeason').value,
|
||||||
AirsAfterSeasonNumber: form.querySelector('#txtAirsAfterSeason').value,
|
AirsBeforeEpisodeNumber: form.querySelector('#txtAirsBeforeEpisode').value,
|
||||||
AirsBeforeEpisodeNumber: form.querySelector('#txtAirsBeforeEpisode').value,
|
ParentIndexNumber: form.querySelector('#txtParentIndexNumber').value || null,
|
||||||
ParentIndexNumber: form.querySelector('#txtParentIndexNumber').value || null,
|
DisplayOrder: form.querySelector('#selectDisplayOrder').value,
|
||||||
DisplayOrder: form.querySelector('#selectDisplayOrder').value,
|
Players: form.querySelector('#txtPlayers').value,
|
||||||
Players: form.querySelector('#txtPlayers').value,
|
Album: form.querySelector('#txtAlbum').value,
|
||||||
Album: form.querySelector('#txtAlbum').value,
|
AlbumArtist: getAlbumArtists(form),
|
||||||
AlbumArtist: getAlbumArtists(form),
|
ArtistItems: getArtists(form),
|
||||||
ArtistItems: getArtists(form),
|
Metascore: form.querySelector('#txtMetascore').value,
|
||||||
Metascore: form.querySelector('#txtMetascore').value,
|
AwardSummary: form.querySelector('#txtAwardSummary').value,
|
||||||
AwardSummary: form.querySelector('#txtAwardSummary').value,
|
Overview: form.querySelector('#txtOverview').value,
|
||||||
Overview: form.querySelector('#txtOverview').value,
|
ShortOverview: form.querySelector('#txtShortOverview').value,
|
||||||
ShortOverview: form.querySelector('#txtShortOverview').value,
|
Status: form.querySelector('#selectStatus').value,
|
||||||
Status: form.querySelector('#selectStatus').value,
|
AirDays: getSelectedAirDays(form),
|
||||||
AirDays: getSelectedAirDays(form),
|
AirTime: form.querySelector('#txtAirTime').value,
|
||||||
AirTime: form.querySelector('#txtAirTime').value,
|
Genres: editableListViewValues(form.querySelector("#listGenres")),
|
||||||
Genres: editableListViewValues(form.querySelector("#listGenres")),
|
ProductionLocations: editableListViewValues(form.querySelector("#listCountries")),
|
||||||
ProductionLocations: editableListViewValues(form.querySelector("#listCountries")),
|
Tags: editableListViewValues(form.querySelector("#listTags")),
|
||||||
Tags: editableListViewValues(form.querySelector("#listTags")),
|
Keywords: editableListViewValues(form.querySelector("#listKeywords")),
|
||||||
Keywords: editableListViewValues(form.querySelector("#listKeywords")),
|
Studios: editableListViewValues(form.querySelector("#listStudios")).map(function (element) { return { Name: element }; }),
|
||||||
Studios: editableListViewValues(form.querySelector("#listStudios")).map(function (element) { return { Name: element }; }),
|
|
||||||
|
|
||||||
PremiereDate: getDateFromForm(form, '#txtPremiereDate', 'PremiereDate'),
|
PremiereDate: getDateFromForm(form, '#txtPremiereDate', 'PremiereDate'),
|
||||||
DateCreated: getDateFromForm(form, '#txtDateAdded', 'DateCreated'),
|
DateCreated: getDateFromForm(form, '#txtDateAdded', 'DateCreated'),
|
||||||
EndDate: getDateFromForm(form, '#txtEndDate', 'EndDate'),
|
EndDate: getDateFromForm(form, '#txtEndDate', 'EndDate'),
|
||||||
ProductionYear: form.querySelector('#txtProductionYear').value,
|
ProductionYear: form.querySelector('#txtProductionYear').value,
|
||||||
AspectRatio: form.querySelector('#txtOriginalAspectRatio').value,
|
AspectRatio: form.querySelector('#txtOriginalAspectRatio').value,
|
||||||
Video3DFormat: form.querySelector('#select3dFormat').value,
|
Video3DFormat: form.querySelector('#select3dFormat').value,
|
||||||
|
|
||||||
OfficialRating: form.querySelector('#selectOfficialRating').value,
|
OfficialRating: form.querySelector('#selectOfficialRating').value,
|
||||||
CustomRating: form.querySelector('#selectCustomRating').value,
|
CustomRating: form.querySelector('#selectCustomRating').value,
|
||||||
People: currentItem.People,
|
People: currentItem.People,
|
||||||
LockData: form.querySelector("#chkLockData").checked,
|
LockData: form.querySelector("#chkLockData").checked,
|
||||||
LockedFields: Array.prototype.filter.call(form.querySelectorAll('.selectLockedField'), function (c) {
|
LockedFields: Array.prototype.filter.call(form.querySelectorAll('.selectLockedField'), function (c) {
|
||||||
return !c.checked;
|
return !c.checked;
|
||||||
}).map(function (c) {
|
}).map(function (c) {
|
||||||
return c.getAttribute('data-value');
|
return c.getAttribute('data-value');
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
item.ProviderIds = Object.assign({}, currentItem.ProviderIds);
|
item.ProviderIds = Object.assign({}, currentItem.ProviderIds);
|
||||||
|
|
||||||
var idElements = form.querySelectorAll('.txtExternalId');
|
var idElements = form.querySelectorAll('.txtExternalId');
|
||||||
Array.prototype.map.call(idElements, function (idElem) {
|
Array.prototype.map.call(idElements, function (idElem) {
|
||||||
var providerKey = idElem.getAttribute('data-providerkey');
|
var providerKey = idElem.getAttribute('data-providerkey');
|
||||||
item.ProviderIds[providerKey] = idElem.value;
|
item.ProviderIds[providerKey] = idElem.value;
|
||||||
});
|
});
|
||||||
|
|
||||||
item.PreferredMetadataLanguage = form.querySelector('#selectLanguage').value;
|
item.PreferredMetadataLanguage = form.querySelector('#selectLanguage').value;
|
||||||
item.PreferredMetadataCountryCode = form.querySelector('#selectCountry').value;
|
item.PreferredMetadataCountryCode = form.querySelector('#selectCountry').value;
|
||||||
|
|
||||||
if (currentItem.Type == "Person") {
|
if (currentItem.Type == "Person") {
|
||||||
|
|
||||||
var placeOfBirth = form.querySelector('#txtPlaceOfBirth').value;
|
var placeOfBirth = form.querySelector('#txtPlaceOfBirth').value;
|
||||||
|
|
||||||
item.ProductionLocations = placeOfBirth ? [placeOfBirth] : [];
|
item.ProductionLocations = placeOfBirth ? [placeOfBirth] : [];
|
||||||
}
|
|
||||||
|
|
||||||
if (currentItem.Type == "Series") {
|
|
||||||
|
|
||||||
// 600000000
|
|
||||||
var seriesRuntime = form.querySelector('#txtSeriesRuntime').value;
|
|
||||||
item.RunTimeTicks = seriesRuntime ? (seriesRuntime * 600000000) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var tagline = form.querySelector('#txtTagline').value;
|
|
||||||
item.Taglines = tagline ? [tagline] : [];
|
|
||||||
|
|
||||||
submitUpdatedItem(form, item);
|
|
||||||
|
|
||||||
} catch (err) {
|
|
||||||
alert(err);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (currentItem.Type == "Series") {
|
||||||
|
|
||||||
|
// 600000000
|
||||||
|
var seriesRuntime = form.querySelector('#txtSeriesRuntime').value;
|
||||||
|
item.RunTimeTicks = seriesRuntime ? (seriesRuntime * 600000000) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tagline = form.querySelector('#txtTagline').value;
|
||||||
|
item.Taglines = tagline ? [tagline] : [];
|
||||||
|
|
||||||
|
submitUpdatedItem(form, item);
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
||||||
|
@ -1044,7 +1039,7 @@
|
||||||
|
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
|
|
||||||
var deleteButton = elem.querySelector('.btnDeletePerson')
|
var deleteButton = elem.querySelector('.btnDeletePerson');
|
||||||
if (deleteButton) {
|
if (deleteButton) {
|
||||||
deleteButton.addEventListener('click', function () {
|
deleteButton.addEventListener('click', function () {
|
||||||
|
|
||||||
|
@ -1055,7 +1050,7 @@
|
||||||
}.bind(deleteButton));
|
}.bind(deleteButton));
|
||||||
}
|
}
|
||||||
|
|
||||||
var editButton = elem.querySelector('.btnEditPerson')
|
var editButton = elem.querySelector('.btnEditPerson');
|
||||||
if (editButton) {
|
if (editButton) {
|
||||||
editButton.addEventListener('click', function () {
|
editButton.addEventListener('click', function () {
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue