From 4bf9a457844e360187dc2b37bf164a3b3a58e73a Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 30 Aug 2020 20:40:28 +0000 Subject: [PATCH] Fix right panel on Safari browser (overflow: auto + position: fixed) --- common.js | 52 +++++++++++++++++++++++++++------------------------- 1 files changed, 27 insertions(+), 25 deletions(-) diff --git a/common.js b/common.js index c1fceeb..4c7b840 100644 --- a/common.js +++ b/common.js @@ -22,29 +22,32 @@ ********/ function Deferred(promise, request) { - return { - promise: promise, - request: request, - abort: function() { - request.abort.bind(request); - return Deferred(promise, request); - }, - done: function(func) { - return Deferred(promise.then(func), request); - }, - fail: function(func) { - return Deferred(promise.catch(func), request); - }, - always: function(func) { - return Deferred(promise.finally(func), request); - }, - }; + this.promise = promise; + this.request = request; } - +Deferred.prototype = { + promise: null, + request: null, + abort: function() { + this.request.abort.bind(this.request); + return new Deferred(this.promise, this.request); + }, + done: function(func) { + return new Deferred(this.promise.then(func), this.request); + }, + fail: function(func) { + return new Deferred(this.promise.catch(func), this.request); + }, + always: function(func) { + return new Deferred(this.promise.finally(func), this.request); + }, +}; Deferred.all = function(iterable) { - return Deferred( + return new Deferred( Promise.all( - iterable.map(x => x.promise) + iterable.map(function(x) { + return x.promise; + }) ) ); }; @@ -56,6 +59,7 @@ var self = this; var request = new XMLHttpRequest(); var promise = new Promise(function(resolve, reject) { + request.open('GET', url, true); request.timeout = self.timeout; request.onreadystatechange = function() { if(this.readyState == 4) { @@ -70,10 +74,9 @@ } } }; - request.open('GET', url, true); request.send(); }); - return Deferred(promise, request); + return new Deferred(promise, request); }, }; @@ -165,10 +168,9 @@ } function parseTime(date, time) { - var result = new Date(date.getFullYear(), date.getMonth(), date.getDay()); + var result = new Date(date.getTime()); var time_split = time.split(':'); - result.setHours(time_split[0]); - result.setMinutes(time_split[1]); + result.setHours(time_split[0], time_split[1], 0); if(result.getTime() - date.getTime() > 72000000) { result.setTime(result.getTime() - 86400000); -- Gitblit v1.9.1