Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
d065749
feat: add dynamic tables and charts for request statistics and repart…
YoussefDahi Feb 12, 2026
144143a
start authentification
Thom-Bern Feb 17, 2026
65a3e82
fix: update routing and enhance dynamic table components for improved…
YoussefDahi Feb 18, 2026
27996f5
Merge remote-tracking branch 'github/main' into kpi-global
YoussefDahi Feb 18, 2026
02d5d3d
Merge remote-tracking branch 'github/main' into kpi-global
YoussefDahi Feb 19, 2026
c5e5708
refactor: simplify card container styles and enhance loading indicators
YoussefDahi Feb 19, 2026
7f6249b
refactor: enhance layout and styling of dashboard components for bett…
YoussefDahi Feb 19, 2026
6b9ef59
Merge pull request #395 from oneteme/kpi-global
YoussefDahi Feb 19, 2026
65613b2
feat: add filtering options and enhance data handling in repartition …
YoussefDahi Feb 20, 2026
cdc8b7f
add atuhent auth0
Feb 27, 2026
4ecf0cb
fix implicit flow auth
Feb 27, 2026
0778d8b
add implicit config
Feb 27, 2026
582d981
pulse on component and hotfix link supervision (#400)
antonin77 Mar 6, 2026
616760f
feat: implement dynamic chart component with enhanced data handling a…
YoussefDahi Mar 18, 2026
4be10fd
refactor: simplify series selection logic and improve default behavio…
YoussefDahi Mar 18, 2026
24eea15
refactor: enhance data handling and grouping logic in dynamic chart c…
YoussefDahi Mar 18, 2026
e820ad1
refactor: remove unused commented code in statistic request component
YoussefDahi Mar 18, 2026
f1c7887
component table integration
antonin77 Mar 23, 2026
fc9f9d1
Jquery table integration (#401)
antonin77 Mar 23, 2026
da8a488
Merge conflict
antonin77 Mar 23, 2026
4bf30d4
table fix
antonin77 Mar 23, 2026
0c16b2f
Merge branch 'develop' into kpi-global
antonin77 Mar 23, 2026
92e3cc1
feat: add size and latency repartition configurations to dynamic char…
YoussefDahi Mar 23, 2026
d683fbe
Merge remote-tracking branch 'refs/remotes/github/kpi-global' into kp…
YoussefDahi Mar 23, 2026
6d8528b
table fix
antonin77 Mar 24, 2026
9c3adbb
refactor: update import paths and rename configuration constants for …
YoussefDahi Mar 24, 2026
21e6dad
Merge remote-tracking branch 'github/kpi-global-bu' into kpi-global
YoussefDahi Mar 24, 2026
eed3e99
detail review (#402)
antonin77 Mar 24, 2026
c2a4eec
feat: add new repartition status configurations for JDBC, LDAP, and S…
YoussefDahi Mar 25, 2026
3945653
refactor: remove console logs from dynamic chart component
YoussefDahi Mar 25, 2026
35e63a6
Merge remote-tracking branch 'github/develop' into kpi-global
YoussefDahi Mar 25, 2026
d0814ca
refactor: simplify repartition type card component by removing unused…
YoussefDahi Mar 25, 2026
575360f
design review (#403)
antonin77 Mar 26, 2026
bdef1d4
Design review (#405)
antonin77 Apr 3, 2026
2a719fa
feat: mettre à jour les dépendances jQuery et ajouter des filtres dan…
NairodP Apr 20, 2026
d8bfcd6
Merge pull request #406 from oneteme/bump-jquery-charts-and-apply-aga…
NairodP Apr 20, 2026
887143a
KPI review (#408)
antonin77 Apr 23, 2026
a78c996
title page undefined
antonin77 Apr 23, 2026
5fe9def
feat: enhance tree view with loading overlay, zoom controls, and sear…
YoussefDahi Apr 24, 2026
e0fe2c1
E chart integration (#409)
antonin77 Apr 24, 2026
ec1abe8
hosts in service
antonin77 Apr 28, 2026
fe6fdff
clean menu serveur
antonin77 Apr 28, 2026
4c41521
Merge branch 'develop' into 391-add-generic-authentification
antonin77 Apr 28, 2026
7e7df1a
feat: add ongoing status indication and enhance legend functionality …
YoussefDahi Apr 28, 2026
becf7e3
feat: implement zoom controls, search functionality, and stats overla…
YoussefDahi Apr 28, 2026
cd3bc3d
Merge remote-tracking branch 'github/develop' into treeOptm
YoussefDahi Apr 28, 2026
5c232a6
feat: add loading state and no data template to tree view; improve ch…
YoussefDahi Apr 28, 2026
084dff6
logout
antonin77 Apr 29, 2026
c93d77f
Merge branch 'develop' into 391-add-generic-authentification
antonin77 Apr 29, 2026
f8d970e
feat: add focus and depth controls, enhance edge animations, and impl…
YoussefDahi Apr 30, 2026
fc7b830
Merge remote-tracking branch 'refs/remotes/github/develop' into archi…
YoussefDahi Apr 30, 2026
5387971
feat: implement legend menu for connections and nodes; disable defaul…
YoussefDahi Apr 30, 2026
9565cd0
feat: enhance architecture view with improved node and edge represent…
YoussefDahi May 6, 2026
7dad4eb
feat: enhance tree view with detailed node information and improved e…
YoussefDahi May 6, 2026
7c941b2
fix: correct node length check in tree model for proper label formatting
YoussefDahi May 6, 2026
12ee48e
some fix
antonin77 May 6, 2026
dbfe6a1
Merge remote-tracking branch 'origin/develop' into develop
antonin77 May 6, 2026
fc7a6e9
feat: add view controls for nodes and links; enhance detail display a…
YoussefDahi May 12, 2026
0e317d2
Merge remote-tracking branch 'github/architectureOptim' into develop
YoussefDahi May 12, 2026
6814a62
Merge remote-tracking branch 'github/develop' into develop
YoussefDahi May 12, 2026
363e572
evols kpi (#412)
antonin77 May 13, 2026
9daae67
MAJ main page dashboard (#410)
NairodP May 13, 2026
5bc0d42
feat: update tree view and model for improved status representation; …
YoussefDahi May 15, 2026
558b990
Merge remote-tracking branch 'github/architectureOptim' into develop
YoussefDahi May 15, 2026
a09cb98
Fix/dashboard main page (#413)
NairodP May 18, 2026
06ababd
refactor: remove inactive protocols count and related UI elements fro…
NairodP May 18, 2026
0b76402
fixs
antonin77 May 18, 2026
da10086
fixs
antonin77 May 18, 2026
aadafaf
evols kpi
antonin77 May 20, 2026
8e891b4
evols kpi
antonin77 May 20, 2026
97ff0a9
feat: add Firefox detection and disable logo animation for Firefox us…
NairodP May 20, 2026
c537647
fix request with env
antonin77 May 21, 2026
ba14a0e
Fix graph main page (#416)
NairodP May 27, 2026
79fc08b
Remove header page (#417)
NairodP May 29, 2026
20398c0
Fix several reliability related issues (#418)
NairodP Jun 2, 2026
0f38a65
Tables (#419)
antonin77 Jun 3, 2026
c67d04d
config charts
antonin77 Jun 3, 2026
504ce57
fix size in size out tooltip
antonin77 Jun 3, 2026
d861210
refactor: remove host information from nodeInfo and adjust container …
YoussefDahi Jun 3, 2026
8b9b975
Merge remote-tracking branch 'github/develop' into develop
YoussefDahi Jun 3, 2026
defaf4a
Empty command and status on table
antonin77 Jun 5, 2026
bf1e066
Merge branch 'develop' of https://github.com/oneteme/inspect-app into…
mohamedamine-tarhouni Jun 5, 2026
0435d19
auth-implicit
mohamedamine-tarhouni Jun 5, 2026
025732c
auth-implicit
mohamedamine-tarhouni Jun 5, 2026
9799260
schema on tree
antonin77 Jun 8, 2026
9e9002c
remove-client-credentials (#420)
mohamedamine-tarhouni Jun 8, 2026
edd635a
AuthParams interface
antonin77 Jun 8, 2026
fc1316e
keep filter method and other fix (#421)
NairodP Jun 8, 2026
1fdb62f
Fixs kpi
antonin77 Jun 10, 2026
03ef6f2
config collector inspect
antonin77 Jun 10, 2026
82e20ae
config collector inspect
antonin77 Jun 10, 2026
4c24c30
args getCustom restSessionService
antonin77 Jun 10, 2026
2987d9d
reset filtredTasks
antonin77 Jun 10, 2026
3c95188
Feat/UI navbar and supervision (#423)
NairodP Jun 11, 2026
8919ebe
clean code
antonin77 Jun 11, 2026
b966de9
Merge generic authentification into develop (#422)
mohamedamine-tarhouni Jun 11, 2026
c6038fd
Modif navbar (#424)
NairodP Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,11 @@ testem.log

# System Files
.DS_Store

# Docs locaux (contexte non versionné)
docs/
Thumbs.db

# Local context & documentation
CONTEXT.md

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,5 @@ export const app: Application = {
| DEFAULT_ENV | **string** | dev |
| DEFAULT_GRID_VIEW_PERIOD | **string** | LAST_30 |
| DEFAULT_KPI_VIEW_PERIOD | **string** | LAST_1440 |

## Authentification
9 changes: 5 additions & 4 deletions angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,22 @@
"assets": [
"src/favicon.ico",
"src/assets",
"src/logout.html",
{
"glob": "**/*",
"input": "./node_modules/mxgraph/javascript/src",
"output": "./assets/mxgraph"
},
{
"glob": "**/*",
"input": "./node_modules/@oneteme/jquery-apexcharts/src/assets",
"input": "./node_modules/@oneteme/jquery-echarts/src/assets",
"output": "./assets/icons"
}
],
"styles": [
"node_modules/vis-timeline/styles/vis-timeline-graph2d.min.css",
"src/styles/theme.scss",
"node_modules/@fortawesome/fontawesome-free/css/all.css",
"node_modules/@oneteme/jquery-apexcharts/styles/styles.scss"
"node_modules/@fortawesome/fontawesome-free/css/all.css"
],
"scripts": [
"node_modules/vis-timeline/standalone/umd/vis-timeline-graph2d.min.js"
Expand Down Expand Up @@ -134,7 +134,8 @@
"scripts": [],
"assets": [
"src/favicon.ico",
"src/assets"
"src/assets",
"src/logout.html"
]
}
},
Expand Down
8 changes: 7 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@
"@angular/material": "^16.2.12",
"@angular/platform-browser": "^16.2.12",
"@angular/platform-browser-dynamic": "^16.2.12",
"angular-oauth2-oidc": "^17.0.0",
"@oneteme/inspect-ng-collector": "^1.3.2",
"@angular/router": "^16.2.12",
"@fortawesome/fontawesome-free": "^6.0.0",
"@oneteme/jquery-apexcharts": "^0.0.24",
"@oneteme/jquery-echarts": "^0.0.4",
"@oneteme/jquery-table": "^0.0.5",
"moment": "^2.29.4",
"moment-timezone": "^0.5.43",
"mxgraph": "^4.2.2",
Expand Down Expand Up @@ -58,5 +61,8 @@
"karma-jasmine-html-reporter": "^1.7.0",
"mxgraph-type-definitions": "^1.0.6",
"typescript": "~4.9.3"
},
"overrides": {
"@oneteme/jquery-core": "^0.0.32"
}
}
76 changes: 1 addition & 75 deletions src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,78 +1,4 @@
<nav>
<mat-toolbar color="primary" style="display: flex; align-items: center; height: 48px;">
<span style="margin-right: 0.5em;cursor:pointer" (click)="gotoHome($event)">INSPECT</span>

<button mat-icon-button [matMenuTriggerFor]="menu">
<mat-icon>more_vert</mat-icon>
</button>
<mat-menu #menu="matMenu">
<a mat-menu-item [matMenuTriggerFor]="requests">
<mat-icon>{{ MAPPING_TYPE['request'].icon }}</mat-icon>
<span>{{ MAPPING_TYPE['request'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['session/rest']" [queryParams]="{env: env.value }" routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ MAPPING_TYPE['rest'].icon }}</mat-icon>
<span>{{ MAPPING_TYPE['rest'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['session/batch']" [queryParams]="{env: env.value }"
routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ MAPPING_TYPE['batch'].icon }}</mat-icon>
<span>{{ MAPPING_TYPE['batch'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['session/test']" [queryParams]="{env: env.value }"
routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ MAPPING_TYPE['test'].icon }}</mat-icon>
<span>{{ MAPPING_TYPE['test'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['session/startup']" [queryParams]="{env: env.value }"
routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ MAPPING_TYPE['startup'].icon }}</mat-icon>
<span>{{ MAPPING_TYPE['startup'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['session/view']" [queryParams]="{env: env.value }" routerLinkActive="menu-active">
<mat-icon>{{ MAPPING_TYPE['view'].icon }}</mat-icon>
<span>{{ MAPPING_TYPE['view'].title }}</span>
</a>
</mat-menu>

<mat-menu #requests="matMenu">
<a mat-menu-item [routerLink]="['request/rest']" [queryParams]="{env: env.value }" routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ REQUEST_TYPE['rest'].icon }}</mat-icon>
<span>{{ REQUEST_TYPE['rest'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['request/jdbc']" [queryParams]="{env: env.value }" routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ REQUEST_TYPE['jdbc'].icon }}</mat-icon>
<span>{{ REQUEST_TYPE['jdbc'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['request/ftp']" [queryParams]="{env: env.value }" routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ REQUEST_TYPE['ftp'].icon }}</mat-icon>
<span>{{ REQUEST_TYPE['ftp'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['request/smtp']" [queryParams]="{env: env.value }" routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ REQUEST_TYPE['smtp'].icon }}</mat-icon>
<span>{{ REQUEST_TYPE['smtp'].title }}</span>
</a>
<a mat-menu-item [routerLink]="['request/ldap']" [queryParams]="{env: env.value }" routerLinkActive="menu-active">
<mat-icon class="material-symbols-outlined">{{ REQUEST_TYPE['ldap'].icon }}</mat-icon>
<span>{{ REQUEST_TYPE['ldap'].title }}</span>
</a>
</mat-menu>
<span style="flex-grow: 1;"></span>
<a [routerLink]="['deploiment']" [queryParams]="{env: env.value }"
[matTooltip]="MAPPING_TYPE['deploiment'].title" style="margin-right: 0.5em" mat-icon-button>
<span class="material-symbols-outlined">{{ MAPPING_TYPE['deploiment'].icon }}</span>
</a>
<mat-form-field appearance="fill" class="md-2 no-subscript" [class.loading]="isLoadingEnv">
<mat-select [formControl]="env">
<mat-option *ngFor="let e of envs" [value]="e">{{ e }}</mat-option>
</mat-select>
<mat-spinner *ngIf="isLoadingEnv" [diameter]="18"></mat-spinner>
</mat-form-field>
<a href="https://github.com/orgs/oneteme/projects/17" style="margin-left: 0.5em" target="_blank" mat-icon-button>
<mat-icon svgIcon="github"></mat-icon>
</a>
</mat-toolbar>
</nav>
<app-navbar></app-navbar>
<mat-drawer-container>
<mat-drawer-content>
<router-outlet></router-outlet>
Expand Down
26 changes: 7 additions & 19 deletions src/app/app.component.scss
Original file line number Diff line number Diff line change
@@ -1,24 +1,12 @@
:host {
display: flex;
flex-direction: column;
}

.mat-mdc-menu-item.menu-active {
background-color: var(--mat-menu-item-hover-state-layer-color);
color: var(--inspect-blue);
font-weight: 500;
mat-icon {
color: currentColor;
}
}

.item-selected {
background-color: var(--mat-menu-item-hover-state-layer-color);
color: #1464dc;
mat-drawer-container {
position: relative;
z-index: 1;
height: calc(100vh - 56px);
margin-top: 56px;
}

mat-drawer-content {
box-sizing: border-box;
overflow-x: hidden;
padding: 7px;
height: calc(100vh - 48px - 14px);
}
}
89 changes: 2 additions & 87 deletions src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,95 +1,10 @@
import {Component, inject, OnDestroy} from '@angular/core';
import {FormControl} from '@angular/forms';
import {ActivatedRoute} from '@angular/router';
import {distinctUntilChanged, finalize, Subscription} from 'rxjs';
import {app} from 'src/environments/environment';
import {EnvRouter} from "./service/router.service";
import {Constants} from "./views/constants";
import {InstanceService} from "./service/jquery/instance.service";
import {MatIconRegistry} from "@angular/material/icon";
import {DomSanitizer} from "@angular/platform-browser";

import {Component} from '@angular/core';

@Component({
selector: 'app-root',
templateUrl: 'app.component.html',
styleUrls: ['app.component.scss']
})
export class AppComponent implements OnDestroy {
private readonly _activatedRoute: ActivatedRoute = inject(ActivatedRoute);
private readonly _service: InstanceService = inject(InstanceService);
private readonly _router: EnvRouter = inject(EnvRouter);

MAPPING_TYPE = Constants.MAPPING_TYPE;
REQUEST_TYPE = Constants.REQUEST_MAPPING_TYPE;
envs: any[];
env: FormControl<string> = new FormControl();
isLoadingEnv = false;
subscriptions: Subscription[] = [];


constructor() {
const iconRegistry = inject(MatIconRegistry);
const sanitizer = inject(DomSanitizer);

// Note that we provide the icon here as a string literal here due to a limitation in
// Stackblitz. If you want to provide the icon from a URL, you can use:
iconRegistry.addSvgIcon('github', sanitizer.bypassSecurityTrustResourceUrl('./assets/github.svg'));
this.envs = [app.defaultEnv];
if (!localStorage.getItem('server')) {
localStorage.setItem('server', app.host);
}
this.isLoadingEnv = true;
this.subscriptions.push(this._service.getEnvironments()
.pipe(finalize(() => this.isLoadingEnv = false))
.subscribe({
next: res => {
this.envs = res.map(r => r.environement);
}
}));
this.subscriptions.push(this.env.valueChanges
.pipe(
distinctUntilChanged((previous: string, current: string) => {
return previous == current;
}))
.subscribe({
next: res => {
this._router.navigate([], {
queryParamsHandling: 'merge',
queryParams: {env: res}
});
}
}));

this.subscriptions.push(this._activatedRoute.queryParams
.subscribe({
next: res => {
let r = this._activatedRoute.snapshot.queryParams['env'];
if (!r) {
r = app.defaultEnv;
}
if (this.env.value != r) {
this.env.setValue(r, {emitEvent: false});
}
}
}));
}

ngOnDestroy(): void {
this.unsubscribe();
}

unsubscribe() {
this.subscriptions.forEach(s => s.unsubscribe());
}
export class AppComponent {

gotoHome(event: MouseEvent){
if (event.ctrlKey) {
this._router.open(`#/home?env=${this.env.value}`, '_blank',)
} else {
this._router.navigate([`home`], {
queryParams: { env: this.env.value }
});
}
}
}
Loading
Loading