1 line
9.9 KiB
JavaScript
1 line
9.9 KiB
JavaScript
define(["exports","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../focusmanager.js","./../common/servicelocator.js","./../common/globalize.js","./../common/usersettings/usersettings.js","./../emby-apiclient/connectionmanager.js","./../emby-apiclient/events.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../listview/listview.js","./../common/itemhelper.js","./../common/input/api.js"],function(_exports,_loading,_dialoghelper,_layoutmanager,_focusmanager,_servicelocator,_globalize,_usersettings,_connectionmanager,_events,_embySelect,_embyButton,_paperIconButtonLight,_embyScroller,_embyItemscontainer,_listview,_itemhelper,_api){function onGetItem(instance,item,mediaSource,apiClient,autoSearch){var context=instance.context;instance.currentItem=item,instance.mode="Audio"===item.MediaType?"lyrics":"subtitles",function(instance){var context=instance.context;"lyrics"===instance.mode?(context.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Lyrics"),context.querySelector(".subtitleSearchHeaderText").innerHTML=_globalize.default.translate("SearchForLyrics"),context.querySelector(".fldForcedOnly").classList.add("hide")):(context.querySelector(".formDialogHeaderTitle").innerHTML=_globalize.default.translate("Subtitles"),context.querySelector(".subtitleSearchHeaderText").innerHTML=_globalize.default.translate("SearchForSubtitles"),context.querySelector(".fldForcedOnly").classList.remove("hide"))}(instance),instance.currentMediaSource=mediaSource,apiClient.getCurrentUser().then(function(user){user.Policy.EnableSubtitleDownloading?context.querySelector(".subtitleSearchContainer").classList.remove("hide"):context.querySelector(".subtitleSearchContainer").classList.add("hide"),instance.subtitleList.resume({refresh:!0});var user=instance.currentMediaSource.Path||"",index=Math.max(user.lastIndexOf("/"),user.lastIndexOf("\\"));(user=-1<index?user.substring(index+1):user)?(context.querySelector(".originalFile").innerHTML=user,context.querySelector(".originalFile").classList.remove("hide")):(context.querySelector(".originalFile").innerHTML="",context.querySelector(".originalFile").classList.add("hide")),_loading.default.hide(),_focusmanager.default.autoFocus(context,{skipIfNotEnabled:!0}),autoSearch&&setTimeout(function(){context.querySelector(".subtitleSearchForm").requestSubmit(context.querySelector(".btnSubmit"))},300)})}function reload(instance,apiClient,itemId,mediaSource,autoSearch){"string"==typeof itemId?apiClient.getItem(apiClient.getCurrentUserId(),itemId).then(function(item){for(var mediaSourceId=mediaSource,i=0,length=item.MediaSources.length;i<length;i++)if(mediaSourceId===item.MediaSources[i].Id){mediaSource=item.MediaSources[i];break}mediaSource=mediaSource||item.MediaSources[0],onGetItem(instance,item,mediaSource,apiClient,autoSearch)}):onGetItem(instance,itemId,mediaSource,apiClient,autoSearch)}function getExistingSubtitlesListOptions(){return{renderer:_listview.default,options:((fields=["Name"]).push("PathOrTitle"),{enableDefaultIcon:!0,action:_layoutmanager.default.tv?"menu":"none",fields:fields,draggable:!1,multiSelect:!1,hoverPlayButton:!1,enableUserDataButtons:!1,mediaInfo:!1,preferIcon:!0,imageSize:"smaller",forceBorder:!0}),virtualScrollLayout:"vertical-list"};var fields}function getRemoteSubtitlesListOptions(){return{renderer:_listview.default,options:((fields=["Name"]).push("ProviderName"),{enableDefaultIcon:!0,action:_layoutmanager.default.tv?"menu":"none",fields:fields,draggable:!1,multiSelect:!1,hoverPlayButton:!1,enableUserDataButtons:!1,mediaInfo:!0,enableSideMediaInfo:!1,image:!1,preferIcon:!0,imageSize:"smaller",forceBorder:!0,downloadButton:!0,previewButton:!0,moreButton:!1}),virtualScrollLayout:"vertical-list"};var fields}function SubtitleEditor(){this.onLibraryChangedFn=function(e,apiClient,data){var currentItem=this.currentItem;currentItem&&null!=(data=data.ItemsUpdated)&&data.includes(currentItem.Id)&&!this.paused&&reload(this,apiClient,this.currentItem.Id,this.currentMediaSource.Id)}.bind(this)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","formDialogStyle","material-icons"]),SubtitleEditor.prototype.show=function(options){this.options=options;var instance=this;return require(["text!./modules/subtitleeditor/subtitleeditor.template.html"]).then(function(responses){var responses=responses[0],item=(instance.hasChanges=!1,instance.newStreamIndex=null,options.item),mediaSource=options.mediaSource,apiClient=_connectionmanager.default.getApiClient(item),dialogOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1},dlg=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="medium-tall",_dialoghelper.default.createDialog(dialogOptions)),editorContent=((instance.context=dlg).classList.add("formDialog"),dlg.classList.add("subtitleEditorDialog"),dlg.innerHTML=_globalize.default.translateDocument(responses,"sharedcomponents"),dlg.querySelector(".subtitleSearchForm").addEventListener("submit",function(e){var lang=e.target.closest("form").querySelector("#selectLanguage").value;return _usersettings.default.set("subtitleeditor-language",lang),this.subtitleResults.resume({refresh:!0}),_loading.default.show(),e.preventDefault(),!1}.bind(instance)),dlg.querySelector(".formDialogContent")),dialogOptions=(apiClient.getCultures().then(function(languages){!function(context,apiClient,languages){var selectLanguage=context.querySelector("#selectLanguage");selectLanguage.innerHTML=languages.map(function(l){return'<option value="'+l.TwoLetterISOLanguageName+'">'+l.DisplayName+"</option>"}),(context=_usersettings.default.get("subtitleeditor-language"))?selectLanguage.value=context:apiClient.getCurrentUser().then(function(user){user=user.Configuration.SubtitleLanguagePreference;user&&(selectLanguage.value=user)})}(editorContent,apiClient,languages)}),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)}),"NoSubtitleSearchResultsFound"),responses=("lyrics"===instance.mode&&(dialogOptions="NoLyricsSearchResultsFound"),_servicelocator.appHost.supports("externallinks")?dlg.querySelector(".noSearchResults").innerHTML=_globalize.default.translate(dialogOptions,'<a is="emby-linkbutton" href="https://support.emby.media/support/solutions/articles/44001848856-manual-subtitle-downloads" target="_blank" class="button-link">',"</a>"):dlg.querySelector(".noSearchResults").innerHTML=_globalize.default.translate(dialogOptions,"",""),dlg.querySelector(".subtitleList")),dialogOptions=(responses.fetchData=function(query){var _instance$options,totalRecordCount,mediaSource=this.currentMediaSource,item=this.currentItem;return item&&mediaSource&&!1!==(null==(_instance$options=this.options)?void 0:_instance$options.showCurrentSubtitles)?(totalRecordCount=(_instance$options=mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type}).map(function(s){return _itemhelper.default.normalizeMediaStreamForDisplay(item,mediaSource,s)})).length,Promise.resolve({Items:_instance$options,TotalRecordCount:totalRecordCount})):Promise.resolve({Items:[],TotalRecordCount:0})}.bind(instance),responses.getListOptions=getExistingSubtitlesListOptions.bind(instance),responses.parentContainer=responses,instance.subtitleList=responses,dlg.querySelector(".subtitleResults")),responses=(dialogOptions.fetchData=function(){var context=this.context,apiClient=_connectionmanager.default.getApiClient(this.currentItem),language=context.querySelector("#selectLanguage").value,itemId=this.currentItem.Id,mediaSourceId=this.currentMediaSource.Id,language=apiClient.getUrl("Items/"+itemId+"/RemoteSearch/Subtitles/"+language,{IsForced:context.querySelector("#chkForcedOnly").checked||null,MediaSourceId:mediaSourceId}),serverId=apiClient.serverId();return apiClient.getJSON(language).then(function(items){for(var i=0,length=items.length;i<length;i++){var item=items[i];item.Type="RemoteSubtitle",item.ServerId=serverId,item.ItemId=itemId,item.MediaSourceId=mediaSourceId}return{Items:items,TotalRecordCount:items.length}})}.bind(instance),dialogOptions.getListOptions=getRemoteSubtitlesListOptions.bind(instance),dialogOptions.afterRefresh=function(result){var context=this.context;result.TotalRecordCount?context.querySelector(".noSearchResults").classList.add("hide"):context.querySelector(".noSearchResults").classList.remove("hide"),_loading.default.hide()}.bind(instance),dialogOptions.onCommandResultInternal=function(result){"download"===result.command&&(result=result.result)&&(this.hasChanges=!0,this.newStreamIndex=result.NewIndex,this.options.closeOnDownload)&&(result=this.context,_dialoghelper.default.close(result))}.bind(instance),instance.subtitleResults=dialogOptions,instance.onLibraryChangedFn);return responses&&_events.default.on(_api.default,"LibraryChanged",responses),new Promise(function(resolve,reject){dlg.addEventListener("close",function(){instance.hasChanges?resolve({NewIndex:instance.newStreamIndex}):reject()}),_dialoghelper.default.open(dlg),reload(instance,apiClient,item,mediaSource,options.autoSearch)})})},SubtitleEditor.prototype.pause=function(){var _this$subtitleList;null!=(_this$subtitleList=this.subtitleList)&&_this$subtitleList.pause(),null!=(_this$subtitleList=this.subtitleResults)&&_this$subtitleList.pause()},SubtitleEditor.prototype.destroy=function(){this.pause();var onLibraryChangedFn=this.onLibraryChangedFn;onLibraryChangedFn&&_events.default.off(_api.default,"LibraryChanged",onLibraryChangedFn),this.onLibraryChangedFn=null,this.subtitleList=null,this.subtitleResults=null,this.mode=null,this.options=null,this.hasChanges=null,this.currentItem=null,this.currentMediaSource=null},_exports.default={show:function(options){_loading.default.show();var editor=new SubtitleEditor;return editor.show(options).then(function(result){return editor.destroy(),Promise.resolve(result)})}}}); |