1
0
Fork 0
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:
Luke Pulverenti 2016-07-26 23:11:47 -04:00
parent 1bdfae7682
commit 9ce277ff9d

View file

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