From b3cb8fda22337e22d6d4ee45d5ec6e9cf69be7fa Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Fri, 12 Apr 2013 20:42:51 -0400 Subject: add ability to mark studios, genres and people as favorites --- MediaBrowser.WebDashboard/Api/DashboardService.cs | 1 - MediaBrowser.WebDashboard/ApiClient.js | 83 ++++++++++++++++++++++- MediaBrowser.WebDashboard/packages.config | 2 +- 3 files changed, 83 insertions(+), 3 deletions(-) (limited to 'MediaBrowser.WebDashboard') diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index f5d4e4147d..7756fb5b9a 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -417,7 +417,6 @@ namespace MediaBrowser.WebDashboard.Api "http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js", "http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js", "http://vjs.zencdn.net/c/video.js", - "thirdparty/jplayer/jquery.jplayer.min.js" + versionString, "scripts/all.js" + versionString }; diff --git a/MediaBrowser.WebDashboard/ApiClient.js b/MediaBrowser.WebDashboard/ApiClient.js index be4267d3c6..65012f94d2 100644 --- a/MediaBrowser.WebDashboard/ApiClient.js +++ b/MediaBrowser.WebDashboard/ApiClient.js @@ -1671,7 +1671,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }; /** - * Updates a user's favorite status for an item and returns the updated UserItemData object. + * Updates a user's favorite status for an item. * @param {String} userId * @param {String} itemId * @param {Boolean} isFavorite @@ -1723,6 +1723,87 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout) { }); }; + /** + * Updates a user's favorite status for a person. + * @param {String} userId + * @param {String} name + * @param {Boolean} isFavorite + */ + self.updateFavoritePersonStatus = function (userId, name, isFavorite) { + + if (!userId) { + throw new Error("null userId"); + } + + if (!name) { + throw new Error("null name"); + } + + var url = self.getUrl("Users/" + userId + "/FavoritePersons/" + name); + + var method = isFavorite ? "POST" : "DELETE"; + + return self.ajax({ + type: method, + url: url, + dataType: "json" + }); + }; + + /** + * Updates a user's favorite status for a genre. + * @param {String} userId + * @param {String} name + * @param {Boolean} isFavorite + */ + self.updateFavoriteGenreStatus = function (userId, name, isFavorite) { + + if (!userId) { + throw new Error("null userId"); + } + + if (!name) { + throw new Error("null name"); + } + + var url = self.getUrl("Users/" + userId + "/FavoriteGenre/" + name); + + var method = isFavorite ? "POST" : "DELETE"; + + return self.ajax({ + type: method, + url: url, + dataType: "json" + }); + }; + + /** + * Updates a user's favorite status for a studio. + * @param {String} userId + * @param {String} name + * @param {Boolean} isFavorite + */ + self.updateFavoriteStudioStatus = function (userId, name, isFavorite) { + + if (!userId) { + throw new Error("null userId"); + } + + if (!name) { + throw new Error("null name"); + } + + var url = self.getUrl("Users/" + userId + "/FavoriteStudios/" + name); + + var method = isFavorite ? "POST" : "DELETE"; + + return self.ajax({ + type: method, + url: url, + dataType: "json" + }); + }; + /** * Clears a user's personal rating for an item * @param {String} userId diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config index 8669c3db34..74c1b370fa 100644 --- a/MediaBrowser.WebDashboard/packages.config +++ b/MediaBrowser.WebDashboard/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file -- cgit v1.2.3