first commit

This commit is contained in:
2026-02-09 10:48:21 +01:00
commit 15f28c0dd6
848 changed files with 107188 additions and 0 deletions

1
wizard/wizard.css Normal file
View File

@@ -0,0 +1 @@
.wizardAppLink{text-decoration:none!important}.wizardAppImage{height:3em}

View File

@@ -0,0 +1,41 @@
<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-left-page padded-right padded-top-page padded-bottom-page">
<form class="auto-center fieldsets">
<fieldset>
<legend>${TermsOfUse}</legend>
<p class="legendDescription">
${MessagePleaseAcceptTermsOfService}
</p>
<p>
<a is="emby-linkbutton" class="button-link" href="https://emby.media/privacy" target="_blank">${PrivacyPolicy}</a>
</p>
<p>
<a is="emby-linkbutton" class="button-link" href="https://emby.media/terms" target="_blank">${TermsOfUse}</a>
</p>
<div class="fieldset-fields">
<label class="toggleContainer fieldset-field">
<input type="checkbox" is="emby-toggle" class="chkAccept toggle-inline" />
<span>${OptionIAcceptTermsOfService}</span>
</label>
</div>
</fieldset>
<div class="flex justify-content-flex-end">
<button is="emby-button" type="button" onclick="history.back();" class="raised button-cancel">
<i class="md-icon button-icon button-icon-left autortl">&#xe5C4;</i>
<span>${Previous}</span>
</button>
<button is="emby-button" type="submit" class="raised button-submit">
<span>${Next}</span>
<i class="md-icon button-icon button-icon-right autortl">&#xe5c8;</i>
</button>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1 @@
define(["exports","./../modules/viewmanager/baseview.js","./../modules/common/globalize.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/approuter.js"],function(_exports,_baseview,_globalize,_embyButton,_embyToggle,_embyScroller,_approuter){function onSubmit(e){var options;return this.querySelector(".chkAccept").checked?_approuter.default.show("wizard/wizardfinish.html"):(options={text:_globalize.default.translate("MessagePleaseAcceptTermsOfServiceBeforeContinuing"),title:""},Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})),e.preventDefault(),!1}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View});

43
wizard/wizardfinish.html Normal file
View File

@@ -0,0 +1,43 @@
<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-left-page padded-right padded-top-page padded-bottom-page">
<div class="readOnlyContent auto-center">
<h1>
${LabelYoureDone}
</h1>
<p style="margin:2em 0;">${WizardCompleted}</p>
<p style="margin:2.5em 0;" class="buttonItems">
<a is="emby-linkbutton" href="https://www.amazon.com/Emby-for-Android/dp/B00GVH9O0I" target="_blank" title="Android via Amazon App Store" aria-label="Android via Amazon App Store" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/amazon.png" class="wizardAppImage" />
</a>
<a is="emby-linkbutton" href="https://play.google.com/store/apps/details?id=com.mb.android&hl=en" target="_blank" title="Android via Google Play Store" aria-label="Android via Google Play Store" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/playstore.png" class="wizardAppImage" />
</a>
<a is="emby-linkbutton" href="https://itunes.apple.com/us/app/emby/id992180193?ls=1&mt=8" target="_blank" title="iOS" aria-label="iOS" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/ios.png" class="wizardAppImage" />
</a>
<a is="emby-linkbutton" href="https://emby.media/emby-for-appletv.html" target="_blank" title="Apple TV" aria-label="Apple TV" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/appletv.png" class="wizardAppImage" />
</a>
<a is="emby-linkbutton" href="https://channelstore.roku.com/details/44191/emby" target="_blank" title="Roku" aria-label="Roku" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/roku.jpg" class="wizardAppImage" />
</a>
<a is="emby-linkbutton" href="https://apps.microsoft.com/detail/9NBLGGH4T70L?cid=emby-website-downloads&mode=full" target="_blank" title="Windows" aria-label="Windows" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/windows.png" class="wizardAppImage" />
</a>
<a is="emby-linkbutton" href="https://emby.media/emby-for-lg-smart-tv.html" target="_blank" title="LG Smart TV" aria-label="LG Smart TV" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/lgtv.png" class="wizardAppImage" />
</a>
<a is="emby-linkbutton" href="https://emby.media/emby-for-samsung-smart-tv.html" target="_blank" title="Samsung Smart TV" aria-label="Samsung Smart TV" class="button-link buttonItems-item wizardAppLink">
<img src="https://github.com/MediaBrowser/Emby.Resources/raw/master/images/devices/samsungtv.png" class="wizardAppImage" />
</a>
</p>
<div class="flex justify-content-flex-end">
<button is="emby-button" type="button" class="raised button-cancel" onclick="history.back();"><i class="md-icon button-icon button-icon-left autortl">&#xe5C4;</i><span>${Previous}</span></button>
<button is="emby-button" type="button" class="raised btnWizardNext button-submit"><i class="md-icon button-icon button-icon-left">&#xe5ca;</i><span>${Finish}</span></button>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1 @@
define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-scroller/emby-scroller.js"],function(_exports,_baseview,_loading,_embyButton,_embyScroller){function View(view,params){_baseview.default.apply(this,arguments),view.querySelector(".btnWizardNext").addEventListener("click",function(){_loading.default.show();var apiClient=this.getApiClient();apiClient.ajax({url:apiClient.getUrl("Startup/Complete"),type:"POST"}).then(function(){_loading.default.hide(),window.location="index.html?#!/startup/login.html?serverId="+apiClient.serverId()})}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View});

21
wizard/wizardlibrary.html Normal file
View File

@@ -0,0 +1,21 @@
<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">
<h2 class="flex align-items-center justify-content-center" style="margin:0;">
${HeaderSetupLibrary}
</h2>
<div class="flex align-items-center justify-content-center focuscontainer-x itemsViewSettingsContainer padded-top padded-bottom">
<div class="listTotalRecordCount">
</div>
</div>
<div is="emby-itemscontainer" class="vertical-wrap itemsContainer centered">
</div>
<div class="flex justify-content-center padded-top">
<button is="emby-button" type="button" class="raised button-cancel" onclick="history.back();"><i class="md-icon button-icon button-icon-left autortl">&#xe5C4;</i><span>${Previous}</span></button>
<button is="emby-button" type="button" class="raised button-submit btnWizardNext"><span>${Next}</span><i class="md-icon button-icon button-icon-right autortl">&#xe5c8;</i></button>
</div>
</div>
</div>

1
wizard/wizardlibrary.js Normal file
View File

@@ -0,0 +1 @@
define(["exports","./../list/list.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../modules/common/globalize.js","./../modules/approuter.js","./../librarysetup/librariescontroller.js"],function(_exports,_list,_embyButton,_embyItemscontainer,_globalize,_approuter,_librariescontroller){function onWizardNextClick(){_approuter.default.show("wizard/wizardremoteaccess.html")}function LibrarySetupPage(view,params){this.supportsViewSettings=!1,this.hasOtherViewButtons=!0,this.enableAlphaNumericShortcuts=!1,_list.default.call(this,view,params),this.itemsContainer.refreshOnItemUpdated=!0,view.querySelector(".btnWizardNext").addEventListener("click",onWizardNextClick),_librariescontroller.default.addButtons(this,!1)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(LibrarySetupPage.prototype,_list.default.prototype),LibrarySetupPage.prototype.getItems=function(query){return this.getApiClient().getVirtualFolders(query)},LibrarySetupPage.prototype.getItemTypes=function(){return["VirtualFolder"]},LibrarySetupPage.prototype.getSettingsKey=function(){return"libraries"},LibrarySetupPage.prototype.getEmptyListMessage=function(){return Promise.resolve("")},LibrarySetupPage.prototype.getItemCountText=function(numItems){return 1===numItems?_globalize.default.translate("OneLibrary"):_globalize.default.translate("LibraryCountValue",numItems)},LibrarySetupPage.prototype.getContext=function(){return null},LibrarySetupPage.prototype.setTitle=function(){},LibrarySetupPage.prototype.getBaseListRendererOptions=function(){var options=_list.default.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!0,options.multiSelect=!1,options.action="edit",options},LibrarySetupPage.prototype.getCardOptions=function(items,settings){var options=_list.default.prototype.getCardOptions.apply(this,arguments);return Object.assign(options,{shape:"backdrop",fields:["Name","CollectionType","LibraryFolders"],cardLayout:!0,hoverPlayButton:!1,defaultBackground:!0,linkButtonAction:"edit"})},LibrarySetupPage.prototype.getSortMenuOptions=function(){return[]};_exports.default=LibrarySetupPage});

View 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-left-page padded-right padded-top-page padded-bottom-page">
<form class="auto-center fieldsets">
<fieldset>
<legend>${HeaderConfigureRemoteAccess}</legend>
<div class="fieldset-fields">
<div class="toggleContainer fieldset-field">
<label>
<input type="checkbox" is="emby-toggle" class="chkEnableUpnp" checked />
<span>${LabelEnableAutomaticPortMap}</span>
</label>
<div class="fieldDescription toggleFieldDescription">${LabelEnableAutomaticPortMapHelp}</div>
</div>
</div>
</fieldset>
<div class="flex justify-content-flex-end">
<button is="emby-button" type="button" onclick="history.back();" class="raised button-cancel">
<i class="md-icon button-icon button-icon-left autortl">&#xe5C4;</i>
<span>${Previous}</span>
</button>
<button is="emby-button" type="submit" class="raised button-submit">
<span>${Next}</span>
<i class="md-icon button-icon button-icon-right autortl">&#xe5c8;</i>
</button>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1 @@
define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-toggle/emby-toggle.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyButton,_embyToggle,_embySelect,_embyScroller,_approuter){function save(page,apiClient){_loading.default.show();var config={};config.EnableAutomaticPortMapping=page.querySelector(".chkEnableUpnp").checked,apiClient.ajax({type:"POST",data:config,url:apiClient.getUrl("Startup/RemoteAccess")}).then(function(){_loading.default.hide(),_approuter.default.show("wizard/wizardagreement.html")})}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",function(e){return save(e.target,this.getApiClient()),e.preventDefault(),!1}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype);_exports.default=View});

34
wizard/wizardstart.html Normal file
View File

@@ -0,0 +1,34 @@
<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-left-page padded-right padded-top-page padded-bottom-page">
<form class="auto-center fieldsets">
<fieldset>
<legend>${HeaderWelcomeToEmby}</legend>
<p class="legendDescription">${ThisWizardWillGuideYou}</p>
<p style="margin: 1.5em 0;">
<a is="emby-linkbutton" href="https://support.emby.media/support/solutions/articles/44001159034-quick-start" target="_blank" class="button-link flex-shrink-zero">
<span>${ButtonQuickStartGuide}</span>
</a>
</p>
<div class="fieldset-fields">
<div class="selectContainer fieldset-field">
<select is="emby-select" class="selectLocalizationLanguage" label="${LabelPreferredDisplayLanguage}"></select>
</div>
</div>
</fieldset>
<div class="flex justify-content-flex-end">
<button is="emby-button" type="submit" class="raised button-submit">
<span>${Next}</span>
<i class="md-icon button-icon button-icon-right autortl">&#xe5c8;</i>
</button>
</div>
</form>
</div>
</div>

1
wizard/wizardstart.js Normal file
View File

@@ -0,0 +1 @@
define(["exports","./../modules/viewmanager/baseview.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-scroller/emby-scroller.js","./../modules/approuter.js"],function(_exports,_baseview,_loading,_embyButton,_embySelect,_embyScroller,_approuter){function onSubmit(e){return function(form,apiClient){_loading.default.show(),apiClient.getJSON(apiClient.getUrl("Startup/Configuration")).then(function(config){config.UICulture=form.querySelector(".selectLocalizationLanguage").value,apiClient.ajax({type:"POST",data:config,url:apiClient.getUrl("Startup/Configuration")}).then(function(){_approuter.default.show("wizard/wizarduser.html")})})}(e.target,this.getApiClient()),e.preventDefault(),e.stopPropagation(),!1}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),_loading.default.show();var page=this.view,apiClient=this.getApiClient(),promise1=apiClient.getJSON(apiClient.getUrl("Startup/Configuration")),apiClient=apiClient.getJSON(apiClient.getUrl("Localization/Options"));Promise.all([promise1,apiClient]).then(function(responses){!function(page,config,languageOptions){(page=page.querySelector(".selectLocalizationLanguage")).innerHTML=languageOptions.map(function(l){return'<option value="'+l.Value+'">'+l.Name+"</option>"}),page.value=config.UICulture,_loading.default.hide()}(page,responses[0],responses[1])})};_exports.default=View});

33
wizard/wizarduser.html Normal file
View File

@@ -0,0 +1,33 @@
<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-left-page padded-right padded-top-page padded-bottom-page">
<form class="auto-center fieldsets">
<fieldset>
<legend>${HeaderCreateYourFirstUser}</legend>
<p class="legendDescription">${UserProfilesIntro}</p>
<div class="fieldset-fields">
<div class="inputContainer fieldset-field">
<input is="emby-input" type="text" class="txtUsername" label="${LabelUsername}" required="required" autocomplete="off" />
<div class="fieldDescription">${NewUserNameHelp}</div>
<div class="fieldDescription">${MoreUsersCanBeAddedLater}</div>
</div>
<div class="inputContainer fieldset-field">
<input is="emby-input" type="password" class="txtPassword" label="${LabelNewPassword}" required="required" autocomplete="off" />
</div>
<div class="inputContainer fieldset-field">
<input is="emby-input" type="password" class="txtPasswordConfirm" label="${LabelNewPasswordConfirm}" required="required" autocomplete="off" />
</div>
</div>
</fieldset>
<div class="flex justify-content-flex-end">
<button is="emby-button" type="button" class="raised button-cancel" onclick="history.back();"><i class="md-icon button-icon button-icon-left autortl">&#xe5C4;</i><span>${Previous}</span></button>
<button is="emby-button" type="submit" class="raised button-submit"><span>${Next}</span><i class="md-icon button-icon button-icon-right autortl">&#xe5c8;</i></button>
</div>
</form>
</div>
</div>

1
wizard/wizarduserpage.js Normal file
View File

@@ -0,0 +1 @@
define(["exports","./../modules/viewmanager/baseview.js","./../modules/loading/loading.js","./../modules/approuter.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"],function(_exports,_baseview,_loading,_approuter,_globalize,_embyInput,_embyButton,_embySelect,_embyScroller){function onUpdateUserComplete(result){_loading.default.hide(),_approuter.default.show("wizard/wizardlibrary.html")}function onSubmit(e){var options,form=e.target;return form.querySelector(".txtPassword").value!==form.querySelector(".txtPasswordConfirm").value?(options=_globalize.default.translate("PasswordMatchError"),Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})):function(form,apiClient){_loading.default.show(),apiClient.ajax({type:"POST",data:{Name:form.querySelector(".txtUsername").value,Password:form.querySelector(".txtPassword").value},url:apiClient.getUrl("Startup/User"),dataType:"json"}).then(onUpdateUserComplete)}(form,this.getApiClient()),e.preventDefault(),!1}function View(view,params){_baseview.default.apply(this,arguments),view.querySelector("form").addEventListener("submit",onSubmit.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!wizard/wizard.css"]),Object.assign(View.prototype,_baseview.default.prototype),View.prototype.onResume=function(options){_baseview.default.prototype.onResume.apply(this,arguments),_loading.default.show();var page=this.view,apiClient=this.getApiClient();apiClient.getJSON(apiClient.getUrl("Startup/User")).then(function(user){page.querySelector(".txtUsername").value=user.Name||"",_loading.default.hide()})};_exports.default=View});