История коммитов

.
refactor(admin): move the maintenance and system check pages to Twig
The last two pages of the panel become @admin/maintenance.twig and
@admin/system-check.twig; both controllers return ViewResponse and drop the
Render dependency.

- the status labels and their badge classes were built in the template and now
come from the controller with the rest of the row
- a check description explains how to fix the check and one of them carries a
link to the manual, so the controller hands it over as Twig\Markup
- the three tables of the system check were copies and became a loop

Only sidebar-admin-menu.phtml is left in modules/admin/templates: the admin
parts of the other modules still render it through system::pages/result.
.
refactor(admin): move the login pages to Twig
The login screen and the verification code become @admin/login.twig and
@admin/login-captcha.twig, extending the guest layout of the panel; the
controller returns ViewResponse and drops the Render dependency.

- the form reads $request->hasBody('login') instead of $_POST
- the captcha field "remember" was rendered from an undefined variable and now
arrives from the request

KernelSmokeTest told the two areas apart by /themes/admin/assets/, which the
login page was the last to use; it now compares the built bundles instead.
The baseline loses the entry for the ?? that went away with $_POST.
.
refactor(admin): move the smilies page to Twig
/admin/emoticons becomes @admin/smilies.twig and the controller returns
ViewResponse.

The old smilies.phtml is deleted rather than migrated: no code renders
admin::smilies, and the file holds a layout call and nothing else.
.
refactor(admin): move the settings pages to Twig
The system settings, the module permissions and the antiflood settings become
@admin/settings.twig, @admin/modules-access.twig and @admin/antiflood.twig; the
three controllers return ViewResponse and drop the Render dependency.

- none of the three receives the whole johncms config any more: each gets the
values its form actually edits
- the current time of the site was computed in the template with date() and
now arrives as a fact
- the six permission blocks of the modules page were copies of one another and
became a loop over the modules the controller describes
.
refactor(admin): move the user moderation pages to Twig
Deleting a user, cleaning up the inactive profiles, the amnesty and the karma
settings become @admin templates; the four controllers return ViewResponse and
drop the Render dependency.

- the karma page no longer receives the whole johncms config, only its karma
settings
- the two hints carrying markup inside their msgid are printed with |raw
.
refactor(admin): move the user lists to Twig
The list of users, the staff, the ban panel, the pending registrations and the
IP search become @admin templates, and the shared row of a visitor becomes
@admin/components/user-row.twig; the five controllers return ViewResponse.

- the name of a visitor and the labels of their action buttons were printed
unescaped, so a name carrying markup reached the page as markup
- whether the address and the user agent may be shown is decided by
AdminUserRowMapper, and the row it builds always carries every key the
template reads
- the PHP closure building the moderation forms is now a macro
.
refactor(admin): move the forum settings and hidden content pages to Twig
The settings page and the lists of hidden posts and topics become
@admin/forum-settings.twig and @admin/forum-hidden-*.twig; the three
controllers return ViewResponse and drop the Render dependency.

- the whole forum config no longer reaches the template, only its settings
- whether the address and the user agent of an author may be shown is decided
by the row mappers, so the templates no longer compare rights themselves,
and the block itself became @admin/components/hidden-item-origin.twig
- the text of a hidden post is Twig\Markup, since the formatter escapes it
.
refactor(admin): move the forum dashboard and structure pages to Twig
Seven pages of /admin/forum become @admin/forum.twig and
@admin/forum-section-*.twig; both controllers return ViewResponse and drop
the Render dependency.

- validation messages of the add form travel as a list instead of a string
glued with <br>
- the access modes and the section types moved to the controller and are
shared by the add and the edit form
- the sections offered to move topics into arrive as rows, not as models
- five translations carried a <br> their msgid does not have, so autoescape
would print the tag as text: the tag is dropped from kk, ky, pl, ru and vi
.
refactor(admin): move the IP ban and whois pages to Twig
The six pages of /admin/ip-bans become @admin/ip-ban*.twig and the whois page
becomes @admin/ip-whois.twig; both controllers return ViewResponse and drop
the Render dependency.

- validation messages travel as a list instead of a string glued with <br>,
and the alert component prints them one per line
- the highlighting of a whois answer moves out of the template into
IpWhoisHighlighter, which escapes the answer and returns Twig\Markup
- the list of bans takes show_actions instead of no_buttons
.
refactor(admin): move the language pages to Twig
/admin/languages and its management page become @admin/languages.twig and
@admin/languages-manage.twig; the controller returns ViewResponse and drops
the Render dependency.

- the whole johncms config no longer reaches the template: the language list
arrives as rows of code, name and active
- entries of the remote language catalog are normalised in the controller, so
the template reads the same keys whatever the source
- the PHP closure building the install/update/delete forms is now a macro