Aller au contenu principal

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 ?​

EmplacementFichierÀ quoi il sert
Markup de l'applicationApp.razor, MenuConfiguration.razor (projet Shared)Structure visuelle : layout, zones, mode onglets, menu de navigation.
Comportements applicatifsMain.cs → OnConfigureBehavior(ApplicationBehavior app)Réglages globaux de l'UI résolus au démarrage (toasters, onglets, tailles de boutons, EULA…).
Culture applicativeMain.cs → OnInitCulture(ApplicationCultureInfo culture)Formats de dates et de nombres.
Fichier projetClient.csprojOptions de compilation côté client, notamment le Service Worker (mode hors ligne).
Markup vs comportement

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 navigationMenuConfiguration.razorLgMenuItem, LgMenuTitle, LgMenuSeparatorMenu
Activation du mode ongletsApp.razor<LgApp IsTabbed="true">Onglets
Onglets ouverts au démarrageApp.razorcontenu de <LgApp>Onglets
Sauvegarde des onglets ouvertsOnConfigureBehaviorapp.TabSavingMethodOnglets
Rechargement de l'onglet actifOnConfigureBehaviorapp.TabReloadDisabledOnglets
Rendu mobile / desktopComposant / layoutrendu adapté au médiaMobile / Desktop
Formats de date et de nombreOnInitCultureApplicationCultureInfoFormats Date & Numérique
Mode hors ligne (Service Worker)Client.csproj<ServiceWorkerEnabled>Mode hors ligne
Installation auto du Service WorkerOnConfigureBehaviorapp.ServiceWorkerAutoInstallMode hors ligne
Toasters (position, durée, barre)OnConfigureBehaviorapp.Toastr.*Toasters
Interopérabilité JavaScriptComposant / serviceIJSRuntime ou JSInteropBaseJSInterop
Styles, thèmes au choixClient/resources/styles/main.scss, theme-<nom>.scss, App:ThemeThèmes et styles
Spinner de chargementmain.scss$spinner, $sp-color, $sp-color-altSpinner
Pages d'une RCL, chargement différéClient.csproj, Main.cs<BlazorWebAssemblyLazyLoad>, app.LazyAssemblies, OnNavigateAsyncRCL 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éEffetValeur par défaut
app.ToolbarButtonSizeTaille par défaut des boutons de barre d'outils.ButtonSize.Medium
app.FrameToolbarButtonSizeTaille des boutons de barre d'outils dans les frames.ButtonSize.Small
app.ActionPanelToolbarButtonSizeTaille des boutons de barre d'outils des panneaux d'action.ButtonSize.Small
app.ColorPaletteListe des couleurs proposées par le sélecteur de couleur.palette intégrée
app.EditFormOptions par défaut des formulaires LgEditForm.—
app.SelectOptions par défaut des LgSelect / LgSelectMultiple.—
app.ResetButtonConfiguration du bouton de réinitialisation des champs.—
app.RoundModeMode d'arrondi par défaut du LgNumericBox.MidpointRounding.ToEven
app.HttpClientDefaultTimeoutTimeout par défaut du client HTTP.100 secondes
app.RgaaSupportActive le support RGAA de l'application.false
app.DevelopedByLogoUri / app.OwnerLogoUriLogos affichés sur la page « À propos ».—
app.RequireEulaConsent / app.EulaFromServerGestion du consentement aux CGU.false
Réglages transverses

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é.

Main.cs
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​