EmbyCrackedClient/web/modules/backmenu/backmenu.js

1 line
3.6 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
import connectionManager from"./../emby-apiclient/connectionmanager.js";import{appHost}from"./../common/servicelocator.js";import layoutManager from"./../layoutmanager.js";import globalize from"./../common/globalize.js";import appRouter from"./../approuter.js";import actionSheet from"./../actionsheet/actionsheet.js";import itemManager from"./../common/itemmanager/itemmanager.js";function getItems(options,apiClient,user,signedInUsers){var items=[],userIcon=(items.push({name:globalize.translate("HeaderAppSettings"),id:"settings",icon:"&#xe8B8;",secondaryText:appHost.appName()+" "+appHost.appVersion()}),user&&user.Policy.IsAdministrator&&appRouter.getRouteInfo(appRouter.getRouteUrl("manageserver"))&&items.push({name:globalize.translate("ManageEmbyServer"),id:"manageserver",icon:"dashboard"}),appHost.supports("multiserver")&&items.push({name:globalize.translate("HeaderChangeServer"),id:"selectserver",icon:itemManager.getDefaultIcon({Type:"Server"})}),itemManager.getDefaultIcon(user));if(apiClient&&!connectionManager.isLoggedIntoConnect()){for(let i=0,length=signedInUsers.length;i<length;i++){var signedInUser=signedInUsers[i];signedInUser.Id!==user.Id&&items.push({name:signedInUser.Name,id:"user-"+signedInUser.Id,ImageUrl:signedInUser.PrimaryImageTag?apiClient.getUserImageUrl(signedInUser.Id,{maxWidth:80,type:"Primary",tag:signedInUser.PrimaryImageTag}):null,icon:userIcon})}items.push({name:globalize.translate("HeaderChangeUser"),id:"changeuser",icon:itemManager.getDefaultIcon({Type:"User"})})}return items.push({name:globalize.translate("HeaderSignOut"),id:"logout",icon:"&#xe879;"}),layoutManager.tv&&appHost.supports("exit")&&items.push({name:globalize.translate("Exit"),id:"exit",icon:"&#xe879;"}),appHost.supports("sleep")&&items.push({name:globalize.translate("Sleep"),id:"sleep",icon:"&#xe426;"}),appHost.supports("shutdown")&&items.push({name:globalize.translate("Shutdown"),id:"shutdown",icon:"&#xe8AC;"}),appHost.supports("restart")&&items.push({name:globalize.translate("Restart"),id:"restart",icon:"&#xe5D5;"}),items}function getCurrentUser(apiClient){return apiClient?apiClient.getCurrentUser():Promise.resolve(null)}function getSignedInUsers(apiClient){return apiClient?connectionManager.getSignedInUsers(apiClient):Promise.resolve([])}function changeToUser(apiClient,userId){return appRouter.changeToUser({apiClient:apiClient,userId:userId}).catch(function(err){"aborterror"!==(err?.name||"").toLowerCase()&&console.log("error changing to user: "+err)})}function show(options){let apiClient=connectionManager.currentApiClient();return getSignedInUsers(apiClient).then(function(signedInUsers){return getCurrentUser(apiClient).then(function(user){return actionSheet.show({items:getItems(options,apiClient,user,signedInUsers),positionTo:options.positionTo,positionY:options.positionY,positionX:options.positionX,transformOrigin:options.transformOrigin,item:user,showServerName:!0,hasItemIcon:!0,hasItemImage:!0,roundImage:!0,fields:["Name","ShortOverview"]}).then(function(id){switch(id){case"logout":appRouter.logout(apiClient);break;case"changeuser":appRouter.showServerLogin({apiClient:apiClient});break;case"home":appRouter.goHome();break;case"exit":appHost.exit();break;case"sleep":appHost.sleep();break;case"shutdown":appHost.shutdown();break;case"restart":appHost.restart();break;case"settings":appRouter.showSettings();break;case"manageserver":layoutManager.tv?appRouter.showSettings({start:"server"}):appRouter.show(appRouter.getRouteUrl("manageserver"));break;case"selectserver":appRouter.showSelectServer();break;default:if(!(id||"").startsWith("user-"))return Promise.reject();var userId=id.substring(5);changeToUser(apiClient,userId)}return Promise.resolve()})})})}export default show;