Compare commits

...

21 Commits

Author SHA1 Message Date
045a169e85 back to search, remove services 2024-12-01 01:19:51 +01:00
df2e604e49 change back to routing 2024-12-01 01:15:20 +01:00
a41dbdb964 remove search from App.vue 2024-12-01 01:13:23 +01:00
9bfa23c5eb Remove all vuetify code 2024-12-01 01:10:35 +01:00
d8a7d2589f removes trailing comma 2024-12-01 01:08:45 +01:00
4161f27cad remove trailing commas 2024-12-01 01:00:34 +01:00
1b58abd95d remvoe routing from search 2024-12-01 00:58:14 +01:00
000306b4ed removes pickers 2024-12-01 00:54:11 +01:00
4433f83bab change App.vue again 2024-12-01 00:49:18 +01:00
e0aa6b0d8b readd bvg svg 2024-12-01 00:46:28 +01:00
320edc94af readd vues 2024-12-01 00:39:56 +01:00
d786a09043 adds libraries 2024-12-01 00:38:27 +01:00
57205dd2cf readd backend changes 2024-12-01 00:34:54 +01:00
9b930cc694 Revert "reapply changes"
This reverts commit 0be71f3a24.
2024-12-01 00:34:25 +01:00
0be71f3a24 reapply changes 2024-12-01 00:31:44 +01:00
d9c82fde90 import vuetify again 2024-12-01 00:25:11 +01:00
77fc6ab566 evert "Adds vuetify, choosing time and date, more hafas operators"
This reverts commit 9b79816336.
2024-12-01 00:21:54 +01:00
c88dee500d Revert " remove imports"
This reverts commit 41ab0be9ca.
2024-12-01 00:21:30 +01:00
908ba62f58 Revert " revert main.js"
This reverts commit 132dab3448.
2024-12-01 00:21:11 +01:00
132dab3448 revert main.js 2024-12-01 00:18:24 +01:00
41ab0be9ca remove imports 2024-12-01 00:15:41 +01:00
6 changed files with 63 additions and 227 deletions

View File

@ -16,11 +16,6 @@
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.16", "@babel/core": "^7.12.16",
"@babel/eslint-parser": "^7.12.16", "@babel/eslint-parser": "^7.12.16",
"@fortawesome/fontawesome-free": "^6.7.1",
"@fortawesome/fontawesome-svg-core": "^6.7.1",
"@fortawesome/free-regular-svg-icons": "^6.7.1",
"@fortawesome/free-solid-svg-icons": "^6.7.1",
"@fortawesome/vue-fontawesome": "^3.0.8",
"@vue/cli-plugin-babel": "~5.0.0", "@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0", "@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0", "@vue/cli-service": "~5.0.0",
@ -1744,70 +1739,6 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.7.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.1.tgz",
"integrity": "sha512-gbDz3TwRrIPT3i0cDfujhshnXO9z03IT1UKRIVi/VEjpNHtSBIP2o5XSm+e816FzzCFEzAxPw09Z13n20PaQJQ==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-free": {
"version": "6.7.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.1.tgz",
"integrity": "sha512-ALIk/MOh5gYe1TG/ieS5mVUsk7VUIJTJKPMK9rFFqOgfp0Q3d5QiBXbcOMwUvs37fyZVCz46YjOE6IFeOAXCHA==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.7.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.1.tgz",
"integrity": "sha512-8dBIHbfsKlCk2jHQ9PoRBg2Z+4TwyE3vZICSnoDlnsHA6SiMlTwfmW6yX0lHsRmWJugkeb92sA0hZdkXJhuz+g==",
"dev": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-regular-svg-icons": {
"version": "6.7.1",
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.1.tgz",
"integrity": "sha512-e13cp+bAx716RZOTQ59DhqikAgETA9u1qTBHO3e3jMQQ+4H/N1NC1ZVeFYt1V0m+Th68BrEL1/X6XplISutbXg==",
"dev": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-solid-svg-icons": {
"version": "6.7.1",
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.1.tgz",
"integrity": "sha512-BTKc0b0mgjWZ2UDKVgmwaE0qt0cZs6ITcDgjrti5f/ki7aF5zs+N91V6hitGo3TItCFtnKg6cUVGdTmBFICFRg==",
"dev": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.1"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/vue-fontawesome": {
"version": "3.0.8",
"resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.8.tgz",
"integrity": "sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw==",
"dev": true,
"peerDependencies": {
"@fortawesome/fontawesome-svg-core": "~1 || ~6",
"vue": ">= 3.0.0 < 4"
}
},
"node_modules/@hapi/hoek": { "node_modules/@hapi/hoek": {
"version": "9.3.0", "version": "9.3.0",
"resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz", "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz",

View File

@ -16,11 +16,6 @@
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.16", "@babel/core": "^7.12.16",
"@babel/eslint-parser": "^7.12.16", "@babel/eslint-parser": "^7.12.16",
"@fortawesome/fontawesome-free": "^6.7.1",
"@fortawesome/fontawesome-svg-core": "^6.7.1",
"@fortawesome/free-regular-svg-icons": "^6.7.1",
"@fortawesome/free-solid-svg-icons": "^6.7.1",
"@fortawesome/vue-fontawesome": "^3.0.8",
"@vue/cli-plugin-babel": "~5.0.0", "@vue/cli-plugin-babel": "~5.0.0",
"@vue/cli-plugin-eslint": "~5.0.0", "@vue/cli-plugin-eslint": "~5.0.0",
"@vue/cli-service": "~5.0.0", "@vue/cli-service": "~5.0.0",

View File

@ -0,0 +1,58 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,<br>
check out the
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
</ul>
<h3>Essential Links</h3>
<ul>
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
props: {
msg: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
margin: 40px 0 0;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>

View File

@ -1,133 +1,21 @@
<template> <template>
<div class="search"> <div class="search">
<v-select
v-model="selectedService"
prepend-icon="fa-regular fa-calendar"
:items="services"
item-title="name"
item-value="id"
density="compact"
label="Service"
class="inputTextField"
></v-select>
<v-text-field
v-model="date.value"
:active="date.menu"
label="date"
prepend-icon="fa-regular fa-calendar"
readonly
class="inputTextField"
>
<v-menu
v-model="date.menu"
:close-on-content-click="false"
activator="parent"
transition="scale-transition"
>
<v-date-picker
color="green-lighten-1"
format="24hr"
v-if="date.menu"
v-model="date.value"
full-width
></v-date-picker>
</v-menu>
</v-text-field>
<v-text-field
v-model="time.value"
:active="time.menu"
label="time"
prepend-icon="fa-regular fa-clock"
readonly
class="inputTextField"
>
<v-menu
v-model="time.menu"
:close-on-content-click="false"
activator="parent"
transition="scale-transition"
>
<v-time-picker
color="green-lighten-1"
format="24hr"
v-if="time.menu"
v-model="time.value"
full-width
></v-time-picker>
</v-menu>
</v-text-field>
<v-text-field
prepend-icon="fa-regular fa-circle-play"
:active="from.menu"
label="from"
type="text"
v-model="fromName"
class="inputTextField"
@change="loadChoicesFrom()"
>
<v-menu
v-model="from.menu"
:close-on-content-click="false"
activator="parent"
transition="scale-transition"
>
<div v-if="from.menu">
<div v-for="choice in from.choices" :key="from.choices.indexOf(choice)" @click="chooseFrom(choice)">
{{ choice.name }}
</div> </div>
</div>
</v-menu>
</v-text-field>
<v-text-field
prepend-icon="fa-solid fa-bullseye"
:active="to.menu"
label="to"
type="text"
v-model="toName"
class="inputTextField"
>
<v-menu
v-model="to.menu"
:close-on-content-click="false"
activator="parent"
transition="scale-transition"
>
<div v-if="to.menu">
<div v-for="choice in to.choices" :key="to.choices.indexOf(choice)" @click="chooseTo(choice)">
{{ choice.name }}
</div>
</div>
</v-menu>
</v-text-field>
<v-btn @click="searchConnection()">find connection</v-btn>
</div>
<routing v-if="showRouting" :connections="connections"></routing>
</template> </template>
<script> <script>
import routing from './routing';
import axios from 'axios'; import axios from 'axios';
import { VTimePicker } from 'vuetify/labs/VTimePicker';
import { VDatePicker } from 'vuetify/components/VDatePicker';
const client = axios.create({ const client = axios.create({
baseURL: process.env.VUE_APP_BASE_URL baseURL: process.env.VUE_APP_BASE_URL
}); });
const services = [ const services = [
{id:"db", name:"Deutsche Bahn"},
{id:"vbb", name:"Verkehrsverbund Berlin-Brandenburg"},
{id:"pkp", name:"Polskie Koleje Państwowe"},
{id:"irish", name:"Iarnród Éireann"},
{id:"oebb", name:"Österreichische Bundesbahnen"},
{id:"lu", name:"Mobilitéitszentral (Luxembourg)"},
] ]
export default { export default {
name: 'SearchBahn', name: 'SearchBahn',
props: { props: {
}, },
components: { components: {
routing,
VTimePicker,
VDatePicker
}, },
data() { data() {
return { return {
@ -140,7 +28,7 @@
time: {value:new Date().toLocaleTimeString(), menu:false}, time: {value:new Date().toLocaleTimeString(), menu:false},
date: {value:new Date(), menu:false}, date: {value:new Date(), menu:false},
services: services, services: services,
selectedService: services[0].id, selectedService: services[0].id
} }
}, },
methods: { methods: {
@ -221,8 +109,8 @@
}, },
toName: function() { toName: function() {
this.timeLoadChoicesTo(); this.timeLoadChoicesTo();
}, }
}, }
} }
</script> </script>

View File

@ -1,35 +1,4 @@
import { createApp } from 'vue' import { createApp } from 'vue'
import App from './App.vue' import App from './App.vue'
createApp(App).mount('#app')
// Vuetify
import 'vuetify/styles'
import { createVuetify } from 'vuetify'
import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'
import '@fortawesome/fontawesome-free/css/all.css' // Ensure your project is capable of handling css files
import { aliases, fa } from 'vuetify/iconsets/fa-svg'
import { library } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { fas } from '@fortawesome/free-solid-svg-icons'
import { far } from '@fortawesome/free-regular-svg-icons'
const app = createApp(App)
app.component('font-awesome-icon', FontAwesomeIcon) // Register component globally
library.add(fas) // Include needed solid icons
library.add(far) // Include needed regular icons
const vuetify = createVuetify({
components,
directives,
icons: {
defaultSet: 'fa',
aliases,
sets: {
fa,
},
},
})
app.use(vuetify).mount('#app')

View File

@ -1,5 +0,0 @@
{
"dependencies": {
"vuetify": "^3.7.4"
}
}