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:
parent
266ba6ea99
commit
35ef6a4fd5
1 changed files with 78 additions and 34 deletions
|
@ -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]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue