Skip to content

Commit d549404

Browse files
committed
QoL: Add link to label list
1 parent 042b244 commit d549404

File tree

1 file changed

+34
-9
lines changed

1 file changed

+34
-9
lines changed

wcfsetup/install/files/lib/system/gridView/admin/LabelGroupGridView.class.php

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,23 @@
33
namespace wcf\system\gridView\admin;
44

55
use wcf\acp\form\LabelGroupEditForm;
6+
use wcf\acp\page\LabelListPage;
7+
use wcf\data\DatabaseObject;
68
use wcf\data\label\group\I18nLabelGroupList;
79
use wcf\data\label\group\LabelGroup;
810
use wcf\event\gridView\admin\LabelGroupGridViewInitialized;
911
use wcf\system\gridView\AbstractGridView;
1012
use wcf\system\gridView\GridViewColumn;
1113
use wcf\system\gridView\GridViewRowLink;
14+
use wcf\system\gridView\renderer\ILinkColumnRenderer;
1215
use wcf\system\gridView\renderer\NumberColumnRenderer;
1316
use wcf\system\gridView\renderer\ObjectIdColumnRenderer;
1417
use wcf\system\gridView\renderer\PhraseColumnRenderer;
1518
use wcf\system\gridView\renderer\TruncatedTextColumnRenderer;
1619
use wcf\system\interaction\admin\LabelGroupInteractions;
1720
use wcf\system\interaction\Divider;
1821
use wcf\system\interaction\EditInteraction;
22+
use wcf\system\request\LinkHandler;
1923
use wcf\system\view\filter\I18nTextFilter;
2024
use wcf\system\view\filter\IntegerFilter;
2125
use wcf\system\view\filter\TextFilter;
@@ -54,15 +58,27 @@ public function __construct()
5458
->sortable(),
5559
GridViewColumn::for('labels')
5660
->label('wcf.acp.label.list')
57-
->renderer(new NumberColumnRenderer())
58-
->filter(IntegerFilter::class)
59-
->sortable(
60-
sortByDatabaseColumn: '(
61-
SELECT COUNT(*)
62-
FROM wcf1_label
63-
WHERE groupID = label_group.groupID
64-
)'
65-
),
61+
->filter(new IntegerFilter('labels', 'wcf.acp.label.list', $this->subSelectLabels()))
62+
->renderer(new class extends NumberColumnRenderer implements ILinkColumnRenderer {
63+
#[\Override]
64+
public function render(mixed $value, DatabaseObject $row): string
65+
{
66+
if (!$value) {
67+
return parent::render($value, $row);
68+
}
69+
70+
return \sprintf(
71+
'<a href="%s">%s</a>',
72+
LinkHandler::getInstance()->getControllerLink(LabelListPage::class, [
73+
'filters' => [
74+
'groupID' => $row->getObjectID(),
75+
],
76+
]),
77+
parent::render($value, $row)
78+
);
79+
}
80+
})
81+
->sortable(sortByDatabaseColumn: $this->subSelectLabels()),
6682
GridViewColumn::for('showOrder')
6783
->label('wcf.global.showOrder')
6884
->renderer(new NumberColumnRenderer())
@@ -109,4 +125,13 @@ protected function getInitializedEvent(): LabelGroupGridViewInitialized
109125
{
110126
return new LabelGroupGridViewInitialized($this);
111127
}
128+
129+
private function subSelectLabels(): string
130+
{
131+
return "(
132+
SELECT COUNT(*)
133+
FROM wcf1_label
134+
WHERE groupID = label_group.groupID
135+
)";
136+
}
112137
}

0 commit comments

Comments
 (0)