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

resolve mixed folder detection

This commit is contained in:
Luke Pulverenti 2014-12-04 00:24:41 -05:00
parent 84c83ba967
commit 8a14efb22b
4 changed files with 40 additions and 37 deletions

View file

@ -24,7 +24,7 @@
items: items, items: items,
lazy: true, lazy: true,
shape: 'homePagePortrait', shape: 'homePagePortrait',
overlayText: true overlayText: false
})).trigger('create').createCardMenus(); })).trigger('create').createCardMenus();
}); });

View file

@ -10,9 +10,6 @@
switch (result.State) { switch (result.State) {
case MediaBrowser.ConnectionState.Unavilable:
showServerConnectionFailure();
break;
case MediaBrowser.ConnectionState.SignedIn: case MediaBrowser.ConnectionState.SignedIn:
{ {
var apiClient = result.ApiClient; var apiClient = result.ApiClient;
@ -23,6 +20,7 @@
} }
break; break;
default: default:
showServerConnectionFailure();
break; break;
} }

View file

@ -199,11 +199,11 @@
var deferred = $.Deferred(); var deferred = $.Deferred();
if (connectUser != null && connectUser.Id == credentials.ConnectUserId) { if (connectUser && connectUser.Id == credentials.ConnectUserId) {
deferred.resolveWith(null, [[]]); deferred.resolveWith(null, [[]]);
} }
else if (self.connectToken() && self.connectUserId()) { else if (credentials.ConnectAccessToken && credentials.ConnectUserId) {
connectUser = null; connectUser = null;
@ -213,7 +213,6 @@
deferred.resolveWith(null, [[]]); deferred.resolveWith(null, [[]]);
}).fail(function () { }).fail(function () {
deferred.resolveWith(null, [[]]); deferred.resolveWith(null, [[]]);
}); });
@ -240,8 +239,8 @@
url: url, url: url,
dataType: "json", dataType: "json",
headers: { headers: {
"X-Connect-UserToken": accessToken, "X-Application": appName + "/" + appVersion,
"X-Application": appName + "/" + appVersion "X-Connect-UserToken": accessToken
} }
}); });
@ -476,8 +475,8 @@
url: url, url: url,
dataType: "json", dataType: "json",
headers: { headers: {
"X-Connect-UserToken": self.connectToken(), "X-Application": appName + "/" + appVersion,
"X-Application": appName + "/" + appVersion "X-Connect-UserToken": self.connectToken()
} }
}).done(function (servers) { }).done(function (servers) {
@ -607,11 +606,7 @@
var deferred = $.Deferred(); var deferred = $.Deferred();
var systemInfo = null; function onLocalServerTokenValidationDone(connectionMode, credentials) {
var connectionMode = MediaBrowser.ConnectionMode.Local;
var credentials = credentialProvider.credentials();
function onLocalServerTokenValidationDone() {
credentialProvider.addOrUpdateServer(credentials.servers, server); credentialProvider.addOrUpdateServer(credentials.servers, server);
server.DateLastAccessed = new Date().getTime(); server.DateLastAccessed = new Date().getTime();
@ -640,27 +635,33 @@
$(self).trigger('connected', [result]); $(self).trigger('connected', [result]);
} }
function onExchangeTokenDone() { function onExchangeTokenDone(connectionMode, credentials) {
if (server.AccessToken) { if (server.AccessToken) {
validateAuthentication(server, connectionMode).always(onLocalServerTokenValidationDone); validateAuthentication(server, connectionMode).always(function() {
onLocalServerTokenValidationDone(connectionMode, credentials);
});
} else { } else {
onLocalServerTokenValidationDone(); onLocalServerTokenValidationDone(connectionMode, credentials);
} }
} }
function onEnsureConnectUserDone() { function onEnsureConnectUserDone(connectionMode, credentials) {
if (credentials.ConnectUserId && credentials.ConnectAccessToken && server.ExchangeToken) { if (credentials.ConnectUserId && credentials.ConnectAccessToken && server.ExchangeToken) {
addAuthenticationInfoFromConnect(server, connectionMode, credentials).always(onExchangeTokenDone); addAuthenticationInfoFromConnect(server, connectionMode, credentials).always(function() {
onExchangeTokenDone(connectionMode, credentials);
});
} else { } else {
onExchangeTokenDone(); onExchangeTokenDone(connectionMode, credentials);
} }
} }
function onRemoteTestDone() { function onRemoteTestDone(systemInfo, connectionMode) {
if (systemInfo == null) { if (systemInfo == null) {
@ -669,31 +670,33 @@
} }
updateServerInfo(server, systemInfo); updateServerInfo(server, systemInfo);
server.LastConnectionMode = connectionMode;
var credentials = credentialProvider.credentials();
if (credentials.ConnectUserId && credentials.ConnectAccessToken) { if (credentials.ConnectUserId && credentials.ConnectAccessToken) {
ensureConnectUser(credentials).always(onEnsureConnectUserDone); ensureConnectUser(credentials).always(function() {
onEnsureConnectUserDone(connectionMode, credentials);
});
} else { } else {
onEnsureConnectUserDone(); onEnsureConnectUserDone(connectionMode, credentials);
} }
} }
function onLocalTestDone() { function onLocalTestDone(systemInfo, connectionMode) {
if (!systemInfo && server.RemoteAddress) { if (!systemInfo && server.RemoteAddress) {
// Try to connect to the local address // Try to connect to the local address
tryConnect(server.RemoteAddress).done(function (result) { tryConnect(server.RemoteAddress).done(function (result) {
systemInfo = result; onRemoteTestDone(result, MediaBrowser.ConnectionMode.Remote);
connectionMode = MediaBrowser.ConnectionMode.Remote;
onRemoteTestDone();
}).fail(function () { }).fail(function() {
onRemoteTestDone(); onRemoteTestDone();
}); });
} else { } else {
onRemoteTestDone(); onRemoteTestDone(systemInfo, connectionMode);
} }
} }
@ -702,10 +705,7 @@
//onLocalTestDone(); //onLocalTestDone();
// Try to connect to the local address // Try to connect to the local address
tryConnect(server.LocalAddress).done(function (result) { tryConnect(server.LocalAddress).done(function (result) {
onLocalTestDone(result, MediaBrowser.ConnectionMode.Local);
systemInfo = result;
onLocalTestDone();
}).fail(function () { }).fail(function () {
onLocalTestDone(); onLocalTestDone();
}); });

View file

@ -23,8 +23,13 @@
} }
function set(data) { function set(data) {
if (data) {
credentials = data; credentials = data;
store.setItem(key, JSON.stringify(get())); store.setItem(key, JSON.stringify(data));
} else {
self.clear();
}
} }
self.clear = function () { self.clear = function () {