diff --git a/swad_changelog.h b/swad_changelog.h
index caa6b5fe3..6cc8af8d0 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.4 (2019-10-04)"
+#define Log_PLATFORM_VERSION "SWAD 19.31.5 (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.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)
Version 19.31.3: Oct 04, 2019 Code refactoring in HTML tables. (247039 lines)
Version 19.31.2: Oct 04, 2019 Fixed bug while removing the matches of a course, reported by Pedro A. García Sánchez.
diff --git a/swad_file_browser.c b/swad_file_browser.c
index 2aaf03087..49a39266c 100644
--- a/swad_file_browser.c
+++ b/swad_file_browser.c
@@ -8534,7 +8534,7 @@ static void Brw_PutFormToCreateALink (const char *FileNameToShow)
" "
- "",
+ ""
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Save_as,Txt_optional,
Brw_MAX_CHARS_FOLDER);
Tbl_EndRow ();
diff --git a/swad_info.c b/swad_info.c
index 65d9c2941..988fb70be 100644
--- a/swad_info.c
+++ b/swad_info.c
@@ -1172,8 +1172,8 @@ void Inf_FormsToSelSendInfo (void)
Txt_INFO_SRC_HELP[InfoSrc]);
if (Inf_FormsForEditionTypes[InfoSrc])
Inf_FormsForEditionTypes[InfoSrc] (InfoSrc);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table and box *****/
diff --git a/swad_institution.c b/swad_institution.c
index 9e63d6769..e32645537 100644
--- a/swad_institution.c
+++ b/swad_institution.c
@@ -179,10 +179,10 @@ void Ins_SeeInsWithPendingCtrs (void)
""
"
"
"%s"
- " "
- "",
+ "",
Txt_Institution,
Txt_Centres_ABBREVIATION);
+ Tbl_EndRow ();
/***** List the institutions *****/
for (NumIns = 0;
@@ -211,9 +211,9 @@ void Ins_SeeInsWithPendingCtrs (void)
/* Number of pending centres (row[1]) */
fprintf (Gbl.F.Out,""
"%s"
- " "
- "",
+ "",
BgColor,row[1]);
+ Tbl_EndRow ();
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
}
@@ -394,8 +394,8 @@ static void Ins_Configuration (bool PrintView)
else // I can not move institution to another country
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Institution full name *****/
Tbl_StartRow ();
@@ -423,8 +423,8 @@ static void Ins_Configuration (bool PrintView)
}
else // I can not edit institution full name
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ins.FullName);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Institution short name *****/
Tbl_StartRow ();
@@ -452,8 +452,8 @@ static void Ins_Configuration (bool PrintView)
}
else // I can not edit institution short name
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ins.ShrtName);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Institution WWW *****/
Tbl_StartRow ();
@@ -487,8 +487,8 @@ static void Ins_Configuration (bool PrintView)
"",
Gbl.Hierarchy.Ins.WWW,
Gbl.Hierarchy.Ins.WWW);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Shortcut to the institution *****/
Tbl_StartRow ();
@@ -499,8 +499,7 @@ static void Ins_Configuration (bool PrintView)
""
"%s/%s?ins=%ld"
" "
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Shortcut,
Cfg_URL_SWAD_CGI,
@@ -509,6 +508,7 @@ static void Ins_Configuration (bool PrintView)
Cfg_URL_SWAD_CGI,
Lan_STR_LANG_ID[Gbl.Prefs.Language],
Gbl.Hierarchy.Ins.InsCod);
+ Tbl_EndRow ();
if (PrintView)
{
@@ -521,8 +521,8 @@ static void Ins_Configuration (bool PrintView)
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_QR_code);
QR_LinkTo (250,"ins",Gbl.Hierarchy.Ins.InsCod);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
else
{
@@ -533,11 +533,11 @@ static void Ins_Configuration (bool PrintView)
""
""
"%u"
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Users_of_the_institution,
Usr_GetNumUsrsWhoClaimToBelongToIns (Gbl.Hierarchy.Ins.InsCod));
+ Tbl_EndRow ();
/***** Number of centres *****/
Tbl_StartRow ();
@@ -559,8 +559,8 @@ static void Ins_Configuration (bool PrintView)
Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod));
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Number of degrees *****/
Tbl_StartRow ();
@@ -569,11 +569,11 @@ static void Ins_Configuration (bool PrintView)
""
""
"%u"
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Degrees,
Deg_GetNumDegsInIns (Gbl.Hierarchy.Ins.InsCod));
+ Tbl_EndRow ();
/***** Number of courses *****/
Tbl_StartRow ();
@@ -582,11 +582,11 @@ static void Ins_Configuration (bool PrintView)
""
""
"%u"
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Courses,
Crs_GetNumCrssInIns (Gbl.Hierarchy.Ins.InsCod));
+ Tbl_EndRow ();
/***** Number of departments *****/
Tbl_StartRow ();
@@ -595,11 +595,11 @@ static void Ins_Configuration (bool PrintView)
""
""
"%u"
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Departments,
Dpt_GetNumDepartmentsInInstitution (Gbl.Hierarchy.Ins.InsCod));
+ Tbl_EndRow ();
/***** Number of users in courses of this institution *****/
Ins_ShowNumUsrsInCrssOfIns (Rol_TCH);
@@ -648,12 +648,12 @@ static void Ins_ShowNumUsrsInCrssOfIns (Rol_Role_t Role)
""
""
"%u"
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
(Role == Rol_UNK) ? Txt_Users_in_courses :
Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN],
Usr_GetNumUsrsInCrssOfIns (Role,Gbl.Hierarchy.Ins.InsCod));
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -846,8 +846,8 @@ static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns)
TxtClassNormal,BgColor);
if (StatusTxt != Ins_STATUS_ACTIVE) // If active ==> do not show anything
fprintf (Gbl.F.Out,"%s",Txt_INSTITUTION_STATUS[StatusTxt]);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
}
@@ -910,15 +910,15 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable)
"%s+ %s"
""
""
- " "
- "",
+ "",
Txt_Centres_ABBREVIATION,
Txt_Degrees_ABBREVIATION,
Txt_Courses_ABBREVIATION,
Txt_Departments_ABBREVIATION,
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
- }
+ Tbl_EndRow ();
+ }
/*****************************************************************************/
/******* Get parameter with the type or order in list of institutions ********/
@@ -1626,8 +1626,8 @@ static void Ins_ListInstitutionsForEdition (void)
}
else if (StatusTxt != Ins_STATUS_ACTIVE) // If active ==> do not show anything
fprintf (Gbl.F.Out,"%s",Txt_INSTITUTION_STATUS[StatusTxt]);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table *****/
@@ -2300,8 +2300,8 @@ static void Ins_PutFormToCreateInstitution (void)
/***** Institution status *****/
fprintf (Gbl.F.Out,""
- " "
- "");
+ "");
+ Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_institution);
@@ -2353,8 +2353,7 @@ static void Ins_PutHeadInstitutionsForEdition (void)
"%s"
""
""
- " "
- "",
+ "",
Txt_Code,
Txt_Short_name_of_the_institution,
Txt_Full_name_of_the_institution,
@@ -2364,6 +2363,7 @@ static void Ins_PutHeadInstitutionsForEdition (void)
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],
Txt_Requester);
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_layout.c b/swad_layout.c
index 8dbba04b6..7306b8182 100644
--- a/swad_layout.c
+++ b/swad_layout.c
@@ -1714,11 +1714,11 @@ void Lay_AdvertisementMobile (void)
" alt=\"SWADroid\" title=\"%s\""
" style=\"width:250px; height:375px;\" />"
""
- ""
- "",
+ "",
Txt_Stay_connected_with_SWADroid,
Cfg_URL_ICON_PUBLIC,
Txt_Stay_connected_with_SWADroid);
+ Tbl_EndRow ();
/***** End table and box *****/
Box_EndBoxTable ();
diff --git a/swad_link.c b/swad_link.c
index 17b1135a9..df6617c75 100644
--- a/swad_link.c
+++ b/swad_link.c
@@ -474,8 +474,8 @@ static void Lnk_ListLinksForEdition (void)
Cns_MAX_CHARS_WWW,Lnk->WWW,
Gbl.Form.Id);
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table *****/
@@ -774,9 +774,9 @@ static void Lnk_PutFormToCreateLink (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_WWW\""
" required=\"required\" />"
- ""
- "",
+ "",
Cns_MAX_CHARS_WWW,Lnk_EditingLnk->WWW);
+ Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_link);
@@ -809,12 +809,12 @@ static void Lnk_PutHeadLinks (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Code,
Txt_Short_name,
Txt_Full_name,
Txt_WWW);
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_mail.c b/swad_mail.c
index 6e88c6c0a..f3157a1a2 100644
--- a/swad_mail.c
+++ b/swad_mail.c
@@ -163,11 +163,11 @@ void Mai_SeeMailDomains (void)
""
""
"%u"
- " "
- "",
+ "",
Gbl.Mails.Lst[NumMai].Domain,
Gbl.Mails.Lst[NumMai].Info,
Gbl.Mails.Lst[NumMai].NumUsrs);
+ Tbl_EndRow ();
}
/***** End table and box *****/
@@ -526,9 +526,9 @@ static void Mai_ListMailDomainsForEdition (void)
/* Number of users */
fprintf (Gbl.F.Out,""
"%u"
- " "
- "",
+ "",
Mai->NumUsrs);
+ Tbl_EndRow ();
}
/***** End table and box *****/
@@ -757,10 +757,10 @@ static void Mai_PutFormToCreateMailDomain (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN],
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO ]);
+ Tbl_EndRow ();
/***** Mail domain *****/
Tbl_StartRow ();
@@ -777,9 +777,9 @@ static void Mai_PutFormToCreateMailDomain (void)
" size=\"40\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
""
- " "
- "",
+ " ",
Mai_MAX_CHARS_MAIL_INFO,Mai_EditingMai->Info);
+ Tbl_EndRow ();
/***** End table, send button and end box *****/
@@ -811,12 +811,12 @@ static void Mai_PutHeadMailDomains (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Code,
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN],
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO ],
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_USERS ]);
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -1374,8 +1374,8 @@ static void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe,
fprintf (Gbl.F.Out,"");
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Form to enter new email *****/
@@ -1415,8 +1415,8 @@ static void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe,
Btn_PutCreateButtonInline (NumEmails ? Txt_Change_email : // User already has an email address
Txt_Save_changes); // User has no email address yet
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
diff --git a/swad_match.c b/swad_match.c
index b504a6457..5e0059d7f 100644
--- a/swad_match.c
+++ b/swad_match.c
@@ -1202,11 +1202,11 @@ static void Mch_PutFormNewMatch (struct Game *Game)
" "
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Title,
Gam_MAX_CHARS_TITLE,Game->Title);
+ Tbl_EndRow ();
/***** Groups *****/
Mch_ShowLstGrpsToCreateMatch ();
@@ -1269,9 +1269,9 @@ static void Mch_ShowLstGrpsToCreateMatch (void)
" onclick=\"uncheckChildren(this,'GrpCods')\" />"
"%s %s"
""
- ""
- "",
+ "",
Txt_The_whole_course,Gbl.Hierarchy.Crs.ShrtName);
+ Tbl_EndRow ();
/***** List the groups for each group type *****/
for (NumGrpTyp = 0;
@@ -1284,8 +1284,8 @@ static void Mch_ShowLstGrpsToCreateMatch (void)
/***** End table and box *****/
Box_EndBoxTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Free list of groups types and groups in this course *****/
diff --git a/swad_match_result.c b/swad_match_result.c
index 1a15357ab..ec750169b 100644
--- a/swad_match_result.c
+++ b/swad_match_result.c
@@ -217,8 +217,8 @@ void McR_SelUsrsToViewUsrsMchResults (void)
Usr_ListUsersToSelect (Rol_NET);
Usr_ListUsersToSelect (Rol_STD);
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Starting and ending dates in the search *****/
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false);
@@ -353,8 +353,7 @@ static void McR_ShowHeaderMchResults (Usr_MeOrOther_t MeOrOther)
""
"%s %s %u"
" "
- " "
- "",
+ " ",
Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
Usr_SEX_UNKNOWN],
Txt_START_END_TIME[Dat_START_TIME],
@@ -365,6 +364,7 @@ static void McR_ShowHeaderMchResults (Usr_MeOrOther_t MeOrOther)
Txt_Total_BR_score,
Txt_Average_BR_score_BR_per_question_BR_from_0_to_1,
Txt_Score,Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -803,8 +803,8 @@ void McR_ShowOneMchResult (void)
Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL :
NULL,
"PHOTO45x60",Pho_ZOOM,false);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* Start/end time (for user in this match) */
for (StartEndTime = (Dat_StartEndTime_t) 0;
@@ -820,13 +820,13 @@ void McR_ShowOneMchResult (void)
"writeLocalDateHMSFromUTC('match_%u',%ld,"
"%u,', ','%s',true,true,0x7);"
""
- ""
- "",
+ "",
Txt_START_END_TIME[StartEndTime],
(unsigned) StartEndTime,
(unsigned) StartEndTime,
TimeUTC[StartEndTime],
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
+ Tbl_EndRow ();
}
/* Number of questions */
@@ -836,10 +836,10 @@ void McR_ShowOneMchResult (void)
""
""
"%u (%u %s)"
- " "
- "",
+ "",
Txt_Questions,
NumQsts,NumQstsNotBlank,Txt_non_blank_QUESTIONS);
+ Tbl_EndRow ();
/* Score */
Tbl_StartRow ();
@@ -855,9 +855,9 @@ void McR_ShowOneMchResult (void)
0.0);
else
fprintf (Gbl.F.Out,"? (?"); // No feedback
- fprintf (Gbl.F.Out," %s %u)"
- "",
+ fprintf (Gbl.F.Out," %s %u)",
Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
+ Tbl_EndRow ();
/* Tags present in this result */
Tbl_StartRow ();
@@ -867,8 +867,8 @@ void McR_ShowOneMchResult (void)
"",
Txt_Tags);
Gam_ShowTstTagsPresentInAGame (Match.GamCod);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write answers and solutions *****/
Tst_ShowTestResult (UsrDat,NumQsts,TimeUTC[Dat_START_TIME]);
diff --git a/swad_message.c b/swad_message.c
index 23c0cb224..ecb7319d7 100644
--- a/swad_message.c
+++ b/swad_message.c
@@ -313,8 +313,8 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
Tbl_EndTable ();
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Subject and content sections *****/
Msg_WriteFormSubjectAndContentMsgToUsrs (Content);
@@ -485,10 +485,10 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
fprintf (Gbl.F.Out," colspan=\"%u\"",Colspan);
fprintf (Gbl.F.Out," class=\"LEFT_MIDDLE LIGHT_BLUE\">"
"%s: "
- ""
- "",
+ "",
StdsAndTchsWritten ? Txt_Other_recipients :
Txt_Recipients);
+ Tbl_EndRow ();
/***** Textarea with users' @nicknames, emails or IDs *****/
Tbl_StartRow ();
@@ -508,8 +508,8 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
if (Nck_GetNicknameFromUsrCod (Gbl.Usrs.Other.UsrDat.UsrCod,Nickname))
fprintf (Gbl.F.Out,"@%s",Nickname);
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -577,9 +577,9 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (char Content[Cns_MAX_BYTES_
fprintf (Gbl.F.Out,"Re: ");
fprintf (Gbl.F.Out,"%s"
""
- ""
- "",
+ "",
Gbl.Msg.Subject);
+ Tbl_EndRow ();
/***** Message content *****/
Tbl_StartRow ();
@@ -609,9 +609,9 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (char Content[Cns_MAX_BYTES_
{
/* End message subject */
fprintf (Gbl.F.Out,"%s"
- ""
- "",
+ "",
Gbl.Msg.Subject);
+ Tbl_EndRow ();
/***** Message content *****/
Tbl_StartRow ();
@@ -633,8 +633,8 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (char Content[Cns_MAX_BYTES_
fprintf (Gbl.F.Out,"\n%s",Content);
}
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -2664,11 +2664,11 @@ void Msg_ShowFormToFilterMsgs (void)
" "
""
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_MSG_Content,
Msg_MAX_CHARS_FILTER_CONTENT,Gbl.Msg.FilterContent);
+ Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@@ -3005,8 +3005,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
Tbl_StartRow ();
fprintf (Gbl.F.Out,"");
FromThisCrs = Msg_WriteCrsOrgMsg (CrsCod);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Form to reply message *****/
Tbl_StartRow ();
@@ -3015,8 +3015,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
Gbl.Usrs.Me.Role.Logged >= Rol_USR)
// Guests (users without courses) can read messages but not reply them
Msg_WriteFormToReply (MsgCod,CrsCod,FromThisCrs,Replied,&UsrDat);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
Tbl_EndTable ();
fprintf (Gbl.F.Out,"");
@@ -3028,8 +3028,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
"",
Txt_MSG_From);
Msg_WriteMsgFrom (&UsrDat,Deleted);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write "To:" *****/
Tbl_StartRow ();
@@ -3039,8 +3039,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
"",
Txt_MSG_To);
Msg_WriteMsgTo (MsgCod);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write "Content:" *****/
Tbl_StartRow ();
@@ -3060,8 +3060,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
if (Content[0])
Msg_WriteMsgContent (Content,Cns_MAX_BYTES_LONG_TEXT,true,false);
Med_ShowMedia (&Media,"MSG_IMG_CONTAINER","MSG_IMG");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Free image *****/
Med_MediaDestructor (&Media);
@@ -3238,8 +3238,8 @@ void Msg_WriteMsgAuthor (struct UsrData *UsrDat,bool Enabled,const char *BgColor
}
/***** End second column *****/
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@@ -3391,8 +3391,8 @@ static void Msg_WriteMsgFrom (struct UsrData *UsrDat,bool Deleted)
else
fprintf (Gbl.F.Out,"[%s]",
Txt_ROLES_SINGUL_abc[Rol_UNK][Usr_SEX_UNKNOWN]); // User not found, likely an old user who has been removed
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
Tbl_EndTable ();
}
@@ -3541,8 +3541,8 @@ static void Msg_WriteMsgTo (long MsgCod)
fprintf (Gbl.F.Out,"%s",UsrDat.FullName);
else
fprintf (Gbl.F.Out,"[%s]",Txt_unknown_recipient); // User not found, likely a user who has been removed
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** If any recipients are unknown *****/
@@ -3552,12 +3552,12 @@ static void Msg_WriteMsgTo (long MsgCod)
Tbl_StartRow ();
fprintf (Gbl.F.Out,""
"[%u %s]"
- " "
- "",
+ "",
NumRecipientsUnknown,
(NumRecipientsUnknown == 1) ?
Txt_unknown_recipient :
Txt_unknown_recipients);
+ Tbl_EndRow ();
}
/***** If any known recipient is not listed *****/
@@ -3575,8 +3575,8 @@ static void Msg_WriteMsgTo (long MsgCod)
NumRecipientsKnown - NumRecipientsToShow);
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Free memory used for user's data *****/
@@ -3871,9 +3871,9 @@ void Msg_ListBannedUsrs (void)
/* Write user's full name */
fprintf (Gbl.F.Out,""
"%s"
- " "
- "",
+ "",
UsrDat.FullName);
+ Tbl_EndRow ();
}
}
diff --git a/swad_network.c b/swad_network.c
index f6a805153..059c79671 100644
--- a/swad_network.c
+++ b/swad_network.c
@@ -324,7 +324,6 @@ void Net_ShowFormMyWebsAndSocialNets (void)
/***** Row for this web / social network *****/
Tbl_StartRow ();
-
fprintf (Gbl.F.Out,""
""
" "
- " "
-
- "",
+ "",
(unsigned) NumURL,The_ClassFormInBox[Gbl.Prefs.Theme],
Cfg_URL_ICON_PUBLIC,Net_WebsAndSocialNetworksIcons[NumURL],
Net_WebsAndSocialNetworksTitle[NumURL],
@@ -349,6 +346,7 @@ void Net_ShowFormMyWebsAndSocialNets (void)
Net_WebsAndSocialNetworksTitle[NumURL],
(unsigned) NumURL,(unsigned) NumURL,
Cns_MAX_CHARS_WWW,URL);
+ Tbl_EndRow ();
}
/***** End table *****/
@@ -564,11 +562,11 @@ void Net_ShowWebAndSocialNetworksStats (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Web_social_network,
Txt_No_of_users,
Txt_PERCENT_of_users);
+ Tbl_EndRow ();
/***** For each web / social network... *****/
for (NumRow = 0;
@@ -604,8 +602,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
""
""
"%.2f%%"
- " "
- "",
+ "",
Cfg_URL_ICON_PUBLIC,Net_WebsAndSocialNetworksIcons[Web],
Net_WebsAndSocialNetworksTitle[Web],
Net_WebsAndSocialNetworksTitle[Web],
@@ -613,6 +610,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
NumUsrs,
NumUsrsTotal ? 100.0 * (float) NumUsrs / (float) NumUsrsTotal :
0.0);
+ Tbl_EndRow ();
}
}
diff --git a/swad_nickname.c b/swad_nickname.c
index 9619f6e1b..ca4dce2ea 100644
--- a/swad_nickname.c
+++ b/swad_nickname.c
@@ -362,8 +362,8 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its
Frm_EndForm ();
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Form to enter new nickname *****/
@@ -405,8 +405,8 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its
Btn_PutCreateButtonInline (NumNicks ? Txt_Change_nickname : // I already have a nickname
Txt_Save_changes); // I have no nickname yet);
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** End table and box *****/
Box_EndBoxTable ();
diff --git a/swad_notification.c b/swad_notification.c
index 6a7ffa7cb..be787524d 100644
--- a/swad_notification.c
+++ b/swad_notification.c
@@ -409,13 +409,13 @@ void Ntf_ShowMyNotifications (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Event,
Txt_MSG_From,
Txt_Location,
Txt_Date,
Txt_Email); // Date and time, in YYYY-MM-DD HH:MM:SS format
+ Tbl_EndRow ();
/***** List notifications one by one *****/
for (NumNotif = 0;
@@ -591,9 +591,9 @@ void Ntf_ShowMyNotifications (void)
/* Write status (sent by email / pending to be sent by email) */
fprintf (Gbl.F.Out,""
"%s"
- " "
- "",
+ "",
ClassBackground,Txt_NOTIFICATION_STATUS[StatusTxt]);
+ Tbl_EndRow ();
/***** Write content of the event *****/
if (PutLink)
@@ -607,9 +607,9 @@ void Ntf_ShowMyNotifications (void)
""
"%s"
- " "
- "",
+ "",
SummaryStr);
+ Tbl_EndRow ();
if (ContentStr != NULL)
{
free ((void *) ContentStr);
@@ -1946,10 +1946,10 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Create_BR_notification,
Txt_Notify_me_BR_by_email);
+ Tbl_EndRow ();
/***** Checkbox to activate internal notifications and email notifications
about events *****/
@@ -1976,8 +1976,8 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
if ((Gbl.Usrs.Me.UsrDat.NtfEvents.SendEmail & (1 << NotifyEvent)))
fprintf (Gbl.F.Out," checked=\"checked\"");
fprintf (Gbl.F.Out," />"
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
Tbl_EndTable ();
diff --git a/swad_password.c b/swad_password.c
index 02d18ff48..6280223f9 100644
--- a/swad_password.c
+++ b/swad_password.c
@@ -694,11 +694,11 @@ void Pwd_ShowFormChgMyPwd (void)
" id=\"UsrPwd\" name=\"UsrPwd\""
" size=\"18\" maxlength=\"%u\""
" autocomplete=\"off\" required=\"required\" />"
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Current_password,
Pwd_MAX_CHARS_PLAIN_PASSWORD);
+ Tbl_EndRow ();
}
/***** Help message *****/
@@ -706,8 +706,8 @@ void Pwd_ShowFormChgMyPwd (void)
fprintf (Gbl.F.Out,"");
Ale_ShowAlert (Ale_INFO,Txt_Your_password_must_be_at_least_X_characters_and_can_not_contain_spaces_,
Pwd_MIN_CHARS_PLAIN_PASSWORD);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** New password *****/
Pwd_PutFormToGetNewPasswordTwice ();
@@ -753,8 +753,8 @@ void Pwd_PutFormToGetNewPasswordOnce (void)
/***** End form element ****/
fprintf (Gbl.F.Out,"\""
" required=\"required\" />"
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -788,8 +788,8 @@ void Pwd_PutFormToGetNewPasswordTwice (void)
/* End form element */
fprintf (Gbl.F.Out,"\" required=\"required\" />"
- ""
- "");
+ "");
+ Tbl_EndRow ();
/***** 2nd password *****/
/* Start form element */
@@ -811,8 +811,8 @@ void Pwd_PutFormToGetNewPasswordTwice (void)
/* End form element */
fprintf (Gbl.F.Out,"\" required=\"required\" />"
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_photo.c b/swad_photo.c
index 1f378ae31..bdf773d81 100644
--- a/swad_photo.c
+++ b/swad_photo.c
@@ -1810,8 +1810,8 @@ static void Pho_PutSelectorForTypeOfAvg (void)
}
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -1871,8 +1871,8 @@ static void Pho_PutSelectorForHowComputePhotoSize (void)
}
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -1932,8 +1932,8 @@ static void Pho_PutSelectorForHowOrderDegrees (void)
}
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_place.c b/swad_place.c
index a1d6c7e42..29ea46bc8 100644
--- a/swad_place.c
+++ b/swad_place.c
@@ -146,10 +146,10 @@ void Plc_SeePlaces (void)
""
""
"%u"
- " "
- "",
+ "",
Gbl.Plcs.Lst[NumPlc].FullName,
Gbl.Plcs.Lst[NumPlc].NumCtrs);
+ Tbl_EndRow ();
NumCtrsWithPlc += Gbl.Plcs.Lst[NumPlc].NumCtrs;
}
@@ -157,8 +157,8 @@ void Plc_SeePlaces (void)
Tbl_StartRow ();
fprintf (Gbl.F.Out,""
" "
- " "
- "");
+ "");
+ Tbl_EndRow ();
/***** Write centres (of the current institution) with other place *****/
NumCtrsInOtherPlcs = Ctr_GetNumCtrsInPlc (0);
@@ -168,9 +168,9 @@ void Plc_SeePlaces (void)
""
""
"%u"
- " "
- "",
+ "",
Txt_Other_places,NumCtrsInOtherPlcs);
+ Tbl_EndRow ();
NumCtrsWithPlc += NumCtrsInOtherPlcs;
/***** Write centres (of the current institution) with no place *****/
@@ -180,11 +180,11 @@ void Plc_SeePlaces (void)
""
""
"%u"
- " "
- "",
+ "",
Txt_Place_unspecified,
Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod) -
NumCtrsWithPlc);
+ Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@@ -569,9 +569,9 @@ static void Plc_ListPlacesForEdition (void)
/* Number of centres */
fprintf (Gbl.F.Out,""
"%u"
- " "
- "",
+ "",
Plc->NumCtrs);
+ Tbl_EndRow ();
}
/***** End table *****/
@@ -832,8 +832,8 @@ static void Plc_PutFormToCreatePlace (void)
/***** Number of centres *****/
fprintf (Gbl.F.Out,""
"0"
- " "
- "");
+ "");
+ Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_place);
@@ -866,12 +866,12 @@ static void Plc_PutHeadPlaces (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Code,
Txt_Short_name,
Txt_Full_name,
Txt_Centres);
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_plugin.c b/swad_plugin.c
index fa23cc48d..226e0db3c 100644
--- a/swad_plugin.c
+++ b/swad_plugin.c
@@ -119,9 +119,9 @@ void Plg_ListPlugins (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Plugin);
+ Tbl_EndRow ();
/***** Write all the plugins *****/
for (NumPlg = 0;
@@ -148,13 +148,13 @@ void Plg_ListPlugins (void)
""
"%s"
" "
- ""
- "",
+ "",
URL,Plg->Name,
Cfg_URL_ICON_PLUGINS_PUBLIC,Gbl.Plugins.Lst[NumPlg].Logo,
Plg->Name,Plg->Name,
URL,Plg->Name,
Plg->Name);
+ Tbl_EndRow ();
}
/***** End table and box *****/
@@ -484,8 +484,8 @@ static void Plg_ListPluginsForEdition (void)
Cns_MAX_CHARS_IP,Plg->IP,
Gbl.Form.Id);
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table *****/
@@ -907,14 +907,14 @@ static void Plg_PutFormToCreatePlugin (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Name,
Txt_Description,
Txt_Logo,
Txt_Application_key,
Txt_URL,
Txt_IP);
+ Tbl_EndRow ();
/***** Plugin name *****/
fprintf (Gbl.F.Out,""
@@ -961,9 +961,9 @@ static void Plg_PutFormToCreatePlugin (void)
" "
- " "
- "",
+ "",
Cns_MAX_CHARS_IP,Plg_EditingPlg->IP);
+ Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_plugin);
@@ -1009,8 +1009,7 @@ static void Plg_PutHeadPlugins (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Code,
Txt_Name,
Txt_Description,
@@ -1018,6 +1017,7 @@ static void Plg_PutHeadPlugins (void)
Txt_Application_key,
Txt_URL,
Txt_IP);
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_privacy.c b/swad_privacy.c
index 402110cd9..32c0d7389 100644
--- a/swad_privacy.c
+++ b/swad_privacy.c
@@ -196,8 +196,8 @@ static void Pri_PutFormVisibility (const char *TxtLabel,
fprintf (Gbl.F.Out,"");
if (Action != ActUnk)
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_profile.c b/swad_profile.c
index 2f725633d..41d5c6182 100644
--- a/swad_profile.c
+++ b/swad_profile.c
@@ -1567,10 +1567,10 @@ void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs)
fprintf (Gbl.F.Out,""
"%ld"
- " "
- "",
+ "",
Gbl.RowEvenOdd,
Figure);
+ Tbl_EndRow ();
}
Tbl_EndTable ();
@@ -1735,8 +1735,8 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" style=\"height:50px;\">",
Gbl.RowEvenOdd);
Str_WriteFloatNum (Gbl.F.Out,NumClicksPerDay);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
Tbl_EndTable ();
diff --git a/swad_project.c b/swad_project.c
index 3f83ac8a3..d2a958e04 100644
--- a/swad_project.c
+++ b/swad_project.c
@@ -1112,8 +1112,8 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
Txt_No);
Ico_PutIconOff (PreassignedNonpreassigImage[Prj->Preassigned],
Txt_PROJECT_PREASSIGNED_NONPREASSIGNED_SINGUL[Prj->Preassigned]);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Number of students *****/
Tbl_StartRow ();
@@ -1145,11 +1145,11 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
}
fprintf (Gbl.F.Out," %s\">"
"%u"
- ""
- "",
+ "",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT",
Prj->NumStds);
+ Tbl_EndRow ();
/***** Project members *****/
Prj_ShowOneProjectMembers (Prj,ProjectView);
@@ -1163,31 +1163,31 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
UniqueId,
Gbl.RowEvenOdd);
Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
fprintf (Gbl.F.Out,""
"",
UniqueId,
Gbl.RowEvenOdd);
Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less);
- fprintf (Gbl.F.Out," "
- " ");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
break;
case Prj_FILE_BROWSER_PROJECT:
fprintf (Gbl.F.Out,""
"",
UniqueId);
Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more);
- fprintf (Gbl.F.Out," "
- " ");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
fprintf (Gbl.F.Out,""
"",
UniqueId);
Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less);
- fprintf (Gbl.F.Out," "
- " ");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
break;
default:
break;
@@ -1223,11 +1223,11 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out," %s\">"
"%s"
- ""
- "",
+ "",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT",
Txt_PROJECT_STATUS[Prj->Proposal]);
+ Tbl_EndRow ();
/***** Write rows of data of this project *****/
/* Description of the project */
@@ -1417,8 +1417,8 @@ static void Prj_ShowOneProjectDepartment (const struct Project *Prj,
fprintf (Gbl.F.Out,"%s",Dpt.FullName);
if (PutLink)
fprintf (Gbl.F.Out,"");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
static void Prj_ShowTableAllProjectsDepartment (const struct Project *Prj)
@@ -1493,11 +1493,11 @@ static void Prj_ShowOneProjectTxtField (struct Project *Prj,
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out," %s\">"
"%s"
- ""
- "",
+ "",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT",
TxtField);
+ Tbl_EndRow ();
}
static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj,
@@ -1568,8 +1568,8 @@ static void Prj_ShowOneProjectURL (const struct Project *Prj,
fprintf (Gbl.F.Out,"%s",Prj->URL);
if (PutLink)
fprintf (Gbl.F.Out,"");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
static void Prj_ShowTableAllProjectsURL (const struct Project *Prj)
@@ -1763,8 +1763,8 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
Gbl.Title);
fprintf (Gbl.F.Out,""
" " // Column for photo
- " " // Column for name
- "");
+ " "); // Column for name
+ Tbl_EndRow ();
break;
default:
break;
@@ -1774,8 +1774,8 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
Tbl_EndTable ();
/***** End row with label and listing of users *****/
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Free structure that stores the query result *****/
@@ -3343,10 +3343,10 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
" "
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Title,
Prj_MAX_CHARS_PROJECT_TITLE,Prj->Title);
+ Tbl_EndRow ();
/* Department */
Tbl_StartRow ();
@@ -3362,8 +3362,8 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
0, // First option
Txt_Another_department, // Text when no department selected
false); // Don't submit on change
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* Preassigned? */
Tbl_StartRow ();
@@ -3386,8 +3386,8 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out,">%s",Txt_No);
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/* Number of students */
Tbl_StartRow ();
@@ -3397,11 +3397,11 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
""
" "
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Number_of_students,
Prj->NumStds);
+ Tbl_EndRow ();
/* Proposal */
Tbl_StartRow ();
@@ -3423,8 +3423,8 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out,">%s",Txt_PROJECT_STATUS[Proposal]);
}
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/* Description of the project */
Prj_EditOneProjectTxtArea ("Description",Txt_Description,
@@ -3446,11 +3446,11 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
""
" "
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_URL,
Cns_MAX_CHARS_WWW,Prj->URL);
+ Tbl_EndRow ();
/* End table, send button and end box */
if (ItsANewProject)
@@ -3483,12 +3483,12 @@ static void Prj_EditOneProjectTxtArea (const char *Id,
""
- ""
- "",
+ "",
Id,The_ClassFormInBox[Gbl.Prefs.Theme],Label,
Id,Id,
NumRows,
TxtField);
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_record.c b/swad_record.c
index 039a06907..9ff477a35 100644
--- a/swad_record.c
+++ b/swad_record.c
@@ -349,8 +349,8 @@ void Rec_ListFieldsRecordsForEdition (void)
}
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
}
@@ -413,8 +413,8 @@ void Rec_ShowFormCreateRecordField (void)
}
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_record_field);
@@ -443,11 +443,11 @@ static void Rec_WriteHeadingRecordFields (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_Field_BR_name,
Txt_No_of_BR_lines,
Txt_Visible_by_BR_the_student);
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -1758,13 +1758,13 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
fprintf (Gbl.F.Out,""
""
"%s %s %s"
- " "
- "",
+ "",
Gbl.Hierarchy.Deg.FullName,Gbl.Hierarchy.Crs.FullName,
UsrDat->FullName);
+ Tbl_EndRow ();
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Fields of the record that depends on the course *****/
for (NumField = 0, Gbl.RowEvenOdd = 0;
@@ -1844,8 +1844,8 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
else
fprintf (Gbl.F.Out,"-");
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* Free structure that stores the query result */
DB_FreeMySQLResult (&mysql_res);
@@ -2442,8 +2442,8 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
break;
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table and box *****/
@@ -2853,8 +2853,8 @@ static void Rec_ShowEmail (struct UsrData *UsrDat,const char *ClassForm)
fprintf (Gbl.F.Out,"********");
fprintf (Gbl.F.Out,"");
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -2873,8 +2873,8 @@ static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *ClassForm,
"",
ClassForm,Txt_ID);
ID_WriteUsrIDs (UsrDat,Anchor);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3097,8 +3097,8 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
default:
break;
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
else if (SexForm)
{
@@ -3122,8 +3122,8 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
"",
Usr_StringsSexIcons[Sex],Txt_SEX_SINGULAR_Abc[Sex]);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
else // RoleForm == false, SexForm == false
{
@@ -3134,11 +3134,11 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
""
""
"%s"
- " "
- "",
+ "",
ClassForm,
Txt_Role,
Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs.Role][UsrDat->Sex]);
+ Tbl_EndRow ();
}
}
@@ -3178,8 +3178,8 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,
}
else if (UsrDat->Surname1[0])
fprintf (Gbl.F.Out,"%s ",UsrDat->Surname1);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
@@ -3210,8 +3210,8 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,
UsrDat->Surname2);
else if (UsrDat->Surname2[0])
fprintf (Gbl.F.Out,"%s ",UsrDat->Surname2);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3251,8 +3251,8 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,
}
else if (UsrDat->FirstName[0])
fprintf (Gbl.F.Out,"%s ",UsrDat->FirstName);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3306,8 +3306,8 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
}
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3340,8 +3340,8 @@ static void Rec_ShowOriginPlace (struct UsrData *UsrDat,
else if (UsrDat->OriginPlace[0])
fprintf (Gbl.F.Out,"%s",UsrDat->OriginPlace);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3371,8 +3371,8 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,
else if (UsrDat->StrBirthday[0])
fprintf (Gbl.F.Out,"%s",UsrDat->StrBirthday);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3405,8 +3405,8 @@ static void Rec_ShowLocalAddress (struct UsrData *UsrDat,
else if (UsrDat->LocalAddress[0])
fprintf (Gbl.F.Out,"%s",UsrDat->LocalAddress);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3441,8 +3441,8 @@ static void Rec_ShowLocalPhone (struct UsrData *UsrDat,
UsrDat->LocalPhone,
UsrDat->LocalPhone);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3475,8 +3475,8 @@ static void Rec_ShowFamilyAddress (struct UsrData *UsrDat,
else if (UsrDat->FamilyAddress[0])
fprintf (Gbl.F.Out,"%s",UsrDat->FamilyAddress);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3511,8 +3511,8 @@ static void Rec_ShowFamilyPhone (struct UsrData *UsrDat,
UsrDat->FamilyPhone,
UsrDat->FamilyPhone);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3546,8 +3546,8 @@ static void Rec_ShowComments (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%s",UsrDat->Comments);
}
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3600,8 +3600,8 @@ static void Rec_ShowInstitution (struct Instit *Ins,
if (Ins->WWW[0])
fprintf (Gbl.F.Out,"");
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3635,8 +3635,8 @@ static void Rec_ShowCentre (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"");
}
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3670,8 +3670,8 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"");
}
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3691,8 +3691,8 @@ static void Rec_ShowOffice (struct UsrData *UsrDat,
ClassForm,Txt_Office);
if (ShowData)
fprintf (Gbl.F.Out,"%s",UsrDat->Tch.Office);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3714,8 +3714,8 @@ static void Rec_ShowOfficePhone (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%s ",
UsrDat->Tch.OfficePhone,
UsrDat->Tch.OfficePhone);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -4026,8 +4026,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
}
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Institution *****/
Tbl_StartRow ();
@@ -4070,8 +4070,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
}
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
if (IAmATeacher)
{
@@ -4116,8 +4116,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
}
fprintf (Gbl.F.Out,"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Department *****/
Tbl_StartRow ();
@@ -4134,8 +4134,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
"", // Text when no department selected
true); // Submit on change
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Office *****/
Tbl_StartRow ();
@@ -4155,8 +4155,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
Gbl.Usrs.Me.UsrDat.Tch.Office,
Gbl.Form.Id);
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Phone *****/
Tbl_StartRow ();
@@ -4177,8 +4177,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
Gbl.Usrs.Me.UsrDat.Tch.OfficePhone,
Gbl.Form.Id);
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table and box *****/
diff --git a/swad_statistic.c b/swad_statistic.c
index f09e43723..029079617 100644
--- a/swad_statistic.c
+++ b/swad_statistic.c
@@ -386,8 +386,8 @@ void Sta_AskShowCrsHits (void)
Usr_ListUsersToSelect (Rol_NET);
Usr_ListUsersToSelect (Rol_STD);
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Initial and final dates of the search *****/
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (Gbl.Action.Act == ActReqAccCrs);
@@ -464,8 +464,8 @@ void Sta_AskShowCrsHits (void)
}
fprintf (Gbl.F.Out,")"
""
- ""
- "");
+ "");
+ Tbl_EndRow ();
Tbl_EndTable ();
/***** Hidden param used to get client time zone *****/
@@ -554,8 +554,8 @@ void Sta_AskShowGblHits (void)
fprintf (Gbl.F.Out,">%s",Txt_ROLE_STATS[RoleStat]);
}
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/***** Selection of action *****/
Sta_WriteSelectorAction ();
@@ -576,8 +576,8 @@ void Sta_AskShowGblHits (void)
Gbl.Scope.Default = Hie_SYS;
Sco_GetScope ("ScopeSta");
Sco_PutSelectorScope ("ScopeSta",false);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Count type for the statistic *****/
Tbl_StartRow ();
@@ -609,8 +609,8 @@ void Sta_AskShowGblHits (void)
}
fprintf (Gbl.F.Out,""
""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@@ -723,8 +723,8 @@ static void Sta_WriteSelectorAction (void)
}
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -1645,8 +1645,8 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
Tbl_EndRow ();
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write heading *****/
Tbl_StartRow ();
@@ -1670,8 +1670,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_User_ID,
Txt_Name,
@@ -1679,6 +1678,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
Txt_Date,
Txt_Action,
Txt_LOG_More_info);
+ Tbl_EndRow ();
/***** Write rows back *****/
for (NumRow = LastRow, UniqueId = 1, Gbl.RowEvenOdd = 0;
@@ -1756,8 +1756,8 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
fprintf (Gbl.F.Out,"",
Gbl.RowEvenOdd);
Sta_WriteLogComments (LogCod);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Free memory used by the data of the user *****/
@@ -1830,14 +1830,14 @@ static void Sta_ShowNumHitsPerUsr (unsigned long NumRows,MYSQL_RES *mysql_res)
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Photo,
Txt_ID,
Txt_Name,
Txt_Role,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Write rows *****/
for (NumRow = 1, Hits.Max = 0.0, Gbl.RowEvenOdd = 0;
@@ -1910,8 +1910,8 @@ static void Sta_ShowNumHitsPerUsr (unsigned long NumRows,MYSQL_RES *mysql_res)
'r', // Non-editing teacher or teacher
BarWidth);
Str_WriteFloatNum (Gbl.F.Out,Hits.Num);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out," ");
+ Tbl_EndRow ();
}
/***** Free memory used by the data of the user *****/
@@ -1952,11 +1952,11 @@ static void Sta_ShowNumHitsPerDay (unsigned long NumRows,MYSQL_RES *mysql_res)
""
""
"%s"
- " "
- "",
+ "",
Txt_Date,
Txt_Day,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per day *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -2126,8 +2126,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (unsigned long NumRows,MYSQL_RES
fprintf (Gbl.F.Out,""
"");
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per day-hour *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,2,1);
@@ -2152,19 +2152,21 @@ static void Sta_ShowDistrAccessesPerDayAndHour (unsigned long NumRows,MYSQL_RES
""
"%s"
- " "
- "",
+ "",
Txt_Date,
Txt_Day,
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
+
Tbl_StartRow ();
fprintf (Gbl.F.Out,"",
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH);
Sta_DrawBarColors (SelectedColorType,Hits.Max);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
+
Tbl_StartRow ();
for (Hour = 0;
Hour < 24;
@@ -2390,8 +2392,9 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,float HitsMax)
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2,
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2);
Str_WriteFloatNum (Gbl.F.Out,HitsMax);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
+
Tbl_StartRow ();
/***** Draw colors *****/
@@ -2541,10 +2544,10 @@ static void Sta_ShowNumHitsPerWeek (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_Week,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per week *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -2641,10 +2644,10 @@ static void Sta_ShowNumHitsPerMonth (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_Month,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per month *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -2741,10 +2744,10 @@ static void Sta_ShowNumHitsPerYear (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_Year,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per year *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3024,10 +3027,10 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned long NumRows,MYSQL_RES *m
" "
- ""
- "",
+ "",
Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC,
Sta_WIDTH_SEMIDIVISION_GRAPHIC);
+ Tbl_EndRow ();
/***** Write again the labels of the X axis *****/
Sta_WriteLabelsXAxisAccMin (IncX,Format);
@@ -3127,8 +3130,8 @@ static void Sta_WriteAccessMinute (unsigned Minute,float HitsNum,float MaxX)
BarWidth);
/***** End cell of graphic and end row *****/
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3153,10 +3156,10 @@ static void Sta_ShowNumHitsPerAction (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_Action,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per day *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3216,10 +3219,10 @@ static void Sta_ShowNumHitsPerPlugin (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_Plugin,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per plugin *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3271,10 +3274,10 @@ static void Sta_ShowNumHitsPerWSFunction (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_Function,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per function *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3326,10 +3329,10 @@ static void Sta_ShowNumHitsPerBanner (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_Banner,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of clicks per banner *****/
for (NumRow = 1;
@@ -3405,11 +3408,11 @@ static void Sta_ShowNumHitsPerCountry (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Country,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of hits per country *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3499,11 +3502,11 @@ static void Sta_ShowNumHitsPerInstitution (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Institution,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of hits per institution *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3595,11 +3598,11 @@ static void Sta_ShowNumHitsPerCentre (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Centre,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of hits per centre *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3691,11 +3694,11 @@ static void Sta_ShowNumHitsPerDegree (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Degree,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of hits per degree *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3798,13 +3801,13 @@ static void Sta_ShowNumHitsPerCourse (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Degree,
Txt_Year_OF_A_DEGREE,
Txt_Course,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
+ Tbl_EndRow ();
/***** Compute maximum number of pages generated per course *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@@ -3939,8 +3942,8 @@ static void Sta_DrawBarNumHits (char Color,
fprintf (Gbl.F.Out,"0 (0");
fprintf (Gbl.F.Out,"%%) "
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -4156,8 +4159,7 @@ void Sta_GetAndShowLastClicks (void)
""
"%s" // Action
- " "
- "",
+ "",
Txt_Click,
Txt_ELAPSED_TIME,
Txt_Role,
@@ -4166,6 +4168,7 @@ void Sta_GetAndShowLastClicks (void)
Txt_Centre,
Txt_Degree,
Txt_Action);
+ Tbl_EndRow ();
for (NumRow = 0;
NumRow < NumRows;
@@ -4240,8 +4243,8 @@ void Sta_GetAndShowLastClicks (void)
if (row[8])
if (row[8][0])
fprintf (Gbl.F.Out,"%s",row[8]); // Action
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
Tbl_EndTable ();
diff --git a/swad_survey.c b/swad_survey.c
index 33323d608..c3ecba214 100644
--- a/swad_survey.c
+++ b/swad_survey.c
@@ -274,10 +274,10 @@ static void Svy_ListAllSurveys (struct SurveyQuestion *SvyQst)
""
""
"%s"
- " "
- "",
+ "",
Txt_Survey,
Txt_Status);
+ Tbl_EndRow ();
/***** Write all the surveys *****/
for (NumSvy = Pagination.FirstItemVisible;
@@ -576,8 +576,8 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
}
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write second row of data of this survey *****/
Tbl_StartRow ();
@@ -655,11 +655,11 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
Str_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
fprintf (Gbl.F.Out,"%s
"
- ""
- "",
+ "",
Svy.Status.Visible ? "DAT" :
"DAT_LIGHT",
Txt);
+ Tbl_EndRow ();
/***** Write questions of this survey *****/
if (ShowOnlyThisSvyComplete)
@@ -667,8 +667,8 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
Tbl_StartRow ();
fprintf (Gbl.F.Out,"");
Svy_ListSvyQuestions (&Svy,SvyQst);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
@@ -1867,8 +1867,8 @@ void Svy_RequestCreatOrEditSvy (void)
Svy_SetDefaultAndAllowedScope (&Svy);
Sco_GetScope ("ScopeSvy");
Sco_PutSelectorScope ("ScopeSvy",false);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Survey title *****/
Tbl_StartRow ();
@@ -1879,11 +1879,11 @@ void Svy_RequestCreatOrEditSvy (void)
" "
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Title,
Svy_MAX_CHARS_SURVEY_TITLE,Svy.Title);
+ Tbl_EndRow ();
/***** Survey start and end dates *****/
Dat_PutFormStartEndClientLocalDateTimes (Svy.TimeUTC,Dat_FORM_SECONDS_ON);
@@ -1901,8 +1901,8 @@ void Svy_RequestCreatOrEditSvy (void)
if (!ItsANewSurvey)
fprintf (Gbl.F.Out,"%s",Txt);
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/***** Users' roles who can answer the survey *****/
Tbl_StartRow ();
@@ -1916,8 +1916,8 @@ void Svy_RequestCreatOrEditSvy (void)
1 << Rol_TCH,
Svy.Roles,
false,false);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Groups *****/
Svy_ShowLstGrpsToEditSurvey (Svy.SvyCod);
@@ -2056,9 +2056,9 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
fprintf (Gbl.F.Out," onclick=\"uncheckChildren(this,'GrpCods')\" />"
"%s %s"
""
- ""
- "",
+ "",
Txt_The_whole_course,Gbl.Hierarchy.Crs.ShrtName);
+ Tbl_EndRow ();
/***** List the groups for each group type *****/
for (NumGrpTyp = 0;
@@ -2070,8 +2070,8 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
/***** End table and box *****/
Box_EndBoxTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Free list of groups types and groups in this course *****/
@@ -2687,10 +2687,10 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
" cols=\"60\" rows=\"4\">"
"%s"
""
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Wording,
Txt);
+ Tbl_EndRow ();
/***** Type of answer *****/
Tbl_StartRow ();
@@ -2716,8 +2716,8 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
" ",
Txt_SURVEY_STR_ANSWER_TYPES[AnsType]);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Answers *****/
/* Unique or multiple choice answers */
@@ -2744,12 +2744,12 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
if (SvyQst->AnsChoice[NumAns].Text)
fprintf (Gbl.F.Out,"%s",SvyQst->AnsChoice[NumAns].Text);
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@@ -3200,11 +3200,11 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Type,
Txt_Question);
+ Tbl_EndRow ();
/***** Write questions one by one *****/
for (NumQst = 0;
@@ -3261,8 +3261,8 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,
Gbl.RowEvenOdd);
Svy_WriteQstStem (row[3]);
Svy_WriteAnswersOfAQst (Svy,SvyQst,PutFormAnswerSurvey);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
Tbl_EndTable ();
@@ -3494,9 +3494,9 @@ static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs)
BarWidth);
/***** Write the number of users *****/
- fprintf (Gbl.F.Out,"%s"
- "",
+ fprintf (Gbl.F.Out,"%s",
Gbl.Title);
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_test.c b/swad_test.c
index d4e0da78f..32276dfe8 100644
--- a/swad_test.c
+++ b/swad_test.c
@@ -370,8 +370,8 @@ void Tst_ShowFormAskTst (void)
if (Gbl.Test.Config.Min == Gbl.Test.Config.Max)
fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," />"
- ""
- "");
+ "");
+ Tbl_EndRow ();
Tbl_EndTable ();
@@ -998,10 +998,10 @@ static void Tst_ShowTestResultAfterAssess (long TstCod,unsigned *NumQstsNotBlank
""
""
"%s"
- " "
- "",
+ "",
Gbl.RowEvenOdd,NumQst + 1,
Gbl.RowEvenOdd,Txt_Question_removed);
+ Tbl_EndRow ();
}
/***** Free structure that stores the query result *****/
@@ -1078,8 +1078,8 @@ static void Tst_WriteQstAndAnsTest (Tst_ActionToDoWithQuestions_t ActionToDoWith
default:
break;
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Destroy test question *****/
Tst_QstDestructor ();
@@ -1719,9 +1719,9 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
fprintf (Gbl.F.Out," onclick=\"togglecheckChildren(this,'ChkTag');\" />"
" %s"
""
- ""
- "",
+ "",
Txt_All_tags);
+ Tbl_EndRow ();
/***** Select tags one by one *****/
for (NumRow = 1;
@@ -1764,14 +1764,14 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllTags');\" />"
" %s"
""
- ""
- "",
+ "",
row[1]);
+ Tbl_EndRow ();
}
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -1826,8 +1826,8 @@ static void Tst_ShowFormEditTags (void)
" onchange=\"document.getElementById('%s').submit();\" />",
Tst_MAX_CHARS_TAG,row[1],Gbl.Form.Id);
Frm_EndForm ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table and box *****/
@@ -1933,8 +1933,8 @@ static void Tst_ShowFormConfigTst (void)
" ",
Txt_TST_PLUGGABLE[Pluggable]);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Number of questions *****/
Tbl_StartRow ();
@@ -1952,8 +1952,8 @@ static void Tst_ShowFormConfigTst (void)
Tst_PutInputFieldNumQst ("NumQstMax",Txt_maximum,
Gbl.Test.Config.Max); // Maximum number of questions
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Minimum time between consecutive tests, per question *****/
Tbl_StartRow ();
@@ -1967,11 +1967,11 @@ static void Tst_ShowFormConfigTst (void)
" id=\"MinTimeNxtTstPerQst\" name=\"MinTimeNxtTstPerQst\""
" size=\"7\" maxlength=\"7\" value=\"%lu\""
" required=\"required\" />"
- ""
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Minimum_time_seconds_per_question_between_two_tests,
Gbl.Test.Config.MinTimeNxtTstPerQst);
+ Tbl_EndRow ();
/***** Feedback to students *****/
Tbl_StartRow ();
@@ -1994,8 +1994,8 @@ static void Tst_ShowFormConfigTst (void)
" ",
Txt_TST_STR_FEEDBACK[Feedback]);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
Tbl_EndTable ();
/***** Send button *****/
@@ -2024,11 +2024,11 @@ static void Tst_PutInputFieldNumQst (const char *Field,const char *Label,
" id=\"%s\" name=\"%s\""
" size=\"3\" maxlength=\"3\" value=\"%u\""
" required=\"required\" />"
- ""
- "",
+ "",
Field,Label,
Field,Field,
Value);
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -2336,9 +2336,9 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
fprintf (Gbl.F.Out," onclick=\"togglecheckChildren(this,'AnswerType');\" />"
" %s"
""
- ""
- "",
+ "",
Txt_All_types_of_answers);
+ Tbl_EndRow ();
/***** Type of answer *****/
for (AnsType = (Tst_AnswerType_t) 0;
@@ -2360,14 +2360,14 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllAnsTypes');\" />"
" %s"
""
- ""
- "",
+ "",
Txt_TST_STR_ANSWER_TYPES[AnsType]);
+ Tbl_EndRow ();
}
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -3030,8 +3030,8 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
(double) NumHitsNotBlankThisQst);
else
fprintf (Gbl.F.Out,"N.A.");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Destroy test question *****/
Tst_QstDestructor ();
@@ -3103,8 +3103,7 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Code,
Txt_Date,
@@ -3112,6 +3111,7 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
Txt_Type,
Txt_Shuffle,
Txt_Question);
+ Tbl_EndRow ();
/***** Write rows *****/
for (NumRow = 0, UniqueId = 1;
@@ -3216,8 +3216,8 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
/* Write answers */
Tst_WriteAnswersEdit (Gbl.Test.QstCod);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Destroy test question *****/
Tst_QstDestructor ();
@@ -3447,8 +3447,8 @@ void Tst_WriteAnswersEdit (long QstCod)
if (LengthFeedback)
fprintf (Gbl.F.Out,"%s",Feedback);
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/* Free memory allocated for the answer and the feedback */
free ((void *) Answer);
@@ -3678,8 +3678,8 @@ static void Tst_WriteTFAnsAssessTest (struct UsrData *UsrDat,
Tst_WriteAnsTF (row[1][0]);
else
fprintf (Gbl.F.Out,"?");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write the mark *****/
if (Gbl.Test.Config.Feedback == Tst_FEEDBACK_EACH_RESULT ||
@@ -3797,8 +3797,8 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
Med_ShowMedia (&Gbl.Test.Answer.Options[NumOpt].Media,
"TEST_MED_SHOW_CONTAINER",
"TEST_MED_SHOW");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** End table *****/
@@ -3845,8 +3845,8 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat,
Tbl_StartRow ();
Tst_WriteHeadUserCorrect (UsrDat);
fprintf (Gbl.F.Out," "
- " "
- "");
+ " ");
+ Tbl_EndRow ();
/***** Write answers (one row per answer) *****/
for (NumOpt = 0;
@@ -3918,8 +3918,8 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat,
"%s"
"",
Gbl.Test.Answer.Options[Indexes[NumOpt]].Feedback);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Write the total score of this question *****/
@@ -4395,8 +4395,8 @@ static void Tst_WriteTextAnsAssessTest (struct UsrData *UsrDat,
"%s"
"",
Gbl.Test.Answer.Options[NumOpt].Feedback);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
Tbl_EndTable ();
@@ -4404,8 +4404,8 @@ static void Tst_WriteTextAnsAssessTest (struct UsrData *UsrDat,
else
fprintf (Gbl.F.Out,""
"?");
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Compute the mark *****/
if (!Gbl.Test.StrAnswersOneQst[NumQst][0]) // If user has omitted the answer
@@ -4516,8 +4516,8 @@ static void Tst_WriteIntAnsAssessTest (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%ld",IntAnswerCorr);
else
fprintf (Gbl.F.Out,"?");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Compute the score *****/
if (!Gbl.Test.StrAnswersOneQst[NumQst][0]) // If user has omitted the answer
@@ -4638,8 +4638,8 @@ static void Tst_WriteFloatAnsAssessTest (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"[%lg; %lg]",FloatAnsCorr[0],FloatAnsCorr[1]);
else
fprintf (Gbl.F.Out,"?");
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Compute mark *****/
if (!Gbl.Test.StrAnswersOneQst[NumQst][0]) // If user has omitted the answer
@@ -4713,8 +4713,8 @@ static void Tst_WriteScoreStart (unsigned ColSpan)
static void Tst_WriteScoreEnd (void)
{
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -5075,8 +5075,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
Tbl_StartRow ();
fprintf (Gbl.F.Out,"");
Lay_HelpPlainEditor ();
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Get tags already existing for questions in current course *****/
NumRows = Tst_GetAllTagsFromCurrentCrs (&mysql_res);
@@ -5143,8 +5143,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
}
Tbl_EndTable (); // Table for tags
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* Free structure that stores the query result */
DB_FreeMySQLResult (&mysql_res);
@@ -5177,8 +5177,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
fprintf (Gbl.F.Out,"%s",Feedback);
fprintf (Gbl.F.Out,""
""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/***** Type of answer *****/
Tbl_StartRow ();
@@ -5203,8 +5203,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
" ",
Txt_TST_STR_ANSWER_TYPES[AnsType]);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Answers *****/
/* Integer answer */
@@ -5224,8 +5224,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," required=\"required\" />"
""
- ""
- "");
+ "");
+ Tbl_EndRow ();
/* Floating point answer */
Tbl_StartRow ();
@@ -5235,8 +5235,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
Gbl.Test.Answer.FloatingPoint[0]);
Tst_PutFloatInputField (Txt_Real_number_between_A_and_B_2,"AnsFloatMax",
Gbl.Test.Answer.FloatingPoint[1]);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* T/F answer */
Tbl_StartRow ();
@@ -5244,8 +5244,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
"");
Tst_PutTFInputField (Txt_TF_QST[0],'T');
Tst_PutTFInputField (Txt_TF_QST[1],'F');
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* Questions can be shuffled? */
Tbl_StartRow ();
@@ -5262,9 +5262,9 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
fprintf (Gbl.F.Out," />"
"%s"
""
- ""
- "",
+ "",
Txt_Shuffle);
+ Tbl_EndRow ();
/* Simple or multiple choice answers */
Tbl_StartRow ();
@@ -5394,12 +5394,12 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
/* End of right column */
fprintf (Gbl.F.Out,""
- ""
- "");
+ "");
+ Tbl_EndRow ();
}
Tbl_EndTable (); // Table with choice answers
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable (); // Table for this question
@@ -7466,8 +7466,8 @@ void Tst_SelUsrsToViewUsrsTstResults (void)
Usr_ListUsersToSelect (Rol_NET);
Usr_ListUsersToSelect (Rol_STD);
Tbl_EndTable ();
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Starting and ending dates in the search *****/
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false);
@@ -7685,8 +7685,7 @@ static void Tst_ShowHeaderTestResults (void)
""
"%s %s %u"
" "
- " "
- "",
+ " ",
Txt_User[Usr_SEX_UNKNOWN],
Txt_Date,
Txt_Questions,
@@ -7694,6 +7693,7 @@ static void Tst_ShowHeaderTestResults (void)
Txt_Total_BR_score,
Txt_Average_BR_score_BR_per_question_BR_from_0_to_1,
Txt_Score,Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -7876,8 +7876,8 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
Ico_PutIconLink ("tasks.svg",Txt_View_test);
Frm_EndForm ();
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
if (Gbl.Test.AllowTeachers)
NumExamsVisibleByTchs++;
@@ -8137,8 +8137,8 @@ void Tst_ShowOneTstResult (void)
Pho_ShowUsrPhoto (&Gbl.Usrs.Other.UsrDat,ShowPhoto ? PhotoURL :
NULL,
"PHOTO45x60",Pho_ZOOM,false);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* Test date */
Tbl_StartRow ();
@@ -8150,10 +8150,10 @@ void Tst_ShowOneTstResult (void)
"writeLocalDateHMSFromUTC('test',%ld,"
"%u,', ','%s',true,true,0x7);"
""
- ""
- "",
+ "",
Txt_Date,TstTimeUTC,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
+ Tbl_EndRow ();
/* Number of questions */
Tbl_StartRow ();
@@ -8162,10 +8162,10 @@ void Tst_ShowOneTstResult (void)
""
""
"%u (%u %s)"
- " "
- "",
+ "",
Txt_Questions,
Gbl.Test.NumQsts,NumQstsNotBlank,Txt_non_blank_QUESTIONS);
+ Tbl_EndRow ();
/* Score */
Tbl_StartRow ();
@@ -8181,9 +8181,9 @@ void Tst_ShowOneTstResult (void)
0.0);
else
fprintf (Gbl.F.Out,"? (?"); // No feedback
- fprintf (Gbl.F.Out," %s %u)"
- "",
+ fprintf (Gbl.F.Out," %s %u)",
Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
+ Tbl_EndRow ();
/* Tags present in this test */
Tbl_StartRow ();
@@ -8193,8 +8193,8 @@ void Tst_ShowOneTstResult (void)
"",
Txt_Tags);
Tst_ShowTstTagsPresentInATestResult (TstCod);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write answers and solutions *****/
Tst_ShowTestResult (&Gbl.Usrs.Other.UsrDat,
@@ -8271,10 +8271,10 @@ void Tst_ShowTestResult (struct UsrData *UsrDat,
""
""
"%s"
- " "
- "",
+ "",
Gbl.RowEvenOdd,NumQst + 1,
Gbl.RowEvenOdd,Txt_Question_modified);
+ Tbl_EndRow ();
}
else
{
@@ -8299,10 +8299,10 @@ void Tst_ShowTestResult (struct UsrData *UsrDat,
""
""
"%s"
- " "
- "",
+ "",
Gbl.RowEvenOdd,NumQst + 1,
Gbl.RowEvenOdd,Txt_Question_removed);
+ Tbl_EndRow ();
}
/***** Free structure that stores the query result *****/
diff --git a/swad_test_import.c b/swad_test_import.c
index 8a19dc6f9..a1d741113 100644
--- a/swad_test_import.c
+++ b/swad_test_import.c
@@ -974,13 +974,13 @@ static void TsI_WriteHeadingListImportedQst (void)
""
""
"%s"
- " "
- "",
+ "",
Txt_No_INDEX,
Txt_Tags,
Txt_Type,
Txt_Shuffle,
Txt_Question);
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -1056,10 +1056,10 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
""
""
"%s"
- " "
- "",
+ "",
ClassData,
ClassData,Gbl.Test.Tags.Txt[NumTag]);
+ Tbl_EndRow ();
}
Tbl_EndTable ();
}
@@ -1180,8 +1180,8 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
"%s"
"",
AnswerFeedback);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/* Free memory allocated for the answer and the feedback */
free ((void *) AnswerText);
@@ -1193,6 +1193,6 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
default:
break;
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
diff --git a/swad_timetable.c b/swad_timetable.c
index 16b643d84..2213b981f 100644
--- a/swad_timetable.c
+++ b/swad_timetable.c
@@ -1145,10 +1145,10 @@ static void TT_DrawTimeTable (void)
fprintf (Gbl.F.Out,""
"%02u:00"
- " "
- "",
+ "",
TT_PERCENT_WIDTH_OF_AN_HOUR_COLUMN,
Gbl.TimeTable.Config.Range.Hours.Start);
+ Tbl_EndRow ();
/***** Get list of groups types and groups in this course *****/
if (Gbl.Action.Act == ActEdiCrsTT ||
@@ -1283,8 +1283,8 @@ static void TT_TimeTableDrawAdjustRow (void)
Minicolumn++)
fprintf (Gbl.F.Out," ");
TT_DrawCellAlignTimeTable ();
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out," ");
+ Tbl_EndRow ();
}
/*****************************************************************************/
diff --git a/swad_user.c b/swad_user.c
index cdb03a0a5..dbb1392bd 100644
--- a/swad_user.c
+++ b/swad_user.c
@@ -4047,8 +4047,8 @@ static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
Usr_WriteMainUsrDataExceptUsrID (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
fprintf (Gbl.F.Out,"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Ins_DrawInstitutionLogoWithLink (&Ins,25);
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** Write degrees which are administrated by this administrator *****/
Hie_GetAndWriteInsCtrDegAdminBy (UsrDat->UsrCod,
@@ -6326,10 +6326,10 @@ void Usr_PutCheckboxToSelectAllUsers (Rol_Role_t Role)
Sex = Usr_GetSexOfUsrsLst (Role);
fprintf (Gbl.F.Out,"%s:"
""
- ""
- "",
+ "",
Gbl.Usrs.LstUsrs[Role].NumUsrs == 1 ? Txt_ROLES_SINGUL_Abc[Role][Sex] :
Txt_ROLES_PLURAL_Abc[Role][Sex]);
+ Tbl_EndRow ();
}
/*****************************************************************************/
@@ -6558,8 +6558,8 @@ static void Usr_ListMainDataStds (bool PutCheckBoxToSelectUsr)
fprintf (Gbl.F.Out,"",
1 + Usr_NUM_MAIN_FIELDS_DATA_USR);
Grp_WriteNamesOfSelectedGrps ();
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Put a row to select all users *****/
@@ -6887,8 +6887,8 @@ void Usr_ListAllDataStds (void)
fprintf (Gbl.F.Out,"",
NumColumnsTotal);
Grp_WriteNamesOfSelectedGrps ();
- fprintf (Gbl.F.Out," "
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
/***** Heading row with column names *****/
@@ -7251,8 +7251,8 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,
}
else
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Role);
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
}
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
diff --git a/swad_zip.c b/swad_zip.c
index 7d93cd7b2..6cbdbbbb0 100644
--- a/swad_zip.c
+++ b/swad_zip.c
@@ -578,8 +578,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
" alt=\"%s\" title=\"%s\""
" class=\"ICO40x40\" />"
""
- ""
- "",
+ "",
URL,FileName,
CfG_URL_ICON_FILEXT_PUBLIC,
Txt_ZIP_file,
@@ -588,6 +587,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
Cfg_URL_ICON_PUBLIC,
Txt_Download,
Txt_Download);
+ Tbl_EndRow ();
/***** Filename *****/
Tbl_StartRow ();
@@ -596,10 +596,10 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
""
""
"%s "
- " "
- "",
+ "",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Filename,
URL,FileName,FileName);
+ Tbl_EndRow ();
/***** Write the file size *****/
Fil_WriteFileSizeFull ((double) FileSize,FileSizeStr);
@@ -618,8 +618,8 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
fprintf (Gbl.F.Out," (%s %s)",
FileSizeStr,Txt_FILE_uncompressed);
}
- fprintf (Gbl.F.Out,""
- "");
+ fprintf (Gbl.F.Out,"");
+ Tbl_EndRow ();
/***** End table and box *****/
Box_EndBoxTable ();