diff options
| author | Birte Kristina Friesel <derf@finalrewind.org> | 2023-07-16 23:01:23 +0200 | 
|---|---|---|
| committer | Birte Kristina Friesel <derf@finalrewind.org> | 2023-07-16 23:01:23 +0200 | 
| commit | 19cd9f7a8d888302d8637af897d407fc34bab522 (patch) | |
| tree | 00f08bc56704ed8a952fefec9875979f5690b721 | |
| parent | 49beb0922935b81a152477933a7f7cd03c76a90c (diff) | |
account: add a list of sent follow requests
| -rw-r--r-- | lib/Travelynx/Command/database.pm | 19 | ||||
| -rw-r--r-- | lib/Travelynx/Controller/Account.pm | 51 | ||||
| -rw-r--r-- | lib/Travelynx/Model/Users.pm | 20 | ||||
| -rw-r--r-- | t/21-relations.t | 470 | ||||
| -rw-r--r-- | templates/account.html.ep | 28 | ||||
| -rw-r--r-- | templates/social_list.html.ep | 25 | 
6 files changed, 505 insertions, 108 deletions
| diff --git a/lib/Travelynx/Command/database.pm b/lib/Travelynx/Command/database.pm index a0dea45..022614b 100644 --- a/lib/Travelynx/Command/database.pm +++ b/lib/Travelynx/Command/database.pm @@ -1761,6 +1761,25 @@ my @migrations = (  		}  		);  	}, + +	# v42 -> v43 +	# list sent and received follow requests +	sub { +		my ($db) = @_; +		$db->query( +			qq{ +				alter view follow_requests rename to rx_follow_requests; +				create view tx_follow_requests as select +					relations.subject_id as self_id, +					users.id as id, +					users.name as name +					from relations +					join users on relations.object_id = users.id +					where predicate = 2; +				update schema_version set version = 43; +			} +		); +	},  );  # TODO add 'hafas' column to in_transit (and maybe journeys? undo/redo needs something to work with...) diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm index d7035d8..2664329 100644 --- a/lib/Travelynx/Controller/Account.pm +++ b/lib/Travelynx/Controller/Account.pm @@ -547,12 +547,24 @@ sub social_list {  	my $kind = $self->stash('kind');  	my $user = $self->current_user; -	if ( $kind eq 'follow-requests' ) { +	if ( $kind eq 'follow-requests-received' ) {  		my @follow_reqs  		  = $self->users->get_follow_requests( uid => $user->{id} );  		$self->render(  			'social_list', -			type          => 'follow-requests', +			type          => 'follow-requests-received', +			entries       => [@follow_reqs], +			notifications => $user->{notifications}, +		); +	} +	elsif ( $kind eq 'follow-requests-sent' ) { +		my @follow_reqs = $self->users->get_follow_requests( +			uid  => $user->{id}, +			sent => 1 +		); +		$self->render( +			'social_list', +			type          => 'follow-requests-sent',  			entries       => [@follow_reqs],  			notifications => $user->{notifications},  		); @@ -994,10 +1006,10 @@ sub change_name {  			return;  		} -       # The users table has a unique constraint on the "name" column, so having -       # two users with the same name is not possible. The race condition -       # between the user_name_exists check in is_name_invalid and this -       # change_name call is harmless. +		# The users table has a unique constraint on the "name" column, so having +		# two users with the same name is not possible. The race condition +		# between the user_name_exists check in is_name_invalid and this +		# change_name call is harmless.  		my $success = $self->users->change_name(  			uid  => $self->current_user->{id},  			name => $new_name @@ -1240,20 +1252,25 @@ sub confirm_mail {  }  sub account { -	my ($self)          = @_; -	my $uid             = $self->current_user->{id}; -	my $follow_requests = $self->users->has_follow_requests( uid => $uid ); -	my $followers       = $self->users->has_followers( uid => $uid ); -	my $following       = $self->users->has_followees( uid => $uid ); -	my $blocked         = $self->users->has_blocked_users( uid => $uid ); +	my ($self)             = @_; +	my $uid                = $self->current_user->{id}; +	my $rx_follow_requests = $self->users->has_follow_requests( uid => $uid ); +	my $tx_follow_requests = $self->users->has_follow_requests( +		uid  => $uid, +		sent => 1 +	); +	my $followers = $self->users->has_followers( uid => $uid ); +	my $following = $self->users->has_followees( uid => $uid ); +	my $blocked   = $self->users->has_blocked_users( uid => $uid );  	$self->render(  		'account', -		api_token           => $self->users->get_api_token( uid => $uid ), -		num_follow_requests => $follow_requests, -		num_followers       => $followers, -		num_following       => $following, -		num_blocked         => $blocked, +		api_token              => $self->users->get_api_token( uid => $uid ), +		num_rx_follow_requests => $rx_follow_requests, +		num_tx_follow_requests => $tx_follow_requests, +		num_followers          => $followers, +		num_following          => $following, +		num_blocked            => $blocked,  	);  	$self->users->mark_seen( uid => $uid );  } diff --git a/lib/Travelynx/Model/Users.pm b/lib/Travelynx/Model/Users.pm index 8f1714d..0665f6a 100644 --- a/lib/Travelynx/Model/Users.pm +++ b/lib/Travelynx/Model/Users.pm @@ -809,8 +809,8 @@ sub get_relation {  	}  	return; -   #my $res_h = $db->select( 'relations', ['subject_id', 'predicate'], -   #	{ subject_id => [$uid, $target], object_id => [$target, $target] } )->hash; +	#my $res_h = $db->select( 'relations', ['subject_id', 'predicate'], +	#	{ subject_id => [$uid, $target], object_id => [$target, $target] } )->hash;  }  sub update_notifications { @@ -1096,11 +1096,12 @@ sub has_followers {  sub get_follow_requests {  	my ( $self, %opt ) = @_; -	my $db  = $opt{db} // $self->{pg}->db; -	my $uid = $opt{uid}; +	my $db    = $opt{db} // $self->{pg}->db; +	my $uid   = $opt{uid}; +	my $table = $opt{sent} ? 'tx_follow_requests' : 'rx_follow_requests';  	my $res -	  = $db->select( 'follow_requests', [ 'id', 'name' ], { self_id => $uid } ); +	  = $db->select( $table, [ 'id', 'name' ], { self_id => $uid } );  	return $res->hashes->each;  } @@ -1108,11 +1109,12 @@ sub get_follow_requests {  sub has_follow_requests {  	my ( $self, %opt ) = @_; -	my $db  = $opt{db} // $self->{pg}->db; -	my $uid = $opt{uid}; +	my $db    = $opt{db} // $self->{pg}->db; +	my $uid   = $opt{uid}; +	my $table = $opt{sent} ? 'tx_follow_requests' : 'rx_follow_requests'; -	return $db->select( 'follow_requests', 'count(*) as count', -		{ self_id => $uid } )->hash->{count}; +	return $db->select( $table, 'count(*) as count', { self_id => $uid } ) +	  ->hash->{count};  }  sub get_followees { diff --git a/t/21-relations.t b/t/21-relations.t index 5b68555..0a33dc5 100644 --- a/t/21-relations.t +++ b/t/21-relations.t @@ -90,12 +90,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  $u->request_follow(  	uid    => $uid1, @@ -122,16 +150,48 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 1 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        1 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       1 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	1 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      1 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	1 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 1 );  is_deeply(  	[ $u->get_follow_requests( uid => $uid2 ) ],  	[ { id => $uid1, name => 'test1' } ]  ); +is_deeply( +	[ $u->get_follow_requests( uid => $uid1, sent => 1 ) ], +	[ { id => $uid2, name => 'test2' } ] +);  $u->reject_follow_request(  	uid       => $uid2, @@ -158,10 +218,24 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->get( uid => $uid1 )->{notifications},     0 ); +is( $u->get( uid => $uid2 )->{notifications},     0 );  $u->request_follow(  	uid    => $uid1, @@ -188,16 +262,48 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 1 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        1 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       1 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	1 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      1 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	1 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 1 );  is_deeply(  	[ $u->get_follow_requests( uid => $uid2 ) ],  	[ { id => $uid1, name => 'test1' } ]  ); +is_deeply( +	[ $u->get_follow_requests( uid => $uid1, sent => 1 ) ], +	[ { id => $uid2, name => 'test2' } ] +);  $u->accept_follow_request(  	uid       => $uid2, @@ -224,12 +330,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       1 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  is_deeply(  	[ $u->get_followers( uid => $uid2 ) ],  	[ @@ -273,12 +407,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  $u->request_follow(  	uid    => $uid1, @@ -325,12 +487,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   1 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 1 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  is_deeply(  	[ $u->get_blocked_users( uid => $uid2 ) ],  	[ { id => $uid1, name => 'test1' } ] @@ -361,12 +551,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  $u->block(  	uid    => $uid2, @@ -393,12 +611,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   1 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 1 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  is_deeply(  	[ $u->get_blocked_users( uid => $uid2 ) ],  	[ { id => $uid1, name => 'test1' } ] @@ -429,12 +675,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  $u->request_follow(  	uid    => $uid1, @@ -465,12 +739,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       1 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  is_deeply(  	[ $u->get_followers( uid => $uid2 ) ],  	[ @@ -514,12 +816,40 @@ is( scalar $u->get_followees( uid => $uid1 ),       0 );  is( scalar $u->get_followees( uid => $uid2 ),       0 );  is( scalar $u->get_follow_requests( uid => $uid1 ), 0 );  is( scalar $u->get_follow_requests( uid => $uid2 ), 0 ); -is( scalar $u->get_blocked_users( uid => $uid1 ),   0 ); -is( scalar $u->get_blocked_users( uid => $uid2 ),   0 ); -is( $u->has_follow_requests( uid => $uid1 ),        0 ); -is( $u->has_follow_requests( uid => $uid2 ),        0 ); -is( $u->get( uid => $uid1 )->{notifications},       0 ); -is( $u->get( uid => $uid2 )->{notifications},       0 ); +is( +	scalar $u->get_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	scalar $u->get_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( scalar $u->get_blocked_users( uid => $uid1 ), 0 ); +is( scalar $u->get_blocked_users( uid => $uid2 ), 0 ); +is( $u->has_follow_requests( uid => $uid1 ),      0 ); +is( $u->has_follow_requests( uid => $uid2 ),      0 ); +is( +	$u->has_follow_requests( +		uid  => $uid1, +		sent => 1 +	), +	0 +); +is( +	$u->has_follow_requests( +		uid  => $uid2, +		sent => 1 +	), +	0 +); +is( $u->get( uid => $uid1 )->{notifications}, 0 ); +is( $u->get( uid => $uid2 )->{notifications}, 0 );  $t->app->pg->db->query('drop schema travelynx_test_21 cascade');  done_testing(); diff --git a/templates/account.html.ep b/templates/account.html.ep index d3305a2..1da49be 100644 --- a/templates/account.html.ep +++ b/templates/account.html.ep @@ -92,10 +92,10 @@  					% }  					% elsif ($acc->{accept_follow_requests}) {  						<span>Accounts können dir auf Anfrage folgen -						% if ($num_follow_requests == 1) { +						% if ($num_rx_follow_requests == 1) {  							– <a href="/account/social/follow-requests"><strong>eine</strong> offene Anfrage</a> -						% } elsif ($num_follow_requests) { -							– <a href="/account/social/follow-requests"><strong><%= $num_follow_requests %></strong> offene Anfragen</a> +						% } elsif ($num_rx_follow_requests) { +							– <a href="/account/social/follow-requests"><strong><%= $num_rx_follow_requests %></strong> offene Anfragen</a>  						% }  						</span>  					% } @@ -179,7 +179,7 @@  	</div>  </div> -% if ($num_follow_requests or $num_followers or $num_following or $num_blocked) { +% if ($num_rx_follow_requests or $num_tx_follow_requests or $num_followers or $num_following or $num_blocked) {  	<div class="row">  		<div class="col s12">  			<h2>Interaktion</h2> @@ -190,14 +190,24 @@  				<tr>  					<th scope="row">Anfragen</th>  					<td> -						% if ($num_follow_requests == 0) { -							<span style="color: #999999;">keine offen</span> +						% if ($num_rx_follow_requests == 0) { +							<span style="color: #999999;">keine eingehend</span>  						% } -						% elsif ($num_follow_requests == 1) { -							<a href="/account/social/follow-requests"><strong>ein</strong> Account</a> +						% elsif ($num_rx_follow_requests == 1) { +							<a href="/account/social/follow-requests-received"><strong>eine</strong> eingehend</a>  						% }  						% else { -							<a href="/account/social/follow-requests"><strong><%= $num_follow_requests %></strong> Accounts</a> +							<a href="/account/social/follow-requests-received"><strong><%= $num_rx_follow_requests %></strong> eingehend</a> +						% } +						<br/> +						% if ($num_tx_follow_requests == 0) { +							<span style="color: #999999;">keine ausgehend</span> +						% } +						% elsif ($num_tx_follow_requests == 1) { +							<a href="/account/social/follow-requests-sent"><strong>eine</strong> ausgehend</a> +						% } +						% else { +							<a href="/account/social/follow-requests-sent"><strong><%= $num_tx_follow_requests %></strong> ausgehend</a>  						% }  					</td>  				</tr> diff --git a/templates/social_list.html.ep b/templates/social_list.html.ep index 9808512..1a3e441 100644 --- a/templates/social_list.html.ep +++ b/templates/social_list.html.ep @@ -2,10 +2,10 @@  %= csrf_field  %= hidden_field redirect_to => '/account'  % my $count = scalar @{$entries}; -% if ($type eq 'follow-requests') { +% if ($type eq 'follow-requests-received') {  	<div class="row">  		<div class="col s12"> -			<h2>Folge-Anfragen</h2> +			<h2>Erhaltene Folge-Anfragen</h2>  		</div>  	</div>  	% if ($notifications) { @@ -52,6 +52,18 @@  	</div>  	-->  % } +% elsif ($type eq 'follow-requests-sent') { +	<div class="row"> +		<div class="col s12"> +			<h2>Gestellte Folge-Anfragen</h2> +		</div> +	</div> +	<div class="row center-align"> +		<div class="col s12"> +			<i class="material-icons">cancel</i><br/> Zurücknehmen +		</div> +	</div> +% }  % elsif ($type eq 'followers') {  	<div class="row">  		<div class="col s12"> @@ -168,7 +180,7 @@  				% for my $entry (@{$entries}) {  					<tr>  						<td><a href="/p/<%= $entry->{name} %>"><%= $entry->{name} %></a></td> -						% if ($type eq 'follow-requests') { +						% if ($type eq 'follow-requests-received') {  							<td class="right-align">  								<button class="btn-flat waves-effect waves-light" type="submit" name="block" value="<%= $entry->{id} %>">  									<i class="material-icons" aria-label="blockieren">block</i> @@ -185,6 +197,13 @@  								</button>  							</td>  						% } +						% elsif ($type eq 'follow-requests-sent') { +							<td class="right-align"> +								<button class="btn-flat waves-effect waves-light" type="submit" name="cancel_follow_request" value="<%= $entry->{id} %>"> +									<i class="material-icons" aria-label="zurücknehmen">cancel</i> +								</button> +							</td> +						% }  						% elsif ($type eq 'followers') {  							<td class="right-align">  								<button class="btn-flat waves-effect waves-light" type="submit" name="block" value="<%= $entry->{id} %>"> | 
