2020-08-14 08:46:34 +02:00
|
|
|
import UserPasswordPage from '../../dashboard/users/userpasswordpage';
|
|
|
|
import loading from '../../../components/loading/loading';
|
|
|
|
import libraryMenu from '../../../scripts/libraryMenu';
|
|
|
|
import appHost from '../../../components/apphost';
|
|
|
|
import globalize from '../../../scripts/globalize';
|
|
|
|
import '../../../elements/emby-button/emby-button';
|
2018-10-23 01:05:09 +03:00
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
function reloadUser(page) {
|
|
|
|
const userId = getParameterByName('userId');
|
|
|
|
loading.show();
|
|
|
|
ApiClient.getUser(userId).then(function (user) {
|
|
|
|
page.querySelector('.username').innerHTML = user.Name;
|
|
|
|
libraryMenu.setTitle(user.Name);
|
2019-09-26 01:15:36 +09:00
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
let imageUrl = 'assets/img/avatar.png';
|
|
|
|
if (user.PrimaryImageTag) {
|
|
|
|
imageUrl = ApiClient.getUserImageUrl(user.Id, {
|
|
|
|
tag: user.PrimaryImageTag,
|
|
|
|
type: 'Primary'
|
|
|
|
});
|
|
|
|
}
|
2019-01-10 18:53:37 +01:00
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
const userImage = page.querySelector('#image');
|
|
|
|
userImage.style.backgroundImage = 'url(' + imageUrl + ')';
|
2019-09-26 01:15:36 +09:00
|
|
|
|
2020-07-18 21:08:35 +01: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)) {
|
|
|
|
page.querySelector('#btnDeleteImage').classList.add('hide');
|
|
|
|
page.querySelector('#btnAddImage').classList.remove('hide');
|
|
|
|
}
|
2019-01-10 18:53:37 +01:00
|
|
|
});
|
2019-01-10 19:16:31 +01:00
|
|
|
loading.hide();
|
2020-07-18 21:08:35 +01:00
|
|
|
});
|
|
|
|
}
|
2018-10-23 01:05:09 +03:00
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
function onFileReaderError(evt) {
|
|
|
|
loading.hide();
|
|
|
|
switch (evt.target.error.code) {
|
|
|
|
case evt.target.error.NOT_FOUND_ERR:
|
2020-08-14 08:46:34 +02:00
|
|
|
import('../../../components/toast/toast').then((toast) => {
|
2020-07-18 21:08:35 +01:00
|
|
|
toast(globalize.translate('FileNotFound'));
|
|
|
|
});
|
|
|
|
break;
|
|
|
|
case evt.target.error.ABORT_ERR:
|
|
|
|
onFileReaderAbort();
|
|
|
|
break;
|
|
|
|
case evt.target.error.NOT_READABLE_ERR:
|
|
|
|
default:
|
2020-08-14 08:46:34 +02:00
|
|
|
import('../../../components/toast/toast').then((toast) => {
|
2020-07-18 21:08:35 +01:00
|
|
|
toast(globalize.translate('FileReadError'));
|
|
|
|
});
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
2020-07-18 21:08:35 +01:00
|
|
|
}
|
2018-10-23 01:05:09 +03:00
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
function onFileReaderAbort(evt) {
|
|
|
|
loading.hide();
|
2020-08-14 08:46:34 +02:00
|
|
|
import('../../../components/toast/toast').then((toast) => {
|
2020-07-18 21:08:35 +01:00
|
|
|
toast(globalize.translate('FileReadCancelled'));
|
|
|
|
});
|
|
|
|
}
|
2019-01-10 18:53:37 +01:00
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
function setFiles(page, files) {
|
|
|
|
const userImage = page.querySelector('#image');
|
|
|
|
const file = files[0];
|
2019-01-10 18:53:37 +01:00
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
if (!file || !file.type.match('image.*')) {
|
|
|
|
return false;
|
2018-10-23 01:05:09 +03:00
|
|
|
}
|
|
|
|
|
2020-07-18 21:08:35 +01:00
|
|
|
const reader = new FileReader();
|
|
|
|
reader.onerror = onFileReaderError;
|
|
|
|
reader.onabort = onFileReaderAbort;
|
|
|
|
reader.onload = function (evt) {
|
|
|
|
userImage.style.backgroundImage = 'url(' + evt.target.result + ')';
|
|
|
|
const userId = getParameterByName('userId');
|
|
|
|
ApiClient.uploadUserImage(userId, 'Primary', file).then(function () {
|
|
|
|
loading.hide();
|
|
|
|
reloadUser(page);
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
reader.readAsDataURL(file);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default function (view, params) {
|
|
|
|
reloadUser(view);
|
|
|
|
new UserPasswordPage(view, params);
|
|
|
|
view.querySelector('#btnDeleteImage').addEventListener('click', function () {
|
2020-08-14 08:46:34 +02:00
|
|
|
import('../../../components/confirm/confirm').then(({default: confirm}) => {
|
2020-07-18 21:08:35 +01:00
|
|
|
confirm(globalize.translate('DeleteImageConfirmation'), globalize.translate('DeleteImage')).then(function () {
|
|
|
|
loading.show();
|
|
|
|
const userId = getParameterByName('userId');
|
|
|
|
ApiClient.deleteUserImage(userId, 'primary').then(function () {
|
|
|
|
loading.hide();
|
|
|
|
reloadUser(view);
|
2019-01-10 18:53:37 +01:00
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
2020-07-18 21:08:35 +01:00
|
|
|
});
|
|
|
|
view.querySelector('#btnAddImage').addEventListener('click', function (evt) {
|
|
|
|
view.querySelector('#uploadImage').click();
|
|
|
|
});
|
|
|
|
view.querySelector('#uploadImage').addEventListener('change', function (evt) {
|
|
|
|
setFiles(view, evt.target.files);
|
|
|
|
});
|
|
|
|
}
|