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

deminify select server controller

This commit is contained in:
dkanada 2019-04-10 00:47:58 -07:00
parent 266ba6ea99
commit 35ef6a4fd5

View file

@ -11,56 +11,93 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu
id: server.Id, id: server.Id,
server: server server: server
} }
}), });
html = items.map(function(item) { var html = items.map(function(item) {
var cardImageContainer; var cardImageContainer;
cardImageContainer = item.showIcon ? '<i class="cardImageIcon md-icon">' + item.icon + "</i>" : '<div class="cardImage" style="' + item.cardImageStyle + '"></div>'; if (item.showIcon) {
cardImageContainer = '<i class="cardImageIcon md-icon">' + item.icon + "</i>";
} else {
cardImageContainer = '<div class="cardImage" style="' + item.cardImageStyle + '"></div>';
}
var cardBoxCssClass = "cardBox"; var cardBoxCssClass = "cardBox";
layoutManager.tv && (cardBoxCssClass += " cardBox-focustransform"); if (layoutManager.tv) {
cardBoxCssClass += " cardBox-focustransform";
}
var innerOpening = '<div class="' + cardBoxCssClass + '">'; var innerOpening = '<div class="' + cardBoxCssClass + '">';
return '<button raised class="card overflowSquareCard loginSquareCard scalableCard overflowSquareCard-scalable" style="display:inline-block;" data-id="' + item.id + '" data-url="' + (item.url || "") + '" data-cardtype="' + item.cardType + '">' + innerOpening + '<div class="cardScalable card-focuscontent"><div class="cardPadder cardPadder-square"></div><div class="cardContent"><div class="cardImageContainer coveredImage" style="background:#0288D1;border-radius:.15em;">' + cardImageContainer + '</div></div></div><div class="cardFooter"><div class="cardText cardTextCentered">' + item.name + "</div></div></div></button>" var cardContainer = '';
}).join(""), cardContainer += '<button raised class="card overflowSquareCard loginSquareCard scalableCard overflowSquareCard-scalable" style="display:inline-block;" data-id="' + item.id + '" data-url="' + (item.url || "") + '" data-cardtype="' + item.cardType + '">';
itemsContainer = view.querySelector(".servers"); cardContainer += innerOpening;
items.length || (html = "<p>" + globalize.translate("MessageNoServersAvailableToConnect") + "</p>"), itemsContainer.innerHTML = html, loading.hide() cardContainer += '<div class="cardScalable card-focuscontent">';
cardContainer += '<div class="cardPadder cardPadder-square">';
cardContainer += '</div>';
cardContainer += '<div class="cardContent">';
cardContainer += '<div class="cardImageContainer coveredImage" style="background:#0288D1;border-radius:.15em;">';
cardContainer += cardImageContainer;
cardContainer += '</div>';
cardContainer += '</div>';
cardContainer += '</div>';
cardContainer += '<div class="cardFooter">';
cardContainer += '<div class="cardText cardTextCentered">' + item.name + '</div>';
cardContainer += '</div></div></button>';
return cardContainer;
}).join("");
var itemsContainer = view.querySelector(".servers");
if (!items.length) {
html = '<p>' + globalize.translate("MessageNoServersAvailableToConnect") + "</p>";
}
itemsContainer.innerHTML = html;
loading.hide();
} }
function updatePageStyle(view, params) { function updatePageStyle(view, params) {
"1" == params.showuser ? (view.classList.add("libraryPage"), view.classList.remove("standalonePage"), view.classList.add("noSecondaryNavPage")) : (view.classList.add("standalonePage"), view.classList.remove("libraryPage"), view.classList.remove("noSecondaryNavPage")) if (params.showuser == "1") {
view.classList.add("libraryPage");
view.classList.remove("standalonePage");
view.classList.add("noSecondaryNavPage");
} else {
view.classList.add("standalonePage");
view.classList.remove("libraryPage");
view.classList.remove("noSecondaryNavPage");
}
} }
function showGeneralError() { function showGeneralError() {
loading.hide(), alertText(globalize.translate("DefaultErrorMessage")) loading.hide();
alertText(globalize.translate("DefaultErrorMessage"));
} }
function alertText(text) { function alertText(text) {
alertTextWithOptions({ alertTextWithOptions({
text: text text: text
}) });
} }
function alertTextWithOptions(options) { function alertTextWithOptions(options) {
require(["alert"], function(alert) { require(["alert"], function(alert) {
alert(options) alert(options);
}) });
} }
function showServerConnectionFailure() { function showServerConnectionFailure() {
alertText(globalize.translate("MessageUnableToConnectToServer"), globalize.translate("HeaderConnectionFailure")) alertText(globalize.translate("MessageUnableToConnectToServer"), globalize.translate("HeaderConnectionFailure"));
} }
return function(view, params) { return function(view, params) {
function connectToServer(server) { function connectToServer(server) {
loading.show(), connectionManager.connectToServer(server, { loading.show();
connectionManager.connectToServer(server, {
enableAutoLogin: appSettings.enableAutoLogin() enableAutoLogin: appSettings.enableAutoLogin()
}).then(function(result) { }).then(function(result) {
loading.hide(); loading.hide();
var apiClient = result.ApiClient; var apiClient = result.ApiClient;
switch (result.State) { switch (result.State) {
case "SignedIn": case "SignedIn":
Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient), Dashboard.navigate("home.html"); Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient);
Dashboard.navigate("home.html");
break; break;
case "ServerSignIn": case "ServerSignIn":
Dashboard.onServerChanged(null, null, apiClient), Dashboard.navigate("login.html?serverid=" + result.Servers[0].Id); Dashboard.onServerChanged(null, null, apiClient);
Dashboard.navigate("login.html?serverid=" + result.Servers[0].Id);
break; break;
case "ServerUpdateNeeded": case "ServerUpdateNeeded":
alertTextWithOptions({ alertTextWithOptions({
@ -69,17 +106,17 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu
}); });
break; break;
default: default:
showServerConnectionFailure() showServerConnectionFailure();
} }
}) })
} }
function deleteServer(server) { function deleteServer(server) {
loading.show(), connectionManager.deleteServer(server.Id).then(function() { loading.show();
loading.hide(), loadServers() connectionManager.deleteServer(server.Id).then(function() {
}, function() { loading.hide();
loading.hide(), loadServers() loadServers();
}) });
} }
function onServerClick(server) { function onServerClick(server) {
@ -87,7 +124,8 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu
menuItems.push({ menuItems.push({
name: globalize.translate("Connect"), name: globalize.translate("Connect"),
id: "connect" id: "connect"
}), menuItems.push({ });
menuItems.push({
name: globalize.translate("Delete"), name: globalize.translate("Delete"),
id: "delete" id: "delete"
}); });
@ -106,31 +144,37 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu
} }
function onServersRetrieved(result) { function onServersRetrieved(result) {
servers = result, renderSelectServerItems(view, result), layoutManager.tv && focusManager.autoFocus(view) servers = result;
renderSelectServerItems(view, result);
if (layoutManager.tv) {
focusManager.autoFocus(view);
}
} }
function loadServers() { function loadServers() {
loading.show(), connectionManager.getAvailableServers().then(onServersRetrieved, function(result) { loading.show();
onServersRetrieved([]) connectionManager.getAvailableServers().then(onServersRetrieved);
})
} }
var servers; var servers;
layoutManager.desktop;
updatePageStyle(view, params); updatePageStyle(view, params);
view.addEventListener("viewshow", function(e) { view.addEventListener("viewshow", function(e) {
var isRestored = e.detail.isRestored; var isRestored = e.detail.isRestored;
appRouter.setTitle(null); appRouter.setTitle(null);
if (!isRestored) loadServers(); if (!isRestored) loadServers();
}), view.querySelector(".servers").addEventListener("click", function(e) { });
view.querySelector(".servers").addEventListener("click", function(e) {
var card = dom.parentWithClass(e.target, "card"); var card = dom.parentWithClass(e.target, "card");
if (card) { if (card) {
var url = card.getAttribute("data-url"); var url = card.getAttribute("data-url");
if (url) appRouter.show(url); if (url) {
else { appRouter.show(url);
} else {
var id = card.getAttribute("data-id"); var id = card.getAttribute("data-id");
onServerClick(servers.filter(function(s) { onServerClick(servers.filter(function(s) {
return s.Id === id return s.Id === id;
})[0]) })[0]);
} }
} }
}) })