Configuration côté client
La configuration de l'application cliente (Blazor WebAssembly) Lagoon se répartit sur quatre emplacements selon la nature du réglage. Connaître où configurer chaque fonctionnalité fait gagner du temps : cette page sert de point d'entrée et de table d'aiguillage vers les pages détaillées.
Où se configure quoi ?
| Emplacement | Fichier | À quoi il sert |
|---|---|---|
| Markup de l'application | App.razor, MenuConfiguration.razor (projet Shared) | Structure visuelle : layout, zones, mode onglets, menu de navigation. |
| Comportements applicatifs | Main.cs → OnConfigureBehavior(ApplicationBehavior app) | Réglages globaux de l'UI résolus au démarrage (toasters, onglets, tailles de boutons, EULA…). |
| Culture applicative | Main.cs → OnInitCulture(ApplicationCultureInfo culture) | Formats de dates et de nombres. |
| Fichier projet | Client.csproj | Options de compilation côté client, notamment le Service Worker (mode hors ligne). |
Une bonne partie de la mise en page (activation des onglets, header, sidebar, footer, menu) se fait dans le markup App.razor, et non dans OnConfigureBehavior. Ce dernier ne pilote que les comportements globaux résolus par code.
Tableau récapitulatif par fonctionnalité
| Fonctionnalité | Emplacement | Élément clé | Page |
|---|---|---|---|
| Structure générale (header, sidebar, footer) | App.razor | <LgApp DefaultLayout ShowHeader ShowSidebar ShowFooter> | Layout |
| Menu de navigation | MenuConfiguration.razor | LgMenuItem, LgMenuTitle, LgMenuSeparator | Menu |
| Activation du mode onglets | App.razor | <LgApp IsTabbed="true"> | Onglets |
| Onglets ouverts au démarrage | App.razor | contenu de <LgApp> | Onglets |
| Sauvegarde des onglets ouverts | OnConfigureBehavior | app.TabSavingMethod | Onglets |
| Rechargement de l'onglet actif | OnConfigureBehavior | app.TabReloadDisabled | Onglets |
| Rendu mobile / desktop | Composant / layout | rendu adapté au média | Mobile / Desktop |
| Formats de date et de nombre | OnInitCulture | ApplicationCultureInfo | Formats Date & Numérique |
| Mode hors ligne (Service Worker) | Client.csproj | <ServiceWorkerEnabled> | Mode hors ligne |
| Installation auto du Service Worker | OnConfigureBehavior | app.ServiceWorkerAutoInstall | Mode hors ligne |
| Toasters (position, durée, barre) | OnConfigureBehavior | app.Toastr.* | Toasters |
| Interopérabilité JavaScript | Composant / service | IJSRuntime ou JSInteropBase | JSInterop |
| Styles, thèmes au choix | Client/resources/styles/ | main.scss, theme-<nom>.scss, App:Theme | Thèmes et styles |
| Spinner de chargement | main.scss | $spinner, $sp-color, $sp-color-alt | Spinner |
| Pages d'une RCL, chargement différé | Client.csproj, Main.cs | <BlazorWebAssemblyLazyLoad>, app.LazyAssemblies, OnNavigateAsync | RCL et chargement différé |
Réglages additionnels via OnConfigureBehavior
L'objet ApplicationBehavior expose d'autres propriétés globales utiles côté client, sans page dédiée :
| Propriété | Effet | Valeur par défaut |
|---|---|---|
app.ToolbarButtonSize | Taille par défaut des boutons de barre d'outils. | ButtonSize.Medium |
app.FrameToolbarButtonSize | Taille des boutons de barre d'outils dans les frames. | ButtonSize.Small |
app.ActionPanelToolbarButtonSize | Taille des boutons de barre d'outils des panneaux d'action. | ButtonSize.Small |
app.ColorPalette | Liste des couleurs proposées par le sélecteur de couleur. | palette intégrée |
app.EditForm | Options par défaut des formulaires LgEditForm. | — |
app.Select | Options par défaut des LgSelect / LgSelectMultiple. | — |
app.ResetButton | Configuration du bouton de réinitialisation des champs. | — |
app.RoundMode | Mode d'arrondi par défaut du LgNumericBox. | MidpointRounding.ToEven |
app.HttpClientDefaultTimeout | Timeout par défaut du client HTTP. | 100 secondes |
app.RgaaSupport | Active le support RGAA de l'application. | false |
app.DevelopedByLogoUri / app.OwnerLogoUri | Logos affichés sur la page « À propos ». | — |
app.RequireEulaConsent / app.EulaFromServer | Gestion du consentement aux CGU. | false |
Certaines propriétés de ApplicationBehavior relèvent de chapitres transverses : le consentement aux CGU est détaillé dans CGU / EULA, et app.DefaultAcceptHeader (négociation JSON / MessagePack) dans MessagePack.
Exemple de Main.cs
Squelette type de la classe Main du projet Client, annoté par fonctionnalité.
public class Main : LgCustomApplication
{
// Comportements globaux de l'UI résolus au démarrage.
protected override void OnConfigureBehavior(ApplicationBehavior app)
{
// Sauvegarde des onglets ouverts en base serveur.
app.TabSavingMethod = TabSavingMethod.Remote;
// Toasters : position et durée d'affichage.
app.Toastr.Position = Position.TopRight;
app.Toastr.TimeOut = 5000;
// Logos affichés sur la page « À propos ».
app.DevelopedByLogoUri = new List<string> { LOGO_URI_DZ };
}
// Formats de dates et de nombres de l'application.
protected override void OnInitCulture(ApplicationCultureInfo culture)
{
base.OnInitCulture(culture);
// Personnalisation des formats ici (ex. format de date court).
}
// Enregistrement des services et du composant racine.
protected override void OnInitialize(WebAssemblyHostBuilder builder)
{
builder.RootComponents.Add<Shared.App>("#app");
Services.Registry.RegisterServices(builder.Services);
}
}
Voir aussi
- Configuration côté serveur : Logs, Mails SMTP, Authentification & autorisation.
- Configuration transverse : Application, appsettings.json.