This repository has been archived on 2026-02-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
dashboard-ui/startup/connectlogin.js
2023-08-31 15:30:17 +02:00

1 line
5.8 KiB
JavaScript

define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/focusmanager.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/appsettings.js","./../modules/common/servicelocator.js","./../modules/layoutmanager.js"],function(_exports,_baseview,_loading,_globalize,_embyInput,_embyButton,_focusmanager,_connectionmanager,_approuter,_appsettings,_servicelocator,_layoutmanager){function stopPolling(instance){instance.currentInterval&&(clearInterval(instance.currentInterval),instance.currentInterval=null)}function showPinErrorMessage(instance,key){instance=instance.view.querySelector(".pinMessage");instance.classList.remove("hide"),instance.innerHTML=_globalize.default.translate(""+key)}function pollPinStatus(){var instance=this;instance.currentPinInfo&&_connectionmanager.default.getPinStatus(instance.currentPinInfo).then(function(pinStatus){pinStatus.IsConfirmed?(stopPolling(instance),function(instance){_loading.default.show(),_appsettings.default.enableAutoLogin(!0),_connectionmanager.default.exchangePin(instance.currentPinInfo).then(function(){_connectionmanager.default.connect().then(function(result){_loading.default.hide(),"ConnectSignIn"===result.State?_approuter.default.showItem({Type:"AddServer"}):_approuter.default.showSelectServer()})})}(instance)):pinStatus.IsExpired&&(stopPolling(instance),showPinErrorMessage(instance,"PinExpiredMessage"))})}function createPin(instance){instance.currentPinInfo=null,_loading.default.show();var view=instance.view;view.querySelector(".pinMessage").classList.add("hide"),view.querySelector(".pinCodeValue").innerHTML="&nbsp;",stopPolling(instance),_connectionmanager.default.createPin(instance).then(function(result){instance.currentPinInfo=result,view.querySelector(".pinCodeValue").innerHTML=result.Pin,function(instance){instance.currentInterval=setInterval(pollPinStatus.bind(instance),3e3)}(instance),_loading.default.hide()},function(){instance.currentPinInfo=null,_loading.default.hide(),showPinErrorMessage(instance,"CreatePinErrorMessage")})}function ConnectLoginView(view,params){_baseview.default.apply(this,arguments);var self=this;this.enablePinLogin=_layoutmanager.default.tv&&(_servicelocator.appHost.supports("externallinks")||_servicelocator.appHost.supports("externallinkdisplay")),view.querySelector(".btnSkipConnect").addEventListener("click",function(e){_loading.default.show(),_connectionmanager.default.connect({enableAutoLogin:_appsettings.default.enableAutoLogin()}).then(function(result){_loading.default.hide(),"ConnectSignIn"===result.State?_approuter.default.showItem({Type:"AddServer"}):_approuter.default.handleConnectionResult(result)})}),view.querySelector(".btnSignup").addEventListener("click",function(e){_servicelocator.appHost.supports("connectsignup")&&(_approuter.default.show("/startup/connectsignup.html"),e.preventDefault(),e.stopPropagation())}),view.querySelector(".btnNewPin").addEventListener("click",function(){createPin(self)}),view.querySelector(".manualLoginForm").addEventListener("submit",function(e){return _loading.default.show(),_connectionmanager.default.loginToConnect(view.querySelector(".txtUser").value,view.querySelector(".txtPassword").value).then(function(){_loading.default.hide(),_approuter.default.showSelectServer()},function(){var options;_loading.default.hide(),options={text:_globalize.default.translate("MessageInvalidUser"),title:_globalize.default.translate("HeaderSignInError")},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)}),view.querySelector(".txtUser").value=""}),e.preventDefault(),e.stopPropagation(),!1}),function(instance,view){_servicelocator.appHost.supports("externallinks")?(view.querySelector(".terms").innerHTML=_globalize.default.translate("EmbyLoginTerms",'<a is="emby-linkbutton" class="lnkTerms button-link" href="https://emby.media/terms" target="_blank">',"</a>"),view.querySelector(".pinCodeHeader").innerHTML=_globalize.default.translate("ConnectPinCodeHeader",'<a is="emby-linkbutton" class="lnkPinSignIn button-link" href="https://emby.media/pin" target="_blank">https://emby.media/pin</a>')):_servicelocator.appHost.supports("externallinkdisplay")?(view.querySelector(".terms").innerHTML=_globalize.default.translate("EmbyLoginTerms","",""),view.querySelector(".pinCodeHeader").innerHTML=_globalize.default.translate("ConnectPinCodeHeader","https://emby.media/pin")):(view.querySelector(".terms").innerHTML=_globalize.default.translate("EmbyLoginTerms","",""),view.querySelector(".pinCodeHeader").innerHTML=_globalize.default.translate("ConnectPinCodeHeader","")),instance.enablePinLogin?(view.querySelector(".pinLogin").classList.remove("hide"),view.querySelector(".newUsers").classList.add("hide"),view.querySelector(".manualLoginForm").classList.add("hide"),createPin(instance)):(view.querySelector(".pinLogin").classList.add("hide"),view.querySelector(".newUsers").classList.remove("hide"),view.querySelector(".manualLoginForm").classList.remove("hide"))}(this,this.view)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(ConnectLoginView.prototype,_baseview.default.prototype),ConnectLoginView.prototype.onPause=function(){_baseview.default.prototype.onPause.apply(this,arguments),stopPolling(this)},ConnectLoginView.prototype.onResume=function(options){var view;_baseview.default.prototype.onResume.apply(this,arguments),options.refresh&&(view=this.view,this.enablePinLogin?_focusmanager.default.focus(view.querySelector(".btnNewPin")):this.autoFocus())},ConnectLoginView.prototype.destroy=function(){_baseview.default.prototype.destroy.apply(this,arguments),stopPolling(this),this.currentPinInfo=null},_exports.default=ConnectLoginView});