1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

rework tuner setup

This commit is contained in:
Luke Pulverenti 2017-03-13 14:57:45 -04:00
parent 216f02c210
commit 899ae00ed4
18 changed files with 29 additions and 195 deletions

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
define(["globalize","emby-input","emby-button","emby-checkbox","emby-select"],function(globalize){"use strict";function fillTypes(view,currentId){return ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Types")).then(function(types){var selectType=view.querySelector(".selectType");selectType.innerHTML=types.map(function(t){return'<option value="'+t.Id+'">'+t.Name+"</option>"}).join(""),selectType.disabled=null!=currentId,selectType.value="",selectType.dispatchEvent(new CustomEvent("change",{}))})}function reload(view,providerId){view.querySelector(".txtDevicePath").value="",view.querySelector(".chkFavorite").checked=!1,providerId&&ApiClient.getNamedConfiguration("livetv").then(function(config){var info=config.TunerHosts.filter(function(i){return i.Id==providerId})[0];fillTunerHostInfo(view,info)})}function fillTunerHostInfo(view,info){var selectType=view.querySelector(".selectType");selectType.value=info.Type||"",selectType.dispatchEvent(new CustomEvent("change",{})),view.querySelector(".txtDevicePath").value=info.Url||"",view.querySelector(".chkFavorite").checked=info.ImportFavoritesOnly,view.querySelector(".chkTranscode").checked=info.AllowHWTranscoding}function submitForm(page){Dashboard.showLoadingMsg();var info={Type:page.querySelector(".selectType").value,Url:page.querySelector(".txtDevicePath").value,ImportFavoritesOnly:page.querySelector(".chkFavorite").checked,AllowHWTranscoding:page.querySelector(".chkTranscode").checked},id=getParameterByName("id");id&&(info.Id=id),ApiClient.ajax({type:"POST",url:ApiClient.getUrl("LiveTv/TunerHosts"),data:JSON.stringify(info),contentType:"application/json"}).then(function(result){Dashboard.processServerConfigurationUpdateResult(),Dashboard.navigate("livetvstatus.html")},function(){Dashboard.alert({message:Globalize.translate("ErrorSavingTvProvider")})})}function getDetectedDevice(){return Promise.reject()}return function(view,params){function onTypeChange(){var value=this.value,mayIncludeUnsupportedDrmChannels="hdhomerun"===value,supportsTranscoding="hdhomerun"===value,supportsFavorites="hdhomerun"===value,supportsTunerIpAddress="hdhomerun"===value,supportsTunerFileOrUrl="m3u"===value;supportsTunerIpAddress?(view.querySelector(".txtDevicePath").label(globalize.translate("LabelTunerIpAddress")),view.querySelector(".btnSelectPath").classList.add("hide"),view.querySelector(".fldPath").classList.remove("hide")):supportsTunerFileOrUrl?(view.querySelector(".txtDevicePath").label(globalize.translate("LabelFileOrUrl")),view.querySelector(".btnSelectPath").classList.remove("hide"),view.querySelector(".fldPath").classList.remove("hide")):(view.querySelector(".fldPath").classList.add("hide"),view.querySelector(".btnSelectPath").classList.add("hide")),supportsFavorites?view.querySelector(".fldFavorites").classList.remove("hide"):view.querySelector(".fldFavorites").classList.add("hide"),supportsTranscoding?view.querySelector(".fldTranscode").classList.remove("hide"):view.querySelector(".fldTranscode").classList.add("hide"),mayIncludeUnsupportedDrmChannels?view.querySelector(".drmMessage").classList.remove("hide"):view.querySelector(".drmMessage").classList.add("hide")}params.id||view.querySelector(".btnDetect").classList.remove("hide"),view.addEventListener("viewshow",function(){var currentId=params.id;fillTypes(view,currentId).then(function(){reload(view,currentId)})}),view.querySelector("form").addEventListener("submit",function(e){return submitForm(view),e.preventDefault(),e.stopPropagation(),!1}),view.querySelector(".selectType").addEventListener("change",onTypeChange),view.querySelector(".btnDetect").addEventListener("click",function(){getDetectedDevice().then(function(info){fillTunerHostInfo(view,info)})}),view.querySelector(".btnSelectPath").addEventListener("click",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&(view.querySelector(".txtDevicePath").value=path),picker.close()}})})})}});

View file

@ -1 +0,0 @@
define(["emby-checkbox"],function(){"use strict";function reload(page,providerId){page.querySelector(".txtDevicePath").value="",providerId&&ApiClient.getNamedConfiguration("livetv").then(function(config){var info=config.TunerHosts.filter(function(i){return i.Id==providerId})[0];page.querySelector(".txtDevicePath").value=info.Url||"",page.querySelector(".txtM3uUrl").value=info.M3UUrl||"",page.querySelector(".chkEnabled").checked=info.IsEnabled})}function fillInfoFromPage(page,info){info.Url=page.querySelector(".txtDevicePath").value,info.M3UUrl=page.querySelector(".txtM3uUrl").value,info.IsEnabled=page.querySelector(".chkEnabled").checked,info.DiseqC=page.querySelector(".selectDiseqC").value,info.SourceA=page.querySelector(".selectSourceA").value,info.SourceB=page.querySelector(".selectSourceB").value,info.SourceC=page.querySelector(".selectSourceC").value,info.SourceD=page.querySelector(".selectSourceD").value}function submitTunerInfo(page,info){ApiClient.ajax({type:"POST",url:ApiClient.getUrl("LiveTv/TunerHosts"),data:JSON.stringify(info),contentType:"application/json"}).then(function(){Dashboard.processServerConfigurationUpdateResult(),Dashboard.navigate("livetvstatus.html")},function(){Dashboard.hideLoadingMsg(),Dashboard.alert({message:Globalize.translate("ErrorSavingTvProvider")})})}function populateMappings(view){ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Satip/IniMappings")).then(function(mappings){var optionsHtml=mappings.map(function(m){return'<option value="'+m.Value+'">'+m.Name+"</option>"}).join("");optionsHtml='<option value="">'+Globalize.translate("OptionNone")+"</option>"+optionsHtml,view.querySelector(".selectSourceA").innerHTML=optionsHtml,view.querySelector(".selectSourceB").innerHTML=optionsHtml,view.querySelector(".selectSourceC").innerHTML=optionsHtml,view.querySelector(".selectSourceD").innerHTML=optionsHtml})}return function(view,params){function submitForm(){Dashboard.showLoadingMsg();var id=params.id;if(id)ApiClient.getNamedConfiguration("livetv").then(function(config){var info=config.TunerHosts.filter(function(i){return i.Id==id})[0];fillInfoFromPage(view,info),submitTunerInfo(view,info)});else{var info={Type:"satip"};fillInfoFromPage(view,info),submitTunerInfo(view,info)}}function onSelectDiseqCChange(e){var select=e.target,value=select.value;value?view.querySelector(".fldSourceB").classList.remove("hide"):view.querySelector(".fldSourceB").classList.add("hide"),"diseqc1"==value?(view.querySelector(".fldSourceC").classList.remove("hide"),view.querySelector(".fldSourceD").classList.remove("hide")):(view.querySelector(".fldSourceC").classList.add("hide"),view.querySelector(".fldSourceD").classList.add("hide"))}view.querySelector("form").addEventListener("submit",function(e){return submitForm(),e.preventDefault(),!1}),view.querySelector(".selectDiseqC").addEventListener("change",onSelectDiseqCChange),populateMappings(view),view.addEventListener("viewshow",function(e){var providerId=params.id;reload(view,providerId)})}});

View file

@ -69,7 +69,7 @@
</div> </div>
<div is="emby-itemscontainer" class="upcomingKidsItems itemsContainer"></div> <div is="emby-itemscontainer" class="upcomingKidsItems itemsContainer"></div>
</div> </div>
<div id="upcomingPrograms" class="homePageSection hide"> <div id="upcomingPrograms" class="upcomingPrograms homePageSection hide">
<div> <div>
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderUpcomingPrograms}</h1> <h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderUpcomingPrograms}</h1>
<a href="livetvitems.html?type=Programs&IsKids=false&IsMovie=false&IsSports=false&IsSeries=false" class="clearLink" style="margin-left: 1em; vertical-align: middle;"><button is="emby-button" type="button" class="raised more mini noIcon">${ButtonMoreItems}</button></a> <a href="livetvitems.html?type=Programs&IsKids=false&IsMovie=false&IsSports=false&IsSeries=false" class="clearLink" style="margin-left: 1em; vertical-align: middle;"><button is="emby-button" type="button" class="raised more mini noIcon">${ButtonMoreItems}</button></a>

View file

@ -1,36 +1,41 @@
<div id="liveTvTunerProviderHdHomerunPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="scripts/livetvtunerprovider-hdhomerun,emby-input,emby-checkbox,emby-button"> <div id="liveTvTunerPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV">
<div data-role="content"> <div data-role="content">
<div class="content-primary"> <div class="content-primary">
<form> <form>
<h1>HD Homerun</h1> <h1>${HeaderLiveTvTunerSetup}</h1>
<div class="inputContainer"> <button is="emby-button" type="button" class="raised button-cancel block btnDetect hide" style="margin-bottom:3em;">${HeaderDetectMyDevices}</button>
<input is="emby-input" class="txtDevicePath" label="${LabelTunerIpAddress}" required="required" />
<div class="selectContainer">
<select is="emby-select" class="selectType" label="${LabelTunerType}" required="required"></select>
</div> </div>
<div class="checkboxContainer checkboxContainer-withDescription">
<label> <div class="inputContainer fldPath hide">
<input type="checkbox" is="emby-checkbox" class="chkEnabled" checked /> <div style="display: flex; align-items: center;">
<span>${LabelEnableThisTuner}</span> <div style="flex-grow: 1;">
</label> <input is="emby-input" class="txtDevicePath" label="${LabelFileOrUrl}" required="required" autocomplete="off"/>
<div class="fieldDescription checkboxFieldDescription">${LabelEnableThisTunerHelp}</div> </div>
<button type="button" is="paper-icon-button-light" class="btnSelectPath hide"><i class="md-icon">search</i></button>
</div>
</div> </div>
<div class="checkboxContainer checkboxContainer-withDescription">
<div class="checkboxContainer checkboxContainer-withDescription fldFavorites hide">
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkFavorite" /> <input type="checkbox" is="emby-checkbox" class="chkFavorite" />
<span>${LabelImportOnlyFavoriteChannels}</span> <span>${LabelImportOnlyFavoriteChannels}</span>
</label> </label>
<div class="fieldDescription checkboxFieldDescription">${ImportFavoriteChannelsHelp}</div> <div class="fieldDescription checkboxFieldDescription">${ImportFavoriteChannelsHelp}</div>
</div> </div>
<div class="checkboxContainer checkboxContainer-withDescription"> <div class="checkboxContainer checkboxContainer-withDescription fldTranscode hide">
<label> <label>
<input type="checkbox" is="emby-checkbox" class="chkTranscode" /> <input type="checkbox" is="emby-checkbox" class="chkTranscode" />
<span>${LabelAllowHWTranscoding}</span> <span>${LabelAllowHWTranscoding}</span>
</label> </label>
<div class="fieldDescription checkboxFieldDescription">${AllowHWTranscodingHelp}</div> <div class="fieldDescription checkboxFieldDescription">${AllowHWTranscodingHelp}</div>
</div> </div>
<p>${DrmChannelsNotImported}</p> <p class="drmMessage hide">${DrmChannelsNotImported}</p>
<br /> <br />
<div> <div>
<button is="emby-button" type="submit" class="raised button-submit block"> <button is="emby-button" type="submit" class="raised button-submit block">

View file

@ -1,24 +0,0 @@
<div id="liveTvTunerProviderM3UPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" data-require="scripts/livetvtunerprovider-m3u,emby-input,emby-button">
<div data-role="content">
<div class="content-primary">
<form>
<h1>M3U Setup</h1>
<div class="inputContainer">
<div style="display: flex; align-items: center;">
<div style="flex-grow:1;">
<input is="emby-input" class="txtDevicePath" label="${LabelFileOrUrl}" required="required" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectPath" class="autoSize"><i class="md-icon">search</i></button>
</div>
</div>
<div>
<button is="emby-button" type="submit" class="raised button-submit block"><span>${ButtonSave}</span></button>
<button is="emby-button" type="button" class="raised button-cancel block btnCancel" onclick="history.back();"><span>${ButtonCancel}</span></button>
</div>
</form>
</div>
</div>
</div>

View file

@ -1,74 +0,0 @@
<div id="liveTvTunerProviderSatPage" data-role="page" class="page type-interior liveTvSettingsPage withTabs" data-helpurl="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV">
<div data-role="content">
<div class="content-primary">
<div class="readOnlyContent" style="margin-top: 2em;">
<h1>DVB</h1>
<form>
<div>
<div>
<paper-input class="txtDevicePath" label="${LabelTunerIpAddress}" required="required"></paper-input>
</div>
<div>
<paper-input class="txtM3uUrl" label="${LabelOptionalM3uUrl}"></paper-input>
<div class="fieldDescription">${LabelOptionalM3uUrlHelp}</div>
</div>
<br />
<div>
<br />
<label class="selectLabel">Diseq C</label>
<select class="selectDiseqC">
<option value="">${OptionNone}</option>
<option value="tone">22 KHz (Tone Switch)</option>
<option value="diseqc1">Diseq c 1.x (A/B/C/D)</option>
</select>
</div>
<div>
<br />
<label class="selectLabel">Source A</label>
<select class="selectSourceA">
<option value="">${OptionNone}</option>
</select>
</div>
<div class="fldSourceB hide">
<br />
<label class="selectLabel">Source B</label>
<select class="selectSourceB">
<option value="">${OptionNone}</option>
</select>
</div>
<div class="fldSourceC hide">
<br />
<label class="selectLabel">Source C</label>
<select class="selectSourceC">
<option value="">${OptionNone}</option>
</select>
</div>
<div class="fldSourceD hide">
<br />
<label class="selectLabel">Source D</label>
<select class="selectSourceD">
<option value="">${OptionNone}</option>
</select>
</div>
<div class="checkboxContainer checkboxContainer-withDescription">
<label>
<input type="checkbox" is="emby-checkbox" class="chkEnabled" />
<span>${LabelEnableThisTuner}</span>
</label>
<div class="fieldDescription checkboxFieldDescription">${LabelEnableThisTunerHelp}</div>
</div>
<br />
<div>
<button is="emby-button" type="submit" class="raised submit block"><span>${ButtonSave}</span></button>
<button is="emby-button" type="button" class="raised cancel block btnCancel" onclick="history.back();"><span>${ButtonCancel}</span></button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
define(["jQuery"],function($){"use strict";function reload(page,providerId){page.querySelector(".txtDevicePath").value="",page.querySelector(".chkFavorite").checked=!1,providerId?ApiClient.getNamedConfiguration("livetv").then(function(config){var info=config.TunerHosts.filter(function(i){return i.Id==providerId})[0];page.querySelector(".txtDevicePath").value=info.Url||"",page.querySelector(".chkFavorite").checked=info.ImportFavoritesOnly,page.querySelector(".chkTranscode").checked=info.AllowHWTranscoding,page.querySelector(".chkEnabled").checked=info.IsEnabled}):page.querySelector(".chkEnabled").checked=!0}function submitForm(page){Dashboard.showLoadingMsg();var info={Type:"hdhomerun",Url:page.querySelector(".txtDevicePath").value,ImportFavoritesOnly:page.querySelector(".chkFavorite").checked,AllowHWTranscoding:page.querySelector(".chkTranscode").checked,IsEnabled:page.querySelector(".chkEnabled").checked,DataVersion:1},id=getParameterByName("id");id&&(info.Id=id),ApiClient.ajax({type:"POST",url:ApiClient.getUrl("LiveTv/TunerHosts"),data:JSON.stringify(info),contentType:"application/json"}).then(function(result){Dashboard.processServerConfigurationUpdateResult(),Dashboard.navigate("livetvstatus.html")},function(){Dashboard.alert({message:Globalize.translate("ErrorSavingTvProvider")})})}$(document).on("pageinit","#liveTvTunerProviderHdHomerunPage",function(){var page=this;$("form",page).on("submit",function(){return submitForm(page),!1})}).on("pageshow","#liveTvTunerProviderHdHomerunPage",function(){var providerId=getParameterByName("id"),page=this;reload(page,providerId)})});

View file

@ -1 +0,0 @@
define(["jQuery"],function($){"use strict";function reload(page,providerId){page.querySelector(".txtDevicePath").value="",providerId&&ApiClient.getNamedConfiguration("livetv").then(function(config){var info=config.TunerHosts.filter(function(i){return i.Id==providerId})[0];page.querySelector(".txtDevicePath").value=info.Url||""})}function submitForm(page){Dashboard.showLoadingMsg();var info={Type:"m3u",Url:page.querySelector(".txtDevicePath").value,EnableTvgId:!0},id=getParameterByName("id");id&&(info.Id=id),ApiClient.ajax({type:"POST",url:ApiClient.getUrl("LiveTv/TunerHosts"),data:JSON.stringify(info),contentType:"application/json"}).then(function(){Dashboard.processServerConfigurationUpdateResult(),Dashboard.navigate("livetvstatus.html")},function(){Dashboard.hideLoadingMsg(),Dashboard.alert({message:Globalize.translate("ErrorSavingTvProvider")})})}$(document).on("pageinit","#liveTvTunerProviderM3UPage",function(){var page=this;$("form",page).on("submit",function(){return submitForm(page),!1}),$("#btnSelectPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&$(".txtDevicePath",page).val(path),picker.close()}})})})}).on("pageshow","#liveTvTunerProviderM3UPage",function(){var providerId=getParameterByName("id"),page=this;reload(page,providerId)})});

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
define(["jQuery"],function($){"use strict";function init(page,type){Dashboard.showLoadingMsg();var apiClient=ApiClient;apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config){var providerId=null;(config.LiveTvGuideProviderType||"").toLowerCase()==type.toLowerCase()&&config.LiveTvGuideProviderId&&(providerId=config.LiveTvGuideProviderId);var url="components/tvproviders/"+type.toLowerCase()+".js";require([url],function(factory){var instance=new factory(page,providerId,{showCancelButton:!1,showSubmitButton:!1,showConfirmation:!1});Dashboard.hideLoadingMsg(),instance.init(),guideController=instance,Events.on(guideController,"submitted",skip)})})}function loadTemplate(page,type){guideController=null,ApiClient.ajax({type:"GET",url:"components/tvproviders/"+type.toLowerCase()+".template.html"}).then(function(html){var elem=page.querySelector(".providerTemplate");elem.innerHTML=Globalize.translateDocument(html),init(page,type)})}function skip(){require(["scripts/wizardcontroller"],function(wizardcontroller){wizardcontroller.navigateToComponents()})}function next(){guideController.submit()}function reload(page){$("#selectType",page).trigger("change")}var guideController;$(document).on("pageinit","#wizardGuidePage",function(){var page=this;$("#selectType",page).on("change",function(){loadTemplate(page,this.value)}),$(".btnSkip",page).on("click",skip),$(".btnNext",page).on("click",next)}).on("pageshow","#wizardGuidePage",function(){var page=this;reload(page)})});

View file

@ -1 +0,0 @@
define(["jQuery"],function($){"use strict";function save(page){Dashboard.showLoadingMsg();var apiClient=ApiClient;apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config){config.LiveTvTunerType=$("#selectTunerType",page).val(),config.LiveTvTunerPath=$(".txtDevicePath",page).val(),apiClient.ajax({type:"POST",data:config,url:apiClient.getUrl("Startup/Configuration")}).then(function(){Dashboard.hideLoadingMsg(),navigateToNextPage(config)},function(){Dashboard.hideLoadingMsg(),Dashboard.alert({message:Globalize.translate("ErrorSavingTvProvider")})})})}function reload(page){Dashboard.showLoadingMsg();var apiClient=ApiClient;apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config){$("#selectTunerType",page).val(config.LiveTvTunerType||"hdhomerun"),page.querySelector(".txtDevicePath").value=config.LiveTvTunerPath||"",Dashboard.hideLoadingMsg()})}function navigateToNextPage(config){config.LiveTvTunerPath&&config.LiveTvTunerType?Dashboard.navigate("wizardlivetvguide.html"):skip()}function skip(){require(["scripts/wizardcontroller"],function(wizardcontroller){wizardcontroller.navigateToComponents()})}function onSubmit(){var form=this;return save(form),!1}$(document).on("pageinit","#wizardTunerPage",function(){var page=this;$("form",page).off("submit",onSubmit).on("submit",onSubmit),$(".btnSkip",page).on("click",skip)}).on("pageshow","#wizardTunerPage",function(){var page=this;reload(page)})});

View file

@ -1 +1 @@
define(["jQuery"],function($){"use strict";function save(page){Dashboard.showLoadingMsg();var apiClient=ApiClient;apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config){config.PreferredMetadataLanguage=$("#selectLanguage",page).val(),config.MetadataCountryCode=$("#selectCountry",page).val(),apiClient.ajax({type:"POST",data:config,url:apiClient.getUrl("Startup/Configuration")}).then(function(){navigateToNextPage()})})}function populateLanguages(select,languages){var html="";html+="<option value=''></option>";for(var i=0,length=languages.length;i<length;i++){var culture=languages[i];html+="<option value='"+culture.TwoLetterISOLanguageName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}function populateCountries(select,allCountries){var html="";html+="<option value=''></option>";for(var i=0,length=allCountries.length;i<length;i++){var culture=allCountries[i];html+="<option value='"+culture.TwoLetterISORegionName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}function reloadData(page,config,cultures,countries){populateLanguages(page.querySelector("#selectLanguage"),cultures),populateCountries(page.querySelector("#selectCountry"),countries),$("#selectLanguage",page).val(config.PreferredMetadataLanguage),$("#selectCountry",page).val(config.MetadataCountryCode),Dashboard.hideLoadingMsg()}function reload(page){Dashboard.showLoadingMsg();var apiClient=ApiClient,promise1=apiClient.getJSON(apiClient.getUrl("Startup/Configuration")),promise2=apiClient.getCultures(),promise3=apiClient.getCountries();Promise.all([promise1,promise2,promise3]).then(function(responses){reloadData(page,responses[0],responses[1],responses[2])})}function navigateToNextPage(){Dashboard.navigate("wizardlivetvtuner.html")}function onSubmit(){var form=this;return save(form),!1}$(document).on("pageinit","#wizardSettingsPage",function(){var page=this;$(".wizardSettingsForm",page).off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#wizardSettingsPage",function(){var page=this;reload(page)})}); define(["jQuery"],function($){"use strict";function save(page){Dashboard.showLoadingMsg();var apiClient=ApiClient;apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config){config.PreferredMetadataLanguage=$("#selectLanguage",page).val(),config.MetadataCountryCode=$("#selectCountry",page).val(),apiClient.ajax({type:"POST",data:config,url:apiClient.getUrl("Startup/Configuration")}).then(function(){navigateToNextPage()})})}function populateLanguages(select,languages){var html="";html+="<option value=''></option>";for(var i=0,length=languages.length;i<length;i++){var culture=languages[i];html+="<option value='"+culture.TwoLetterISOLanguageName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}function populateCountries(select,allCountries){var html="";html+="<option value=''></option>";for(var i=0,length=allCountries.length;i<length;i++){var culture=allCountries[i];html+="<option value='"+culture.TwoLetterISORegionName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}function reloadData(page,config,cultures,countries){populateLanguages(page.querySelector("#selectLanguage"),cultures),populateCountries(page.querySelector("#selectCountry"),countries),$("#selectLanguage",page).val(config.PreferredMetadataLanguage),$("#selectCountry",page).val(config.MetadataCountryCode),Dashboard.hideLoadingMsg()}function reload(page){Dashboard.showLoadingMsg();var apiClient=ApiClient,promise1=apiClient.getJSON(apiClient.getUrl("Startup/Configuration")),promise2=apiClient.getCultures(),promise3=apiClient.getCountries();Promise.all([promise1,promise2,promise3]).then(function(responses){reloadData(page,responses[0],responses[1],responses[2])})}function navigateToNextPage(){require(["scripts/wizardcontroller"],function(wizardcontroller){wizardcontroller.navigateToComponents()})}function onSubmit(){var form=this;return save(form),!1}$(document).on("pageinit","#wizardSettingsPage",function(){var page=this;$(".wizardSettingsForm",page).off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#wizardSettingsPage",function(){var page=this;reload(page)})});

View file

@ -1966,5 +1966,7 @@
"PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames", "PreferEmbeddedTitlesOverFileNames": "Prefer embedded titles over filenames",
"PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.", "PreferEmbeddedTitlesOverFileNamesHelp": "This determines the default display title when no internet metadata or local metadata is available.",
"HeaderUpcomingEpisodes": "Upcoming Episodes", "HeaderUpcomingEpisodes": "Upcoming Episodes",
"HeaderFavoriteVideos": "Favorite Videos" "HeaderFavoriteVideos": "Favorite Videos",
"HeaderLiveTvTunerSetup": "Live TV Tuner Setup",
"HeaderDetectMyDevices": "Detect My Devices"
} }

View file

@ -1,35 +0,0 @@
<div id="wizardGuidePage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardlivetvguide,emby-button,emby-select">
<div data-role="content">
<div class="ui-corner-all ui-shadow wizardContent">
<div>
<h1 style="display:inline-block;">
${HeaderSetupTVGuide}
</h1>
<a href="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" target="_blank" class="clearLink" style="margin-top:-10px;display:inline-block;vertical-align:middle;margin-left:2em;"><button is="emby-button" type="button" class="raised button-accent mini"><i class="md-icon">info</i><span>${ButtonHelp}</span></button></a>
</div>
<br />
<div class="selectContainer">
<select is="emby-select" id="selectType" label="${LabelDataProvider}" required="required">
<option value="SchedulesDirect">Schedules Direct</option>
<option value="xmltv">Xml TV</option>
</select>
<div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div>
</div>
<div class="providerTemplate">
</div>
<br />
<br />
<div class="wizardNavigation">
<button is="emby-button" type="button" class="raised button-cancel" onclick="history.back();"><i class="md-icon">arrow_back</i><span>${LabelPrevious}</span></button>
<button is="emby-button" type="button" class="raised btnNext button-submit"><span>${LabelNext}</span><i class="md-icon">arrow_forward</i></button>
<button is="emby-button" type="button" class="raised btnSkip button-cancel" style="background: #888; color: #fff;"><span>${ButtonSkip}</span><i class="md-icon">arrow_forward</i></button>
</div>
</div>
</div>
</div>

View file

@ -1,36 +0,0 @@
<div id="wizardTunerPage" data-role="page" class="page standalonePage wizardPage" data-require="scripts/wizardlivetvtuner,emby-input,emby-button,emby-select">
<div data-role="content">
<div class="ui-corner-all ui-shadow wizardContent">
<form>
<div>
<h1 style="display:inline-block;">
${HeaderSetupLiveTV}
</h1>
<a href="https://github.com/MediaBrowser/Wiki/wiki/Live%20TV" target="_blank" class="clearLink" style="margin-top:-10px;display:inline-block;vertical-align:middle;margin-left:2em;"><button is="emby-button" type="button" class="raised button-accent mini"><i class="md-icon">info</i><span>${ButtonHelp}</span></button></a>
</div>
<br />
<div class="selectContainer">
<select is="emby-select" id="selectTunerType" label="${LabelTunerType}" required="required">
<option value="hdhomerun">HDHomerun</option>
</select>
<div class="fieldDescription">${AdditionalLiveTvProvidersCanBeInstalledLater}</div>
</div>
<div class="inputContainer">
<input is="emby-input" class="txtDevicePath" label="${LabelTunerIpAddress}" required="required" />
<div class="fieldDescription">${HelpMoreTunersCanBeAdded}</div>
</div>
<br />
<div class="wizardNavigation">
<button is="emby-button" type="button" class="raised button-cancel" onclick="history.back();"><i class="md-icon">arrow_back</i><span>${LabelPrevious}</span></button>
<button is="emby-button" type="submit" class="raised button-submit"><span>${LabelNext}</span><i class="md-icon">arrow_forward</i></button>
<button is="emby-button" type="button" class="btnSkip raised button-cancel" style="background: #888; color: #fff;"><span>${ButtonSkip}</span><i class="md-icon">arrow_forward</i></button>
</div>
</form>
</div>
</div>
</div>