diff --git a/swad_changelog.h b/swad_changelog.h index 1fdf54ed3..795ee7233 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.31.13 (2019-10-07)" +#define Log_PLATFORM_VERSION "SWAD 19.31.15 (2019-10-07)" #define CSS_FILE "swad19.29.css" #define JS_FILE "swad19.30.js" /* @@ -495,6 +495,8 @@ ps2pdf source.ps destination.pdf // TODO: Un TFG preasignado sin estudiante tiene que salir un triángulo amarillo // TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.) + Version 19.31.15: Oct 07, 2019 Code refactoring in HTML tables. (247153 lines) + Version 19.31.14: Oct 07, 2019 Code refactoring in HTML tables. (247138 lines) Version 19.31.13: Oct 07, 2019 Code refactoring in HTML tables. (247135 lines) Version 19.31.12: Oct 07, 2019 Code refactoring in HTML tables. (247121 lines) Version 19.31.11: Oct 07, 2019 Code refactoring in HTML tables. (247111 lines) diff --git a/swad_institution.c b/swad_institution.c index b6b4076ee..c6e94421c 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -210,9 +210,10 @@ void Ins_SeeInsWithPendingCtrs (void) /* Number of pending centres (row[1]) */ fprintf (Gbl.F.Out,"" - "%s" - "", + "%s", BgColor,row[1]); + Tbl_EndCell (); + Tbl_EndRow (); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; @@ -357,13 +358,14 @@ static void Ins_Configuration (bool PrintView) /***** Country *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Country); + Tbl_EndCell (); + fprintf (Gbl.F.Out,""); if (!PrintView && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) // Only system admins can move an institution to another country @@ -393,18 +395,20 @@ 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]); - Tbl_EndCell (); + Tbl_EndRow (); /***** Institution full name *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Institution); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); if (!PrintView && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) // Only system admins can edit institution full name @@ -424,16 +428,19 @@ static void Ins_Configuration (bool PrintView) else // I can not edit institution full name fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ins.FullName); Tbl_EndCell (); + Tbl_EndRow (); /***** Institution short name *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Short_name); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); if (!PrintView && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) // Only system admins can edit institution short name @@ -453,16 +460,19 @@ static void Ins_Configuration (bool PrintView) else // I can not edit institution short name fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ins.ShrtName); Tbl_EndCell (); + Tbl_EndRow (); /***** Institution WWW *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Web); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); if (!PrintView && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) // Only institution admins and system admins @@ -488,67 +498,77 @@ static void Ins_Configuration (bool PrintView) Gbl.Hierarchy.Ins.WWW, Gbl.Hierarchy.Ins.WWW); Tbl_EndCell (); + Tbl_EndRow (); /***** Shortcut to the institution *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" + "%s:", + The_ClassFormInBox[Gbl.Prefs.Theme], + Txt_Shortcut); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" "" "%s/%s?ins=%ld" - "" - "", - The_ClassFormInBox[Gbl.Prefs.Theme], - Txt_Shortcut, + "", Cfg_URL_SWAD_CGI, Lan_STR_LANG_ID[Gbl.Prefs.Language], Gbl.Hierarchy.Ins.InsCod, Cfg_URL_SWAD_CGI, Lan_STR_LANG_ID[Gbl.Prefs.Language], Gbl.Hierarchy.Ins.InsCod); + Tbl_EndCell (); + Tbl_EndRow (); if (PrintView) { /***** QR code with link to the institution *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_QR_code); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); QR_LinkTo (250,"ins",Gbl.Hierarchy.Ins.InsCod); Tbl_EndCell (); + Tbl_EndRow (); } else { /***** Number of users who claim to belong to this institution *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" - "%u" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme], - Txt_Users_of_the_institution, + Txt_Users_of_the_institution); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u", Usr_GetNumUsrsWhoClaimToBelongToIns (Gbl.Hierarchy.Ins.InsCod)); + Tbl_EndCell (); + Tbl_EndRow (); + Tbl_StartRow (); /***** Number of centres *****/ - Tbl_StartRow (); fprintf (Gbl.F.Out,"" - "%s:" - "" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Centres); + Tbl_EndCell (); /* Form to go to see centres of this institution */ + fprintf (Gbl.F.Out,""); Frm_StartFormGoTo (ActSeeCtr); Ins_PutParamInsCod (Gbl.Hierarchy.Ins.InsCod); snprintf (Gbl.Title,sizeof (Gbl.Title), @@ -558,47 +578,56 @@ static void Ins_Configuration (bool PrintView) fprintf (Gbl.F.Out,"%u", Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod)); Frm_EndForm (); - Tbl_EndCell (); + Tbl_EndRow (); /***** Number of degrees *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" - "%u" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme], - Txt_Degrees, + Txt_Degrees); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u", Deg_GetNumDegsInIns (Gbl.Hierarchy.Ins.InsCod)); + Tbl_EndCell (); + Tbl_EndRow (); /***** Number of courses *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" - "%u" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme], - Txt_Courses, + Txt_Courses); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u", Crs_GetNumCrssInIns (Gbl.Hierarchy.Ins.InsCod)); + Tbl_EndCell (); + Tbl_EndRow (); /***** Number of departments *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" - "%u" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme], - Txt_Departments, + Txt_Departments); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u", Dpt_GetNumDepartmentsInInstitution (Gbl.Hierarchy.Ins.InsCod)); + Tbl_EndCell (); + Tbl_EndRow (); /***** Number of users in courses of this institution *****/ @@ -643,16 +672,19 @@ static void Ins_ShowNumUsrsInCrssOfIns (Rol_Role_t Role) extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" - "%u" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme], (Role == Rol_UNK) ? Txt_Users_in_courses : - Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN], + Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN]); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u", Usr_GetNumUsrsInCrssOfIns (Role,Gbl.Hierarchy.Ins.InsCod)); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -789,13 +821,14 @@ static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns) BgColor = (Ins->InsCod == Gbl.Hierarchy.Ins.InsCod) ? "LIGHT_BLUE" : Gbl.ColorRows[Gbl.RowEvenOdd]; - /***** Number of institution in this list *****/ Tbl_StartRow (); + + /***** Number of institution in this list *****/ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", TxtClassNormal,BgColor, NumIns); + Tbl_EndCell (); /***** Institution logo and name *****/ fprintf (Gbl.F.Out,"",BgColor); @@ -806,39 +839,39 @@ static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns) /***** Stats *****/ /* Number of users who claim to belong to this institution */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", TxtClassNormal,BgColor,Ins->NumUsrsWhoClaimToBelongToIns); + Tbl_EndCell (); /* Number of centres in this institution */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", TxtClassNormal,BgColor,Ins->Ctrs.Num); + Tbl_EndCell (); /* Number of degrees in this institution */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", TxtClassNormal,BgColor,Ins->NumDegs); + Tbl_EndCell (); /* Number of courses in this institution */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", TxtClassNormal,BgColor,Ins->NumCrss); + Tbl_EndCell (); /* Number of departments in this institution */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", TxtClassNormal,BgColor,Ins->NumDpts); + Tbl_EndCell (); /* Number of users in courses of this institution */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", TxtClassNormal,BgColor,Ins->NumUsrs); + Tbl_EndCell (); /***** Institution status *****/ StatusTxt = Ins_GetStatusTxtFromStatusBits (Ins->Status); @@ -847,6 +880,7 @@ static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns) if (StatusTxt != Ins_STATUS_ACTIVE) // If active ==> do not show anything fprintf (Gbl.F.Out,"%s",Txt_INSTITUTION_STATUS[StatusTxt]); Tbl_EndCell (); + Tbl_EndRow (); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; @@ -1501,9 +1535,9 @@ static void Ins_ListInstitutionsForEdition (void) /* Institution code */ fprintf (Gbl.F.Out,"" - "%ld" - "", + "%ld", Ins->InsCod); + Tbl_EndCell (); /* Institution logo */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", Ins->NumUsrsWhoClaimToBelongToIns); + Tbl_EndCell (); /* Number of centres */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", Ins->Ctrs.Num); + Tbl_EndCell (); /* Number of users in courses of this institution */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", Ins->NumUsrs); + Tbl_EndCell (); /* Institution requester */ UsrDat.UsrCod = Ins->RequesterUsrCod; @@ -2239,12 +2273,15 @@ static void Ins_PutFormToCreateInstitution (void) /***** Write heading *****/ Ins_PutHeadInstitutionsForEdition (); - /***** Column to remove institution, disabled here *****/ Tbl_StartRow (); - fprintf (Gbl.F.Out,""); + + /***** Column to remove institution, disabled here *****/ + fprintf (Gbl.F.Out,""); + Tbl_EndCell (); /***** Institution code *****/ - fprintf (Gbl.F.Out,""); + fprintf (Gbl.F.Out,""); + Tbl_EndCell (); /***** Institution logo *****/ fprintf (Gbl.F.Out,""); @@ -2256,42 +2293,42 @@ static void Ins_PutFormToCreateInstitution (void) "" - "", + " required=\"required\" />", Hie_MAX_CHARS_SHRT_NAME,Ins_EditingIns->ShrtName); + Tbl_EndCell (); /***** Institution full name *****/ fprintf (Gbl.F.Out,"" "" - "", + " required=\"required\" />", Hie_MAX_CHARS_FULL_NAME,Ins_EditingIns->FullName); + Tbl_EndCell (); /***** Institution WWW *****/ fprintf (Gbl.F.Out,"" "" - "", + " required=\"required\" />", Cns_MAX_CHARS_WWW,Ins_EditingIns->WWW); + Tbl_EndCell (); /***** Number of users who claim to belong to this institution ****/ fprintf (Gbl.F.Out,"" - "0" - ""); + "0"); + Tbl_EndCell (); /***** Number of centres *****/ fprintf (Gbl.F.Out,"" - "0" - ""); + "0"); + Tbl_EndCell (); /***** Number of users in courses of this institution ****/ fprintf (Gbl.F.Out,"" - "0" - ""); + "0"); + Tbl_EndCell (); /***** Institution requester *****/ fprintf (Gbl.F.Out,""); @@ -2299,8 +2336,9 @@ static void Ins_PutFormToCreateInstitution (void) Tbl_EndCell (); /***** Institution status *****/ - fprintf (Gbl.F.Out,"" - ""); + fprintf (Gbl.F.Out,""); + Tbl_EndCell (); + Tbl_EndRow (); /***** End table, send button and end box *****/ diff --git a/swad_layout.c b/swad_layout.c index 046b2eced..0b3370e1c 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -1713,11 +1713,11 @@ void Lay_AdvertisementMobile (void) "\"SWADroid\"" - "" - "", + "", Txt_Stay_connected_with_SWADroid, Cfg_URL_ICON_PUBLIC, Txt_Stay_connected_with_SWADroid); + Tbl_EndCell (); Tbl_EndRow (); /***** End table and box *****/ diff --git a/swad_link.c b/swad_link.c index 09a4fdb46..9481045f6 100644 --- a/swad_link.c +++ b/swad_link.c @@ -433,9 +433,9 @@ static void Lnk_ListLinksForEdition (void) /* Link code */ fprintf (Gbl.F.Out,"" - "%ld" - "", + "%ld", Lnk->LnkCod); + Tbl_EndCell (); /* Link short name */ fprintf (Gbl.F.Out,""); @@ -748,7 +748,9 @@ static void Lnk_PutFormToCreateLink (void) Tbl_StartRow (); /***** Link code *****/ - fprintf (Gbl.F.Out,""); + fprintf (Gbl.F.Out,""); + Tbl_EndCell (); + Tbl_PutEmptyCells (1); /***** Link short name *****/ @@ -756,27 +758,27 @@ static void Lnk_PutFormToCreateLink (void) "" - "", + " required=\"required\" />", Lnk_MAX_CHARS_LINK_SHRT_NAME,Lnk_EditingLnk->ShrtName); + Tbl_EndCell (); /***** Link full name *****/ fprintf (Gbl.F.Out,"" "" - "", + " required=\"required\" />", Lnk_MAX_CHARS_LINK_FULL_NAME,Lnk_EditingLnk->FullName); + Tbl_EndCell (); /***** Link WWW *****/ fprintf (Gbl.F.Out,"" "" - "", + " required=\"required\" />", Cns_MAX_CHARS_WWW,Lnk_EditingLnk->WWW); + Tbl_EndCell (); Tbl_EndRow (); diff --git a/swad_mail.c b/swad_mail.c index 79ba8ba7f..11686ce60 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -155,18 +155,22 @@ void Mai_SeeMailDomains (void) { /* Write data of this mail domain */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s" - "" - "" - "%s" - "" - "" - "%u" - "", - Gbl.Mails.Lst[NumMai].Domain, - Gbl.Mails.Lst[NumMai].Info, + "%s", + Gbl.Mails.Lst[NumMai].Domain); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%s", + Gbl.Mails.Lst[NumMai].Info); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u", Gbl.Mails.Lst[NumMai].NumUsrs); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -495,9 +499,9 @@ static void Mai_ListMailDomainsForEdition (void) /* Mail code */ fprintf (Gbl.F.Out,"" - "%ld" - "", + "%ld", Mai->MaiCod); + Tbl_EndCell (); /* Mail domain */ fprintf (Gbl.F.Out,""); @@ -525,9 +529,10 @@ static void Mai_ListMailDomainsForEdition (void) /* Number of users */ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", Mai->NumUsrs); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -768,17 +773,17 @@ static void Mai_PutFormToCreateMailDomain (void) fprintf (Gbl.F.Out,"" "" - "", + " required=\"required\" />", Cns_MAX_CHARS_EMAIL_ADDRESS,Mai_EditingMai->Domain); + Tbl_EndCell (); /***** Mail domain info *****/ fprintf (Gbl.F.Out,"" "" - "", + " required=\"required\" />", Mai_MAX_CHARS_MAIL_INFO,Mai_EditingMai->Info); + Tbl_EndCell (); Tbl_PutEmptyCells (1); @@ -1277,18 +1282,21 @@ static void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe, { /* The first mail is the current one */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Current_email); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); } else // NumEmail >= 2 { Tbl_StartRow (); + if (NumEmail == 2) fprintf (Gbl.F.Out,"" "" - "", + "", Txt_The_whole_course,Gbl.Hierarchy.Crs.ShrtName); + Tbl_EndCell (); + Tbl_EndRow (); /***** List the groups for each group type *****/ @@ -3151,10 +3157,13 @@ static void Mch_DrawBarNumUsrs (unsigned NumAnswerersAns,unsigned NumAnswerersQs for (i = 0; i < 100; i++) - fprintf (Gbl.F.Out,"", + { + fprintf (Gbl.F.Out,"", (i < BarWidth) ? (Correct ? "MATCH_RES_CORRECT" : "MATCH_RES_WRONG") : "MATCH_RES_VOID"); + Tbl_EndCell (); + } Tbl_EndRow (); Tbl_EndTable (); diff --git a/swad_match_result.c b/swad_match_result.c index b7659dc37..299b8e617 100644 --- a/swad_match_result.c +++ b/swad_match_result.c @@ -206,11 +206,13 @@ void McR_SelUsrsToViewUsrsMchResults (void) /***** Put list of users to select some of them *****/ Tbl_StartTableCenterPadding (2); Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "", - The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Users, + "%s:", + The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Users); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"", The_ClassFormInBox[Gbl.Prefs.Theme]); Tbl_StartTablePadding (2); Usr_ListUsersToSelect (Rol_TCH); @@ -218,6 +220,7 @@ void McR_SelUsrsToViewUsrsMchResults (void) Usr_ListUsersToSelect (Rol_STD); Tbl_EndTable (); Tbl_EndCell (); + Tbl_EndRow (); /***** Starting and ending dates in the search *****/ @@ -457,18 +460,19 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther) "" - "", + "", (unsigned) StartEndTime,UniqueId, Gbl.RowEvenOdd, (unsigned) StartEndTime,UniqueId, (long) TimeUTC[StartEndTime], (unsigned) Gbl.Prefs.DateFormat,Txt_Today); + Tbl_EndCell (); } /* Write match title */ - fprintf (Gbl.F.Out,"%s", + fprintf (Gbl.F.Out,"%s", Gbl.RowEvenOdd,Match.Title); + Tbl_EndCell (); /* Get number of questions (row[3]) */ if (sscanf (row[3],"%u",&NumQstsInThisResult) != 1) @@ -491,12 +495,14 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther) } /* Write number of questions */ - fprintf (Gbl.F.Out,"%u", + fprintf (Gbl.F.Out,"%u", Gbl.RowEvenOdd,NumQstsInThisResult); + Tbl_EndCell (); /* Write number of questions not blank */ - fprintf (Gbl.F.Out,"%u", + fprintf (Gbl.F.Out,"%u", Gbl.RowEvenOdd,NumQstsNotBlankInThisResult); + Tbl_EndCell (); /* Write score */ fprintf (Gbl.F.Out,"", @@ -589,10 +595,10 @@ static void McR_ShowMchResultsSummaryRow (bool ShowSummaryResults, /***** Row title *****/ fprintf (Gbl.F.Out,"" - "%s: %u" - "", + "%s: %u", Gbl.RowEvenOdd, Txt_Matches,NumResults); + Tbl_EndCell (); /***** Write total number of questions *****/ fprintf (Gbl.F.Out,"", @@ -635,8 +641,9 @@ static void McR_ShowMchResultsSummaryRow (bool ShowSummaryResults, Tbl_EndCell (); /***** Last cell *****/ - fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", Gbl.RowEvenOdd); + Tbl_EndCell (); /***** End row *****/ Tbl_EndRow (); @@ -784,11 +791,13 @@ void McR_ShowOneMchResult (void) /* User */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "", + "%s:", Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs.Role][UsrDat->Sex]); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); ID_WriteUsrIDs (UsrDat,NULL); fprintf (Gbl.F.Out," %s", UsrDat->Surname1); @@ -804,6 +813,7 @@ void McR_ShowOneMchResult (void) NULL, "PHOTO45x60",Pho_ZOOM,false); Tbl_EndCell (); + Tbl_EndRow (); /* Start/end time (for user in this match) */ @@ -812,42 +822,50 @@ void McR_ShowOneMchResult (void) StartEndTime++) { Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" + "%s:", + Txt_START_END_TIME[StartEndTime]); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" "" - "", - Txt_START_END_TIME[StartEndTime], + "", (unsigned) StartEndTime, (unsigned) StartEndTime, TimeUTC[StartEndTime], (unsigned) Gbl.Prefs.DateFormat,Txt_Today); + Tbl_EndCell (); + Tbl_EndRow (); } /* Number of questions */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" - "%u (%u %s)" - "", - Txt_Questions, + "%s:", + Txt_Questions); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u (%u %s)", NumQsts,NumQstsNotBlank,Txt_non_blank_QUESTIONS); + Tbl_EndCell (); + Tbl_EndRow (); /* Score */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "", + "%s:", Txt_Score); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); if (ICanViewScore) fprintf (Gbl.F.Out,"%.2lf (%.2lf", TotalScore, @@ -855,19 +873,24 @@ 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_EndCell (); + Tbl_EndRow (); /* Tags present in this result */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "", + "%s:", Txt_Tags); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); Gam_ShowTstTagsPresentInAGame (Match.GamCod); Tbl_EndCell (); + Tbl_EndRow (); /***** Write answers and solutions *****/ diff --git a/swad_message.c b/swad_message.c index 735929821..b164f390e 100644 --- a/swad_message.c +++ b/swad_message.c @@ -291,11 +291,13 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1]) /***** "To:" section (recipients) *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "", + "%s:", The_ClassFormInBox[Gbl.Prefs.Theme],Txt_MSG_To); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); if (Gbl.Msg.ShowOnlyOneRecipient) /***** Show only one user as recipient *****/ Msg_ShowOneUniqueRecipient (); @@ -312,8 +314,8 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1]) Msg_WriteFormUsrsIDsOrNicksOtherRecipients (); // Other users (nicknames) Tbl_EndTable (); } - Tbl_EndCell (); + Tbl_EndRow (); /***** Subject and content sections *****/ @@ -492,6 +494,7 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void) /***** Textarea with users' @nicknames, emails or IDs *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out," 1) fprintf (Gbl.F.Out," colspan=\"%u\"",Colspan); @@ -507,8 +510,9 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void) // write @nickname of original sender if (Nck_GetNicknameFromUsrCod (Gbl.Usrs.Other.UsrDat.UsrCod,Nickname)) fprintf (Gbl.F.Out,"@%s",Nickname); - fprintf (Gbl.F.Out,"" - ""); + fprintf (Gbl.F.Out,""); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -533,16 +537,18 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (char Content[Cns_MAX_BYTES_ /***** Message subject *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" "" - "" - "" - "" - "", + "", Gbl.Msg.Subject); + Tbl_EndCell (); + Tbl_EndRow (); /***** Message content *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" "" - "" - "" - "" - "", + fprintf (Gbl.F.Out,"%s", Gbl.Msg.Subject); + Tbl_EndCell (); + Tbl_EndRow (); /***** Message content *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" "" - "" - "" - "" - ""); + fprintf (Gbl.F.Out,""); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -2644,18 +2657,19 @@ void Msg_ShowFormToFilterMsgs (void) /***** Start table *****/ Tbl_StartTableCenterPadding (2); - /***** Filter authors/recipients *****/ Tbl_StartRow (); + + /***** Filter authors/recipients *****/ fprintf (Gbl.F.Out,"" "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], TxtFromTo[Gbl.Msg.TypeOfMessages], Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME * 3,Gbl.Msg.FilterFromTo); + Tbl_EndCell (); /***** Filter message content *****/ fprintf (Gbl.F.Out,"" @@ -2663,11 +2677,12 @@ void Msg_ShowFormToFilterMsgs (void) "%s: " "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_MSG_Content, Msg_MAX_CHARS_FILTER_CONTENT,Gbl.Msg.FilterContent); + Tbl_EndCell (); + Tbl_EndRow (); /***** End table *****/ @@ -3023,31 +3038,37 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod) /***** Write "From:" *****/ fprintf (Gbl.F.Out,"" - "%s: " - "" - "", + "%s: ", Txt_MSG_From); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); Msg_WriteMsgFrom (&UsrDat,Deleted); Tbl_EndCell (); + Tbl_EndRow (); /***** Write "To:" *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s: " - "" - "", + "%s: ", Txt_MSG_To); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); Msg_WriteMsgTo (MsgCod); Tbl_EndCell (); + Tbl_EndRow (); /***** Write "Content:" *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s: " - "", + "%s: ", Txt_MSG_Content); + Tbl_EndCell (); /***** Initialize image *****/ Med_MediaConstructor (&Media); @@ -3130,11 +3151,11 @@ void Msg_GetNotifMessage (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], void Msg_WriteMsgNumber (unsigned long MsgNum,bool NewMsg) { fprintf (Gbl.F.Out,"" - "%lu:" - "", + "%lu:", NewMsg ? "MSG_TIT_BG_NEW" : "MSG_TIT_BG", MsgNum); + Tbl_EndCell (); } /*****************************************************************************/ @@ -3227,11 +3248,13 @@ void Msg_WriteMsgAuthor (struct UsrData *UsrDat,bool Enabled,const char *BgColor { fprintf (Gbl.F.Out,"\"%s\"" - "" - "", Cfg_URL_ICON_PUBLIC, - Txt_Unknown_or_without_photo,Txt_Unknown_or_without_photo); + Txt_Unknown_or_without_photo, + Txt_Unknown_or_without_photo); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); @@ -3348,14 +3371,14 @@ static void Msg_WriteMsgFrom (struct UsrData *UsrDat,bool Deleted) bool ShowPhoto; char PhotoURL[PATH_MAX + 1]; - /***** Put an icon to show if user has read the message *****/ Tbl_StartTable (); Tbl_StartRow (); + + /***** Put an icon to show if user has read the message *****/ fprintf (Gbl.F.Out,"" "\"%s\"" - "", + " class=\"ICO16x16\" />", Cfg_URL_ICON_PUBLIC, Deleted ? "share-red.svg" : "share.svg", @@ -3363,6 +3386,7 @@ static void Msg_WriteMsgFrom (struct UsrData *UsrDat,bool Deleted) Txt_MSG_Sent, Deleted ? Txt_MSG_Sent_and_deleted : Txt_MSG_Sent); + Tbl_EndCell (); /***** Put user's photo *****/ fprintf (Gbl.F.Out,""); @@ -3370,10 +3394,10 @@ static void Msg_WriteMsgFrom (struct UsrData *UsrDat,bool Deleted) Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL : NULL, "PHOTO21x28",Pho_ZOOM,false); + Tbl_EndCell (); /***** Write user's name *****/ - fprintf (Gbl.F.Out,"" - ""); + fprintf (Gbl.F.Out,""); if (UsrDat->UsrCod > 0) { fprintf (Gbl.F.Out,"%s",UsrDat->FullName); @@ -3392,6 +3416,7 @@ static void Msg_WriteMsgFrom (struct UsrData *UsrDat,bool Deleted) 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 Tbl_EndCell (); + Tbl_EndRow (); Tbl_EndTable (); } @@ -3515,14 +3540,14 @@ static void Msg_WriteMsgTo (long MsgCod) fprintf (Gbl.F.Out,"" "\"%s\"" - "", + " class=\"ICO16x16\" />", Cfg_URL_ICON_PUBLIC, OpenByDst ? (Deleted ? "envelope-open-text-red.svg" : "envelope-open-text.svg") : (Deleted ? "envelope-red.svg" : "envelope.svg"), Title,Title); + Tbl_EndCell (); /* Put user's photo */ fprintf (Gbl.F.Out,""); @@ -3531,10 +3556,10 @@ static void Msg_WriteMsgTo (long MsgCod) Pho_ShowUsrPhoto (&UsrDat,ShowPhoto ? PhotoURL : NULL, "PHOTO21x28",Pho_ZOOM,false); + Tbl_EndCell (); /* Write user's name */ - fprintf (Gbl.F.Out,"" - "", + fprintf (Gbl.F.Out,"", OpenByDst ? "AUTHOR_TXT" : "AUTHOR_TXT_NEW"); if (UsrValid) @@ -3550,13 +3575,14 @@ static void Msg_WriteMsgTo (long MsgCod) { /***** Start form to show all the users *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "[%u %s]" - "", + "[%u %s]", NumRecipientsUnknown, - (NumRecipientsUnknown == 1) ? - Txt_unknown_recipient : - Txt_unknown_recipients); + (NumRecipientsUnknown == 1) ? Txt_unknown_recipient : + Txt_unknown_recipients); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -3870,9 +3896,10 @@ void Msg_ListBannedUsrs (void) /* Write user's full name */ fprintf (Gbl.F.Out,"" - "%s" - "", + "%s", UsrDat.FullName); + Tbl_EndCell (); + Tbl_EndRow (); } } diff --git a/swad_network.c b/swad_network.c index 059c79671..06d61cd84 100644 --- a/swad_network.c +++ b/swad_network.c @@ -324,6 +324,7 @@ 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], Net_WebsAndSocialNetworksTitle[NumURL], - Net_WebsAndSocialNetworksTitle[NumURL], + Net_WebsAndSocialNetworksTitle[NumURL]); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "", (unsigned) NumURL,(unsigned) NumURL, Cns_MAX_CHARS_WWW,URL); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -591,25 +593,30 @@ void Net_ShowWebAndSocialNetworksStats (void) Lay_ShowErrorAndExit ("Error when getting number of files."); Tbl_StartRow (); + fprintf (Gbl.F.Out,"" "\"%s\"" - "%s" - "" - "%u" - "" - "" - "%.2f%%" - "", + "%s", Cfg_URL_ICON_PUBLIC,Net_WebsAndSocialNetworksIcons[Web], Net_WebsAndSocialNetworksTitle[Web], Net_WebsAndSocialNetworksTitle[Web], - Net_WebsAndSocialNetworksTitle[Web], - NumUsrs, + Net_WebsAndSocialNetworksTitle[Web]); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%u", + NumUsrs); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" + "%.2f%%", NumUsrsTotal ? 100.0 * (float) NumUsrs / (float) NumUsrsTotal : 0.0); + Tbl_EndCell (); + Tbl_EndRow (); } } diff --git a/swad_nickname.c b/swad_nickname.c index 8282abb96..93c1c0e01 100644 --- a/swad_nickname.c +++ b/swad_nickname.c @@ -268,32 +268,35 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its /* Get nickname */ row = mysql_fetch_row (mysql_res); + Tbl_StartRow (); if (NumNick == 1) { /* The first nickname is the current one */ - Tbl_StartRow (); fprintf (Gbl.F.Out,"" "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Current_nickname); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); } else // NumNick >= 2 { - Tbl_StartRow (); if (NumNick == 2) + { fprintf (Gbl.F.Out,"" "" - "", + "", NumNicks - 1, The_ClassFormInBox[Gbl.Prefs.Theme], Txt_Other_nicknames); + Tbl_EndCell (); + } + fprintf (Gbl.F.Out,""); /* Form to remove old nickname */ @@ -368,15 +371,17 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its /***** Form to enter new nickname *****/ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme], NumNicks ? Txt_New_nickname : // A new nickname Txt_Nickname); // The first nickname + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); if (ItsMe) Frm_StartFormAnchor (ActChgMyNck,Nck_NICKNAME_SECTION_ID); else @@ -406,6 +411,7 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its Txt_Save_changes); // I have no nickname yet); Frm_EndForm (); Tbl_EndCell (); + Tbl_EndRow (); /***** End table and box *****/ diff --git a/swad_notification.c b/swad_notification.c index 287b89bdb..4a256bad9 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -590,9 +590,10 @@ void Ntf_ShowMyNotifications (void) /* Write status (sent by email / pending to be sent by email) */ fprintf (Gbl.F.Out,"" - "%s" - "", + "%s", ClassBackground,Txt_NOTIFICATION_STATUS[StatusTxt]); + Tbl_EndCell (); + Tbl_EndRow (); /***** Write content of the event *****/ @@ -602,14 +603,20 @@ void Ntf_ShowMyNotifications (void) Ntf_GetNotifSummaryAndContent (SummaryStr,&ContentStr,NotifyEvent, Cod,Crs.CrsCod,Gbl.Usrs.Me.UsrDat.UsrCod, false); + Tbl_StartRow (); - fprintf (Gbl.F.Out,"" - ""); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" - "%s" - "", + "%s", SummaryStr); + Tbl_EndCell (); + Tbl_EndRow (); + if (ContentStr != NULL) { free ((void *) ContentStr); @@ -1958,25 +1965,29 @@ void Ntf_PutFormChangeNotifSentByEMail (void) NotifyEvent++) // O is reserved for Ntf_EVENT_UNKNOWN { Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "%s:" - "" - "" - "" + "" - "" - "" + fprintf (Gbl.F.Out," />"); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" "" - ""); + fprintf (Gbl.F.Out," />"); + Tbl_EndCell (); + Tbl_EndRow (); } diff --git a/swad_password.c b/swad_password.c index d5063282d..6c8a11d4f 100644 --- a/swad_password.c +++ b/swad_password.c @@ -686,18 +686,21 @@ void Pwd_ShowFormChgMyPwd (void) if (IHaveAPasswordInDB) // If I have a password in database... { Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "" + "", + The_ClassFormInBox[Gbl.Prefs.Theme], + Txt_Current_password); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" "" - "", - The_ClassFormInBox[Gbl.Prefs.Theme], - Txt_Current_password, + " autocomplete=\"off\" required=\"required\" />", Pwd_MAX_CHARS_PLAIN_PASSWORD); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -734,16 +737,18 @@ void Pwd_PutFormToGetNewPasswordOnce (void) extern const char *Txt_Password; extern const char *Txt_HELP_password; - /***** Start form element ****/ Tbl_StartRow (); + + /***** Start form element ****/ fprintf (Gbl.F.Out,"" - "" - "" - "" + "", + The_ClassFormInBox[Gbl.Prefs.Theme], + Txt_Password); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" "" - ""); + " required=\"required\" />"); + Tbl_EndCell (); + Tbl_EndRow (); } @@ -771,15 +777,17 @@ void Pwd_PutFormToGetNewPasswordTwice (void) /***** 1st password *****/ /* Start form element */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "" + "", + The_ClassFormInBox[Gbl.Prefs.Theme], + Txt_New_password); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" "" - ""); + fprintf (Gbl.F.Out,"\" required=\"required\" />"); + Tbl_EndCell (); + Tbl_EndRow (); /***** 2nd password *****/ /* Start form element */ Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "" + "", + The_ClassFormInBox[Gbl.Prefs.Theme], + Txt_Retype_new_password); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,"" "" - ""); + fprintf (Gbl.F.Out,"\" required=\"required\" />"); + Tbl_EndCell (); + Tbl_EndRow (); } diff --git a/swad_photo.c b/swad_photo.c index f6f25033b..4a86b8561 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -896,18 +896,20 @@ static void Pho_UpdatePhoto2 (void) for (NumPhoto = 0; NumPhoto < 3; NumPhoto++) + { fprintf (Gbl.F.Out,"" "\"%s\"" - "
%s" - "", + "
%s", Cfg_URL_PHOTO_TMP_PUBLIC, Gbl.Usrs.FileNamePhoto,NumPhoto + 1, Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto], Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto], Pho_PHOTO_REAL_WIDTH,Pho_PHOTO_REAL_HEIGHT, Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto]); + Tbl_EndCell (); + } Tbl_EndRow (); Tbl_EndTable (); @@ -1787,11 +1789,13 @@ static void Pho_PutSelectorForTypeOfAvg (void) Pho_AvgPhotoTypeOfAverage_t TypeOfAvg; Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Average_type); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); Frm_StartForm (ActSeePhoDeg); Pho_PutHiddenParamPhotoSize (); Pho_PutHiddenParamOrderDegrees (); @@ -1811,6 +1815,7 @@ static void Pho_PutSelectorForTypeOfAvg (void) fprintf (Gbl.F.Out,""); Frm_EndForm (); Tbl_EndCell (); + Tbl_EndRow (); } @@ -1848,11 +1853,13 @@ static void Pho_PutSelectorForHowComputePhotoSize (void) Pho_HowComputePhotoSize_t PhoSi; Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Size_of_photos); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); Frm_StartForm (ActSeePhoDeg); Pho_PutHiddenParamTypeOfAvg (); Pho_PutHiddenParamOrderDegrees (); @@ -1872,6 +1879,7 @@ static void Pho_PutSelectorForHowComputePhotoSize (void) fprintf (Gbl.F.Out,""); Frm_EndForm (); Tbl_EndCell (); + Tbl_EndRow (); } @@ -1909,11 +1917,13 @@ static void Pho_PutSelectorForHowOrderDegrees (void) Pho_HowOrderDegrees_t Order; Tbl_StartRow (); + fprintf (Gbl.F.Out,"" - "" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Sort_degrees_by); + Tbl_EndCell (); + + fprintf (Gbl.F.Out,""); Frm_StartForm (ActSeePhoDeg); Pho_PutHiddenParamTypeOfAvg (); Pho_PutHiddenParamPhotoSize (); @@ -1933,6 +1943,7 @@ static void Pho_PutSelectorForHowOrderDegrees (void) fprintf (Gbl.F.Out,""); Frm_EndForm (); Tbl_EndCell (); + Tbl_EndRow (); } @@ -2238,12 +2249,13 @@ static void Pho_ShowOrPrintListDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint) /* Get data of degree */ Deg_GetDataOfDegreeByCod (&Deg); - /***** Show logo and name of this degree *****/ Tbl_StartRow (); + + /***** Show logo and name of this degree *****/ fprintf (Gbl.F.Out,"" - "%u" - "", + "%u", Gbl.RowEvenOdd,++NumDegsNotEmpty); + Tbl_EndCell (); /***** Show logo and name of this degree *****/ fprintf (Gbl.F.Out,"", @@ -2272,6 +2284,7 @@ static void Pho_ShowOrPrintListDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint) Pho_ShowDegreeStat (NumStds,NumStdsWithPhoto); Tbl_EndCell (); } + Tbl_EndRow (); } diff --git a/swad_privacy.c b/swad_privacy.c index 74b066804..2573579f3 100644 --- a/swad_privacy.c +++ b/swad_privacy.c @@ -155,15 +155,16 @@ static void Pri_PutFormVisibility (const char *TxtLabel, extern const char *Txt_PRIVACY_OPTIONS[Pri_NUM_OPTIONS_PRIVACY]; Pri_Visibility_t Visibility; - /***** Select visibility *****/ Tbl_StartRow (); + + /***** Select visibility *****/ fprintf (Gbl.F.Out,"" "%s:" - "" - "", + "", The_ClassFormInBox[Gbl.Prefs.Theme],TxtLabel); /***** Form with list of options *****/ + fprintf (Gbl.F.Out,""); if (Action != ActUnk) Frm_StartFormAnchor (Action,Pri_PRIVACY_ID); fprintf (Gbl.F.Out,"