EmbyCrackedClient/web/modules/serverrestartdialog/serverrestartdialog.js

1 line
3.3 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import dialogHelper from"./../dialoghelper/dialoghelper.js";import layoutManager from"./../layoutmanager.js";import globalize from"./../common/globalize.js";import loading from"./../loading/loading.js";import{appHost}from"./../common/servicelocator.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import"./../emby-elements/emby-scroller/emby-scroller.js";require(["material-icons","formDialogStyle","flexStyles"]);let currentApiClient,currentDlg,currentInstance;function reloadPageWhenServerAvailable(retryCount){var apiClient=currentApiClient;apiClient&&apiClient.getJSON(apiClient.getUrl("System/Info")).then(function(info){info.IsShuttingDown?retryReload(retryCount):(currentInstance.restarted=!0,dialogHelper.close(currentDlg))},function(){retryReload(retryCount)})}function retryReload(retryCount){setTimeout(function(){retryCount=retryCount||0,++retryCount<150&&reloadPageWhenServerAvailable(retryCount)},500)}function startRestart(instance,apiClient,dlg){currentApiClient=apiClient,currentDlg=dlg,currentInstance=instance,apiClient.restartServer().then(function(){setTimeout(reloadPageWhenServerAvailable,250)})}function showDialog(instance,options,template){var dialogOptions={removeOnClose:!0,scrollY:!1},enableTvLayout=layoutManager.tv;enableTvLayout&&(dialogOptions.size="fullscreen");let dlg=dialogHelper.createDialog(dialogOptions);var configuredButtons=[],dialogOptions=(dlg.classList.add("formDialog"),dlg.innerHTML=globalize.translateHtml(template,"sharedcomponents"),dlg.classList.add("align-items-center"),dlg.classList.add("justify-items-center"),dlg.querySelector(".formDialogContent"));dialogOptions.style["flex-grow"]="initial",enableTvLayout?(dialogOptions.style["max-width"]="50%",dialogOptions.style["max-height"]="60%"):dlg.style.maxWidth="25em",dlg.querySelector(".formDialogHeaderTitle").innerHTML=globalize.translate("HeaderRestartingEmbyServer"),dlg.querySelector(".dialogContentInner").innerHTML=globalize.translate("RestartPleaseWaitMessage");let i,length,html="";for(i=0,length=configuredButtons.length;i<length;i++){var item=configuredButtons[i];let buttonClass="btnOption raised formDialogFooterItem formDialogFooterItem-autosize";item.type&&(buttonClass+=" button-"+item.type),html+='<button is="emby-button" type="button" class="'+buttonClass+'" data-id="'+item.id+'">'+item.name+"</button>"}function onButtonClick(){dialogHelper.close(dlg)}dlg.querySelector(".formDialogFooter").innerHTML=html;var buttons=dlg.querySelectorAll(".btnOption");for(i=0,length=buttons.length;i<length;i++)buttons[i].addEventListener("click",onButtonClick);template=dialogHelper.open(dlg);return startRestart(instance,options.apiClient,dlg),template.then(function(){instance.destroy(),loading.hide(),instance.restarted&&(appHost.supports("multiserver")?options.apiClient.ensureWebSocket():window.location.reload(!0))})}function ServerRestartDialog(options){this.options=options}ServerRestartDialog.prototype.show=function(){let instance=this;return loading.show(),new Promise(function(resolve,reject){require(["dialogTemplateHtml"],function(template){showDialog(instance,instance.options,template).then(resolve,reject)})})},ServerRestartDialog.prototype.destroy=function(){currentApiClient=null,currentDlg=null,currentInstance=null,this.options=null};export default ServerRestartDialog;