1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/controllers/user/profile.js
Fernando e538a6d62c Improvements to the quality of artworks and user images - Part 2 (#512)
* Improved the overall appearance of user images

* Rounded photo in 'My profile' page

* Improved quality of media artwork

* fix some minor bugs introduced from a merge conflict
2019-10-13 15:46:22 -04:00

106 lines
4 KiB
JavaScript

define(["controllers/userpasswordpage", "loading", "libraryMenu", "apphost", "emby-button"], function (UserPasswordPage, loading, libraryMenu, appHost) {
"use strict";
function reloadUser(page) {
var userId = getParameterByName("userId");
loading.show();
ApiClient.getUser(userId).then(function (user) {
page.querySelector(".username").innerHTML = user.Name;
libraryMenu.setTitle(user.Name);
var imageUrl = "img/logindefault.png";
if (user.PrimaryImageTag) {
imageUrl = ApiClient.getUserImageUrl(user.Id, {
tag: user.PrimaryImageTag,
type: "Primary"
});
}
var userImage = page.querySelector("#image");
userImage.style.backgroundImage = "url(" + imageUrl + ")";
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)) {
page.querySelector("#btnDeleteImage").classList.add("hide");
page.querySelector("#btnAddImage").classList.remove("hide");
}
});
loading.hide();
});
}
function onFileReaderError(evt) {
loading.hide();
switch (evt.target.error.code) {
case evt.target.error.NOT_FOUND_ERR:
require(["toast"], function (toast) {
toast(Globalize.translate("FileNotFound"));
});
break;
case evt.target.error.ABORT_ERR:
onFileReaderAbort();
break;
case evt.target.error.NOT_READABLE_ERR:
default:
require(["toast"], function (toast) {
toast(Globalize.translate("FileReadError"));
});
}
}
function onFileReaderAbort(evt) {
loading.hide();
require(["toast"], function (toast) {
toast(Globalize.translate("FileReadCancelled"));
});
}
function setFiles(page, files) {
var userImage = page.querySelector("#image");
var file = files[0];
if (!file || !file.type.match("image.*")) {
return false;
}
var reader = new FileReader();
reader.onerror = onFileReaderError;
reader.onabort = onFileReaderAbort;
reader.onload = function (evt) {
userImage.style.backgroundImage = "url(" + evt.target.result + ")";
var userId = getParameterByName("userId");
ApiClient.uploadUserImage(userId, "Primary", file).then(function () {
loading.hide();
reloadUser(page);
});
};
reader.readAsDataURL(file);
}
return function (view, params) {
reloadUser(view);
new UserPasswordPage(view, params);
view.querySelector("#btnDeleteImage").addEventListener("click", function () {
require(["confirm"], function (confirm) {
confirm(Globalize.translate("DeleteImageConfirmation"), Globalize.translate("DeleteImage")).then(function () {
loading.show();
var userId = getParameterByName("userId");
ApiClient.deleteUserImage(userId, "primary").then(function () {
loading.hide();
reloadUser(view);
});
});
});
});
view.querySelector("#btnAddImage").addEventListener("click", function (evt) {
view.querySelector("#uploadImage").click();
});
view.querySelector("#uploadImage").addEventListener("change", function (evt) {
setFiles(view, evt.target.files);
});
};
});