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` | `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/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/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/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`) |
|
| `/settings/categories/migrate` | `CategoriesMigrationPage` | Flux de migration v1→v2 (route flat, hors `SettingsLayout`) |
|
||||||
| `/docs` | `DocsPage` | Redirige vers `/settings/users` (rétrocompatibilité bookmarks) |
|
| `/docs` | `DocsPage` | Redirige vers `/settings/users` (rétrocompatibilité bookmarks) |
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,8 @@ interface SectionCard {
|
||||||
itemKeys: string[];
|
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",
|
to: "/settings/users",
|
||||||
titleKey: "settings.users.title",
|
titleKey: "settings.users.title",
|
||||||
|
|
@ -42,8 +43,8 @@ const SECTIONS: SectionCard[] = [
|
||||||
itemKeys: [
|
itemKeys: [
|
||||||
"settings.systems.sections.version",
|
"settings.systems.sections.version",
|
||||||
"settings.systems.sections.update",
|
"settings.systems.sections.update",
|
||||||
"settings.systems.sections.changelog",
|
|
||||||
"settings.systems.sections.logs",
|
"settings.systems.sections.logs",
|
||||||
|
"settings.systems.sections.changelog",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import { hookHarness } from "../../test/hookHarness";
|
||||||
import { logWarn } from "../../services/logService";
|
import { logWarn } from "../../services/logService";
|
||||||
import ChangelogContent from "../../components/settings/ChangelogContent";
|
import ChangelogContent from "../../components/settings/ChangelogContent";
|
||||||
import SystemsSettingsPage from "./SystemsSettingsPage";
|
import SystemsSettingsPage from "./SystemsSettingsPage";
|
||||||
|
import { SECTIONS } from "./SettingsHomePage";
|
||||||
|
|
||||||
const harness = hookHarness();
|
const harness = hookHarness();
|
||||||
|
|
||||||
|
|
@ -77,6 +78,17 @@ describe("SystemsSettingsPage — order of the sections (#372)", () => {
|
||||||
];
|
];
|
||||||
expect(order).toEqual([...order].sort((a, b) => a - b));
|
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)", () => {
|
describe("SystemsSettingsPage — the version history waits for the version (#372)", () => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue