From b098f6ab0ca0e929a81aa457471138b3e508a6e4 Mon Sep 17 00:00:00 2001 From: sperwing Date: Wed, 1 Jan 2025 17:10:11 +0100 Subject: [PATCH] new services, internal improvements, fixes routing with locations --- back/dist/app.js | 58 ++++- back/dist/app.js.map | 2 +- back/node_modules/.package-lock.json | 1 + back/package-lock.json | 2 + back/package.json | 3 +- back/src/app.ts | 58 ++++- front/bahnui-front/src/App.vue | 1 + .../icons/bicycle-conveyance-reservation.svg | 31 ++- .../assets/icons/compulsory-reservation.svg | 34 ++- .../icons/deutschlandticket-gueltig.svg | 110 +++++++++ .../icons/deutschlandticket-ungueltig.svg | 125 ++++++++++ front/bahnui-front/src/assets/icons/info.svg | 77 +++++++ .../src/assets/icons/komfort-check-in.svg | 91 ++++++++ .../src/assets/icons/quiet-zone.svg | 94 ++++++++ .../assets/icons/reservation-suggested.svg | 91 ++++++++ .../src/assets/icons/sleeper-couchette.svg | 122 ++++++++++ .../src/assets/icons/special-ticket.svg | 104 +++++++++ .../src/assets/icons/ticket-required.svg | 90 ++++++++ .../src/assets/icons/tilting-train.svg | 126 +++++++++++ .../src/assets/logos/actransit.png | Bin 0 -> 9817 bytes .../src/assets/logos/actransit.svg | 76 +++++++ .../src/assets/logos/caltrain.svg | 7 + .../src/assets/logos/desmoinesart.svg | 2 + front/bahnui-front/src/assets/logos/evb.svg | 1 + .../src/assets/logos/flixtrain.svg | 1 + front/bahnui-front/src/assets/logos/gkb.svg | 104 +++++++++ .../src/assets/logos/goldengate.png | Bin 0 -> 129544 bytes front/bahnui-front/src/assets/logos/hlb.svg | 51 +++++ front/bahnui-front/src/assets/logos/ieir.svg | 67 ++++++ .../src/assets/logos/liemobil.svg | 1 + .../bahnui-front/src/assets/logos/luxtram.png | Bin 0 -> 11122 bytes .../src/assets/logos/marintransit.svg | 28 +++ .../src/assets/logos/metronom.svg | 2 + .../src/assets/logos/regiostart.svg | 1 + .../src/assets/logos/rheinruhrbahn.svg | 1 + .../src/assets/logos/samtrans.svg | 19 ++ .../src/assets/logos/sternhafferl.svg | 3 + front/bahnui-front/src/assets/logos/stog.svg | 13 ++ .../src/assets/logos/vbglattal.svg | 3 + front/bahnui-front/src/assets/logos/vias.png | Bin 0 -> 4841 bytes front/bahnui-front/src/components/explore.vue | 107 +++++++++ front/bahnui-front/src/components/routing.vue | 6 +- front/bahnui-front/src/components/search.vue | 213 ++---------------- .../src/components/search/dateSelect.vue | 61 +++++ .../src/components/search/locationSelect.vue | 122 ++++++++++ .../src/components/search/timeSelect.vue | 52 +++++ front/bahnui-front/src/lib/operators.js | 46 +++- front/bahnui-front/src/lib/remarks.js | 24 +- front/bahnui-front/src/lib/routes.js | 13 +- front/bahnui-front/src/lib/services.js | 18 ++ front/bahnui-front/src/locales/en.json | 4 +- front/bahnui-front/src/main.js | 2 + 52 files changed, 2002 insertions(+), 266 deletions(-) create mode 100644 front/bahnui-front/src/assets/icons/deutschlandticket-gueltig.svg create mode 100644 front/bahnui-front/src/assets/icons/deutschlandticket-ungueltig.svg create mode 100644 front/bahnui-front/src/assets/icons/info.svg create mode 100644 front/bahnui-front/src/assets/icons/komfort-check-in.svg create mode 100644 front/bahnui-front/src/assets/icons/quiet-zone.svg create mode 100644 front/bahnui-front/src/assets/icons/reservation-suggested.svg create mode 100644 front/bahnui-front/src/assets/icons/sleeper-couchette.svg create mode 100644 front/bahnui-front/src/assets/icons/special-ticket.svg create mode 100644 front/bahnui-front/src/assets/icons/ticket-required.svg create mode 100644 front/bahnui-front/src/assets/icons/tilting-train.svg create mode 100644 front/bahnui-front/src/assets/logos/actransit.png create mode 100644 front/bahnui-front/src/assets/logos/actransit.svg create mode 100644 front/bahnui-front/src/assets/logos/caltrain.svg create mode 100644 front/bahnui-front/src/assets/logos/desmoinesart.svg create mode 100644 front/bahnui-front/src/assets/logos/evb.svg create mode 100644 front/bahnui-front/src/assets/logos/flixtrain.svg create mode 100644 front/bahnui-front/src/assets/logos/gkb.svg create mode 100644 front/bahnui-front/src/assets/logos/goldengate.png create mode 100644 front/bahnui-front/src/assets/logos/hlb.svg create mode 100644 front/bahnui-front/src/assets/logos/ieir.svg create mode 100644 front/bahnui-front/src/assets/logos/liemobil.svg create mode 100644 front/bahnui-front/src/assets/logos/luxtram.png create mode 100644 front/bahnui-front/src/assets/logos/marintransit.svg create mode 100644 front/bahnui-front/src/assets/logos/metronom.svg create mode 100644 front/bahnui-front/src/assets/logos/regiostart.svg create mode 100644 front/bahnui-front/src/assets/logos/rheinruhrbahn.svg create mode 100644 front/bahnui-front/src/assets/logos/samtrans.svg create mode 100644 front/bahnui-front/src/assets/logos/sternhafferl.svg create mode 100644 front/bahnui-front/src/assets/logos/stog.svg create mode 100644 front/bahnui-front/src/assets/logos/vbglattal.svg create mode 100644 front/bahnui-front/src/assets/logos/vias.png create mode 100644 front/bahnui-front/src/components/explore.vue create mode 100644 front/bahnui-front/src/components/search/dateSelect.vue create mode 100644 front/bahnui-front/src/components/search/locationSelect.vue create mode 100644 front/bahnui-front/src/components/search/timeSelect.vue create mode 100644 front/bahnui-front/src/lib/services.js diff --git a/back/dist/app.js b/back/dist/app.js index 2e8b024..48bef31 100644 --- a/back/dist/app.js +++ b/back/dist/app.js @@ -1,4 +1,5 @@ import express from 'express'; +import bodyParser from 'body-parser'; import { createClient } from 'hafas-client'; import { profile as dbProfile } from 'hafas-client/p/db/index.js'; import { profile as vbbProfile } from 'hafas-client/p/vbb/index.js'; @@ -11,6 +12,10 @@ import { profile as bartProfile } from 'hafas-client/p/bart/index.js'; import { profile as dartProfile } from 'hafas-client/p/dart/index.js'; import { profile as nrwProfile } from 'hafas-client/p/mobil-nrw/index.js'; import { profile as danmarkProfile } from 'hafas-client/p/rejseplanen/index.js'; +import { profile as blsProfile } from 'hafas-client/p/bls/index.js'; +import { profile as nrwbusradarProfile } from 'hafas-client/p/db-busradar-nrw/index.js'; +import { profile as cmtaProfile } from 'hafas-client/p/cmta/index.js'; +import { profile as vrnProfile } from 'hafas-client/p/vrn/index.js'; const app = express(); const port = 3000; // Adapt this to your project! createClient() won't work with this string. @@ -29,12 +34,17 @@ clients.set("bart", createClient(bartProfile, userAgent)); clients.set("dart", createClient(dartProfile, userAgent)); clients.set("nrw", createClient(nrwProfile, userAgent)); clients.set("danmark", createClient(danmarkProfile, userAgent)); +clients.set("bls", createClient(blsProfile, userAgent)); +clients.set("nrwbus", createClient(nrwbusradarProfile, userAgent)); +clients.set("cmta", createClient(cmtaProfile, userAgent)); +clients.set("vrn", createClient(vrnProfile, userAgent)); app.use((req, res, next) => { res.append('Access-Control-Allow-Origin', ['*']); res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.append('Access-Control-Allow-Headers', 'Content-Type'); next(); }); +app.use(bodyParser.json()); app.get('/', (req, res) => { client.journeys('8011167', '8000261', { results: 1 }).then(result => res.send(result)).catch(error => res.status(500).send(error)); }); @@ -44,7 +54,7 @@ app.get('/searchStation', (req, res) => { } else { let query = req.query; - clients.get((String)(req.query.service)).locations(query.text, { results: 1 }).then(result => res.send({ name: result[0].name, id: result[0].id })).catch(error => res.status(500).send(error)); + clients.get((String)(req.query.service)).locations(query.text, { results: 1, subStops: false, entrances: false, language: query.language }).then(result => res.send(result[0])).catch(error => res.status(500).send(error)); } }); app.get('/searchStations', (req, res) => { @@ -55,26 +65,23 @@ app.get('/searchStations', (req, res) => { else { let query = req.query; try { - clients.get((String)(req.query.service)).locations(query.text, { results: 6 }).then(result => res.send(result - //.map(entry => {return {name:entry.name, id:entry.id}}) - )).catch(error => res.status(500).send(error)); + clients.get((String)(req.query.service)).locations(query.text, { results: 6, subStops: false, entrances: false, language: query.language }).then(result => res.send(result)).catch(error => res.status(500).send(error)); } catch (e) { res.status(500).send(e); } } }); -app.get('/searchConnection', (req, res) => { - if (!req.query || !req.query.from || !req.query.to || !req.query.date || !req.query.service) { - console.log(req.query); +app.post('/searchConnection', (req, res) => { + if (!req.body.data || !req.body.data.from || !req.body.data.to || !req.body.data.date || !req.body.data.service) { res.send([]); } else { - let query = req.query; - let date = new Date((String)(req.query.date)); + let query = req.body.data; + let date = new Date((String)(query.date)); try { - clients.get((String)(req.query.service)). - journeys(query.from, query.to, { results: 5, departure: date }) + console.log(query.language); + clients.get((String)(query.service)).journeys(query.from, query.to, { results: 5, departure: date, language: query.language }) .then(result => { let journeys = result.journeys; res.send(journeys.map(journey => { @@ -87,13 +94,40 @@ app.get('/searchConnection', (req, res) => { }; })); }) - .catch(error => res.status(500).send(error)); + .catch(error => { + console.log(error); + res.status(500).send(error); + }); } catch (e) { res.status(500).send(e); } } }); +app.get('/findNearby', (req, res) => { + if (!req.query || !req.query.location) { + res.send([]); + } + else { + let query = req.query; + try { + clients.get((String)(req.query.service)).nearby({ type: "location", latitude: parseFloat(query.location.latitude), longitude: parseFloat(query.location.longitude) }, { subStops: false, entrances: false, language: query.language }).then(result => res.send(result)).catch(error => { + console.log(error); + res.status(500).send(error); + }); + } + catch (e) { + res.status(500).send(e); + } + } +}); +app.get('/nearbyTest', (req, res) => { + client.nearby({ + type: 'location', + latitude: 52.5137344, + longitude: 13.4744798 + }, undefined).then(result => res.send(result)).catch(error => res.status(500).send(error)); +}); app.listen(port, () => { return console.log(`Express is listening at http://localhost:${port}`); }); diff --git a/back/dist/app.js.map b/back/dist/app.js.map index 0d0fe44..2436b38 100644 --- a/back/dist/app.js.map +++ b/back/dist/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/back/node_modules/.package-lock.json b/back/node_modules/.package-lock.json index e3115bc..013f44b 100644 --- a/back/node_modules/.package-lock.json +++ b/back/node_modules/.package-lock.json @@ -180,6 +180,7 @@ "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", diff --git a/back/package-lock.json b/back/package-lock.json index bacbc2a..5e58841 100644 --- a/back/package-lock.json +++ b/back/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "@types/hafas-client": "^6.2.0", + "body-parser": "^1.20.3", "express": "^4.21.1", "hafas-client": "^6.3.2" }, @@ -194,6 +195,7 @@ "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", diff --git a/back/package.json b/back/package.json index 4012d1f..6e14bb3 100644 --- a/back/package.json +++ b/back/package.json @@ -14,8 +14,9 @@ }, "dependencies": { "@types/hafas-client": "^6.2.0", + "body-parser": "^1.20.3", "express": "^4.21.1", "hafas-client": "^6.3.2" }, - "type":"module" + "type": "module" } diff --git a/back/src/app.ts b/back/src/app.ts index b8cd4f3..7b68fde 100644 --- a/back/src/app.ts +++ b/back/src/app.ts @@ -1,4 +1,5 @@ import express from 'express'; +import bodyParser from 'body-parser'; import {createClient, HafasClient} from 'hafas-client' import {profile as dbProfile} from 'hafas-client/p/db/index.js' import {profile as vbbProfile} from 'hafas-client/p/vbb/index.js' @@ -11,6 +12,10 @@ import {profile as bartProfile} from 'hafas-client/p/bart/index.js' import {profile as dartProfile} from 'hafas-client/p/dart/index.js' import {profile as nrwProfile} from 'hafas-client/p/mobil-nrw/index.js' import {profile as danmarkProfile} from 'hafas-client/p/rejseplanen/index.js' +import {profile as blsProfile} from 'hafas-client/p/bls/index.js' +import {profile as nrwbusradarProfile} from 'hafas-client/p/db-busradar-nrw/index.js' +import {profile as cmtaProfile} from 'hafas-client/p/cmta/index.js' +import {profile as vrnProfile} from 'hafas-client/p/vrn/index.js' import {Journey} from 'hafas-client' const app = express(); const port = 3000; @@ -32,6 +37,10 @@ clients.set("bart", createClient(bartProfile, userAgent)); clients.set("dart", createClient(dartProfile, userAgent)); clients.set("nrw", createClient(nrwProfile, userAgent)); clients.set("danmark", createClient(danmarkProfile, userAgent)); +clients.set("bls", createClient(blsProfile, userAgent)); +clients.set("nrwbus", createClient(nrwbusradarProfile, userAgent)); +clients.set("cmta", createClient(cmtaProfile, userAgent)); +clients.set("vrn", createClient(vrnProfile, userAgent)); app.use((req, res, next) => { res.append('Access-Control-Allow-Origin', ['*']); res.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); @@ -39,6 +48,8 @@ app.use((req, res, next) => { next(); }); +app.use(bodyParser.json()); + app.get('/', (req, res) => { client.journeys('8011167', '8000261', {results: 1}).then(result => res.send(result)).catch(error => res.status(500).send(error)); }); @@ -47,7 +58,7 @@ app.get('/searchStation', (req, res) => { res.send([]); } else { let query: any = req.query; - clients.get((String) (req.query.service)).locations(query.text, {results:1}).then(result => res.send({name: result[0].name, id:result[0].id})).catch(error => res.status(500).send(error)); + clients.get((String) (req.query.service)).locations(query.text, {results:1, subStops:false, entrances:false, language:query.language}).then(result => res.send(result[0])).catch(error => res.status(500).send(error)); } }); app.get('/searchStations', (req, res) => { @@ -57,24 +68,22 @@ app.get('/searchStations', (req, res) => { } else { let query: any = req.query; try { - clients.get((String) (req.query.service)).locations(query.text, {results:6}).then(result => res.send(result - //.map(entry => {return {name:entry.name, id:entry.id}}) + clients.get((String) (req.query.service)).locations(query.text, {results:6, subStops:false, entrances:false, language:query.language}).then(result => res.send(result )).catch(error => res.status(500).send(error)); } catch (e) { res.status(500).send(e) } } }); -app.get('/searchConnection', (req, res) => { - if(!req.query || !req.query.from || !req.query.to || !req.query.date || !req.query.service){ - console.log(req.query); +app.post('/searchConnection', (req, res) => { + if(!req.body.data || !req.body.data.from || !req.body.data.to || !req.body.data.date || !req.body.data.service){ res.send([]); } else { - let query: any = req.query; - let date: Date = new Date((String)(req.query.date)); + let query: any = req.body.data; + let date: Date = new Date((String)(query.date)); try { - clients.get((String) (req.query.service)). - journeys(query.from, query.to,{results:5, departure:date}) + console.log(query.language) + clients.get((String) (query.service)).journeys(query.from, query.to,{results:5, departure:date, language:query.language}) .then(result => { let journeys: readonly Journey[] = result.journeys; res.send(journeys.map(journey => { return { @@ -85,13 +94,40 @@ app.get('/searchConnection', (req, res) => { price: journey.price, }})) }) - .catch(error => res.status(500).send(error)); + .catch(error => { + console.log(error); + res.status(500).send(error)} + ); + } catch (e) { + res.status(500).send(e) + } + } +}); +app.get('/findNearby', (req, res) => { + if(!req.query || !req.query.location){ + res.send([]); + } else { + let query: any = req.query; + try { + clients.get((String) (req.query.service)).nearby({type:"location", latitude: parseFloat(query.location.latitude), longitude: parseFloat(query.location.longitude)}, {subStops:false, entrances:false, language:query.language}).then(result => res.send(result + )).catch(error => { + console.log(error); + res.status(500).send(error); + }); } catch (e) { res.status(500).send(e) } } }); +app.get('/nearbyTest', (req, res) => { + client.nearby({ + type: 'location', + latitude: 52.5137344, + longitude: 13.4744798 + }, undefined).then(result => res.send(result)).catch(error => res.status(500).send(error)); +}); + app.listen(port, () => { return console.log(`Express is listening at http://localhost:${port}`); }); diff --git a/front/bahnui-front/src/App.vue b/front/bahnui-front/src/App.vue index bdcca70..12e8fe2 100644 --- a/front/bahnui-front/src/App.vue +++ b/front/bahnui-front/src/App.vue @@ -8,6 +8,7 @@
Search + Explore
diff --git a/front/bahnui-front/src/assets/icons/bicycle-conveyance-reservation.svg b/front/bahnui-front/src/assets/icons/bicycle-conveyance-reservation.svg index 312d459..3d66895 100644 --- a/front/bahnui-front/src/assets/icons/bicycle-conveyance-reservation.svg +++ b/front/bahnui-front/src/assets/icons/bicycle-conveyance-reservation.svg @@ -8,7 +8,7 @@ version="1.1" id="svg1" sodipodi:docname="bicycle-conveyance-reservation.svg" - inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -25,12 +25,12 @@ inkscape:document-units="px" showgrid="true" inkscape:zoom="8.8977601" - inkscape:cx="25.174875" + inkscape:cx="13.936092" inkscape:cy="22.814731" - inkscape:window-width="1368" - inkscape:window-height="842" - inkscape:window-x="-6" - inkscape:window-y="1073" + inkscape:window-width="2560" + inkscape:window-height="1377" + inkscape:window-x="-8" + inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="layer1"> - R + + + diff --git a/front/bahnui-front/src/assets/icons/compulsory-reservation.svg b/front/bahnui-front/src/assets/icons/compulsory-reservation.svg index 59902df..2ca6da0 100644 --- a/front/bahnui-front/src/assets/icons/compulsory-reservation.svg +++ b/front/bahnui-front/src/assets/icons/compulsory-reservation.svg @@ -8,7 +8,7 @@ version="1.1" id="svg1" sodipodi:docname="compulsory-reservation.svg" - inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -25,14 +25,14 @@ inkscape:document-units="px" showgrid="true" inkscape:zoom="7.7006757" - inkscape:cx="24.803018" + inkscape:cx="11.817145" inkscape:cy="25.971747" - inkscape:window-width="1368" - inkscape:window-height="842" - inkscape:window-x="-6" - inkscape:window-y="1073" + inkscape:window-width="2560" + inkscape:window-height="1377" + inkscape:window-x="-8" + inkscape:window-y="-8" inkscape:window-maximized="1" - inkscape:current-layer="layer1"> + inkscape:current-layer="text51"> - R + + + diff --git a/front/bahnui-front/src/assets/icons/deutschlandticket-gueltig.svg b/front/bahnui-front/src/assets/icons/deutschlandticket-gueltig.svg new file mode 100644 index 0000000..c2e97cc --- /dev/null +++ b/front/bahnui-front/src/assets/icons/deutschlandticket-gueltig.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/deutschlandticket-ungueltig.svg b/front/bahnui-front/src/assets/icons/deutschlandticket-ungueltig.svg new file mode 100644 index 0000000..e5dc30f --- /dev/null +++ b/front/bahnui-front/src/assets/icons/deutschlandticket-ungueltig.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/info.svg b/front/bahnui-front/src/assets/icons/info.svg new file mode 100644 index 0000000..e1e7387 --- /dev/null +++ b/front/bahnui-front/src/assets/icons/info.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/komfort-check-in.svg b/front/bahnui-front/src/assets/icons/komfort-check-in.svg new file mode 100644 index 0000000..739430e --- /dev/null +++ b/front/bahnui-front/src/assets/icons/komfort-check-in.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/quiet-zone.svg b/front/bahnui-front/src/assets/icons/quiet-zone.svg new file mode 100644 index 0000000..c11dbff --- /dev/null +++ b/front/bahnui-front/src/assets/icons/quiet-zone.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/reservation-suggested.svg b/front/bahnui-front/src/assets/icons/reservation-suggested.svg new file mode 100644 index 0000000..39e2528 --- /dev/null +++ b/front/bahnui-front/src/assets/icons/reservation-suggested.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/sleeper-couchette.svg b/front/bahnui-front/src/assets/icons/sleeper-couchette.svg new file mode 100644 index 0000000..3109bd8 --- /dev/null +++ b/front/bahnui-front/src/assets/icons/sleeper-couchette.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/special-ticket.svg b/front/bahnui-front/src/assets/icons/special-ticket.svg new file mode 100644 index 0000000..dc1a638 --- /dev/null +++ b/front/bahnui-front/src/assets/icons/special-ticket.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/ticket-required.svg b/front/bahnui-front/src/assets/icons/ticket-required.svg new file mode 100644 index 0000000..3681ce8 --- /dev/null +++ b/front/bahnui-front/src/assets/icons/ticket-required.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/icons/tilting-train.svg b/front/bahnui-front/src/assets/icons/tilting-train.svg new file mode 100644 index 0000000..52b7f6a --- /dev/null +++ b/front/bahnui-front/src/assets/icons/tilting-train.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/bahnui-front/src/assets/logos/actransit.png b/front/bahnui-front/src/assets/logos/actransit.png new file mode 100644 index 0000000000000000000000000000000000000000..5b31956efacbb61b61e708c19b0dfb8871a2faf5 GIT binary patch literal 9817 zcmV-fCZ^emP)PyG6G=otRCodHT?c$sMbAi&#nhGd_>#icMWp&k6?Cxh-*Sh{h z*Hsh?ABx>|5f?ujRfr%)5D=6mAWe`OI-w`u|9|GrefO1+!XpHDle~N9&YYP!=gc`% z&di+~l?x{k7vVsJ1L5L8i|BCW6v-#Tfd~f-2O>%pk%R~b!pwn)QiYkJk?bNIh>fto zaKKJ2qoSfDCnra;vUUo?_!p%h=4$!HnP_}`ya+hBYR6XDbzncD5Qy|9FQki#mKZ#D ztkX#1VoM>;fG`iu%|A;9ht&}e(qr#7bAunBa^&ElBXaoAVL5vAsEsb+cbWh|lhzCG zhL@#FmzIQtib1rV4q~FfVB&R7J1+~49z7;gr++1T_aE@;0Q~+M5JR@bM9YQ!`-+r` zm1a-hAshGXlqdw}0#xt9fk2Mbt5!``KJ<#jLdkLw!K4&+{~U{_3fN#AIFK!C*R7Xd zepxGr4<9xKQ~8Pqg_A6W>O@5{iWQA}Omwtd(7%s1avIdGW5;F6)akMx z3S|{7R7=k!$5FE}sKA6u@p3`GzA|g|Qt9>bBZy(G=HLf~@<{1}{fEkv1Fl54;{aA% zYDHR(A3rYJw(XGb=FXKPM~*2HmNq`ne;8Z>C&(sOD` zDtxZzw4s8+$I98Vb*udR^Uv_dCQaqn*t|cqIr7<=(TDo-ZShA3FusLUYDheOn?%jK2)~q@3 z`B=d?8}IdNf}jg~og9U4Qtdp9^zsl7Bx}eO$5-@4oGcz!ehm=#msSr*DSwCl1^bZ<%p?vjoHa(z}{bZg?r^Hl~kcf4;|?%Y3`g+DsLsw|IIhw%E5!q8V&1*_2yI% zS3)Rs(SYmQyQh>ZUoNQLENozeu?mK&Xcc3W5tyRr&!mHRP@z8k>AE?#o&;h)xUsAM#0FfP!*JvSW6le`qy9O z#g-SVKlG*eC6A2(Wu8OW?CgVnhL2G65O4NI9XfDb2L=@g=7$Tvk>@i$lkYcxAF4p? z6MTFLO=~fSg0~PP9FIccp*Vd>HbS^Cjpx=aZ zeuOohr1PYGyS7pWd*m|EBaN8whAi3gtD{Vsx`Zf{4!o5fUdqRnmRTd7l*;9>uucr~ zVy~Ox^n1=qr3w^2vUxxDyJdbiSGVh^@cGpaq!N>Jn$=5TA7Ag@y|4`lX4|n(%gU{r zD6NPqsH233f;V%jg647}IMTOv?K=5o%{o_+j1oE8g~Ws*8Z=9^Y0+F7r#6y<$BxML z{~j%G&dUHq4x(W}v$Q!VTg5z4`KL54HwKLWc!jYl_w>De)d)$giS<9?=_BuyqHwaA zpOs2w1;Z-W@#8r#Ow5r(*pVH|v92h5rD9{HZ@=CW2gQ11(tqU3B?}#sUZ_;wu;Qt0 zt2n!N@0EGqFMyo+dOu66DwBg6vFhBRout%FmY+6nkYR5>FH5(vccKO%t)oa@N=~<5 zM+`(9xIK2!A7p6DPKu_XkJyz!qyw0CRw|X3MpnjbC=>^kj zP#%l4OXZ2F6C@foa`rFzFVq%KMH6psJ(`AH^j5eSW}T(W-aAsEQtHZ#RZHY|<3`Hv zg9qJoHcg4UgW2TwmF?2x!G1#(Jwu@x&f1Q(#Nq8h=&V<&#fz87<}KSitsN?de-K7h zGN;;FHESlxwUcD|w%?@p%a5UA9fd-?HtZgzo!Fa~g5?!{;@oU3@#UiKj2UKa%{CDB z?!tjKhIQ=NUh1KTdT-%ux$eD}uEb}Nci1Pp3UeHAAzMJ?;BP%2kJ0vNw;{Ra7Y21jLMXn+E{jG zACTUo|BfIEAm7w6&fW{gWGkV8&y$FReWm^TY?9jQ3rBb(hn0!swO!^B)IdM5zmt3W)eEH{xB`&&@tLx0u(s;7@ z7f1TDLa8jH$apJ+yLRuE`STb037>^yQ>|hK_)4(!b?w?o4jw%$eO`G~w(Q#t$>L4} z7rFqRqA5%PGFD+CO-q+9!^U6qxXwJv(&?86kWQ>sLt3_IDyz3|mdoCHM&JALgYiC~ zE7E?OwBnakv5Is_X)OIxTTAuw6?HyYC^mTWE~39hVqLZLnffVWCZ{>sS)o+66|;hN z`0x?Q$e0aFA7@0tPL&U8Rklo=^y=9|hemfzd`A{-T<5gTtkS}WQ(<6(@yRR1(!(Bi z+42>NlMS;pd()OJQ%1UV=`7iJHU6S8Ps&a%1*j6{MUUBzbY8{E^4P#DB8bFI}QwaOwThBl1huHic!cOsDjdC_XwU#zx1QMo8vbD3^(en&(0-OdYjhr#KL=Fy?z@Xc=y6szr6>-dY?nV zoHa^C;wUXsr%l&07(y|b%phDe);~J5#}=f@2{LK<4|3!9SCP`1n2kUwtTp=;N>4me z%S;O43=O^n+(pl~kx3U7%1aXmu-cG2!q~4*x|BgrHT>Nd{njE^WedQ<&j4ok@wzvPo8`3IX_tPw?&H< z(ym=Qx$e5_qZzxsPoF+AeE4u#wQ7|gP72_;5Xa`tn=376g;H4o z_zCY2?b@~5uYyUpw=(&BezT@hH@UVf!@};MG5;U{gM*!ENTm$ctxoJ5z!L)%Dwd}k zWqdu`?4n0XD`4JCs2_Ykt6S$zQV}N!jrn$p{CnXXsvrb_iM-J8Ygn|DNAEoCFOTAs zr}`SmypJC}t_rni(V~Dv!H;$7)R6}sctB>(oGE|&;~#?o5VCOLLV5e`w^e{CsB~7L ztbfId6PP$aV6A}`nMvWS>XU`rzLF&>=FLkr|>8GFMjyvwq4Fdi8^^=P(x=88! z=%bHZn7lldD_2(h*npsUK0DlRo43j`yzLrF_-y4+caoEnq}lnYvhz^3^m`c_G*zMe zl|lzXP7t>$ExzxCe3%p{z4?HjAe#8|T!}f~&hb zPDRWm6i&HP3cbjTTOWf$HP9g?hgnp>7%Y7M@B_AR;eo#n9Xe={#3wT|(+wwX>(;H4 zy?ghnuo8%`v@;FkyuAn0vZu0n@|izAzyJRG(z0bsY_rO8N#l`kLx&Fat3$$$88b${ z`ig6FJ~wdSK=)xk=8o*es8H;AMvWS!asU1Af2DEb#;Q<_8Z}Zy-wgxSR=nv={6GKv zb8Q@m6Z2@_zP&0`Qc{w9`st^N=R5DbqjXWRZ@lqF&6hnfdqqn#@1&z#IrBEd8Ld<# zhK@snS+i!VpA2FPZQ~e7@!~UEk*=7?v-106E$X*@S*9`PI12Il$2^%W-zG%xhu7RE zjnJ|cmm{8w7XO6Sd#e#Z9mW|ti60%Wq=~I=>((vh;E^NJ_tnSo5+p)N3g=(g>SKAp zJAWJwj=W^Jw1+|wkV8uT5!U32E5h!+`)>LE`|lAZI$Y}9xwD%W!zf@J7Ev(CQ}$T4 zthH;`5=349{{3C$v|;RlFS+Crx%%p>b@=t-i!a(Jx%~3WUBA{No~BHhBDdXkoAQE6 zXdQ=IER%|K{`u!)gtAL2RjPz_ycr7e%{Sl3WtUy1ehz6@u3QOTwYJHz9j%mHc;SVb z?-B5i3QgQ%(YP#Fut0c@pltw{=+#$Wm9b;dXu;ib%Prbi&~NeN-TKdHr6Lhz#Q%Nz zB?vO4kkM+pLY%GW90+D~sc5uj>0m>y{OQA2Wx*!QJ0Ms_OlbvEF*A&GLa*!4OD=B> zB|OC)y2X?9tihhXRjXEeDu{IPwL&BIJn4e|7#Ji5UeH&fu)b9Np=b@#wlw9Abx7^ihkP}aV;93+NmC*PWFJ3G!ykL6f>#x6F1(W#MctT%!<(0yr z65SVHd?B@K*Vg&ifB^&K)?07Y@VoB1OD0dAtbT9W)Vto!lDABDJC z$Gq5sQ?cnTxZnaAJ$kf_4tdXSvJf&+NeN_&`S}-8x9`Y858=P3 z&t{+$DZUUWDAZ8AQqCoVYJa;{vUySyQ3xa(0t4niv7+SC<{f106}NyMY@}ra3 z8xOE))259UNkfBenJo^yb1pSu!UQ+S8Ut(q=QXdr_L|$E+3+PxmS|7GQNmSMU8M#N z#(nnLXQ~98lTcu-0&_TJg`J8>CFZcpI`$+qaByf!#~z9}+w|MFZ?~YZpl+Ay)vHT2 z9BRs*)N44o|Ni^k27*f2v}sc}9X&LRaA--#VWDj(Y`uB;r$D&)u(Tm(z}*t`)r<_7 z&dtG)HjL=gZ=Z9q`#h~{XABK0%Y;Rla?d9iBU1vYJSuZgB>d^_0uGtb@|Q0aCyVd> zm&wD(W!Sl5ab%_N$IZSO8DCSaUEKW(H8fFgE*fwlsgwa@pLF)~QA1++@1rE8 zY7H5G-CY{bZ9t$BJUH$L&!Jq^s#V=EYZ0^f5no#Ro_XdO7beidc?K1V&I+4VA`ac? zXC9oV&~Zq`xeW8Z=9+6X4b$>ig$ z%S;l8XxBAw-b`vICCa9~JLMYefy=>BVd_x9+A}$oXijV~ma$DwyrEm0n5Q=Bp8VX5 z{XF>s_(Ai*-fmQT9*#(wSwQBpCMCMEG8s@aW##LHw_nl z%f!XX%v&Fo*l05-F=lv_&sQv%4nNLGIp5$=nr`#v&02=VkzpKS-F)-S3g4+yCo}?w zG#z^w>(bNH-8`8u=PIeGsq(=GA6O6_9#T=5j+Qp-yoLu39ci`W{DyNX3bZw)6P{*w z4*OUJhllL30v&r54%-3^92R!{`t|P6vPqLBE{>LF-Z>|vg_4dv6!Y}PTYq5LXTT-CulA-zPFc$V5gFG-qvEXc>!@ z%sZc!idgTl@itFy`Qh^0yytxT9Ztr@+3nue0EPI`jkqRF8cK3XvdsBqxm@%9Xi(s^ ziOzY2e(Q$u`UN+pY zYlrlMrB5ULa>E1Q4Rt2s&0)7mTK%TT%Ny!T#4z;Vx2^Cr@6ni7~fE@bq$1-{6aLc;eZ@*m?fW5(;ciySN9O4Zd zHq3&Ecdf_{1(z*brt@UxNulRljh09%AaO`ZNf9pK(s9_zIU<#jLrdmC6Zo1nYqTeH z3xa3Tq)EDn%rF`#tnr2A6vUkoJ(VRSJ3Cvxp7o8+39OiqP*$*Ye2&FuYkK$Xjh7Ci z<=TJ0?CdZw>Sx$u6w;>Q{f?dkWLSHQsUen#MTjp?FI>3%wt^PJ+LV_g798^N9j~6< z(`4tt{nGBAe>F!)hr$sFw3kM@d(#KY)$MyaRA9*K^k&|&I7guH(s73bTW8Bl%U25a zym|8!hHE#R$XgiBkF2BeuzqMRr{Zzw#vKgIm++QeoA2z|W(kDpnTEqGmPG}mVSqa# zypCmC$2`~*+My@mZGPUNCgExPU{AxIlY zdz9b*{`cCdbC-d2v=qMa#vA%*xBJjIz?PjqE(lv|9D%%f^O-%Q6;v8As3f+>gS&=0USLP3(-L@N*7E#iC+zt5(B?4Rwylxe|AOSbB&v*RJ@hP@#hE=FmcL zVcvw>uwjEPOf#HAQszfz=c-b}gvgO?TUKpbg>%oy>w^laG7P5#58#aNX5#jSKV0vo}_tr6=NsP>-T~Ohi}FEQLLa)G!g9%?b<-0 zDnps3%Ghs>LMgi)o-;@9kH&+!cf-(9ww$YbUJN4s@NghheR*>(^ze^EuY+j)hrIqY z)=09Q#xUHPWrt_El2)yrw2P|-oJ|>_gph(&ixc^lEr8o`X*KdL*>~iSNy8SM66!%w z^$gE!*{^+{+hp>$*W8)pTXjc*u)0t*MMLSAU?RSJ#Y)+_d96I&vcF=9*^%y`Vz2BW zN%5&sp`xreokTMWka~p_Pgi)em0`oU`U#{HQ%u$oU6gv$FR~)>>={ zf&l01PN-A`NFPuDD}|=yJ$v?P1qDQF7jyuJWO55)qYBlO91gmfP91AAz)_8M?A(ns zfJ5UKJU|Rc5P2*j2UrKDE?Tu}9<-*HZxhWrG(S`sJR>H&jvdih5M!m9{~{vhOU8VC zKhsMk;1I>z8>dMeT3u?t_s5jEn7DHv9IZ_K@x52tE^henHThxVIz(D{h#}@Bfx>0- za^ec2P(D-(;0qRZlgK}uIMhh4rIt);kdJ=jXBuKoJ`+~`2y^*Bf54C1vrHPs`IiUK zh$|uo0_(=;L$1`XR~PG`O|(wDS?8-%tZ?&-!q|Sgy!y>#Y~n;RCs;cKZ;nOq+v+#> zD16C1TJA~hDV0hY%S&LESn+_~K!9MiO7GcSzx@8jycsfXF6JGGD}G02Sm*WIFy8&c zSy5BgEW@zXH?$=bm4=S-5m$0Kz`1S*903=~6+o#>OPRTTmE7{tSQXh^+q!H0Ta^fv zeZj(1F_8`L%F8nc8& z)htd|gz}Iixl&d6eCd4Y-6tLU%J^whpNlA#j~6AuXB#|PSbO$J!%hx-ddO)61Mv$o zR9N{YAVnn`yTBVic^lSyj+;yvVS6h2;Z9zyI0J~1&edwmpd_r=Ysn_>7$UAJW?FHE z*1}7JZSX0W1K0@K{OQ{bJaHl-L>lw0Tx=LsCBp_<^8quaEQDh|E*^!UP!onID7gLV znvyERaHd4F#JZB!tuu@kdu1Wku6DuLa1^g|C^@*;AvPNfTan>XI@>eadkDnO`5^M2 zGRVVqI(KT17aA+LJPB0~!AgaiQ|l2j;UWE9Uwi-=L`wy{zoNsl!pN6f^oc!GqJ-Eu z`E!FVMvwx*Rl3kYg17{3+3A%gN1!Z&-yA8~hn=s!d()_KgN79_1M{w$@s(Wl@PeJl ze+cIQ9zz*MNlygHI4@HiWP_6U&-JJv>G+yGhqA4nxl^Xz@~EU^VK^PTCm6RC?*MJs z@T=^|+J*BYj){JV8{u{j9m@<=p+Uvw8^A`u7<}>tJx2j-N7J-vV@bq1Xnrn8saT;Z zjc8b-@wf2aXCYS{S3xMW$%G2z)fnejS|0JoAT*!gTeU~=u`w+_Ab%Qgr^riRe z3G{O0!OuRB87sJNE&v!I+}^{l1ybmSV?Wmj^nOF^~$O1-&}_L=of1Ps|g% zs1YfZt4sCx1bnJzkMzeT*=DtB%QzetmRc)GYF4iyHSi;K`sT951<&D8CWEy#h=eoG zqVl7prqjk5lAw}C{RkF0Kh%SiiW);fI%GfHNpNPu%&f~NQwvtm`&ZLv=tfE^Z>TjT z7RO;A*P_alDUFYnWy-&1VuK|$kcJ5_Zdxc(fD>)-_U`B*H_E|7hYN~|fwTEpI_-0w zxmdtF0fHjfKJmN5=hsYxgXp7F$H?)$kF(; z42HCRE?>m_paUNqF)`H(T&b!>1;g#|nqd;RfzB+wQQ^zs8QJRaX7o*Cj=Dc>;u`@x<5k&JD;?tEZVD3^f#=RB8?l? zm(@GAV#maTA5Un{Y#N0+db=pkC z6(p(6BK&vTQxUJk#G29;r^z0LymiLV$cSP}fax zQikbK3ocw?+rDCQJ|Q^jn3?GXfnJ4sg30=hL(BRzZX6*!9AO zj$z2XAoYR<6JSh$N}ic9OV1q$3uY&giB z`5YP3@pn=lmP9fp2E5?r5Ax*Hy23X?`nev(3tt|=uJSo|Jf$yHx_A~oOE+o6bMhQ` zd-w>9AX2GCY7J)}RS<<@${uhZwf-%uoMmHs|;k4$5;^YImtv3Z{P(sa-bbY6WG6$*5pg;z&%* zAJMUY)MDbr)(&^>h*kO>n~*^r(9TdoSsf+KYn>-6A9_V<#aBem2t*qFV_Gh@Q@6fyRlDw54O*A1Bm7unRyUX;F9!(_`4uPS@W4U#2sV+u z=asOa;XY+i%vB%)(^Bl|R9K)i6xN<;U8Nj)s+TcYcfZKNF|7dw1U-DF5Q_|`oht3C z)HZ_0806#d!lj92gv;gVkdsB{O6fRShD6q6;jB4TAeM|OV&epzS4@F;=aeP}ZwrHH z#Ss@SP}ju?Ln|K|Eh7gHM`{N025#sN58B``(Ei|!xRc_5X`r}Sfc%b;dR1%6Xc&)- z{AH?fR`#aQBtmSDXhzmbj;@_b2jjWbx{izF3RN@Zgi|J6<~b|*To>kSK)cq zKuD!>isI0(QNso}WWKeY8pK0Rb{@d{MnsIxOCMTq_EHtF7wd~5w`0e;>EWWWQhcH^ zOhzYvWlzan^7ZT2lkG#rMetk^uK45DmKr(t<4UJq{p0f{wh>1nb!&`R1q zd!MY>x={%PkR{WUNnwNn#=^ok9ou_)H1O^hR4x=4x1s_PCFMCTR2)80(JW2yXgFh> z*2={35rJ$dnBF>ta~@0&=L~QGsIW|9^S5v|apYcP4k%BZ%AhQo`tvc^TSo;fq=h>k z3AaKyx~iK*GjUFz3ZW_yQM1S!QNmfNn3t5**OH@Ppt$63wXTOwUcd zPY)b!6pBjbI_MTV6rHj4BM|?FMP=%R_^%t4Vk`z zmOeOA$5sT+o0dJp?^<+~yVD11T;vkrKuO|2*p-UHPmSj}ef)44KWgo#5Qwuaf@MUH z?%niUxiQ~PlUL?Ub%#6Jo(D7=RI!fr8sWfwo@8ogFE*#hJ;H(0&jEM%7cNw+!fe6U z>MG*BlZqANk+svmLg6^z^Xf@0oDf>GW_3A&L^x2=IFR-KOEeA!T7%`T00000NkvXXu0mjfLJJwB literal 0 HcmV?d00001 diff --git a/front/bahnui-front/src/assets/logos/actransit.svg b/front/bahnui-front/src/assets/logos/actransit.svg new file mode 100644 index 0000000..aa9dcf7 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/actransit.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/caltrain.svg b/front/bahnui-front/src/assets/logos/caltrain.svg new file mode 100644 index 0000000..ecf7e8a --- /dev/null +++ b/front/bahnui-front/src/assets/logos/caltrain.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/desmoinesart.svg b/front/bahnui-front/src/assets/logos/desmoinesart.svg new file mode 100644 index 0000000..080c884 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/desmoinesart.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/evb.svg b/front/bahnui-front/src/assets/logos/evb.svg new file mode 100644 index 0000000..6fd28c2 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/evb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/flixtrain.svg b/front/bahnui-front/src/assets/logos/flixtrain.svg new file mode 100644 index 0000000..24c5fd3 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/flixtrain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/gkb.svg b/front/bahnui-front/src/assets/logos/gkb.svg new file mode 100644 index 0000000..7e90e76 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/gkb.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/goldengate.png b/front/bahnui-front/src/assets/logos/goldengate.png new file mode 100644 index 0000000000000000000000000000000000000000..8442a2788ce570c4586d65d526affe4de07569d6 GIT binary patch literal 129544 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�h*3U`4V}Ge8Xk34I*_gik-d0M?{5XwFAY!d7;3wxYkDnN@h@474jqeY5 zvL3f~Jm!{+Ut8 zed9>%@-qIMRU7pTW{i|-RNWS+6;b{J!##+v;gcV@CpkPtAi4>fzT5lm- zPSg%q?kJQ;d$5Que>vq+9bWvDY37*ZiA;yrMFejMnN}ip*~CUe)b1DrD=ez#!IkyF zFa@rDSK?O&1}a8DfSpp{Ql=P50Loh!St8U!(Qw5vObQ6BUN59=TB)X@^>?f3lT@dy z3-dJrP_aoC=oxq~7U>SB3n$QWM0WV*P9RTI+FGhF()bX`l0G2b-Y zGZ`w8toLUl{x;$DYM1gqvEPw*UB28hS+J{LXZ!}qFU!|tk~;d9n=Hq|B&x379XB>) zwA_ifFWce}MW0;m_atX)e{$JJ>idF(R=OPA{U05n+{1*m7yRN6#5;7-RxdC(eXZd5 zug)GH_M$2vP6-|prllbr%Rj?qyw;j)F&1HReHG0wOfBuw+hr14-RyT|mReU*&>k3n z32?ExR>N{|DqM_|=auE>*-21OEO#sb!K9EdNVqDm)Xuf^?d$fPO4n{J;)=0GlA8@* z!{bh{(~+7!eMcI!i6n#Nf)z6}`0G49bBL@SyzWe#+%>oJLIgflo*Wkk+c+R-u#q1w zEX0Co1im*H-d2dGWP4=6I)h2MS+tI9K5Vpn{9&&0+>hTLzPyL~FTGN{e|!Dux@K8X z%o{Amhd?9+o}xOS*LNRY#sFaQa;Jk{8D>W7$V=j;mKSc2&3nHB+@808pS?0%$KGeQ z9|j>X#A*0I_paSY%YZ-K8WGK&MgWiFF55E;%+ zA&x3Q#tMUDgN59!Et6MIwnt6X-^IZ?$~LKWTX*R8d9vh>j&( zCQE}@D3TzoHS4F7YvoS?>hF3J#9c^bJzkSNIdxwbnwfTIPJPxja%E^YJig_$+q>8z z>0I*GV|n)E-Ywr`y{U@!B!LR!acR|}+dUc@-L!S|I$**EKvR&`r( zOW8^~at|j18lBZq9b07UP!oQU{~9HSWyGxGbseW~;AEM9%|%HGS;g9y@g_vIcm;A2 z3@J{^)igB9847duZr2z$JG8lcSZl^BXx``bd5)3Jo^$#J*w&=LWF?mz@DR;Ed7q*!{y1b?L-`KxA zQzmT$gj0TB>0|#pe^64lWp-KdXe^xX*{O)t7Y7w$-`8WB>4_UTdcs{&r_P^9u~E}M zsgU2pJKBMeXuqBiXX$WLTa}VAbHK8~{WsZWreTN*Iz_Z9%E%%*smr#N%c`98?@=?7 zOcfs#3@zmbO3FW!ule*|>gM!d?)%g=JTkrRO>O=UfnH7^x|WNz4pfMPlht(DANRI} zTmDdWM2MoLbc=maMI-8Up}hRv8KoMPI%6Locdoo=UC!-acV#`8$;^4UQ&b_|9v@t= z{`wwMJJH*tTLJnyq~ys^@PjON{`kwe=gtsisdSdl0iUA6?banKpnuHmPppOP_JeN} zo)|2vB)y77W(7ZvLf~^> zegxHADzJ3_^LW#(kK@=hI%V-L^vf>SpoO<@@BeBDzdv{j^)wrSk9kvs+Aq-cE@MxF zvq^fv`=(sPV!A+?+S+Gyl`#es1sVJ&=L8VU&L(Cj6631V_ub*C-R~%T!^VY>a#Y}L z+x@#Qdu?947eOSo*5p>nriyi^{z`pTI~6qJ`lR~n@5Gw{+Y_}qQ|mhCe82=XxbKA> zDNlx4C=1xPG-Pnx{_Bo0ZG1r_XTmjXFxZn!a#2PNA>p%M8_!Ny$(h%8*&9dCq@7s_b<=yh;F+k#)-n%vj?Mu1&BXMz8FdDEb2A^clCh_-b; zreEATetg>NTQ#_8zT(J#zSi%L5hiI1D!0QuHR%$7U1g8bLV7s1@Ca_eh*j$cVj>qd z2aI#gS$<~siDf?JX7(;($qJd;>jr6)`?3^s=L;m(>3agCN>ZMu&vzx=+drEnF^C+; zYhp4xPFt!y?tNxwmYdD*ml6!UJukP;%AmsJWXX$Mx&V?bN#>OyGGE9GqWvK%wl>eC zoGNRnCGXFhd|3dJXVZ?}4w;Y|Gnsfg&R5vZsA2xIef_1h|1OE`N+XwGS+6Sbp`tRTr7OZ4MA# V>h93>jDZ0DJ{v0sawW-w^M8*NkO=?) literal 0 HcmV?d00001 diff --git a/front/bahnui-front/src/assets/logos/hlb.svg b/front/bahnui-front/src/assets/logos/hlb.svg new file mode 100644 index 0000000..7bb27ca --- /dev/null +++ b/front/bahnui-front/src/assets/logos/hlb.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/ieir.svg b/front/bahnui-front/src/assets/logos/ieir.svg new file mode 100644 index 0000000..dee0f5b --- /dev/null +++ b/front/bahnui-front/src/assets/logos/ieir.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/liemobil.svg b/front/bahnui-front/src/assets/logos/liemobil.svg new file mode 100644 index 0000000..91224a1 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/liemobil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/luxtram.png b/front/bahnui-front/src/assets/logos/luxtram.png new file mode 100644 index 0000000000000000000000000000000000000000..e8fc48415512c477963a9d2c81f7a1fd85f67f03 GIT binary patch literal 11122 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 Gp#KA^j>;_n literal 0 HcmV?d00001 diff --git a/front/bahnui-front/src/assets/logos/marintransit.svg b/front/bahnui-front/src/assets/logos/marintransit.svg new file mode 100644 index 0000000..ca663b0 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/marintransit.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/metronom.svg b/front/bahnui-front/src/assets/logos/metronom.svg new file mode 100644 index 0000000..97f6b0d --- /dev/null +++ b/front/bahnui-front/src/assets/logos/metronom.svg @@ -0,0 +1,2 @@ + +image/svg+xml \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/regiostart.svg b/front/bahnui-front/src/assets/logos/regiostart.svg new file mode 100644 index 0000000..b5d83aa --- /dev/null +++ b/front/bahnui-front/src/assets/logos/regiostart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/rheinruhrbahn.svg b/front/bahnui-front/src/assets/logos/rheinruhrbahn.svg new file mode 100644 index 0000000..0a352e5 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/rheinruhrbahn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/samtrans.svg b/front/bahnui-front/src/assets/logos/samtrans.svg new file mode 100644 index 0000000..65649b7 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/samtrans.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/sternhafferl.svg b/front/bahnui-front/src/assets/logos/sternhafferl.svg new file mode 100644 index 0000000..24cd613 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/sternhafferl.svg @@ -0,0 +1,3 @@ + + +image/svg+xml \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/stog.svg b/front/bahnui-front/src/assets/logos/stog.svg new file mode 100644 index 0000000..7088668 --- /dev/null +++ b/front/bahnui-front/src/assets/logos/stog.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/vbglattal.svg b/front/bahnui-front/src/assets/logos/vbglattal.svg new file mode 100644 index 0000000..067b71a --- /dev/null +++ b/front/bahnui-front/src/assets/logos/vbglattal.svg @@ -0,0 +1,3 @@ + + +image/svg+xml \ No newline at end of file diff --git a/front/bahnui-front/src/assets/logos/vias.png b/front/bahnui-front/src/assets/logos/vias.png new file mode 100644 index 0000000000000000000000000000000000000000..cb9993704b813d0a2a657d5f50e73b377a4b3e67 GIT binary patch literal 4841 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 X+nY*=OnI01`{xtF+#X(U>X-08{$!Q} literal 0 HcmV?d00001 diff --git a/front/bahnui-front/src/components/explore.vue b/front/bahnui-front/src/components/explore.vue new file mode 100644 index 0000000..28b1d49 --- /dev/null +++ b/front/bahnui-front/src/components/explore.vue @@ -0,0 +1,107 @@ + + + + + + \ No newline at end of file diff --git a/front/bahnui-front/src/components/routing.vue b/front/bahnui-front/src/components/routing.vue index edb5e2a..c4da32b 100644 --- a/front/bahnui-front/src/components/routing.vue +++ b/front/bahnui-front/src/components/routing.vue @@ -12,7 +12,7 @@

{{ leg.line?.fahrtNr }}

{{ leg.line?.operator?.name }}

- +
{{ leg.destination.name }}
{{ timeWithDelay(leg.arrival, leg.arrivalDelay) }}

Gleis {{ leg.arrivalPlatform }}

@@ -96,7 +96,7 @@ diff --git a/front/bahnui-front/src/components/search/timeSelect.vue b/front/bahnui-front/src/components/search/timeSelect.vue new file mode 100644 index 0000000..3703861 --- /dev/null +++ b/front/bahnui-front/src/components/search/timeSelect.vue @@ -0,0 +1,52 @@ + + \ No newline at end of file diff --git a/front/bahnui-front/src/lib/operators.js b/front/bahnui-front/src/lib/operators.js index 0233aa4..abc78bf 100644 --- a/front/bahnui-front/src/lib/operators.js +++ b/front/bahnui-front/src/lib/operators.js @@ -32,7 +32,7 @@ let operatorfunctions = { return new URL('../assets/logos/blauwnet.png', import.meta.url); } else if (operator.id === "waldbahn-die-landerbahn-gmbh-dlb"){ return new URL('../assets/logos/waldbahn.png', import.meta.url); - } else if (operator.id === "ostdeutsche-eisenbahn-gmbh"){ + } else if (operator.id === "ostdeutsche-eisenbahn-gmbh" || operator.id === "odeg-ostdeutsche-eisenbahn-gmbh"){ return new URL('../assets/logos/odeg.svg', import.meta.url); } else if (operator.id === "trenitalia"){ return new URL('../assets/logos/trenitalia.svg', import.meta.url); @@ -42,7 +42,7 @@ let operatorfunctions = { return new URL('../assets/logos/sj.svg', import.meta.url); } else if (operator.id === "vy"){ return new URL('../assets/logos/vy.svg', import.meta.url); - } else if (operator.id === "danische-staatsbahnen"){ + } else if (operator.id === "danische-staatsbahnen" || operator.id === "dsb"){ return new URL('../assets/logos/dsb.png', import.meta.url); } else if (operator.id === "skanetrafiken-oresundstag"){ return new URL('../assets/logos/oresundtag.svg', import.meta.url); @@ -170,8 +170,48 @@ let operatorfunctions = { return new URL('../assets/logos/bart.svg', import.meta.url); } else if (operator.id === 'san-francisco-municipal-transportation-agency'){ return new URL('../assets/logos/muni.svg', import.meta.url); + } else if (operator.id === 'vias-gmbh'){ + return new URL('../assets/logos/vias.png', import.meta.url); + } else if (operator.id === 'ac-transit'){ + return new URL('../assets/logos/actransit.svg', import.meta.url); + } else if (operator.id === 'des-moines-area-regional-transit-authority'){ + return new URL('../assets/logos/desmoinesart.svg', import.meta.url); + } else if (operator.id === 'iarnrod-eireann-irish-rail'){ + return new URL('../assets/logos/ieir.svg', import.meta.url); + } else if (operator.id === 'caltrain'){ + return new URL('../assets/logos/caltrain.svg', import.meta.url); + } else if (operator.id === 'marin-transit'){ + return new URL('../assets/logos/marintransit.svg', import.meta.url); + } else if (operator.id === 'samtrans'){ + return new URL('../assets/logos/samtrans.svg', import.meta.url); + } else if (operator.id === 'golden-gate-transit'){ + return new URL('../assets/logos/goldengate.png', import.meta.url); + } else if (operator.id === 'regionalverkehre-start-deutschland-gmbh-start-unterelbe'){ + return new URL('../assets/logos/regiostart.svg', import.meta.url); + } else if (operator.id === 'evb-elbe-weser-gmbh'){ + return new URL('../assets/logos/evb.svg', import.meta.url); + } else if (operator.id === 'metronom'){ + return new URL('../assets/logos/metronom.svg', import.meta.url); + } else if (operator.id === 'flixtrain'){ + return new URL('../assets/logos/flixtrain.svg', import.meta.url); + } else if (operator.id === 'verkehrsbetrieb-liechtensteinmobil'){ + return new URL('../assets/logos/liemobil.svg', import.meta.url); + } else if (operator.id === 'rheinruhrbahn-transdev'){ + return new URL('../assets/logos/rheinruhrbahn.svg', import.meta.url); + } else if (operator.id === 'hlb-hessenbahn-gmbh'){ + return new URL('../assets/logos/hlb.svg', import.meta.url); + } else if (operator.id === 'verkehrsbetriebe-glattal'){ + return new URL('../assets/logos/vbglattal.svg', import.meta.url); + } else if (operator.id === 'stern-hafferl-verkehrs-gmbh'){ + return new URL('../assets/logos/sternhafferl.svg', import.meta.url); + } else if (operator.id === 'graz-koflacher-bahn-und-busbetrieb-gmbh'){ + return new URL('../assets/logos/gkb.svg', import.meta.url); + } else if (operator.id === 'luxtram'){ + return new URL('../assets/logos/luxtram.png', import.meta.url); + } else if (operator.id === 'dsb-s-tog'){ + return new URL('../assets/logos/stog.svg', import.meta.url); } else { - console.log(operator.id); + console.log("OPERATOR:"+operator.id); return (null); } } diff --git a/front/bahnui-front/src/lib/remarks.js b/front/bahnui-front/src/lib/remarks.js index 3e5bda8..ec342a8 100644 --- a/front/bahnui-front/src/lib/remarks.js +++ b/front/bahnui-front/src/lib/remarks.js @@ -18,18 +18,36 @@ let remarkfunctions = { return new URL('../assets/icons/power-sockets.svg', import.meta.url); } else if (remark.code === 'wheelchairs-space' || remark.code === "RO"){ return new URL('../assets/icons/wheelchair-space.svg', import.meta.url); - } else if (remark.code === "bicycle-conveyance" || remark.code === "FK"){ + } else if (remark.code === "bicycle-conveyance" || remark.code === "FK" || remark.code === "FB" || remark.code === "71"){ return new URL('../assets/icons/bicycle-conveyance.svg', import.meta.url); } else if (remark.code === "bicycle-conveyance-reservation" || remark.code === "FR"){ return new URL('../assets/icons/bicycle-conveyance-reservation.svg', import.meta.url); } else if (remark.code === "2nd-class-only" || remark.code === "J2" || remark.code === "K2"){ return new URL('../assets/icons/2nd-class-only.svg', import.meta.url); - } else if (remark.code === "boarding-ramp" || remark.code === "EF"){ + } else if (remark.code === "boarding-ramp" || remark.code === "EF" || remark.code === "ER"){ return new URL('../assets/icons/boarding-ramp.svg', import.meta.url); } else if (remark.code === "no-bicycle-conveyance"){ return new URL('../assets/icons/no-bicycle-conveyance.svg', import.meta.url); - + } else if (remark.code === "RE"){ + return new URL('../assets/icons/reservation-suggested.svg', import.meta.url); + } else if (remark.code === "9N"){ + return new URL('../assets/icons/deutschlandticket-ungueltig.svg', import.meta.url); + } else if (remark.code === "HD"){ + return new URL('../assets/icons/quiet-zone.svg', import.meta.url); + } else if (remark.code === "SB"){ + return new URL('../assets/icons/ticket-required.svg', import.meta.url); + } else if (remark.code === "komfort-checkin"){ + return new URL('../assets/icons/komfort-check-in.svg', import.meta.url); + } else if (remark.code === "QT"){ + return new URL('../assets/icons/tilting-train.svg', import.meta.url); + } else if (remark.code === "SL"){ + return new URL('../assets/icons/sleeper-couchette.svg', import.meta.url); + } else if (remark.code === "DU"){ + return new URL('../assets/icons/special-ticket.svg', import.meta.url); + } else if (remark.code === "RC" || remark.code === "OJ"){ + return new URL('../assets/icons/info.svg', import.meta.url); } else { + console.log("REMARK type:"+remark.type+", code:"+remark.code+": "+remark.text) return null; } } diff --git a/front/bahnui-front/src/lib/routes.js b/front/bahnui-front/src/lib/routes.js index 11c639b..2475b64 100644 --- a/front/bahnui-front/src/lib/routes.js +++ b/front/bahnui-front/src/lib/routes.js @@ -3,15 +3,15 @@ let routefunctions = { let line = leg?.line if (!line){ return (['black', 'white']); - } else if (line.productName === "STB"){ + } else if (line.productName === "STB" || line.productName === "U"){ return (['white', 'blue']); } else if (line.productName === "S"){ return (['white', 'green']); - } else if (line.productName === "RE" || line.productName === "RB" || line.productName === "R"){ + } else if (line.productName === "RE" || line.productName === "RB" || line.productName === "R" || line.productName === "Re" || line.productName === "REX"){ return (['white', 'red']); } else if (line.productName === "IR"){ return (['green', 'white']); - } else if (line.productName === "IC" || line.productName === "ICE" || line.productName === "RJ" || line.productName === "RJX"){ + } else if (line.productName === "IC" || line.productName === "ICE" || line.productName === "RJ" || line.productName === "RJX" || line.productName === "ICL"){ return (['red', 'white']); } else if (line.productName === "EC" || line.productName === "ECE"){ return (['blue', 'white']); @@ -21,10 +21,10 @@ let routefunctions = { return (['yellow', 'blue']); } else if (line.productName === "TGV"){ return (['IndianRed', 'white']); - } else if (line.productName === "EN"){ + } else if (line.productName === "EN" || line.productName === "NJ"){ return (['white', 'navy']); } else { - console.log(line.productName) + console.log("Line Product:"+line.productName) return (['black', 'white']); } }, @@ -49,14 +49,17 @@ let routefunctions = { } else if (leg.line.product === 'national'){ return "NAT" } else { + console.log("Route Number, LEG:") console.log(leg) return "" } } else { + console.log("Route Number, LEG:") console.log(leg) return "" } } else { + console.log("Route Number, LEG:") console.log(leg) return "" } diff --git a/front/bahnui-front/src/lib/services.js b/front/bahnui-front/src/lib/services.js new file mode 100644 index 0000000..68916a1 --- /dev/null +++ b/front/bahnui-front/src/lib/services.js @@ -0,0 +1,18 @@ +let services = [ + {id:"db", name:"Deutsche Bahn"}, + {id:"vbb", name:"Verkehrsverbund Berlin-Brandenburg"}, + {id:"pkp", name:"Polskie Koleje Panstwowe"}, + {id:"irish", name:"Iarnrod Eireann"}, + {id:"oebb", name:"Oesterreichische Bundesbahnen"}, + {id:"lu", name:"Mobiliteitszentral (Luxembourg)"}, + {id:"bart", name:"Bay Area Rapid Transit (BART)"}, + {id:"dart", name:"Des Moines Area Rapid Transit (DART)"}, + //{id:"nrw", name:"mobil.nrw"}, + {id:"danmark", name:"Rejseplanen in Denmark"}, + //{id:"zvv", name:"Züricher Verkehrsverbund"}, + {id:"bls", name:"BLS AG (Bern)"}, + {id:"nrwbus", name:"DB Busradar NRW"}, + {id:"cmta", name:"Austin, Texas (CMTA/CapMetro)"}, + {id:"vrn", name:"Verkehrsverbund Rhein-Neckar (VRN)"}, +] +export default services; diff --git a/front/bahnui-front/src/locales/en.json b/front/bahnui-front/src/locales/en.json index 7a9e3ab..32875db 100644 --- a/front/bahnui-front/src/locales/en.json +++ b/front/bahnui-front/src/locales/en.json @@ -32,7 +32,9 @@ "compulsary-reservation":"reservation compulsary", "2nd-class-only":"2nd class only", "RZ":"barrier-free boarding for wheelchairs", - "on-board-restaurant":"on-board restaurant" + "on-board-restaurant":"on-board restaurant", + "RC":"Reservations at DB ticket machines/travel centres & many DB agencies", + "OJ":"ÖBB Nightjet (www.nightjet.com)" } } } \ No newline at end of file diff --git a/front/bahnui-front/src/main.js b/front/bahnui-front/src/main.js index 78c94a9..01ba81a 100644 --- a/front/bahnui-front/src/main.js +++ b/front/bahnui-front/src/main.js @@ -9,6 +9,7 @@ import { createVuetify } from 'vuetify' import * as components from 'vuetify/components' import * as directives from 'vuetify/directives' import SearchBahn from './components/search.vue' +import ExploreBahn from './components/explore.vue' import { createI18n } from 'vue-i18n' import de from "./locales/de.json"; import en from "./locales/en.json"; @@ -19,6 +20,7 @@ const app = createApp(App) const routes = [ { path: '/search', component: SearchBahn }, + { path: '/explore', component: ExploreBahn }, ] const router = createRouter({