Commit d6e6c999 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

History: Only show months and years with logged journeys

parent 8c188826
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -1068,6 +1068,47 @@ sub startup {
		}
	);

	$self->helper(
		'history_years' => sub {
			my ( $self, $uid ) = @_;
			$uid //= $self->current_user->{id},

			  my $res = $self->pg->db->select(
				'journeys',
				'distinct extract(year from real_departure) as year',
				{ user_id  => $uid },
				{ order_by => { -asc => 'year' } }
			  );

			my @ret;
			for my $row ( $res->hashes->each ) {
				push( @ret, [ $row->{year}, $row->{year} ] );
			}
			return @ret;
		}
	);

	$self->helper(
		'history_months' => sub {
			my ( $self, $uid ) = @_;
			$uid //= $self->current_user->{id},

			  my $res = $self->pg->db->select(
				'journeys',
				"distinct to_char(real_departure, 'YYYY.MM') as yearmonth",
				{ user_id  => $uid },
				{ order_by => { -asc => 'yearmonth' } }
			  );

			my @ret;
			for my $row ( $res->hashes->each ) {
				my ( $year, $month ) = split( qr{[.]}, $row->{yearmonth} );
				push( @ret, [ "${year}/${month}", "${month}.${year}" ] );
			}
			return @ret;
		}
	);

	$self->helper(
		'get_oldest_journey_ts' => sub {
			my ($self) = @_;
+4 −4
Original line number Diff line number Diff line
<div class="row">
	<div class="col s12">
		<ul class="pagination">
			% while ($since < $now) {
				% my $link_to = $since->strftime('%Y/%m');
			% for my $month (history_months()) {
				% my $link_to = $month->[0];
				% my $text = $month->[1];
				% my $class = $link_to eq $current ? 'active' : 'waves-effect';
				<li class="<%= $class %>"><a href="/history/<%= $link_to %>"><%= $since->strftime('%m.%Y') %></a></li>
				% $since->add(months => 1)->set(day => 1, hour => 0, minute => 0, second => 0);
				<li class="<%= $class %>"><a href="/history/<%= $link_to %>"><%= $text %></a></li>
			% }
		</ul>
	</div>
+4 −4
Original line number Diff line number Diff line
<div class="row">
	<div class="col s12">
		<ul class="pagination">
			% while ($since < $now) {
				% my $link_to = $since->strftime('%Y');
			% for my $year (history_years()) {
				% my $link_to = $year->[0];
				% my $text = $year->[1];
				% my $class = $link_to eq $current ? 'active' : 'waves-effect';
				<li class="<%= $class %>"><a href="/history/<%= $link_to %>"><%= $since->strftime('%Y') %></a></li>
				% $since->add(years => 1)->set(month => 1, day => 1, hour => 0, minute => 0, second => 0);
				<li class="<%= $class %>"><a href="/history/<%= $link_to %>"><%= $text %></a></li>
			% }
		</ul>
	</div>
+4 −10
Original line number Diff line number Diff line
@@ -22,12 +22,8 @@
</div>

<h2>Nach Jahr</h2>
% my $since = get_oldest_journey_ts();
% my $now = DateTime->now(time_zone => 'Europe/Berlin');
% if ($since) {
	%= include '_history_years', current => '', since => $since->clone, now => $now;
% }
% else {
%= include '_history_years', current => '';
% if(0) {
	<div class="row">
		<div class="col s12">
			Noch keine Fahrten.
@@ -36,10 +32,8 @@
% }

<h2>Nach Monat</h2>
% if ($since) {
	%= include '_history_months', current => '', since => $since->clone, now => $now;
% }
% else {
%= include '_history_months', current => '';
% if(0) {
	<div class="row">
		<div class="col s12">
			Noch keine Fahrten.
+1 −3
Original line number Diff line number Diff line
% my $since = get_oldest_journey_ts();
% my $now = DateTime->now(time_zone => 'Europe/Berlin');
%= include '_history_months', current => "${year}/${month}", since => $since, now => $now;
%= include '_history_months', current => "${year}/${month}";

<h1><%= stash('month_name') %> <%= stash('year') %></h1>

Loading