Compare commits
25 Commits
main
...
advalo-dan
| Author | SHA1 | Date |
|---|---|---|
|
|
c414de04aa | |
|
|
70dd59b03e | |
|
|
7b484f34c9 | |
|
|
349c379dc7 | |
|
|
5338f682af | |
|
|
4927d22387 | |
|
|
0b7d8b6eb3 | |
|
|
47c70697d3 | |
|
|
a8d0e69585 | |
|
|
f57855d143 | |
|
|
b35d64a241 | |
|
|
bb695a820e | |
|
|
cc7d3d9e08 | |
|
|
e4cb9906b4 | |
|
|
4919940a26 | |
|
|
0125e2ae69 | |
|
|
d6f06dfd7b | |
|
|
77bf98e6cd | |
|
|
0a536140ab | |
|
|
5de492b308 | |
|
|
4f82b29f18 | |
|
|
a929c0770c | |
|
|
4cc8167ad8 | |
|
|
5a0ff43300 | |
|
|
013cd0eb8d |
|
|
@ -0,0 +1,5 @@
|
|||
DB_URL=http://127.0.0.1:8091/
|
||||
DB_ADMIN=admin@axa.fr
|
||||
DB_PASSWORD=DTadmin123TT
|
||||
NODE_ENV=developpement
|
||||
PORT=8082
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
DB_URL=http://127.0.0.1:8091/
|
||||
DB_ADMIN=admin@example.local
|
||||
DB_PASSWORD=change-me
|
||||
NODE_ENV=development
|
||||
PORT=8082
|
||||
|
||||
# Optional runtime overrides for Advalorem
|
||||
# ADV_WORKSPACE_ROOT=/absolute/path/to/ecole
|
||||
|
||||
# Optional AXA bridge tuning
|
||||
# AXA_TIMEOUT_MS=65000
|
||||
# AXA_RETRY_COUNT=1
|
||||
# AXA_RETRY_DELAY_MS=1200
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
# Dependencies
|
||||
node_modules/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Classique
|
||||
package-lock.json
|
||||
|
||||
# Logs
|
||||
logs/
|
||||
*.log
|
||||
|
||||
# PocketBase runtime data (local only)
|
||||
src/db/pb_data/*.db
|
||||
src/db/pb_data/*.db-shm
|
||||
src/db/pb_data/*.db-wal
|
||||
# Squelette versionné (data.db/logs.db) mais pas les transients
|
||||
src/db/pb_data_backup/*.db-shm
|
||||
src/db/pb_data_backup/*.db-wal
|
||||
|
||||
# Environment variables
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# OS files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# Build outputs
|
||||
dist/
|
||||
build/
|
||||
|
||||
# Documents Advalo générés (données client) — régénérés à l'exécution
|
||||
documents/
|
||||
|
||||
# Rapports de migration/bench (régénérés)
|
||||
reports/
|
||||
scripts/reports/
|
||||
|
||||
# Build du helper AXA C# (recompilé via dotnet publish)
|
||||
src/axa-helper/bin/
|
||||
src/axa-helper/obj/
|
||||
|
||||
# Runtime
|
||||
.runtime/
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
# EasyTransport / Advalorem Runtime Notes
|
||||
|
||||
## Local PocketBase workflow
|
||||
|
||||
1. Bootstrap local DB files from tracked backup:
|
||||
- `npm run db:bootstrap`
|
||||
- `npm run db:bootstrap:reset` (force overwrite)
|
||||
2. Start PocketBase on `DB_URL` host/port:
|
||||
- `npm run db:start`
|
||||
3. Start app:
|
||||
- `npm run start`
|
||||
|
||||
## Advalorem runtime overrides
|
||||
|
||||
- `ADV_WORKSPACE_ROOT`: force workspace root for packaged/runtime environments
|
||||
- Advalorem APIs (`/advalo/*`) run in PocketBase mode by default.
|
||||
- No `sqlite3` CLI dependency is required for historique/cumul/reporting/export.
|
||||
|
||||
## Notes
|
||||
|
||||
- `pb_data/*.db*` are local runtime files and are no longer intended to be versioned.
|
||||
- `src/db/pb_data_backup/` remains the baseline source for local bootstrap.
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -5,13 +5,17 @@
|
|||
"main": "./src/server.js",
|
||||
"scripts": {
|
||||
"start": "nodemon ./src/server.js",
|
||||
"db:start": "node ./scripts/db-start.js",
|
||||
"db:bootstrap": "node ./scripts/db-bootstrap-local.js",
|
||||
"db:bootstrap:reset": "node ./scripts/db-bootstrap-local.js --reset",
|
||||
"advalo:migrate": "node ./scripts/advalo-migrate-v1-to-v2.js --reset",
|
||||
"advalo:bench": "node ./scripts/advalo-bench.js",
|
||||
"advalo:axa-smoke": "node ./scripts/axa-smoke.js",
|
||||
"build": "pkg ./src/server.js -o EasyTransport",
|
||||
"test": "jest"
|
||||
},
|
||||
"pkg": {
|
||||
"assets": [
|
||||
"public/**"
|
||||
]
|
||||
"assets": ["public/**"]
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "cyril.ducaffy@axa.fr",
|
||||
|
|
@ -19,6 +23,7 @@
|
|||
"dependencies": {
|
||||
"axios": "^1.7.2",
|
||||
"cjs": "^0.0.11",
|
||||
"csv-parse": "^5.5.6",
|
||||
"docxtemplater": "^3.46.1",
|
||||
"dotenv": "^16.3.1",
|
||||
"ejs": "^3.1.9",
|
||||
|
|
@ -31,6 +36,7 @@
|
|||
"numeral": "^2.0.6",
|
||||
"pizzip": "^3.1.6",
|
||||
"pocketbase": "^0.15.3",
|
||||
"xlsx": "^0.18.5",
|
||||
"winston": "^3.13.0",
|
||||
"winston-daily-rotate-file": "^4.7.1"
|
||||
},
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
body {
|
||||
font-family: 'Roboto', sans-serif;
|
||||
background-color: white;
|
||||
color: black;
|
||||
color-scheme: light;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
|
|
@ -183,6 +186,17 @@ hr.form {
|
|||
padding: 5px 12px !important;
|
||||
}
|
||||
|
||||
.chip-info{
|
||||
padding: 5px;
|
||||
width: 30%;
|
||||
text-align: center;
|
||||
background: darkblue;
|
||||
color: white;
|
||||
border-radius: 10px;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
#goodParcoursModal {
|
||||
width: 80%;
|
||||
max-height: 80%;
|
||||
|
|
@ -226,6 +240,63 @@ hr.form {
|
|||
background: #26a69a;
|
||||
}
|
||||
|
||||
#advaloNavSelect .active a {
|
||||
background: #26a69a;
|
||||
}
|
||||
|
||||
#advaloNavSelect li a {
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.2px;
|
||||
}
|
||||
|
||||
.advalo-panel .input-field > label {
|
||||
color: #1a237e !important;
|
||||
transition: transform .18s ease, color .18s ease, font-size .18s ease;
|
||||
}
|
||||
|
||||
.advalo-panel .input-field > label.active {
|
||||
transform: translateY(-24px) scale(0.82) !important;
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
|
||||
.advalo-loader-wrap {
|
||||
min-height: 46px;
|
||||
}
|
||||
|
||||
.advalo-ring-loader {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
border: 3px solid rgba(0, 0, 139, 0.18);
|
||||
border-top-color: #00008b;
|
||||
border-right-color: #26a69a;
|
||||
border-radius: 50%;
|
||||
margin: 0 auto;
|
||||
animation: advalo-spin 0.9s cubic-bezier(0.5, 0.1, 0.5, 0.9) infinite;
|
||||
}
|
||||
|
||||
.advalo-cumul-hist,
|
||||
.advalo-cumul-fact {
|
||||
margin-right: 6px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.advalo-panel .btn,
|
||||
.advalo-panel .btn-flat {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
@keyframes advalo-spin {
|
||||
0% {
|
||||
transform: rotate(0deg) scale(1);
|
||||
}
|
||||
40% {
|
||||
transform: rotate(180deg) scale(1.04);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg) scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.border {
|
||||
border-radius: 10px !important;
|
||||
}
|
||||
|
|
@ -408,6 +479,110 @@ a.grille-garanties:hover{
|
|||
color : white
|
||||
}
|
||||
|
||||
#rcProjetBlockingSummary,
|
||||
#rcTarifBlockingSummary {
|
||||
margin: 1rem 0 1.5rem 0;
|
||||
}
|
||||
|
||||
.rc-blocking-summary {
|
||||
display: none;
|
||||
border-left: 6px solid #c62828;
|
||||
background-color: #ffebee;
|
||||
color: #b71c1c;
|
||||
padding: 12px 16px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.rc-blocking-title {
|
||||
font-weight: 700;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.rc-blocking-list {
|
||||
margin: 0;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.rc-blocking-list li {
|
||||
margin: 3px 0;
|
||||
}
|
||||
|
||||
.rc-field-label {
|
||||
display: block;
|
||||
color: #1a237e;
|
||||
font-weight: 700;
|
||||
margin-bottom: 6px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.rc-has-floating-label {
|
||||
position: relative;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.rc-has-floating-label .rc-field-label.rc-floating-label {
|
||||
position: static;
|
||||
top: auto;
|
||||
left: auto;
|
||||
margin: 0 0 6px 0;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 700;
|
||||
color: #1a237e;
|
||||
pointer-events: none;
|
||||
transition: none;
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
z-index: auto;
|
||||
}
|
||||
|
||||
.rc-has-floating-label .rc-field-label.rc-floating-label.active {
|
||||
top: auto;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 700;
|
||||
color: #1a237e;
|
||||
}
|
||||
|
||||
.rc-tarifettes-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.rc-three-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 18px;
|
||||
}
|
||||
|
||||
.rc-three-col-grid > [class*="col"] {
|
||||
width: 100% !important;
|
||||
margin-left: 0 !important;
|
||||
padding: 0 !important;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.rc-three-col-grid .card {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.rc-three-col-grid .card-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.rc-equal-card-row > [class*="col"] {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.rc-equal-card-row .card {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.rc-equal-card-row .card-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#modalTarifCom span.material-icons {
|
||||
font-size: 4rem;
|
||||
}
|
||||
|
|
@ -512,3 +687,49 @@ a.grille-garanties:hover{
|
|||
@keyframes l13 {
|
||||
100% { transform: rotate(1turn); }
|
||||
}
|
||||
|
||||
/* Message d'erreur du loader */
|
||||
#error-message {
|
||||
display: none;
|
||||
color: #ff4444;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
white-space: pre-line;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
/* Message de timeout du loader */
|
||||
#timeout-message {
|
||||
display: none;
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
color: #d0d0d0;
|
||||
font-size: 14px;
|
||||
max-width: 420px;
|
||||
line-height: 1.6;
|
||||
padding: 0 20px;
|
||||
animation: fadeIn 0.5s ease;
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; transform: translateY(10px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
/* Lien cliquable pour annuler le chargement */
|
||||
#cancel-loading-link {
|
||||
color: #66B2FF;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 3px;
|
||||
text-decoration-thickness: 1px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
#cancel-loading-link:hover {
|
||||
color: #90CAF9;
|
||||
text-decoration-thickness: 2px;
|
||||
text-shadow: 0 0 10px rgba(102, 178, 255, 0.6);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue