diff --git a/ApiClient.js b/ApiClient.js index 375aacbce6..97c26ec78a 100644 --- a/ApiClient.js +++ b/ApiClient.js @@ -1300,7 +1300,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }; /** - * Gets the virtual folder for a view. Specify a userId to get a user view, or omit for the default view. + * Gets the virtual folder list */ self.getVirtualFolders = function (userId) { @@ -1477,16 +1477,16 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }; /** - * Removes a virtual folder from either the default view or a user view + * Removes a virtual folder * @param {String} name */ - self.removeVirtualFolder = function (name, userId, refreshLibrary) { + self.removeVirtualFolder = function (name, refreshLibrary) { if (!name) { throw new Error("null name"); } - var url = userId ? "Users/" + userId + "/VirtualFolders" : "Library/VirtualFolders"; + var url = "Library/VirtualFolders"; url = self.getUrl(url, { refreshLibrary: refreshLibrary ? true : false, @@ -1500,10 +1500,10 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }; /** - * Adds a virtual folder to either the default view or a user view + * Adds a virtual folder * @param {String} name */ - self.addVirtualFolder = function (name, type, userId, refreshLibrary) { + self.addVirtualFolder = function (name, type, refreshLibrary) { if (!name) { throw new Error("null name"); @@ -1518,7 +1518,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi options.refreshLibrary = refreshLibrary ? true : false; options.name = name; - var url = userId ? "Users/" + userId + "/VirtualFolders" : "Library/VirtualFolders"; + var url = "Library/VirtualFolders"; url = self.getUrl(url, options); @@ -1529,18 +1529,16 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }; /** - * Renames a virtual folder, within either the default view or a user view + * Renames a virtual folder * @param {String} name */ - self.renameVirtualFolder = function (name, newName, userId, refreshLibrary) { + self.renameVirtualFolder = function (name, newName, refreshLibrary) { if (!name) { throw new Error("null name"); } - var url = userId ? "Users/" + userId + "/VirtualFolders" : "Library/VirtualFolders"; - - url += "/Name"; + var url = "Library/VirtualFolders/Name"; url = self.getUrl(url, { refreshLibrary: refreshLibrary ? true : false, @@ -1555,10 +1553,10 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }; /** - * Adds an additional mediaPath to an existing virtual folder, within either the default view or a user view + * Adds an additional mediaPath to an existing virtual folder * @param {String} name */ - self.addMediaPath = function (virtualFolderName, mediaPath, userId, refreshLibrary) { + self.addMediaPath = function (virtualFolderName, mediaPath, refreshLibrary) { if (!virtualFolderName) { throw new Error("null virtualFolderName"); @@ -1568,9 +1566,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi throw new Error("null mediaPath"); } - var url = userId ? "Users/" + userId + "/VirtualFolders" : "Library/VirtualFolders"; - - url += "/Paths"; + var url = "Library/VirtualFolders/Paths"; url = self.getUrl(url, { refreshLibrary: refreshLibrary ? true : false, @@ -1585,10 +1581,10 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi }; /** - * Removes a media path from a virtual folder, within either the default view or a user view + * Removes a media path from a virtual folder * @param {String} name */ - self.removeMediaPath = function (virtualFolderName, mediaPath, userId, refreshLibrary) { + self.removeMediaPath = function (virtualFolderName, mediaPath, refreshLibrary) { if (!virtualFolderName) { throw new Error("null virtualFolderName"); @@ -1598,9 +1594,7 @@ MediaBrowser.ApiClient = function ($, navigator, JSON, WebSocket, setTimeout, wi throw new Error("null mediaPath"); } - var url = userId ? "Users/" + userId + "/VirtualFolders" : "Library/VirtualFolders"; - - url += "/Paths"; + var url = "Library/VirtualFolders/Paths"; url = self.getUrl(url, { refreshLibrary: refreshLibrary ? true : false, diff --git a/dashboard-ui/library.html b/dashboard-ui/library.html index 7307a2850c..7276ad89f3 100644 --- a/dashboard-ui/library.html +++ b/dashboard-ui/library.html @@ -9,19 +9,11 @@
- - -
-Refer to the media library wiki. for suggested folder structures.
diff --git a/dashboard-ui/librarypathmapping.html b/dashboard-ui/librarypathmapping.html index 03d465f385..8a0ee4f0de 100644 --- a/dashboard-ui/librarypathmapping.html +++ b/dashboard-ui/librarypathmapping.html @@ -9,7 +9,7 @@
Use path substitution to map server paths to network shares that clients are able to access.
'; + html += 'Optional: Path substitution can map server paths to network shares that clients can access for direct playback.
'; } html += ''; @@ -173,38 +109,17 @@ return html; }, - setUseDefaultMediaLibrary: function (useDefaultLibrary) { - - Dashboard.showLoadingMsg(); - - var page = $.mobile.activePage; - var userId = MediaLibraryPage.getCurrentUserId(page); - - ApiClient.getUser(userId).done(function (user) { - - user.Configuration.UseCustomLibrary = !useDefaultLibrary; - - ApiClient.updateUser(user).done(function () { - MediaLibraryPage.reloadLibrary(page); - }); - - $(".editing_default", page).hide(); - }); - }, - addVirtualFolder: function () { $('.collectionTypeFieldDescription').show(); MediaLibraryPage.getTextValue("Add Media Folder", "Name (Movies, Music, TV, etc):", "", true, function (name, type) { - var userId = MediaLibraryPage.getCurrentUserId($.mobile.activePage); - MediaLibraryPage.lastVirtualFolderName = name; var refreshAfterChange = MediaLibraryPage.shouldRefreshLibraryAfterChanges(); - ApiClient.addVirtualFolder(name, type, userId, refreshAfterChange).done(MediaLibraryPage.processOperationResult); + ApiClient.addVirtualFolder(name, type, refreshAfterChange).done(MediaLibraryPage.processOperationResult); }); }, @@ -219,11 +134,9 @@ MediaLibraryPage.lastVirtualFolderName = virtualFolder.Name; - var userId = MediaLibraryPage.getCurrentUserId($.mobile.activePage); - var refreshAfterChange = MediaLibraryPage.shouldRefreshLibraryAfterChanges(); - ApiClient.addMediaPath(virtualFolder.Name, path, userId, refreshAfterChange).done(MediaLibraryPage.processOperationResult); + ApiClient.addMediaPath(virtualFolder.Name, path, refreshAfterChange).done(MediaLibraryPage.processOperationResult); } }); @@ -336,11 +249,9 @@ if (virtualFolder.Name != newName) { - var userId = MediaLibraryPage.getCurrentUserId($.mobile.activePage); - var refreshAfterChange = MediaLibraryPage.shouldRefreshLibraryAfterChanges(); - ApiClient.renameVirtualFolder(virtualFolder.Name, newName, userId, refreshAfterChange).done(MediaLibraryPage.processOperationResult); + ApiClient.renameVirtualFolder(virtualFolder.Name, newName, refreshAfterChange).done(MediaLibraryPage.processOperationResult); } }); }, @@ -369,11 +280,9 @@ if (confirmResult) { - var userId = MediaLibraryPage.getCurrentUserId($.mobile.activePage); - var refreshAfterChange = MediaLibraryPage.shouldRefreshLibraryAfterChanges(); - ApiClient.removeVirtualFolder(virtualFolder.Name, userId, refreshAfterChange).done(MediaLibraryPage.processOperationResult); + ApiClient.removeVirtualFolder(virtualFolder.Name, refreshAfterChange).done(MediaLibraryPage.processOperationResult); } }); @@ -394,11 +303,9 @@ if (confirmResult) { - var userId = MediaLibraryPage.getCurrentUserId($.mobile.activePage); - var refreshAfterChange = MediaLibraryPage.shouldRefreshLibraryAfterChanges(); - ApiClient.removeMediaPath(virtualFolder.Name, location, userId, refreshAfterChange).done(MediaLibraryPage.processOperationResult); + ApiClient.removeMediaPath(virtualFolder.Name, location, refreshAfterChange).done(MediaLibraryPage.processOperationResult); } }); }, @@ -419,4 +326,4 @@ } }; -$(document).on('pageshow', ".mediaLibraryPage", MediaLibraryPage.onPageShow).on('pagehide', ".mediaLibraryPage", MediaLibraryPage.onPageHide); \ No newline at end of file +$(document).on('pageshow', ".mediaLibraryPage", MediaLibraryPage.onPageShow); \ No newline at end of file diff --git a/dashboard-ui/scripts/userparentalcontrol.js b/dashboard-ui/scripts/userparentalcontrol.js index b6f2e6b772..c6752e3ba6 100644 --- a/dashboard-ui/scripts/userparentalcontrol.js +++ b/dashboard-ui/scripts/userparentalcontrol.js @@ -38,10 +38,37 @@ $('#selectMaxParentalRating', page).html(html).selectmenu("refresh"); } - function loadUser(page, user, loggedInUser, allParentalRatings) { + function loadMediaFolders(page, user, mediaFolders) { + + var html = ''; + + html += '
'; + + $('.libraryAccess', page).html(html).trigger('create'); + } + + function loadUser(page, user, loggedInUser, allParentalRatings, mediaFolders) { Dashboard.setPageTitle(user.Name); + loadMediaFolders(page, user, mediaFolders); + populateRatings(allParentalRatings, page); var ratingValue = ""; @@ -61,7 +88,7 @@ $('#selectMaxParentalRating', page).val(ratingValue).selectmenu("refresh"); $('#chkBlockNotRated', page).checked(user.Configuration.BlockNotRated || false).checkboxradio("refresh"); - + $('#chkHideUnratedMovies', page).checked(user.Configuration.BlockUnratedMovies || false).checkboxradio("refresh"); $('#chkHideUnratedTrailers', page).checked(user.Configuration.BlockUnratedTrailers || false).checkboxradio("refresh"); $('#chkHideUnratedSeries', page).checked(user.Configuration.BlockUnratedSeries || false).checkboxradio("refresh"); @@ -94,6 +121,12 @@ user.Configuration.BlockUnratedGames = $('#chkHideUnratedGames', page).checked(); user.Configuration.BlockUnratedBooks = $('#chkHideUnratedBooks', page).checked(); + user.Configuration.BlockedMediaFolders = $('.chkMediaFolder:not(:checked)', page).map(function () { + + return this.getAttribute('data-foldername'); + + }).get(); + ApiClient.updateUser(user).done(function () { onSaveComplete(page); }); @@ -146,9 +179,11 @@ var promise3 = ApiClient.getParentalRatings(); - $.when(promise1, promise2, promise3).done(function (response1, response2, response3) { + var promise4 = $.getJSON(ApiClient.getUrl("Library/MediaFolders")); - loadUser(page, response1[0] || response1, response2[0], response3[0]); + $.when(promise1, promise2, promise3, promise4).done(function (response1, response2, response3, response4) { + + loadUser(page, response1[0] || response1, response2[0], response3[0], response4[0].Items); }); }); diff --git a/dashboard-ui/useredit.html b/dashboard-ui/useredit.html index 0b627558a2..3e1f718c19 100644 --- a/dashboard-ui/useredit.html +++ b/dashboard-ui/useredit.html @@ -11,7 +11,7 @@ diff --git a/dashboard-ui/userimage.html b/dashboard-ui/userimage.html index 753d5c07e5..141c222a8d 100644 --- a/dashboard-ui/userimage.html +++ b/dashboard-ui/userimage.html @@ -11,7 +11,7 @@ diff --git a/dashboard-ui/userparentalcontrol.html b/dashboard-ui/userparentalcontrol.html index 01c6fb9fed..fcd75d1af8 100644 --- a/dashboard-ui/userparentalcontrol.html +++ b/dashboard-ui/userparentalcontrol.html @@ -11,17 +11,23 @@