Commit a5427163 authored by Daniel Friesel's avatar Daniel Friesel
Browse files

app: Use AJAX, not HTTP Refresh for auto-reload

parent 012169b0
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -773,6 +773,10 @@ sub handle_request {
		}
	}

	if ( $self->param('ajax') ) {
		delete $self->stash->{layout};
	}

	if ( $template eq 'json' ) {
		$self->res->headers->access_control_allow_origin(q{*});
		my $json = $self->render_to_string(
@@ -811,7 +815,6 @@ sub handle_request {
		);
	}
	elsif ( my $train = $self->param('train') ) {
		delete $self->stash->{layout};

		my ($departure) = @departures;

@@ -853,7 +856,7 @@ sub handle_request {
			departures       => \@departures,
			version          => $dbf_version,
			title            => "Abfahrtsmonitor $station_name",
			refresh_interval => 120,
			refresh_interval => $template eq 'app' ? 0 : 120,
			hide_opts        => $hide_opts,
			hide_low_delay   => $hide_low_delay,
			show_realtime    => $show_realtime,
+32 −15
Original line number Diff line number Diff line
$(document).ready(function() {
	if (document.location.hash.length > 1) {
		var wanted = document.location.hash.replace('#', '');
		$('div.app > ul > li > .moreinfo, div.infoscreen > ul > li > .moreinfo').each(function() {
			if ($(this).data('train') == wanted) {
				$(this).removeClass('collapsed-moreinfo');
				$(this).addClass('expanded-moreinfo');
			}
function reload_app() {
	$.get(window.location.href, {ajax: 1}, function(data) {
		$('div.app > ul').html(data);
		dbf_reg_handlers();
		setTimeout(reload_app, 30000);
	}).fail(function() {
		setTimeout(reload_app, 10000);
	});
}

function dbf_reg_handlers() {
	$('div.app > ul > li').click(function() {
		var trainElem = $(this);
		$('.moreinfo').each(function() {
@@ -22,7 +23,7 @@ $(document).ready(function() {
			$('.moreinfo .verbose').html('');
			$('.moreinfo .mroute').html('');
			$('.moreinfo ul').html('');
			$.get(window.location.href, {train: trainElem.data('train')}, function(data) {
			$.get(window.location.href, {train: trainElem.data('train'), ajax: 1}, function(data) {
				$('.moreinfo').html(data);
			}).fail(function() {
				$('.moreinfo .mfooter').html('Der Zug ist abgefahren (Zug nicht gefunden)');
@@ -31,10 +32,18 @@ $(document).ready(function() {
			infoElem.addClass('expanded-moreinfo');
		});
	});
	$('.moreinfo').click(function() {
		$(this).removeClass('expanded-moreinfo');
		$(this).addClass('collapsed-moreinfo');
}

$(document).ready(function() {
	if (document.location.hash.length > 1) {
		var wanted = document.location.hash.replace('#', '');
		$('div.app > ul > li > .moreinfo, div.infoscreen > ul > li > .moreinfo').each(function() {
			if ($(this).data('train') == wanted) {
				$(this).removeClass('collapsed-moreinfo');
				$(this).addClass('expanded-moreinfo');
			}
		});
	}
	$('.moresettings-header').each(function() {
		$(this).click(function() {
			var moresettings = $('.moresettings');
@@ -69,4 +78,12 @@ $(document).ready(function() {
			}
		});
	});
	$('.moreinfo').click(function() {
		$(this).removeClass('expanded-moreinfo');
		$(this).addClass('collapsed-moreinfo');
	});
	dbf_reg_handlers();
	if ($('.content .app').length) {
		setTimeout(reload_app, 30000);
	}
});
+1 −3

File changed.

Preview size limit exceeded, changes collapsed.

+5 −0
Original line number Diff line number Diff line
@@ -24,6 +24,11 @@ p {
	text-align: justify;
}

div.content {
	width: 100%;
	margin: 0;
}

div.app {
	border-width:1px 2px;
	width:100%;
+0 −0

File moved.

Loading