Skip to content
GitLab
Explore
Sign in
derf
db-infoscreen
Compare revisions
6890d2fcfab3195b38e2544794d3983719f86ef2 to 568c71926e3ed851a539d7b6196a4279d8527dce
Commits on Source (5)
rename legacy default.css and mobile.css to legacy{,-mobile}.css
· 83dc1548
Birte Kristina Friesel
authored
Apr 03, 2024
83dc1548
correctly show local time in route element of queried IRIS station
· 67b2fa47
Birte Kristina Friesel
authored
Apr 03, 2024
67b2fa47
annotate train/line number changes along the route
· 9ab22192
Birte Kristina Friesel
authored
Apr 03, 2024
9ab22192
rebuild assets
· af3d77d8
Birte Kristina Friesel
authored
Apr 03, 2024
af3d77d8
release assets
· 568c7192
Birte Kristina Friesel
authored
Apr 03, 2024
568c7192
Hide whitespace changes
Inline
Side-by-side
lib/DBInfoscreen/Controller/Stationboard.pm
View file @
568c7192
...
@@ -874,6 +874,16 @@ sub render_train {
...
@@ -874,6 +874,16 @@ sub render_train {
=
[
$load
->
{
FIRST
},
$load
->
{
SECOND
}
];
=
[
$load
->
{
FIRST
},
$load
->
{
SECOND
}
];
}
}
}
}
$departure
->
{
tz_offset
}
=
$route
->
[
$i
]{
tz_offset
};
$departure
->
{
local_dt_da
}
=
$route
->
[
$i
]{
local_dt_da
};
$departure
->
{
local_sched_arr
}
=
$route
->
[
$i
]{
local_sched_arr
};
$departure
->
{
local_sched_dep
}
=
$route
->
[
$i
]{
local_sched_dep
};
$departure
->
{
is_annotated
}
=
$route
->
[
$i
]{
is_annotated
};
$departure
->
{
prod_name
}
=
$route
->
[
$i
]{
prod_name
};
$departure
->
{
direction
}
=
$route
->
[
$i
]{
direction
};
$departure
->
{
operator
}
=
$route
->
[
$i
]{
operator
};
last
;
last
;
}
}
}
}
...
@@ -1247,6 +1257,10 @@ sub train_details {
...
@@ -1247,6 +1257,10 @@ sub train_details {
$res
->
{
local_dt_da
}
=
$station_info
->
{
local_dt_da
};
$res
->
{
local_dt_da
}
=
$station_info
->
{
local_dt_da
};
$res
->
{
local_sched_arr
}
=
$station_info
->
{
local_sched_arr
};
$res
->
{
local_sched_arr
}
=
$station_info
->
{
local_sched_arr
};
$res
->
{
local_sched_dep
}
=
$station_info
->
{
local_sched_dep
};
$res
->
{
local_sched_dep
}
=
$station_info
->
{
local_sched_dep
};
$res
->
{
is_annotated
}
=
$station_info
->
{
is_annotated
};
$res
->
{
prod_name
}
=
$station_info
->
{
prod_name
};
$res
->
{
direction
}
=
$station_info
->
{
direction
};
$res
->
{
operator
}
=
$station_info
->
{
operator
};
$res
->
{
platform
}
=
$station_info
->
{
platform
};
$res
->
{
platform
}
=
$station_info
->
{
platform
};
$res
->
{
scheduled_platform
}
$res
->
{
scheduled_platform
}
=
$station_info
->
{
sched_platform
};
=
$station_info
->
{
sched_platform
};
...
...
lib/DBInfoscreen/Helper/HAFAS.pm
View file @
568c7192
...
@@ -105,7 +105,67 @@ sub get_route_p {
...
@@ -105,7 +105,67 @@ sub get_route_p {
my
$journey
=
$hafas
->
result
;
my
$journey
=
$hafas
->
result
;
my
@ret
;
my
@ret
;
my
$station_is_past
=
1
;
my
$station_is_past
=
1
;
my
$num_names
=
0
;
my
$prev_name
=
q{}
;
my
$num_directions
=
0
;
my
$prev_direction
=
q{}
;
my
$num_operators
=
0
;
my
$prev_operator
=
q{}
;
for
my
$stop
(
$journey
->
route
)
{
my
$prod
=
$stop
->
prod_dep
//
$stop
->
prod_arr
;
if
(
$prod
and
$prod
->
name
and
$prod
->
name
ne
$prev_name
)
{
$num_names
++
;
$prev_name
=
$prod
->
name
;
}
if
(
$prod
and
$prod
->
operator
and
$prod
->
operator
ne
$prev_operator
)
{
$num_operators
++
;
$prev_operator
=
$prod
->
operator
;
}
if
(
$stop
->
direction
and
$stop
->
direction
ne
$prev_direction
)
{
$num_directions
++
;
$prev_direction
=
$stop
->
direction
;
}
}
$prev_name
=
q{}
;
$prev_direction
=
q{}
;
$prev_operator
=
q{}
;
for
my
$stop
(
$journey
->
route
)
{
for
my
$stop
(
$journey
->
route
)
{
my
$prod
=
$stop
->
prod_dep
//
$stop
->
prod_arr
;
my
%annotation
;
if
(
$num_names
>
1
and
$prod
and
$prod
->
name
and
$prod
->
name
ne
$prev_name
)
{
$prev_name
=
$annotation
{
prod_name
}
=
$prod
->
name
;
}
if
(
$num_operators
>
1
and
$prod
and
$prod
->
operator
and
$prod
->
operator
ne
$prev_operator
)
{
$prev_operator
=
$annotation
{
operator
}
=
$prod
->
operator
;
}
if
(
$num_directions
>
1
and
$stop
->
direction
and
$stop
->
direction
ne
$prev_direction
)
{
$prev_direction
=
$annotation
{
direction
}
=
$stop
->
direction
;
}
if
(
%annotation
)
{
$annotation
{
is_annotated
}
=
1
;
}
push
(
push
(
@ret
,
@ret
,
{
{
...
@@ -129,6 +189,7 @@ sub get_route_p {
...
@@ -129,6 +189,7 @@ sub get_route_p {
and
and
(
$stop
->
dep_cancelled
or
not
$stop
->
sched_dep
)
(
$stop
->
dep_cancelled
or
not
$stop
->
sched_dep
)
),
),
%annotation
,
}
}
);
);
if
(
if
(
...
...
public/static/css/dark.min.css
View file @
568c7192
body
{
margin
:
0
;
color
:
#fff
;
background-color
:
#101010
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#99f
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#bbb
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#bbb
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#330
}
.wagonorder
.powercar
{
background-color
:
#222
}
.wagonorder
.closed
{
background-color
:
#222
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#bbb
}
.wagonorder
.details
a
.type
{
color
:
#99f
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#bbb
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#444
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#101010
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#512f00
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#222
}
div
.app
>
ul
>
li
>
a
{
color
:
#fff
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#fff
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#ddd
}
div
.app
>
ul
>
li
.info
{
color
:
#f77
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#fff
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#fff
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#bbb
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
#f77
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
#f77
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
#f77
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#7f7
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#d99
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#9d9
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#afa
}
div
.app
.replaced
{
color
:
#faa
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#151
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#333
}
div
.app
.fern
{
background-color
:
#511
}
div
.app
.ext
{
border
:
2px
solid
#333
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#411
}
div
.app
.bus
{
background-color
:
#515
}
div
.app
.ubahn
{
background-color
:
#071e62
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#101010
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#fff
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
#f77
}
div
.app
.moreinfo
.timehidden
{
color
:
#bbb
}
div
.app
.moreinfo
.undelay
{
color
:
#7f7
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#f77
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#fff
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#bbb
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#7f7
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#f77
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
.sched-delayed
:before
{
content
:
"("
}
div
.app
.moreinfo
.mroute
.sched-delayed
:after
{
content
:
")"
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.config
a
{
color
:
#99f
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.about
a
{
color
:
#99f
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#bbb
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#fff
;
background-color
:
#101010
;
border
:
1px
solid
#444
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#ddd
;
background-color
:
#101010
;
border-color
:
#444
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#ddd
;
background-color
:
#111
;
border-color
:
#333
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
body
{
margin
:
0
;
color
:
#fff
;
background-color
:
#101010
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#99f
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#bbb
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#bbb
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#330
}
.wagonorder
.powercar
{
background-color
:
#222
}
.wagonorder
.closed
{
background-color
:
#222
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#bbb
}
.wagonorder
.details
a
.type
{
color
:
#99f
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#bbb
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#444
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#101010
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#512f00
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#222
}
div
.app
>
ul
>
li
>
a
{
color
:
#fff
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#fff
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#ddd
}
div
.app
>
ul
>
li
.info
{
color
:
#f77
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#fff
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#fff
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#bbb
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
#f77
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
#f77
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
#f77
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#7f7
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#d99
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#9d9
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#afa
}
div
.app
.replaced
{
color
:
#faa
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#151
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#333
}
div
.app
.fern
{
background-color
:
#511
}
div
.app
.ext
{
border
:
2px
solid
#333
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#411
}
div
.app
.bus
{
background-color
:
#515
}
div
.app
.ubahn
{
background-color
:
#071e62
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#101010
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#fff
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
#f77
}
div
.app
.moreinfo
.timehidden
{
color
:
#bbb
}
div
.app
.moreinfo
.undelay
{
color
:
#7f7
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#f77
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#fff
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#bbb
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#7f7
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#f77
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
.annotation
{
color
:
#bbb
;
list-style-type
:
none
;
padding-left
:
3em
}
div
.app
.moreinfo
.mroute
.sched-delayed
:before
{
content
:
"("
}
div
.app
.moreinfo
.mroute
.sched-delayed
:after
{
content
:
")"
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.config
a
{
color
:
#99f
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.about
a
{
color
:
#99f
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#bbb
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#fff
;
background-color
:
#101010
;
border
:
1px
solid
#444
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#ddd
;
background-color
:
#101010
;
border-color
:
#444
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#ddd
;
background-color
:
#111
;
border-color
:
#333
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
public/static/css/mobile.css
→
public/static/css/
legacy-
mobile.css
View file @
568c7192
File moved
public/static/css/
default
.css
→
public/static/css/
legacy
.css
View file @
568c7192
File moved
public/static/css/light.min.css
View file @
568c7192
body
{
margin
:
0
;
color
:
#000
;
background-color
:
#fff
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#009
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#666
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#666
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#ff9
}
.wagonorder
.powercar
{
background-color
:
#ccc
}
.wagonorder
.closed
{
background-color
:
#ddd
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#666
}
.wagonorder
.details
a
.type
{
color
:
#009
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#666
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#ccc
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#fff
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#ffe7d0
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#ddd
}
div
.app
>
ul
>
li
>
a
{
color
:
#000
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#000
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#444
}
div
.app
>
ul
>
li
.info
{
color
:
red
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#000
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#000
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#666
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
red
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
red
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
red
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#060
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#b33
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#383
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#060
}
div
.app
.replaced
{
color
:
#600
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#95d79f
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#eee
}
div
.app
.fern
{
background-color
:
#fdd
}
div
.app
.ext
{
border
:
2px
solid
#eee
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#fcc
}
div
.app
.bus
{
background-color
:
#eae
}
div
.app
.ubahn
{
background-color
:
#aac0ff
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#fff
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#000
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
red
}
div
.app
.moreinfo
.timehidden
{
color
:
#666
}
div
.app
.moreinfo
.undelay
{
color
:
#060
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#c00
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#000
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#666
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#090
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#c00
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
.sched-delayed
:before
{
content
:
"("
}
div
.app
.moreinfo
.mroute
.sched-delayed
:after
{
content
:
")"
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.config
a
{
color
:
#009
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.about
a
{
color
:
#009
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#666
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#000
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#333
;
background-color
:
#fff
;
border-color
:
#ccc
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#333
;
background-color
:
#e6e6e6
;
border-color
:
#adadad
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
body
{
margin
:
0
;
color
:
#000
;
background-color
:
#fff
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#009
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#666
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#666
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#ff9
}
.wagonorder
.powercar
{
background-color
:
#ccc
}
.wagonorder
.closed
{
background-color
:
#ddd
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#666
}
.wagonorder
.details
a
.type
{
color
:
#009
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#666
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#ccc
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#fff
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#ffe7d0
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#ddd
}
div
.app
>
ul
>
li
>
a
{
color
:
#000
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#000
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#444
}
div
.app
>
ul
>
li
.info
{
color
:
red
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#000
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#000
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#666
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
red
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
red
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
red
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#060
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#b33
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#383
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#060
}
div
.app
.replaced
{
color
:
#600
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#95d79f
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#eee
}
div
.app
.fern
{
background-color
:
#fdd
}
div
.app
.ext
{
border
:
2px
solid
#eee
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#fcc
}
div
.app
.bus
{
background-color
:
#eae
}
div
.app
.ubahn
{
background-color
:
#aac0ff
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#fff
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#000
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
red
}
div
.app
.moreinfo
.timehidden
{
color
:
#666
}
div
.app
.moreinfo
.undelay
{
color
:
#060
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#c00
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#000
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#666
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#090
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#c00
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
.annotation
{
color
:
#666
;
list-style-type
:
none
;
padding-left
:
3em
}
div
.app
.moreinfo
.mroute
.sched-delayed
:before
{
content
:
"("
}
div
.app
.moreinfo
.mroute
.sched-delayed
:after
{
content
:
")"
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.config
a
{
color
:
#009
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.about
a
{
color
:
#009
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#666
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#000
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#333
;
background-color
:
#fff
;
border-color
:
#ccc
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#333
;
background-color
:
#e6e6e6
;
border-color
:
#adadad
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
public/static/css/material-icons.css
View file @
568c7192
...
@@ -2,12 +2,12 @@
...
@@ -2,12 +2,12 @@
font-family
:
'Material Icons'
;
font-family
:
'Material Icons'
;
font-style
:
normal
;
font-style
:
normal
;
font-weight
:
400
;
font-weight
:
400
;
src
:
url(/static/v9
4
/fonts/MaterialIcons-Regular.eot)
;
/* For IE6-8 */
src
:
url(/static/v9
5
/fonts/MaterialIcons-Regular.eot)
;
/* For IE6-8 */
src
:
local
(
'Material Icons'
),
src
:
local
(
'Material Icons'
),
local
(
'MaterialIcons-Regular'
),
local
(
'MaterialIcons-Regular'
),
url(/static/v9
4
/fonts/MaterialIcons-Regular.woff2)
format
(
'woff2'
),
url(/static/v9
5
/fonts/MaterialIcons-Regular.woff2)
format
(
'woff2'
),
url(/static/v9
4
/fonts/MaterialIcons-Regular.woff)
format
(
'woff'
),
url(/static/v9
5
/fonts/MaterialIcons-Regular.woff)
format
(
'woff'
),
url(/static/v9
4
/fonts/MaterialIcons-Regular.ttf)
format
(
'truetype'
);
url(/static/v9
5
/fonts/MaterialIcons-Regular.ttf)
format
(
'truetype'
);
}
}
.material-icons
{
.material-icons
{
...
...
public/static/v9
3
→
public/static/v9
5
View file @
568c7192
File moved
sass/app.scss
View file @
568c7192
...
@@ -618,6 +618,12 @@ div.app {
...
@@ -618,6 +618,12 @@ div.app {
list-style-type
:
circle
;
list-style-type
:
circle
;
}
}
.annotation
{
color
:
$fg2
;
list-style-type
:
none
;
padding-left
:
3em
;
}
.sched-delayed
:before
{
.sched-delayed
:before
{
content
:
"("
;
content
:
"("
;
}
}
...
...
templates/_train_details.html.ep
View file @
568c7192
...
@@ -243,6 +243,19 @@
...
@@ -243,6 +243,19 @@
% }
% }
<ul class="mroute">
<ul class="mroute">
% for my $stop (@{$departure->{route_pre_diff}}) {
% for my $stop (@{$departure->{route_pre_diff}}) {
% if ($stop->{is_annotated} and $stop->{prod_name}) {
<li class="annotation">
% if ($stop->{prod_name}) {
%= $stop->{prod_name}
% }
% if ($stop->{direction}) {
→ <%= $stop->{direction} %>
% }
% if ($stop->{operator}) {
(<%= $stop->{operator} %>)
% }
</li>
% }
<li class="<%= $stop->{isPast} ? 'past-stop' : 'future-stop' %>">
<li class="<%= $stop->{isPast} ? 'past-stop' : 'future-stop' %>">
<a href="<%= url_for('station', station => $stop->{eva} // $stop->{name})->query({detailed => param('detailed'), past => param('past'), rt => param('rt'), hafas => param('hafas')}) %>#<%= ($departure->{train_type} // q{x}) . ($departure->{train_no} // q{x}) %>" class="
<a href="<%= url_for('station', station => $stop->{eva} // $stop->{name})->query({detailed => param('detailed'), past => param('past'), rt => param('rt'), hafas => param('hafas')}) %>#<%= ($departure->{train_type} // q{x}) . ($departure->{train_no} // q{x}) %>" class="
% if ($stop->{isAdditional}) {
% if ($stop->{isAdditional}) {
...
@@ -278,6 +291,19 @@
...
@@ -278,6 +291,19 @@
</li>
</li>
% }
% }
% if (stash('station_name')) {
% if (stash('station_name')) {
% if ($departure->{is_annotated} and $departure->{prod_name}) {
<li class="annotation">
% if ($departure->{prod_name}) {
%= $departure->{prod_name}
% }
% if ($departure->{direction}) {
→ <%= $departure->{direction} %>
% }
% if ($departure->{operator}) {
(<%= $departure->{operator} %>)
% }
</li>
% }
<li class="<%= $departure->{is_cancelled} ? 'cancelled-stop' : q{} %> <%= $departure->{isPast} ? 'past-stop' : 'future-stop' %>">
<li class="<%= $departure->{is_cancelled} ? 'cancelled-stop' : q{} %> <%= $departure->{isPast} ? 'past-stop' : 'future-stop' %>">
%= $departure->{departure} // $departure->{arrival} // $departure->{sched_departure} // $departure->{sched_arrival} // q{}
%= $departure->{departure} // $departure->{arrival} // $departure->{sched_departure} // $departure->{sched_arrival} // q{}
% if ($departure->{departure} and $departure->{sched_departure} and $departure->{departure} ne $departure->{sched_departure}) {
% if ($departure->{departure} and $departure->{sched_departure} and $departure->{departure} ne $departure->{sched_departure}) {
...
@@ -301,6 +327,19 @@
...
@@ -301,6 +327,19 @@
</li>
</li>
% }
% }
% for my $stop (@{$departure->{route_post_diff}}) {
% for my $stop (@{$departure->{route_post_diff}}) {
% if ($stop->{is_annotated} and $stop->{prod_name}) {
<li class="annotation">
% if ($stop->{prod_name}) {
%= $stop->{prod_name}
% }
% if ($stop->{direction}) {
→ <%= $stop->{direction} %>
% }
% if ($stop->{operator}) {
(<%= $stop->{operator} %>)
% }
</li>
% }
<li class="<%= $stop->{isPast} ? 'past-stop' : 'future-stop' %>">
<li class="<%= $stop->{isPast} ? 'past-stop' : 'future-stop' %>">
<a href="<%= url_for('station', station => $stop->{eva} // $stop->{name})->query({detailed => param('detailed'), past => param('past'), rt => param('rt'), hafas => param('hafas')}) %>#<%= ($departure->{train_type} // q{x}) . ($departure->{train_no} // q{x}) %>" class="
<a href="<%= url_for('station', station => $stop->{eva} // $stop->{name})->query({detailed => param('detailed'), past => param('past'), rt => param('rt'), hafas => param('hafas')}) %>#<%= ($departure->{train_type} // q{x}) . ($departure->{train_no} // q{x}) %>" class="
% if ($stop->{isAdditional}) {
% if ($stop->{isAdditional}) {
...
...
templates/layouts/app.html.ep
View file @
568c7192
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<meta
http-equiv=
"refresh"
content=
"<%= $self->stash('refresh_interval') %>"
/>
<meta
http-equiv=
"refresh"
content=
"<%= $self->stash('refresh_interval') %>"
/>
% }
% }
% my $av = 'v9
4
'; # asset version
% my $av = 'v9
5
'; # asset version
% if (session('theme') and session('theme') eq 'dark' or param('dark')) {
% if (session('theme') and session('theme') eq 'dark' or param('dark')) {
%= stylesheet "/static/${av}/css/dark.min.css", id => 'theme'
%= stylesheet "/static/${av}/css/dark.min.css", id => 'theme'
% }
% }
...
...
templates/layouts/legacy.html.ep
View file @
568c7192
...
@@ -17,13 +17,13 @@
...
@@ -17,13 +17,13 @@
<meta
http-equiv=
"refresh"
content=
"<%= $self->stash('refresh_interval') %>"
/>
<meta
http-equiv=
"refresh"
content=
"<%= $self->stash('refresh_interval') %>"
/>
% }
% }
% my $av = 'v9
4
'; # asset version
% my $av = 'v9
5
'; # asset version
%= stylesheet "/static/${av}/css/
default
.css"
%= stylesheet "/static/${av}/css/
legacy
.css"
%= stylesheet "/static/${av}/css/material-icons.css"
%= stylesheet "/static/${av}/css/material-icons.css"
%= stylesheet "/static/${av}/css/jquery-ui.min.css"
%= stylesheet "/static/${av}/css/jquery-ui.min.css"
% my $force_mobile = param('force_mobile') // stash('force_mobile');
% my $force_mobile = param('force_mobile') // stash('force_mobile');
% if ($force_mobile) {
% if ($force_mobile) {
%= stylesheet "/static/${av}/css/mobile.css"
%= stylesheet "/static/${av}/css/
legacy-
mobile.css"
% }
% }
%if (stash('load_marquee')) {
%if (stash('load_marquee')) {
%= javascript '/static/js/jquery-3.4.1.min.js'
%= javascript '/static/js/jquery-3.4.1.min.js'
...
...