1
0
Fork 0
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:
Luke Pulverenti 2014-10-29 18:01:02 -04:00
parent 132a02a48d
commit 6b72ea474c
19 changed files with 325 additions and 224 deletions

View file

@ -40,20 +40,18 @@
<div data-role="content"> <div data-role="content">
<form id="textEntryForm"> <form id="textEntryForm">
<div id="fldCollectionType" style="margin:.5em 0 1.5em;">
<label for="selectCollectionType">${LabelType}</label>
<select id="selectCollectionType" name="selectCollectionType" data-mini="true"></select>
<div class="collectionTypeFieldDescription fieldDescription">
${MediaFolderHelpPluginRequired}
</div>
</div>
<p> <p>
<label id="lblValue" for="txtValue"></label> <label id="lblValue" for="txtValue"></label>
<input type="text" name="txtValue" id="txtValue" required="required" /> <input type="text" id="txtValue" required="required" />
</p> </p>
<br/>
<p id="fldCollectionType">
<label for="selectCollectionType">${LabelFolderType}</label>
<select id="selectCollectionType" name="selectCollectionType"></select>
</p>
<p class="collectionTypeFieldDescription">
${MediaFolderHelpPluginRequired}
</p>
<p> <p>
<button type="submit" data-theme="b" data-icon="check"> <button type="submit" data-theme="b" data-icon="check">
${ButtonOk} ${ButtonOk}

View file

@ -16,7 +16,7 @@
return Math.floor(Math.random() * (max - min) + min); 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 || ''); var key = 'backdrops2_' + userId + (types || '') + (parentId || '');
@ -42,7 +42,7 @@
ParentId: parentId 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) { var images = result.Items.map(function (i) {
return { return {
@ -61,7 +61,13 @@
function showBackdrop(type) { function showBackdrop(type) {
getBackdropItemIds(Dashboard.getCurrentUserId(), var apiClient = ConnectionManager.currentApiClient();
if (!apiClient) {
return;
}
getBackdropItemIds(apiClient, Dashboard.getCurrentUserId(),
type, type,
LibraryMenu.getTopParentId()).done(function (images) { LibraryMenu.getTopParentId()).done(function (images) {
@ -72,7 +78,7 @@
var screenWidth = $(window).width(); var screenWidth = $(window).width();
var imgUrl = ApiClient.getScaledImageUrl(item.id, { var imgUrl = apiClient.getScaledImageUrl(item.id, {
type: "Backdrop", type: "Backdrop",
tag: item.tag, tag: item.tag,
maxWidth: screenWidth, maxWidth: screenWidth,

View file

@ -2,28 +2,7 @@
function onLoggedIn() { 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'; 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;
}
});
} }
function login(page, username, password) { function login(page, username, password) {

View file

@ -1195,7 +1195,9 @@
cssClass += ' ' + LibraryBrowser.getUserDataCssClass(item.UserData.Key); 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'; cssClass += ' groupedCard';
if (item.Type == 'Series') { if (item.Type == 'Series') {
@ -1467,6 +1469,10 @@
getPosterViewDisplayName: function (item, displayAsSpecial, includeParentInfo) { getPosterViewDisplayName: function (item, displayAsSpecial, includeParentInfo) {
if (!item) {
throw new Error("null item passed into getPosterViewDisplayName");
}
var name = item.EpisodeTitle || item.Name; var name = item.EpisodeTitle || item.Name;
if (item.Type == "TvChannel") { if (item.Type == "TvChannel") {

View file

@ -1,5 +1,22 @@
var MediaLibraryPage = { 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('&amp;', '&');
$('#txtValue', page).val(name);
}
});
},
onPageShow: function () { onPageShow: function () {
var page = this; var page = this;
@ -112,7 +129,7 @@
$('.collectionTypeFieldDescription').show(); $('.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; MediaLibraryPage.lastVirtualFolderName = name;
@ -170,9 +187,7 @@
$('#selectCollectionType', popup).html(MediaLibraryPage.getCollectionTypeOptionsHtml()).val('').selectmenu('refresh'); $('#selectCollectionType', popup).html(MediaLibraryPage.getCollectionTypeOptionsHtml()).val('').selectmenu('refresh');
popup.on("popupafteropen", function () { popup.on("popupafterclose", function () {
$('#textEntryForm input:first', this).focus();
}).on("popupafterclose", function () {
$(this).off("popupafterclose").off("click"); $(this).off("popupafterclose").off("click");
$('#textEntryForm', this).off("submit"); $('#textEntryForm', this).off("submit");
}).popup("open"); }).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 = { var WizardLibraryPage = {

View file

@ -15,17 +15,23 @@
Dashboard.setPageTitle(user.Name); Dashboard.setPageTitle(user.Name);
var imageUrl;
if (user.PrimaryImageTag) { if (user.PrimaryImageTag) {
var imageUrl = ApiClient.getUserImageUrl(user.Id, { imageUrl = ApiClient.getUserImageUrl(user.Id, {
height: 200, height: 200,
tag: user.PrimaryImageTag, tag: user.PrimaryImageTag,
type: "Primary" 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') { if (user.ConnectLinkType == 'Guest') {
$('.newImageForm', page).hide(); $('.newImageForm', page).hide();
@ -40,10 +46,9 @@
$('.connectMessage', page).hide(); $('.connectMessage', page).hide();
} else { } else {
$('.newImageSection', page).show(); $('.newImageForm', page).show();
$('#fldImage', page).hide().html('');
$('#btnDeleteImage', page).hide(); $('#btnDeleteImage', page).hide();
$('#headerUploadNewImage', page).hide(); $('#headerUploadNewImage', page).show();
$('.connectMessage', page).hide(); $('.connectMessage', page).hide();
} }

View file

@ -56,7 +56,7 @@ var Dashboard = {
Dashboard.alert({ Dashboard.alert({
message: Globalize.translate('MessageLoggedOutParentalControl'), message: Globalize.translate('MessageLoggedOutParentalControl'),
callback: function() { callback: function () {
Dashboard.logout(false); Dashboard.logout(false);
} }
}); });
@ -82,6 +82,11 @@ var Dashboard = {
} }
}, },
onApiClientServerAddressChanged: function () {
Dashboard.serverAddress(ApiClient.serverAddress());
},
getCurrentUser: function () { getCurrentUser: function () {
if (!Dashboard.getUserPromise) { if (!Dashboard.getUserPromise) {
@ -1236,7 +1241,8 @@ var Dashboard = {
$(apiClient).off('.dashboard') $(apiClient).off('.dashboard')
.on("websocketmessage.dashboard", Dashboard.onWebSocketMessageReceived) .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/ // TODO: Improve with http://webpjs.appspot.com/
apiClient.supportsWebP($.browser.chrome); apiClient.supportsWebP($.browser.chrome);

View file

@ -2,47 +2,21 @@
var currentUser; var currentUser;
function loadUser(page, user, loggedInUser) { function loadUser(page, user) {
currentUser = 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') { if (user.ConnectLinkType == 'Guest') {
$('#fldConnectInfo', page).hide();
$('#txtUserName', page).prop("disabled", "disabled"); $('#txtUserName', page).prop("disabled", "disabled");
} else { } else {
$('#txtUserName', page).prop("disabled", "").removeAttr('disabled'); $('#txtUserName', page).prop("disabled", "").removeAttr('disabled');
$('#fldConnectInfo', page).show();
} }
if (!loggedInUser.Configuration.IsAdministrator || !user.Id) {
$('.lnkEditUserPreferencesContainer', page).hide();
} else {
$('.lnkEditUserPreferencesContainer', page).show();
$('.lnkEditUserPreferences', page).attr('href', 'mypreferencesdisplay.html?userId=' + user.Id); $('.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); $('#txtUserName', page).val(user.Name);
$('#txtConnectUserName', page).val(currentUser.ConnectUserName); $('#txtConnectUserName', page).val(currentUser.ConnectUserName);
@ -68,10 +42,6 @@
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
var userId = getParameterByName("userId");
if (userId) {
var currentConnectUsername = currentUser.ConnectUserName || ''; var currentConnectUsername = currentUser.ConnectUserName || '';
var enteredConnectUsername = $('#txtConnectUserName', page).val(); var enteredConnectUsername = $('#txtConnectUserName', page).val();
@ -84,9 +54,6 @@
loadData(page); loadData(page);
}); });
} }
} else {
Dashboard.navigate("userprofiles.html");
}
} }
function saveUser(user, page) { function saveUser(user, page) {
@ -106,18 +73,9 @@
user.Configuration.EnableContentDeletion = $('#chkEnableContentDeletion', page).checked(); user.Configuration.EnableContentDeletion = $('#chkEnableContentDeletion', page).checked();
user.Configuration.EnableUserPreferenceAccess = !$('#chkDisableUserPreferences', page).checked(); user.Configuration.EnableUserPreferenceAccess = !$('#chkDisableUserPreferences', page).checked();
var userId = getParameterByName("userId");
if (userId) {
ApiClient.updateUser(user).done(function () { ApiClient.updateUser(user).done(function () {
onSaveComplete(page, user); onSaveComplete(page, user);
}); });
} else {
ApiClient.createUser(user).done(function (newUser) {
Dashboard.navigate("useredit.html?userId=" + newUser.Id);
});
}
} }
function editUserPage() { function editUserPage() {
@ -143,36 +101,16 @@
var userId = getParameterByName("userId"); var userId = getParameterByName("userId");
if (userId) {
return ApiClient.getUser(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();
}
function loadData(page) { function loadData(page) {
Dashboard.showLoadingMsg(); Dashboard.showLoadingMsg();
var promise1 = getUser(); getUser().done(function (user) {
var promise2 = Dashboard.getCurrentUser();
$.when(promise1, promise2).done(function (response1, response2) { loadUser(page, user);
loadUser(page, response1[0] || response1, response2[0]);
}); });
} }
@ -183,27 +121,6 @@
var page = this; 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); loadData(page);
}); });
@ -254,7 +171,7 @@
}, },
dataType: 'json' dataType: 'json'
}).done(function(result) { }).done(function (result) {
var msgKey = result.IsPending ? 'MessagePendingMediaBrowserAccountAdded' : 'MessageMediaBrowserAccountAdded'; var msgKey = result.IsPending ? 'MessagePendingMediaBrowserAccountAdded' : 'MessageMediaBrowserAccountAdded';

View 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);

View 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);

View file

@ -8,7 +8,8 @@
Unavilable: 0, Unavilable: 0,
ServerSelection: 1, ServerSelection: 1,
ServerSignIn: 2, ServerSignIn: 2,
SignedIn: 3 SignedIn: 3,
ConnectSignIn: 4
}; };
globalScope.MediaBrowser.ConnectionMode = { globalScope.MediaBrowser.ConnectionMode = {
@ -519,60 +520,41 @@
if (servers.length == 1) { if (servers.length == 1) {
if (!servers[0].DateLastAccessed && !self.connectUserId()) {
deferred.resolveWith(null, [
{
Servers: servers,
State: MediaBrowser.ConnectionState.ServerSelection,
ConnectUser: self.connectUser()
}
]);
} else {
self.connectToServer(servers[0]).done(function (result) { self.connectToServer(servers[0]).done(function (result) {
if (result.State == MediaBrowser.ConnectionState.Unavailable) { if (result.State == MediaBrowser.ConnectionState.Unavailable) {
result.State = MediaBrowser.ConnectionState.ServerSelection;
result.State = result.ConnectUser == null ?
MediaBrowser.ConnectionState.ConnectSignIn :
MediaBrowser.ConnectionState.ServerSelection;
} }
deferred.resolveWith(null, [result]); deferred.resolveWith(null, [result]);
}).fail(function () {
deferred.resolveWith(null, [
{
Servers: servers,
State: MediaBrowser.ConnectionState.ServerSelection,
ConnectUser: self.connectUser()
}
]);
}); });
}
} else { } else {
// Find the first server with a saved access token // Find the first server with a saved access token
var currentServer = servers.filter(function (s) { var currentServer = servers.filter(function (s) {
return s.AccessToken; return s.AccessToken || (s.ExchangeToken && self.connectUser());
})[0]; })[0];
if (currentServer) { if (currentServer) {
self.connectToServer(currentServer).done(function (result) { self.connectToServer(currentServer).done(function (result) {
if (result.State == MediaBrowser.ConnectionState.SignedIn) {
deferred.resolveWith(null, [result]); deferred.resolveWith(null, [result]);
}).fail(function () { } else {
deferred.resolveWith(null, [ deferred.resolveWith(null, [
{ {
Servers: servers, Servers: servers,
State: MediaBrowser.ConnectionState.ServerSelection, State: (!servers.length && !self.connectUser()) ? MediaBrowser.ConnectionState.ConnectSignIn : MediaBrowser.ConnectionState.ServerSelection,
ConnectUser: self.connectUser() ConnectUser: self.connectUser()
}]);
} }
]);
}); });
} else { } else {
@ -580,7 +562,7 @@
deferred.resolveWith(null, [ deferred.resolveWith(null, [
{ {
Servers: servers, Servers: servers,
State: (!servers.length && !self.connectUser()) ? MediaBrowser.ConnectionState.Unavailable : MediaBrowser.ConnectionState.ServerSelection, State: (!servers.length && !self.connectUser()) ? MediaBrowser.ConnectionState.ConnectSignIn : MediaBrowser.ConnectionState.ServerSelection,
ConnectUser: self.connectUser() ConnectUser: self.connectUser()
}]); }]);
} }

View file

@ -31,7 +31,18 @@
/** /**
* Gets the server address. * Gets the server address.
*/ */
self.serverAddress = function () { self.serverAddress = function (val) {
if (val != null) {
var changed = val != serverAddress;
serverAddress = val;
if (changed) {
$(this).trigger('serveraddresschanged');
}
}
return serverAddress; return serverAddress;
}; };
@ -141,6 +152,7 @@
} }
if (!self.enableAutomaticNetwork || !self.serverInfo() || self.connectionMode == null) { if (!self.enableAutomaticNetwork || !self.serverInfo() || self.connectionMode == null) {
console.log('Requesting url without automatic networking: ' + request.url);
return $.ajax(request).fail(onRequestFail); return $.ajax(request).fail(onRequestFail);
} }
@ -172,6 +184,8 @@
self.serverInfo().LocalAddress : self.serverInfo().LocalAddress :
self.serverInfo().RemoteAddress; self.serverInfo().RemoteAddress;
console.log("Attempting reconnection to " + url);
$.ajax({ $.ajax({
type: "GET", type: "GET",
@ -182,6 +196,8 @@
}).done(function () { }).done(function () {
console.log("Reconnect succeeeded to " + url);
self.connectionMode = connectionMode; self.connectionMode = connectionMode;
self.serverAddress(url); self.serverAddress(url);
@ -189,6 +205,8 @@
}).fail(function () { }).fail(function () {
console.log("Reconnect attempt failed to " + url);
if (currentRetryCount <= 6) { if (currentRetryCount <= 6) {
var newConnectionMode = switchConnectionMode(connectionMode); var newConnectionMode = switchConnectionMode(connectionMode);
@ -234,20 +252,31 @@
request.url = replaceServerAddress(request.url, baseUrl); request.url = replaceServerAddress(request.url, baseUrl);
} }
console.log("Requesting " + request.url);
request.timeout = 3000;
$.ajax(request).done(function (response) { $.ajax(request).done(function (response) {
deferred.resolveWith(null, [response]); deferred.resolve(response, 0);
}).fail(function (e, textStatus) { }).fail(function (e, textStatus) {
console.log("Request failed with textStatus " + textStatus + " to " + request.url);
var statusCode = parseInt(e.status || '0');
var isUserErrorCode = statusCode >= 400 && statusCode < 500;
// http://api.jquery.com/jQuery.ajax/ // http://api.jquery.com/jQuery.ajax/
if (enableReconnection && textStatus == "timeout") { if (enableReconnection && !isUserErrorCode) {
tryReconnect().done(function () { tryReconnect().done(function () {
console.log("Reconnect succeesed");
self.ajaxWithFailover(request, deferred, false, true); self.ajaxWithFailover(request, deferred, false, true);
}).fail(function () { }).fail(function () {
console.log("Reconnect failed");
onRetryRequestFail(request); onRetryRequestFail(request);
deferred.reject(); deferred.reject();

View file

@ -9,10 +9,11 @@
<div data-role="content"> <div data-role="content">
<div class="content-primary"> <div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" id="userProfileNavigation" style="display: none;" data-mini="true"> <div data-role="controlgroup" data-type="horizontal" class="localnav" id="userProfileNavigation" data-mini="true">
<a href="#" data-role="button" class="ui-btn-active">${TabProfile}</a> <a href="#" data-role="button" class="ui-btn-active">${TabProfile}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userlibraryaccess.html', true);" id="lnkParentalControl" style="display: none;">${TabLibraryAccess}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('userlibraryaccess.html', true);">${TabLibraryAccess}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userparentalcontrol.html', true);">${TabParentalControl}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('userparentalcontrol.html', true);">${TabParentalControl}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userpassword.html', true);">${TabPassword}</a>
</div> </div>
<p class="lnkEditUserPreferencesContainer"> <p class="lnkEditUserPreferencesContainer">
<a class="lnkEditUserPreferences" href="#" target="_blank">${ButtonEditOtherUserPreferences}</a> <a class="lnkEditUserPreferences" href="#" target="_blank">${ButtonEditOtherUserPreferences}</a>
@ -33,7 +34,7 @@
</div> </div>
<br /> <br />
</li> </li>
<li id="fldIsAdmin" style="display: none;"> <li>
<input type="checkbox" id="chkIsAdmin" name="chkIsAdmin" /> <input type="checkbox" id="chkIsAdmin" name="chkIsAdmin" />
<label for="chkIsAdmin">${OptionAllowUserToManageServer}</label> <label for="chkIsAdmin">${OptionAllowUserToManageServer}</label>
</li> </li>
@ -52,7 +53,7 @@
<label for="chkEnableRemoteControlOtherUsers">${OptionAllowRemoteControlOthers}</label> <label for="chkEnableRemoteControlOtherUsers">${OptionAllowRemoteControlOthers}</label>
</fieldset> </fieldset>
<br /> <br />
<div id="accessControlDiv" style="display: none" data-role="collapsible"> <div id="accessControlDiv" data-role="collapsible">
<h2>${HeaderAdvancedControl}</h2> <h2>${HeaderAdvancedControl}</h2>
<div id="fldIsEnabled" style="margin: 1em 0 2em;"> <div id="fldIsEnabled" style="margin: 1em 0 2em;">
<input type="checkbox" id="chkDisabled" name="chkDisabled" data-mini="true" /> <input type="checkbox" id="chkDisabled" name="chkDisabled" data-mini="true" />

View file

@ -12,6 +12,7 @@
<a href="#" data-role="button" onclick="Dashboard.navigate('useredit.html', true);">${TabProfile}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('useredit.html', true);">${TabProfile}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userlibraryaccess.html', true);" class="ui-btn-active">${TabLibraryAccess}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('userlibraryaccess.html', true);" class="ui-btn-active">${TabLibraryAccess}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userparentalcontrol.html', true);">${TabParentalControl}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('userparentalcontrol.html', true);">${TabParentalControl}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userpassword.html', true);">${TabPassword}</a>
</div> </div>
<form class="userLibraryAccessForm"> <form class="userLibraryAccessForm">

38
dashboard-ui/usernew.html Normal file
View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>${TitleNewUser}</title>
</head>
<body>
<div id="newUserPage" data-role="page" class="page type-interior userProfilesPage">
<div data-role="content">
<div class="content-primary">
<form id="newUserProfileForm">
<ul data-role="listview" class="ulForm">
<li id="fldUserName">
<label for="txtUserName">${LabelName}</label>
<input id="txtUserName" required="required" type="text" />
</li>
</ul>
<br />
<ul data-role="listview" class="ulForm">
<li>
<button type="submit" data-theme="b" data-icon="check" data-mini="true">
${ButtonSave}
</button>
<button type="button" onclick="history.back();" data-icon="delete" data-mini="true">
${ButtonCancel}
</button>
</li>
</ul>
</form>
</div>
</div>
<script type="text/javascript">
$('#newUserProfileForm').on('submit', NewUserPage.onSubmit);
</script>
</div>
</body>
</html>

View file

@ -12,6 +12,7 @@
<a href="#" data-role="button" onclick="Dashboard.navigate('useredit.html', true);">${TabProfile}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('useredit.html', true);">${TabProfile}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userlibraryaccess.html', true);">${TabLibraryAccess}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('userlibraryaccess.html', true);">${TabLibraryAccess}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userparentalcontrol.html', true);" class="ui-btn-active">${TabParentalControl}</a> <a href="#" data-role="button" onclick="Dashboard.navigate('userparentalcontrol.html', true);" class="ui-btn-active">${TabParentalControl}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userpassword.html', true);">${TabPassword}</a>
</div> </div>
<form class="userParentalControlForm"> <form class="userParentalControlForm">

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="userPasswordPage" data-role="page" class="page type-interior userProfilesPage">
<div data-role="content">
<div class="content-primary">
<div data-role="controlgroup" data-type="horizontal" class="localnav" data-mini="true">
<a href="#" data-role="button" onclick="Dashboard.navigate('useredit.html', true);">${TabProfile}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userlibraryaccess.html', true);">${TabLibraryAccess}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userparentalcontrol.html', true);">${TabParentalControl}</a>
<a href="#" data-role="button" onclick="Dashboard.navigate('userpassword.html', true);" class="ui-btn-active">${TabPassword}</a>
</div>
<div class="readOnlyContent">
<p>${HeaderDashboardUserPassword}</p>
<p>
<a data-role="button" data-icon="lock" class="lnkEditUserPreferences" href="#" target="_blank">${ButtonConfigurePassword}</a>
</p>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -16,7 +16,7 @@
<div class="ui-bar-a" style="padding: 0 1em;"> <div class="ui-bar-a" style="padding: 0 1em;">
<h3 style="margin:.6em 0;font-size:16px;font-weight:500;"> <h3 style="margin:.6em 0;font-size:16px;font-weight:500;">
<span style="vertical-align:middle;">${HeaderUsers}</span> <span style="vertical-align:middle;">${HeaderUsers}</span>
<a data-role="button" data-icon="plus" href="useredit.html" data-inline="true" data-mini="true" data-iconpos="notext" style="margin: 0 .5em; vertical-align:middle;"> <a data-role="button" data-icon="plus" href="usernew.html" data-inline="true" data-mini="true" data-iconpos="notext" style="margin: 0 .5em; vertical-align:middle;">
${ButtonAddUser} ${ButtonAddUser}
</a> </a>
</h3> </h3>

View file

@ -29,20 +29,22 @@
<div data-role="content"> <div data-role="content">
<form id="textEntryForm"> <form id="textEntryForm">
<div id="fldCollectionType" style="margin:.5em 0 1.5em;">
<label for="selectCollectionType">${LabelType}</label>
<select id="selectCollectionType" name="selectCollectionType" data-mini="true"></select>
<div class="collectionTypeFieldDescription fieldDescription">
${MediaFolderHelpPluginRequired}
</div>
</div>
<p> <p>
<label id="lblValue" for="txtValue"></label> <label id="lblValue" for="txtValue"></label>
<input type="text" name="txtValue" id="txtValue" required="required" /> <input type="text" id="txtValue" required="required" />
</p> </p>
<br />
<p id="fldCollectionType">
<label for="selectCollectionType">${LabelFolderType}</label>
<select id="selectCollectionType" name="selectCollectionType"></select>
</p>
<p class="collectionTypeFieldDescription">${MediaFolderHelpPluginRequired}</p>
<p> <p>
<button type="submit" data-theme="b" data-icon="check">${ButtonOk}</button> <button type="submit" data-theme="b" data-icon="check">
${ButtonOk}
</button>
<button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');"> <button type="button" data-icon="delete" onclick="$(this).parents('.popup').popup('close');">
${ButtonCancel} ${ButtonCancel}
</button> </button>