2019-09-26 01:15:36 +09:00
|
|
|
define(["controllers/userpasswordpage", "loading", "libraryMenu", "apphost", "emby-button"], function (UserPasswordPage, loading, libraryMenu, appHost) {
|
2018-10-23 01:05:09 +03:00
|
|
|
"use strict";
|
|
|
|
|
|
|
|
function reloadUser(page) {
|
|
|
|
var userId = getParameterByName("userId");
|
2019-01-10 18:53:37 +01:00
|
|
|
loading.show();
|
|
|
|
ApiClient.getUser(userId).then(function (user) {
|
2018-10-23 01:05:09 +03:00
|
|
|
page.querySelector(".username").innerHTML = user.Name;
|
2019-01-10 18:53:37 +01:00
|
|
|
libraryMenu.setTitle(user.Name);
|
2019-09-26 01:15:36 +09:00
|
|
|
|
2019-03-22 02:58:34 -07:00
|
|
|
var imageUrl = "img/logindefault.png";
|
2019-01-10 19:16:31 +01:00
|
|
|
if (user.PrimaryImageTag) {
|
2019-01-24 07:39:22 +01:00
|
|
|
imageUrl = ApiClient.getUserImageUrl(user.Id, {
|
2019-01-10 19:16:31 +01:00
|
|
|
tag: user.PrimaryImageTag,
|
|
|
|
type: "Primary"
|
|
|
|
});
|
|
|
|
}
|
2019-01-10 18:53:37 +01:00
|
|
|
|
2019-09-26 01:15:36 +09:00
|
|
|
var userImage = page.querySelector("#image");
|
2019-10-13 21:46:22 +02:00
|
|
|
userImage.style.backgroundImage = "url(" + imageUrl + ")";
|
2019-09-26 01:15:36 +09:00
|
|
|
|
|
|
|
Dashboard.getCurrentUser().then(function (loggedInUser) {
|
|
|
|
if (user.PrimaryImageTag) {
|
|
|
|
page.querySelector("#btnAddImage").classList.add("hide");
|
|
|
|
page.querySelector("#btnDeleteImage").classList.remove("hide");
|
|
|
|
} else if (appHost.supports("fileinput") && (loggedInUser.Policy.IsAdministrator || user.Policy.EnableUserPreferenceAccess)) {
|
2019-01-10 18:53:37 +01:00
|
|
|
page.querySelector("#btnDeleteImage").classList.add("hide");
|
2019-09-26 01:15:36 +09:00
|
|
|
page.querySelector("#btnAddImage").classList.remove("hide");
|
2019-01-10 18:53:37 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
loading.hide();
|
|
|
|
});
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function onFileReaderError(evt) {
|
2019-01-10 19:16:31 +01:00
|
|
|
loading.hide();
|
|
|
|
switch (evt.target.error.code) {
|
2018-10-23 01:05:09 +03:00
|
|
|
case evt.target.error.NOT_FOUND_ERR:
|
2019-01-10 18:53:37 +01:00
|
|
|
require(["toast"], function (toast) {
|
|
|
|
toast(Globalize.translate("FileNotFound"));
|
2018-10-23 01:05:09 +03:00
|
|
|
});
|
|
|
|
break;
|
|
|
|
case evt.target.error.ABORT_ERR:
|
2019-09-26 01:15:36 +09:00
|
|
|
onFileReaderAbort();
|
2018-10-23 01:05:09 +03:00
|
|
|
break;
|
2019-09-26 01:15:36 +09:00
|
|
|
case evt.target.error.NOT_READABLE_ERR:
|
2018-10-23 01:05:09 +03:00
|
|
|
default:
|
2019-01-10 18:53:37 +01:00
|
|
|
require(["toast"], function (toast) {
|
|
|
|
toast(Globalize.translate("FileReadError"));
|
|
|
|
});
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function onFileReaderAbort(evt) {
|
2019-01-10 18:53:37 +01:00
|
|
|
loading.hide();
|
|
|
|
require(["toast"], function (toast) {
|
|
|
|
toast(Globalize.translate("FileReadCancelled"));
|
|
|
|
});
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
function setFiles(page, files) {
|
2019-09-26 01:15:36 +09:00
|
|
|
var userImage = page.querySelector("#image");
|
2018-10-23 01:05:09 +03:00
|
|
|
var file = files[0];
|
2019-01-10 18:53:37 +01:00
|
|
|
|
|
|
|
if (!file || !file.type.match("image.*")) {
|
2019-09-26 01:15:36 +09:00
|
|
|
return false;
|
2019-01-10 18:53:37 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
var reader = new FileReader();
|
|
|
|
reader.onerror = onFileReaderError;
|
|
|
|
reader.onabort = onFileReaderAbort;
|
2019-01-10 19:16:31 +01:00
|
|
|
reader.onload = function (evt) {
|
2019-10-13 21:46:22 +02:00
|
|
|
userImage.style.backgroundImage = "url(" + evt.target.result + ")";
|
2019-09-26 01:15:36 +09:00
|
|
|
var userId = getParameterByName("userId");
|
|
|
|
ApiClient.uploadUserImage(userId, "Primary", file).then(function () {
|
|
|
|
loading.hide();
|
|
|
|
reloadUser(page);
|
|
|
|
});
|
2019-01-10 18:53:37 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
reader.readAsDataURL(file);
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
|
2019-01-10 18:53:37 +01:00
|
|
|
return function (view, params) {
|
2018-10-23 01:05:09 +03:00
|
|
|
reloadUser(view);
|
2019-09-26 01:15:36 +09:00
|
|
|
new UserPasswordPage(view, params);
|
2019-01-10 18:53:37 +01:00
|
|
|
view.querySelector("#btnDeleteImage").addEventListener("click", function () {
|
|
|
|
require(["confirm"], function (confirm) {
|
|
|
|
confirm(Globalize.translate("DeleteImageConfirmation"), Globalize.translate("DeleteImage")).then(function () {
|
2018-10-23 01:05:09 +03:00
|
|
|
loading.show();
|
|
|
|
var userId = getParameterByName("userId");
|
2019-01-10 18:53:37 +01:00
|
|
|
ApiClient.deleteUserImage(userId, "primary").then(function () {
|
|
|
|
loading.hide();
|
|
|
|
reloadUser(view);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
2019-09-26 01:15:36 +09:00
|
|
|
view.querySelector("#btnAddImage").addEventListener("click", function (evt) {
|
|
|
|
view.querySelector("#uploadImage").click();
|
2019-01-10 18:53:37 +01:00
|
|
|
});
|
2019-09-26 01:15:36 +09:00
|
|
|
view.querySelector("#uploadImage").addEventListener("change", function (evt) {
|
2019-01-10 19:16:31 +01:00
|
|
|
setFiles(view, evt.target.files);
|
2019-01-10 18:53:37 +01:00
|
|
|
});
|
|
|
|
};
|
2019-01-07 12:16:36 -05:00
|
|
|
});
|