Akira-Kurusu commited on
Commit
db53ccb
·
verified ·
1 Parent(s): bea5500

Update web/patients.html

Browse files
Files changed (1) hide show
  1. web/patients.html +51 -30
web/patients.html CHANGED
@@ -9,7 +9,7 @@
9
  <title>Gestión de Pacientes</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">
@@ -185,7 +185,7 @@
185
  <div class="wrapper">
186
  <nav class="topnav navbar navbar-light">
187
  <button type="button" class="navbar-toggler text-muted mt-2 p-0 mr-3 collapseSidebar">
188
- <i class="fe fe-menu navbar-toggler-icon"></i>
189
  </button>
190
 
191
  <ul class="nav">
@@ -205,7 +205,7 @@
205
  <!-- Sidebar -->
206
  <aside class="sidebar-left border-right bg-white shadow" id="leftSidebar" data-simplebar>
207
  <a href="#" class="btn collapseSidebar toggle-btn d-lg-none text-muted ml-2 mt-3" data-toggle="toggle">
208
- <i class="fe fe-x"><span class="sr-only"></span></i>
209
  </a>
210
  <nav class="vertnav navbar navbar-light">
211
  <!-- nav bar -->
@@ -219,31 +219,31 @@
219
  <ul class="navbar-nav flex-fill w-100 mb-2">
220
  <li class="nav-item">
221
  <a class="nav-link" href="./index.html">
222
- <i class="fe fe-home fe-16"></i>
223
  <span class="ml-3 item-text">Dashboard</span>
224
  </a>
225
  </li>
226
  <li class="nav-item">
227
  <a class="nav-link" href="./diagnosis.html">
228
- <i class="fe fe-eye fe-16"></i>
229
  <span class="ml-3 item-text">Diagnóstico</span>
230
  </a>
231
  </li>
232
  <li class="nav-item active">
233
  <a class="nav-link" href="./patients.html">
234
- <i class="fe fe-users fe-16"></i>
235
  <span class="ml-3 item-text">Pacientes</span>
236
  </a>
237
  </li>
238
  <li class="nav-item">
239
  <a class="nav-link" href="./historial-consultas.html">
240
- <i class="fe fe-file-text fe-16"></i>
241
  <span class="ml-3 item-text">Consultas</span>
242
  </a>
243
  </li>
244
  <li class="nav-item active">
245
  <a class="nav-link" href="./users.html">
246
- <i class="fe fe-user fe-16"></i>
247
  <span class="ml-3 item-text">Usuarios</span>
248
  </a>
249
  </li>
@@ -262,14 +262,14 @@
262
  <div class="row align-items-center mb-4">
263
  <div class="col">
264
  <h2 class="h3 page-title">
265
- <i class="fe fe-users fe-24 mr-2 text-primary"></i>
266
  Gestión de Pacientes
267
  </h2>
268
  <p class="text-muted">Administra la información de tus pacientes de manera eficiente</p>
269
  </div>
270
  <div class="col-auto">
271
  <button class="btn btn-primary" onclick="showNewPatientWizard()">
272
- <i class="fe fe-plus fe-16 mr-2"></i>Nuevo Paciente
273
  </button>
274
  </div>
275
  </div>
@@ -323,7 +323,7 @@
323
  <div class="row align-items-center" style="background-color: #f5f5f5; padding: 15px; border-radius: 8px;">
324
  <div class="col-lg-6">
325
  <h5 class="mb-3">
326
- <i class="fe fe-search mr-2"></i>Buscar Pacientes
327
  </h5>
328
  <input type="text" class="form-control search-input" id="patientSearchInput" placeholder="Buscar por nombre, ID o tipo de diabetes...">
329
  </div>
@@ -347,11 +347,11 @@
347
  </div>
348
 
349
  <div id="emptyState" class="empty-state" style="display: none;">
350
- <i class="fe fe-users"></i>
351
  <h4>No hay pacientes registrados</h4>
352
  <p class="text-muted">Comienza agregando tu primer paciente al sistema</p>
353
  <button class="btn btn-primary" onclick="showNewPatientWizard()">
354
- <i class="fe fe-plus mr-2"></i>Agregar Primer Paciente
355
  </button>
356
  </div>
357
  </div>
@@ -366,7 +366,7 @@
366
  <div class="modal-content form-wizard">
367
  <div class="modal-header step-indicator">
368
  <h5 class="modal-title">
369
- <i class="fe fe-user-plus mr-2"></i>Nuevo Paciente
370
  </h5>
371
  <div class="ml-auto">
372
  <span class="step-item active" data-step="1">1. Información Personal</span>
@@ -428,7 +428,7 @@
428
 
429
  <div class="modal-footer">
430
  <button type="button" class="btn btn-success" id="savePatientBtn" style="display: none;">
431
- <i class="fe fe-save mr-2"></i>Guardar Paciente
432
  </button>
433
  <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
434
  </div>
@@ -442,7 +442,7 @@
442
  <div class="modal-content">
443
  <div class="modal-header">
444
  <h5 class="modal-title">
445
- <i class="fe fe-edit mr-2"></i>Editar Paciente
446
  </h5>
447
  <button type="button" class="close" data-dismiss="modal">
448
  <span aria-hidden="true">&times;</span>
@@ -496,7 +496,7 @@
496
  </div>
497
  <div class="modal-footer">
498
  <button type="button" class="btn btn-success" id="updatePatientBtn">
499
- <i class="fe fe-save mr-2"></i>Actualizar
500
  </button>
501
  <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
502
  </div>
@@ -510,7 +510,7 @@
510
  <div class="modal-content">
511
  <div class="modal-header">
512
  <h5 class="modal-title">
513
- <i class="fe fe-user mr-2"></i>Detalles del Paciente
514
  </h5>
515
  <button type="button" class="close" data-dismiss="modal">
516
  <span aria-hidden="true">&times;</span>
@@ -521,7 +521,7 @@
521
  </div>
522
  <div class="modal-footer">
523
  <button type="button" class="btn btn-primary" onclick="startDiagnosisForPatient()">
524
- <i class="fe fe-eye mr-2"></i>Nuevo Diagnóstico
525
  </button>
526
  <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
527
  </div>
@@ -665,7 +665,7 @@
665
 
666
  <div class="mt-3">
667
  <small class="text-muted">
668
- <i class="fe fe-calendar fe-12 mr-1"></i>
669
  Registro: ${moment(patient.creationDate).format('DD/MM/YYYY')}
670
  </small>
671
  </div>
@@ -673,21 +673,21 @@
673
 
674
  <div class="dropdown">
675
  <button class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown">
676
- <i class="fe fe-more-horizontal"></i>
677
  </button>
678
  <div class="dropdown-menu dropdown-menu-right">
679
  <a class="dropdown-item" href="#" onclick="viewPatientDetails(${patient.patientID})">
680
- <i class="fe fe-eye mr-2"></i>Ver Detalles
681
  </a>
682
  <a class="dropdown-item" href="#" onclick="editPatient(${patient.patientID})">
683
- <i class="fe fe-edit mr-2"></i>Editar
684
  </a>
685
  <a class="dropdown-item" href="diagnosis.html?patient=${patient.patientID}">
686
- <i class="fe fe-activity mr-2"></i>Nuevo Diagnóstico
687
  </a>
688
  <div class="dropdown-divider"></div>
689
  <a class="dropdown-item text-danger" href="#" onclick="deletePatient(${patient.patientID}, '${patient.name}')">
690
- <i class="fe fe-trash-2 mr-2"></i>Eliminar
691
  </a>
692
  </div>
693
  </div>
@@ -849,7 +849,7 @@
849
  diabetesType: formData.diabetesType || null
850
  }).then(function(response) {
851
  $('#savePatientBtn').prop('disabled', false)
852
- .html('<i class="fe fe-save mr-2"></i>Guardar Paciente');
853
 
854
  if (response && response.success) {
855
  showAlert('success', `Paciente ${formData.name} creado exitosamente`);
@@ -899,7 +899,7 @@
899
  diabetesType: formData.diabetes_type
900
  }).then(function(response) {
901
  $('#updatePatientBtn').prop('disabled', false)
902
- .html('<i class="fe fe-save mr-2"></i>Actualizar');
903
 
904
  if (response && response.success) {
905
  showAlert('success', 'Paciente actualizado exitosamente');
@@ -995,7 +995,7 @@
995
  </div>
996
  ` : `
997
  <div class="text-center text-muted py-4">
998
- <i class="fe fe-file-text fe-48 mb-3"></i>
999
  <p>No hay consultas registradas</p>
1000
  </div>
1001
  `}
@@ -1082,7 +1082,7 @@
1082
 
1083
  const alertHtml = `
1084
  <div class="alert ${alertClass} alert-dismissible fade show" role="alert">
1085
- <i class="fe fe-${type === 'error' ? 'x-circle' : type === 'success' ? 'check-circle' : type === 'warning' ? 'alert-triangle' : 'info'} mr-2"></i>
1086
  ${message}
1087
  <button type="button" class="close" data-dismiss="alert">
1088
  <span aria-hidden="true">&times;</span>
@@ -1109,7 +1109,10 @@
1109
 
1110
  window.startDiagnosisForPatient = function() {
1111
  if (selectedPatientForDetails) {
1112
- window.location.href = 'diagnosis.html?patient=' + selectedPatientForDetails.patientID;
 
 
 
1113
  }
1114
  };
1115
 
@@ -1230,5 +1233,23 @@
1230
  <script src="js/gauge.min.js"></script>
1231
  <script src="js/jquery.sparkline.min.js"></script>
1232
  <script src="js/apps.js"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1233
  </body>
1234
  </html>
 
9
  <title>Gestión de Pacientes</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">
 
185
  <div class="wrapper">
186
  <nav class="topnav navbar navbar-light">
187
  <button type="button" class="navbar-toggler text-muted mt-2 p-0 mr-3 collapseSidebar">
188
+ <i data-feather="menu" class="navbar-toggler-icon"></i>
189
  </button>
190
 
191
  <ul class="nav">
 
205
  <!-- Sidebar -->
206
  <aside class="sidebar-left border-right bg-white shadow" id="leftSidebar" data-simplebar>
207
  <a href="#" class="btn collapseSidebar toggle-btn d-lg-none text-muted ml-2 mt-3" data-toggle="toggle">
208
+ <i data-feather="x"><span class="sr-only"></span></i>
209
  </a>
210
  <nav class="vertnav navbar navbar-light">
211
  <!-- nav bar -->
 
219
  <ul class="navbar-nav flex-fill w-100 mb-2">
220
  <li class="nav-item">
221
  <a class="nav-link" href="./index.html">
222
+ <i data-feather="home" class="fe-16"></i>
223
  <span class="ml-3 item-text">Dashboard</span>
224
  </a>
225
  </li>
226
  <li class="nav-item">
227
  <a class="nav-link" href="./diagnosis.html">
228
+ <i data-feather="eye" class="fe-16"></i>
229
  <span class="ml-3 item-text">Diagnóstico</span>
230
  </a>
231
  </li>
232
  <li class="nav-item active">
233
  <a class="nav-link" href="./patients.html">
234
+ <i data-feather="users" class="fe-16"></i>
235
  <span class="ml-3 item-text">Pacientes</span>
236
  </a>
237
  </li>
238
  <li class="nav-item">
239
  <a class="nav-link" href="./historial-consultas.html">
240
+ <i data-feather="file-text" class="fe-16"></i>
241
  <span class="ml-3 item-text">Consultas</span>
242
  </a>
243
  </li>
244
  <li class="nav-item active">
245
  <a class="nav-link" href="./users.html">
246
+ <i data-feather="user" class="fe-16"></i>
247
  <span class="ml-3 item-text">Usuarios</span>
248
  </a>
249
  </li>
 
262
  <div class="row align-items-center mb-4">
263
  <div class="col">
264
  <h2 class="h3 page-title">
265
+ <i data-feather="users" class="fe-24 mr-2 text-primary"></i>
266
  Gestión de Pacientes
267
  </h2>
268
  <p class="text-muted">Administra la información de tus pacientes de manera eficiente</p>
269
  </div>
270
  <div class="col-auto">
271
  <button class="btn btn-primary" onclick="showNewPatientWizard()">
272
+ <i data-feather="plus" class="fe-16 mr-2"></i>Nuevo Paciente
273
  </button>
274
  </div>
275
  </div>
 
323
  <div class="row align-items-center" style="background-color: #f5f5f5; padding: 15px; border-radius: 8px;">
324
  <div class="col-lg-6">
325
  <h5 class="mb-3">
326
+ <i data-feather="search" class="mr-2"></i>Buscar Pacientes
327
  </h5>
328
  <input type="text" class="form-control search-input" id="patientSearchInput" placeholder="Buscar por nombre, ID o tipo de diabetes...">
329
  </div>
 
347
  </div>
348
 
349
  <div id="emptyState" class="empty-state" style="display: none;">
350
+ <i data-feather="users"></i>
351
  <h4>No hay pacientes registrados</h4>
352
  <p class="text-muted">Comienza agregando tu primer paciente al sistema</p>
353
  <button class="btn btn-primary" onclick="showNewPatientWizard()">
354
+ <i data-feather="plus" class="mr-2"></i>Agregar Primer Paciente
355
  </button>
356
  </div>
357
  </div>
 
366
  <div class="modal-content form-wizard">
367
  <div class="modal-header step-indicator">
368
  <h5 class="modal-title">
369
+ <i data-feather="user-plus" class="mr-2"></i>Nuevo Paciente
370
  </h5>
371
  <div class="ml-auto">
372
  <span class="step-item active" data-step="1">1. Información Personal</span>
 
428
 
429
  <div class="modal-footer">
430
  <button type="button" class="btn btn-success" id="savePatientBtn" style="display: none;">
431
+ <i data-feather="save" class="mr-2"></i>Guardar Paciente
432
  </button>
433
  <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
434
  </div>
 
442
  <div class="modal-content">
443
  <div class="modal-header">
444
  <h5 class="modal-title">
445
+ <i data-feather="edit" class="mr-2"></i>Editar Paciente
446
  </h5>
447
  <button type="button" class="close" data-dismiss="modal">
448
  <span aria-hidden="true">&times;</span>
 
496
  </div>
497
  <div class="modal-footer">
498
  <button type="button" class="btn btn-success" id="updatePatientBtn">
499
+ <i data-feather="save" class="mr-2"></i>Actualizar
500
  </button>
501
  <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>
502
  </div>
 
510
  <div class="modal-content">
511
  <div class="modal-header">
512
  <h5 class="modal-title">
513
+ <i data-feather="user" class="mr-2"></i>Detalles del Paciente
514
  </h5>
515
  <button type="button" class="close" data-dismiss="modal">
516
  <span aria-hidden="true">&times;</span>
 
521
  </div>
522
  <div class="modal-footer">
523
  <button type="button" class="btn btn-primary" onclick="startDiagnosisForPatient()">
524
+ <i data-feather="eye" class="mr-2"></i>Nuevo Diagnóstico
525
  </button>
526
  <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
527
  </div>
 
665
 
666
  <div class="mt-3">
667
  <small class="text-muted">
668
+ <i data-feather="calendar" class="fe-12 mr-1"></i>
669
  Registro: ${moment(patient.creationDate).format('DD/MM/YYYY')}
670
  </small>
671
  </div>
 
673
 
674
  <div class="dropdown">
675
  <button class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" data-toggle="dropdown">
676
+ <i data-feather="more-horizontal"></i>
677
  </button>
678
  <div class="dropdown-menu dropdown-menu-right">
679
  <a class="dropdown-item" href="#" onclick="viewPatientDetails(${patient.patientID})">
680
+ <i data-feather="eye" class="mr-2"></i>Ver Detalles
681
  </a>
682
  <a class="dropdown-item" href="#" onclick="editPatient(${patient.patientID})">
683
+ <i data-feather="edit" class="mr-2"></i>Editar
684
  </a>
685
  <a class="dropdown-item" href="diagnosis.html?patient=${patient.patientID}">
686
+ <i data-feather="activity" class="mr-2"></i>Nuevo Diagnóstico
687
  </a>
688
  <div class="dropdown-divider"></div>
689
  <a class="dropdown-item text-danger" href="#" onclick="deletePatient(${patient.patientID}, '${patient.name}')">
690
+ <i data-feather="trash-2" class="mr-2"></i>Eliminar
691
  </a>
692
  </div>
693
  </div>
 
849
  diabetesType: formData.diabetesType || null
850
  }).then(function(response) {
851
  $('#savePatientBtn').prop('disabled', false)
852
+ .html('<i data-feather="save" class="mr-2"></i>Guardar Paciente');
853
 
854
  if (response && response.success) {
855
  showAlert('success', `Paciente ${formData.name} creado exitosamente`);
 
899
  diabetesType: formData.diabetes_type
900
  }).then(function(response) {
901
  $('#updatePatientBtn').prop('disabled', false)
902
+ .html('<i data-feather="save" class="mr-2"></i>Actualizar');
903
 
904
  if (response && response.success) {
905
  showAlert('success', 'Paciente actualizado exitosamente');
 
995
  </div>
996
  ` : `
997
  <div class="text-center text-muted py-4">
998
+ <i data-feather="file-text" class="fe-48 mb-3"></i>
999
  <p>No hay consultas registradas</p>
1000
  </div>
1001
  `}
 
1082
 
1083
  const alertHtml = `
1084
  <div class="alert ${alertClass} alert-dismissible fade show" role="alert">
1085
+ ${(function(){var n=type==='error'?'x-circle':type==='success'?'check-circle':type==='warning'?'alert-triangle':'info';return typeof feather!=='undefined'?feather.icons[n].toSvg({'width':16,'height':16,'stroke-width':1.8,'style':'margin-right:6px;vertical-align:middle;'}):'';})()}
1086
  ${message}
1087
  <button type="button" class="close" data-dismiss="alert">
1088
  <span aria-hidden="true">&times;</span>
 
1109
 
1110
  window.startDiagnosisForPatient = function() {
1111
  if (selectedPatientForDetails) {
1112
+ setTimeout(() => {
1113
+ window.location.href = 'auth-login.html';
1114
+
1115
+ }, 200);
1116
  }
1117
  };
1118
 
 
1233
  <script src="js/gauge.min.js"></script>
1234
  <script src="js/jquery.sparkline.min.js"></script>
1235
  <script src="js/apps.js"></script>
1236
+ <script>
1237
+ // Feather Icons: reemplaza <i data-feather="X"> con SVG inline
1238
+ // Inmune a problemas de fuentes locales
1239
+ function _initFeather() {
1240
+ if (typeof feather !== 'undefined') feather.replace({ 'stroke-width': 1.8 });
1241
+ }
1242
+ document.addEventListener('DOMContentLoaded', _initFeather);
1243
+ // Re-render al inyectar HTML dinámico (modals, cards, tablas)
1244
+ var _fObserver = new MutationObserver(function(mutations) {
1245
+ var needsRefresh = mutations.some(function(m) {
1246
+ return m.addedNodes.length > 0;
1247
+ });
1248
+ if (needsRefresh) _initFeather();
1249
+ });
1250
+ document.addEventListener('DOMContentLoaded', function() {
1251
+ _fObserver.observe(document.body, { childList: true, subtree: true });
1252
+ });
1253
+ </script>
1254
  </body>
1255
  </html>