first commit
This commit is contained in:
59
startup/connectlogin.html
Normal file
59
startup/connectlogin.html
Normal file
@@ -0,0 +1,59 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
|
||||
<div class="readOnlyContent" style="margin:0 auto;">
|
||||
|
||||
<h1 style="margin-top:0;">${HeaderSignInWithConnect}</h1>
|
||||
|
||||
<p>${ConnectLoginHelp1}</p>
|
||||
|
||||
<div class="pinLogin hide">
|
||||
<p class="pinCodeHeader"></p>
|
||||
<h1 class="pinCodeValue" style="text-align: center;"></h1>
|
||||
<p class="pinMessage hide" style="text-align: center; margin: -1em auto 2em; color: orange; width: 70%;"></p>
|
||||
|
||||
<button is="emby-button" class="raised block btnNewPin"><span>${ButtonGenerateNewPin}</span></button>
|
||||
</div>
|
||||
|
||||
<form class="manualLoginForm hide">
|
||||
|
||||
<div style="height:0; overflow: hidden;"><input type="text" name="fakeusernameremembered" tabindex="-1" /><input type="password" name="fakepasswordremembered" tabindex="-1" /></div>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="text" class="txtUser" required="required" label="${LabelEmail}" />
|
||||
<div class="fieldDescription">${LabelEnterConnectUserNameHelp}</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="password" class="txtPassword" required="required" label="${LabelPassword}" />
|
||||
</div>
|
||||
<button is="emby-button" type="submit" class="raised accent block">
|
||||
<span>${HeaderSignIn}</span>
|
||||
</button>
|
||||
|
||||
<a is="emby-linkbutton" class="raised cancel block btnForgotPassword hide" target="_blank" href="https://emby.media/community/index.php?/lostpassword" data-autohide="true">
|
||||
<span>${HeaderForgotPassword}</span>
|
||||
</a>
|
||||
|
||||
<div class="terms hide fieldDescription" style="margin-top: 2em; color: #ccc;"></div>
|
||||
</form>
|
||||
|
||||
<div class="skip" style="text-align: center;">
|
||||
<button is="emby-button" class="raised block btnSkipConnect">
|
||||
<span>${Skip}</span>
|
||||
</button>
|
||||
<div class="fieldDescription">${ConnectToServerManually}</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 1.5em;">
|
||||
<!-- The new user section is not needed for the pin login because the pin page has a signup link. Keep this around for when manual connect login is added. -->
|
||||
<div class="hide newUsers">
|
||||
<h2 style="margin-bottom:0;">${HeaderNewUsers}</h2>
|
||||
<a is="emby-linkbutton" class="raised cancel block btnSignup" href="https://emby.media/community/index.php?/register" target="_blank">
|
||||
<span>${HeaderSignUp}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="terms fieldDescription" style="margin-top: .5em;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/connectlogin.js
Normal file
1
startup/connectlogin.js
Normal file
File diff suppressed because one or more lines are too long
32
startup/connectsignup.html
Normal file
32
startup/connectsignup.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
|
||||
<form class="auto-center">
|
||||
|
||||
<h1 style="margin-top:0;">${HeaderSignUp}</h1>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="email" class="txtSignupEmail" required="required" label="${LabelEmail}" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="text" class="txtSignupUsername" required="required" label="${LabelUsername}" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="password" class="txtSignupPassword" required="required" label="${LabelPassword}" autocomplete="off" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="password" class="txtSignupPasswordConfirm" required="required" label="${LabelPasswordConfirm}" autocomplete="off" />
|
||||
</div>
|
||||
|
||||
<div class="recaptchaContainer"></div>
|
||||
<br />
|
||||
|
||||
<button is="emby-button" type="submit" class="raised accent block">
|
||||
<span>${HeaderSignUp}</span>
|
||||
</button>
|
||||
<button is="emby-button" type="button" class="raised cancel block btnCancelSignup">
|
||||
<span>${Cancel}</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/connectsignup.js
Normal file
1
startup/connectsignup.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/common/globalize.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyInput,_embyButton,_embySelect,_embyScroller,_globalize,_connectionmanager,_approuter){function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function View(view,params){var greWidgetId;_baseview.default.apply(this,arguments),view.querySelector(".btnCancelSignup").addEventListener("click",function(){_approuter.default.back()}),view.querySelector("form").addEventListener("submit",function(e){_loading.default.show();var greResponse=greWidgetId?grecaptcha.getResponse(greWidgetId):null;return function(view,greResponse){view={email:view.querySelector(".txtSignupEmail",view).value,username:view.querySelector(".txtSignupUsername",view).value,password:view.querySelector(".txtSignupPassword",view).value,passwordConfirm:view.querySelector(".txtSignupPasswordConfirm",view).value},greResponse&&(view.grecaptcha=greResponse),_connectionmanager.default.signupForConnect(view).then(function(response){_loading.default.hide();function onAlertDismissed(){_approuter.default.showConnectLogin()}showAlert({text:response.Validated?_globalize.default.translate("MessageThankYouForConnectSignUpNoValidation"):_globalize.default.translate("MessageThankYouForConnectSignUp")}).then(onAlertDismissed,onAlertDismissed)},function(result){_loading.default.hide(),"passwordmatch"===result.errorCode?showAlert({text:_globalize.default.translate("ErrorMessagePasswordNotMatchConfirm")}):"USERNAME_IN_USE"===result.errorCode?showAlert({text:_globalize.default.translate("ErrorMessageUsernameInUse")}):"EMAIL_IN_USE"===result.errorCode?showAlert({text:_globalize.default.translate("ErrorMessageEmailInUse")}):showAlert({text:_globalize.default.translate("DefaultErrorMessage")})})}(view,greResponse),e.preventDefault(),e.stopPropagation(),!1}),0===window.location.href.toLowerCase().indexOf("https://")&&require(["https://www.google.com/recaptcha/api.js?render=explicit"],function(){setTimeout(function(){var recaptchaContainer=view.querySelector(".recaptchaContainer");greWidgetId=grecaptcha.render(recaptchaContainer,{sitekey:"6Le2LAgTAAAAAK06Wvttt_yUnbISTy6q3Azqp9po",theme:"dark"})},100)})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View});
|
||||
23
startup/forgotpassword.html
Normal file
23
startup/forgotpassword.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
<form class="auto-center">
|
||||
|
||||
<h1 style="margin-top:0;">${HeaderForgotPassword}</h1>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="text" class="txtName" label="${LabelUsername}" autocomplete="off" />
|
||||
<div class="fieldDescription">${ForgotPasswordUsernameHelp}</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button is="emby-button" type="submit" class="raised submit block">
|
||||
<span>${Submit}</span>
|
||||
</button>
|
||||
|
||||
<button is="emby-button" type="button" class="raised cancel block btnCancel">
|
||||
<span>${Cancel}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/forgotpassword.js
Normal file
1
startup/forgotpassword.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/viewmanager/baseview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/servicelocator.js","./../modules/loading/loading.js"],function(_exports,_baseview,_globalize,_embyInput,_embyButton,_embyScroller,_connectionmanager,_approuter,_servicelocator,_loading){function onBackClick(){_approuter.default.back()}function showAlert(options){Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function processForgotPasswordResult(result){var msg;_loading.default.hide(),"ContactAdmin"===result.Action?showAlert({text:_globalize.default.translate("ContactAdminToResetPassword"),title:_globalize.default.translate("HeaderForgotPassword")}):"InNetworkRequired"===result.Action?showAlert({text:_globalize.default.translate("ForgotPasswordInNetworkRequired"),title:_globalize.default.translate("HeaderForgotPassword")}):"PinCode"===result.Action&&(msg=_globalize.default.translate("ForgotPasswordFileCreated"),msg=(msg+="<p>")+result.PinFile+"</p>",showAlert({html:msg=_servicelocator.appHost.supports("targetblank")&&_servicelocator.appHost.supports("externallinks")?(msg+='<p><a href="https://emby.media/support/articles/Server-Data-Folder.html" target="_blank" is="emby-linkbutton" class="button-link">')+_globalize.default.translate("Help")+"</a></p>":msg,title:_globalize.default.translate("HeaderForgotPassword"),centerText:!1}))}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".btnCancel").addEventListener("click",onBackClick),view.querySelector("form").addEventListener("submit",function(e){var apiClient=_connectionmanager.default.getApiClient(params.serverId);return _loading.default.show(),apiClient.ajax({type:"POST",url:apiClient.getUrl("Users/ForgotPassword"),dataType:"json",data:{EnteredUsername:view.querySelector(".txtName").value}}).then(processForgotPasswordResult),e.preventDefault(),!1})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View});
|
||||
22
startup/forgotpasswordpin.html
Normal file
22
startup/forgotpasswordpin.html
Normal file
@@ -0,0 +1,22 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
<form class="auto-center">
|
||||
|
||||
<h1 style="margin-top:0;">${HeaderPasswordReset}</h1>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="text" class="txtPin" label="${LabelPinCode}" autocomplete="off" required="required" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button is="emby-button" type="submit" class="raised submit block">
|
||||
<span>${Submit}</span>
|
||||
</button>
|
||||
|
||||
<button is="emby-button" type="button" class="raised cancel block btnCancel">
|
||||
<span>${Cancel}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/forgotpasswordpin.js
Normal file
1
startup/forgotpasswordpin.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/viewmanager/baseview.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js"],function(_exports,_baseview,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller,_connectionmanager,_approuter){function onBackClick(){_approuter.default.back()}function showAlert(options){return Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}function onPasswordReset(){_approuter.default.beginConnectionWizard()}function processForgotPasswordResult(result){result.UsersReset.length?result.Success?showAlert({html:_globalize.default.translate("PasswordResetForUsers")+"<br/>"+"<br/>"+result.UsersReset.join("<br/>"),title:_globalize.default.translate("HeaderPasswordReset")}).then(onPasswordReset):showAlert({text:_globalize.default.translate("InvalidForgotPasswordPin"),title:_globalize.default.translate("HeaderPasswordReset")}):showAlert({text:_globalize.default.translate("ForgotPasswordNoUserFound"),title:_globalize.default.translate("HeaderPasswordReset")})}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".btnCancel").addEventListener("click",onBackClick),view.querySelector("form").addEventListener("submit",function(e){var apiClient=_connectionmanager.default.currentApiClient();return apiClient.ajax({type:"POST",url:apiClient.getUrl("Users/ForgotPassword/Pin"),dataType:"json",data:{Pin:view.querySelector(".txtPin").value}}).then(processForgotPasswordResult),e.preventDefault(),!1})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View});
|
||||
1
startup/login.js
Normal file
1
startup/login.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/servicelocator.js","./../modules/common/appsettings.js","./../modules/common/textencoding.js"],function(_exports,_list,_globalize,_embyInput,_embyButton,_embyScroller,_connectionmanager,_approuter,_servicelocator,_appsettings,_textencoding){function setItemProperies(server){}function addItems(items,serverId){items.push({Name:_globalize.default.translate("HeaderManualLogin"),Type:"ManualLogin",ServerId:serverId}),items.push({Name:_globalize.default.translate("HeaderForgotPassword"),Type:"ForgotPassword",ServerId:serverId}),_servicelocator.appHost.supports("multiserver")&&items.push({Name:_globalize.default.translate("HeaderChangeServer"),Type:"SelectServer"})}function showUserSignIn(apiClient,user){user.HasPassword?_approuter.default.showServerLogin({apiClient:apiClient,username:user.Name,loginType:"manual"}):_approuter.default.authenticateUser({serverId:user.ServerId,username:user.Name})}function LoginPage(view,params){this.enableAlphaNumericShortcuts=!1,this.enableTotalRecordCountDisplay=!1,this.supportsViewSettings=!1,_list.default.call(this,view,params),view.querySelector(".itemsContainer").addEventListener("action-null",function(e){var apiClient,item=e.detail.item;if("User"===item.Type)return apiClient=_connectionmanager.default.getApiClient(item),_connectionmanager.default.isLoggedIn(item.ServerId,item.Id)&&("none"!==_appsettings.default.autoLogin()||_appsettings.default.enableProfilePin(item.Id))?_approuter.default.changeToUser({apiClient:apiClient,userId:item.Id}).catch(function(err){"aborterror"!==((null==err?void 0:err.name)||"").toLowerCase()&&showUserSignIn(apiClient,item)}):void showUserSignIn(apiClient,item);_approuter.default.showItem(item)}.bind(this)),function(instance){var view=instance.view,instance=instance.getApiClient().serverName()||"",instance=(instance=_servicelocator.appHost.supports("maskembynameonlogin")?instance.replace(/(emby)/gi,"Media Server").replace(/(Media Server Media Server)/gi,"Media Server").replace(/(Media Server MediaServer)/gi,"MediaServer"):instance)?_globalize.default.translate("SignIntoServerName",_textencoding.default.htmlEncode(instance)):_globalize.default.translate("HeaderPleaseSignIn");view.querySelector(".scrollSlider").insertAdjacentHTML("afterbegin",'<h1 style="text-align:center;margin: 0 0 .5em;">'+instance+"</h1>")}(this),function(view,apiClient){_servicelocator.appHost.supports("multiserver")||apiClient.getJSON(apiClient.getUrl("Branding/Configuration")).then(function(options){var elem;options.LoginDisclaimer&&((elem=document.createElement("div")).classList.add("disclaimer"),elem.textContent=options.LoginDisclaimer||"",elem.style.textAlign="center",elem.classList.add("padded-bottom","padded-bottom-page","padded-top"),(options=view.querySelector(".scrollSlider")).insertAdjacentHTML("afterbegin",'<h1 style="text-align:center;margin-top:0;">'+_globalize.default.translate("HeaderPleaseSignIn")+"</h1>"),options.appendChild(elem),view.querySelector(".itemsContainer").classList.remove("padded-bottom-page"))})}(view,_connectionmanager.default.getApiClient(params.serverId))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(LoginPage.prototype,_list.default.prototype),LoginPage.prototype.getSortMenuOptions=function(){return[]},LoginPage.prototype.getItemTypes=function(){return["User"]},LoginPage.prototype.getItems=function(query){var serverId=this.params.serverId,apiClient=_connectionmanager.default.getApiClient(serverId),specialItems=[],numSpecialItems=(addItems(specialItems,serverId),specialItems.length);return apiClient.getPublicUsersQueryResult(query).then(function(result){return result.Items.forEach(setItemProperies),result.Items.length<query.Limit&&addItems(result.Items,serverId),!1!==query.EnableTotalRecordCount&&(result.TotalRecordCount+=numSpecialItems),result})},LoginPage.prototype.setTitle=function(){},LoginPage.prototype.getBaseListRendererOptions=function(){var options=_list.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!1,options.multiSelect=!1,options.contextMenu=!1,options.playQueueIndicator=!1,options.action="custom",options},LoginPage.prototype.getCardOptions=function(items,settings){var options=_list.default.prototype.getCardOptions.apply(this,arguments);return options.defaultBackground=!0,options.fields=["Name"],options};_exports.default=LoginPage});
|
||||
35
startup/manuallogin.html
Normal file
35
startup/manuallogin.html
Normal file
@@ -0,0 +1,35 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
<form class="auto-center">
|
||||
|
||||
<h1 style="margin-top:0;" class="viewTitle"></h1>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" class="txtUserName" type="text" autocomplete="off" label="${LabelUsername}" required />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" class="txtPassword" type="password" autocomplete="off" label="${LabelPassword}" />
|
||||
<div class="fieldDescription">${RememberLoginDescription}</div>
|
||||
</div>
|
||||
<button is="emby-button" type="submit" class="raised block paperSubmit" style="margin-top:2em;">
|
||||
<span>${HeaderSignIn}</span>
|
||||
</button>
|
||||
<button is="emby-button" type="button" class="raised block buttonCancel">
|
||||
<span>${Cancel}</span>
|
||||
</button>
|
||||
<p class="buttonItems justify-content-center">
|
||||
|
||||
<button is="emby-button" type="button" class="button-link cancel btnForgotPassword secondaryText buttonItems-item">
|
||||
<span>${HeaderForgotPassword}</span>
|
||||
</button>
|
||||
|
||||
<button is="emby-button" type="button" class="button-link hide btnSelectServer secondaryText buttonItems-item">
|
||||
<span>${HeaderChangeServer}</span>
|
||||
</button>
|
||||
</p>
|
||||
|
||||
<p class="disclaimer" style="text-align: center; margin-top: 2em;"></p>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/manuallogin.js
Normal file
1
startup/manuallogin.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/focusmanager.js","./../modules/common/servicelocator.js","./../modules/common/textencoding.js","../modules/common/globalize.js"],function(_exports,_baseview,_loading,_embyInput,_embyButton,_embyToggle,_embyScroller,_connectionmanager,_approuter,_focusmanager,_servicelocator,_textencoding,_globalize){function setTitle(instance){var view=instance.view,instance=instance.getApiClient().serverName()||"";_servicelocator.appHost.supports("maskembynameonlogin")&&(instance=instance.replace(/(emby)/gi,"Media Server").replace(/(Media Server Media Server)/gi,"Media Server").replace(/(Media Server MediaServer)/gi,"MediaServer")),view.querySelector(".viewTitle").innerHTML=instance?_globalize.default.translate("SignIntoServerName",_textencoding.default.htmlEncode(instance)):_globalize.default.translate("HeaderPleaseSignIn")}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".buttonCancel").addEventListener("click",function(e){_approuter.default.back()}),view.querySelector(".btnForgotPassword").addEventListener("click",function(e){_approuter.default.showItem({Type:"ForgotPassword",ServerId:params.serverId})}),view.querySelector(".btnSelectServer").addEventListener("click",function(e){_approuter.default.showSelectServer()}),view.querySelector("form").addEventListener("submit",function(e){var username=this.querySelector(".txtUserName").value,password=this.querySelector(".txtPassword").value,serverId=(_loading.default.show(),params.serverId);return _approuter.default.authenticateUser({username:username,password:password,serverId:serverId}),e.preventDefault(),!1}),_servicelocator.appHost.supports("multiserver")&&view.querySelector(".btnSelectServer").classList.remove("hide"),function(view,apiClient){_servicelocator.appHost.supports("multiserver")||apiClient.getJSON(apiClient.getUrl("Branding/Configuration")).then(function(options){var elem=view.querySelector(".disclaimer");options.LoginDisclaimer&&elem.classList.remove("hide"),elem.textContent=options.LoginDisclaimer||""})}(view,_connectionmanager.default.getApiClient(params.serverId)),setTitle(this)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),setTitle(this);var view=this.view,params=this.params,txtUserName=(_loading.default.hide(),view.querySelector(".txtUserName")),view=(txtUserName.value=params.user||"",view.querySelector(".txtPassword"));view.value="",params.user?_focusmanager.default.focus(view):_focusmanager.default.focus(txtUserName)};_exports.default=View});
|
||||
24
startup/manualserver.html
Normal file
24
startup/manualserver.html
Normal file
@@ -0,0 +1,24 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
<form class="manualServerForm auto-center">
|
||||
<h1 style="margin-top:0;">${HeaderConnectToServer}</h1>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" class="txtServerHost" type="text" autocomplete="off" label="${LabelHost}" required />
|
||||
<div class="fieldDescription">${LabelHostHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" class="txtServerPort" inputmode="numeric" type="number" step="1" min="0" value="8096" label="${LabelPort}" autocomplete="off" />
|
||||
</div>
|
||||
|
||||
<button is="emby-button" type="submit" class="raised block paperSubmit">
|
||||
<span>${Connect}</span>
|
||||
</button>
|
||||
|
||||
<button is="emby-button" type="button" class="raised block buttonCancel">
|
||||
<span>${Cancel}</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/manualserver.js
Normal file
1
startup/manualserver.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyInput,_embyButton,_embyScroller,_connectionmanager,_approuter){function trimEnd(string,charToRemove){for(;string.charAt(string.length-1)===charToRemove;)string=string.substring(0,string.length-1);return string}function onPortChange(e){var currentPort=(this.value||"").trim();"443"!==currentPort&&"8920"!==currentPort||((currentPort=this.closest("form").querySelector(".txtServerHost")).value=currentPort.value.replace(new RegExp("http:","gi"),"https:"))}function onHostChange(e){var currentHost=(this.value||"").trim().toLowerCase(),txtServerPort=this.closest("form").querySelector(".txtServerPort"),currentPort=txtServerPort.value.trim();currentHost.startsWith("http:")&&["8920","443"].includes(currentPort)?txtServerPort.value="8096":currentHost.startsWith("https:")&&["8096"].includes(currentPort)&&(txtServerPort.value="8920")}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",function(e){e.preventDefault();e=function(address,port){if(port){address=trimEnd(address,"/");try{var url=new URL(address);if(url.port)return address;url.port=port;var urlString=url.toString();if("string"==typeof urlString&&urlString&&!urlString.toLowerCase().includes("object url"))return trimEnd(urlString,"/")}catch(err){console.log("error parsing url: "+err)}address+=":"+port}return address}(this.querySelector(".txtServerHost").value,this.querySelector(".txtServerPort").value);return _loading.default.show(),_connectionmanager.default.connectToAddress(e,{}).then(function(result){_loading.default.hide(),_approuter.default.handleConnectionResult(result)}),!1}),view.querySelector(".txtServerPort").addEventListener("change",onPortChange),view.querySelector(".txtServerHost").addEventListener("change",onHostChange),view.querySelector(".buttonCancel").addEventListener("click",function(e){_approuter.default.back()})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments);var view=this.view;view.querySelector(".txtServerHost").value="",view.querySelector(".txtServerPort").value="8096"};_exports.default=View});
|
||||
1
startup/selectserver.js
Normal file
1
startup/selectserver.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../list/list.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/servicelocator.js","./../modules/layoutmanager.js"],function(_exports,_list,_globalize,_embyInput,_embyButton,_embyScroller,_connectionmanager,_servicelocator,_layoutmanager){function SelectServerPage(view,params){this.enableAlphaNumericShortcuts=!1,this.enableTotalRecordCountDisplay=!1,this.supportsViewSettings=!1,_list.default.call(this,view,params),this.itemsContainer.setAttribute("data-monitor","Servers"),this.itemsContainer.classList.add("itemsContainer-defaultCardSize")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(SelectServerPage.prototype,_list.default.prototype),SelectServerPage.prototype.getSortMenuOptions=function(){return[]},SelectServerPage.prototype.getItemTypes=function(){return["Server"]},SelectServerPage.prototype.getItems=function(query){return _connectionmanager.default.getAvailableServers().then(function(items){!function(items){items.push({Name:_globalize.default.translate("HeaderAddServer"),Type:"AddServer"}),_connectionmanager.default.isLoggedIntoConnect()||items.push({Name:_globalize.default.translate("HeaderSignInWithConnect"),Type:"EmbyConnect"}),_servicelocator.appHost.supports("sync")&&items.push({Name:_globalize.default.translate("Downloads"),Type:"Downloads"})}(items=items.slice(0));var totalRecordCount=items.length;return query&&(query.StartIndex&&(items=items.slice(query.StartIndex)),null!=query.Limit)&&query.Limit<items.length&&(items.length=query.Limit),{Items:items,TotalRecordCount:totalRecordCount}})},SelectServerPage.prototype.setTitle=function(){},SelectServerPage.prototype.getBaseListRendererOptions=function(){var options=_list.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.multiSelect=!1,options.action=_layoutmanager.default.tv?"menu":"connecttoserver",options.playQueueIndicator=!1,options},SelectServerPage.prototype.getCardOptions=function(items,settings){var options=_list.default.prototype.getCardOptions.apply(this,arguments);return options.shape="backdrop",options.defaultBackground=!0,options.fields=["Name","LastServerAddress"],options};_exports.default=SelectServerPage});
|
||||
16
startup/welcome.html
Normal file
16
startup/welcome.html
Normal file
@@ -0,0 +1,16 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
<form class="auto-center">
|
||||
|
||||
<h1 style="margin-top:0;">${HeaderWelcomeToEmby}</h1>
|
||||
|
||||
<p>${EmbyIntroMessage}</p>
|
||||
<p class="embyIntroDownloadMessage"></p>
|
||||
<br />
|
||||
<button is="emby-button" type="submit" class="raised btnWelcomeNext block autofocus">
|
||||
<span>${Next}</span>
|
||||
<i class="md-icon autortl button-icon button-icon-right"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/welcome.js
Normal file
1
startup/welcome.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/servicelocator.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_globalize,_embyButton,_embyScroller,_connectionmanager,_servicelocator,_approuter){function onSubmit(e){if(e.preventDefault(),e.stopPropagation(),!_servicelocator.appHost.supports("displaymode")||"ontouchstart"in document)return _loading.default.show(),_connectionmanager.default.connect().then(function(result){_loading.default.hide(),_approuter.default.handleConnectionResult(result)}),!1;_approuter.default.show("/startup/welcome_settings.html")}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit);var downloadMessage=view.querySelector(".embyIntroDownloadMessage");_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("targetblank")&&_servicelocator.appHost.supports("externalappinfo")?downloadMessage.innerHTML=_globalize.default.translate("ServerDownloadMessage",'<a is="emby-linkbutton" class="button-link" href="https://emby.media" target="_blank">https://emby.media</a>'):_servicelocator.appHost.supports("externallinkdisplay")?downloadMessage.innerHTML=_globalize.default.translate("ServerDownloadMessage","https://emby.media"):downloadMessage.innerHTML=_globalize.default.translate("ServerDownloadMessageWithoutLink")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),_loading.default.hide()};_exports.default=View});
|
||||
28
startup/welcome_settings.html
Normal file
28
startup/welcome_settings.html
Normal file
@@ -0,0 +1,28 @@
|
||||
<div is="emby-scroller" class="view flex flex-direction-column scrollFrameY flex-grow" data-mousewheel="true" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" data-bindheader="true">
|
||||
<div class="scrollSlider flex-grow flex-direction-column padded-left padded-right padded-top-page padded-bottom-page">
|
||||
<form class="auto-center fieldsets">
|
||||
|
||||
<h1 style="margin-top:0;" class="fieldsets-item">${LetsGetSetup}</h1>
|
||||
|
||||
<fieldset>
|
||||
<legend class="hide">${Display}</legend>
|
||||
<div class="fieldset-fields">
|
||||
|
||||
<div class="toggleContainer fieldset-field fldDisplayMode autoSetting-autohide hide" data-apphostsupports="displaymode">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-toggle" class="autoSetting autoSave chkTVDisplayMode" data-settingmethod="enableTVDisplayMode" data-settingowner="layoutmanager" data-changedelay="true" />
|
||||
<span>${LabelTVDisplayMode}</span>
|
||||
</label>
|
||||
<div class="fieldDescription">${TVDisplayModeHelp}</div>
|
||||
<div is="emby-premierecontainer" class="fieldDescription displayModePremiere hide" data-showifunlocked="playback,!playback-tv"></div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<button is="emby-button" type="submit" class="raised btnWelcomeNext block autofocus fieldsets-item">
|
||||
<span>${Next}</span>
|
||||
<i class="md-icon autortl button-icon button-icon-right"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
startup/welcome_settings.js
Normal file
1
startup/welcome_settings.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/approuter.js","./../modules/common/globalize.js","./../modules/common/servicelocator.js"],function(_exports,_basesettingsview,_loading,_embyButton,_embySelect,_embyToggle,_embyScroller,_connectionmanager,_approuter,_globalize,_servicelocator){function onSubmit(e){return _loading.default.show(),_connectionmanager.default.connect().then(function(result){_loading.default.hide(),_approuter.default.handleConnectionResult(result)}),e.preventDefault(),e.stopPropagation(),!1}function View(view,params){var elem,key;_basesettingsview.default.apply(this,arguments),elem=view.querySelector(".displayModePremiere"),key="PlaybackTvModeRequiresEmbyPremiere",_servicelocator.appHost.supports("externallinks")&&_servicelocator.appHost.supports("externalpremium")?elem.innerHTML=_globalize.default.translate(key,'<a is="emby-linkbutton" href="https://emby.media/premiere" data-preset="premiereinfo" target="_blank" class="button-link">',"</a>"):elem.innerHTML=_globalize.default.translate(key,"",""),view.querySelector("form").addEventListener("submit",onSubmit)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["material-icons"]),Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){return this.loadAutoSettings()};_exports.default=View});
|
||||
Reference in New Issue
Block a user