From 9ee310f364a3a0b4077b826aa38c8a717b9baba7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sat, 5 Oct 2019 13:09:24 +0200 Subject: [PATCH] Version19.31.5 --- swad_changelog.h | 3 +- swad_file_browser.c | 2 +- swad_info.c | 4 +- swad_institution.c | 78 +++++++++--------- swad_layout.c | 4 +- swad_link.c | 12 +-- swad_mail.c | 28 +++---- swad_match.c | 12 +-- swad_match_result.c | 28 +++---- swad_message.c | 72 ++++++++--------- swad_network.c | 14 ++-- swad_nickname.c | 8 +- swad_notification.c | 20 ++--- swad_password.c | 20 ++--- swad_photo.c | 12 +-- swad_place.c | 28 +++---- swad_plugin.c | 24 +++--- swad_privacy.c | 4 +- swad_profile.c | 8 +- swad_project.c | 76 +++++++++--------- swad_record.c | 136 +++++++++++++++---------------- swad_statistic.c | 135 ++++++++++++++++--------------- swad_survey.c | 68 ++++++++-------- swad_test.c | 192 ++++++++++++++++++++++---------------------- swad_test_import.c | 16 ++-- swad_timetable.c | 8 +- swad_user.c | 20 ++--- swad_zip.c | 12 +-- 28 files changed, 523 insertions(+), 521 deletions(-) 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\">" "" - "" - "", + "", 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,"" "", 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 ();