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

update tabs

This commit is contained in:
Luke Pulverenti 2016-09-01 21:54:30 -04:00
parent 4e2c7058ca
commit 06b766604b
5 changed files with 75 additions and 104 deletions

View file

@ -9,7 +9,7 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
text-transform: none !important; text-transform: none !important;
font-size: 12px !important; font-size: 12.4px !important;
padding: 0 !important; padding: 0 !important;
margin: 0 !important; margin: 0 !important;
text-align: center; text-align: center;

View file

@ -170,6 +170,9 @@
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
break; break;
case 6:
Dashboard.navigate('dashboard.html');
break;
default: default:
break; break;
} }
@ -214,7 +217,7 @@
<button is="emby-button" class="dockedtabs-tab-button emby-tab-button" data-index="1">\ <button is="emby-button" class="dockedtabs-tab-button emby-tab-button" data-index="1">\
<div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">dvr</i><div>' + globalize.translate('HeaderLibraries') + '</div></div>\ <div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">dvr</i><div>' + globalize.translate('HeaderLibraries') + '</div></div>\
</button>\ </button>\
<button is="emby-button" class="dockedtabs-tab-button emby-tab-button docked-tab-livetv' + liveTVButtonClass + '" data-index="2">\ <button is="emby-button" class="dockedtabs-tab-button emby-tab-button docked-tab-livetv hide' + liveTVButtonClass + '" data-index="2">\
<div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">live_tv</i><div>' + globalize.translate('HeaderLiveTV') + '</div></div>\ <div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">live_tv</i><div>' + globalize.translate('HeaderLiveTV') + '</div></div>\
</button>\ </button>\
<button is="emby-button" class="dockedtabs-tab-button emby-tab-button homeFavoritesTab" data-index="3">\ <button is="emby-button" class="dockedtabs-tab-button emby-tab-button homeFavoritesTab" data-index="3">\
@ -229,6 +232,11 @@
'; ';
} }
html += '<button is="emby-button" class="dockedtabs-tab-button emby-tab-button docked-tab-manageserver hide dockedtab-midsize" data-index="6">\
<div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">dashboard</i><div>' + globalize.translate('ButtonManageServer') + '</div></div>\
</button>\
';
html += '<button is="emby-button" class="dockedtabs-tab-button emby-tab-button" data-index="5">\ html += '<button is="emby-button" class="dockedtabs-tab-button emby-tab-button" data-index="5">\
<div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">menu</i><div>' + globalize.translate('ButtonMore') + '</div></div>\ <div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">menu</i><div>' + globalize.translate('ButtonMore') + '</div></div>\
</button>\ </button>\
@ -261,6 +269,12 @@
} else { } else {
element.querySelector('.docked-tab-livetv').classList.add('hide'); element.querySelector('.docked-tab-livetv').classList.add('hide');
} }
if (user.Policy.IsAdministrator) {
element.querySelector('.docked-tab-manageserver').classList.remove('hide');
} else {
element.querySelector('.docked-tab-manageserver').classList.add('hide');
}
} }
function showUserTabs(user, element) { function showUserTabs(user, element) {

View file

@ -91,7 +91,7 @@
.libraryMenuButtonText { .libraryMenuButtonText {
text-decoration: none; text-decoration: none;
font-weight: 400 !important; font-weight: 500 !important;
display: inline-flex; display: inline-flex;
vertical-align: middle; vertical-align: middle;
padding-left: 0 !important; padding-left: 0 !important;
@ -102,7 +102,8 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
align-items: center; align-items: center;
margin-left: 1em; margin-left: .5em;
font-size: 108%;
} }
.viewMenuBar { .viewMenuBar {
@ -230,13 +231,6 @@
background-color: #1D1D20; background-color: #1D1D20;
} }
@media all and (max-width: 360px) {
.libraryMenuButtonText {
display: none;
}
}
@media all and (max-width: 800px) { @media all and (max-width: 800px) {
/* The sidebar isn't visible at this size, so there's no way to navigate within the editor */ /* The sidebar isn't visible at this size, so there's no way to navigate within the editor */

View file

@ -76,19 +76,6 @@ h1, h1 a {
font-weight: 400; font-weight: 400;
} }
.libraryMenuButtonText {
font-weight: 500 !important;
position: absolute;
left: 100px;
right: 100px;
top: 12px;
text-align: center;
font-size: 16px;
margin: 0 auto !important;
padding: 0 !important;
justify-content: center;
}
.noSecondaryNavPage .itemBackdrop { .noSecondaryNavPage .itemBackdrop {
margin-top: 0; margin-top: 0;
} }
@ -121,10 +108,6 @@ h1, h1 a {
right: 5px !important; right: 5px !important;
} }
.searchBackButton {
display: none !important;
}
.txtSearch { .txtSearch {
padding-bottom: .5em !important; padding-bottom: .5em !important;
text-indent: 0 !important; text-indent: 0 !important;

View file

@ -1,76 +1,44 @@
define(['appSettings', 'cardStyle', 'emby-checkbox'], function (appSettings) { define(['appSettings', 'dom', 'connectionManager', 'cardStyle', 'emby-checkbox'], function (appSettings, dom, connectionManager) {
function getApiClient() { function authenticateUserByName(page, apiClient, username, password) {
var serverId = getParameterByName('serverid'); Dashboard.showLoadingMsg();
if (serverId) { apiClient.authenticateUserByName(username, password).then(function (result) {
return ConnectionManager.getOrCreateApiClient(serverId);
} else { var user = result.User;
return ApiClient;
}
}
var LoginPage = { var serverId = getParameterByName('serverid');
showVisualForm: function (page) { var newUrl;
page.querySelector('.visualLoginForm').classList.remove('hide'); if (user.Policy.IsAdministrator && !serverId) {
page.querySelector('.manualLoginForm').classList.add('hide'); newUrl = "dashboard.html";
}, } else {
newUrl = "home.html";
getLastSeenText: function (lastActivityDate) {
if (!lastActivityDate) {
return "";
} }
return "Last seen " + humane_date(lastActivityDate); Dashboard.hideLoadingMsg();
},
authenticateUserByName: function (page, apiClient, username, password) { Dashboard.onServerChanged(user.Id, result.AccessToken, apiClient);
Dashboard.navigate(newUrl);
Dashboard.showLoadingMsg(); }, function (response) {
apiClient.authenticateUserByName(username, password).then(function (result) { page.querySelector('#txtManualName').value = '';
page.querySelector('#txtManualPassword').value = '';
var user = result.User; Dashboard.hideLoadingMsg();
var serverId = getParameterByName('serverid'); if (response.status == 401) {
require(['toast'], function (toast) {
var newUrl; toast(Globalize.translate('MessageInvalidUser'));
});
if (user.Policy.IsAdministrator && !serverId) { } else {
newUrl = "dashboard.html"; showServerConnectionFailure();
} else { }
newUrl = "home.html"; });
} }
Dashboard.hideLoadingMsg();
Dashboard.onServerChanged(user.Id, result.AccessToken, apiClient);
Dashboard.navigate(newUrl);
}, function (response) {
page.querySelector('#txtManualName').value = '';
page.querySelector('#txtManualPassword').value = '';
Dashboard.hideLoadingMsg();
if (response.status == 401) {
require(['toast'], function (toast) {
toast(Globalize.translate('MessageInvalidUser'));
});
} else {
showServerConnectionFailure();
}
});
}
};
function showServerConnectionFailure() { function showServerConnectionFailure() {
@ -166,7 +134,7 @@
html += '<div class="cardText">' + user.Name + '</div>'; html += '<div class="cardText">' + user.Name + '</div>';
html += '<div class="cardText cardText-secondary">'; html += '<div class="cardText cardText-secondary">';
var lastSeen = LoginPage.getLastSeenText(user.LastActivityDate); var lastSeen = getLastSeenText(user.LastActivityDate);
if (lastSeen != "") { if (lastSeen != "") {
html += lastSeen; html += lastSeen;
} }
@ -183,25 +151,39 @@
context.querySelector('#divUsers').innerHTML = html; context.querySelector('#divUsers').innerHTML = html;
} }
function parentWithClass(elem, className) { function getLastSeenText(lastActivityDate) {
while (!elem.classList || !elem.classList.contains(className)) { if (!lastActivityDate) {
elem = elem.parentNode; return "";
if (!elem) {
return null;
}
} }
return elem; return "Last seen " + humane_date(lastActivityDate);
} }
return function (view, params) { return function (view, params) {
var self = this; var self = this;
function getApiClient() {
var serverId = params.serverid;
if (serverId) {
return connectionManager.getOrCreateApiClient(serverId);
} else {
return ApiClient;
}
}
function showVisualForm() {
view.querySelector('.visualLoginForm').classList.remove('hide');
view.querySelector('.manualLoginForm').classList.add('hide');
}
view.querySelector('#divUsers').addEventListener('click', function (e) { view.querySelector('#divUsers').addEventListener('click', function (e) {
var cardContent = parentWithClass(e.target, 'cardContent'); var cardContent = dom.parentWithClass(e.target, 'cardContent');
if (cardContent) { if (cardContent) {
@ -215,7 +197,7 @@
showManualForm(context, true); showManualForm(context, true);
} }
else if (haspw == 'false') { else if (haspw == 'false') {
LoginPage.authenticateUserByName(context, getApiClient(), name, ''); authenticateUserByName(context, getApiClient(), name, '');
} else { } else {
context.querySelector('#txtManualName').value = name; context.querySelector('#txtManualName').value = name;
@ -230,7 +212,7 @@
appSettings.enableAutoLogin(view.querySelector('.chkRememberLogin').checked); appSettings.enableAutoLogin(view.querySelector('.chkRememberLogin').checked);
var apiClient = getApiClient(); var apiClient = getApiClient();
LoginPage.authenticateUserByName(view, apiClient, view.querySelector('#txtManualName').value, view.querySelector('#txtManualPassword').value); authenticateUserByName(view, apiClient, view.querySelector('#txtManualName').value, view.querySelector('#txtManualPassword').value);
e.preventDefault(); e.preventDefault();
// Disable default form submission // Disable default form submission
@ -241,9 +223,7 @@
Dashboard.navigate('forgotpassword.html'); Dashboard.navigate('forgotpassword.html');
}); });
view.querySelector('.btnCancel').addEventListener('click', function () { view.querySelector('.btnCancel').addEventListener('click', showVisualForm);
LoginPage.showVisualForm(view);
});
view.querySelector('.btnManual').addEventListener('click', function () { view.querySelector('.btnManual').addEventListener('click', function () {
view.querySelector('#txtManualName').value = ''; view.querySelector('#txtManualName').value = '';
@ -263,7 +243,7 @@
} else { } else {
LoginPage.showVisualForm(view); showVisualForm();
loadUserList(view, apiClient, users); loadUserList(view, apiClient, users);
} }