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

78 lines
1.8 KiB
JavaScript
Raw Normal View History

2020-05-03 20:39:02 +05:30
import actionsheet from 'actionsheet';
import datetime from 'datetime';
import playbackManager from 'playbackManager';
import globalize from 'globalize';
// import appSettings from 'appSettings';
2018-10-23 01:05:09 +03:00
2020-05-03 20:39:02 +05:30
export function show(options) {
2020-05-03 20:39:02 +05:30
var item = options.item;
2020-05-03 20:39:02 +05:30
var itemType = item.Type;
var isFolder = item.IsFolder;
var itemId = item.Id;
var channelId = item.ChannelId;
var serverId = item.ServerId;
var resumePositionTicks = item.UserData ? item.UserData.PlaybackPositionTicks : null;
2020-05-03 20:39:02 +05:30
var playableItemId = itemType === 'Program' ? channelId : itemId;
2020-05-03 20:39:02 +05:30
if (!resumePositionTicks || isFolder) {
playbackManager.play({
ids: [playableItemId],
serverId: serverId
});
return;
}
2020-05-03 20:39:02 +05:30
var menuItems = [];
2020-05-03 20:39:02 +05:30
menuItems.push({
name: globalize.translate('ResumeAt', datetime.getDisplayRunningTime(resumePositionTicks)),
id: 'resume'
});
2020-05-03 20:39:02 +05:30
menuItems.push({
name: globalize.translate('PlayFromBeginning'),
id: 'play'
});
2020-05-03 20:39:02 +05:30
actionsheet.show({
2020-05-03 20:39:02 +05:30
items: menuItems,
positionTo: options.positionTo
2020-05-03 20:39:02 +05:30
}).then(function (id) {
switch (id) {
2020-05-03 20:39:02 +05:30
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);
break;
default:
break;
}
});
}
2020-05-03 20:39:02 +05:30
export default {
show: show
};