mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update javascript connection manager to latest feature set
This commit is contained in:
parent
12e5298463
commit
f7bb1a627d
11 changed files with 494 additions and 217 deletions
101
dashboard-ui/thirdparty/apiclient/deferredAlt.js
vendored
Normal file
101
dashboard-ui/thirdparty/apiclient/deferredAlt.js
vendored
Normal file
|
@ -0,0 +1,101 @@
|
|||
(function (globalScope) {
|
||||
|
||||
globalScope.Deferred = {
|
||||
|
||||
Deferred: function () {
|
||||
|
||||
var self = this;
|
||||
var done = [];
|
||||
var fail = [];
|
||||
var always = [];
|
||||
var isOk = false;
|
||||
var isDone = false;
|
||||
var resolveScope;
|
||||
var resolveArgs;
|
||||
|
||||
self.promise = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
self.done = function (fn) {
|
||||
if (isDone && isOk) {
|
||||
fn.apply(resolveScope || {}, resolveArgs);
|
||||
}
|
||||
else {
|
||||
done.push(fn);
|
||||
}
|
||||
return self;
|
||||
};
|
||||
|
||||
self.fail = function (fn) {
|
||||
|
||||
if (isDone && !isOk) {
|
||||
fn.apply(resolveScope || {}, resolveArgs);
|
||||
}
|
||||
else {
|
||||
fail.push(fn);
|
||||
}
|
||||
return self;
|
||||
};
|
||||
|
||||
self.always = function (fn) {
|
||||
if (isDone) {
|
||||
fn.apply(resolveScope || {}, resolveArgs);
|
||||
}
|
||||
else {
|
||||
always.push(fn);
|
||||
}
|
||||
return self;
|
||||
};
|
||||
|
||||
self.resolveWith = function (scope, args) {
|
||||
resolveScope = scope;
|
||||
resolveArgs = args;
|
||||
isOk = true;
|
||||
isDone = true;
|
||||
self.trigger();
|
||||
};
|
||||
|
||||
self.rejectWith = function (scope, args) {
|
||||
resolveScope = scope;
|
||||
resolveArgs = args;
|
||||
isOk = true;
|
||||
isDone = true;
|
||||
self.trigger();
|
||||
};
|
||||
|
||||
self.trigger = function () {
|
||||
|
||||
var i, length;
|
||||
|
||||
if (isOk) {
|
||||
var doneClone = done.splice(0);
|
||||
for (i = 0, length = doneClone.length; i < length; i++) {
|
||||
|
||||
doneClone[i].apply(resolveScope || {}, resolveArgs);
|
||||
}
|
||||
}
|
||||
else {
|
||||
var failClone = fail.splice(0);
|
||||
for (i = 0, length = failClone.length; i < length; i++) {
|
||||
|
||||
failClone[i].apply(resolveScope || {}, resolveArgs);
|
||||
}
|
||||
}
|
||||
|
||||
var alwaysClone = fail.splice(0);
|
||||
for (i = 0, length = alwaysClone.length; i < length; i++) {
|
||||
|
||||
alwaysClone[i].apply(resolveScope || {}, resolveArgs);
|
||||
}
|
||||
};
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
when: function(promises) {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
})(window);
|
Loading…
Add table
Add a link
Reference in a new issue