Skip to content

Commit 74c8ef6

Browse files
committed
Migrate management menu items to bootstrap
1 parent 684f1ff commit 74c8ef6

2 files changed

Lines changed: 148 additions & 99 deletions

File tree

com.woltlab.wcf/acpMenu.xml

Lines changed: 18 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/6.0/acpMenu.xsd">
3-
<import>
4-
<!-- management -->
5-
<acpmenuitem name="wcf.acp.menu.link.management">
6-
<showorder>6</showorder>
7-
<icon>gear</icon>
8-
</acpmenuitem>
9-
<!-- maintenance -->
10-
<acpmenuitem name="wcf.acp.menu.link.maintenance">
11-
<parent>wcf.acp.menu.link.management</parent>
12-
<showorder>1</showorder>
13-
</acpmenuitem>
14-
<acpmenuitem name="wcf.acp.menu.link.systemCheck">
15-
<controller>wcf\acp\page\SystemCheckPage</controller>
16-
<parent>wcf.acp.menu.link.maintenance</parent>
17-
<permissions>admin.configuration.package.canInstallPackage</permissions>
18-
<showorder>1</showorder>
19-
</acpmenuitem>
20-
<acpmenuitem name="wcf.acp.menu.link.cronjob.list">
21-
<controller>wcf\acp\page\CronjobListPage</controller>
22-
<parent>wcf.acp.menu.link.maintenance</parent>
23-
<permissions>admin.management.canManageCronjob</permissions>
24-
<showorder>2</showorder>
25-
</acpmenuitem>
26-
<acpmenuitem name="wcf.acp.menu.link.cronjob.add">
27-
<controller>wcf\acp\form\CronjobAddForm</controller>
28-
<parent>wcf.acp.menu.link.cronjob.list</parent>
29-
<permissions>admin.management.canManageCronjob</permissions>
30-
<showorder>3</showorder>
31-
<icon>plus</icon>
32-
</acpmenuitem>
33-
<acpmenuitem name="wcf.acp.menu.link.maintenance.cache">
34-
<controller>wcf\acp\page\CacheListPage</controller>
35-
<parent>wcf.acp.menu.link.maintenance</parent>
36-
<permissions>admin.management.canRebuildData</permissions>
37-
</acpmenuitem>
38-
<acpmenuitem name="wcf.acp.menu.link.maintenance.rebuildData">
39-
<controller>wcf\acp\page\RebuildDataPage</controller>
40-
<parent>wcf.acp.menu.link.maintenance</parent>
41-
<permissions>admin.management.canRebuildData</permissions>
42-
</acpmenuitem>
43-
<acpmenuitem name="wcf.acp.menu.link.maintenance.import">
44-
<controller>wcf\acp\form\DataImportForm</controller>
45-
<parent>wcf.acp.menu.link.maintenance</parent>
46-
<permissions>admin.management.canImportData</permissions>
47-
</acpmenuitem>
48-
<acpmenuitem name="wcf.acp.menu.link.maintenance.sitemap">
49-
<controller>wcf\acp\page\SitemapListPage</controller>
50-
<parent>wcf.acp.menu.link.maintenance</parent>
51-
<permissions>admin.management.canRebuildData</permissions>
52-
</acpmenuitem>
53-
<!-- /maintenance -->
54-
<!-- stat -->
55-
<acpmenuitem name="wcf.acp.menu.link.stat">
56-
<parent>wcf.acp.menu.link.management</parent>
57-
<showorder>2</showorder>
58-
</acpmenuitem>
59-
<acpmenuitem name="wcf.acp.menu.link.stat.list">
60-
<controller>wcf\acp\page\StatPage</controller>
61-
<parent>wcf.acp.menu.link.stat</parent>
62-
<permissions>admin.management.canViewLog</permissions>
63-
</acpmenuitem>
64-
<!-- /stat -->
65-
<!-- log -->
66-
<acpmenuitem name="wcf.acp.menu.link.log">
67-
<parent>wcf.acp.menu.link.management</parent>
68-
<showorder>3</showorder>
69-
</acpmenuitem>
70-
<acpmenuitem name="wcf.acp.menu.link.log.session">
71-
<controller>wcf\acp\page\ACPSessionLogListPage</controller>
72-
<parent>wcf.acp.menu.link.log</parent>
73-
<permissions>admin.management.canViewLog</permissions>
74-
</acpmenuitem>
75-
<acpmenuitem name="wcf.acp.menu.link.log.cronjob">
76-
<controller>wcf\acp\page\CronjobLogListPage</controller>
77-
<parent>wcf.acp.menu.link.log</parent>
78-
<permissions>admin.management.canManageCronjob</permissions>
79-
</acpmenuitem>
80-
<acpmenuitem name="wcf.acp.menu.link.log.email">
81-
<controller>wcf\acp\page\EmailLogListPage</controller>
82-
<parent>wcf.acp.menu.link.log</parent>
83-
<permissions>admin.management.canViewLog</permissions>
84-
</acpmenuitem>
85-
<acpmenuitem name="wcf.acp.menu.link.log.exception">
86-
<controller>wcf\acp\page\ExceptionLogViewPage</controller>
87-
<parent>wcf.acp.menu.link.log</parent>
88-
<permissions>admin.management.canViewLog</permissions>
89-
</acpmenuitem>
90-
<acpmenuitem name="wcf.acp.menu.link.log.authentication.failure">
91-
<controller>wcf\acp\page\UserAuthenticationFailureListPage</controller>
92-
<parent>wcf.acp.menu.link.log</parent>
93-
<options>enable_user_authentication_failure</options>
94-
<permissions>admin.management.canViewLog</permissions>
95-
</acpmenuitem>
96-
<acpmenuitem name="wcf.acp.menu.link.log.modification">
97-
<controller>wcf\acp\page\ModificationLogListPage</controller>
98-
<parent>wcf.acp.menu.link.log</parent>
99-
<permissions>admin.management.canViewLog</permissions>
100-
</acpmenuitem>
101-
</import>
1023
<delete>
1034
<acpmenuitem name="wcf.acp.menu.link.contact.settings"/>
1045
<acpmenuitem name="wcf.acp.menu.link.configuration"/>
@@ -218,5 +119,23 @@
218119
<acpmenuitem name="wcf.acp.menu.link.reactionType"/>
219120
<acpmenuitem name="wcf.acp.menu.link.reactionType.list"/>
220121
<acpmenuitem name="wcf.acp.menu.link.reactionType.add"/>
122+
<acpmenuitem name="wcf.acp.menu.link.management"/>
123+
<acpmenuitem name="wcf.acp.menu.link.maintenance"/>
124+
<acpmenuitem name="wcf.acp.menu.link.systemCheck"/>
125+
<acpmenuitem name="wcf.acp.menu.link.cronjob.list"/>
126+
<acpmenuitem name="wcf.acp.menu.link.cronjob.add"/>
127+
<acpmenuitem name="wcf.acp.menu.link.maintenance.cache"/>
128+
<acpmenuitem name="wcf.acp.menu.link.maintenance.rebuildData"/>
129+
<acpmenuitem name="wcf.acp.menu.link.maintenance.import"/>
130+
<acpmenuitem name="wcf.acp.menu.link.maintenance.sitemap"/>
131+
<acpmenuitem name="wcf.acp.menu.link.stat"/>
132+
<acpmenuitem name="wcf.acp.menu.link.stat.list"/>
133+
<acpmenuitem name="wcf.acp.menu.link.log"/>
134+
<acpmenuitem name="wcf.acp.menu.link.log.session"/>
135+
<acpmenuitem name="wcf.acp.menu.link.log.cronjob"/>
136+
<acpmenuitem name="wcf.acp.menu.link.log.email"/>
137+
<acpmenuitem name="wcf.acp.menu.link.log.exception"/>
138+
<acpmenuitem name="wcf.acp.menu.link.log.authentication.failure"/>
139+
<acpmenuitem name="wcf.acp.menu.link.log.modification"/>
221140
</delete>
222141
</data>

wcfsetup/install/files/lib/system/event/listener/AcpMenuItemCollectingListener.class.php

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ public function __invoke(ItemCollecting $event): void
5151
$this->addSmileyItems($event);
5252
$this->addAdItems($event);
5353
$this->addReactionItems($event);
54+
55+
$this->addMaintenanceItems($event);
56+
$this->addStatItems($event);
57+
$this->addLogItems($event);
5458
}
5559

5660
private function addTopLevelItems(ItemCollecting $event): void
@@ -75,6 +79,10 @@ private function addTopLevelItems(ItemCollecting $event): void
7579
'wcf.acp.menu.link.customization',
7680
icon: FontAwesomeIcon::fromValues('desktop'),
7781
));
82+
$event->register(new AcpMenuItem(
83+
'wcf.acp.menu.link.management',
84+
icon: FontAwesomeIcon::fromValues('gear'),
85+
));
7886
}
7987

8088
private function addOptionItems(ItemCollecting $event): void
@@ -994,4 +1002,126 @@ private function addReactionItems(ItemCollecting $event): void
9941002
icon: FontAwesomeIcon::fromValues('plus')
9951003
));
9961004
}
1005+
1006+
private function addMaintenanceItems(ItemCollecting $event): void
1007+
{
1008+
$event->register(new AcpMenuItem(
1009+
'wcf.acp.menu.link.maintenance',
1010+
parentMenuItem: 'wcf.acp.menu.link.management'
1011+
));
1012+
1013+
if (WCF::getSession()->getPermission('admin.configuration.package.canInstallPackage')) {
1014+
$event->register(new AcpMenuItem(
1015+
'wcf.acp.menu.link.systemCheck',
1016+
parentMenuItem: 'wcf.acp.menu.link.maintenance',
1017+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\SystemCheckPage::class),
1018+
));
1019+
}
1020+
1021+
if (WCF::getSession()->getPermission('admin.management.canManageCronjob')) {
1022+
$event->register(new AcpMenuItem(
1023+
'wcf.acp.menu.link.cronjob.list',
1024+
parentMenuItem: 'wcf.acp.menu.link.maintenance',
1025+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\CronjobListPage::class),
1026+
));
1027+
$event->register(new AcpMenuItem(
1028+
'wcf.acp.menu.link.cronjob.add',
1029+
parentMenuItem: 'wcf.acp.menu.link.cronjob.list',
1030+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\form\CronjobAddForm::class),
1031+
icon: FontAwesomeIcon::fromValues('plus')
1032+
));
1033+
}
1034+
1035+
if (WCF::getSession()->getPermission('admin.management.canRebuildData')) {
1036+
$event->register(new AcpMenuItem(
1037+
'wcf.acp.menu.link.maintenance.cache',
1038+
parentMenuItem: 'wcf.acp.menu.link.maintenance',
1039+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\CacheListPage::class),
1040+
));
1041+
$event->register(new AcpMenuItem(
1042+
'wcf.acp.menu.link.maintenance.rebuildData',
1043+
parentMenuItem: 'wcf.acp.menu.link.maintenance',
1044+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\RebuildDataPage::class),
1045+
));
1046+
$event->register(new AcpMenuItem(
1047+
'wcf.acp.menu.link.maintenance.sitemap',
1048+
parentMenuItem: 'wcf.acp.menu.link.maintenance',
1049+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\SitemapListPage::class),
1050+
));
1051+
}
1052+
1053+
if (WCF::getSession()->getPermission('admin.management.canImportData')) {
1054+
$event->register(new AcpMenuItem(
1055+
'wcf.acp.menu.link.maintenance.import',
1056+
parentMenuItem: 'wcf.acp.menu.link.maintenance',
1057+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\form\DataImportForm::class),
1058+
));
1059+
}
1060+
}
1061+
1062+
private function addStatItems(ItemCollecting $event): void
1063+
{
1064+
if (!WCF::getSession()->getPermission('admin.management.canViewLog')) {
1065+
return;
1066+
}
1067+
1068+
$event->register(new AcpMenuItem(
1069+
'wcf.acp.menu.link.stat',
1070+
parentMenuItem: 'wcf.acp.menu.link.management'
1071+
));
1072+
$event->register(new AcpMenuItem(
1073+
'wcf.acp.menu.link.stat.list',
1074+
parentMenuItem: 'wcf.acp.menu.link.stat',
1075+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\StatPage::class),
1076+
));
1077+
}
1078+
1079+
private function addLogItems(ItemCollecting $event): void
1080+
{
1081+
$event->register(new AcpMenuItem(
1082+
'wcf.acp.menu.link.log',
1083+
parentMenuItem: 'wcf.acp.menu.link.management'
1084+
));
1085+
1086+
if (WCF::getSession()->getPermission('admin.management.canViewLog')) {
1087+
$event->register(new AcpMenuItem(
1088+
'wcf.acp.menu.link.log.session',
1089+
parentMenuItem: 'wcf.acp.menu.link.log',
1090+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\ACPSessionLogListPage::class),
1091+
));
1092+
}
1093+
1094+
if (WCF::getSession()->getPermission('admin.management.canManageCronjob')) {
1095+
$event->register(new AcpMenuItem(
1096+
'wcf.acp.menu.link.log.cronjob',
1097+
parentMenuItem: 'wcf.acp.menu.link.log',
1098+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\CronjobLogListPage::class),
1099+
));
1100+
}
1101+
1102+
if (WCF::getSession()->getPermission('admin.management.canViewLog')) {
1103+
$event->register(new AcpMenuItem(
1104+
'wcf.acp.menu.link.log.email',
1105+
parentMenuItem: 'wcf.acp.menu.link.log',
1106+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\EmailLogListPage::class),
1107+
));
1108+
$event->register(new AcpMenuItem(
1109+
'wcf.acp.menu.link.log.exception',
1110+
parentMenuItem: 'wcf.acp.menu.link.log',
1111+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\ExceptionLogViewPage::class),
1112+
));
1113+
if (\ENABLE_USER_AUTHENTICATION_FAILURE) {
1114+
$event->register(new AcpMenuItem(
1115+
'wcf.acp.menu.link.log.authentication.failure',
1116+
parentMenuItem: 'wcf.acp.menu.link.log',
1117+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\UserAuthenticationFailureListPage::class),
1118+
));
1119+
}
1120+
$event->register(new AcpMenuItem(
1121+
'wcf.acp.menu.link.log.modification',
1122+
parentMenuItem: 'wcf.acp.menu.link.log',
1123+
link: LinkHandler::getInstance()->getControllerLink(\wcf\acp\page\ModificationLogListPage::class),
1124+
));
1125+
}
1126+
}
9971127
}

0 commit comments

Comments
 (0)