1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/apiclient/sync/multiserversync.js

52 lines
1.3 KiB
JavaScript
Raw Normal View History

2015-09-09 13:49:44 -04:00
(function (globalScope) {
function multiServerSync(connectionManager) {
2015-09-09 23:22:52 -04:00
var self = this;
2015-09-21 21:05:33 -04:00
self.sync = function (options) {
2015-09-09 13:49:44 -04:00
var deferred = DeferredBuilder.Deferred();
connectionManager.getAvailableServers().done(function (result) {
2015-09-21 21:05:33 -04:00
syncNext(result, 0, options, deferred);
2015-09-09 13:49:44 -04:00
});
return deferred.promise();
};
2015-09-21 21:05:33 -04:00
function syncNext(servers, index, options, deferred) {
2015-09-09 13:49:44 -04:00
var length = servers.length;
if (index >= length) {
deferred.resolve();
return;
}
var server = servers[index];
Logger.log("Creating ServerSync to server: " + server.Id);
require(['serversync'], function () {
2015-09-21 21:05:33 -04:00
new MediaBrowser.ServerSync(connectionManager).sync(server, options).done(function () {
2015-09-09 13:49:44 -04:00
2015-09-21 21:05:33 -04:00
syncNext(servers, index + 1, options, deferred);
2015-09-09 13:49:44 -04:00
}).fail(function () {
2015-09-21 21:05:33 -04:00
syncNext(servers, index + 1, options, deferred);
2015-09-09 13:49:44 -04:00
});
});
}
}
if (!globalScope.MediaBrowser) {
globalScope.MediaBrowser = {};
}
globalScope.MediaBrowser.MultiServerSync = multiServerSync;
})(this);