|
2 | 2 |
|
3 | 3 | namespace wcf\system\wsdb\gridView\user; |
4 | 4 |
|
| 5 | +use wcf\data\DatabaseObject; |
5 | 6 | use wcf\data\DatabaseObjectList; |
6 | 7 | use wcf\data\wsdb\database\I18nDatabaseList; |
7 | 8 | use wcf\data\wsdb\record\connection\RecordConnection; |
8 | 9 | use wcf\data\wsdb\record\connection\RecordConnectionList; |
9 | 10 | use wcf\data\wsdb\record\Record; |
10 | 11 | use wcf\form\WsdbConnectionAddForm; |
11 | 12 | use wcf\system\gridView\AbstractGridView; |
| 13 | +use wcf\system\gridView\AbstractGridViewRowLink; |
12 | 14 | use wcf\system\gridView\GridViewColumn; |
13 | 15 | use wcf\system\gridView\renderer\ObjectIdColumnRenderer; |
14 | 16 | use wcf\system\gridView\renderer\PhraseColumnRenderer; |
|
18 | 20 | use wcf\system\view\filter\TextFilter; |
19 | 21 | use wcf\system\WCF; |
20 | 22 | use wcf\system\wsdb\cache\runtime\RecordRuntimeCache; |
| 23 | +use wcf\util\StringUtil; |
21 | 24 |
|
22 | 25 | /** |
23 | 26 | * @extends AbstractGridView<RecordConnection, RecordConnectionList> |
@@ -66,6 +69,23 @@ public function applyFilter(DatabaseObjectList $list, string $value): void |
66 | 69 | ->sortable(true, 'databaseName'), |
67 | 70 | ]); |
68 | 71 |
|
| 72 | + $this->addRowLink( |
| 73 | + new class() extends AbstractGridViewRowLink { |
| 74 | + #[\Override] |
| 75 | + public function render(mixed $value, DatabaseObject $row, bool $isPrimaryColumn = false): string |
| 76 | + { |
| 77 | + \assert($row instanceof RecordConnection); |
| 78 | + |
| 79 | + return \sprintf( |
| 80 | + '<a href="%s" class="gridView__rowLink" tabindex="%s">%s</a>', |
| 81 | + StringUtil::encodeHTML($row->getReferencedRecord()->getLink()), |
| 82 | + ($isPrimaryColumn ? '0' : '-1'), |
| 83 | + $value |
| 84 | + ); |
| 85 | + } |
| 86 | + } |
| 87 | + ); |
| 88 | + |
69 | 89 | $this->setDefaultSortField('title'); |
70 | 90 | } |
71 | 91 |
|
|
0 commit comments