Spaces:
Runtime error
Runtime error
Commit ·
04cfd15
1
Parent(s): a73c34a
Stabilize layout across modern browsers
Browse files- application_neo4j/static/css/style.css +159 -24
- application_neo4j/static/js/browser_compatibility.js +13 -0
- application_neo4j/static/js/script.js +2 -1
- application_neo4j/static/js/script_dataset.js +2 -1
- application_neo4j/templates/expert.html +3 -1
- application_neo4j/templates/index.html +20 -1
- application_neo4j/templates/infos.html +5 -2
- application_neo4j/templates/search.html +3 -1
- application_neo4j/templates/search_dataset.html +3 -1
- application_neo4j/translations.py +2 -0
application_neo4j/static/css/style.css
CHANGED
|
@@ -2,13 +2,79 @@
|
|
| 2 |
* STYLE GLOBAL & GRAPHIQUE SIGMA
|
| 3 |
* =================================================================== */
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
#sigma-container {
|
| 6 |
width: 100%;
|
| 7 |
height: 600px; /* Un peu plus de hauteur pour un meilleur confort */
|
| 8 |
-
|
|
|
|
|
|
|
|
|
|
| 9 |
margin-top: 1rem;
|
| 10 |
-
border-radius:
|
| 11 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
}
|
| 13 |
|
| 14 |
/* ===================================================================
|
|
@@ -32,35 +98,62 @@
|
|
| 32 |
/* ===================================================================
|
| 33 |
* STYLE DES TABLES (DATATABLES)
|
| 34 |
* =================================================================== */
|
| 35 |
-
/*
|
|
|
|
| 36 |
#descendance-table th, #descendance-table td,
|
| 37 |
-
#ascendance-table th, #ascendance-table td
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
|
|
|
| 41 |
}
|
| 42 |
|
| 43 |
-
|
| 44 |
-
#
|
| 45 |
-
|
|
|
|
| 46 |
}
|
| 47 |
|
| 48 |
-
|
| 49 |
-
#
|
|
|
|
|
|
|
| 50 |
min-width: 200px;
|
|
|
|
|
|
|
|
|
|
| 51 |
}
|
| 52 |
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
}
|
| 59 |
|
| 60 |
/* Personnalisation de l'input de recherche de DataTables pour qu'il ressemble à un champ Bootstrap */
|
| 61 |
div.dataTables_wrapper div.dataTables_filter input {
|
| 62 |
-
|
| 63 |
-
border
|
|
|
|
|
|
|
|
|
|
| 64 |
padding: 0.375rem 0.75rem;
|
| 65 |
margin-left: 0.5em;
|
| 66 |
}
|
|
@@ -100,8 +193,12 @@ div.dataTables_wrapper .table thead th.sorting_desc::after {
|
|
| 100 |
/* Ce style est pour si vous utilisez une <ul> simple.
|
| 101 |
Si vous avez bien une <ul class="list-group">, vous pouvez supprimer ce bloc. */
|
| 102 |
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
|
| 103 |
-
|
| 104 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
}
|
| 106 |
#suggestions-list li:hover {
|
| 107 |
background-color: #94bfeb; ;
|
|
@@ -198,11 +295,22 @@ div.dataTables_wrapper .table thead th.sorting_desc::after {
|
|
| 198 |
}
|
| 199 |
|
| 200 |
/* Change la couleur de fond des cases à cocher lorsqu'elles sont cochées */
|
| 201 |
-
.btn {
|
| 202 |
background-color: #6a11cb;
|
| 203 |
border-color:#6a11cb;
|
| 204 |
}
|
| 205 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 206 |
.stretched-link{
|
| 207 |
color: #6a11cb;
|
| 208 |
}
|
|
@@ -268,4 +376,31 @@ main {
|
|
| 268 |
.btn-modern:hover {
|
| 269 |
background: linear-gradient(135deg, #5a0fbf, #1d63e1);
|
| 270 |
transform: translateY(-3px);
|
| 271 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
* STYLE GLOBAL & GRAPHIQUE SIGMA
|
| 3 |
* =================================================================== */
|
| 4 |
|
| 5 |
+
/* Explicit sizing and minimum widths avoid engine-specific flexbox
|
| 6 |
+
* expansion differences (notably between Blink and Gecko). */
|
| 7 |
+
html {
|
| 8 |
+
-webkit-text-size-adjust: 100%;
|
| 9 |
+
text-size-adjust: 100%;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
body {
|
| 13 |
+
min-width: 320px;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
.legacy-browser-warning {
|
| 17 |
+
display: none;
|
| 18 |
+
margin: 0;
|
| 19 |
+
padding: 0.75rem 1rem;
|
| 20 |
+
color: #664d03;
|
| 21 |
+
background: #fff3cd;
|
| 22 |
+
border-bottom: 1px solid #ffecb5;
|
| 23 |
+
font-weight: 600;
|
| 24 |
+
text-align: center;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
img,
|
| 28 |
+
svg {
|
| 29 |
+
max-width: 100%;
|
| 30 |
+
height: auto;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
.row > *,
|
| 34 |
+
.card,
|
| 35 |
+
.card-body,
|
| 36 |
+
.flex-grow-1 {
|
| 37 |
+
min-width: 0;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
.navbar .container {
|
| 41 |
+
column-gap: 1rem;
|
| 42 |
+
row-gap: 0.75rem;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
.navbar-brand {
|
| 46 |
+
min-width: 0;
|
| 47 |
+
max-width: 100%;
|
| 48 |
+
white-space: normal;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
.navbar-brand small,
|
| 52 |
+
#suggestions-list li {
|
| 53 |
+
overflow-wrap: anywhere;
|
| 54 |
+
word-break: break-word;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
.navbar-actions {
|
| 58 |
+
min-width: 0;
|
| 59 |
+
margin-left: auto;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
#sigma-container {
|
| 63 |
width: 100%;
|
| 64 |
height: 600px; /* Un peu plus de hauteur pour un meilleur confort */
|
| 65 |
+
position: relative;
|
| 66 |
+
overflow: hidden;
|
| 67 |
+
border: 1px solid #dee2e6;
|
| 68 |
+
border: 1px solid var(--bs-border-color, #dee2e6); /* Variable Bootstrap */
|
| 69 |
margin-top: 1rem;
|
| 70 |
+
border-radius: 0.375rem;
|
| 71 |
+
border-radius: var(--bs-border-radius, 0.375rem); /* Variable Bootstrap */
|
| 72 |
+
background-color: #f8f9fa;
|
| 73 |
+
background-color: var(--bs-light-bg-subtle, #f8f9fa); /* Fond légèrement teinté */
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
#floating-legend {
|
| 77 |
+
max-width: calc(100% - 1rem);
|
| 78 |
}
|
| 79 |
|
| 80 |
/* ===================================================================
|
|
|
|
| 98 |
/* ===================================================================
|
| 99 |
* STYLE DES TABLES (DATATABLES)
|
| 100 |
* =================================================================== */
|
| 101 |
+
/* A single, deterministic wrapping policy replaces the previous contradictory
|
| 102 |
+
* normal/nowrap declarations. */
|
| 103 |
#descendance-table th, #descendance-table td,
|
| 104 |
+
#ascendance-table th, #ascendance-table td,
|
| 105 |
+
#train-table th, #train-table td,
|
| 106 |
+
#graph-models-table th, #graph-models-table td {
|
| 107 |
+
white-space: nowrap;
|
| 108 |
+
vertical-align: middle;
|
| 109 |
}
|
| 110 |
|
| 111 |
+
#descendance-table th,
|
| 112 |
+
#ascendance-table th,
|
| 113 |
+
#train-table th {
|
| 114 |
+
min-width: 120px;
|
| 115 |
}
|
| 116 |
|
| 117 |
+
#descendance-table th:first-child, #descendance-table td:first-child,
|
| 118 |
+
#ascendance-table th:first-child, #ascendance-table td:first-child,
|
| 119 |
+
#train-table th:first-child, #train-table td:first-child,
|
| 120 |
+
#graph-models-table th:first-child, #graph-models-table td:first-child {
|
| 121 |
min-width: 200px;
|
| 122 |
+
white-space: normal;
|
| 123 |
+
overflow-wrap: anywhere;
|
| 124 |
+
word-break: break-word;
|
| 125 |
}
|
| 126 |
|
| 127 |
+
.table-responsive,
|
| 128 |
+
div.dataTables_wrapper,
|
| 129 |
+
div.dataTables_wrapper div.dataTables_scroll {
|
| 130 |
+
width: 100%;
|
| 131 |
+
max-width: 100%;
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
.table-responsive,
|
| 135 |
+
div.dataTables_wrapper div.dataTables_scrollBody {
|
| 136 |
+
overflow-x: auto !important;
|
| 137 |
+
-webkit-overflow-scrolling: touch;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
div.dataTables_wrapper div.dataTables_scrollHeadInner {
|
| 141 |
+
min-width: 100%;
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
div.dataTables_wrapper table.dataTable {
|
| 145 |
+
margin-left: 0 !important;
|
| 146 |
+
margin-right: 0 !important;
|
| 147 |
+
table-layout: auto;
|
| 148 |
}
|
| 149 |
|
| 150 |
/* Personnalisation de l'input de recherche de DataTables pour qu'il ressemble à un champ Bootstrap */
|
| 151 |
div.dataTables_wrapper div.dataTables_filter input {
|
| 152 |
+
max-width: 100%;
|
| 153 |
+
border: 1px solid #dee2e6;
|
| 154 |
+
border: 1px solid var(--bs-border-color, #dee2e6);
|
| 155 |
+
border-radius: 0.375rem;
|
| 156 |
+
border-radius: var(--bs-border-radius, 0.375rem);
|
| 157 |
padding: 0.375rem 0.75rem;
|
| 158 |
margin-left: 0.5em;
|
| 159 |
}
|
|
|
|
| 193 |
/* Ce style est pour si vous utilisez une <ul> simple.
|
| 194 |
Si vous avez bien une <ul class="list-group">, vous pouvez supprimer ce bloc. */
|
| 195 |
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
|
| 196 |
+
max-width: 100%;
|
| 197 |
+
overflow-x: hidden;
|
| 198 |
+
border-radius: 0.375rem;
|
| 199 |
+
border-radius: var(--bs-border-radius, 0.375rem);
|
| 200 |
+
background-color: #f8f9fa;
|
| 201 |
+
background-color: var(--bs-light, #f8f9fa);
|
| 202 |
}
|
| 203 |
#suggestions-list li:hover {
|
| 204 |
background-color: #94bfeb; ;
|
|
|
|
| 295 |
}
|
| 296 |
|
| 297 |
/* Change la couleur de fond des cases à cocher lorsqu'elles sont cochées */
|
| 298 |
+
.btn-primary {
|
| 299 |
background-color: #6a11cb;
|
| 300 |
border-color:#6a11cb;
|
| 301 |
}
|
| 302 |
|
| 303 |
+
.btn-outline-primary {
|
| 304 |
+
color: #6a11cb;
|
| 305 |
+
border-color: #6a11cb;
|
| 306 |
+
}
|
| 307 |
+
|
| 308 |
+
.btn-outline-primary:hover {
|
| 309 |
+
color: #fff;
|
| 310 |
+
background-color: #6a11cb;
|
| 311 |
+
border-color: #6a11cb;
|
| 312 |
+
}
|
| 313 |
+
|
| 314 |
.stretched-link{
|
| 315 |
color: #6a11cb;
|
| 316 |
}
|
|
|
|
| 376 |
.btn-modern:hover {
|
| 377 |
background: linear-gradient(135deg, #5a0fbf, #1d63e1);
|
| 378 |
transform: translateY(-3px);
|
| 379 |
+
}
|
| 380 |
+
|
| 381 |
+
@media (max-width: 575.98px) {
|
| 382 |
+
.navbar-brand,
|
| 383 |
+
.navbar-actions {
|
| 384 |
+
flex: 1 1 100%;
|
| 385 |
+
margin-right: 0;
|
| 386 |
+
}
|
| 387 |
+
|
| 388 |
+
.navbar-actions {
|
| 389 |
+
justify-content: flex-start !important;
|
| 390 |
+
}
|
| 391 |
+
|
| 392 |
+
#sigma-container {
|
| 393 |
+
height: 70vh;
|
| 394 |
+
min-height: 420px;
|
| 395 |
+
}
|
| 396 |
+
|
| 397 |
+
div.dataTables_wrapper div.dataTables_filter label {
|
| 398 |
+
display: block;
|
| 399 |
+
width: 100%;
|
| 400 |
+
}
|
| 401 |
+
|
| 402 |
+
div.dataTables_wrapper div.dataTables_filter input {
|
| 403 |
+
width: 100%;
|
| 404 |
+
margin: 0.375rem 0 0;
|
| 405 |
+
}
|
| 406 |
+
}
|
application_neo4j/static/js/browser_compatibility.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
(function () {
|
| 2 |
+
"use strict";
|
| 3 |
+
|
| 4 |
+
// `document.documentMode` is exposed by Internet Explorer only. The rest of
|
| 5 |
+
// the application deliberately targets maintained browsers supported by
|
| 6 |
+
// Bootstrap 5.
|
| 7 |
+
if (document.documentMode) {
|
| 8 |
+
var warning = document.getElementById("legacy-browser-warning");
|
| 9 |
+
if (warning) {
|
| 10 |
+
warning.style.display = "block";
|
| 11 |
+
}
|
| 12 |
+
}
|
| 13 |
+
}());
|
application_neo4j/static/js/script.js
CHANGED
|
@@ -193,7 +193,8 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
| 193 |
const common_dt_options = {
|
| 194 |
"language": { "url": datatablesLangUrl },
|
| 195 |
"pageLength": 10,
|
| 196 |
-
"responsive": true,
|
|
|
|
| 197 |
// Afficher en premier les modèles les plus téléchargés.
|
| 198 |
"order": [[2, "desc"]],
|
| 199 |
"columnDefs": [
|
|
|
|
| 193 |
const common_dt_options = {
|
| 194 |
"language": { "url": datatablesLangUrl },
|
| 195 |
"pageLength": 10,
|
| 196 |
+
"responsive": true,
|
| 197 |
+
"scrollX": true,
|
| 198 |
// Afficher en premier les modèles les plus téléchargés.
|
| 199 |
"order": [[2, "desc"]],
|
| 200 |
"columnDefs": [
|
application_neo4j/static/js/script_dataset.js
CHANGED
|
@@ -209,7 +209,8 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
| 209 |
const common_dt_options = {
|
| 210 |
"language": { "url": datatablesLangUrl },
|
| 211 |
"pageLength": 10,
|
| 212 |
-
"responsive": true,
|
|
|
|
| 213 |
"columnDefs": [
|
| 214 |
{
|
| 215 |
// Appliquer notre plugin 'numeric-string' aux colonnes cibles
|
|
|
|
| 209 |
const common_dt_options = {
|
| 210 |
"language": { "url": datatablesLangUrl },
|
| 211 |
"pageLength": 10,
|
| 212 |
+
"responsive": true,
|
| 213 |
+
"scrollX": true,
|
| 214 |
"columnDefs": [
|
| 215 |
{
|
| 216 |
// Appliquer notre plugin 'numeric-string' aux colonnes cibles
|
application_neo4j/templates/expert.html
CHANGED
|
@@ -18,13 +18,15 @@
|
|
| 18 |
</head>
|
| 19 |
|
| 20 |
<body class="d-flex flex-column min-vh-100">
|
|
|
|
|
|
|
| 21 |
<header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
|
| 22 |
<div class="container">
|
| 23 |
<a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
|
| 24 |
<span class="fw-bold">{{ t('site.nav_brand_model_expert') }}</span>
|
| 25 |
<small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
|
| 26 |
</a>
|
| 27 |
-
<div class="d-flex align-items-center justify-content-end flex-wrap gap-2">
|
| 28 |
<a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
|
| 29 |
<i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
|
| 30 |
</a>
|
|
|
|
| 18 |
</head>
|
| 19 |
|
| 20 |
<body class="d-flex flex-column min-vh-100">
|
| 21 |
+
<div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
|
| 22 |
+
<script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
|
| 23 |
<header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
|
| 24 |
<div class="container">
|
| 25 |
<a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
|
| 26 |
<span class="fw-bold">{{ t('site.nav_brand_model_expert') }}</span>
|
| 27 |
<small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
|
| 28 |
</a>
|
| 29 |
+
<div class="navbar-actions d-flex align-items-center justify-content-end flex-wrap gap-2">
|
| 30 |
<a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
|
| 31 |
<i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
|
| 32 |
</a>
|
application_neo4j/templates/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
<title>{{ t('site.title_home') }}</title>
|
| 7 |
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
| 8 |
-
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.
|
| 9 |
|
| 10 |
<style>/* Style simple pour la page d'accueil */
|
| 11 |
body {
|
|
@@ -116,11 +116,30 @@
|
|
| 116 |
background: #3498db;
|
| 117 |
color: #fff;
|
| 118 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
|
| 120 |
</style>
|
| 121 |
</head>
|
| 122 |
|
| 123 |
<body>
|
|
|
|
|
|
|
| 124 |
<!-- Language selector -->
|
| 125 |
<div class="lang-switch">
|
| 126 |
<a href="{{ url_for('set_language_route', lang='fr') }}" class="{{ 'active' if current_lang == 'fr' else '' }}">{{ t('lang.fr') }}</a>
|
|
|
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
<title>{{ t('site.title_home') }}</title>
|
| 7 |
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
| 8 |
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
| 9 |
|
| 10 |
<style>/* Style simple pour la page d'accueil */
|
| 11 |
body {
|
|
|
|
| 116 |
background: #3498db;
|
| 117 |
color: #fff;
|
| 118 |
}
|
| 119 |
+
|
| 120 |
+
@media (max-width: 575.98px) {
|
| 121 |
+
.lang-switch {
|
| 122 |
+
position: static;
|
| 123 |
+
justify-content: flex-end;
|
| 124 |
+
padding: 12px 15px 0;
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
.welcome-container {
|
| 128 |
+
padding-top: 24px;
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
.content-card {
|
| 132 |
+
padding: 22px;
|
| 133 |
+
text-align: left;
|
| 134 |
+
}
|
| 135 |
+
}
|
| 136 |
|
| 137 |
</style>
|
| 138 |
</head>
|
| 139 |
|
| 140 |
<body>
|
| 141 |
+
<div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
|
| 142 |
+
<script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
|
| 143 |
<!-- Language selector -->
|
| 144 |
<div class="lang-switch">
|
| 145 |
<a href="{{ url_for('set_language_route', lang='fr') }}" class="{{ 'active' if current_lang == 'fr' else '' }}">{{ t('lang.fr') }}</a>
|
application_neo4j/templates/infos.html
CHANGED
|
@@ -7,6 +7,7 @@
|
|
| 7 |
<style>
|
| 8 |
body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; }
|
| 9 |
body { display: flex; flex-direction: column; font-family: sans-serif; }
|
|
|
|
| 10 |
.toolbar {
|
| 11 |
display: flex;
|
| 12 |
align-items: center;
|
|
@@ -24,11 +25,13 @@
|
|
| 24 |
font-weight: 600;
|
| 25 |
}
|
| 26 |
.home-button:hover { color: #fff; background: #424649; }
|
| 27 |
-
.pdf-container { width: 100%; flex: 1; min-height: 0; }
|
| 28 |
-
.pdf-container iframe { border: none; width: 100%; height: 100%; }
|
| 29 |
</style>
|
| 30 |
</head>
|
| 31 |
<body>
|
|
|
|
|
|
|
| 32 |
<nav class="toolbar" aria-label="{{ t('site.home_button') }}">
|
| 33 |
<a class="home-button" href="{{ url_for('home', lang=current_lang) }}">⌂ {{ t('site.home_button') }}</a>
|
| 34 |
</nav>
|
|
|
|
| 7 |
<style>
|
| 8 |
body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; }
|
| 9 |
body { display: flex; flex-direction: column; font-family: sans-serif; }
|
| 10 |
+
.legacy-browser-warning { display: none; padding: 0.75rem 1rem; color: #664d03; background: #fff3cd; border-bottom: 1px solid #ffecb5; font-weight: 600; text-align: center; }
|
| 11 |
.toolbar {
|
| 12 |
display: flex;
|
| 13 |
align-items: center;
|
|
|
|
| 25 |
font-weight: 600;
|
| 26 |
}
|
| 27 |
.home-button:hover { color: #fff; background: #424649; }
|
| 28 |
+
.pdf-container { width: 100%; height: calc(100% - 52px); flex: 1; min-height: 0; }
|
| 29 |
+
.pdf-container iframe { display: block; border: none; width: 100%; height: 100%; }
|
| 30 |
</style>
|
| 31 |
</head>
|
| 32 |
<body>
|
| 33 |
+
<div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
|
| 34 |
+
<script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
|
| 35 |
<nav class="toolbar" aria-label="{{ t('site.home_button') }}">
|
| 36 |
<a class="home-button" href="{{ url_for('home', lang=current_lang) }}">⌂ {{ t('site.home_button') }}</a>
|
| 37 |
</nav>
|
application_neo4j/templates/search.html
CHANGED
|
@@ -33,13 +33,15 @@
|
|
| 33 |
</head>
|
| 34 |
|
| 35 |
<body class="d-flex flex-column min-vh-100">
|
|
|
|
|
|
|
| 36 |
<header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
|
| 37 |
<div class="container">
|
| 38 |
<a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
|
| 39 |
<span class="fw-bold">{{ t('site.nav_brand') }}</span>
|
| 40 |
<small class="d-block text-muted">{{ t('site.nav_subtitle_full') }}</small>
|
| 41 |
</a>
|
| 42 |
-
<div class="d-flex align-items-center justify-content-end flex-wrap gap-2">
|
| 43 |
<a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
|
| 44 |
<i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
|
| 45 |
</a>
|
|
|
|
| 33 |
</head>
|
| 34 |
|
| 35 |
<body class="d-flex flex-column min-vh-100">
|
| 36 |
+
<div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
|
| 37 |
+
<script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
|
| 38 |
<header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
|
| 39 |
<div class="container">
|
| 40 |
<a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
|
| 41 |
<span class="fw-bold">{{ t('site.nav_brand') }}</span>
|
| 42 |
<small class="d-block text-muted">{{ t('site.nav_subtitle_full') }}</small>
|
| 43 |
</a>
|
| 44 |
+
<div class="navbar-actions d-flex align-items-center justify-content-end flex-wrap gap-2">
|
| 45 |
<a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
|
| 46 |
<i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
|
| 47 |
</a>
|
application_neo4j/templates/search_dataset.html
CHANGED
|
@@ -33,13 +33,15 @@
|
|
| 33 |
</head>
|
| 34 |
|
| 35 |
<body class="d-flex flex-column min-vh-100">
|
|
|
|
|
|
|
| 36 |
<header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
|
| 37 |
<div class="container">
|
| 38 |
<a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
|
| 39 |
<span class="fw-bold">{{ t('site.nav_brand') }}</span>
|
| 40 |
<small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
|
| 41 |
</a>
|
| 42 |
-
<div class="d-flex align-items-center justify-content-end flex-wrap gap-2">
|
| 43 |
<a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
|
| 44 |
<i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
|
| 45 |
</a>
|
|
|
|
| 33 |
</head>
|
| 34 |
|
| 35 |
<body class="d-flex flex-column min-vh-100">
|
| 36 |
+
<div id="legacy-browser-warning" class="legacy-browser-warning" role="alert">{{ t('site.legacy_browser_warning') }}</div>
|
| 37 |
+
<script src="{{ url_for('static', filename='js/browser_compatibility.js') }}"></script>
|
| 38 |
<header class="navbar navbar-expand-lg navbar-light bg-light border-bottom">
|
| 39 |
<div class="container">
|
| 40 |
<a class="navbar-brand" href="{{ url_for('home', lang=current_lang) }}">
|
| 41 |
<span class="fw-bold">{{ t('site.nav_brand') }}</span>
|
| 42 |
<small class="d-block text-muted">{{ t('site.nav_subtitle') }}</small>
|
| 43 |
</a>
|
| 44 |
+
<div class="navbar-actions d-flex align-items-center justify-content-end flex-wrap gap-2">
|
| 45 |
<a href="{{ url_for('home', lang=current_lang) }}" class="btn btn-sm btn-dark me-3">
|
| 46 |
<i class="bi bi-house-door-fill me-1" aria-hidden="true"></i>{{ t('site.home_button') }}
|
| 47 |
</a>
|
application_neo4j/translations.py
CHANGED
|
@@ -46,6 +46,7 @@ TRANSLATIONS = {
|
|
| 46 |
"site.nav_subtitle": "Exploration des relations entre modèles et datasets",
|
| 47 |
"site.nav_subtitle_full": "Exploration des relations entre modèles et datasets (base de données actualisée le {date})",
|
| 48 |
"site.home_button": "Accueil",
|
|
|
|
| 49 |
"site.footer": "Application de recherche et visualisation des relations entre modèles et jeux de données publiés sur la plateforme HuggingFace. © 2025",
|
| 50 |
"site.footer_expert": "Application de recherche et visualisation... © 2025",
|
| 51 |
|
|
@@ -284,6 +285,7 @@ TRANSLATIONS = {
|
|
| 284 |
"site.nav_subtitle": "Exploration of relations between models and datasets",
|
| 285 |
"site.nav_subtitle_full": "Exploration of relations between models and datasets (database updated on {date})",
|
| 286 |
"site.home_button": "Home",
|
|
|
|
| 287 |
"site.footer": "Application for searching and visualizing relations between models and datasets published on the HuggingFace platform. © 2025",
|
| 288 |
"site.footer_expert": "Application for searching and visualizing... © 2025",
|
| 289 |
|
|
|
|
| 46 |
"site.nav_subtitle": "Exploration des relations entre modèles et datasets",
|
| 47 |
"site.nav_subtitle_full": "Exploration des relations entre modèles et datasets (base de données actualisée le {date})",
|
| 48 |
"site.home_button": "Accueil",
|
| 49 |
+
"site.legacy_browser_warning": "Ce navigateur n’est plus pris en charge. Pour un affichage stable, utilisez une version récente de Firefox, Chrome, Edge ou Safari.",
|
| 50 |
"site.footer": "Application de recherche et visualisation des relations entre modèles et jeux de données publiés sur la plateforme HuggingFace. © 2025",
|
| 51 |
"site.footer_expert": "Application de recherche et visualisation... © 2025",
|
| 52 |
|
|
|
|
| 285 |
"site.nav_subtitle": "Exploration of relations between models and datasets",
|
| 286 |
"site.nav_subtitle_full": "Exploration of relations between models and datasets (database updated on {date})",
|
| 287 |
"site.home_button": "Home",
|
| 288 |
+
"site.legacy_browser_warning": "This browser is no longer supported. For a stable display, use a recent version of Firefox, Chrome, Edge or Safari.",
|
| 289 |
"site.footer": "Application for searching and visualizing relations between models and datasets published on the HuggingFace platform. © 2025",
|
| 290 |
"site.footer_expert": "Application for searching and visualizing... © 2025",
|
| 291 |
|