EmbyCrackedClient/web/modules/metadataeditor/metadataeditor.js
2025-06-25 11:46:04 +08:00

1 line
No EOL
33 KiB
JavaScript

import connectionManager from"./../emby-apiclient/connectionmanager.js";import events from"./../emby-apiclient/events.js";import dialogHelper from"./../dialoghelper/dialoghelper.js";import layoutManager from"./../layoutmanager.js";import globalize from"./../common/globalize.js";import datetime from"./../common/datetime.js";import textEncoding from"./../common/textencoding.js";import itemManager from"./../common/itemmanager/itemmanager.js";import loading from"./../loading/loading.js";import focusManager from"./../focusmanager.js";import{shell}from"./../common/servicelocator.js";import"./../emby-elements/emby-checkbox/emby-checkbox.js";import"./../emby-elements/emby-input/emby-input.js";import"./../emby-elements/emby-select/emby-select.js";import"./../emby-elements/emby-textarea/emby-textarea.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import"./../emby-elements/emby-scroller/emby-scroller.js";import"./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";import serverNotifications from"./../common/input/api.js";import listView from"./../listview/listview.js";function showPrompt(options){return Emby.importModule("./modules/prompt/prompt.js").then(function(prompt){return prompt(options)})}function isDialog(context){return context.classList.contains("dialog")}function closeDialog(context,isSubmitted){isDialog(context)&&dialogHelper.close(context)}function updateChannelMappings(instance,form,item,apiClient){return"TvChannel"!==(item=instance.currentItem).Type||(instance=form.querySelector(".selectGuideDataProvider").value||null,form=form.querySelector(".selectGuideChannel").value||null,instance===item.ListingsProviderId&&form===item.ListingsChannelId)?Promise.resolve():apiClient.ajax({type:"POST",url:apiClient.getUrl("LiveTv/ChannelMappings"),data:{providerId:instance,tunerChannelId:item.ManagementId,providerChannelId:form},dataType:"json"})}function showToast(options){return Emby.importModule("./modules/toast/toast.js").then(function(toast){return toast(options)})}function submitUpdatedItem(instance,form,item){let apiClient=connectionManager.getApiClient(instance.currentItem);updateChannelMappings(instance,form,item,apiClient).then(function(){apiClient.updateItem(item).then(function(){instance.hasChanges=!0,showToast(globalize.translate("MessageItemSaved")),loading.hide(),closeDialog(instance.context,!0)})})}function getAlbumArtists(form){return form.querySelector(".txtAlbumArtist").value.trim().split(";").filter(function(s){return 0<s.length}).map(function(a){return{Name:a}})}function getArtists(form){return form.querySelector(".txtArtist").value.trim().split(";").filter(function(s){return 0<s.length}).map(function(a){return{Name:a}})}function onSubmit(e){loading.show();var currentItem=this.currentItem,form=e.target.closest("form");let item=Object.assign({},currentItem);item=Object.assign(item,{Name:form.querySelector(".txtName").value,ChannelNumber:form.querySelector(".txtChannelNumber").value,OriginalTitle:form.querySelector(".txtOriginalName").value,ForcedSortName:form.querySelector(".txtSortName").value,SortName:form.querySelector(".txtSortName").value,CommunityRating:form.querySelector(".txtCommunityRating").value,CriticRating:form.querySelector(".txtCriticRating").value,IndexNumber:form.querySelector(".txtIndexNumber").value||null,ParentIndexNumber:form.querySelector(".txtParentIndexNumber").value||null,SortParentIndexNumber:form.querySelector(".txtDisplaySeason").value,SortIndexNumber:form.querySelector(".txtDisplayEpisode").value,Album:form.querySelector(".txtAlbum").value,AlbumArtists:getAlbumArtists(form),ArtistItems:getArtists(form),Overview:form.querySelector(".txtOverview").value,Status:form.querySelector(".selectStatus").value,PremiereDate:form.querySelector(".txtPremiereDate").valueAsDateUtc?.toISOString(),DateCreated:form.querySelector(".txtDateAdded").valueAsDateUtc?.toISOString(),EndDate:form.querySelector(".txtEndDate").valueAsDateUtc?.toISOString(),ProductionYear:form.querySelector(".txtProductionYear").value,Video3DFormat:form.querySelector(".select3dFormat").value,OfficialRating:form.querySelector(".selectOfficialRating").value,CustomRating:form.querySelector(".selectCustomRating").value,LockData:form.querySelector(".chkLockData").checked,LockedFields:Array.prototype.filter.call(form.querySelectorAll(".chkLockedField"),function(c){return c.checked}).map(function(c){return c.getAttribute("data-field")})}),"Series"===currentItem.Type?item.DisplayOrder=form.querySelector(".selectFileOrder").value:item.DisplayOrder=form.querySelector(".selectDisplayOrder").value,item.ProviderIds=Object.assign({},currentItem.ProviderIds);var idElements=form.querySelectorAll(".txtExternalId"),currentItem=(Array.prototype.map.call(idElements,function(idElem){var providerKey=idElem.getAttribute("data-providerkey");item.ProviderIds[providerKey]=idElem.value}),item.PreferredMetadataLanguage=form.querySelector(".selectLanguage").value||null,item.PreferredMetadataCountryCode=form.querySelector(".selectCountry").value||null,"Person"===currentItem.Type&&(idElements=form.querySelector(".txtPlaceOfBirth").value,item.ProductionLocations=idElements?[idElements]:[]),"Series"===currentItem.Type&&(idElements=form.querySelector(".txtSeriesRuntime").value,item.RunTimeTicks=idElements?6e8*idElements:null),form.querySelector(".txtTagline").value);return item.Taglines=currentItem?[currentItem]:[],submitUpdatedItem(this,form,item),e.preventDefault(),e.stopPropagation(),!1}function addElementToList(instance,source){showPrompt({title:globalize.translate("Add"),label:source.getAttribute("data-label"),confirmText:globalize.translate("Add")}).then(function(text){var container=source.closest(".editableListviewContainer"),prop=source.getAttribute("data-field"),prop=(instance.currentItem[prop].push({Name:text}),container.querySelector(".itemsContainer").refreshItems(),container.querySelector(".chkLockedField"));prop&&(prop.checked=!0)})}function addOrEditPerson(instance,person){let isNew;return person||(person={},isNew=!0),Emby.importModule("./modules/metadataeditor/personeditor.js").then(function(personEditor){return personEditor.show(person).then(function(updatedPerson){isNew&&instance.currentItem.People.push(updatedPerson),isNew&&instance.refreshPeople();updatedPerson=instance.context.querySelector('.chkLockedField[data-field="Cast"]');updatedPerson&&(updatedPerson.checked=!0)})})}function onRejected(){}function showMoreMenu(instance,button,user){Emby.importModule("./modules/itemcontextmenu.js").then(function(itemContextMenu){var item=instance.currentItem;itemContextMenu.show({items:[item],positionTo:button,edit:!1,editImages:!0,editSubtitles:!0,sync:!1,share:!1,play:!1,queue:!1,user:user}).catch(onRejected)})}function afterDeleted(instance,item){var parentId=item.ParentId||item.SeasonId||item.SeriesId;parentId?reload(instance,parentId,item.ServerId):Emby.importModule("./modules/approuter.js").then(function(appRouter){appRouter.goHome()})}function onLibraryChanged(e,apiClient,data){var item=this.currentItem;item&&(data.ItemsUpdated?.includes(item.Id)&&this.paused&&(this._fullReloadOnResume=!0),data.ItemsRemoved?.includes(item.Id))&&(this.paused?this._afterDeletedOnResume=!0:afterDeleted(this,item))}function onEditorClick(e){e=e.target.closest(".btnAddTextItem");e&&addElementToList(this,e)}function onGuideDataProviderChange(e){var apiClient,section=this.context.querySelector(".channelMappingSection"),e=e.target.closest("select").value;e&&"none"!==e&&"tuner"!==e?(section.querySelector(".fldGuideChannelId").classList.remove("hide"),apiClient=connectionManager.getApiClient(this.currentItem),fillChannels(section,this.currentItem,e,apiClient)):section.querySelector(".fldGuideChannelId").classList.add("hide")}function onFieldInput(e){var container=this.closest(".inputContainer,.selectContainer").parentNode.closest(".inputContainer");container&&(container.querySelector(".chkLockedField").checked=!0)}function autoLockFields(context){var elems=context.querySelectorAll(".txtInput-withlockedfield, .select-withlockedfield");for(let i=0,length=elems.length;i<length;i++){var elem=elems[i];"SELECT"===elem.tagName?elem.addEventListener("change",onFieldInput):elem.addEventListener("input",onFieldInput)}}function getPeopleItems(query){let icon=itemManager.getDefaultIcon({Type:"Person"}),serverId=this.serverId,people=this.currentItem.People||[];var items=people.map(function(i,index){return{Type:"GenericListItem",Name:i.Name,CanDelete:!0,CanEdit:!0,Icon:icon,DeleteType:"remove",ShortOverview:i.Role,OriginalItem:i,CanReorder:!0,CanMoveUp:0<index,CanMoveDown:index<people.length-1,ServerId:serverId}});return Promise.resolve({Items:items,TotalRecordCount:items.length})}function getLinkedItems(query){var instance=this.instance,type=this.type,property=this.property;let icon=itemManager.getDefaultIcon({Type:type}),serverId=instance.serverId,sourceItems=instance.currentItem[property]||[];type=sourceItems.map(function(i,index){return{Type:"GenericListItem",Name:i.Name,CanDelete:!0,CanEdit:!1,Icon:icon,DeleteType:"remove",ShortOverview:i.Role,OriginalItem:i,CanReorder:!0,CanMoveUp:0<index,CanMoveDown:index<sourceItems.length-1,ServerId:serverId}});return Promise.resolve({Items:type,TotalRecordCount:type.length})}function deleteLinkedItems(options){var instance=this.instance,property=this.property;let itemsToRemove=options.items;instance.currentItem[property]=instance.currentItem[property].filter(function(t){return 0===itemsToRemove.filter(function(i){return i.OriginalItem===t}).length});options=instance.context.querySelector('.btnAddTextItem[data-field="'+property+'"]').closest(".editableListviewContainer").querySelector(".chkLockedField");return options&&(options.checked=!0),Promise.resolve()}function moveLinkedItemsInOrder(items,options){var instance=this.instance,property=this.property,fromIndex=(console.log("onItemsMovedToNewIndex"),options.currentIndex),options=options.newIndex;return console.log("onItemsMovedToNewIndex, fromIndex: "+fromIndex+", newIndex: "+options),fromIndex!==options&&(arraymove(instance.currentItem[property],fromIndex,options),fromIndex=instance.context.querySelector('.btnAddTextItem[data-field="'+property+'"]').closest(".editableListviewContainer").querySelector(".chkLockedField"))&&(fromIndex.checked=!0),Promise.resolve()}function getLinkedItemOptions(items){var enableDragReorder="Tag"!==this.type;return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"none",buttonCommands:["delete"],fields:["Name"],draggable:enableDragReorder,dragReorder:enableDragReorder,roundImage:!0,image:!1,commandActions:{deleteItems:deleteLinkedItems.bind(this),moveInOrder:moveLinkedItemsInOrder.bind(this)}}}}function arraymove(arr,fromIndex,toIndex){var element=arr[fromIndex];arr.splice(fromIndex,1),arr.splice(toIndex,0,element)}function movePeopleInOrder(items,options){console.log("onItemsMovedToNewIndex");var fromIndex=options.currentIndex,options=options.newIndex;return console.log("onItemsMovedToNewIndex, fromIndex: "+fromIndex+", newIndex: "+options),fromIndex!==options&&(arraymove(this.currentItem.People,fromIndex,options),fromIndex=this.context.querySelector('.chkLockedField[data-field="Cast"]'))&&(fromIndex.checked=!0),Promise.resolve()}function getPeopleListOptions(items){return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"edit",buttonCommands:["edit","delete"],fields:["Name","ShortOverview"],draggable:!0,dragReorder:!0,roundImage:!0,image:!1,commandActions:{deleteItems:deletePeople.bind(this),edit:editPeople.bind(this),moveInOrder:movePeopleInOrder.bind(this)}}}}function editPeople(items,options){return addOrEditPerson(this,items[0].OriginalItem)}function deletePeople(options){let itemsToRemove=options.items;this.currentItem.People=this.currentItem.People.filter(function(t){return 0===itemsToRemove.filter(function(i){return i.OriginalItem===t}).length});options=this.context.querySelector('.chkLockedField[data-field="Cast"]');return options&&(options.checked=!0),Promise.resolve()}function init(instance,itemId,context,apiClient){instance.itemId=itemId,instance.serverId=apiClient.serverId(),context.querySelector(".externalIds").addEventListener("click",function(e){var formatString,e=e.target.closest(".btnOpenExternalId");e&&(formatString=(e=context.querySelector("."+e.getAttribute("data-fieldid"))).getAttribute("data-formatstring"),e.value)&&shell.openUrl(formatString.replace("{0}",e.value))}),context.querySelector(".btnMore").addEventListener("click",function(e){connectionManager.getApiClient(instance.currentItem).getCurrentUser().then(function(user){showMoreMenu(instance,e.target,user)})}),context.querySelector(".selectGuideDataProvider").addEventListener("change",onGuideDataProviderChange.bind(instance)),context.querySelector(".btnHeaderSave").addEventListener("click",function(e){context.querySelector(".btnSave").click()});itemId=context.querySelector("form"),itemId.addEventListener("click",onEditorClick.bind(instance)),itemId.addEventListener("submit",onSubmit.bind(instance)),context.querySelector(".btnAddPerson").addEventListener("click",function(event,data){addOrEditPerson(instance)}),autoLockFields(context),apiClient=context.querySelector(".peopleItemsContainer"),apiClient.fetchData=getPeopleItems.bind(instance),apiClient.getListOptions=getPeopleListOptions.bind(instance),itemId=context.querySelector(".tagsItemsContainer"),itemId.fetchData=getLinkedItems.bind({instance:instance,type:"Tag",property:"TagItems"}),itemId.getListOptions=getLinkedItemOptions.bind({instance:instance,type:"Tag",property:"TagItems"}),apiClient=context.querySelector(".studiosItemsContainer"),apiClient.fetchData=getLinkedItems.bind({instance:instance,type:"Studio",property:"Studios"}),apiClient.getListOptions=getLinkedItemOptions.bind({instance:instance,type:"Studio",property:"Studios"}),itemId=context.querySelector(".genresItemsContainer");itemId.fetchData=getLinkedItems.bind({instance:instance,type:"Genre",property:"GenreItems"}),itemId.getListOptions=getLinkedItemOptions.bind({instance:instance,type:"Genre",property:"GenreItems"})}function getItem(itemId,serverId){serverId=connectionManager.getApiClient(serverId);return itemId?serverId.getItem(serverId.getCurrentUserId(),itemId,{Fields:"ChannelMappingInfo",ExcludeFields:"Chapters,MediaSources,MediaStreams,Subviews"}):serverId.getRootFolder(serverId.getCurrentUserId())}function getEditorConfig(itemId,serverId){serverId=connectionManager.getApiClient(serverId);return itemId?serverId.getJSON(serverId.getUrl("Items/"+itemId+"/MetadataEditor")):Promise.resolve({})}function populateCountries(select,allCountries){let html="";html+="<option value=''></option>";for(let i=0,length=allCountries.length;i<length;i++){var culture=allCountries[i];html+="<option value='"+culture.TwoLetterISORegionName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}function populateLanguages(select,languages){let html="";html+="<option value=''></option>";for(let i=0,length=languages.length;i<length;i++){var culture=languages[i];html+="<option value='"+culture.TwoLetterISOLanguageName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}function findKey(keys,key){let keyLower=key.toLowerCase();return keys.filter(function(k){return k.toLowerCase()===keyLower})[0]||key}function loadExternalIds(context,item,externalIds){let html="";var providerIds=item.ProviderIds||{},keys=Object.keys(providerIds);for(let i=0,length=externalIds.length;i<length;i++){var idInfo=externalIds[i],id="txt1"+idInfo.Key,formatString=idInfo.UrlFormatString||"",labelText=globalize.translate("LabelDynamicExternalId").replace("{0}",idInfo.Name),value=(html=html+'<div class="inputContainer">'+'<div class="flex align-items-center">',providerIds[findKey(keys,idInfo.Key)]||"");html=(html+='<div class="flex-grow">')+('<input is="emby-input" class="txtExternalId '+id+'" value="'+value+'" data-providerkey="'+idInfo.Key+'" data-formatstring="'+formatString+'" label="'+labelText+'"/>')+"</div>",formatString&&(html+='<button type="button" is="paper-icon-button-light" class="btnOpenExternalId align-self-flex-end md-icon" data-fieldid="'+id+'">open_in_browser</button>'),html=html+"</div>"+"</div>"}context.querySelector(".externalIds",context).innerHTML=html,externalIds.length?context.querySelector(".externalIdsSection").classList.remove("hide"):context.querySelector(".externalIdsSection").classList.add("hide")}function hideElement(selector,context,multiple){context=context||document,"string"==typeof selector?(multiple=multiple?context.querySelectorAll(selector):[context.querySelector(selector)],Array.prototype.forEach.call(multiple,function(el){el&&el.classList.add("hide")})):selector.classList.add("hide")}function showElement(selector,context,multiple){context=context||document,"string"==typeof selector?(multiple=multiple?context.querySelectorAll(selector):[context.querySelector(selector)],Array.prototype.forEach.call(multiple,function(el){el&&el.classList.remove("hide")})):selector.classList.remove("hide")}function setRequired(elem,required){required?elem.setAttribute("required","required"):elem.removeAttribute("required")}function setFieldVisibilities(context,item,apiClient){var itemType=item.Type;switch((item.Path?showElement:hideElement)(".fldPath",context),("Series"===item.Type||"Movie"===item.Type||"Trailer"===item.Type?showElement:hideElement)(".fldOriginalName",context),"Audio"===item.Type?(hideElement(".fldSortName",context),setRequired(context.querySelector(".txtSortName"),!1)):(showElement(".fldSortName",context),setRequired(context.querySelector(".txtSortName"),!0)),("Series"===item.Type?showElement:hideElement)(".fldSeriesRuntime",context),("Series"===item.Type||"Person"===item.Type?showElement:hideElement)(".fldEndDate",context),("MusicAlbum"===item.Type?showElement:hideElement)(".albumAssociationMessage",context),("Movie"===item.Type||"Trailer"===item.Type||"Series"===item.Type?showElement:hideElement)(".fldCriticRating",context),("Series"===item.Type?showElement:hideElement)(".fldStatus",context),("Video"===item.MediaType&&"TvChannel"!==item.Type?showElement:hideElement)(".fld3dFormat",context),("Audio"===item.Type?showElement:hideElement)(".fldAlbumArtist",context),("TvChannel"===item.Type?showElement:hideElement)(".fldChannelNumber",context),("Audio"===item.Type||"MusicVideo"===item.Type?(showElement(".fldArtist",context),showElement):(hideElement(".fldArtist",context),hideElement))(".fldAlbum",context),("Episode"===item.Type&&0===item.ParentIndexNumber?showElement:hideElement)(".collapsibleSpecialEpisodeInfo",context),("Person"===item.Type||"Genre"===item.Type||"Studio"===item.Type||"GameGenre"===item.Type||"MusicGenre"===item.Type||"TvChannel"===item.Type||"Book"===item.Type||"MusicArtist"===item.Type||"Channel"===item.Type||"TvChannel"===item.Type||"Folder"===item.Type?hideElement:showElement)(".peopleCollapsible",context),("Person"===item.Type||"Genre"===item.Type||"Studio"===item.Type||"GameGenre"===item.Type||"MusicGenre"===item.Type||"TvChannel"===item.Type||"Folder"===item.Type?(hideElement(".fldCommunityRating",context),hideElement(".genresCollapsible",context),hideElement(".studiosCollapsible",context),("TvChannel"===item.Type?showElement:hideElement)(".fldOfficialRating",context),hideElement):(showElement(".fldCommunityRating",context),showElement(".genresCollapsible",context),showElement(".studiosCollapsible",context),showElement(".fldOfficialRating",context),showElement))(".fldCustomRating",context),showElement(".tagsCollapsible",context),("TvChannel"===item.Type?(hideElement(".metadataSettingsCollapsible",context),hideElement):(showElement(".metadataSettingsCollapsible",context),showElement))(".fldDateAdded",context),itemType){case"TvChannel":case"Folder":hideElement(".fldPremiereDate",context);break;default:showElement(".fldPremiereDate",context)}switch(itemType){case"Person":case"TvChannel":case"Folder":hideElement(".fldYear",context);break;default:showElement(".fldYear",context)}("TvChannel"===item.Type||"Folder"===item.Type?hideElement:showElement)(".overviewContainer",context),("Person"===item.Type?(context.querySelector(".txtProductionYear").label(globalize.translate("LabelBirthYear")),context.querySelector(".txtPremiereDate").label(globalize.translate("LabelBirthDate")),context.querySelector(".txtEndDate").label(globalize.translate("LabelDeathDate")),showElement):(context.querySelector(".txtProductionYear").label(globalize.translate("Year")),context.querySelector(".txtPremiereDate").label(globalize.translate("LabelReleaseDate")),context.querySelector(".txtEndDate").label(globalize.translate("LabelEndDate")),hideElement))(".fldPlaceOfBirth"),"Audio"===item.Type||"Episode"===item.Type||"Season"===item.Type?(showElement(".fldIndexNumber"),"Episode"===item.Type?context.querySelector(".txtIndexNumber").label(globalize.translate("LabelEpisodeNumber")):"Season"===item.Type?context.querySelector(".txtIndexNumber").label(globalize.translate("LabelSeasonNumber")):"Audio"===item.Type?context.querySelector(".txtIndexNumber").label(globalize.translate("LabelTrackNumber")):context.querySelector(".txtIndexNumber").label(globalize.translate("LabelNumber"))):hideElement(".fldIndexNumber"),"Audio"===item.Type||"Episode"===item.Type?(showElement(".fldParentIndexNumber"),"Episode"===item.Type?context.querySelector(".txtParentIndexNumber").label(globalize.translate("LabelSeasonNumber")):"Audio"===item.Type?context.querySelector(".txtParentIndexNumber").label(globalize.translate("LabelDiscNumber")):context.querySelector(".txtParentIndexNumber").label(globalize.translate("LabelParentNumber"))):hideElement(".fldParentIndexNumber",context),"BoxSet"===item.Type?(showElement(".fldDisplayOrder",context),hideElement(".fldFileOrder",context),context.querySelector(".selectDisplayOrder").innerHTML='<option value="SortName">'+globalize.translate("SortName")+'</option><option value="PremiereDate">'+globalize.translate("ReleaseDate")+"</option>",context.querySelector(".selectFileOrder").innerHTML=""):"Series"===item.Type?(hideElement(".fldDisplayOrder",context),showElement(".fldFileOrder",context),context.querySelector(".selectFileOrder").innerHTML='<option value="aired">'+globalize.translate("Aired")+'</option><option value="absolute">'+globalize.translate("Absolute")+'</option><option value="dvd">Dvd</option>',context.querySelector(".selectDisplayOrder").innerHTML=""):(context.querySelector(".selectDisplayOrder").innerHTML="",context.querySelector(".selectFileOrder").innerHTML="",hideElement(".fldDisplayOrder",context),hideElement(".fldFileOrder",context))}function fillItemInfo(context,item,apiClient,parentalRatingOptions){let select=context.querySelector(".selectOfficialRating");populateRatings(parentalRatingOptions,select,item.OfficialRating),select.value=item.OfficialRating||"",populateRatings(parentalRatingOptions,select=context.querySelector(".selectCustomRating"),item.CustomRating),select.value=item.CustomRating||"";parentalRatingOptions=context.querySelector(".selectStatus"),populateStatus(parentalRatingOptions),parentalRatingOptions.value=item.Status||"",context.querySelector(".select3dFormat",context).value=item.Video3DFormat||"",parentalRatingOptions=item.LockData||!1;if(context.querySelector(".chkLockData").checked=parentalRatingOptions,context.querySelector(".txtPath").innerHTML=item.Path||"",context.querySelector(".txtName").value=item.Name||"",context.querySelector(".txtChannelNumber").value=item.ChannelNumber||"",context.querySelector(".txtOriginalName").value=item.OriginalTitle||"",context.querySelector(".txtOverview").value=item.Overview||"",context.querySelector(".txtTagline").value=item.Taglines&&item.Taglines.length?item.Taglines[0]:"",context.querySelector(".txtSortName").value=item.SortName||"",context.querySelector(".txtCommunityRating").value=null==item.CommunityRating?"":item.CommunityRating.toFixed(1),context.querySelector(".txtCriticRating").value=item.CriticRating||"",context.querySelector(".txtIndexNumber").value=null==item.IndexNumber?"":item.IndexNumber,context.querySelector(".txtParentIndexNumber").value=null==item.ParentIndexNumber?"":item.ParentIndexNumber,context.querySelector(".txtDisplaySeason").value="SortParentIndexNumber"in item?item.SortParentIndexNumber:"",context.querySelector(".txtDisplayEpisode").value="SortIndexNumber"in item?item.SortIndexNumber:"",context.querySelector(".txtAlbum").value=item.Album||"",context.querySelector(".txtAlbumArtist").value=(item.AlbumArtists||[]).map(function(a){return a.Name}).join(";"),"Series"===item.Type?(context.querySelector(".selectFileOrder").value=(item.DisplayOrder||"").toLowerCase(),context.querySelector(".selectDisplayOrder").value=""):(context.querySelector(".selectDisplayOrder").value=item.DisplayOrder||"",context.querySelector(".selectFileOrder").value=""),context.querySelector(".txtArtist").value=(item.ArtistItems||[]).map(function(a){return a.Name}).join(";"),item.DateCreated)try{context.querySelector(".txtDateAdded").valueAsNumberUtc=Date.parse(item.DateCreated)}catch(e){context.querySelector(".txtDateAdded").value=""}else context.querySelector(".txtDateAdded").value="";if(item.PremiereDate)try{context.querySelector(".txtPremiereDate").valueAsNumberUtc=Date.parse(item.PremiereDate)}catch(e){context.querySelector(".txtPremiereDate").value=""}else context.querySelector(".txtPremiereDate").value="";if(item.EndDate)try{context.querySelector(".txtEndDate").valueAsNumberUtc=Date.parse(item.EndDate)}catch(e){context.querySelector(".txtEndDate").value=""}else context.querySelector(".txtEndDate").value="";context.querySelector(".txtProductionYear").value=item.ProductionYear||"";var parentalRatingOptions=item.ProductionLocations&&item.ProductionLocations.length?item.ProductionLocations[0]:"",promises=(context.querySelector(".txtPlaceOfBirth").value=parentalRatingOptions,context.querySelector(".selectLanguage").value=item.PreferredMetadataLanguage||"",context.querySelector(".selectCountry").value=item.PreferredMetadataCountryCode||"",item.RunTimeTicks?(parentalRatingOptions=item.RunTimeTicks/6e8,context.querySelector(".txtSeriesRuntime").value=Math.round(parentalRatingOptions)):context.querySelector(".txtSeriesRuntime",context).value="",loading.hide(),[]),itemsContainers=context.querySelectorAll(".itemsContainer");for(let i=0,length=itemsContainers.length;i<length;i++)promises.push(waitForCustomElementUpgradeAndResume(itemsContainers[i],{refresh:!0}));return Promise.all(promises)}function waitForCustomElementUpgradeAndResume(itemsContainer,options){return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.resume(options)})}function fillGuideDataProviders(instance,context,item,providers){context=context.querySelector(".selectGuideDataProvider"),providers.push({Name:globalize.translate("None"),Id:"none"}),providers=providers.map(function(i){return'<option value="'+i.Id+'">'+i.Name+" "+textEncoding.htmlEncode(i.ListingsId||i.Path||"").trim()+"</option>"}).join("");context.innerHTML=providers,context.value=item.ListingsProviderId,onGuideDataProviderChange.call(instance,{target:context,currentTarget:context})}function fillChannelOptions(context,item,channels){context=context.querySelector(".selectGuideChannel"),channels=channels.map(function(i){return'<option value="'+i.Id+'">'+i.Name.trim()+"</option>"}).join("");context.innerHTML=channels,context.value=item.ListingsChannelId}function fillChannels(context,item,listingsProviderId,apiClient){return apiClient.getJSON(apiClient.getUrl("LiveTv/ChannelMappingOptions",{ProviderId:listingsProviderId})).then(function(result){fillChannelOptions(context,item,result.ProviderChannels)})}function fillChannelMapping(instance,context,item,apiClient){return apiClient.getJSON(apiClient.getUrl("LiveTv/ListingProviders",{ChannelId:item.Id})).then(function(result){result.length?context.querySelector(".channelMappingSection").classList.remove("hide"):context.querySelector(".channelMappingSection").classList.add("hide"),fillGuideDataProviders(instance,context,item,result)})}function populateRatings(allParentalRatings,select,currentValue){let html="";html+="<option value=''></option>";var ratings=[];let i,length,rating,currentValueFound=!1;for(i=0,length=allParentalRatings.length;i<length;i++)rating=allParentalRatings[i],ratings.push({Name:rating.Name,Value:rating.Name}),rating.Name===currentValue&&(currentValueFound=!0);for(currentValue&&!currentValueFound&&ratings.push({Name:currentValue,Value:currentValue}),i=0,length=ratings.length;i<length;i++)rating=ratings[i],html+="<option value='"+rating.Value+"'>"+rating.Name+"</option>";select.innerHTML=html}function populateStatus(select){var html="",html=(html=(html+="<option value=''></option>")+("<option value='Continuing'>"+globalize.translate("Continuing")+"</option>"))+("<option value='Ended'>"+globalize.translate("Ended")+"</option>");select.innerHTML=html}function loadLockedFields(context,item){var elems=context.querySelectorAll(".chkLockedField");for(let i=0,length=elems.length;i<length;i++){var elem=elems[i];elem.checked=item.LockedFields.includes(elem.getAttribute("data-field"))}}function reload(instance,itemId,serverId){return loading.show(),Promise.all([getItem(itemId,serverId),getEditorConfig(itemId,serverId)]).then(function(responses){var item=responses[0],responses=responses[1],context=instance.context,languages=(instance.currentItem=item,instance.hasChanges=!1,responses.Cultures),countries=responses.Countries,languages=(loadExternalIds(context,item,responses.ExternalIdInfos),loadLockedFields(context,item),populateLanguages(context.querySelector(".selectLanguage"),languages),populateCountries(context.querySelector(".selectCountry"),countries),connectionManager.getApiClient(item));return setFieldVisibilities(context,item,languages),"TvChannel"===item.Type&&fillChannelMapping(instance,context,item,languages),("Video"===item.MediaType&&"Episode"!==item.Type&&"TvChannel"!==item.Type||"Series"===item.Type||"Game"===item.Type?showElement:hideElement)(".fldTagline",context),fillItemInfo(context,item,languages,responses.ParentalRatingOptions)})}function fillDayText(context){for(var elems=context.querySelectorAll(".dayText"),date=new Date;0<date.getDay();)date.setDate(date.getDate()-1);for(let i=0,length=elems.length;i<length;i++)elems[i].innerHTML=datetime.toLocaleDateString(date,{weekday:"long"}),date.setDate(date.getDate()+1)}function show(instance,itemId,serverId){return loading.show(),require(["text!modules/metadataeditor/metadataeditor.template.html"]).then(function(responses){var responses=responses[0],dialogOptions={removeOnClose:!0,scrollY:!1},dialogOptions=(layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall",dialogHelper.createDialog(dialogOptions)),html=(dialogOptions.classList.add("formDialog"),""),responses=(html+=globalize.translateDocument(responses,"sharedcomponents"),dialogOptions.innerHTML=html,fillDayText(dialogOptions),dialogOptions.querySelector(".formDialogFooter").classList.remove("hide"),instance.context=dialogOptions,dialogHelper.open(dialogOptions));return init(instance,itemId,dialogOptions,connectionManager.getApiClient(serverId)),instance.resume({refresh:!0}),responses.then(function(){var hasChanges=instance.hasChanges;return instance.destroy(),hasChanges?Promise.resolve():Promise.reject()})})}function MetadataEditor(){this.onLibraryChangedFn=onLibraryChanged.bind(this);var onLibraryChangedFn=this.onLibraryChangedFn;onLibraryChangedFn&&events.on(serverNotifications,"LibraryChanged",onLibraryChangedFn)}require(["formDialogStyle","flexStyles","css!modules/metadataeditor/metadataeditor.css"]),MetadataEditor.prototype.show=function(itemId,serverId){return show(this,itemId,serverId)},MetadataEditor.prototype.embed=function(elem,itemId,serverId){loading.show();let instance=this;return require(["text!modules/metadataeditor/metadataeditor.template.html"]).then(function(responses){responses=responses[0],elem.innerHTML=globalize.translateDocument(responses,"sharedcomponents"),(instance.context=elem).querySelector(".btnMore").classList.remove("hide"),init(instance,itemId,elem,connectionManager.getApiClient(serverId)),elem.querySelector(".formDialogFooter").classList.remove("formDialogFooter","hide"),elem.querySelector(".btnHeaderSave").classList.remove("hide"),responses=elem.querySelector("form");return responses.classList.remove("dialogContentInner","dialog-content-centered"),responses.classList.add("padded-bottom-page"),instance.resume({refresh:!0,autoFocus:!0})})},MetadataEditor.prototype.refreshPeople=function(){this.context.querySelector(".peopleItemsContainer").refreshItems()},MetadataEditor.prototype.pause=function(){this.paused=!0},MetadataEditor.prototype.resume=function(options){this.paused=null;let instance=this;function afterRefresh(){options?.autoFocus&&focusManager.autoFocus(instance.context,{skipIfNotEnabled:!0})}if(this._afterDeletedOnResume){var item=this.currentItem;item&&afterDeleted(this,item)}else if(this._fullReloadOnResume){let item=this.currentItem;item&&reload(this,item.Id,item.ServerId).then(afterRefresh)}else options?.refresh&&reload(this,this.itemId,this.serverId).then(afterRefresh);this._afterDeletedOnResume=null,this._fullReloadOnResume=null},MetadataEditor.prototype.destroy=function(){this.pause();var onLibraryChangedFn=this.onLibraryChangedFn;onLibraryChangedFn&&events.off(serverNotifications,"LibraryChanged",onLibraryChangedFn),this.onLibraryChangedFn=null,this.hasChanges=null,this.context=null,this.currentItem=null,this.paused=null,this._afterDeletedOnResume=null,this._fullReloadOnResume=null};export default MetadataEditor;