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} %>"> |