followee list: show if accounts are following back

This commit is contained in:
Birte Kristina Friesel 2023-07-18 15:47:45 +02:00
parent c81d471728
commit fef9ebe0b2
No known key found for this signature in database
GPG key ID: 19E6E524EBB177BA
3 changed files with 52 additions and 3 deletions

View file

@ -1780,6 +1780,29 @@ my @migrations = (
} }
); );
}, },
# v43 -> v44
# show inverse relation in followees as well
sub {
my ($db) = @_;
$db->query(
qq{
drop view followees;
create view followees as select
relations.subject_id as self_id,
users.id as id,
users.name as name,
r2.predicate as inverse_predicate
from relations
join users on relations.object_id = users.id
left join relations as r2
on relations.subject_id = r2.object_id
and relations.object_id = r2.subject_id
where relations.predicate = 1;
update schema_version set version = 44;
}
);
},
); );
# TODO add 'hafas' column to in_transit (and maybe journeys? undo/redo needs something to work with...) # TODO add 'hafas' column to in_transit (and maybe journeys? undo/redo needs something to work with...)

View file

@ -1123,9 +1123,27 @@ sub get_followees {
my $db = $opt{db} // $self->{pg}->db; my $db = $opt{db} // $self->{pg}->db;
my $uid = $opt{uid}; my $uid = $opt{uid};
my $res = $db->select( 'followees', [ 'id', 'name' ], { self_id => $uid } ); my $res = $db->select(
'followees',
[ 'id', 'name', 'inverse_predicate' ],
{ self_id => $uid }
);
return $res->hashes->each; my @ret;
while ( my $row = $res->hash ) {
push(
@ret,
{
id => $row->{id},
name => $row->{name},
following_back => (
$row->{inverse_predicate}
and $row->{inverse_predicate} == $predicate_atoi{follows}
) ? 1 : 0,
}
);
}
return @ret;
} }
sub has_followees { sub has_followees {

View file

@ -130,7 +130,10 @@
</div> </div>
</div> </div>
<div class="row center-align"> <div class="row center-align">
<div class="col s12"> <div class="col s6">
<i class="material-icons">group</i><br/> Folgt dir
</div>
<div class="col s6">
<i class="material-icons">remove</i><br/> Nicht mehr folgen <i class="material-icons">remove</i><br/> Nicht mehr folgen
</div> </div>
</div> </div>
@ -230,6 +233,11 @@
</td> </td>
% } % }
% elsif ($type eq 'follows') { % elsif ($type eq 'follows') {
<td class="right-align">
% if ($entry->{following_back}) {
<i class="material-icons" aria-label="ihr folgt euch gegenseitig">group</i>
% }
</td>
<td class="right-align"> <td class="right-align">
<button class="btn-flat waves-effect waves-light" type="submit" name="unfollow" value="<%= $entry->{id} %>"> <button class="btn-flat waves-effect waves-light" type="submit" name="unfollow" value="<%= $entry->{id} %>">
<i class="material-icons" aria-label="entfolgen">remove</i> <i class="material-icons" aria-label="entfolgen">remove</i>