EmbyCrackedClient/web/livetvsetup/guideprovider.js

1 line
2.1 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import BaseSettingsView from"./../modules/viewmanager/basesettingsview.js";import loading from"./../modules/loading/loading.js";import"./../modules/emby-elements/emby-select/emby-select.js";import appRouter from"./../modules/approuter.js";function populateCountries(select){return ApiClient.getCountries().then(function(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.ThreeLetterISORegionName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html})}function renderListingsProviders(select,options){select.innerHTML='<option value=""></option>'+options.map(function(o){return'<option data-url="'+o.SetupUrl+'" value="'+o.Id+'">'+o.Name+"</option>"}).join("")}function onCountryChange(){var country=this.value,fldGuideProvider=this.closest("FORM").querySelector(".fldGuideProvider");country?fldGuideProvider.classList.remove("hide"):(fldGuideProvider.classList.add("hide"),loading.hide());let selectProvider=fldGuideProvider.querySelector(".selectProvider");selectProvider.innerHTML="",country&&(loading.show(),ApiClient.getJSON(ApiClient.getUrl("LiveTv/ListingProviders/Available",{Country:country})).then(function(options){renderListingsProviders(selectProvider,options),loading.hide()}))}function cancel(){appRouter.back()}function onSubmit(e){var selectProvider=this.querySelector(".selectProvider"),country=this.querySelector(".selectCountry").value;let url=selectProvider.options[selectProvider.selectedIndex].getAttribute("data-url");url.includes("?")?url+="&":url+="?",url+="country="+country,appRouter.show(url),e.preventDefault(),e.stopPropagation()}function View(view,params){BaseSettingsView.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit),view.querySelector(".btnCancel").addEventListener("click",cancel),view.querySelector(".selectCountry").addEventListener("change",onCountryChange)}Object.assign(View.prototype,BaseSettingsView.prototype),View.prototype.loadSettingsInternal=function(){return populateCountries(this.view.querySelector(".selectCountry"))};export default View;