define(["scripts/userpasswordpage", "loading", "libraryMenu", "apphost", "emby-linkbutton"], 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; var uploadUserImage = page.querySelector("#uploadUserImage"); uploadUserImage.value = "", uploadUserImage.dispatchEvent(new CustomEvent("change", {})), libraryMenu.setTitle(user.Name); var imageUrl, fldImage = page.querySelector("#fldImage"); imageUrl = user.PrimaryImageTag ? ApiClient.getUserImageUrl(user.Id, { height: 200, tag: user.PrimaryImageTag, type: "Primary" }) : "css/images/logindefault.png", fldImage.classList.remove("hide"), fldImage.innerHTML = ""; var showImageEditing = !0; Dashboard.getCurrentUser().then(function(loggedInUser) { showImageEditing && appHost.supports("fileinput") && (loggedInUser.Policy.IsAdministrator || user.Policy.EnableUserPreferenceAccess) ? (page.querySelector(".newImageForm").classList.remove("hide"), user.PrimaryImageTag ? page.querySelector("#btnDeleteImage").classList.remove("hide") : page.querySelector("#btnDeleteImage").classList.add("hide")) : (page.querySelector(".newImageForm").classList.add("hide"), page.querySelector("#btnDeleteImage").classList.add("hide")) }), loading.hide() }) } function onFileReaderError(evt) { switch (loading.hide(), evt.target.error.code) { case evt.target.error.NOT_FOUND_ERR: require(["toast"], function(toast) { toast(Globalize.translate("FileNotFound")) }); break; case evt.target.error.NOT_READABLE_ERR: require(["toast"], function(toast) { toast(Globalize.translate("FileReadError")) }); break; case evt.target.error.ABORT_ERR: break; 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 file = files[0]; if (!file || !file.type.match("image.*")) return page.querySelector("#userImageOutput").innerHTML = "", page.querySelector("#fldUpload").classList.add("hide"), void(currentFile = null); currentFile = file; var reader = new FileReader; reader.onerror = onFileReaderError, reader.onloadstart = function() { page.querySelector("#fldUpload").classList.add("hide") }, reader.onabort = onFileReaderAbort, reader.onload = function(e) { var html = [''].join(""); page.querySelector("#userImageOutput").innerHTML = html, page.querySelector("#fldUpload").classList.remove("hide") }, reader.readAsDataURL(file) } function onImageDragOver(e) { return e.preventDefault(), e.originalEvent.dataTransfer.dropEffect = "Copy", !1 } var currentFile; return function(view, params) { reloadUser(view); new Userpasswordpage(view, params); view.querySelector("#userImageDropZone").addEventListener("dragOver", onImageDragOver), 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(".btnBrowse").addEventListener("click", function() { view.querySelector("#uploadUserImage").click() }), view.querySelector(".newImageForm").addEventListener("submit", function(e) { var file = currentFile; if (!file) return !1; if ("image/png" != file.type && "image/jpeg" != file.type && "image/jpeg" != file.type) return !1; loading.show(); var userId = getParameterByName("userId"); return ApiClient.uploadUserImage(userId, "Primary", file).then(function() { loading.hide(), reloadUser(view) }), e.preventDefault(), !1 }), view.querySelector("#uploadUserImage").addEventListener("change", function(e) { setFiles(view, e.target.files) }) } });