diff --git a/src/bower_components/apiclient/apiclientcore.js b/src/bower_components/apiclient/apiclientcore.js
index 2ee75beb2..ea4d05d0a 100644
--- a/src/bower_components/apiclient/apiclientcore.js
+++ b/src/bower_components/apiclient/apiclientcore.js
@@ -1190,15 +1190,13 @@ define(["events", "appStorage"], function(events, appStorage) {
data: JSON.stringify(info),
contentType: "application/json"
})
- }, ApiClient.prototype.createUser = function(name) {
+ }, ApiClient.prototype.createUser = function(user) {
var url = this.getUrl("Users/New");
return this.ajax({
type: "POST",
url: url,
- data: {
- Name: name
- },
- dataType: "json"
+ data: JSON.stringify(user),
+ contentType: "application/json"
})
}, ApiClient.prototype.updateUser = function(user) {
if (!user) throw new Error("null user");
diff --git a/src/controllers/usernew.js b/src/controllers/usernew.js
index a9119a4ae..10fa6fc4f 100644
--- a/src/controllers/usernew.js
+++ b/src/controllers/usernew.js
@@ -3,74 +3,113 @@ define(["jQuery", "loading", "fnchecked", "emby-checkbox"], function($, loading)
function loadMediaFolders(page, mediaFolders) {
var html = "";
- html += '
' + Globalize.translate("HeaderLibraries") + "
", html += '";
+ $(".folderAccess", page).html(html).trigger("create");
+ $("#chkEnableAllFolders", page).checked(true).trigger("change");
}
function loadChannels(page, channels) {
var html = "";
- html += '' + Globalize.translate("HeaderChannels") + "
", html += '";
+ $(".channelAccess", page).show().html(html).trigger("create");
+ if (channels.length) {
+ $(".channelAccessContainer", page).show();
+ } else {
+ $(".channelAccessContainer", page).hide();
+ }
+ $("#chkEnableAllChannels", page).checked(true).trigger("change");
}
function loadUser(page) {
- $("#txtUserName", page).val(""), loading.show();
- var promise4 = ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders", {
- IsHidden: !1
- })),
- promise5 = ApiClient.getJSON(ApiClient.getUrl("Channels"));
- Promise.all([promise4, promise5]).then(function(responses) {
- loadMediaFolders(page, responses[0].Items), loadChannels(page, responses[1].Items), loading.hide()
+ $("#txtUsername", page).val("");
+ $("#txtPassword", page).val("");
+ loading.show();
+ var promiseFolders = ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders", {
+ IsHidden: false
+ }));
+ var promiseChannels = ApiClient.getJSON(ApiClient.getUrl("Channels"));
+ Promise.all([promiseFolders, promiseChannels]).then(function(responses) {
+ loadMediaFolders(page, responses[0].Items);
+ loadChannels(page, responses[1].Items);
+ loading.hide();
})
}
function saveUser(page) {
- var name = $("#txtUserName", page).val();
- ApiClient.createUser(name).then(function(user) {
- user.Policy.EnableAllFolders = $("#chkEnableAllFolders", page).checked(), user.Policy.EnabledFolders = user.Policy.EnableAllFolders ? [] : $(".chkFolder", page).get().filter(function(i) {
- return i.checked
- }).map(function(i) {
- return i.getAttribute("data-id")
- }), user.Policy.EnableAllChannels = $("#chkEnableAllChannels", page).checked(), user.Policy.EnabledChannels = user.Policy.EnableAllChannels ? [] : $(".chkChannel", page).get().filter(function(i) {
- return i.checked
- }).map(function(i) {
- return i.getAttribute("data-id")
- }), ApiClient.updateUserPolicy(user.Id, user.Policy).then(function() {
- Dashboard.navigate("useredit.html?userId=" + user.Id)
- })
+ var user = {};
+ user.Name = $("#txtUsername", page).val();
+ user.Password = $("#txtPassword", page).val();
+ ApiClient.createUser(user).then(function(user) {
+ user.Policy.EnableAllFolders = $("#chkEnableAllFolders", page).checked();
+ user.Policy.EnabledFolders = [];
+ if (!user.Policy.EnableAllFolders) {
+ user.Policy.EnabledFolders = $(".chkFolder", page).get().filter(function(i) {
+ return i.checked
+ }).map(function(i) {
+ return i.getAttribute("data-id");
+ });
+ }
+ user.Policy.EnableAllChannels = $("#chkEnableAllChannels", page).checked();
+ user.Policy.EnabledChannels = [];
+ if (!user.Policy.EnableAllChannels) {
+ user.Policy.EnabledChannels = $(".chkChannel", page).get().filter(function(i) {
+ return i.checked
+ }).map(function(i) {
+ return i.getAttribute("data-id");
+ });
+ }
+ ApiClient.updateUserPolicy(user.Id, user.Policy).then(function() {
+ Dashboard.navigate("useredit.html?userId=" + user.Id);
+ });
}, function(response) {
- 400 == response.status ? Dashboard.alert({
- message: page.querySelector(".labelNewUserNameHelp").innerHTML
- }) : require(["toast"], function(toast) {
- toast(Globalize.translate("DefaultErrorMessage"))
- }), loading.hide()
- })
+ require(["toast"], function(toast) {
+ toast(Globalize.translate("DefaultErrorMessage"));
+ });
+ loading.hide();
+ });
}
function onSubmit() {
var page = $(this).parents(".page")[0];
- return loading.show(), saveUser(page), !1
+ loading.show();
+ saveUser(page);
+ return false;
}
function loadData(page) {
- loadUser(page)
+ loadUser(page);
}
+
$(document).on("pageinit", "#newUserPage", function() {
var page = this;
$("#chkEnableAllChannels", page).on("change", function() {
- this.checked ? $(".channelAccessListContainer", page).hide() : $(".channelAccessListContainer", page).show()
- }), $("#chkEnableAllFolders", page).on("change", function() {
- this.checked ? $(".folderAccessListContainer", page).hide() : $(".folderAccessListContainer", page).show()
- }), $(".newUserProfileForm").off("submit", onSubmit).on("submit", onSubmit)
+ if (this.checked) {
+ $(".channelAccessListContainer", page).hide();
+ } else {
+ $(".channelAccessListContainer", page).show();
+ }
+ });
+ $("#chkEnableAllFolders", page).on("change", function() {
+ if (this.checked) {
+ $(".folderAccessListContainer", page).hide();
+ } else {
+ $(".folderAccessListContainer", page).show();
+ }
+ });
+ $(".newUserProfileForm").off("submit", onSubmit).on("submit", onSubmit);
}).on("pageshow", "#newUserPage", function() {
- loadData(this)
- })
+ loadData(this);
+ });
});
\ No newline at end of file
diff --git a/src/usernew.html b/src/usernew.html
index f53bc60b9..207a68ffe 100644
--- a/src/usernew.html
+++ b/src/usernew.html
@@ -1,8 +1,6 @@
+