diff --git a/ApiClient.js b/ApiClient.js index f047501d29..c6234d41bb 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -1768,6 +1768,86 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }); }; + self.updateArtist = function (item) { + + if (!item) { + throw new Error("null item"); + } + + var url = self.getUrl("Artists/" + self.encodeName(item.Name)); + + return self.ajax({ + type: "POST", + url: url, + data: JSON.stringify(item), + contentType: "application/json" + }); + }; + + self.updatePerson = function (item) { + + if (!item) { + throw new Error("null item"); + } + + var url = self.getUrl("Persons/" + self.encodeName(item.Name)); + + return self.ajax({ + type: "POST", + url: url, + data: JSON.stringify(item), + contentType: "application/json" + }); + }; + + self.updateStudio = function (item) { + + if (!item) { + throw new Error("null item"); + } + + var url = self.getUrl("Studios/" + self.encodeName(item.Name)); + + return self.ajax({ + type: "POST", + url: url, + data: JSON.stringify(item), + contentType: "application/json" + }); + }; + + self.updateGenre = function (item) { + + if (!item) { + throw new Error("null item"); + } + + var url = self.getUrl("Genres/" + self.encodeName(item.Name)); + + return self.ajax({ + type: "POST", + url: url, + data: JSON.stringify(item), + contentType: "application/json" + }); + }; + + self.updateMusicGenres = function (item) { + + if (!item) { + throw new Error("null item"); + } + + var url = self.getUrl("MusicGenres/" + self.encodeName(item.Name)); + + return self.ajax({ + type: "POST", + url: url, + data: JSON.stringify(item), + contentType: "application/json" + }); + }; + /** * Updates plugin security info */ diff --git a/dashboard-ui/scripts/edititemmetadata.js b/dashboard-ui/scripts/edititemmetadata.js index a2ec1db18b..119b6c6ac3 100644 --- a/dashboard-ui/scripts/edititemmetadata.js +++ b/dashboard-ui/scripts/edititemmetadata.js @@ -469,7 +469,28 @@ } }; - ApiClient.updateItem(item).done(function () { + var updatePromise; + + if (item.Type == "Artist") { + updatePromise = ApiClient.updateArtist(item); + } + else if (item.Type == "Genre") { + updatePromise = ApiClient.updateGenre(item); + } + else if (item.Type == "MusicGenre") { + updatePromise = ApiClient.updateMusicGenre(item); + } + else if (item.Type == "Person") { + updatePromise = ApiClient.updatePerson(item); + } + else if (item.Type == "Studio") { + updatePromise = ApiClient.updateStudio(item); + } + else { + updatePromise = ApiClient.updateItem(item); + } + + updatePromise.done(function () { Dashboard.alert('Item saved.'); diff --git a/packages.config b/packages.config index fa2c717016..980aefd611 100644 --- a/packages.config +++ b/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file