mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
improve user view images
This commit is contained in:
parent
132a02a48d
commit
6b72ea474c
19 changed files with 325 additions and 224 deletions
|
@ -16,7 +16,7 @@
|
|||
return Math.floor(Math.random() * (max - min) + min);
|
||||
}
|
||||
|
||||
function getBackdropItemIds(userId, types, parentId) {
|
||||
function getBackdropItemIds(apiClient, userId, types, parentId) {
|
||||
|
||||
var key = 'backdrops2_' + userId + (types || '') + (parentId || '');
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
|||
ParentId: parentId
|
||||
};
|
||||
|
||||
ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
||||
apiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
|
||||
|
||||
var images = result.Items.map(function (i) {
|
||||
return {
|
||||
|
@ -61,31 +61,37 @@
|
|||
|
||||
function showBackdrop(type) {
|
||||
|
||||
getBackdropItemIds(Dashboard.getCurrentUserId(),
|
||||
var apiClient = ConnectionManager.currentApiClient();
|
||||
|
||||
if (!apiClient) {
|
||||
return;
|
||||
}
|
||||
|
||||
getBackdropItemIds(apiClient, Dashboard.getCurrentUserId(),
|
||||
type,
|
||||
LibraryMenu.getTopParentId()).done(function (images) {
|
||||
|
||||
if (images.length) {
|
||||
if (images.length) {
|
||||
|
||||
var index = getRandom(0, images.length - 1);
|
||||
var item = images[index];
|
||||
var index = getRandom(0, images.length - 1);
|
||||
var item = images[index];
|
||||
|
||||
var screenWidth = $(window).width();
|
||||
var screenWidth = $(window).width();
|
||||
|
||||
var imgUrl = ApiClient.getScaledImageUrl(item.id, {
|
||||
type: "Backdrop",
|
||||
tag: item.tag,
|
||||
maxWidth: screenWidth,
|
||||
quality: 80
|
||||
});
|
||||
var imgUrl = apiClient.getScaledImageUrl(item.id, {
|
||||
type: "Backdrop",
|
||||
tag: item.tag,
|
||||
maxWidth: screenWidth,
|
||||
quality: 80
|
||||
});
|
||||
|
||||
getElement().css('backgroundImage', 'url(\'' + imgUrl + '\')');
|
||||
getElement().css('backgroundImage', 'url(\'' + imgUrl + '\')');
|
||||
|
||||
} else {
|
||||
} else {
|
||||
|
||||
clearBackdrop();
|
||||
}
|
||||
});
|
||||
clearBackdrop();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function clearBackdrop() {
|
||||
|
|
|
@ -2,28 +2,7 @@
|
|||
|
||||
function onLoggedIn() {
|
||||
|
||||
ConnectionManager.connect().done(function (result) {
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
switch (result.State) {
|
||||
|
||||
case MediaBrowser.ConnectionState.Unavilable:
|
||||
// Login succeeded so this should never happen
|
||||
break;
|
||||
case MediaBrowser.ConnectionState.ServerSelection:
|
||||
window.location = 'selectserver.html';
|
||||
break;
|
||||
case MediaBrowser.ConnectionState.ServerSignIn:
|
||||
// This should never happen in connect mode
|
||||
break;
|
||||
case MediaBrowser.ConnectionState.SignedIn:
|
||||
window.location = 'selectserver.html';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
window.location = 'selectserver.html';
|
||||
}
|
||||
|
||||
function login(page, username, password) {
|
||||
|
|
|
@ -1195,7 +1195,9 @@
|
|||
cssClass += ' ' + LibraryBrowser.getUserDataCssClass(item.UserData.Key);
|
||||
}
|
||||
|
||||
if (options.showChildCountIndicator && item.ChildCount) {
|
||||
// The click through hasn't been working on chrome android
|
||||
// The > 1 can be removed once this is resolved
|
||||
if (options.showChildCountIndicator && item.ChildCount > 1) {
|
||||
cssClass += ' groupedCard';
|
||||
|
||||
if (item.Type == 'Series') {
|
||||
|
@ -1467,6 +1469,10 @@
|
|||
|
||||
getPosterViewDisplayName: function (item, displayAsSpecial, includeParentInfo) {
|
||||
|
||||
if (!item) {
|
||||
throw new Error("null item passed into getPosterViewDisplayName");
|
||||
}
|
||||
|
||||
var name = item.EpisodeTitle || item.Name;
|
||||
|
||||
if (item.Type == "TvChannel") {
|
||||
|
|
|
@ -1,5 +1,22 @@
|
|||
var MediaLibraryPage = {
|
||||
|
||||
onPageInit: function () {
|
||||
|
||||
var page = this;
|
||||
$('#selectCollectionType', page).on('change', function() {
|
||||
|
||||
var index = this.selectedIndex;
|
||||
if (index != -1) {
|
||||
|
||||
var name = this.options[index].innerHTML
|
||||
.replace('*', '')
|
||||
.replace('&', '&');
|
||||
|
||||
$('#txtValue', page).val(name);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
onPageShow: function () {
|
||||
|
||||
var page = this;
|
||||
|
@ -112,7 +129,7 @@
|
|||
|
||||
$('.collectionTypeFieldDescription').show();
|
||||
|
||||
MediaLibraryPage.getTextValue(Globalize.translate('HeaderAddMediaFolder'), Globalize.translate('HeaderAddMediaFolderHelp'), "", true, function (name, type) {
|
||||
MediaLibraryPage.getTextValue(Globalize.translate('HeaderAddMediaFolder'), Globalize.translate('LabelName'), "", true, function (name, type) {
|
||||
|
||||
MediaLibraryPage.lastVirtualFolderName = name;
|
||||
|
||||
|
@ -170,9 +187,7 @@
|
|||
|
||||
$('#selectCollectionType', popup).html(MediaLibraryPage.getCollectionTypeOptionsHtml()).val('').selectmenu('refresh');
|
||||
|
||||
popup.on("popupafteropen", function () {
|
||||
$('#textEntryForm input:first', this).focus();
|
||||
}).on("popupafterclose", function () {
|
||||
popup.on("popupafterclose", function () {
|
||||
$(this).off("popupafterclose").off("click");
|
||||
$('#textEntryForm', this).off("submit");
|
||||
}).popup("open");
|
||||
|
@ -322,7 +337,7 @@
|
|||
}
|
||||
};
|
||||
|
||||
$(document).on('pageshow', ".mediaLibraryPage", MediaLibraryPage.onPageShow);
|
||||
$(document).on('pageinit', ".mediaLibraryPage", MediaLibraryPage.onPageInit).on('pageshow', ".mediaLibraryPage", MediaLibraryPage.onPageShow);
|
||||
|
||||
var WizardLibraryPage = {
|
||||
|
||||
|
|
|
@ -15,17 +15,23 @@
|
|||
|
||||
Dashboard.setPageTitle(user.Name);
|
||||
|
||||
var imageUrl;
|
||||
|
||||
if (user.PrimaryImageTag) {
|
||||
|
||||
var imageUrl = ApiClient.getUserImageUrl(user.Id, {
|
||||
imageUrl = ApiClient.getUserImageUrl(user.Id, {
|
||||
height: 200,
|
||||
tag: user.PrimaryImageTag,
|
||||
type: "Primary"
|
||||
});
|
||||
|
||||
$('#fldImage', page).show().html('').html("<img width='140px' src='" + imageUrl + "' />");
|
||||
} else {
|
||||
imageUrl = "css/images/logindefault.png";
|
||||
}
|
||||
|
||||
$('#fldImage', page).show().html('').html("<img width='140px' src='" + imageUrl + "' />");
|
||||
|
||||
|
||||
if (user.ConnectLinkType == 'Guest') {
|
||||
|
||||
$('.newImageForm', page).hide();
|
||||
|
@ -40,10 +46,9 @@
|
|||
$('.connectMessage', page).hide();
|
||||
|
||||
} else {
|
||||
$('.newImageSection', page).show();
|
||||
$('#fldImage', page).hide().html('');
|
||||
$('.newImageForm', page).show();
|
||||
$('#btnDeleteImage', page).hide();
|
||||
$('#headerUploadNewImage', page).hide();
|
||||
$('#headerUploadNewImage', page).show();
|
||||
$('.connectMessage', page).hide();
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ var Dashboard = {
|
|||
|
||||
Dashboard.alert({
|
||||
message: Globalize.translate('MessageLoggedOutParentalControl'),
|
||||
callback: function() {
|
||||
callback: function () {
|
||||
Dashboard.logout(false);
|
||||
}
|
||||
});
|
||||
|
@ -82,6 +82,11 @@ var Dashboard = {
|
|||
}
|
||||
},
|
||||
|
||||
onApiClientServerAddressChanged: function () {
|
||||
|
||||
Dashboard.serverAddress(ApiClient.serverAddress());
|
||||
},
|
||||
|
||||
getCurrentUser: function () {
|
||||
|
||||
if (!Dashboard.getUserPromise) {
|
||||
|
@ -1236,7 +1241,8 @@ var Dashboard = {
|
|||
|
||||
$(apiClient).off('.dashboard')
|
||||
.on("websocketmessage.dashboard", Dashboard.onWebSocketMessageReceived)
|
||||
.on('requestfail.dashboard', Dashboard.onRequestFail);
|
||||
.on('requestfail.dashboard', Dashboard.onRequestFail)
|
||||
.on('serveraddresschanged.dashboard', Dashboard.onApiClientServerAddressChanged);
|
||||
|
||||
// TODO: Improve with http://webpjs.appspot.com/
|
||||
apiClient.supportsWebP($.browser.chrome);
|
||||
|
|
|
@ -2,47 +2,21 @@
|
|||
|
||||
var currentUser;
|
||||
|
||||
function loadUser(page, user, loggedInUser) {
|
||||
function loadUser(page, user) {
|
||||
|
||||
currentUser = user;
|
||||
|
||||
if (!loggedInUser.Configuration.IsAdministrator) {
|
||||
|
||||
$('#fldIsAdmin', page).hide();
|
||||
$('#featureAccessFields', page).hide();
|
||||
$('#accessControlDiv', page).hide();
|
||||
|
||||
} else {
|
||||
|
||||
$('#accessControlDiv', page).show();
|
||||
$('#fldIsAdmin', page).show();
|
||||
$('#featureAccessFields', page).show();
|
||||
$('.lnkEditUserPreferencesContainer', page).show();
|
||||
}
|
||||
|
||||
if (user.Id && loggedInUser.Configuration.IsAdministrator && user.ConnectLinkType != 'Guest') {
|
||||
$('#fldConnectInfo', page).show();
|
||||
} else {
|
||||
$('#fldConnectInfo', page).hide();
|
||||
}
|
||||
|
||||
if (user.ConnectLinkType == 'Guest') {
|
||||
$('#fldConnectInfo', page).hide();
|
||||
$('#txtUserName', page).prop("disabled", "disabled");
|
||||
} else {
|
||||
$('#txtUserName', page).prop("disabled", "").removeAttr('disabled');
|
||||
$('#fldConnectInfo', page).show();
|
||||
}
|
||||
|
||||
if (!loggedInUser.Configuration.IsAdministrator || !user.Id) {
|
||||
$('.lnkEditUserPreferences', page).attr('href', 'mypreferencesdisplay.html?userId=' + user.Id);
|
||||
|
||||
$('.lnkEditUserPreferencesContainer', page).hide();
|
||||
|
||||
} else {
|
||||
|
||||
$('.lnkEditUserPreferencesContainer', page).show();
|
||||
$('.lnkEditUserPreferences', page).attr('href', 'mypreferencesdisplay.html?userId=' + user.Id);
|
||||
}
|
||||
|
||||
Dashboard.setPageTitle(user.Name || Globalize.translate('AddUser'));
|
||||
Dashboard.setPageTitle(user.Name);
|
||||
|
||||
$('#txtUserName', page).val(user.Name);
|
||||
$('#txtConnectUserName', page).val(currentUser.ConnectUserName);
|
||||
|
@ -68,24 +42,17 @@
|
|||
|
||||
Dashboard.hideLoadingMsg();
|
||||
|
||||
var userId = getParameterByName("userId");
|
||||
var currentConnectUsername = currentUser.ConnectUserName || '';
|
||||
var enteredConnectUsername = $('#txtConnectUserName', page).val();
|
||||
|
||||
if (userId) {
|
||||
|
||||
var currentConnectUsername = currentUser.ConnectUserName || '';
|
||||
var enteredConnectUsername = $('#txtConnectUserName', page).val();
|
||||
|
||||
if (currentConnectUsername == enteredConnectUsername) {
|
||||
Dashboard.alert(Globalize.translate('SettingsSaved'));
|
||||
} else {
|
||||
|
||||
ConnectHelper.updateUserInfo(user, $('#txtConnectUserName', page).val(), function () {
|
||||
|
||||
loadData(page);
|
||||
});
|
||||
}
|
||||
if (currentConnectUsername == enteredConnectUsername) {
|
||||
Dashboard.alert(Globalize.translate('SettingsSaved'));
|
||||
} else {
|
||||
Dashboard.navigate("userprofiles.html");
|
||||
|
||||
ConnectHelper.updateUserInfo(user, $('#txtConnectUserName', page).val(), function () {
|
||||
|
||||
loadData(page);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,18 +73,9 @@
|
|||
user.Configuration.EnableContentDeletion = $('#chkEnableContentDeletion', page).checked();
|
||||
user.Configuration.EnableUserPreferenceAccess = !$('#chkDisableUserPreferences', page).checked();
|
||||
|
||||
var userId = getParameterByName("userId");
|
||||
|
||||
if (userId) {
|
||||
ApiClient.updateUser(user).done(function () {
|
||||
onSaveComplete(page, user);
|
||||
});
|
||||
} else {
|
||||
ApiClient.createUser(user).done(function (newUser) {
|
||||
Dashboard.navigate("useredit.html?userId=" + newUser.Id);
|
||||
|
||||
});
|
||||
}
|
||||
ApiClient.updateUser(user).done(function () {
|
||||
onSaveComplete(page, user);
|
||||
});
|
||||
}
|
||||
|
||||
function editUserPage() {
|
||||
|
@ -143,36 +101,16 @@
|
|||
|
||||
var userId = getParameterByName("userId");
|
||||
|
||||
if (userId) {
|
||||
|
||||
return ApiClient.getUser(userId);
|
||||
}
|
||||
|
||||
var deferred = $.Deferred();
|
||||
|
||||
deferred.resolveWith(null, [{
|
||||
Configuration: {
|
||||
IsAdministrator: false,
|
||||
EnableLiveTvManagement: true,
|
||||
EnableLiveTvAccess: true,
|
||||
EnableRemoteControlOfOtherUsers: true,
|
||||
EnableMediaPlayback: true
|
||||
}
|
||||
}]);
|
||||
|
||||
return deferred.promise();
|
||||
return ApiClient.getUser(userId);
|
||||
}
|
||||
|
||||
function loadData(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
var promise1 = getUser();
|
||||
var promise2 = Dashboard.getCurrentUser();
|
||||
getUser().done(function (user) {
|
||||
|
||||
$.when(promise1, promise2).done(function (response1, response2) {
|
||||
|
||||
loadUser(page, response1[0] || response1, response2[0]);
|
||||
loadUser(page, user);
|
||||
|
||||
});
|
||||
}
|
||||
|
@ -183,27 +121,6 @@
|
|||
|
||||
var page = this;
|
||||
|
||||
var userId = getParameterByName("userId");
|
||||
|
||||
if (userId) {
|
||||
$('#userProfileNavigation', page).show();
|
||||
} else {
|
||||
$('#userProfileNavigation', page).hide();
|
||||
}
|
||||
|
||||
Dashboard.getCurrentUser().done(function (loggedInUser) {
|
||||
|
||||
if (loggedInUser.Configuration.IsAdministrator) {
|
||||
$('#lnkParentalControl', page).show();
|
||||
} else {
|
||||
$('#lnkParentalControl', page).hide();
|
||||
}
|
||||
});
|
||||
|
||||
}).on('pageshow', "#editUserPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
loadData(page);
|
||||
|
||||
});
|
||||
|
@ -254,7 +171,7 @@
|
|||
},
|
||||
dataType: 'json'
|
||||
|
||||
}).done(function(result) {
|
||||
}).done(function (result) {
|
||||
|
||||
var msgKey = result.IsPending ? 'MessagePendingMediaBrowserAccountAdded' : 'MessageMediaBrowserAccountAdded';
|
||||
|
||||
|
|
54
dashboard-ui/scripts/usernew.js
Normal file
54
dashboard-ui/scripts/usernew.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
(function ($, window, document) {
|
||||
|
||||
function loadUser(page, user) {
|
||||
|
||||
$('#txtUserName', page).val(user.Name);
|
||||
}
|
||||
|
||||
function saveUser(user, page) {
|
||||
|
||||
user.Name = $('#txtUserName', page).val();
|
||||
|
||||
ApiClient.createUser(user).done(function (newUser) {
|
||||
Dashboard.navigate("useredit.html?userId=" + newUser.Id);
|
||||
});
|
||||
}
|
||||
|
||||
function newUserPage() {
|
||||
|
||||
var self = this;
|
||||
|
||||
self.onSubmit = function () {
|
||||
|
||||
var page = $(this).parents('.page');
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
saveUser(getUser(), page);
|
||||
|
||||
// Disable default form submission
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
function getUser() {
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
function loadData(page) {
|
||||
|
||||
loadUser(page, getUser());
|
||||
}
|
||||
|
||||
window.NewUserPage = new newUserPage();
|
||||
|
||||
$(document).on('pageshow', "#newUserPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
loadData(page);
|
||||
|
||||
});
|
||||
|
||||
})(jQuery, window, document);
|
33
dashboard-ui/scripts/userpassword.js
Normal file
33
dashboard-ui/scripts/userpassword.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
(function ($, window, document) {
|
||||
|
||||
function loadUser(page, user) {
|
||||
|
||||
Dashboard.setPageTitle(user.Name);
|
||||
|
||||
$('.lnkEditUserPreferences', page).attr('href', 'myprofile.html?userId=' + user.Id);
|
||||
|
||||
Dashboard.hideLoadingMsg();
|
||||
}
|
||||
|
||||
function loadData(page) {
|
||||
|
||||
Dashboard.showLoadingMsg();
|
||||
|
||||
var userId = getParameterByName("userId");
|
||||
|
||||
ApiClient.getUser(userId).done(function (user) {
|
||||
|
||||
loadUser(page, user);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
$(document).on('pagebeforeshow', "#userPasswordPage", function () {
|
||||
|
||||
var page = this;
|
||||
|
||||
loadData(page);
|
||||
|
||||
});
|
||||
|
||||
})(jQuery, window, document);
|
Loading…
Add table
Add a link
Reference in a new issue