From b470addbdbc536f1da04e004282ba73d15f78ae1 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Fri, 13 Mar 2020 20:18:47 +0000
Subject: [PATCH] Test high DPI tiles

---
 common.js |  119 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 61 insertions(+), 58 deletions(-)

diff --git a/common.js b/common.js
index 0bf165e..4c7b840 100644
--- a/common.js
+++ b/common.js
@@ -1,10 +1,10 @@
-"use strict";
+'use strict';
 
 var ttss_urls = {
 	t: 'proxy_tram.php',
 	// t: 'http://www.ttss.krakow.pl/internetservice',
 	b: 'proxy_bus.php',
-	// b: 'http://91.223.13.70/internetservice',
+	// b: 'http://ttss.mpk.krakow.pl/internetservice',
 };
 var ttss_types = ['t', 'b'];
 
@@ -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);
 	},
 };
 
@@ -111,6 +114,35 @@
 }
 
 
+/*******
+ * DOM *
+ *******/
+
+function deleteChildren(element) {
+	while(element.lastChild) element.removeChild(element.lastChild);
+}
+
+function addElementWithText(parent, element, text) {
+	var elem = document.createElement(element);
+	elem.appendChild(document.createTextNode(text));
+	parent.appendChild(elem);
+	return elem;
+}
+
+function addCellWithText(parent, text) {
+	return addElementWithText(parent, 'td', text);
+}
+
+function addParaWithText(parent, text) {
+	return addElementWithText(parent, 'p', text);
+}
+
+function setText(element, text) {
+	deleteChildren(element);
+	element.appendChild(document.createTextNode(text));
+}
+
+
 /***********
  * PARSING *
  ***********/
@@ -136,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);
@@ -189,14 +220,15 @@
 }
 
 function depotIdToVehicleId(depotId, typeHelper) {
+	var prop;
 	if(typeHelper) {
-		for(var prop in vehicles_info) {
+		for(prop in vehicles_info) {
 			if(prop.substr(0,1) == typeHelper && vehicles_info[prop]['num'].substr(2) == depotId) {
 				return prop;
 			}
 		}
 	} else {
-		for(var prop in vehicles_info) {
+		for(prop in vehicles_info) {
 			if(vehicles_info[prop]['num'] == depotId) {
 				return prop;
 			}
@@ -228,33 +260,4 @@
 		.replace('$floor', floor_type);
 	
 	return span;
-}
-
-
-/*******
- * DOM *
- *******/
-
-function deleteChildren(element) {
-	while(element.lastChild) element.removeChild(element.lastChild);
-}
-
-function addElementWithText(parent, element, text) {
-	var elem = document.createElement(element);
-	elem.appendChild(document.createTextNode(text));
-	parent.appendChild(elem);
-	return elem;
-}
-
-function addCellWithText(parent, text) {
-	return addElementWithText(parent, 'td', text);
-}
-
-function addParaWithText(parent, text) {
-	return addElementWithText(parent, 'p', text);
-}
-
-function setText(element, text) {
-	deleteChildren(element);
-	element.appendChild(document.createTextNode(text));
 }

--
Gitblit v1.9.1