From 75471ecd99d1b3583a2c87dd71b56a72358de4f2 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sun, 30 Jun 2019 20:41:08 +0000
Subject: [PATCH] Reuse FTP connection if possible

---
 lib/output.php |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/lib/output.php b/lib/output.php
index d3fd6d9..fe7b73e 100644
--- a/lib/output.php
+++ b/lib/output.php
@@ -1,11 +1,32 @@
 <?php
+function createMapping($db, $mapFunction, $saveConfig = FALSE) {
+	$mapping = [];
+	foreach($db->getAll() as $vehicle) {
+		$mapping[$vehicle['id']] = $mapFunction($vehicle['num']);
+	}
+	
+	if($saveConfig) {
+		$json = json_encode($mapping);
+		if(!file_put_contents($saveConfig['result_temp'], $json)) {
+			throw new Exception('Result save failed');
+		}
+		rename($saveConfig['result_temp'], $saveConfig['result']);
+	}
+	
+	return $mapping;
+}
+
 function createVehiclesList($trips, $mapping, $saveConfig = FALSE) {
 	$lines = [];
+	$vehicles = [];
 	foreach($trips as $trip) {
+		$vehicle = $mapping[$trip['id']] ?? [];
+		$vehicle += ['trip' => $trip['id']];
 		$lines[$trip['line']][] = [
 			'trip' => $trip,
-			'vehicle' => $mapping[$trip['id']] ?? [],
+			'vehicle' => $vehicle,
 		];
+		$vehicles[$vehicle['type'] ?? '?'][] = $vehicle;
 	}
 	foreach($lines as &$line) {
 		usort($line, function($a, $b) {
@@ -14,6 +35,13 @@
 	}
 	unset($line);
 	ksort($lines);
+	foreach($vehicles as &$vehicle) {
+		usort($vehicle, function($a, $b) {
+			return (substr($a['num'] ?? '', 2) <=> substr($b['num'] ?? '', 2));
+		});
+	}
+	unset($vehicle);
+	ksort($vehicles);
 	
 	if($saveConfig) {
 		$twigLoader = new \Twig\Loader\FilesystemLoader(__DIR__.'/../templates');
@@ -21,6 +49,7 @@
 		
 		$vehiclesHtml = $twig->render('vehicles.html', [
 			'lines' => $lines,
+			'vehicles' => $vehicles,
 			'prefix' => $saveConfig['prefix'],
 		]);
 		if(!file_put_contents($saveConfig['result_vehicles_temp'], $vehiclesHtml)) {

--
Gitblit v1.9.1