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

mark games played when played through nesbox

This commit is contained in:
Luke Pulverenti 2013-10-28 10:56:57 -04:00
parent ef106f264a
commit 30dd80deae
6 changed files with 53 additions and 58 deletions

View file

@ -2731,16 +2731,42 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
});
};
/**
* Marks an item as played or unplayed
* This should not be used to update playstate following playback.
* There are separate playstate check-in methods for that. This should be used for a
* separate option to reset playstate.
* @param {String} userId
* @param {String} itemId
* @param {Boolean} wasPlayed
*/
self.updatePlayedStatus = function (userId, itemId, wasPlayed) {
self.getDateParamValue = function (date) {
function formatDigit(i) {
return i < 10 ? "0" + i : i;
}
var d = date;
return "" + d.getFullYear() + formatDigit(d.getMonth() + 1) + formatDigit(d.getDate()) + formatDigit(d.getHours()) + formatDigit(d.getMinutes()) + formatDigit(d.getSeconds());
};
self.markPlayed = function (userId, itemId, date) {
if (!userId) {
throw new Error("null userId");
}
if (!itemId) {
throw new Error("null itemId");
}
var options = {};
if (date) {
options.DatePlayed = self.getDateParamValue(date);
}
var url = self.getUrl("Users/" + userId + "/PlayedItems/" + itemId, options);
return self.ajax({
type: "POST",
url: url,
dataType: "json"
});
};
self.markUnplayed = function (userId, itemId) {
if (!userId) {
throw new Error("null userId");
@ -2752,10 +2778,8 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi
var url = self.getUrl("Users/" + userId + "/PlayedItems/" + itemId);
var method = wasPlayed ? "POST" : "DELETE";
return self.ajax({
type: method,
type: "DELETE",
url: url,
dataType: "json"
});

View file

@ -16,7 +16,7 @@
<table class="ehsContent">
<tr>
<td>
<h1 class="listHeader firstListHeader">Latest Unplayed Games</h1>
<h1 class="listHeader firstListHeader">Latest Games</h1>
<div id="recentlyAddedItems">
</div>
@ -27,13 +27,6 @@
<div id="recentlyPlayedItems">
</div>
</div>
<div id="frequentlyPlayedSection" style="display: none;">
<h1 class="listHeader">Frequently Played Games</h1>
<div id="frequentlyPlayedItems">
</div>
</div>
</td>
</tr>
</table>

View file

@ -1045,6 +1045,11 @@
LibraryBrowser.showPlayMenu(this, currentItem.Id, currentItem.Type, mediaType, userdata.PlaybackPositionTicks);
});
$('#btnPlayExternal', page).on('click', function () {
ApiClient.markPlayed(Dashboard.getCurrentUserId(), currentItem.Id, new Date());
});
$('#btnEdit', page).on('click', function () {
Dashboard.navigate("edititemmetadata.html?id=" + currentItem.Id);

View file

@ -10,16 +10,14 @@
SortOrder: "Descending",
MediaTypes: "Game",
Limit: 5,
Recursive: true,
Fields: "PrimaryImageAspectRatio",
Filters: "IsUnplayed"
Recursive: true
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
$('#recentlyAddedItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
useAverageAspectRatio: true,
useAverageAspectRatio: false,
showNewIndicator: false,
transparent: true,
borderless: true
@ -34,7 +32,6 @@
MediaTypes: "Game",
Limit: 5,
Recursive: true,
Fields: "PrimaryImageAspectRatio",
Filters: "IsPlayed"
};
@ -48,35 +45,7 @@
$('#recentlyPlayedItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
useAverageAspectRatio: true,
transparent: true,
borderless: true
}));
});
options = {
SortBy: "PlayCount",
SortOrder: "Descending",
MediaTypes: "Game",
Limit: 5,
Recursive: true,
Fields: "PrimaryImageAspectRatio",
Filters: "IsPlayed"
};
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
if (result.Items.length) {
$('#frequentlyPlayedSection', page).show();
} else {
$('#frequentlyPlayedSection', page).hide();
}
$('#frequentlyPlayedItems', page).html(LibraryBrowser.getPosterViewHtml({
items: result.Items,
useAverageAspectRatio: true,
useAverageAspectRatio: false,
transparent: true,
borderless: true
}));

View file

@ -1519,7 +1519,11 @@
var markAsPlayed = $link.hasClass('imgPlayedOff');
ApiClient.updatePlayedStatus(Dashboard.getCurrentUserId(), id, markAsPlayed);
if (markAsPlayed) {
ApiClient.markPlayed(Dashboard.getCurrentUserId(), id);
} else {
ApiClient.markUnplayed(Dashboard.getCurrentUserId(), id);
}
if (markAsPlayed) {
link.src = "css/images/userdata/playedon.png";

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.181" targetFramework="net45" />
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.182" targetFramework="net45" />
<package id="ServiceStack.Common" version="3.9.62" targetFramework="net45" />
<package id="ServiceStack.Text" version="3.9.62" targetFramework="net45" />
</packages>