summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2023-07-16 23:01:23 +0200
committerBirte Kristina Friesel <derf@finalrewind.org>2023-07-16 23:01:23 +0200
commit19cd9f7a8d888302d8637af897d407fc34bab522 (patch)
tree00f08bc56704ed8a952fefec9875979f5690b721
parent49beb0922935b81a152477933a7f7cd03c76a90c (diff)
account: add a list of sent follow requests
-rw-r--r--lib/Travelynx/Command/database.pm19
-rw-r--r--lib/Travelynx/Controller/Account.pm51
-rw-r--r--lib/Travelynx/Model/Users.pm20
-rw-r--r--t/21-relations.t470
-rw-r--r--templates/account.html.ep28
-rw-r--r--templates/social_list.html.ep25
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} %>">