gestion_table_tournante_libre/src/interface/apropos.js
Mathieu Benoit 0e9ff8c708 [ADD] outputs: dated placement, draft rule, page footer, machine paper
A badge or a printed page must say which placement it shows and whether it
is a draft. The retained plan and each proposal carry an optional
timestamp, set when their placement changes and kept when a command rebuilds
it unchanged, with or without an instant; format 1 is unchanged and the
shipped demonstrations stay byte-identical. Anything but the retained plan
under a retained or locked state prints as a draft, proposals included. The
footer names event, date, round, timestamp and visible version.
Checked: red first; 3085 node and 639 browser tests green from the index.

--- FR ---

[ADD] sorties : placement daté, règle du brouillon, pied, papier

Un badge ou une page imprimée doit dire quel placement il montre et s'il
est un brouillon. Le retenu et chaque proposition portent un horodatage
facultatif, posé quand leur placement change et gardé quand une commande le
reconstruit à l'identique, avec ou sans instant ; le format 1 ne change pas
et les démonstrations livrées restent identiques à l'octet. Tout ce qui
n'est pas le retenu sous l'état retenu ou bloqué s'imprime en brouillon,
propositions comprises. Le pied nomme événement, date, tour, horodatage et
version visible.
Vérifié : rouge d'abord ; 3085 node et 639 navigateur verts depuis l'index.

Assisted-by: Claude Opus 5.5
2026-10-09 04:50:31 -04:00

46 lines
2.2 KiB
JavaScript

// © 2026 TechnoLibre (http://www.technolibre.ca)
// License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
// Le panneau « À propos » et la version à l'écran (§ 18.6). Le bloc tient en
// une ligne, que l'opérateur copie dans un courriel : il porte les deux
// formes de la version, l'affichée et celle que montrent les propriétés du
// fichier sous Windows, que scripts/version.js engendre. Sa composition est
// une seule clé de la table de la coquille : la langue témoin l'encadre une
// fois, en entier. La version et la provenance à l'écran se définissent
// dans l'application (version.js), que le papier lit aussi : ce module les
// réexporte.
export { provenanceVisible, versionVisible } from '../application/version.js';
/**
* Bloc d'une ligne du panneau « À propos » (§ 18.6) : nom, version affichée,
* version Windows, plateforme, provenance, version de format, séparés par
* « · ». La provenance s'y lit sous son libellé, ou sous son propre nom
* quand le mode n'en a pas ; la plateforme sous sa nature.
*
* @param {Object} champs
* @param {{affichee: string, windows: string}} champs.version les deux formes
* de la version, celles que reçoit App (produitVersion, versionWindows)
* @param {string} champs.plateforme la nature du système de fichiers
* @param {string} champs.provenance le mode de construction de Vite
* @param {number} champs.format la version de format des fichiers
* @param {(cle: string, details?: Object) => string} t
* @returns {string} sans saut de ligne
* @throws {RangeError} une forme de la version absente, vide ou qui n'est
* pas une chaîne, en la nommant : une dépendance d'App oubliée
* échoue au montage, plutôt que de donner un bloc copiable faux
*/
export function blocAPropos({ version, plateforme, provenance, format }, t) {
for (const forme of ['affichee', 'windows']) {
const valeur = version[forme];
if (typeof valeur !== 'string' || valeur === '') {
throw new RangeError(`À propos : la version ${forme} manque (${JSON.stringify(valeur) ?? 'undefined'})`);
}
}
return t('coquille.apropos.bloc', {
affichee: version.affichee,
windows: version.windows,
plateforme,
provenance,
format,
});
}