1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/bower_components/emby-webcomponents/playmenu.js

55 lines
2 KiB
JavaScript
Raw Normal View History

2018-10-23 01:05:09 +03:00
define(["actionsheet", "datetime", "playbackManager", "globalize", "appSettings"], function(actionsheet, datetime, playbackManager, globalize, appSettings) {
"use strict";
function show(options) {
var item = options.item,
itemType = item.Type,
isFolder = item.IsFolder,
itemId = item.Id,
channelId = item.ChannelId,
serverId = item.ServerId,
resumePositionTicks = item.UserData ? item.UserData.PlaybackPositionTicks : null,
playableItemId = "Program" === itemType ? channelId : itemId;
if (!resumePositionTicks || isFolder) return void playbackManager.play({
ids: [playableItemId],
serverId: serverId
});
var menuItems = [];
menuItems.push({
name: globalize.translate("sharedcomponents#ResumeAt", datetime.getDisplayRunningTime(resumePositionTicks)),
id: "resume"
}), menuItems.push({
name: globalize.translate("sharedcomponents#PlayFromBeginning"),
id: "play"
}), actionsheet.show({
items: menuItems,
positionTo: options.positionTo
}).then(function(id) {
switch (id) {
case "play":
playbackManager.play({
ids: [playableItemId],
serverId: serverId
});
break;
case "resume":
playbackManager.play({
ids: [playableItemId],
startPositionTicks: resumePositionTicks,
serverId: serverId
});
break;
case "queue":
playbackManager.queue({
items: [item]
});
break;
case "shuffle":
playbackManager.shuffle(item)
}
})
}
return {
show: show
}
});