Commit 197cb644 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Allow saving default options in client-side cookie

parent 451486f5
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -321,6 +321,7 @@ sub handle_request {
	my $apiver         = $self->param('version')       // 0;
	my $callback       = $self->param('callback');
	my $with_related   = !$self->param('no_related');
	my $save_defaults  = $self->param('save_defaults') // 0;
	my @train_types = split( /,/, $self->param('train_types') // q{} );
	my %opt;

@@ -329,6 +330,16 @@ sub handle_request {
	  ? $Travel::Status::DE::IRIS::VERSION
	  : $Travel::Status::DE::HAFAS::VERSION;

	if ($save_defaults) {
		$self->session( has_data      => 1 );
		$self->session( mode          => $template );
		$self->session( hidelowdelay  => $hide_low_delay );
		$self->session( hide_opts     => $hide_opts );
		$self->session( show_realtime => $show_realtime );
		$self->session( admode        => $admode );
		$self->session( no_related    => !$with_related );
	}

	$self->stash( departures => [] );
	$self->stash( title      => 'db-infoscreen' );
	$self->stash( version    => $VERSION );
@@ -344,6 +355,13 @@ sub handle_request {
	}

	if ( not $station ) {
		if ( $self->session('has_data') ) {
			for my $param (
				qw(mode hidelowdelay hide_opts show_realtime admode no_related))
			{
				$self->param( $param => $self->session($param) );
			}
		}
		$self->render(
			'landingpage',
			hide_opts  => 0,
@@ -963,6 +981,7 @@ post '/_geolocation' => sub {
};

app->defaults( layout => 'default' );
app->sessions->default_expiration( 3600 * 24 * 28 );

get '/'               => \&handle_request;
get '/multi/*station' => \&handle_request;
+8 −0
Original line number Diff line number Diff line
@@ -146,6 +146,14 @@ Bitte eine Station aus der Liste auswählen</div>
        </label>
      </div>
    </div>
    <div class="field">
      <div class="desc">
        %= check_box 'save_defaults' => 1, id => 'id_save_defaults'
        <label for="id_save_defaults">
        Ausgewählte Optionen als Default speichern
        </label>
      </div>
    </div>
    <div class="field">
      %= submit_button 'Anzeigen'
    </div>