43 lines
865 B
Text
43 lines
865 B
Text
|
#!/usr/bin/env perl
|
||
|
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
use 5.020;
|
||
|
|
||
|
use JSON;
|
||
|
use File::Slurp qw(write_file);
|
||
|
use Travel::Status::DE::IRIS::Stations;
|
||
|
|
||
|
my @station_names
|
||
|
= map { $_->[1] } Travel::Status::DE::IRIS::Stations::get_stations();
|
||
|
my $station_list = q{};
|
||
|
|
||
|
for my $station (@station_names) {
|
||
|
$station_list .= sprintf( "\t\t\t\"%s\": null,\n", $station );
|
||
|
}
|
||
|
|
||
|
my $autocomplete = <<"EOF";
|
||
|
/*
|
||
|
* Copyright (C) 2020 DB Station&Service AG, Europaplatz 1, 10557 Berlin
|
||
|
* Copyright (C) 2020 Daniel Friesel
|
||
|
*
|
||
|
* SPDX-License-Identifier: CC-BY-4.0
|
||
|
*/
|
||
|
document.addEventListener('DOMContentLoaded', function() {
|
||
|
var elems = document.querySelectorAll('.autocomplete');
|
||
|
M.Autocomplete.init(elems, {
|
||
|
minLength: 3,
|
||
|
limit: 50,
|
||
|
data: {
|
||
|
$station_list
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
EOF
|
||
|
|
||
|
write_file(
|
||
|
"public/static/js/autocomplete.js",
|
||
|
{ binmode => ':encoding(utf-8)' },
|
||
|
$autocomplete
|
||
|
);
|