diff --git a/swad_changelog.h b/swad_changelog.h
index fbea5976b..02e89f9f3 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -487,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.33.3 (2019-10-13)"
+#define Log_PLATFORM_VERSION "SWAD 19.33.4 (2019-10-13)"
#define CSS_FILE "swad19.33.css"
#define JS_FILE "swad19.30.js"
/*
@@ -496,6 +496,7 @@ ps2pdf source.ps destination.pdf
// TODO: En un TFG no preasignado con estudiante tiene que salir un triángulo amarillo
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
+ Version 19.33.4: Oct 13, 2019 Code refactoring in HTML table headings. (245291 lines)
Version 19.33.3: Oct 13, 2019 Code refactoring in HTML table headings. (245499 lines)
Version 19.33.2: Oct 13, 2019 Code refactoring in HTML table headings. (245646 lines)
Version 19.33.1: Oct 12, 2019 Code refactoring in HTML table headings. (246205 lines)
diff --git a/swad_statistic.c b/swad_statistic.c
index 9345b2e8a..b9dd89594 100644
--- a/swad_statistic.c
+++ b/swad_statistic.c
@@ -1670,33 +1670,13 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_User_ID);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Name);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Role);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Date);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Action);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_LOG_More_info);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_User_ID);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Name);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Role);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Date);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Action);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_LOG_More_info);
Tbl_TR_End ();
@@ -1832,29 +1812,12 @@ static void Sta_ShowNumHitsPerUsr (unsigned long NumRows,MYSQL_RES *mysql_res)
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Photo);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_ID);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Name);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Role);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,2,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Photo);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_ID);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Name);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Role);
+ Tbl_TH (1,2,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -1963,17 +1926,9 @@ static void Sta_ShowNumHitsPerDay (unsigned long NumRows,MYSQL_RES *mysql_res)
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Date);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Day);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Date);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Day);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -2162,17 +2117,9 @@ static void Sta_ShowDistrAccessesPerDayAndHour (unsigned long NumRows,MYSQL_RES
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (3,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Date);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (3,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Day);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,24,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (3,1,"CENTER_TOP",Txt_Date);
+ Tbl_TH (3,1,"LEFT_TOP",Txt_Day);
+ Tbl_TH (1,24,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -2557,13 +2504,8 @@ static void Sta_ShowNumHitsPerWeek (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Week);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Week);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -2662,13 +2604,8 @@ static void Sta_ShowNumHitsPerMonth (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Month);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Month);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -2767,13 +2704,8 @@ static void Sta_ShowNumHitsPerYear (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Year);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Year);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3197,13 +3129,8 @@ static void Sta_ShowNumHitsPerAction (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Action);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_Action);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3256,13 +3183,8 @@ static void Sta_ShowNumHitsPerPlugin (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Plugin);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_Plugin);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3316,13 +3238,8 @@ static void Sta_ShowNumHitsPerWSFunction (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Function);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Function);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3375,13 +3292,8 @@ static void Sta_ShowNumHitsPerBanner (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Banner);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Banner);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3455,17 +3367,9 @@ static void Sta_ShowNumHitsPerCountry (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Country);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Country);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3553,17 +3457,9 @@ static void Sta_ShowNumHitsPerInstitution (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Institution);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Institution);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3653,17 +3549,9 @@ static void Sta_ShowNumHitsPerCentre (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Centre);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Centre);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3753,17 +3641,9 @@ static void Sta_ShowNumHitsPerDegree (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Degree);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Degree);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -3858,25 +3738,11 @@ static void Sta_ShowNumHitsPerCourse (unsigned long NumRows,
/***** Write heading *****/
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Degree);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Year_OF_A_DEGREE);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Course);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Degree);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Year_OF_A_DEGREE);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Course);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_TR_End ();
@@ -4204,37 +4070,14 @@ void Sta_GetAndShowLastClicks (void)
Tbl_TABLE_BeginCenterPadding (1);
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"LC_CLK");
- fprintf (Gbl.F.Out,"%s",Txt_Click); // Click
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LC_TIM");
- fprintf (Gbl.F.Out,"%s",Txt_ELAPSED_TIME); // Elapsed time
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LC_ROL");
- fprintf (Gbl.F.Out,"%s",Txt_Role); // Role
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LC_CTY");
- fprintf (Gbl.F.Out,"%s",Txt_Country); // Country
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LC_INS");
- fprintf (Gbl.F.Out,"%s",Txt_Institution); // Institution
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LC_CTR");
- fprintf (Gbl.F.Out,"%s",Txt_Centre); // Centre
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LC_DEG");
- fprintf (Gbl.F.Out,"%s",Txt_Degree); // Degree
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LC_ACT");
- fprintf (Gbl.F.Out,"%s",Txt_Action); // Action
- Tbl_TH_End ();
+ Tbl_TH (1,1,"LC_CLK",Txt_Click); // Click
+ Tbl_TH (1,1,"LC_TIM",Txt_ELAPSED_TIME); // Elapsed time
+ Tbl_TH (1,1,"LC_ROL",Txt_Role); // Role
+ Tbl_TH (1,1,"LC_CTY",Txt_Country); // Country
+ Tbl_TH (1,1,"LC_INS",Txt_Institution); // Institution
+ Tbl_TH (1,1,"LC_CTR",Txt_Centre); // Centre
+ Tbl_TH (1,1,"LC_DEG",Txt_Degree); // Degree
+ Tbl_TH (1,1,"LC_ACT",Txt_Action); // Action
Tbl_TR_End ();
diff --git a/swad_survey.c b/swad_survey.c
index 8de76697f..a816b37c1 100644
--- a/swad_survey.c
+++ b/swad_survey.c
@@ -247,8 +247,7 @@ static void Svy_ListAllSurveys (struct SurveyQuestion *SvyQst)
Tbl_TABLE_BeginWideMarginPadding (2);
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,1,"CONTEXT_COL"); // Column for contextual icons
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons
for (Order = Svy_ORDER_BY_START_DATE;
Order <= Svy_ORDER_BY_END_DATE;
@@ -273,13 +272,8 @@ static void Svy_ListAllSurveys (struct SurveyQuestion *SvyQst)
Tbl_TH_End ();
}
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE");
- fprintf (Gbl.F.Out,"%s",Txt_Survey);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_MIDDLE");
- fprintf (Gbl.F.Out,"%s",Txt_Status);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"LEFT_MIDDLE",Txt_Survey);
+ Tbl_TH (1,1,"CENTER_MIDDLE",Txt_Status);
Tbl_TR_End ();
@@ -3226,18 +3220,9 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,
if (Svy->Status.ICanEdit)
Tbl_TH_Empty (1);
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Type);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Question);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Type);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Question);
Tbl_TR_End ();
diff --git a/swad_test.c b/swad_test.c
index 82afdc0c6..4071525ec 100644
--- a/swad_test.c
+++ b/swad_test.c
@@ -2831,25 +2831,11 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
Tbl_TH_Empty (1);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Code);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Date);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Tags);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Shuffle);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Code);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Date);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Tags);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Shuffle);
/* Stem and answers of question */
/* Number of times that the question has been answered */
@@ -2859,6 +2845,7 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
Order++)
{
Tbl_TH_Begin (1,1,"LEFT_TOP");
+
if (NumRows > 1)
{
Frm_StartForm (ActLstTstQst);
@@ -2877,6 +2864,7 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
}
+
Tbl_TH_End ();
}
@@ -3098,33 +3086,13 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
Tbl_TH_Empty (1);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Code);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Date);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Tags);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Type);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Shuffle);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Question);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Code);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Date);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Tags);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Type);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Shuffle);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Question);
Tbl_TR_End ();
@@ -7710,34 +7678,15 @@ static void Tst_ShowHeaderTestResults (void)
Tbl_TR_Begin (NULL);
- Tbl_TH_Begin (1,2,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_User[Usr_SEX_UNKNOWN]);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Date);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Questions);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Non_blank_BR_questions);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Total_BR_score);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"RIGHT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Average_BR_score_BR_per_question_BR_from_0_to_1);
- Tbl_TH_End ();
-
+ Tbl_TH (1,2,"CENTER_TOP",Txt_User[Usr_SEX_UNKNOWN]);
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_Date);
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_Questions);
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_Non_blank_BR_questions);
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_Total_BR_score);
+ Tbl_TH (1,1,"RIGHT_TOP",Txt_Average_BR_score_BR_per_question_BR_from_0_to_1);
Tbl_TH_Begin (1,1,"RIGHT_TOP");
fprintf (Gbl.F.Out,"%s
%s
%u",Txt_Score,Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
Tbl_TH_End ();
-
Tbl_TH_Empty (1);
Tbl_TR_End ();
diff --git a/swad_test_import.c b/swad_test_import.c
index d62a2c223..1a7d3da01 100644
--- a/swad_test_import.c
+++ b/swad_test_import.c
@@ -962,25 +962,11 @@ static void TsI_WriteHeadingListImportedQst (void)
Tbl_TH_Empty (1);
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_No_INDEX);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Tags);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Type);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"CENTER_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Shuffle);
- Tbl_TH_End ();
-
- Tbl_TH_Begin (1,1,"LEFT_TOP");
- fprintf (Gbl.F.Out,"%s",Txt_Question);
- Tbl_TH_End ();
+ Tbl_TH (1,1,"CENTER_TOP",Txt_No_INDEX);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Tags);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Type);
+ Tbl_TH (1,1,"CENTER_TOP",Txt_Shuffle);
+ Tbl_TH (1,1,"LEFT_TOP",Txt_Question);
Tbl_TR_End ();
}
diff --git a/swad_user.c b/swad_user.c
index 2522408d4..ba672e3fc 100644
--- a/swad_user.c
+++ b/swad_user.c
@@ -6466,21 +6466,14 @@ void Usr_WriteHeaderFieldsUsrDat (bool PutCheckBoxToSelectUsr)
/***** First column used for selection *****/
if (PutCheckBoxToSelectUsr)
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",NULL);
/***** Columns for user's data fields *****/
for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR;
NumCol++)
if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out,"%s ",Usr_UsrDatMainFieldNames[NumCol]);
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",Usr_UsrDatMainFieldNames[NumCol]);
Tbl_TR_End ();
}
@@ -6633,22 +6626,14 @@ static void Usr_ListMainDataTchs (Rol_Role_t Role,bool PutCheckBoxToSelectUsr)
/* First column used for selection */
if (PutCheckBoxToSelectUsr)
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out," ");
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",NULL);
/* Columns for the data */
for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR;
NumCol++)
if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out,"%s ",Usr_UsrDatMainFieldNames[NumCol]);
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",Usr_UsrDatMainFieldNames[NumCol]);
/* End row */
Tbl_TR_End ();
@@ -6751,11 +6736,7 @@ void Usr_ListAllDataGsts (void)
1);
NumCol < NumColumnsCommonCard;
NumCol++)
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out,"%s ",FieldNames[NumCol]);
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",FieldNames[NumCol]);
/* End row */
Tbl_TR_End ();
@@ -6909,11 +6890,7 @@ void Usr_ListAllDataStds (void)
1);
NumCol < NumColumnsCommonCard;
NumCol++)
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out,"%s ",FieldNames[NumCol]);
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",FieldNames[NumCol]);
/* 2. Columns for the groups */
if (Gbl.Scope.Current == Hie_CRS)
@@ -6925,7 +6902,7 @@ void Usr_ListAllDataStds (void)
if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) // If current course tiene groups of este type
{
Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out,"%s %s ",
+ fprintf (Gbl.F.Out,"%s %s",
Txt_Group,
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypName);
Tbl_TH_End ();
@@ -6937,12 +6914,7 @@ void Usr_ListAllDataStds (void)
for (NumField = 0;
NumField < Gbl.Crs.Records.LstFields.Num;
NumField++)
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE\"");
- fprintf (Gbl.F.Out,"%s ",
- Gbl.Crs.Records.LstFields.Lst[NumField].Name);
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",Gbl.Crs.Records.LstFields.Lst[NumField].Name);
/* 4. Visibility type for the record fields that depend on the course, in other row */
Tbl_TR_End ();
@@ -6960,7 +6932,7 @@ void Usr_ListAllDataStds (void)
NumField++)
{
Tbl_TH_Begin (1,1,"LEFT_MIDDLE VERY_LIGHT_BLUE");
- fprintf (Gbl.F.Out,"(%s) ",
+ fprintf (Gbl.F.Out,"(%s)",
Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.Crs.Records.LstFields.Lst[NumField].Visibility]);
Tbl_TH_End ();
}
@@ -7158,11 +7130,7 @@ static void Usr_ListRowsAllDataTchs (Rol_Role_t Role,
1);
NumCol < NumColumns;
NumCol++)
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out,"%s ",FieldNames[NumCol]);
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",FieldNames[NumCol]);
Tbl_TR_End ();
@@ -7413,11 +7381,7 @@ void Usr_ListDataAdms (void)
NumCol < Usr_NUM_MAIN_FIELDS_DATA_ADM;
NumCol++)
if (NumCol != 1 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
- {
- Tbl_TH_Begin (1,1,"LEFT_MIDDLE LIGHT_BLUE");
- fprintf (Gbl.F.Out,"%s ",FieldNames[NumCol]);
- Tbl_TH_End ();
- }
+ Tbl_TH (1,1,"LEFT_MIDDLE LIGHT_BLUE",FieldNames[NumCol]);
Tbl_TR_End ();