feat: Journal before the version history in Settings → System, history folded by version (#372) #470
3 changed files with 16 additions and 3 deletions
|
|
@ -580,7 +580,7 @@ Les modules payants sont enveloppés dans des **layout-routes pathless `RequireF
|
|||
| `/settings` | `SettingsLayout` (layout) + `SettingsHomePage` (index) | Hub des paramètres : 3 cards-cluster vers les sous-pages. Le layout monte `TokenStoreFallbackBanner` une seule fois, partagé par les 4 routes principales |
|
||||
| `/settings/users` | `UsersSettingsPage` | Comptes (Maximus), licences et guide d'utilisation (rendu inline depuis `DocsContent`) |
|
||||
| `/settings/data` | `DataSettingsPage` | Catégories (avec liens vers `/settings/categories/standard` et `/settings/categories/migrate`), backup chiffré et confidentialité de la récupération de prix |
|
||||
| `/settings/systems` | `SystemsSettingsPage` | Version, mise à jour (`UpdateCard`), journaux + commentaires (`LogViewerCard`), puis historique des versions (`ChangelogContent`), dans cet ordre : le Journal ne descend plus sous l'historique, qui s'allonge à chaque release (#372). `ChangelogContent` n'est monté qu'une fois `getVersion()` résolu (ou en échec : version inconnue, écrite au Journal) ; il ouvre les notes de la version installée et replie les autres, chaque titre de version étant un bouton (`aria-expanded`, chevron), avec un bouton « Tout déplier / Tout replier » ; un « Unreleased » vide est masqué |
|
||||
| `/settings/systems` | `SystemsSettingsPage` | Version, mise à jour (`UpdateCard`), journaux + commentaires (`LogViewerCard`), puis historique des versions (`ChangelogContent`), dans cet ordre : le Journal ne descend plus sous l'historique, qui s'allonge à chaque release (#372). `ChangelogContent` n'est monté qu'une fois `getVersion()` résolu (ou en échec : version inconnue, écrite au Journal) ; il ouvre les notes de la version installée et replie les autres, chaque titre de version étant un bouton (`aria-expanded`, chevron), avec un bouton « Tout déplier / Tout replier » ; l'en-tête non publié (« Unreleased », « Non publié ») est masqué quand il est vide. La carte Système de `SettingsHomePage` liste ces sections dans le même ordre |
|
||||
| `/settings/categories/standard` | `CategoriesStandardGuidePage` | Guide imprimable de la structure de catégories standard (route flat, hors `SettingsLayout`) |
|
||||
| `/settings/categories/migrate` | `CategoriesMigrationPage` | Flux de migration v1→v2 (route flat, hors `SettingsLayout`) |
|
||||
| `/docs` | `DocsPage` | Redirige vers `/settings/users` (rétrocompatibilité bookmarks) |
|
||||
|
|
|
|||
|
|
@ -11,7 +11,8 @@ interface SectionCard {
|
|||
itemKeys: string[];
|
||||
}
|
||||
|
||||
const SECTIONS: SectionCard[] = [
|
||||
/** The three cards of the hub; each lists its page's sections, in the page's order. */
|
||||
export const SECTIONS: SectionCard[] = [
|
||||
{
|
||||
to: "/settings/users",
|
||||
titleKey: "settings.users.title",
|
||||
|
|
@ -42,8 +43,8 @@ const SECTIONS: SectionCard[] = [
|
|||
itemKeys: [
|
||||
"settings.systems.sections.version",
|
||||
"settings.systems.sections.update",
|
||||
"settings.systems.sections.changelog",
|
||||
"settings.systems.sections.logs",
|
||||
"settings.systems.sections.changelog",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import { hookHarness } from "../../test/hookHarness";
|
|||
import { logWarn } from "../../services/logService";
|
||||
import ChangelogContent from "../../components/settings/ChangelogContent";
|
||||
import SystemsSettingsPage from "./SystemsSettingsPage";
|
||||
import { SECTIONS } from "./SettingsHomePage";
|
||||
|
||||
const harness = hookHarness();
|
||||
|
||||
|
|
@ -77,6 +78,17 @@ describe("SystemsSettingsPage — order of the sections (#372)", () => {
|
|||
];
|
||||
expect(order).toEqual([...order].sort((a, b) => a - b));
|
||||
});
|
||||
|
||||
it("lists, on the System card of the Settings home, the page's sections in the page's order", () => {
|
||||
harness.slots[0] = "0.17.2";
|
||||
const html = renderToStaticMarkup(render());
|
||||
const headings = [...html.matchAll(/<h2[^>]*>t\((settings\.systems\.sections\.[a-zA-Z]+)\)<\/h2>/g)].map(
|
||||
(match) => match[1],
|
||||
);
|
||||
expect(headings).toHaveLength(4);
|
||||
const card = SECTIONS.find((section) => section.to === "/settings/systems");
|
||||
expect(card?.itemKeys).toEqual(headings);
|
||||
});
|
||||
});
|
||||
|
||||
describe("SystemsSettingsPage — the version history waits for the version (#372)", () => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue