diff --git a/swad_changelog.h b/swad_changelog.h
index 59a6c560..616956ae 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -487,12 +487,13 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
-#define Log_PLATFORM_VERSION "SWAD 19.31.6 (2019-10-05)"
+#define Log_PLATFORM_VERSION "SWAD 19.31.7 (2019-10-05)"
#define CSS_FILE "swad19.29.css"
#define JS_FILE "swad19.30.js"
/*
// TODO: Perico: poner un candado de bloqueo de creación/edición de proyectos (por ejemplo en asignaturas obsoletas)
+ Version 19.31.7: Oct 05, 2019 Code refactoring in HTML tables. (? lines)
Version 19.31.6: Oct 05, 2019 Code refactoring in HTML tables. (247066 lines)
Version 19.31.5: Oct 05, 2019 Code refactoring in HTML tables. (247044 lines)
Version 19.31.4: Oct 04, 2019 Code refactoring in HTML tables. (247043 lines)
diff --git a/swad_file_browser.c b/swad_file_browser.c
index 2aaf0308..5454cf46 100644
--- a/swad_file_browser.c
+++ b/swad_file_browser.c
@@ -5545,7 +5545,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
if (asprintf (&Anchor,"fil_brw_%u_%s",
Gbl.FileBrowser.Id,RowId) < 0)
Lay_NotEnoughMemoryExit ();
- fprintf (Gbl.F.Out,"
"
- "",
- UniqueId,
+ Tbl_StartRowAttr ("id=\"prj_exp_%u\"",UniqueId);
+ fprintf (Gbl.F.Out," | ",
Gbl.RowEvenOdd);
Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more);
fprintf (Gbl.F.Out," | ");
Tbl_EndRow ();
- fprintf (Gbl.F.Out,"
"
- "",
- UniqueId,
+ Tbl_StartRowAttr ("id=\"prj_con_%u\" style=\"display:none;\"",UniqueId);
+ fprintf (Gbl.F.Out," | ",
Gbl.RowEvenOdd);
Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less);
fprintf (Gbl.F.Out," | ");
Tbl_EndRow ();
break;
case Prj_FILE_BROWSER_PROJECT:
- fprintf (Gbl.F.Out,"
"
- "",
- UniqueId);
+ Tbl_StartRowAttr ("id=\"prj_exp_%u\"",UniqueId);
+ fprintf (Gbl.F.Out," | ");
Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more);
fprintf (Gbl.F.Out," | ");
Tbl_EndRow ();
- fprintf (Gbl.F.Out,"
"
- "",
- UniqueId);
+ Tbl_StartRowAttr ("id=\"prj_con_%u\" style=\"display:none;\"",UniqueId);
+ fprintf (Gbl.F.Out," | ");
Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less);
fprintf (Gbl.F.Out," | ");
Tbl_EndRow ();
@@ -1197,15 +1193,13 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
- fprintf (Gbl.F.Out,"
"
- ""
- " | "
- " | "
- " | "
- " | "
- " | ");
}
-void Tbl_StartClass (const char *Class)
+/*****************************************************************************/
+/**************************** Start/end table row ****************************/
+/*****************************************************************************/
+
+void Tbl_StartRowAttr (const char *fmt,...)
{
- if (Class)
+ va_list ap;
+ int NumBytesPrinted;
+ char *Attr;
+
+ if (fmt)
{
- if (Class[0])
+ if (fmt[0])
{
+ va_start (ap,fmt);
+ NumBytesPrinted = vasprintf (&Attr,fmt,ap);
+ va_end (ap);
+
+ if (NumBytesPrinted < 0) // If memory allocation wasn't possible,
+ // or some other error occurs,
+ // vasprintf will return -1
+ Lay_NotEnoughMemoryExit ();
+
+ /***** Print HTML *****/
fprintf (Gbl.F.Out,
- " |
",
- Class);
+ "
",Attr);
+
+ free ((void *) Attr);
}
else
- Tbl_StartRow ();
+ Tbl_StartRow ();
}
else
Tbl_StartRow ();
@@ -190,6 +209,10 @@ void Tbl_EndRow (void)
"
");
}
+/*****************************************************************************/
+/********************************* Table cells *******************************/
+/*****************************************************************************/
+
void Tbl_PutEmptyCells (unsigned NumColumns)
{
unsigned NumCol;
diff --git a/swad_table.h b/swad_table.h
index e06f7245..726e9271 100644
--- a/swad_table.h
+++ b/swad_table.h
@@ -55,7 +55,7 @@ void Tbl_StartTableWideMargin (void);
void Tbl_EndTable (void);
-void Tbl_StartClass (const char *Class);
+void Tbl_StartRowAttr (const char *fmt,...);
void Tbl_StartRow (void);
void Tbl_EndRow (void);