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

.
fix(admin): lift every ban by an address with a delete rather than a truncate
MySQL commits the open transaction before a truncate, as the clearing of the karma did; the new test of lifting them all would leave its rows behind for the tests after it.
.
fix(admin): clear the karma with a delete rather than a truncate
MySQL commits the open transaction before a truncate, so the clearing escaped the transaction around it: in the functional suite against MySQL the test of the clearing left its rows behind for the tests after it.
.
feat(news): rebuild the settings of the news on a use case
The block of the home page and the three sets of meta tags are cards of their own, the numbers carry their units and bounds, and each set of templates says what its placeholder stands for and when the template is used. UpdateNewsSettingsUseCase validates the settings — 1 to 50 articles, 0 to 3650 days, the lengths of the texts — and writes them through LocalConfigWriter over what news.local.php holds, rather than overwriting the file. The hints of the forms of an article and of a section say the empty title and keywords are made of these templates.
.
test(news): record what the settings of the news show before rebuilding them
.
refactor(news): drop the old addresses of the forms and of the levels of the tree
Nothing in the panel leads to /admin/news/content, add_article, edit_article, add_section or edit_section any more, and the panel is not linked to from outside.
.
feat(news): rebuild the form of a section
The form lives at /admin/news/sections/new and /admin/news/sections/{id}/edit, the old addresses leading there. The name, the code and the text after the list stand on the left; on the right the place in the tree — which a section can now be moved to with everything under it, but not under itself or a section under it —, the fields for the search engines and, for a saved section, when it was made and changed. Saving stays on the form, "save and close" returns to the sections beside it. The helpers of the breadcrumbs, which nothing calls any more, are gone.
.
refactor(news): save sections through a use case and the repository
SaveSectionUseCase validates the form and writes the section; the form keeps its addresses and its template. Two answers change on the way: a code taken at the top is refused as under a section, and changing a section drops the cached tree as adding one did, so the addresses of its articles follow a new code.
.
test(news): record what the form of a section writes before rebuilding it
Adding a section under the section of the address and changing one where it stands: the fields, the code made of the name or of what is given, where the form returns to, and what it refuses — a name left empty, a code taken beside it, an unknown section. A code taken at the top is let through, the root being looked for as a null parent while the form stores 0.
.
feat(news): rebuild the form of an article
The form lives at /admin/news/articles/new and /admin/news/articles/{id}/edit, the old addresses leading there. The name, the code and the two texts stand on the left; on the right the publication with the status the dates give, the section — which an article can now be moved to, its code having to be free there — and the tags, the fields for the search engines and, for a saved article, what it is beyond its form. A field the form does not accept is marked with its message. Saving stays on the form, "save and close" returns to the list of the section. The editor of the text is given the address it uploads pictures to, which the form left out.
.
refactor(news): save articles through a use case and the repository
SaveArticleUseCase validates the form and writes the article with its text for the search; the form keeps its addresses and its template. Two answers change on the way: a code taken at the root is refused as in a section rather than ending in an error of the database, and a date that is not one is refused rather than ending in an error of the server. The dates are no longer escaped on their way in.