Akira-Kurusu commited on
Commit
eb80615
·
verified ·
1 Parent(s): 050d3c5

Update web/index.html

Browse files
Files changed (1) hide show
  1. web/index.html +37 -63
web/index.html CHANGED
@@ -9,7 +9,7 @@
9
  <title>Dashboard</title>
10
  <link rel="stylesheet" href="css/simplebar.css">
11
  <link href="https://fonts.googleapis.com/css2?family=Overpass:ital,wght@0,100;0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
12
- <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
13
  <link rel="stylesheet" href="css/select2.css">
14
  <link rel="stylesheet" href="css/dropzone.css">
15
  <link rel="stylesheet" href="css/uppy.min.css">
@@ -24,15 +24,10 @@
24
  <div class="wrapper">
25
  <nav class="topnav navbar navbar-light">
26
  <button type="button" class="navbar-toggler text-muted mt-2 p-0 mr-3 collapseSidebar">
27
- <i data-feather="menu" class="navbar-toggler-icon"></i>
28
  </button>
29
 
30
  <ul class="nav">
31
- <li class="nav-item">
32
- <a class="nav-link text-muted my-2" href="#" id="modeSwitcher" data-mode="light">
33
- <i class="fe fe-sun fe-16"></i>
34
- </a>
35
- </li>
36
 
37
 
38
  <li class="nav-item dropdown">
@@ -49,7 +44,7 @@
49
  </nav>
50
  <aside class="sidebar-left border-right bg-white shadow" id="leftSidebar" data-simplebar>
51
  <a href="#" class="btn collapseSidebar toggle-btn d-lg-none text-muted ml-2 mt-3" data-toggle="toggle">
52
- <i data-feather="x"><span class="sr-only"></span></i>
53
  </a>
54
  <nav class="vertnav navbar navbar-light">
55
  <!-- nav bar -->
@@ -62,31 +57,31 @@
62
  <ul class="navbar-nav flex-fill w-100 mb-2">
63
  <li class="nav-item active">
64
  <a class="nav-link" href="./index.html">
65
- <i data-feather="home" class="fe-16"></i>
66
  <span class="ml-3 item-text">Dashboard</span>
67
  </a>
68
  </li>
69
  <li class="nav-item">
70
  <a class="nav-link" href="./diagnosis.html">
71
- <i data-feather="eye" class="fe-16"></i>
72
  <span class="ml-3 item-text">Diagnóstico</span>
73
  </a>
74
  </li>
75
  <li class="nav-item">
76
  <a class="nav-link" href="./patients.html">
77
- <i data-feather="users" class="fe-16"></i>
78
  <span class="ml-3 item-text">Pacientes</span>
79
  </a>
80
  </li>
81
  <li class="nav-item">
82
  <a class="nav-link" href="./historial-consultas.html">
83
- <i data-feather="file-text" class="fe-16"></i>
84
  <span class="ml-3 item-text">Consultas</span>
85
  </a>
86
  </li>
87
- <li class="nav-item active">
88
  <a class="nav-link" href="./users.html">
89
- <i data-feather="user" class="fe-16"></i>
90
  <span class="ml-3 item-text">Usuarios</span>
91
  </a>
92
  </li>
@@ -104,7 +99,7 @@
104
  <div class="row align-items-center">
105
  <div class="col-3 text-center">
106
  <span class="circle circle-sm bg-primary">
107
- <i data-feather="users" class="fe-16 text-white"></i>
108
  </span>
109
  </div>
110
  <div class="col pr-0">
@@ -121,7 +116,7 @@
121
  <div class="row align-items-center">
122
  <div class="col-3 text-center">
123
  <span class="circle circle-sm bg-warning">
124
- <i data-feather="alert-triangle" class="fe-16 text-white"></i>
125
  </span>
126
  </div>
127
  <div class="col pr-0">
@@ -138,7 +133,7 @@
138
  <div class="row align-items-center">
139
  <div class="col-3 text-center">
140
  <span class="circle circle-sm bg-success">
141
- <i data-feather="check" class="fe-16 text-white"></i>
142
  </span>
143
  </div>
144
  <div class="col pr-0">
@@ -155,7 +150,7 @@
155
  <div class="row align-items-center">
156
  <div class="col-3 text-center">
157
  <span class="circle circle-sm bg-info">
158
- <i data-feather="percent" class="fe-16 text-white"></i>
159
  </span>
160
  </div>
161
  <div class="col pr-0">
@@ -187,7 +182,7 @@
187
  <div class="card shadow h-100 mb-4">
188
  <div class="card-header">
189
  <h6 class="card-title mb-0">
190
- <i data-feather="pie-chart" class="mr-2"></i>
191
  Rangos de Edad con Retinopatía
192
  </h6>
193
  </div>
@@ -234,7 +229,7 @@
234
  <tbody id="recentConsultationsBody">
235
  <tr>
236
  <td colspan="5" class="text-center text-muted">
237
- <i data-feather="loader" class="fe-16 spinner"></i> Cargando consultas...
238
  </td>
239
  </tr>
240
  </tbody>
@@ -260,7 +255,7 @@
260
  <div class="list-group-item bg-transparent">
261
  <div class="row align-items-center">
262
  <div class="col-auto">
263
- <span data-feather="box" class="fe-24"></span>
264
  </div>
265
  <div class="col">
266
  <small><strong>Package has uploaded successfull</strong></small>
@@ -272,7 +267,7 @@
272
  <div class="list-group-item bg-transparent">
273
  <div class="row align-items-center">
274
  <div class="col-auto">
275
- <span data-feather="download" class="fe-24"></span>
276
  </div>
277
  <div class="col">
278
  <small><strong>Widgets are updated successfull</strong></small>
@@ -284,7 +279,7 @@
284
  <div class="list-group-item bg-transparent">
285
  <div class="row align-items-center">
286
  <div class="col-auto">
287
- <span data-feather="inbox" class="fe-24"></span>
288
  </div>
289
  <div class="col">
290
  <small><strong>Notifications have been sent</strong></small>
@@ -296,7 +291,7 @@
296
  <div class="list-group-item bg-transparent">
297
  <div class="row align-items-center">
298
  <div class="col-auto">
299
- <span data-feather="link" class="fe-24"></span>
300
  </div>
301
  <div class="col">
302
  <small><strong>Link was attached to menu</strong></small>
@@ -326,13 +321,13 @@
326
  <div class="row align-items-center">
327
  <div class="col-6 text-center">
328
  <div class="squircle bg-success justify-content-center">
329
- <i data-feather="cpu" class="fe-32 align-self-center text-white"></i>
330
  </div>
331
  <p>Control area</p>
332
  </div>
333
  <div class="col-6 text-center">
334
  <div class="squircle bg-primary justify-content-center">
335
- <i data-feather="activity" class="fe-32 align-self-center text-white"></i>
336
  </div>
337
  <p>Activity</p>
338
  </div>
@@ -340,13 +335,13 @@
340
  <div class="row align-items-center">
341
  <div class="col-6 text-center">
342
  <div class="squircle bg-primary justify-content-center">
343
- <i data-feather="droplet" class="fe-32 align-self-center text-white"></i>
344
  </div>
345
  <p>Droplet</p>
346
  </div>
347
  <div class="col-6 text-center">
348
  <div class="squircle bg-primary justify-content-center">
349
- <i data-feather="upload-cloud" class="fe-32 align-self-center text-white"></i>
350
  </div>
351
  <p>Upload</p>
352
  </div>
@@ -354,13 +349,13 @@
354
  <div class="row align-items-center">
355
  <div class="col-6 text-center">
356
  <div class="squircle bg-primary justify-content-center">
357
- <i data-feather="users" class="fe-32 align-self-center text-white"></i>
358
  </div>
359
  <p>Users</p>
360
  </div>
361
  <div class="col-6 text-center">
362
  <div class="squircle bg-primary justify-content-center">
363
- <i data-feather="settings" class="fe-32 align-self-center text-white"></i>
364
  </div>
365
  <p>Settings</p>
366
  </div>
@@ -887,7 +882,7 @@
887
  $('#recentConsultationsBody').html(`
888
  <tr>
889
  <td colspan="5" class="text-center text-muted">
890
- <i data-feather="loader" class="fe-16 spinner"></i> Cargando consultas...
891
  </td>
892
  </tr>
893
  `);
@@ -909,7 +904,7 @@
909
  tbody.append(`
910
  <tr>
911
  <td colspan="5" class="text-center text-muted">
912
- <i data-feather="inbox" class="fe-16"></i><br>
913
  No hay consultas recientes
914
  </td>
915
  </tr>
@@ -1010,7 +1005,7 @@
1010
  $('#recentConsultationsBody').html(`
1011
  <tr>
1012
  <td colspan="5" class="text-center text-danger">
1013
- <i data-feather="alert-triangle" class="fe-16"></i><br>
1014
  ${message || 'Error al cargar consultas'}
1015
  </td>
1016
  </tr>
@@ -1277,7 +1272,7 @@
1277
  </table>
1278
  </div>
1279
  <small class="text-muted">
1280
- <i data-feather="info" class="mr-1"></i>
1281
  Vista alternativa - el gráfico principal no se pudo cargar
1282
  </small>
1283
  </div>
@@ -1301,11 +1296,11 @@
1301
  chartElement.innerHTML = `
1302
  <div class="d-flex justify-content-center align-items-center" style="height: 350px;">
1303
  <div class="text-center text-muted">
1304
- <i data-feather="bar-chart-2" class="fe-48 mb-3"></i>
1305
  <h6>No hay datos disponibles</h6>
1306
  <p class="small">Las consultas aparecerán aquí cuando se registren</p>
1307
  <button class="btn btn-sm btn-outline-primary" onclick="insertSampleData()">
1308
- <i data-feather="plus" class="mr-1"></i>Generar datos de prueba
1309
  </button>
1310
  </div>
1311
  </div>
@@ -1323,7 +1318,7 @@
1323
  tbody.append(`
1324
  <tr>
1325
  <td colspan="5" class="text-center text-muted">
1326
- <i data-feather="inbox" class="fe-24 mb-2"></i><br>
1327
  No hay análisis recientes
1328
  </td>
1329
  </tr>
@@ -1343,7 +1338,7 @@
1343
  <td>${analysis.prediction.confidence}%</td>
1344
  <td>
1345
  <button class="btn btn-sm btn-outline-primary" onclick="viewAnalysis('${analysis.filename}')">
1346
- <i data-feather="eye" class="fe-12"></i>
1347
  </button>
1348
  </td>
1349
  </tr>
@@ -1419,7 +1414,7 @@
1419
  const fileName = $('#imageInput')[0].files[0]?.name || 'imagen_' + Date.now() + '.jpg';
1420
 
1421
  api.predict(imgSrc, fileName).then(function(result) {
1422
- $('#analyzeBtn').prop('disabled', false).html('<i data-feather="eye" class="mr-2"></i>Analizar con IA');
1423
 
1424
  if (result && result.success) {
1425
  showAnalysisResults(result);
@@ -1467,7 +1462,7 @@
1467
  $('#systemTestBtn').prop('disabled', true).html('<i class="spinner-border spinner-border-sm mr-2"></i>Probando...');
1468
 
1469
  api.getModelInfo().then(function(result) {
1470
- $('#systemTestBtn').prop('disabled', false).html('<i data-feather="refresh-cw" class="fe-16 mr-2"></i>Probar Sistema');
1471
  if (result && result.loaded) {
1472
  showAlert('info', '• Modelo IA: SÍ\n• Base de datos: SÍ');
1473
  } else {
@@ -1782,7 +1777,7 @@
1782
  chartElement.innerHTML = `
1783
  <div class="d-flex justify-content-center align-items-center" style="height: 300px;">
1784
  <div class="text-center text-muted">
1785
- <i data-feather="users" class="fe-48 mb-3"></i>
1786
  <h6>No hay datos de edad</h6>
1787
  <p class="small">Los rangos de edad aparecerán cuando haya<br>pacientes con retinopatía diabética</p>
1788
  </div>
@@ -1968,26 +1963,5 @@
1968
  }, 200);
1969
  });
1970
  </script>
1971
- <script>
1972
- // Feather Icons: reemplaza <i data-feather="X"> con SVG inline
1973
- // Inmune a problemas de fuentes locales
1974
- function _initFeather() {
1975
- if (typeof feather !== 'undefined') feather.replace({ 'stroke-width': 1.8 });
1976
- }
1977
- document.addEventListener('DOMContentLoaded', _initFeather);
1978
- // Re-render al inyectar HTML dinámico (modals, cards, tablas)
1979
- var _fObserver = new MutationObserver(function(mutations) {
1980
- var needsRefresh = mutations.some(function(m) {
1981
- return m.addedNodes.length > 0;
1982
- });
1983
- if (needsRefresh) _initFeather();
1984
- });
1985
- document.addEventListener('DOMContentLoaded', function() {
1986
- _fObserver.observe(document.body, { childList: true, subtree: true });
1987
- });
1988
- </script>
1989
  </body>
1990
- </html>
1991
-
1992
-
1993
-
 
9
  <title>Dashboard</title>
10
  <link rel="stylesheet" href="css/simplebar.css">
11
  <link href="https://fonts.googleapis.com/css2?family=Overpass:ital,wght@0,100;0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
12
+ <link rel="stylesheet" href="css/feather.css">
13
  <link rel="stylesheet" href="css/select2.css">
14
  <link rel="stylesheet" href="css/dropzone.css">
15
  <link rel="stylesheet" href="css/uppy.min.css">
 
24
  <div class="wrapper">
25
  <nav class="topnav navbar navbar-light">
26
  <button type="button" class="navbar-toggler text-muted mt-2 p-0 mr-3 collapseSidebar">
27
+ <i class="fe fe-menu navbar-toggler-icon"></i>
28
  </button>
29
 
30
  <ul class="nav">
 
 
 
 
 
31
 
32
 
33
  <li class="nav-item dropdown">
 
44
  </nav>
45
  <aside class="sidebar-left border-right bg-white shadow" id="leftSidebar" data-simplebar>
46
  <a href="#" class="btn collapseSidebar toggle-btn d-lg-none text-muted ml-2 mt-3" data-toggle="toggle">
47
+ <i class="fe fe-x"><span class="sr-only"></span></i>
48
  </a>
49
  <nav class="vertnav navbar navbar-light">
50
  <!-- nav bar -->
 
57
  <ul class="navbar-nav flex-fill w-100 mb-2">
58
  <li class="nav-item active">
59
  <a class="nav-link" href="./index.html">
60
+ <i class="fe fe-home fe-16"></i>
61
  <span class="ml-3 item-text">Dashboard</span>
62
  </a>
63
  </li>
64
  <li class="nav-item">
65
  <a class="nav-link" href="./diagnosis.html">
66
+ <i class="fe fe-eye fe-16"></i>
67
  <span class="ml-3 item-text">Diagnóstico</span>
68
  </a>
69
  </li>
70
  <li class="nav-item">
71
  <a class="nav-link" href="./patients.html">
72
+ <i class="fe fe-users fe-16"></i>
73
  <span class="ml-3 item-text">Pacientes</span>
74
  </a>
75
  </li>
76
  <li class="nav-item">
77
  <a class="nav-link" href="./historial-consultas.html">
78
+ <i class="fe fe-file-text fe-16"></i>
79
  <span class="ml-3 item-text">Consultas</span>
80
  </a>
81
  </li>
82
+ <li class="nav-item">
83
  <a class="nav-link" href="./users.html">
84
+ <i class="fe fe-user fe-16"></i>
85
  <span class="ml-3 item-text">Usuarios</span>
86
  </a>
87
  </li>
 
99
  <div class="row align-items-center">
100
  <div class="col-3 text-center">
101
  <span class="circle circle-sm bg-primary">
102
+ <i class="fe fe-users fe-16 text-white"></i>
103
  </span>
104
  </div>
105
  <div class="col pr-0">
 
116
  <div class="row align-items-center">
117
  <div class="col-3 text-center">
118
  <span class="circle circle-sm bg-warning">
119
+ <i class="fe fe-alert-triangle fe-16 text-white"></i>
120
  </span>
121
  </div>
122
  <div class="col pr-0">
 
133
  <div class="row align-items-center">
134
  <div class="col-3 text-center">
135
  <span class="circle circle-sm bg-success">
136
+ <i class="fe fe-check fe-16 text-white"></i>
137
  </span>
138
  </div>
139
  <div class="col pr-0">
 
150
  <div class="row align-items-center">
151
  <div class="col-3 text-center">
152
  <span class="circle circle-sm bg-info">
153
+ <i class="fe fe-percent fe-16 text-white"></i>
154
  </span>
155
  </div>
156
  <div class="col pr-0">
 
182
  <div class="card shadow h-100 mb-4">
183
  <div class="card-header">
184
  <h6 class="card-title mb-0">
185
+ <i class="fe fe-pie-chart mr-2"></i>
186
  Rangos de Edad con Retinopatía
187
  </h6>
188
  </div>
 
229
  <tbody id="recentConsultationsBody">
230
  <tr>
231
  <td colspan="5" class="text-center text-muted">
232
+ <i class="fe fe-loader fe-16 spinner"></i> Cargando consultas...
233
  </td>
234
  </tr>
235
  </tbody>
 
255
  <div class="list-group-item bg-transparent">
256
  <div class="row align-items-center">
257
  <div class="col-auto">
258
+ <span class="fe fe-box fe-24"></span>
259
  </div>
260
  <div class="col">
261
  <small><strong>Package has uploaded successfull</strong></small>
 
267
  <div class="list-group-item bg-transparent">
268
  <div class="row align-items-center">
269
  <div class="col-auto">
270
+ <span class="fe fe-download fe-24"></span>
271
  </div>
272
  <div class="col">
273
  <small><strong>Widgets are updated successfull</strong></small>
 
279
  <div class="list-group-item bg-transparent">
280
  <div class="row align-items-center">
281
  <div class="col-auto">
282
+ <span class="fe fe-inbox fe-24"></span>
283
  </div>
284
  <div class="col">
285
  <small><strong>Notifications have been sent</strong></small>
 
291
  <div class="list-group-item bg-transparent">
292
  <div class="row align-items-center">
293
  <div class="col-auto">
294
+ <span class="fe fe-link fe-24"></span>
295
  </div>
296
  <div class="col">
297
  <small><strong>Link was attached to menu</strong></small>
 
321
  <div class="row align-items-center">
322
  <div class="col-6 text-center">
323
  <div class="squircle bg-success justify-content-center">
324
+ <i class="fe fe-cpu fe-32 align-self-center text-white"></i>
325
  </div>
326
  <p>Control area</p>
327
  </div>
328
  <div class="col-6 text-center">
329
  <div class="squircle bg-primary justify-content-center">
330
+ <i class="fe fe-activity fe-32 align-self-center text-white"></i>
331
  </div>
332
  <p>Activity</p>
333
  </div>
 
335
  <div class="row align-items-center">
336
  <div class="col-6 text-center">
337
  <div class="squircle bg-primary justify-content-center">
338
+ <i class="fe fe-droplet fe-32 align-self-center text-white"></i>
339
  </div>
340
  <p>Droplet</p>
341
  </div>
342
  <div class="col-6 text-center">
343
  <div class="squircle bg-primary justify-content-center">
344
+ <i class="fe fe-upload-cloud fe-32 align-self-center text-white"></i>
345
  </div>
346
  <p>Upload</p>
347
  </div>
 
349
  <div class="row align-items-center">
350
  <div class="col-6 text-center">
351
  <div class="squircle bg-primary justify-content-center">
352
+ <i class="fe fe-users fe-32 align-self-center text-white"></i>
353
  </div>
354
  <p>Users</p>
355
  </div>
356
  <div class="col-6 text-center">
357
  <div class="squircle bg-primary justify-content-center">
358
+ <i class="fe fe-settings fe-32 align-self-center text-white"></i>
359
  </div>
360
  <p>Settings</p>
361
  </div>
 
882
  $('#recentConsultationsBody').html(`
883
  <tr>
884
  <td colspan="5" class="text-center text-muted">
885
+ <i class="fe fe-loader fe-16 spinner"></i> Cargando consultas...
886
  </td>
887
  </tr>
888
  `);
 
904
  tbody.append(`
905
  <tr>
906
  <td colspan="5" class="text-center text-muted">
907
+ <i class="fe fe-inbox fe-16"></i><br>
908
  No hay consultas recientes
909
  </td>
910
  </tr>
 
1005
  $('#recentConsultationsBody').html(`
1006
  <tr>
1007
  <td colspan="5" class="text-center text-danger">
1008
+ <i class="fe fe-alert-triangle fe-16"></i><br>
1009
  ${message || 'Error al cargar consultas'}
1010
  </td>
1011
  </tr>
 
1272
  </table>
1273
  </div>
1274
  <small class="text-muted">
1275
+ <i class="fe fe-info mr-1"></i>
1276
  Vista alternativa - el gráfico principal no se pudo cargar
1277
  </small>
1278
  </div>
 
1296
  chartElement.innerHTML = `
1297
  <div class="d-flex justify-content-center align-items-center" style="height: 350px;">
1298
  <div class="text-center text-muted">
1299
+ <i class="fe fe-bar-chart-2 fe-48 mb-3"></i>
1300
  <h6>No hay datos disponibles</h6>
1301
  <p class="small">Las consultas aparecerán aquí cuando se registren</p>
1302
  <button class="btn btn-sm btn-outline-primary" onclick="insertSampleData()">
1303
+ <i class="fe fe-plus mr-1"></i>Generar datos de prueba
1304
  </button>
1305
  </div>
1306
  </div>
 
1318
  tbody.append(`
1319
  <tr>
1320
  <td colspan="5" class="text-center text-muted">
1321
+ <i class="fe fe-inbox fe-24 mb-2"></i><br>
1322
  No hay análisis recientes
1323
  </td>
1324
  </tr>
 
1338
  <td>${analysis.prediction.confidence}%</td>
1339
  <td>
1340
  <button class="btn btn-sm btn-outline-primary" onclick="viewAnalysis('${analysis.filename}')">
1341
+ <i class="fe fe-eye fe-12"></i>
1342
  </button>
1343
  </td>
1344
  </tr>
 
1414
  const fileName = $('#imageInput')[0].files[0]?.name || 'imagen_' + Date.now() + '.jpg';
1415
 
1416
  api.predict(imgSrc, fileName).then(function(result) {
1417
+ $('#analyzeBtn').prop('disabled', false).html('<i class="fe fe-eye mr-2"></i>Analizar con IA');
1418
 
1419
  if (result && result.success) {
1420
  showAnalysisResults(result);
 
1462
  $('#systemTestBtn').prop('disabled', true).html('<i class="spinner-border spinner-border-sm mr-2"></i>Probando...');
1463
 
1464
  api.getModelInfo().then(function(result) {
1465
+ $('#systemTestBtn').prop('disabled', false).html('<i class="fe fe-refresh-cw fe-16 mr-2"></i>Probar Sistema');
1466
  if (result && result.loaded) {
1467
  showAlert('info', '• Modelo IA: SÍ\n• Base de datos: SÍ');
1468
  } else {
 
1777
  chartElement.innerHTML = `
1778
  <div class="d-flex justify-content-center align-items-center" style="height: 300px;">
1779
  <div class="text-center text-muted">
1780
+ <i class="fe fe-users fe-48 mb-3"></i>
1781
  <h6>No hay datos de edad</h6>
1782
  <p class="small">Los rangos de edad aparecerán cuando haya<br>pacientes con retinopatía diabética</p>
1783
  </div>
 
1963
  }, 200);
1964
  });
1965
  </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1966
  </body>
1967
+ </html>