diff --git a/lib/Command/MembersList.php b/lib/Command/MembersList.php index a017cd4f5..0e288c08d 100644 --- a/lib/Command/MembersList.php +++ b/lib/Command/MembersList.php @@ -245,24 +245,28 @@ protected function execute(InputInterface $input, OutputInterface $output): int } $table->appendRow( - [ - $member->getCircleId(), - $member->getCircle()->getDisplayName(), - $member->getId(), - $member->getSingleId(), - Member::$TYPE[$member->getUserType()], - $member->hasBasedOn() ? Circle::$DEF_SOURCE[$member->getBasedOn()->getSource()] : '', - $this->configService->displayFederatedUser( - $member, - $this->input->getOption('display-name') - ), - ($level > 0) ? Member::$DEF_LEVEL[$level] : - '(' . strtolower($member->getStatus()) . ')', - ($member->hasInvitedBy()) ? $this->configService->displayFederatedUser( - $member->getInvitedBy(), - $this->input->getOption('display-name') - ) : 'Unknown' - ] + $this->filterRow( + [ + $member->getCircleId(), + $member->getCircle()->getDisplayName(), + $member->getId(), + $member->getSingleId(), + Member::$TYPE[$member->getUserType()], + $member->hasBasedOn() ? Circle::$DEF_SOURCE[$member->getBasedOn()->getSource()] : '', + $this->cut( + $this->configService->displayFederatedUser( + $member, $this->input->getOption('display-name') + ), 40 + ), + $this->configService->displayInstance($member->getInstance()), + ($level > 0) ? Member::$DEF_LEVEL[$level] : + '(' . strtolower($member->getStatus()) . ')', + ($member->hasInvitedBy()) ? $this->configService->displayFederatedUser( + $member->getInvitedBy(), $this->input->getOption('display-name') + ) : 'Unknown' + ], + 13 + ) ); } @@ -361,9 +365,9 @@ private function getMembers( $node = new TreeNode( $tree, new SimpleDataStore( [ - 'circle' => $circle, - 'member' => $member, - 'cycling' => in_array($member->getSingleId(), $knownIds), + 'circle' => $circle, + 'member' => $member, + 'cycling' => in_array($member->getSingleId(), $knownIds), ] ) ); @@ -381,8 +385,8 @@ private function getMembers( new TreeNode( $tree, new SimpleDataStore( [ - 'member' => $member, - 'cycling' => in_array($member->getSingleId(), $knownIds) + 'member' => $member, + 'cycling' => in_array($member->getSingleId(), $knownIds) ] ) ); diff --git a/lib/Tools/Traits/TStringTools.php b/lib/Tools/Traits/TStringTools.php index b9a96f2fe..2f57dc4d8 100644 --- a/lib/Tools/Traits/TStringTools.php +++ b/lib/Tools/Traits/TStringTools.php @@ -109,9 +109,39 @@ protected function cut(string $line, int $length): string { return $line; } - return substr($line, 0, $length - 5) . ' (..)'; + return substr($line, 0, $length - 5) . ' [..]'; } + + /** + * @param array $row + * @param int $flag + * @param int $length + * + * @return array + */ + protected function filterRow(array $row, int $flag, int $length = 7): array { + if ($flag === 0) { + return $row; + } + + $c = 1; + $length = $length + 5; + + return array_map( + function ($value) use ($flag, $length, &$c) { + $n = $value; + if (($flag & $c) !== 0) { + $n = $this->cut($value, $length); + } + $c = $c * 2; + + return $n; + }, $row + ); + } + + /** * @param string $str1 * @param string $str2