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:
commit
8cc83f8869
3 changed files with 114 additions and 58 deletions
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
});
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue