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

update listviews

This commit is contained in:
Luke Pulverenti 2016-07-17 00:20:36 -04:00
parent 722a452b91
commit c87b1304da
10 changed files with 134 additions and 860 deletions

View file

@ -1,7 +1,7 @@
define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', 'playbackManager'], function (appHost, globalize, connectionManager, itemHelper, embyRouter, playbackManager) {
var isTheater = true;
appHost.appInfo().then(function(result) {
appHost.appInfo().then(function (result) {
isTheater = result.appName.toLowerCase().indexOf('theater') != -1;
});
@ -85,10 +85,12 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
}
if (options.open !== false) {
commands.push({
name: globalize.translate('sharedcomponents#Open'),
id: 'open'
});
if (item.Type != 'Timer') {
commands.push({
name: globalize.translate('sharedcomponents#Open'),
id: 'open'
});
}
}
if (options.play !== false) {
@ -121,19 +123,31 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
}
}
if (user.Policy.IsAdministrator) {
if (item.Type == 'Program' && (!item.TimerId && !item.SeriesTimerId)) {
commands.push({
name: globalize.translate('sharedcomponents#Refresh'),
id: 'refresh'
name: Globalize.translate('sharedcomponents#Record'),
id: 'record'
});
}
if (item.Type != 'Timer' && user.Policy.EnablePublicSharing && appHost.supports('sharing')) {
commands.push({
name: globalize.translate('sharedcomponents#Share'),
id: 'share'
});
if (user.Policy.IsAdministrator) {
if (item.Type != 'Timer') {
commands.push({
name: globalize.translate('sharedcomponents#Refresh'),
id: 'refresh'
});
}
}
if (options.share !== false) {
if (itemHelper.canShare(user, item)) {
commands.push({
name: globalize.translate('sharedcomponents#Share'),
id: 'share'
});
}
}
if (item.IsFolder || item.Type == "MusicArtist" || item.Type == "MusicGenre") {
@ -247,10 +261,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
}
case 'edit':
{
require(['components/metadataeditor/metadataeditor'], function (metadataeditor) {
metadataeditor.show(itemId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
});
editItem(apiClient, item).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
break;
}
case 'editimages':
@ -283,28 +294,27 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
}
case 'play':
{
playbackManager.play({
items: [item]
});
play(item, false);
getResolveFunction(resolve, id)();
break;
}
case 'resume':
{
playbackManager.play({
items: [item]
});
play(item, true);
getResolveFunction(resolve, id)();
break;
}
case 'queue':
{
playbackManager.queue({
items: [item]
});
play(item, false, true);
getResolveFunction(resolve, id)();
break;
}
case 'record':
require(['recordingCreator'], function (recordingCreator) {
recordingCreator.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
});
break;
case 'shuffle':
{
playbackManager.shuffle(item);
@ -375,6 +385,40 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter',
});
}
function play(item, resume, queue) {
var method = queue ? 'queue' : 'play';
if (item.Type == 'Program') {
playbackManager[method]({
ids: [item.ChannelId]
});
} else {
playbackManager[method]({
items: [item]
});
}
}
function editItem(apiClient, item) {
return new Promise(function (resolve, reject) {
if (item.Type == 'Timer') {
require(['recordingEditor'], function (recordingEditor) {
var serverId = apiClient.serverInfo().Id;
recordingEditor.show(item.Id, serverId).then(resolve, reject);
});
} else {
require(['components/metadataeditor/metadataeditor'], function (metadataeditor) {
metadataeditor.show(item.Id).then(resolve, reject);
});
}
});
}
function deleteItem(apiClient, itemId) {
return new Promise(function (resolve, reject) {