aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.WebDashboard/ApiClient.js
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.WebDashboard/ApiClient.js')
-rw-r--r--MediaBrowser.WebDashboard/ApiClient.js187
1 files changed, 149 insertions, 38 deletions
diff --git a/MediaBrowser.WebDashboard/ApiClient.js b/MediaBrowser.WebDashboard/ApiClient.js
index a75da62dc..e989d8ff1 100644
--- a/MediaBrowser.WebDashboard/ApiClient.js
+++ b/MediaBrowser.WebDashboard/ApiClient.js
@@ -80,18 +80,15 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
else if ($.browser.firefox || $.browser.mozilla) {
name = "Firefox";
}
-
- if (name)
- {
- if ($.browser.version)
- {
- name += " " + $.browser.version;
- }
- }
- else
- {
- name = "Web Browser";
- }
+
+ if (name) {
+ if ($.browser.version) {
+ name += " " + $.browser.version;
+ }
+ }
+ else {
+ name = "Web Browser";
+ }
if ($.browser.ipad) {
name += " Ipad";
@@ -1046,17 +1043,41 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
});
};
- self.deleteItemImage = function (itemId, imageType, imageIndex) {
-
- if (!itemId) {
- throw new Error("null itemId");
- }
+ self.deleteItemImage = function (itemId, itemType, itemName, imageType, imageIndex) {
if (!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) {
url += "/" + imageIndex;
@@ -1068,17 +1089,41 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
});
};
- self.updateItemImageIndex = function (itemId, imageType, imageIndex, newIndex) {
-
- if (!itemId) {
- throw new Error("null itemId");
- }
+ self.updateItemImageIndex = function (itemId, itemType, itemName, imageType, imageIndex, newIndex) {
if (!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({
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) {
- throw new Error("null itemId");
+ if (!itemType) {
+ 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({
type: "GET",
@@ -1191,7 +1258,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
return deferred.promise();
};
- self.uploadItemImage = function (itemId, imageType, file) {
+ self.uploadItemImage = function (itemId, itemType, itemName, imageType, file) {
if (!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.");
}
+ 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 reader = new FileReader();
@@ -1227,8 +1320,6 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) {
// Split by a comma to remove the url: prefix
var data = e.target.result.split(',')[1];
- var url = self.getUrl("Items/" + itemId + "/Images/" + imageType);
-
self.ajax({
type: "POST",
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
* @param {String} userId
@@ -3509,13 +3621,12 @@ MediaBrowser.SHA1 = function (msg) {
/(iphone)/.exec(ua) ||
/(android)/.exec(ua) ||
[];
-
- var browser = match[1] || "";
-
- if (ua.indexOf("like gecko") != -1 && ua.indexOf('webkit') == -1 && ua.indexOf('opera') == -1)
- {
- browser = "msie";
- }
+
+ var browser = match[1] || "";
+
+ if (ua.indexOf("like gecko") != -1 && ua.indexOf('webkit') == -1 && ua.indexOf('opera') == -1) {
+ browser = "msie";
+ }
return {
browser: browser,