2019-02-27 22:26:23 +00:00
|
|
|
define(["appSettings", "loading", "browser", "emby-button"], function(appSettings, loading, browser) {
|
2019-01-11 20:36:17 +09:00
|
|
|
"use strict";
|
|
|
|
|
|
|
|
function handleConnectionResult(page, result) {
|
2019-01-11 20:52:44 +09:00
|
|
|
loading.hide();
|
|
|
|
switch (result.State) {
|
2019-01-11 20:36:17 +09:00
|
|
|
case "SignedIn":
|
|
|
|
var apiClient = result.ApiClient;
|
|
|
|
Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient), Dashboard.navigate("home.html");
|
|
|
|
break;
|
|
|
|
case "ServerSignIn":
|
2019-01-11 20:52:44 +09:00
|
|
|
Dashboard.navigate("login.html?serverid=" + result.Servers[0].Id, false, "none");
|
2019-01-11 20:36:17 +09:00
|
|
|
break;
|
|
|
|
case "ServerSelection":
|
2019-01-11 20:52:44 +09:00
|
|
|
Dashboard.navigate("selectserver.html", false, "none");
|
2019-01-11 20:36:17 +09:00
|
|
|
break;
|
|
|
|
case "ServerUpdateNeeded":
|
|
|
|
Dashboard.alert({
|
|
|
|
message: Globalize.translate("ServerUpdateNeeded", '<a href="https://github.com/jellyfin/jellyfin">https://github.com/jellyfin/jellyfin</a>')
|
|
|
|
});
|
|
|
|
break;
|
|
|
|
case "Unavailable":
|
|
|
|
Dashboard.alert({
|
|
|
|
message: Globalize.translate("MessageUnableToConnectToServer"),
|
|
|
|
title: Globalize.translate("HeaderConnectionFailure")
|
2019-01-11 20:52:44 +09:00
|
|
|
});
|
2019-01-11 20:36:17 +09:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function submitManualServer(page) {
|
2019-01-11 20:52:44 +09:00
|
|
|
var host = page.querySelector("#txtServerHost").value;
|
|
|
|
var port = page.querySelector("#txtServerPort").value;
|
|
|
|
if (port) {
|
|
|
|
host += ":" + port;
|
|
|
|
}
|
|
|
|
|
|
|
|
loading.show();
|
|
|
|
ConnectionManager.connectToAddress(host, {
|
2019-01-11 20:36:17 +09:00
|
|
|
enableAutoLogin: appSettings.enableAutoLogin()
|
|
|
|
}).then(function(result) {
|
2019-01-11 20:52:44 +09:00
|
|
|
handleConnectionResult(page, result);
|
2019-01-11 20:36:17 +09:00
|
|
|
}, function() {
|
|
|
|
handleConnectionResult(page, {
|
|
|
|
State: "Unavailable"
|
2019-01-11 20:52:44 +09:00
|
|
|
});
|
|
|
|
});
|
2019-01-11 20:36:17 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
return function(view, params) {
|
2019-01-11 20:52:44 +09:00
|
|
|
view.querySelector(".manualServerForm").addEventListener("submit", onManualServerSubmit);
|
|
|
|
view.querySelector(".btnCancelManualServer").addEventListener("click", goBack);
|
|
|
|
|
2019-01-11 20:36:17 +09:00
|
|
|
function onManualServerSubmit(e) {
|
2019-01-11 20:52:44 +09:00
|
|
|
submitManualServer(view);
|
|
|
|
e.preventDefault();
|
|
|
|
return false;
|
2019-01-11 20:36:17 +09:00
|
|
|
}
|
|
|
|
|
|
|
|
function goBack() {
|
|
|
|
require(["appRouter"], function(appRouter) {
|
2019-01-11 20:52:44 +09:00
|
|
|
appRouter.back();
|
|
|
|
});
|
2019-01-11 20:36:17 +09:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|