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

added methods to edit ibn images

This commit is contained in:
Luke Pulverenti 2013-08-03 10:38:56 -04:00
parent 0dc7a2177e
commit 0fde38b94f
4 changed files with 155 additions and 50 deletions

View file

@ -81,15 +81,12 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
name = "Firefox"; name = "Firefox";
} }
if (name) if (name) {
{ if ($.browser.version) {
if ($.browser.version)
{
name += " " + $.browser.version; name += " " + $.browser.version;
} }
} }
else else {
{
name = "Web Browser"; name = "Web Browser";
} }
@ -1046,17 +1043,41 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
}); });
}; };
self.deleteItemImage = function (itemId, imageType, imageIndex) { self.deleteItemImage = function (itemId, itemType, itemName, imageType, imageIndex) {
if (!itemId) {
throw new Error("null itemId");
}
if (!imageType) { if (!imageType) {
throw new Error("null imageType"); throw new Error("null imageType");
} }
var url = self.getUrl("Items/" + itemId + "/Images/" + imageType); if (!itemType) {
throw new Error("null itemType");
}
var url;
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "GameGenre") {
url = self.getUrl("GameGenres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "MusicGenre") {
url = self.getUrl("MusicGenres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Person") {
url = self.getUrl("Persons/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Studio") {
url = self.getUrl("Studios/" + self.encodeName(itemName) + "/Images");
}
else {
url = self.getUrl("Items/" + itemId + "/Images");
}
url += "/" + imageType;
if (imageIndex != null) { if (imageIndex != null) {
url += "/" + imageIndex; url += "/" + imageIndex;
@ -1068,17 +1089,41 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
}); });
}; };
self.updateItemImageIndex = function (itemId, imageType, imageIndex, newIndex) { self.updateItemImageIndex = function (itemId, itemType, itemName, imageType, imageIndex, newIndex) {
if (!itemId) {
throw new Error("null itemId");
}
if (!imageType) { if (!imageType) {
throw new Error("null imageType"); throw new Error("null imageType");
} }
var url = self.getUrl("Items/" + itemId + "/Images/" + imageType + "/" + imageIndex + "/Index", { newIndex: newIndex }); if (!itemType) {
throw new Error("null itemType");
}
var url;
var options = { newIndex: newIndex };
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
else if (itemType == "GameGenre") {
url = self.getUrl("GameGenres/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
else if (itemType == "MusicGenre") {
url = self.getUrl("MusicGenres/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
else if (itemType == "Person") {
url = self.getUrl("Persons/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
else if (itemType == "Studio") {
url = self.getUrl("Studios/" + self.encodeName(itemName) + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
else {
url = self.getUrl("Items/" + itemId + "/Images/" + imageType + "/" + imageIndex + "/Index", options);
}
return self.ajax({ return self.ajax({
type: "POST", type: "POST",
@ -1086,13 +1131,35 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
}); });
}; };
self.getItemImageInfos = function (itemId) { self.getItemImageInfos = function (itemId, itemType, itemName) {
if (!itemId) { if (!itemType) {
throw new Error("null itemId"); throw new Error("null itemType");
} }
var url = self.getUrl("Items/" + itemId + "/Images"); var url;
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "GameGenre") {
url = self.getUrl("GameGenres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "MusicGenre") {
url = self.getUrl("MusicGenres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Person") {
url = self.getUrl("Persons/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Studio") {
url = self.getUrl("Studios/" + self.encodeName(itemName) + "/Images");
}
else {
url = self.getUrl("Items/" + itemId + "/Images");
}
return self.ajax({ return self.ajax({
type: "GET", type: "GET",
@ -1191,7 +1258,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
return deferred.promise(); return deferred.promise();
}; };
self.uploadItemImage = function (itemId, imageType, file) { self.uploadItemImage = function (itemId, itemType, itemName, imageType, file) {
if (!itemId) { if (!itemId) {
throw new Error("null itemId"); throw new Error("null itemId");
@ -1209,6 +1276,32 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
throw new Error("File must be an image."); throw new Error("File must be an image.");
} }
var url;
if (itemType == "Artist") {
url = self.getUrl("Artists/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Genre") {
url = self.getUrl("Genres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "GameGenre") {
url = self.getUrl("GameGenres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "MusicGenre") {
url = self.getUrl("MusicGenres/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Person") {
url = self.getUrl("Persons/" + self.encodeName(itemName) + "/Images");
}
else if (itemType == "Studio") {
url = self.getUrl("Studios/" + self.encodeName(itemName) + "/Images");
}
else {
url = self.getUrl("Items/" + itemId + "/Images");
}
url += "/" + imageType;
var deferred = $.Deferred(); var deferred = $.Deferred();
var reader = new FileReader(); var reader = new FileReader();
@ -1227,8 +1320,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
// Split by a comma to remove the url: prefix // Split by a comma to remove the url: prefix
var data = e.target.result.split(',')[1]; var data = e.target.result.split(',')[1];
var url = self.getUrl("Items/" + itemId + "/Images/" + imageType);
self.ajax({ self.ajax({
type: "POST", type: "POST",
url: url, url: url,
@ -2243,6 +2334,27 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
}); });
}; };
self.getAncestorItems = function (itemId, userId) {
if (!itemId) {
throw new Error("null itemId");
}
var options = {};
if (userId) {
options.userId = userId;
}
var url = self.getUrl("Items/" + itemId + "/Ancestors", options);
return self.ajax({
type: "GET",
url: url,
dataType: "json"
});
};
/** /**
* Gets items based on a query, typically for children of a folder * Gets items based on a query, typically for children of a folder
* @param {String} userId * @param {String} userId
@ -3512,8 +3624,7 @@ MediaBrowser.SHA1 = function (msg) {
var browser = match[1] || ""; var browser = match[1] || "";
if (ua.indexOf("like gecko") != -1 && ua.indexOf('webkit') == -1 && ua.indexOf('opera') == -1) if (ua.indexOf("like gecko") != -1 && ua.indexOf('webkit') == -1 && ua.indexOf('opera') == -1) {
{
browser = "msie"; browser = "msie";
} }

View file

@ -29,7 +29,7 @@
$('#btnEditPeople', page).show(); $('#btnEditPeople', page).show();
} }
ApiClient.getItemImageInfos(currentItem.Id).done(function (imageInfos) { ApiClient.getItemImageInfos(currentItem.Id, currentItem.Type, currentItem.Name).done(function (imageInfos) {
renderStandardImages(page, item, imageInfos); renderStandardImages(page, item, imageInfos);
renderBackdrops(page, item, imageInfos); renderBackdrops(page, item, imageInfos);
renderScreenshots(page, item, imageInfos); renderScreenshots(page, item, imageInfos);
@ -219,7 +219,7 @@
var imageType = $('#selectImageType', page).val(); var imageType = $('#selectImageType', page).val();
ApiClient.uploadItemImage(currentItem.Id, imageType, file).done(function () { ApiClient.uploadItemImage(currentItem.Id, currentItem.Type, currentItem.Name, imageType, file).done(function () {
$('#uploadImage', page).val('').trigger('change'); $('#uploadImage', page).val('').trigger('change');
$('#popupUpload', page).popup("close"); $('#popupUpload', page).popup("close");
@ -237,7 +237,7 @@
Dashboard.confirm("Are you sure you wish to delete this image?", "Delete " + type + " Image", function (result) { Dashboard.confirm("Are you sure you wish to delete this image?", "Delete " + type + " Image", function (result) {
if (result) { if (result) {
ApiClient.deleteItemImage(currentItem.Id, type, index).done(function () { ApiClient.deleteItemImage(currentItem.Id, currentItem.Type, currentItem.Name, type, index).done(function () {
processImageChangeResult(page); processImageChangeResult(page);
@ -253,7 +253,7 @@
var page = $.mobile.activePage; var page = $.mobile.activePage;
ApiClient.updateItemImageIndex(currentItem.Id, type, index, newIndex).done(function () { ApiClient.updateItemImageIndex(currentItem.Id, currentItem.Type, currentItem.Name, type, index, newIndex).done(function () {
processImageChangeResult(page); processImageChangeResult(page);

View file

@ -65,9 +65,6 @@
if (elem) { if (elem) {
elem.scrollIntoView(); elem.scrollIntoView();
var sidebar = $('.editPageSidebar', page);
sidebar.scrollTop(sidebar.scrollTop() - sidebar.height() / 3);
} }
$(document).scrollTop(0); $(document).scrollTop(0);
@ -121,10 +118,7 @@
if (id) { if (id) {
$.getJSON(ApiClient.getUrl("Items/" + id + "/Ancestors", { ApiClient.getAncestorItems(id, Dashboard.getCurrentUserId()).done(function (ancestors) {
userId: Dashboard.getCurrentUserId()
})).done(function (ancestors) {
var ids = ancestors.map(function (i) { var ids = ancestors.map(function (i) {
return i.Id; return i.Id;

View file

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