Conversation
…er user experience
Kpi global
…nd selection features
…r in dynamic chart component
* commit save test-implementation * refactor(navbar): extract navbar into dedicated NavbarComponent - Move all toolbar/env/navigation logic from AppComponent into new NavbarComponent - AppComponent becomes a minimal shell (<app-navbar> + router outlet) - NavbarComponent: fixed navbar with SVG logo (reveal animation), color-coded env selector, deploy/KPI/GitHub action buttons, hierarchical menu - Remove search-main mock data (delete search-main.mock.ts, restore real API calls) - Simplify search-main layout: direct flex-table on jquery-table, remove .table-container wrapper - Add column icons, enable slices and allowColumnRemoval in search-main table config - Replace DatePipe with Intl.DateTimeFormat in search-main - Redesign header-page title-container with gradient background and styled icon - Add global styles: mat-mini-fab primary theme, mat-form-field outline focus color - Add Material Icons Outlined font link in index.html * feat(search-rest): migrate mat-table → jquery-table - Replace MatTableDataSource + mat-table + MatPaginator + MatSort with <jquery-table> - Add SearchRestTableRow interface (start/end as raw timestamps, value providers for formatting) - Add value provider on 'start' col: Intl.DateTimeFormat (no DatePipe) - Add value provider on 'end' col: formatDuration() pure arithmetic (no toLocaleString) - Add rowClass: row-ok / row-warning / row-ko / row-in-progress with pulse animation - Add slices: Status + Hôte; enableSearchBar, enablePagination, enableViewButton - Remove mat-select filters (Hôte / Status) from toolbar — replaced by slices panel - Replace table-container/table-wrapper layout with :host flex-column + flex-table - Add performance.mark() instrumentation (temporary) to measure BACK vs FRONT timing - Clean up unused imports: MatTableModule, MatPaginatorModule, MatSortModule, DatePipe, INFINITY * feat(deploiment): migrate from mat-table to jquery-table and refactor related components * feat(table-config): update table configuration for deploiment and search-rest views with new columns and sorting options * feat(search-main): refactor table configuration to use new column structure with sorting options * feat(table-config): ajuster la configuration des colonnes pour les vues de déploiement et de recherche avec des largeurs proportionnelles * component table integration * component table integration * component table integration * component table integration * component table integration * - suppression des menus groupby et slice de view s'ils n'y en a pas - modification event sur ligne pour laisser la main au dev meme avec utilisation de ng-template (voir page request/rest) - ajout de la prop "hidden" dans u slice pour permettre de modif la value tout en n'affichant pas par défaut le slice (voir page deploiement) * merge et modif pour appliquer onRowSelected * component table integration * component table integration * refactor: simplification des imports et amélioration de la gestion des événements dans les composants de table * feat: ajout de la gestion des KPI dans le menu de navigation et mise à jour de la configuration des tables à la suite de la maj sur les models * component table integration * fix: mise à jour des classes de ligne pour le tableau de session * component table integration * component table integration * fix: désactiver les logs de débogage dans le pipe de durée * fix: mise à jour de l'importation de TableProvider pour le tableau * component table integration --------- Co-authored-by: Dorian <dorianpernot2@gmail.com>
# Conflicts: # src/app/app.module.ts
…i-global-bu # Conflicts: # src/app/views/statistic/request/http/constant.ts # src/app/views/statistic/request/http/statistic-request-http.component.html # src/app/views/statistic/request/http/statistic-request-http.component.ts
# Conflicts: # src/app/views/views.module.ts
* feat(dashboard): optimisation réseau, refonte UI sidebar et nettoyage
## Dépendances
- package.json: jquery-echarts 0.0.1→^0.0.3, jquery-table ^0.0.3→^0.0.5, jquery-core override ^0.0.30→^0.0.32
## Nouveau composant About
- about-dialog.component (html/scss/ts): dialog "Stack Technique" accessible depuis la navbar
- navbar: ajout bouton icône info_outline + openAbout(), séparateur visuel
- app.module.ts: déclaration AboutDialogComponent
## Optimisation réseau (-2 requêtes HTTP)
- dashboard.component.ts: suppression de getCountByType (req 15+16)
calcul client-side de sessionCountByType depuis countok (window function)
via _rebuildSingleTabErrors par tab au lieu d'un rebuild global
## Corrections dashboard
- isBlockLoading STARTUP: aligné sur startupExceptionTable.isLoading (et non sessionCountLoading)
- isNoIncidents STARTUP: suppression de la condition divergentBranches (jamais rendu)
- Cache santé serveur par env (_lastHealthEnv): évite de recharger à chaque changement de période
## Refonte sidebar
- Grid 3 colonnes (suppression colonne icône 52px)
- Skeletons alignés sur la nouvelle grille (sbd-skel-dot/main/top)
- Cases toujours cliquables (suppression condition rate > 0)
- Compteur déplacé dans sbd-top (en ligne avec le label)
- Point indicateur de sélection (::before, bleu)
- Icône info sur "Instances actives" + tooltip
- Stats instances: 3 cases (Total en premier, suppression En ligne)
## Graphes flux (noData)
- constants.ts: noDataStyle + tooltip _noData sur les 5 configs REST/JDBC/FTP/SMTP/LDAP
- _fillFluxGaps: remplissage des trous de données avec _noData: true
## Suppression code mort
- Carousel (carousel.component.*): supprimé (non utilisé dans aucun template)
- views.module.ts: déréférencement DashboardCarouselComponent
- Champs: divergentBranches, insightsAllClear, hasRequestErrors,
quietProtocols, stoppedServers, unstableServers, onlineServerStat
- Méthodes: trackByVersion, trackByBranch, trackByAppName (dashboard + detail-view)
- detail-view.model.ts: serverHealthLoading, insightsAllClear, divergentBranches
- instance.service.ts: getRecentStartCount (non utilisée)
## Labels
- Renommage en français: Service→Services exposés, Job→Tâches planifiées,
Startup→Initialisation, UI→Parcours client (dashboard + detail-view)
- tech-stack.config.ts: désactivation kafka, docker, apachetomcat, linux, git, github
* fix(dashboard): corrections warnings Angular/Sonar, a11y, UX detail-view
Corrections qualité (Sonar)
- dashboard.component.ts : champs injectés → `private readonly` (16 champs) ;
`Date.now()` au lieu de `new Date().getTime()` ; guard clauses positives dans
les callbacks `finalize` ; template literals imbriqués → concaténation simple ;
ternaire imbriqué `appname` → if/else ; `Object.assign` → spread ; if/else if
inversé dans `groupBypropertyRest` ; extraction de `_aggregateTabData()` et
`_patchSessionCountData()` pour réduire la complexité cognitive de
`_rebuildSingleTabErrors` ; variable `plural` pour le ternaire subtitle
- protocol-exception-modal.component.ts : `_router` → `private readonly`
Corrections warnings Angular
- detail-ftp.view.ts, detail-ldap.view.ts, ftp.component.ts, ldap.component.ts,
smtp.component.ts, request-kpi.view.ts, session-kpi.view.ts : ajout de
`host: { 'data-view': '…' }` pour résoudre les collisions d'ID NG0912
- environment.remote.json : fichier vide → `{}` pour corriger l'erreur de
chargement de config au démarrage
- main.ts : warning `bad value` n'est émis que si la valeur n'est pas `undefined`
Accessibilité (a11y / Sonar HTML)
- dashboard.component.html : `div.dov-stat-sb` (total/pending/offline) convertis
en `<button type="button">` ; `div.sbd-row` (session/flux) enrichis de
`tabindex="0"` + `(keydown.enter)`
- detail-view.component.html : tous les `div.dbi-row-link` convertis en
`<button type="button">` ; `mat-icon` VIEW enrichi de `tabindex` + `keydown.enter`
Contraste SCSS (Sonar)
- dashboard.component.scss : `rgba(0,0,0,.5)` → `.65` ; `#4285f4` → `#1967d2` ;
couleurs des statuts sb-online/sb-pending/sb-total renforcées ; reset button
sur `.dov-stat-sb` (`border: none; font: inherit`)
- detail-view.component.scss : reset button sur `.dbi-row[type="button"]`
Bug visuel — flash "Aucun incident" (flux à 100%)
- detail-view.component.ts : `isBlockLoading` et `isNoIncidents` utilisent
désormais l'état de chargement propre au protocole sélectionné
(`chartRequests[reqKey]`) plutôt que le `kpiLoading` global, éliminant l'état
intermédiaire pour les flux sans erreur tout en maintenant l'attente correcte
pour les flux avec erreurs
UX — état "Aucun incident"
- detail-view.component.scss : `db-clear-state` avec `min-height: calc(100dvh - 255px)`
pour occuper toute la hauteur disponible indépendamment de la sidebar ; tailles
de l'icône, du titre, du label et du sous-titre augmentées ; media query à
1600px pour les grands écrans
- navbar.component.ts : blur de l'élément actif avant ouverture du dialog "About"
* refactor: remplacer header-page par page-panel + PageTitleService
BREAKING: suppression du composant HeaderPage, remplacé par deux nouveaux
services et un composant bandeau horizontal de filtres.
Nouveaux fichiers :
- page-title.service.ts : service centralisant le titre/icône affiché dans la
navbar via un BehaviorSubject ; chaque vue appelle .set() dans ngOnInit et
.clear() dans ngOnDestroy
- page-panel.service.ts : service gérant l'état ouvert/fermé du bandeau de
filtres (hover timer, annulation si overlay CDK ouvert, grace period de 400ms
pour éviter la fermeture au clic réflexe après hover)
- shared/_component/page-panel/ : composant bandeau horizontal fixe sous la
navbar (position fixed top:56px), slide-down animé, fermeture à l'Échap et
au mouseleave de la navbar
Supprimés :
- shared/_component/header-page/ : composant header-page supprimé (html/scss/ts)
navbar.component (html/scss/ts) :
- affichage dynamique du titre via PageTitleService
- bouton trigger "pill" avec hover (open) et clic (closeIfNotJustOpened) pour
le bandeau de filtres ; mouseleave sur la <nav> entière pour scheduleClose
shared.module.ts :
- HeaderPageComponent retiré des declarations/exports, PagePanelComponent ajouté
12 vues (html + ts) — analytic, architecture, dashboard, deploiment, kpi/request,
kpi/session, search/main, search/request, search/rest, supervision/client,
supervision/server, tree :
- migration de <header-page> vers <page-panel> + classes .pp-actions/.pp-filters
- PageTitleService.set() dans ngOnInit, .clear() dans ngOnDestroy
detail-view.component.scss :
- hauteurs adaptatives via clamp()/calc(100vh) pour db-insights et clt-loading
(petit et grand écran), proto-row, sess-chart-row, db-clear-state
instances-table.component.scss :
- .dov-table : hauteur corrigée après suppression du header-page
dashboard.component.scss :
- ajustements de hauteurs suite à la suppression du header-page
_form-field.scss :
- ajout du scope page-panel .pp-body pour appliquer les styles MDC personnalisés
(coins arrondis, fond grisé, hauteur 46px) aux form fields du bandeau
* feat(ui): amélioration de la navigation, du panel de filtres et du layout des pages de détail
## Titres & nommage des pages
- Remplace le séparateur `>` par `•` dans tous les titres de routes
- Corrige le doublon "Flux Flux JDBC/HTTP/..." : les titres de routes utilisent directement `REQUEST_MAPPING_TYPE` au lieu de concaténer `MAPPING_TYPE['request']`
- Renomme "Page d'accueil" → "Tableau de bord" (route, constants, composant)
- Ajoute les suffixes `• Suivi`, `• Détail`, `• KPI` dans les titres PageTitleService des vues search, détail et KPI
- Retire le préfixe "Flux" dans les labels du sous-menu navbar (HTTP, JDBC, FTP, SMTP, LDAP)
- Intègre `PageTitleService` dans toutes les vues de détail (request et session)
## Panel de filtres
- Supprime `panelIcon$` / `icon$` du service et du composant (icône désormais fixe : `filter_list` dans la navbar)
- Supprime `@Input() panelIcon` de `PagePanelComponent`
- Ferme automatiquement le panel au clic sur le bouton `search` (mini-fab primary) via `onBodyClick()`
## Champ Période
- Ajoute la classe `period-wide` (310px) sur le champ Période dans les 3 vues search avec heures (request, main, rest)
- Ajoute la règle CSS `::ng-deep mat-form-field.period-wide` dans `page-panel.component.scss`
## Layout pages de détail (flex column)
- Remplace les hauteurs codées en dur `calc(100vh - ...)` par un layout flex column sur toutes les vues de détail
- Applique `:host { display: flex; flex-direction: column; height: 100% }` + `.tabs-container { flex: 1 1 0 }` sur les 5 vues request (REST, JDBC, FTP, SMTP, LDAP)
- Applique le même pattern sur les 2 vues session (rest, main) avec `detail-session { flex: 1 1 0 }`
- Met à jour `detail-session.component.scss` en cohérence
* style(dashboard): supprime la pastille de sélection dans les blocs sb-distribution
- Retire la colonne dédiée de 6px dans grid-template-columns de .sb-distribution-block et .sb-distribution
- Supprime le pseudo-élément ::before de .sbd-row (pastille bleue + animation scale)
- Conserve les effets visuels de sélection sur le label, le taux et le compteur
* fix(dashboard): corriger le graphique "Services Exposés" et harmoniser l'UI
**Dashboard - Graphique d'exceptions REST**
- Suppression du filtre serveur `status.ge(500).or(status.lt(400))` qui excluait
les erreurs 4xx de la requête, rendant le graphique vide ou incorrect
- Ajout du filtre JS côté client pour inclure les 4xx dans la liste d'incidents
(`r.errorType != null && (r.status >= 400 || r.status < 100)`)
- Fix service `getSessionExceptions` : `others` n'appliquait que la première clé
du map (Object.keys()[0]) → itération sur toutes les entrées avec Object.entries()
**Dashboard - Skeleton UI**
- Suppression des points squelettes (`.sbd-skel-dot`) dans les sections
Session, Protocol et Flux lors du chargement
**Navbar**
- Suppression de 2 séparateurs superflus (avant le titre de page et avant le bouton GitHub)
- Unification du style `.nav-divider` : hauteur 20px, gradient transparent,
`flex-shrink: 0` et `align-self: center` pour un rendu cohérent
**Supervision**
- Déplacement du bloc nom/version/branche hors du `page-panel` vers un
bandeau `.page-instance-header` entre les filtres et le contenu KPI
- Correction du layout des filtres : suppression du `style` inline
`display: flex; flex-direction: column` qui écrasait le CSS existant
- Titres navbar en français et hiérarchiques :
"Server Supervision" → "Supervision • Serveur"
"Client Supervision" → "Supervision • Client"
`instance > uuid` → "Supervision • Instance • uuid"
- Ajout du `subtitle` dans `pageTitleService` pour les vues Serveur et Client
* fix(kpi): hide no-data symbols on exception line charts and clean up redundant pie label overrides
- constants: replace noDataStyle.color with symbolSize:0 on exception line
charts (REST, JDBC, FTP, SMTP, LDAP) to hide markers when no data
- jdbc: remove explicit label/labelLine overrides now handled by jquery-echarts default
* bump version jquery-echarts - fix donuts labels
* supp comments
* fix affichage des 4** * fix format de "sb-block" sur grand ecran * error front interceptor * stop propagation * update filter * update position and style "about-btn" and "github-btn" * fix navbar
|
|
… 391-add-generic-authentification
| <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" /> | ||
| <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0" /> | ||
| <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/devicon.min.css" /> |
* remove-client-credentials * remove-auth-logs * generic_auth
* maj * Améliore la gestion des exceptions dans le tableau de bord et ajuste les paramètres de navigation * Ajoute la normalisation de la période minimale et améliore la gestion des plages de dates dans les composants de tableau de bord et de recherche * Modifie les titres des sections pour refléter le pourcentage d'incidents et ajuste le style des composants de tableau de bord * fonction "gotoHome" modifiée pour qu'elle prenne le merge egalement et qu'elle garde les params, notamment la période * Ajoute des sous-titres pour les graphiques d'incidents
* ui(supervision,dashboard): refonte de l'interface et du filtrage temporel - Modifications de l'usage et de la sélection de période dans le dashboard et la supervision - Refonte du header de la page de supervision (intégration Navbar) - Amélioration de l'affichage des graphiques : forçage du min/max sur l'axe temps pour respecter la période demandée même sans données - Nettoyage des paramètres URL : conservation uniquement de la période (retrait de rangeStatus et host) - Logo : réduction de la mention 'JARVIS' - Optimisation de la taille des mat-form-field dans le panel de filtres, avec largeur dynamique pour la période * feat(navbar): amélioration de la barre de navigation avec contexte d'instance et infos utilisateur - Mise à jour du logo SVG dans la barre de navigation pour un meilleur rendu visuel. - Ajout des informations de contexte de l'instance dans la barre de navigation (indicateur de statut, badge de version et puce de branche). - Refonte du bouton utilisateur pour afficher le nom et amélioration du style. - Simplification de la structure du menu utilisateur et ajout d'effets au survol. - Introduction d'une méthode de construction des paramètres de requête pour une meilleure gestion des URL de navigation. fix(environment): ajout de commentaires pour clarifier les paramètres d'authentification * fix supervision client
* remove-client-credentials * remove-auth-logs * generic_auth * add-logout-uri-check * remove-logout-uri-check * logout + login redirect
* Ajout de tooltips pour les boutons de la barre de navigation et amélioration des styles des boutons * modif nav style
|




No description provided.