adds remark icons, some style fixes
This commit is contained in:
parent
aa99247fbb
commit
31362d166c
@ -1,14 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<div class="locale-changer">
|
<div>
|
||||||
<select v-model="$i18n.locale">
|
<div class="locale-changer">
|
||||||
<option v-for="locale in $i18n.availableLocales" :key="`locale-${locale}`" :value="locale">{{ locale }}</option>
|
<v-select v-model="$i18n.locale" :items="$i18n.availableLocales" dense></v-select>
|
||||||
</select>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<v-tabs>
|
||||||
|
<v-tab to="/search">Search</v-tab>
|
||||||
|
</v-tabs>
|
||||||
</div>
|
</div>
|
||||||
<nav>
|
|
||||||
<RouterLink to="/search">Search</RouterLink>
|
|
||||||
</nav>
|
|
||||||
</div>
|
</div>
|
||||||
|
<hr/>
|
||||||
<main>
|
<main>
|
||||||
<RouterView />
|
<RouterView />
|
||||||
</main>
|
</main>
|
||||||
@ -35,13 +38,23 @@ export default {
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #2c3e50;
|
color: #2c3e50;
|
||||||
margin-top: 60px;
|
|
||||||
}
|
}
|
||||||
.navbar {
|
.navbar {
|
||||||
display:inline-flex;
|
display:inline-flex;
|
||||||
background-color:grey;
|
width:100%;
|
||||||
}
|
}
|
||||||
.navbar>* {
|
.navbar>* {
|
||||||
padding:10px;
|
margin-left:10px;
|
||||||
|
position:relative;
|
||||||
|
height:80px;
|
||||||
|
width:100px;
|
||||||
|
}
|
||||||
|
.navbar>*>.locale-changer {
|
||||||
|
position:absolute;
|
||||||
|
bottom:0px;
|
||||||
|
}
|
||||||
|
.navbar>*>.v-tabs {
|
||||||
|
position:absolute;
|
||||||
|
bottom:22px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
122
front/bahnui-front/src/assets/icons/boarding-ramp.svg
Normal file
122
front/bahnui-front/src/assets/icons/boarding-ramp.svg
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 48 48"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="boarding-ramp.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
|
||||||
|
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"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:zoom="12.583333"
|
||||||
|
inkscape:cx="27.97351"
|
||||||
|
inkscape:cy="21.695364"
|
||||||
|
inkscape:window-width="1368"
|
||||||
|
inkscape:window-height="842"
|
||||||
|
inkscape:window-x="-6"
|
||||||
|
inkscape:window-y="1073"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1">
|
||||||
|
<inkscape:grid
|
||||||
|
id="grid1"
|
||||||
|
units="px"
|
||||||
|
originx="0"
|
||||||
|
originy="0"
|
||||||
|
spacingx="1"
|
||||||
|
spacingy="1"
|
||||||
|
empcolor="#3f3fff"
|
||||||
|
empopacity="0.25098039"
|
||||||
|
color="#3f3fff"
|
||||||
|
opacity="0.1254902"
|
||||||
|
empspacing="4"
|
||||||
|
dotted="false"
|
||||||
|
gridanglex="30"
|
||||||
|
gridanglez="30"
|
||||||
|
visible="true" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.5;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
id="rect5"
|
||||||
|
width="42"
|
||||||
|
height="42"
|
||||||
|
x="3"
|
||||||
|
y="3"
|
||||||
|
rx="5"
|
||||||
|
ry="5" />
|
||||||
|
<g
|
||||||
|
id="g9"
|
||||||
|
transform="translate(4,-3.666296)">
|
||||||
|
<circle
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="path1"
|
||||||
|
cx="16"
|
||||||
|
cy="28"
|
||||||
|
r="6.6662965" />
|
||||||
|
<path
|
||||||
|
id="circle6"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5"
|
||||||
|
d="m 28,33 h -3 v -5 c 0,-4.970563 -4.029437,-9 -9,-9 H 13 V 9.6662965 h -3"
|
||||||
|
sodipodi:nodetypes="cccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 13,19 v 3"
|
||||||
|
id="path6" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 25,27 H 22.666296"
|
||||||
|
id="path7"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 28,35.666296 H 8"
|
||||||
|
id="path11"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="M 32,3 V 45"
|
||||||
|
id="path8" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 3,40 h 25 v 5"
|
||||||
|
id="path9"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
id="rect10"
|
||||||
|
width="9"
|
||||||
|
height="16"
|
||||||
|
x="36"
|
||||||
|
y="12" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="m 36,3 v 4 h 9"
|
||||||
|
id="path10" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="m 28,32 4,4"
|
||||||
|
id="path2" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.0 KiB |
119
front/bahnui-front/src/assets/icons/no-bicycle-conveyance.svg
Normal file
119
front/bahnui-front/src/assets/icons/no-bicycle-conveyance.svg
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 48 48"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="no-bicycle-conveyance.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
|
||||||
|
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"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
showgrid="true"
|
||||||
|
inkscape:zoom="6.2916665"
|
||||||
|
inkscape:cx="-4.6092716"
|
||||||
|
inkscape:cy="38.304637"
|
||||||
|
inkscape:window-width="1368"
|
||||||
|
inkscape:window-height="842"
|
||||||
|
inkscape:window-x="-6"
|
||||||
|
inkscape:window-y="1073"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1">
|
||||||
|
<inkscape:grid
|
||||||
|
id="grid1"
|
||||||
|
units="px"
|
||||||
|
originx="0"
|
||||||
|
originy="0"
|
||||||
|
spacingx="1"
|
||||||
|
spacingy="1"
|
||||||
|
empcolor="#3f3fff"
|
||||||
|
empopacity="0.25098039"
|
||||||
|
color="#3f3fff"
|
||||||
|
opacity="0.1254902"
|
||||||
|
empspacing="4"
|
||||||
|
dotted="false"
|
||||||
|
gridanglex="30"
|
||||||
|
gridanglez="30"
|
||||||
|
visible="true" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g5"
|
||||||
|
transform="matrix(1.3332593,0,0,1.3332593,-0.66529661,-17.998334)"
|
||||||
|
style="stroke-width:1.12506247;stroke-dasharray:none">
|
||||||
|
<circle
|
||||||
|
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.12506247;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
id="path1"
|
||||||
|
cx="10"
|
||||||
|
cy="35"
|
||||||
|
r="5" />
|
||||||
|
<circle
|
||||||
|
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.12506247;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
id="circle1"
|
||||||
|
cx="27"
|
||||||
|
cy="35"
|
||||||
|
r="5" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="m 10,35 6,-12 h 1"
|
||||||
|
id="path2"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="m 14,27 5,8 h 8 l -5,-8"
|
||||||
|
id="path3"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="M 19,35 23,25"
|
||||||
|
id="path4" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.12506247;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
d="m 21,25 h 3"
|
||||||
|
id="path5" />
|
||||||
|
</g>
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:none;stroke:#000000;stroke-width:1.5;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
id="rect5"
|
||||||
|
width="42"
|
||||||
|
height="42"
|
||||||
|
x="3"
|
||||||
|
y="3"
|
||||||
|
rx="5"
|
||||||
|
ry="5" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 3,41 41,3.0000001"
|
||||||
|
id="path57"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 7,45 45,7"
|
||||||
|
id="path58"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 4,44 44,4.0000001"
|
||||||
|
id="path59"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.9 KiB |
@ -5,24 +5,26 @@
|
|||||||
<div class="leg" v-for="leg in connection.legs" :key="connection.legs.indexOf(leg)" :class="leg.walking ? 'walking' : null" :style="{backgroundColor:getTimeColor(leg.arrival), background:getGradient(leg.departure, leg.arrival)}" >
|
<div class="leg" v-for="leg in connection.legs" :key="connection.legs.indexOf(leg)" :class="leg.walking ? 'walking' : null" :style="{backgroundColor:getTimeColor(leg.arrival), background:getGradient(leg.departure, leg.arrival)}" >
|
||||||
<div class="linename" >
|
<div class="linename" >
|
||||||
<div class="linenameinner" :style="{backgroundColor:getLineColors(leg)[1], color:getLineColors(leg)[0]}">{{ getRouteNumber(leg) }}</div>
|
<div class="linenameinner" :style="{backgroundColor:getLineColors(leg)[1], color:getLineColors(leg)[0]}">{{ getRouteNumber(leg) }}</div>
|
||||||
<div class="linenameinner" :style="{backgroundColor:getLineColors(leg)[1], color:getLineColors(leg)[0]}">{{ leg.direction }}</div>
|
<div class="linenameinner" v-if="isLarge" :style="{backgroundColor:getLineColors(leg)[1], color:getLineColors(leg)[0]}">{{ leg.direction }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="lineinfo">
|
<div class="lineinfo">
|
||||||
<div class="station" >{{ leg.origin.name }}<br/>{{ timeWithDelay(leg.departure, leg.departureDelay) }}<p v-if="leg.departurePlatform"> Gleis {{ leg.departurePlatform }} </p></div>
|
<div class="station" >{{ leg.origin.name }}<br/>{{ timeWithDelay(leg.departure, leg.departureDelay) }}<p v-if="leg.departurePlatform"> Gleis {{ leg.departurePlatform }} </p></div>
|
||||||
<div class="line">
|
<div class="line" v-if="isLarge">
|
||||||
<p class="zugnummer">{{ leg.line?.fahrtNr }}</p>
|
<p class="zugnummer">{{ leg.line?.fahrtNr }}</p>
|
||||||
<p class="operator" v-if="!getOperatorLogo(leg.line?.operator)">{{ leg.line?.operator?.name }}</p>
|
<p class="operator" v-if="!getOperatorLogo(leg.line?.operator)">{{ leg.line?.operator?.name }}</p>
|
||||||
<img class="operator-logo" :src="getOperatorLogo(leg.line?.operator)" v-if="getOperatorLogo(leg.line?.operator)">
|
<img class="operator-logo" :src="getOperatorLogo(leg.line?.operator)" v-if="getOperatorLogo(leg.line?.operator)">
|
||||||
</div>
|
</div>
|
||||||
<div class="station">{{ leg.destination.name }}<br/>{{ timeWithDelay(leg.arrival, leg.arrivalDelay) }} <p v-if="leg.arrivalPlatform">Gleis {{ leg.arrivalPlatform }}</p></div>
|
<div class="station">{{ leg.destination.name }}<br/>{{ timeWithDelay(leg.arrival, leg.arrivalDelay) }} <p v-if="leg.arrivalPlatform">Gleis {{ leg.arrivalPlatform }}</p></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="displaywide">
|
<div class="displaywide" v-if="isLarge">
|
||||||
<div v-for="remark in leg.remarks" :key="leg.remarks.indexOf(remark)">
|
<div v-for="remark in leg.remarks" :key="leg.remarks.indexOf(remark)">
|
||||||
<img class="remark-icon" :src="getIconForRemark(remark)" v-if="getIconForRemark(remark)" :title="$t('routing.remarks.'+remark.code)">
|
<img class="remark-icon" :src="getIconForRemark(remark)" v-if="getIconForRemark(remark)" :title="$t('routing.remarks.'+remark.code)">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-for="remark in leg.remarks" :key="leg.remarks.indexOf(remark)">
|
<div v-if="isLarge">
|
||||||
<p v-if="!getIconForRemark(remark)">{{remark.text}}</p>
|
<div v-for="remark in leg.remarks" :key="leg.remarks.indexOf(remark)">
|
||||||
|
<p v-if="!getIconForRemark(remark)">{{remark.text}}</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
</div>
|
</div>
|
||||||
@ -48,6 +50,7 @@
|
|||||||
return {
|
return {
|
||||||
from: {name:"", id:null},
|
from: {name:"", id:null},
|
||||||
to: {name:"", id:null},
|
to: {name:"", id:null},
|
||||||
|
isLarge: true,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -101,6 +104,7 @@
|
|||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
min-width: 500px;
|
||||||
}
|
}
|
||||||
.journey > div{
|
.journey > div{
|
||||||
margin: 40px;
|
margin: 40px;
|
||||||
@ -108,7 +112,7 @@
|
|||||||
.station {
|
.station {
|
||||||
margin: 4px;
|
margin: 4px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width:150px;
|
width:130px;
|
||||||
vertical-align: text-top;
|
vertical-align: text-top;
|
||||||
}
|
}
|
||||||
.line {
|
.line {
|
||||||
|
|||||||
@ -12,8 +12,8 @@
|
|||||||
class="inputTextField"
|
class="inputTextField"
|
||||||
></v-select>
|
></v-select>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="date.value"
|
|
||||||
:active="date.menu"
|
:active="date.menu"
|
||||||
|
v-model="formattedDate"
|
||||||
:label="$t('search.fields.date')"
|
:label="$t('search.fields.date')"
|
||||||
prepend-icon="mdi mdi-calendar-month"
|
prepend-icon="mdi mdi-calendar-month"
|
||||||
readonly
|
readonly
|
||||||
@ -73,7 +73,7 @@
|
|||||||
transition="scale-transition"
|
transition="scale-transition"
|
||||||
>
|
>
|
||||||
<div v-if="from.menu">
|
<div v-if="from.menu">
|
||||||
<div v-for="choice in from.choices" :key="from.choices.indexOf(choice)" @click="chooseFrom(choice)">
|
<div class="selectItem" v-for="choice in from.choices" :key="from.choices.indexOf(choice)" @click="chooseFrom(choice)">
|
||||||
{{ choice.name }}
|
{{ choice.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -94,13 +94,13 @@
|
|||||||
transition="scale-transition"
|
transition="scale-transition"
|
||||||
>
|
>
|
||||||
<div v-if="to.menu">
|
<div v-if="to.menu">
|
||||||
<div v-for="choice in to.choices" :key="to.choices.indexOf(choice)" @click="chooseTo(choice)">
|
<div class="selectItem" v-for="choice in to.choices" :key="to.choices.indexOf(choice)" @click="chooseTo(choice)">
|
||||||
{{ choice.name }}
|
{{ choice.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-menu>
|
</v-menu>
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
<v-btn @click="searchConnection()">find connection</v-btn>
|
<v-btn @click="searchConnection()">{{$t("search.buttons.searchConnection")}}</v-btn>
|
||||||
</div>
|
</div>
|
||||||
<routing v-if="showRouting" :connections="connections" :isMobile="isMobile"></routing>
|
<routing v-if="showRouting" :connections="connections" :isMobile="isMobile"></routing>
|
||||||
</template>
|
</template>
|
||||||
@ -137,7 +137,7 @@
|
|||||||
toName : "",
|
toName : "",
|
||||||
connections: [],
|
connections: [],
|
||||||
showRouting: false,
|
showRouting: false,
|
||||||
time: {value:new Date().toLocaleTimeString("de"), menu:false},
|
time: {value:new Date().toLocaleTimeString("de", {hour: '2-digit', minute:'2-digit'}), 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,
|
||||||
@ -149,10 +149,10 @@
|
|||||||
return this.isMobile ? "displaytall" : "displaywide";
|
return this.isMobile ? "displaytall" : "displaywide";
|
||||||
},
|
},
|
||||||
searchStationFrom() {
|
searchStationFrom() {
|
||||||
client.get("/searchStation", {params: {text: this.fromName, service:this.selectedService}}).then(res => this.from = {name: res.data.name, id: res.data.id});
|
client.get("/searchStation", {params: {text: this.fromName, service:this.selectedService}}).then(res => this.chooseFrom(res.data));
|
||||||
},
|
},
|
||||||
searchStationTo() {
|
searchStationTo() {
|
||||||
client.get("/searchStation", {params: {text: this.toName, service:this.selectedService}}).then(res => this.to = {name: res.data.name, id: res.data.id});
|
client.get("/searchStation", {params: {text: this.toName, service:this.selectedService}}).then(res => this.chooseTo(res.data));
|
||||||
},
|
},
|
||||||
searchConnection() {
|
searchConnection() {
|
||||||
if (this.from.id && this.to.id){
|
if (this.from.id && this.to.id){
|
||||||
@ -173,12 +173,9 @@
|
|||||||
if (this.from.menu){
|
if (this.from.menu){
|
||||||
let time = Date.now()
|
let time = Date.now()
|
||||||
this.from.update = time;
|
this.from.update = time;
|
||||||
console.log("timeLoadChoicesFrom")
|
|
||||||
let timer = setInterval(() => {
|
let timer = setInterval(() => {
|
||||||
if (time == this.from.update){
|
if (time == this.from.update){
|
||||||
this.loadChoicesFrom();
|
this.loadChoicesFrom();
|
||||||
} else {
|
|
||||||
console.log("nicht laden")
|
|
||||||
}
|
}
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
}, 500);
|
}, 500);
|
||||||
@ -192,8 +189,6 @@
|
|||||||
let timer = setInterval(() => {
|
let timer = setInterval(() => {
|
||||||
if (time == this.to.update){
|
if (time == this.to.update){
|
||||||
this.loadChoicesTo();
|
this.loadChoicesTo();
|
||||||
} else {
|
|
||||||
console.log("nicht laden")
|
|
||||||
}
|
}
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
}, 500);
|
}, 500);
|
||||||
@ -219,6 +214,11 @@
|
|||||||
alert("testAlert")
|
alert("testAlert")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
formattedDate() {
|
||||||
|
return this.date.value.toLocaleDateString("de");
|
||||||
|
}
|
||||||
|
},
|
||||||
watch: {
|
watch: {
|
||||||
fromName: function() {
|
fromName: function() {
|
||||||
this.timeLoadChoicesFrom();
|
this.timeLoadChoicesFrom();
|
||||||
@ -226,6 +226,11 @@
|
|||||||
toName: function() {
|
toName: function() {
|
||||||
this.timeLoadChoicesTo();
|
this.timeLoadChoicesTo();
|
||||||
},
|
},
|
||||||
|
selectedService: function() {
|
||||||
|
this.searchStationFrom();
|
||||||
|
this.searchStationTo();
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -257,6 +262,11 @@
|
|||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
}
|
}
|
||||||
|
.selectItem{
|
||||||
|
margin-top:10px;
|
||||||
|
background-color:white;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Raveo-display-bold";
|
font-family: "Raveo-display-bold";
|
||||||
src: url("../assets/Raveo Display Bold.woff2") format("opentype");
|
src: url("../assets/Raveo Display Bold.woff2") format("opentype");
|
||||||
|
|||||||
@ -4,11 +4,11 @@ let remarkfunctions = {
|
|||||||
return (null);
|
return (null);
|
||||||
} else if (remark.code === "55"){
|
} else if (remark.code === "55"){
|
||||||
return new URL('../assets/icons/55.svg', import.meta.url);
|
return new URL('../assets/icons/55.svg', import.meta.url);
|
||||||
} else if (remark.code === "wifi"){
|
} else if (remark.code === "wifi" || remark.code === "WF"){
|
||||||
return new URL('../assets/icons/wifi.svg', import.meta.url);
|
return new URL('../assets/icons/wifi.svg', import.meta.url);
|
||||||
} else if (remark.code === "air-conditioned"){
|
} else if (remark.code === "air-conditioned"){
|
||||||
return new URL('../assets/icons/air-conditioned.svg', import.meta.url);
|
return new URL('../assets/icons/air-conditioned.svg', import.meta.url);
|
||||||
} else if (remark.code === "barrier-free-vehicle"){
|
} else if (remark.code === "barrier-free-vehicle" || remark.code === "EA" || remark.code === "RZ" || remark.code === "OB"){
|
||||||
return new URL('../assets/icons/barrier-free-vehicle.svg', import.meta.url);
|
return new URL('../assets/icons/barrier-free-vehicle.svg', import.meta.url);
|
||||||
} else if (remark.code === "compulsory-reservation"){
|
} else if (remark.code === "compulsory-reservation"){
|
||||||
return new URL('../assets/icons/compulsory-reservation.svg', import.meta.url);
|
return new URL('../assets/icons/compulsory-reservation.svg', import.meta.url);
|
||||||
@ -16,14 +16,18 @@ let remarkfunctions = {
|
|||||||
return new URL('../assets/icons/on-board-restaurant.svg', import.meta.url);
|
return new URL('../assets/icons/on-board-restaurant.svg', import.meta.url);
|
||||||
} else if (remark.code === "power-sockets"){
|
} else if (remark.code === "power-sockets"){
|
||||||
return new URL('../assets/icons/power-sockets.svg', import.meta.url);
|
return new URL('../assets/icons/power-sockets.svg', import.meta.url);
|
||||||
} else if (remark.code === "wheelchair-space"){
|
} else if (remark.code === 'wheelchairs-space' || remark.code === "RO"){
|
||||||
return new URL('../assets/icons/wheelchair-space.svg', import.meta.url);
|
return new URL('../assets/icons/wheelchair-space.svg', import.meta.url);
|
||||||
} else if (remark.code === "bicycle-conveyance"){
|
} else if (remark.code === "bicycle-conveyance" || remark.code === "FK"){
|
||||||
return new URL('../assets/icons/bicycle-conveyance.svg', import.meta.url);
|
return new URL('../assets/icons/bicycle-conveyance.svg', import.meta.url);
|
||||||
} else if (remark.code === "bicycle-conveyance-reservation"){
|
} else if (remark.code === "bicycle-conveyance-reservation" || remark.code === "FR"){
|
||||||
return new URL('../assets/icons/bicycle-conveyance-reservation.svg', import.meta.url);
|
return new URL('../assets/icons/bicycle-conveyance-reservation.svg', import.meta.url);
|
||||||
} else if (remark.code === "2nd-class-only"){
|
} 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);
|
return new URL('../assets/icons/2nd-class-only.svg', import.meta.url);
|
||||||
|
} else if (remark.code === "boarding-ramp" || remark.code === "EF"){
|
||||||
|
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 {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -17,6 +17,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"routing":{
|
"routing":{
|
||||||
|
"text":{
|
||||||
|
"track":"Gleis"
|
||||||
|
},
|
||||||
"remarks":{
|
"remarks":{
|
||||||
"bicycle-conveyance":"Fahrradmitnahme möglich",
|
"bicycle-conveyance":"Fahrradmitnahme möglich",
|
||||||
"bicycle-conveyance-reservation":"Fahrradmitnahme reservierungspflichtig",
|
"bicycle-conveyance-reservation":"Fahrradmitnahme reservierungspflichtig",
|
||||||
@ -29,7 +32,23 @@
|
|||||||
"compulsary-reservation":"Reservierungspflicht",
|
"compulsary-reservation":"Reservierungspflicht",
|
||||||
"2nd-class-only":"Nur 2. Klasse",
|
"2nd-class-only":"Nur 2. Klasse",
|
||||||
"RZ":"Rollstuhlgerechter Einstieg",
|
"RZ":"Rollstuhlgerechter Einstieg",
|
||||||
"on-board-restaurant":"Boardrestaurant vorhanden"
|
"on-board-restaurant":"Boardrestaurant vorhanden",
|
||||||
|
"EA":"Behindertengerechte Ausstattung",
|
||||||
|
"FM": "Fahrkartenautomat im Fahrzeug",
|
||||||
|
"boarding-ramp": "Einstieghilfe im Fahrzeug",
|
||||||
|
"no-bicycle-conveyance": "Einstieghilfe im Fahrzeug",
|
||||||
|
"OB": "Niederflurfahrzeug",
|
||||||
|
"RO": "Rollstuhlstellplatz",
|
||||||
|
"OA": "Rollstuhlstellplatz, Voranmeldung unter +43 5 1717",
|
||||||
|
"EF": "Fahrzeuggebundene Einstieghilfe",
|
||||||
|
"OC": "Rollstuhltaugliches WC",
|
||||||
|
"FK": "Fahrradmitnahme möglich",
|
||||||
|
"K2": "Nur 2. Klasse",
|
||||||
|
"J2": "in Sitzwagen nur 2. Klasse",
|
||||||
|
"SB": "Zustieg nur mit gültiger Fahrkarte",
|
||||||
|
"WV": "WLAN verfügbar",
|
||||||
|
"fC": "Kleinbus, Fahrtanmeldung bei Gruppen ab 10 Personen unter gruppen.vmobil.at",
|
||||||
|
"FR":"Fahrradmitnahme reservierungspflichtig"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -17,6 +17,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"routing":{
|
"routing":{
|
||||||
|
"text":{
|
||||||
|
"track":"Track"
|
||||||
|
},
|
||||||
"remarks":{
|
"remarks":{
|
||||||
"bicycle-conveyance":"bicycles allowed",
|
"bicycle-conveyance":"bicycles allowed",
|
||||||
"bicycle-conveyance-reservation":"bicycles need reservation",
|
"bicycle-conveyance-reservation":"bicycles need reservation",
|
||||||
|
|||||||
54
front/bahnui-front/src/locales/fr.json
Normal file
54
front/bahnui-front/src/locales/fr.json
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"global":{
|
||||||
|
"option":{
|
||||||
|
"mobile": "mobile"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"search":{
|
||||||
|
"fields":{
|
||||||
|
"service":"service",
|
||||||
|
"date":"date",
|
||||||
|
"time":"heure",
|
||||||
|
"from":"de",
|
||||||
|
"to":"à"
|
||||||
|
},
|
||||||
|
"buttons":{
|
||||||
|
"searchConnection":"rechercher"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"routing":{
|
||||||
|
"text":{
|
||||||
|
"track":"voie"
|
||||||
|
},
|
||||||
|
"remarks":{
|
||||||
|
"bicycle-conveyance":"Fahrradmitnahme möglich",
|
||||||
|
"bicycle-conveyance-reservation":"Fahrradmitnahme reservierungspflichtig",
|
||||||
|
"power-sockets":"Steckdosen für Laptops vorhanden",
|
||||||
|
"barrier-free-vehicle":"Behindertengerechtes Fahrzeug",
|
||||||
|
"wheelchairs-space":"Rollstuhlplatz vorhanden",
|
||||||
|
"air-conditioned":"klimatisiertes Fahrzeug",
|
||||||
|
"55":"Rauchen verboten",
|
||||||
|
"wifi":"WLAN vorhanden",
|
||||||
|
"compulsary-reservation":"Reservierungspflicht",
|
||||||
|
"2nd-class-only":"Nur 2. Klasse",
|
||||||
|
"RZ":"Rollstuhlgerechter Einstieg",
|
||||||
|
"on-board-restaurant":"Boardrestaurant vorhanden",
|
||||||
|
"EA":"Behindertengerechte Ausstattung",
|
||||||
|
"FM": "Fahrkartenautomat im Fahrzeug",
|
||||||
|
"boarding-ramp": "Einstieghilfe im Fahrzeug",
|
||||||
|
"no-bicycle-conveyance": "Einstieghilfe im Fahrzeug",
|
||||||
|
"OB": "Niederflurfahrzeug",
|
||||||
|
"RO": "Rollstuhlstellplatz",
|
||||||
|
"OA": "Rollstuhlstellplatz, Voranmeldung unter +43 5 1717",
|
||||||
|
"EF": "Fahrzeuggebundene Einstieghilfe",
|
||||||
|
"OC": "Rollstuhltaugliches WC",
|
||||||
|
"FK": "Fahrradmitnahme möglich",
|
||||||
|
"K2": "Nur 2. Klasse",
|
||||||
|
"J2": "in Sitzwagen nur 2. Klasse",
|
||||||
|
"SB": "Zustieg nur mit gültiger Fahrkarte",
|
||||||
|
"WV": "WLAN verfügbar",
|
||||||
|
"fC": "Kleinbus, Fahrtanmeldung bei Gruppen ab 10 Personen unter gruppen.vmobil.at",
|
||||||
|
"FR":"Fahrradmitnahme reservierungspflichtig"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
54
front/bahnui-front/src/locales/ua.json
Normal file
54
front/bahnui-front/src/locales/ua.json
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
{
|
||||||
|
"global":{
|
||||||
|
"option":{
|
||||||
|
"mobile": "mobile"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"search":{
|
||||||
|
"fields":{
|
||||||
|
"service":"service",
|
||||||
|
"date":"дата",
|
||||||
|
"time":"час",
|
||||||
|
"from":"від",
|
||||||
|
"to":"в"
|
||||||
|
},
|
||||||
|
"buttons":{
|
||||||
|
"searchConnection":"rechercher"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"routing":{
|
||||||
|
"text":{
|
||||||
|
"track":"Gleis"
|
||||||
|
},
|
||||||
|
"remarks":{
|
||||||
|
"bicycle-conveyance":"Fahrradmitnahme möglich",
|
||||||
|
"bicycle-conveyance-reservation":"Fahrradmitnahme reservierungspflichtig",
|
||||||
|
"power-sockets":"Steckdosen für Laptops vorhanden",
|
||||||
|
"barrier-free-vehicle":"Behindertengerechtes Fahrzeug",
|
||||||
|
"wheelchairs-space":"Rollstuhlplatz vorhanden",
|
||||||
|
"air-conditioned":"klimatisiertes Fahrzeug",
|
||||||
|
"55":"Rauchen verboten",
|
||||||
|
"wifi":"WLAN vorhanden",
|
||||||
|
"compulsary-reservation":"Reservierungspflicht",
|
||||||
|
"2nd-class-only":"Nur 2. Klasse",
|
||||||
|
"RZ":"Rollstuhlgerechter Einstieg",
|
||||||
|
"on-board-restaurant":"Boardrestaurant vorhanden",
|
||||||
|
"EA":"Behindertengerechte Ausstattung",
|
||||||
|
"FM": "Fahrkartenautomat im Fahrzeug",
|
||||||
|
"boarding-ramp": "Einstieghilfe im Fahrzeug",
|
||||||
|
"no-bicycle-conveyance": "Einstieghilfe im Fahrzeug",
|
||||||
|
"OB": "Niederflurfahrzeug",
|
||||||
|
"RO": "Rollstuhlstellplatz",
|
||||||
|
"OA": "Rollstuhlstellplatz, Voranmeldung unter +43 5 1717",
|
||||||
|
"EF": "Fahrzeuggebundene Einstieghilfe",
|
||||||
|
"OC": "Rollstuhltaugliches WC",
|
||||||
|
"FK": "Fahrradmitnahme möglich",
|
||||||
|
"K2": "Nur 2. Klasse",
|
||||||
|
"J2": "in Sitzwagen nur 2. Klasse",
|
||||||
|
"SB": "Zustieg nur mit gültiger Fahrkarte",
|
||||||
|
"WV": "WLAN verfügbar",
|
||||||
|
"fC": "Kleinbus, Fahrtanmeldung bei Gruppen ab 10 Personen unter gruppen.vmobil.at",
|
||||||
|
"FR":"Fahrradmitnahme reservierungspflichtig"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -12,6 +12,8 @@ import SearchBahn from './components/search.vue'
|
|||||||
import { createI18n } from 'vue-i18n'
|
import { createI18n } from 'vue-i18n'
|
||||||
import de from "./locales/de.json";
|
import de from "./locales/de.json";
|
||||||
import en from "./locales/en.json";
|
import en from "./locales/en.json";
|
||||||
|
import fr from "./locales/fr.json";
|
||||||
|
import ua from "./locales/ua.json";
|
||||||
|
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
|
|
||||||
@ -31,7 +33,7 @@ const vuetify = createVuetify({
|
|||||||
const i18n = createI18n({
|
const i18n = createI18n({
|
||||||
locale: "en",
|
locale: "en",
|
||||||
fallbackLocale: "en",
|
fallbackLocale: "en",
|
||||||
messages: { de, en },
|
messages: { de, en, fr, ua },
|
||||||
})
|
})
|
||||||
|
|
||||||
app.use(vuetify).use(router).use(i18n).mount('#app')
|
app.use(vuetify).use(router).use(i18n).mount('#app')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user