diff --git a/swad_HTML.c b/swad_HTML.c
index 1a7cf4f5..1f3ec504 100644
--- a/swad_HTML.c
+++ b/swad_HTML.c
@@ -63,6 +63,9 @@ static unsigned HTM_DIV_NestingLevel = 0;
static unsigned HTM_SPAN_NestingLevel = 0;
static unsigned HTM_UL_NestingLevel = 0;
static unsigned HTM_LI_NestingLevel = 0;
+static unsigned HTM_DL_NestingLevel = 0;
+static unsigned HTM_DT_NestingLevel = 0;
+static unsigned HTM_DD_NestingLevel = 0;
static unsigned HTM_A_NestingLevel = 0;
static unsigned HTM_SCRIPT_NestingLevel = 0;
static unsigned HTM_LABEL_NestingLevel = 0;
@@ -717,6 +720,61 @@ void HTM_LI_End (void)
HTM_LI_NestingLevel--;
}
+/*****************************************************************************/
+/****************************** Definition lists *****************************/
+/*****************************************************************************/
+
+void HTM_DL_Begin (void)
+ {
+ fprintf (Gbl.F.Out,"
");
+
+ HTM_DL_NestingLevel++;
+ }
+
+void HTM_DL_End (void)
+ {
+ if (HTM_DL_NestingLevel == 0) // No DL open
+ Ale_ShowAlert (Ale_ERROR,"Trying to close unopened DL.");
+
+ fprintf (Gbl.F.Out,"
");
+
+ HTM_DL_NestingLevel--;
+ }
+
+void HTM_DT_Begin (void)
+ {
+ fprintf (Gbl.F.Out,"");
+
+ HTM_DT_NestingLevel++;
+ }
+
+void HTM_DT_End (void)
+ {
+ if (HTM_DL_NestingLevel == 0) // No DT open
+ Ale_ShowAlert (Ale_ERROR,"Trying to close unopened DT.");
+
+ fprintf (Gbl.F.Out,"");
+
+ HTM_DT_NestingLevel--;
+ }
+
+void HTM_DD_Begin (void)
+ {
+ fprintf (Gbl.F.Out,"");
+
+ HTM_DD_NestingLevel++;
+ }
+
+void HTM_DD_End (void)
+ {
+ if (HTM_DD_NestingLevel == 0) // No DD open
+ Ale_ShowAlert (Ale_ERROR,"Trying to close unopened DD.");
+
+ fprintf (Gbl.F.Out,"");
+
+ HTM_DD_NestingLevel--;
+ }
+
/*****************************************************************************/
/********************************** Anchors **********************************/
/*****************************************************************************/
diff --git a/swad_HTML.h b/swad_HTML.h
index da8d570f..d791fdef 100644
--- a/swad_HTML.h
+++ b/swad_HTML.h
@@ -90,6 +90,13 @@ void HTM_UL_End (void);
void HTM_LI_Begin (const char *fmt,...);
void HTM_LI_End (void);
+void HTM_DL_Begin (void);
+void HTM_DL_End (void);
+void HTM_DT_Begin (void);
+void HTM_DT_End (void);
+void HTM_DD_Begin (void);
+void HTM_DD_End (void);
+
void HTM_A_Begin (const char *fmt,...);
void HTM_A_End (void);
diff --git a/swad_attendance.c b/swad_attendance.c
index 0f677af4..fab725d9 100644
--- a/swad_attendance.c
+++ b/swad_attendance.c
@@ -3599,25 +3599,32 @@ static void Att_ListAttEventsForAStd (unsigned NumUsr,struct UsrData *UsrDat)
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT LM COLOR%u\"",Gbl.RowEvenOdd);
- fprintf (Gbl.F.Out,"");
+
+ HTM_DL_Begin ();
if (ShowCommentStd)
{
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
CommentStd,Cns_MAX_BYTES_TEXT,false);
- fprintf (Gbl.F.Out,"- %s:
- %s
",
- Txt_Student_comment,
- CommentStd);
+ HTM_DT_Begin ();
+ fprintf (Gbl.F.Out,"%s:",Txt_Student_comment);
+ HTM_DT_End ();
+ HTM_DD_Begin ();
+ fprintf (Gbl.F.Out,"%s",CommentStd);
+ HTM_DD_End ();
}
if (ShowCommentTch)
{
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
CommentTch,Cns_MAX_BYTES_TEXT,false);
- fprintf (Gbl.F.Out,"- %s:
"
- "- %s
",
- Txt_Teachers_comment,
- CommentTch);
+ HTM_DT_Begin ();
+ fprintf (Gbl.F.Out,"%s:",Txt_Teachers_comment);
+ HTM_DT_End ();
+ HTM_DD_Begin ();
+ fprintf (Gbl.F.Out,"%s",CommentTch);
+ HTM_DD_End ();
}
- fprintf (Gbl.F.Out,"
");
+ HTM_DL_End ();
+
HTM_TD_End ();
HTM_TR_End ();
diff --git a/swad_changelog.h b/swad_changelog.h
index 1baae8a3..e7e4d51d 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -469,9 +469,6 @@ contiene una de las que yo imparto. As
// TODO: En resultados de test y de juegos, en preguntas modificadas se podría mostrar la puntuación obtenida en la pregunta (ahora no sale)
// TODO: Al crear un nuevo juego, debería irse a la pantalla de añadir preguntas (la misma opción que sale cuando pulsas en editar un juego existente)
-// TODO: Refactorize SELECT and OPTION
-// TODO: Refactorize DL, DT, DD
-
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
@@ -490,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
-#define Log_PLATFORM_VERSION "SWAD 19.56 (2019-11-08)"
+#define Log_PLATFORM_VERSION "SWAD 19.57 (2019-11-09)"
#define CSS_FILE "swad19.47.css"
#define JS_FILE "swad19.39.js"
/*
@@ -498,6 +495,7 @@ ps2pdf source.ps destination.pdf
// TODO: Impedir la creación y edición de proyectos si no son editables.
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
+ Version 19.57: Nov 09, 2019 Code refactoring in HTML definition lists. (246156 lines)
Version 19.56: Nov 08, 2019 Fixed bug in groups.
New constants for sizes of numerical strings. (246104 lines)
Version 19.55.4: Nov 07, 2019 Fixed bugs in dates. (246072 lines)