ctucx.git: trainsearch

web based trip-planner, fork of https://cyberchaos.dev/yuka/trainsearch

commit b041a047016b8ec6c63eca8c5f3d26098a197f64
parent e0bd11fcd2cd16395b822e5d1d58e95ca8b0a398
Author: Yureka <yuka@yuka.dev>
Date: Sun, 20 Feb 2022 16:10:47 +0100

support multiple profiles
2 files changed, 11 insertions(+), 11 deletions(-)
M
src/app_functions.js
|
8
++++----
M
src/journeyView.js
|
14
+++++++-------
diff --git a/src/app_functions.js b/src/app_functions.js
@@ -134,16 +134,16 @@ export const getMoreJourneys = async (slug, mode) => {
 };
 export const refreshJourneys = async (slug) => {
 	const saved = await db.get('journeysOverview', slug);
-	await Promise.all(saved.journeys.map(x => refreshJourney(saved.profile || "db", x)));
+	await Promise.all(saved.journeys.map(x => refreshJourney(x, saved.profile || "db")));
 };
 export const refreshJourney = async (refreshToken, profile) => {
 	const client = await getHafasClient(profile || settings.profile || "db");
-	const settings = mkSettings();
+	const requestSettings = mkSettings();
 	const [saved, data] = await Promise.all([
 		db.get('journey', refreshToken),
-		client.refreshJourney(trainsearchToHafas(refreshToken), settings)
+		client.refreshJourney(trainsearchToHafas(refreshToken), requestSettings)
 	]);
-	data.settings = settings;
+	data.settings = requestSettings;
 	data.refreshToken = hafasToTrainsearch(data.refreshToken);
 	if (saved) data.slug = saved.slug;
 	db.put('journey', data);
diff --git a/src/journeyView.js b/src/journeyView.js
@@ -126,7 +126,7 @@ const legTemplate = leg => {
 	`;
 };
 
-const journeyTemplate = (data) => {
+const journeyTemplate = (data, profile) => {
 	const duration = data.legs[data.legs.length - 1].arrival - data.legs[0].departure;
 
 	const legs = [];

@@ -168,7 +168,7 @@ const journeyTemplate = (data) => {
 					<h3>${parseName(data.legs[0].origin)} → ${parseName(data.legs[data.legs.length - 1].destination)}</h3>
 					<p><b>${t('duration')}: ${formatDuration(duration)} | ${t('changes')}: ${changes-1} | ${t('date')}: ${formatDateTime(data.legs[0].plannedDeparture, 'date')}${settings.showPrices && data.price ? html` | ${t('price')}: <td><span>${formatPrice(data.price)}</span></td>` : ''}</b></p>
 				</div>
-				<a class="reload icon-reload" title="${t("reload")}" @click=${() => refreshJourneyView(data.refreshToken)}>${t("reload")}</a>
+				<a class="reload icon-reload" title="${t("reload")}" @click=${() => refreshJourneyView(data.refreshToken, profile)}>${t("reload")}</a>
 			</header>
 
 			${legs.map(legTemplate)}

@@ -214,8 +214,8 @@ export const journeyView = async (match, isUpdate) => {
 	hideOverlay();
 
 	ConsoleLog(data);
-	render(journeyTemplate(data), ElementById('content'));
-	
+	render(journeyTemplate(data, profile), ElementById('content'));
+
 	//if (!isUpdate) refreshJourneyView(refreshToken); // update data in the background
 
 	/*const history_id = dataStorage.journeysHistory.findIndex(obj => obj.reqId === reqId);

@@ -226,15 +226,15 @@ export const journeyView = async (match, isUpdate) => {
 	}*/
 };
 
-const refreshJourneyView = async (refreshToken) => {
+const refreshJourneyView = async (refreshToken, profile) => {
 	document.querySelector('.reload').classList.add('spinning');
 	try {
-		await refreshJourney(refreshToken);
+		await refreshJourney(refreshToken, profile);
 	} catch(e) {
 		showAlertModal(e.toString());
 		document.querySelector('.reload').classList.remove('spinning');
 		throw e;
 	}
-	journeyView([refreshToken], true);
+	journeyView([profile, refreshToken], true);
 	document.querySelector('.reload').classList.remove('spinning');
 };