1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge branch 'dev' into master

This commit is contained in:
Vasily 2019-01-11 20:01:20 +03:00 committed by GitHub
commit 8cc83f8869
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 114 additions and 58 deletions

View file

@ -11,8 +11,9 @@
- [AnthonyLavado](https://github.com/anthonylavado) - [AnthonyLavado](https://github.com/anthonylavado)
- [sparky8251](https://github.com/sparky8251) - [sparky8251](https://github.com/sparky8251)
- [LeoVerto](https://github.com/LeoVerto) - [LeoVerto](https://github.com/LeoVerto)
- [cvium](https://github.com/cvium)
- [grafixeyehero](https://github.com/grafixeyehero) - [grafixeyehero](https://github.com/grafixeyehero)
# Emby Contributors # Emby Contributors
- [LukePulverenti](https://github.com/LukePulverenti) - [LukePulverenti](https://github.com/LukePulverenti)

View file

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

View file

@ -37,6 +37,11 @@ define(["loading", "libraryMenu", "emby-linkbutton"], function(loading, libraryM
var userId = params.userId, var userId = params.userId,
currentPassword = view.querySelector("#txtCurrentPassword").value, currentPassword = view.querySelector("#txtCurrentPassword").value,
newPassword = view.querySelector("#txtNewPassword").value; newPassword = view.querySelector("#txtNewPassword").value;
if(view.querySelector("#fldCurrentPassword").classList.contains("hide")) {
// Firefox does not respect autocomplete=off, so clear it if the field is supposed to be hidden (and blank)
// This should only happen when user.HasConfiguredPassword is false, but this information is not passed on
currentPassword = "";
}
ApiClient.updateUserPassword(userId, currentPassword, newPassword).then(function() { ApiClient.updateUserPassword(userId, currentPassword, newPassword).then(function() {
loading.hide(), require(["toast"], function(toast) { loading.hide(), require(["toast"], function(toast) {
toast(Globalize.translate("PasswordSaved")) toast(Globalize.translate("PasswordSaved"))
@ -93,4 +98,4 @@ define(["loading", "libraryMenu", "emby-linkbutton"], function(loading, libraryM
loadUser(view, params) loadUser(view, params)
}) })
} }
}); });