diff --git a/css/swad21.68.css b/css/swad21.68.css index b798f306..66a1d5bd 100644 --- a/css/swad21.68.css +++ b/css/swad21.68.css @@ -35,7 +35,7 @@ body .BODY_BG_BLUE {background-color:white;} .BODY_BG_YELLOW {background-color:white;} .BODY_BG_PINK {background-color:white;} -.BODY_BG_DARK {background-color:#404040;} +.BODY_BG_DARK {background-color:#383838;} input { @@ -148,8 +148,8 @@ a:hover /* Default ==> underlined */ } .HEAD_ROW_1_DARK { - background-image:-webkit-linear-gradient(#383838 0,#404040 100%); /* Safari */ - background-image:linear-gradient(#383838 0,#404040 100%); + background-image:-webkit-linear-gradient(#303030 0,#383838 100%); /* Safari */ + background-image:linear-gradient(#303030 0,#383838 100%); background-repeat:no-repeat; } @@ -254,7 +254,7 @@ a:hover /* Default ==> underlined */ .USR_BLUE {color:white; font-size:15pt; font-weight:bold; white-space:nowrap;} .USR_YELLOW {color:#b3b0b3; font-size:15pt; font-weight:bold; white-space:nowrap;} .USR_PINK {color:white; font-size:15pt; font-weight:bold; white-space:nowrap;} -.USR_BLACK {color:#e0e0e0; font-size:15pt; font-weight:bold; white-space:nowrap;} +.USR_DARK {color:#e0e0e0; font-size:15pt; font-weight:bold; white-space:nowrap;} #head_row_1_right { @@ -283,7 +283,7 @@ a:hover /* Default ==> underlined */ } .HEAD_ROW_2_GREY { - background-color:#404040; + background-color:#383838; } .HEAD_ROW_2_PURPLE { @@ -309,7 +309,7 @@ a:hover /* Default ==> underlined */ } .HEAD_ROW_2_DARK { - background-color:#404040; + background-color:#383838; } /******************************* Current time ********************************/ @@ -608,8 +608,8 @@ a:hover /* Default ==> underlined */ } .HEAD_ROW_3_DARK { - background-image:-webkit-linear-gradient(#404040 0,#404040 54px,white 54px,white 100%); /* Safari */ - background-image:linear-gradient(#404040 0,#404040 54px,#404040 54px,#404040 100%); + background-image:-webkit-linear-gradient(#383838 0,#383838 54px,#383838 54px,#383838 100%); /* Safari */ + background-image:linear-gradient(#383838 0,#383838 54px,#383838 54px,#383838 100%); } .TAB_LIST @@ -781,7 +781,7 @@ a:hover /* Default ==> underlined */ .TAB_OFF_BLUE {background-color:#cae1e8;} .TAB_OFF_YELLOW {background-color:#f4dfb2;} .TAB_OFF_PINK {background-color:#f3dcca;} -.TAB_OFF_DARK {background-color:#aea79f;} +.TAB_OFF_DARK {background-color:#484848;} .TAB_OFF_TXT_WHITE {color:#707070;} .TAB_OFF_TXT_GREY {color:#505050;} @@ -789,7 +789,7 @@ a:hover /* Default ==> underlined */ .TAB_OFF_TXT_BLUE {color:#365e6e;} .TAB_OFF_TXT_YELLOW {color:#4a2e19;} .TAB_OFF_TXT_PINK {color:#505050;} -.TAB_OFF_TXT_DARK {color:#505050;} +.TAB_OFF_TXT_DARK {color:#d0d0d0;} .TAB_ON_TXT_WHITE {color:#4d88A1;} .TAB_ON_TXT_GREY {color:#606060;} @@ -797,7 +797,7 @@ a:hover /* Default ==> underlined */ .TAB_ON_TXT_BLUE {color:#4d88A1;} .TAB_ON_TXT_YELLOW {color:#7c4d2a;} .TAB_ON_TXT_PINK {color:#63474e;} -.TAB_ON_TXT_DARK {color:#606060;} +.TAB_ON_TXT_DARK {color:#e0e0e0;} .TAB_ICO { @@ -806,6 +806,8 @@ a:hover /* Default ==> underlined */ padding:4px 0; } +.TAB_ICO_DARK {filter:invert(1);} + /*********************** Layout (fourth row, main zone) **********************/ #main_zone { @@ -1112,6 +1114,8 @@ a:hover /* Default ==> underlined */ overflow:hidden; } } + +.MENU_ICO_DARK {filter:invert(1);} /********************************* Menu fonts ********************************/ @media only screen and (max-width: 800px) @@ -1141,16 +1145,13 @@ a:hover /* Default ==> underlined */ padding:2px 0; } } - -.MENU_ICO_DARK {filter:invert(1);} - .MENU_TXT_WHITE {color:#4D88a1;} .MENU_TXT_GREY {color:#606060;} .MENU_TXT_PURPLE {color:#573c4d;} .MENU_TXT_BLUE {color:#4D88a1;} .MENU_TXT_YELLOW {color:#7c4d2a;} .MENU_TXT_PINK {color:#63474e;} -.MENU_TXT_DARK {color:#c0c0c0;} +.MENU_TXT_DARK {color:#d0d0d0;} /***************************** Users connected *******************************/ .CONNECTED @@ -1922,6 +1923,7 @@ a:hover img.CENTER_PHOTO_SHOW margin-top:-2px; vertical-align:middle; } +.CONTEXT_ICO_DARK {filter:invert(1);} /********************************** Frame ************************************/ .FRAME_INLINE @@ -1937,18 +1939,26 @@ a:hover img.CENTER_PHOTO_SHOW text-align:center; vertical-align:middle; } + .FRAME { display:inline-block; box-sizing:border-box; margin:5px 0; padding:8px 12px 12px 12px; - background-color:white; border-radius:2px; box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 2px 1px -2px rgba(0,0,0,0.2), 0 1px 5px 0 rgba(0,0,0,0.12); text-align:center; overflow:hidden; } +.FRAME_WHITE {background-color:white;} +.FRAME_GREY {background-color:white;} +.FRAME_PURPLE {background-color:white;} +.FRAME_BLUE {background-color:white;} +.FRAME_YELLOW {background-color:white;} +.FRAME_PINK {background-color:white;} +.FRAME_DARK {background-color:#484848;} + .FRAME_SHADOW { display:inline-block; @@ -2013,14 +2023,19 @@ a:hover img.CENTER_PHOTO_SHOW } .FRAME_TITLE_BIG { - color:#404040; font-size:22pt; } .FRAME_TITLE_SMALL { - color:#808080; font-size:18pt; } +.FRAME_TITLE_WHITE {color:#404040;} +.FRAME_TITLE_GREY {color:#404040;} +.FRAME_TITLE_PURPLE {color:#404040;} +.FRAME_TITLE_BLUE {color:#404040;} +.FRAME_TITLE_YELLOW {color:#404040;} +.FRAME_TITLE_PINK {color:#404040;} +.FRAME_TITLE_DARK {color:#d0d0d0;} /* Apply only to the first level of th and td */ table.CELLS_PAD_1 > tbody > tr > th {padding: 1px;} @@ -2300,7 +2315,7 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;} .FORM_OUT_BLUE {color:#4d88a1; font-size:13pt;} .FORM_OUT_YELLOW {color:#7c4d2a; font-size:13pt;} .FORM_OUT_PINK {color:#63474e; font-size:13pt;} -.FORM_OUT_DARK {color:#4d88a1; font-size:13pt;} +.FORM_OUT_DARK {color:#c0e0ff; font-size:13pt;} .BOLD {font-weight:bold;} .NOWRAP {white-space:nowrap;} @@ -2439,19 +2454,33 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;} /*****************************************************************************/ -.T1 {color:#202020; font-size:15pt;} -.T2 {color:#202020; font-size:13pt;} -.T3 {color:#202020; font-size:12pt;} +.T1 {color:#202020; font-size:15pt;} +.T2 {color:#202020; font-size:13pt;} +.T3 {color:#202020; font-size:12pt;} -.DAT {color:#404040; font-size:13pt;} -.DAT_NOBR {color:#404040; font-size:13pt; white-space:nowrap;} -.DAT_BOLD {color:#404040; font-size:13pt; font-weight:bold;} -.DAT_GREEN {color:#246600; font-size:13pt;} -.DAT_RED {color:#660000; font-size:13pt;} -.DAT_LIGHT {color:#A0A0A0; font-size:13pt;} -.DAT_N {color:black; font-size:13pt;} -.DAT_NOBR_N {color:black; font-size:13pt; white-space:nowrap;} -.DAT_N_BOLD {color:black; font-size:13pt; font-weight:bold;} +.DAT_WHITE {color:#404040; font-size:13pt;} +.DAT_GREY {color:#404040; font-size:13pt;} +.DAT_PURPLE {color:#404040; font-size:13pt;} +.DAT_BLUE {color:#404040; font-size:13pt;} +.DAT_YELLOW {color:#404040; font-size:13pt;} +.DAT_PINK {color:#404040; font-size:13pt;} +.DAT_DARK {color:#d0d0d0; font-size:13pt;} + +.DAT_N_WHITE {color:black; font-size:13pt;} +.DAT_N_GREY {color:black; font-size:13pt;} +.DAT_N_PURPLE {color:black; font-size:13pt;} +.DAT_N_BLUE {color:black; font-size:13pt;} +.DAT_N_YELLOW {color:black; font-size:13pt;} +.DAT_N_PINK {color:black; font-size:13pt;} +.DAT_N_DARK {color:white; font-size:13pt;} + +.DAT_NOBR {color:#404040; font-size:13pt; white-space:nowrap;} +.DAT_BOLD {color:#404040; font-size:13pt; font-weight:bold;} +.DAT_GREEN {color:#246600; font-size:13pt;} +.DAT_RED {color:#660000; font-size:13pt;} +.DAT_LIGHT {color:#A0A0A0; font-size:13pt;} +.DAT_NOBR_N {color:black; font-size:13pt; white-space:nowrap;} +.DAT_N_BOLD {color:black; font-size:13pt; font-weight:bold;} /*********************** Line in top part of a table row *********************/ .LINE_TOP diff --git a/swad_API.c b/swad_API.c index 14d83153..469f13fb 100644 --- a/swad_API.c +++ b/swad_API.c @@ -1393,6 +1393,7 @@ static int API_WriteSyllabusIntoHTMLBuffer (struct soap *soap, static int API_WritePlainTextIntoHTMLBuffer (struct soap *soap, char **HTMLBuffer) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_INFO_TITLE[Inf_NUM_TYPES]; char TxtHTML[Cns_MAX_BYTES_LONG_TEXT + 1]; char FileNameHTMLTmp[PATH_MAX + 1]; @@ -1421,7 +1422,7 @@ static int API_WritePlainTextIntoHTMLBuffer (struct soap *soap, /***** Write start of HTML code *****/ Lay_BeginHTMLFile (FileHTMLTmp,Txt_INFO_TITLE[Gbl.Crs.Info.Type]); fprintf (FileHTMLTmp,"\n" - "
\n"); + "
\n",The_ClassDat[Gbl.Prefs.Theme]); /***** Write plain text into text buffer *****/ /* Convert to respectful HTML and insert links */ diff --git a/swad_ID.c b/swad_ID.c index cfbfdd43..49004e55 100644 --- a/swad_ID.c +++ b/swad_ID.c @@ -499,6 +499,7 @@ void ID_ShowFormChangeOtherUsrID (void) static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID) { extern const char *Hlp_PROFILE_Account; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Please_fill_in_your_ID; extern const char *Txt_ID_X_confirmed; extern const char *Txt_ID_X_not_confirmed; @@ -579,7 +580,7 @@ static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID) Str_BuildStringStr (UsrDat->IDs.List[NumID].Confirmed ? Txt_ID_X_confirmed : Txt_ID_X_not_confirmed, UsrDat->IDs.List[NumID].ID)); - Str_FreeString (); + Str_FreeStrings (); HTM_Txt (UsrDat->IDs.List[NumID].ID); HTM_Txt (UsrDat->IDs.List[NumID].Confirmed ? "✓" : ""); @@ -597,7 +598,8 @@ static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID) /***** Write help text *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"2\" class=\"DAT CM\""); + HTM_TD_Begin ("colspan=\"2\" class=\"%s CM\"", + The_ClassDat[Gbl.Prefs.Theme]); Ale_ShowAlert (Ale_INFO,Txt_The_ID_is_used_in_order_to_facilitate_); HTM_TD_End (); @@ -612,7 +614,8 @@ static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID) Txt_ID); // The first user's ID /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"", + The_ClassDat[Gbl.Prefs.Theme]); if (ItsMe) Frm_BeginFormAnchor (ActChgMyID,ID_ID_SECTION_ID); else diff --git a/swad_account.c b/swad_account.c index dd318d5f..1ba0db31 100644 --- a/swad_account.c +++ b/swad_account.c @@ -272,6 +272,7 @@ void Acc_CheckIfEmptyAccountExists (void) static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrData *UsrDat) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_ID; extern const char *Txt_Name; extern const char *Txt_yet_unnamed; @@ -287,7 +288,9 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD HTM_TD_End (); /***** Write user's ID and name *****/ - HTM_TD_Begin ("class=\"DAT_N LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme], + Gbl.RowEvenOdd); HTM_TxtF ("%s: %s",Txt_ID,ID); HTM_BR (); HTM_TxtColonNBSP (Txt_Name); @@ -439,7 +442,7 @@ void Acc_ShowFormGoToRequestNewAccount (void) Cfg_PLATFORM_SHORT_NAME), NULL,NULL, Hlp_PROFILE_SignUp,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Button to go to request the creation of a new account *****/ Frm_BeginForm (ActFrmMyAcc); diff --git a/swad_agenda.c b/swad_agenda.c index 9df0b910..3c384c87 100644 --- a/swad_agenda.c +++ b/swad_agenda.c @@ -395,7 +395,7 @@ void Agd_ShowUsrAgenda (void) Gbl.Usrs.Other.UsrDat.FullName), Agd_PutIconsOtherPublicAgenda,Gbl.Usrs.Other.UsrDat.EnUsrCod, Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Show the current events in the user's agenda *****/ Agd_ShowEventsToday (&Agenda,Agd_ANOTHER_AGENDA_TODAY); @@ -447,7 +447,7 @@ void Agd_ShowOtherAgendaAfterLogIn (void) Gbl.Usrs.Other.UsrDat.FullName), Agd_PutIconsOtherPublicAgenda,Gbl.Usrs.Other.UsrDat.EnUsrCod, Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Show the current events in the user's agenda *****/ Agd_ShowEventsToday (&Agenda,Agd_ANOTHER_AGENDA_TODAY); @@ -770,6 +770,7 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda, { extern const char *Dat_TimeStatusClassVisible[Dat_NUM_TIME_STATUS]; extern const char *Dat_TimeStatusClassHidden[Dat_NUM_TIME_STATUS]; + extern const char *The_ClassDat[The_NUM_THEMES]; char *Anchor = NULL; static unsigned UniqueId = 0; char *Id; @@ -857,7 +858,7 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda, /* Text of the event */ HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_DIV_Begin ("class=\"PAR %s\"",AgdEvent.Hidden ? "DAT_LIGHT" : - "DAT"); + The_ClassDat[Gbl.Prefs.Theme]); Agd_DB_GetEventTxt (&AgdEvent,Txt); Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML @@ -1619,7 +1620,7 @@ void Agd_PrintAgdQRCode (void) Gbl.Usrs.Me.UsrDat.FullName), NULL,NULL, NULL,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Print QR code ****/ QR_PrintQRCode (); diff --git a/swad_announcement.c b/swad_announcement.c index 1dd944c2..bcf645a5 100644 --- a/swad_announcement.c +++ b/swad_announcement.c @@ -349,6 +349,7 @@ void Ann_ShowFormAnnouncement (void) { extern const char *Hlp_COMMUNICATION_Announcements; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_announcement; extern const char *Txt_MSG_Subject; extern const char *Txt_MSG_Content; @@ -374,7 +375,7 @@ void Ann_ShowFormAnnouncement (void) HTM_TxtColonNBSP (Txt_Users); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Rol_WriteSelectorRoles (1 << Rol_UNK | 1 << Rol_GST | 1 << Rol_STD | diff --git a/swad_assignment.c b/swad_assignment.c index 149f44b7..a2eabc14 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -393,6 +393,7 @@ void Asg_PrintOneAssignment (void) static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments, long AsgCod,bool PrintView) { + extern const char *The_ClassDat[The_NUM_THEMES]; char *Anchor = NULL; static unsigned UniqueId = 0; char *Id; @@ -468,9 +469,11 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments, /* Assignment folder */ if (PrintView) - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"", + The_ClassDat[Gbl.Prefs.Theme]); else - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (Asg.SendWork == Asg_SEND_WORK) Asg_WriteAssignmentFolder (&Asg,PrintView); HTM_TD_End (); @@ -501,7 +504,7 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments, Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (&Asg); HTM_DIV_Begin ("class=\"PAR %s\"",Asg.Hidden ? "DAT_LIGHT" : - "DAT"); + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt); HTM_DIV_End (); @@ -1065,6 +1068,7 @@ void Asg_RequestCreatOrEditAsg (void) { extern const char *Hlp_ASSESSMENT_Assignments_new_assignment; extern const char *Hlp_ASSESSMENT_Assignments_edit_assignment; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_assignment; extern const char *Txt_Edit_assignment; extern const char *Txt_Title; @@ -1134,84 +1138,84 @@ void Asg_RequestCreatOrEditAsg (void) } Asg_PutParams (&Assignments); - /***** Begin box and table *****/ - if (ItsANewAssignment) - Box_BoxTableBegin (NULL,Txt_New_assignment, - NULL,NULL, - Hlp_ASSESSMENT_Assignments_new_assignment,Box_NOT_CLOSABLE,2); - else - Box_BoxTableBegin (NULL, - Asg.Title[0] ? Asg.Title : - Txt_Edit_assignment, - NULL,NULL, - Hlp_ASSESSMENT_Assignments_edit_assignment,Box_NOT_CLOSABLE,2); + /***** Begin box and table *****/ + if (ItsANewAssignment) + Box_BoxTableBegin (NULL,Txt_New_assignment, + NULL,NULL, + Hlp_ASSESSMENT_Assignments_new_assignment,Box_NOT_CLOSABLE,2); + else + Box_BoxTableBegin (NULL, + Asg.Title[0] ? Asg.Title : + Txt_Edit_assignment, + NULL,NULL, + Hlp_ASSESSMENT_Assignments_edit_assignment,Box_NOT_CLOSABLE,2); - /***** Assignment title *****/ - HTM_TR_Begin (NULL); + /***** Assignment title *****/ + HTM_TR_Begin (NULL); - /* Label */ - Frm_LabelColumn ("RM","Title",Txt_Title); + /* Label */ + Frm_LabelColumn ("RM","Title",Txt_Title); - /* Data */ - HTM_TD_Begin ("class=\"LM\""); - HTM_INPUT_TEXT ("Title",Asg_MAX_CHARS_ASSIGNMENT_TITLE,Asg.Title, - HTM_DONT_SUBMIT_ON_CHANGE, - "id=\"Title\" required=\"required\"" - " class=\"TITLE_DESCRIPTION_WIDTH\""); - HTM_TD_End (); + /* Data */ + HTM_TD_Begin ("class=\"LM\""); + HTM_INPUT_TEXT ("Title",Asg_MAX_CHARS_ASSIGNMENT_TITLE,Asg.Title, + HTM_DONT_SUBMIT_ON_CHANGE, + "id=\"Title\" required=\"required\"" + " class=\"TITLE_DESCRIPTION_WIDTH\""); + HTM_TD_End (); - HTM_TR_End (); + HTM_TR_End (); - /***** Assignment start and end dates *****/ - Dat_PutFormStartEndClientLocalDateTimes (Asg.TimeUTC, - Dat_FORM_SECONDS_ON, - Gbl.Action.Act == ActFrmNewAsg ? SetHMSAllDay : - SetHMSDontSet); + /***** Assignment start and end dates *****/ + Dat_PutFormStartEndClientLocalDateTimes (Asg.TimeUTC, + Dat_FORM_SECONDS_ON, + Gbl.Action.Act == ActFrmNewAsg ? SetHMSAllDay : + SetHMSDontSet); - /***** Send work? *****/ - HTM_TR_Begin (NULL); + /***** Send work? *****/ + HTM_TR_Begin (NULL); - /* Label */ - Frm_LabelColumn ("RM","Folder",Txt_Upload_files_QUESTION); + /* Label */ + Frm_LabelColumn ("RM","Folder",Txt_Upload_files_QUESTION); - /* Data */ - HTM_TD_Begin ("class=\"LM\""); - HTM_LABEL_Begin ("class=\"DAT\""); - HTM_TxtColon (Txt_Folder); - HTM_INPUT_TEXT ("Folder",Brw_MAX_CHARS_FOLDER,Asg.Folder, - HTM_DONT_SUBMIT_ON_CHANGE, - "id=\"Folder\" size=\"30\""); - HTM_LABEL_End (); - HTM_TD_End (); + /* Data */ + HTM_TD_Begin ("class=\"LM\""); + HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); + HTM_TxtColon (Txt_Folder); + HTM_INPUT_TEXT ("Folder",Brw_MAX_CHARS_FOLDER,Asg.Folder, + HTM_DONT_SUBMIT_ON_CHANGE, + "id=\"Folder\" size=\"30\""); + HTM_LABEL_End (); + HTM_TD_End (); - HTM_TR_End (); + HTM_TR_End (); - /***** Assignment text *****/ - HTM_TR_Begin (NULL); + /***** Assignment text *****/ + HTM_TR_Begin (NULL); - /* Label */ - Frm_LabelColumn ("RT","Txt",Txt_Description); + /* Label */ + Frm_LabelColumn ("RT","Txt",Txt_Description); - /* Data */ - HTM_TD_Begin ("class=\"LT\""); - HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"10\"" - " class=\"TITLE_DESCRIPTION_WIDTH\""); - if (!ItsANewAssignment) - HTM_Txt (Txt); - HTM_TEXTAREA_End (); - HTM_TD_End (); + /* Data */ + HTM_TD_Begin ("class=\"LT\""); + HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"10\"" + " class=\"TITLE_DESCRIPTION_WIDTH\""); + if (!ItsANewAssignment) + HTM_Txt (Txt); + HTM_TEXTAREA_End (); + HTM_TD_End (); - HTM_TR_End (); + HTM_TR_End (); - /***** Groups *****/ - Asg_ShowLstGrpsToEditAssignment (Asg.AsgCod); + /***** Groups *****/ + Asg_ShowLstGrpsToEditAssignment (Asg.AsgCod); - /***** End table, send button and end box *****/ - if (ItsANewAssignment) - Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_assignment); - else - Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes); + /***** End table, send button and end box *****/ + if (ItsANewAssignment) + Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_assignment); + else + Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes); /***** End form *****/ Frm_EndForm (); @@ -1228,6 +1232,7 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod) { extern const char *Hlp_USERS_Groups; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Groups; extern const char *Txt_The_whole_course; unsigned NumGrpTyp; @@ -1252,7 +1257,8 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod) /***** First row: checkbox to select the whole course *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\""); + HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_LABEL_Begin (NULL); HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"WholeCrs\" value=\"Y\"%s" diff --git a/swad_attendance.c b/swad_attendance.c index 5362cbb9..9aab549b 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -447,6 +447,7 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events, struct Att_Event *Event, bool ShowOnlyThisAttEventComplete) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_View_event; char *Anchor = NULL; static unsigned UniqueId = 0; @@ -561,7 +562,7 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events, Att_GetAndWriteNamesOfGrpsAssociatedToAttEvent (Event); HTM_DIV_Begin ("class=\"%s\"",Event->Hidden ? "DAT_LIGHT" : - "DAT"); + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Description); HTM_DIV_End (); @@ -1126,6 +1127,7 @@ void Att_RequestCreatOrEditAttEvent (void) static void Att_ShowLstGrpsToEditAttEvent (long AttCod) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Groups; extern const char *Txt_The_whole_course; unsigned NumGrpTyp; @@ -1150,7 +1152,8 @@ static void Att_ShowLstGrpsToEditAttEvent (long AttCod) /***** First row: checkbox to select the whole course *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\""); + HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_LABEL_Begin (NULL); HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"WholeCrs\" value=\"Y\"%s" @@ -1680,6 +1683,8 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, struct UsrData *UsrDat, struct Att_Event *Event) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; static const char *ClassPhoto[Pho_NUM_SHAPES] = { [Pho_SHAPE_CIRCLE ] = "PHOTOC45x60", @@ -1746,8 +1751,8 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, /***** Write number of student in the list *****/ HTM_TD_Begin ("class=\"%s RT COLOR%u\"", - UsrDat->Accepted ? "DAT_N" : - "DAT", + UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] : + The_ClassDat[Gbl.Prefs.Theme], Gbl.RowEvenOdd); HTM_Unsigned (NumUsr); HTM_TD_End (); @@ -1927,7 +1932,7 @@ void Att_RegisterMeAsStdInAttEvent (void) Par_GetParToHTML (Str_BuildStringStr ("CommentStd%s", Gbl.Usrs.Me.UsrDat.EnUsrCod), CommentStd,Cns_MAX_BYTES_TEXT); - Str_FreeString (); + Str_FreeStrings (); if (Present || CommentStd[0] || @@ -2044,7 +2049,7 @@ void Att_RegisterStudentsInAttEvent (void) Par_GetParToHTML (Str_BuildStringStr ("CommentTch%s", Gbl.Usrs.LstUsrs[Rol_STD].Lst[NumUsr].EnUsrCod), CommentTch,Cns_MAX_BYTES_TEXT); - Str_FreeString (); + Str_FreeStrings (); Present = !Gbl.Usrs.LstUsrs[Rol_STD].Lst[NumUsr].Remove; @@ -2630,6 +2635,7 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events, Att_TypeOfView_t TypeOfView) { extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Events; extern const char *Txt_Event; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; @@ -2693,7 +2699,8 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events, /* Write a row for this event */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s CT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_INPUT_CHECKBOX ("AttCods",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"Event%u\" value=\"%ld\"%s", NumAttEvent,Events->Lst[NumAttEvent].AttCod, @@ -2701,13 +2708,15 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events, ""); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent); HTM_TxtF ("%u:",NumAttEvent + 1); HTM_LABEL_End (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (asprintf (&Id,"att_date_start_%u",UniqueId) < 0) Err_NotEnoughMemoryExit (); HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent); @@ -2720,12 +2729,14 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events, free (Id); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); - HTM_Txt (Events->Lst[NumAttEvent].Title); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); + HTM_Txt (Events->Lst[NumAttEvent].Title); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); - HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsTotal); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); + HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsTotal); HTM_TD_End (); HTM_TR_End (); @@ -2787,6 +2798,7 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events, unsigned NumUsrsInList, long *LstSelectedUsrCods) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Number_of_users; struct UsrData UsrDat; unsigned NumUsr; @@ -2829,9 +2841,10 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events, { HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"%u\" class=\"DAT_N LINE_TOP RM\"", + HTM_TD_Begin ("colspan=\"%u\" class=\"%s LINE_TOP RM\"", Gbl.Usrs.Listing.WithPhotos ? 4 : - 3); + 3, + The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Number_of_users); HTM_TD_End (); @@ -2840,14 +2853,16 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events, NumAttEvent++) if (Events->Lst[NumAttEvent].Selected) { - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"%s LINE_TOP RM\"", + The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsFromList); HTM_TD_End (); Total += Events->Lst[NumAttEvent].NumStdsFromList; } - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"%s LINE_TOP RM\"", + The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (Total); HTM_TD_End (); @@ -2915,6 +2930,8 @@ static void Att_WriteTableHeadSeveralAttEvents (const struct Att_Events *Events) static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events, unsigned NumUsr,struct UsrData *UsrDat) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; static const char *ClassPhoto[Pho_NUM_SHAPES] = { [Pho_SHAPE_CIRCLE ] = "PHOTOC21x28", @@ -2930,8 +2947,8 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events, HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"%s RM COLOR%u\"", - UsrDat->Accepted ? "DAT_N" : - "DAT", + UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] : + The_ClassDat[Gbl.Prefs.Theme], Gbl.RowEvenOdd); HTM_Unsigned (NumUsr + 1); HTM_TD_End (); @@ -2986,7 +3003,8 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events, } /***** Last column with the number of times this user is present *****/ - HTM_TD_Begin ("class=\"DAT_N RM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Unsigned (NumTimesPresent); HTM_TD_End (); @@ -3074,6 +3092,8 @@ static void Att_ListStdsWithAttEventsDetails (const struct Att_Events *Events, static void Att_ListAttEventsForAStd (const struct Att_Events *Events, unsigned NumUsr,struct UsrData *UsrDat) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Student_comment; extern const char *Txt_Teachers_comment; static const char *ClassPhoto[Pho_NUM_SHAPES] = @@ -3097,8 +3117,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events, HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"%s RM COLOR%u\"", - UsrDat->Accepted ? "DAT_N" : - "DAT", + UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] : + The_ClassDat[Gbl.Prefs.Theme], Gbl.RowEvenOdd); HTM_TxtF ("%u:",NumUsr); HTM_TD_End (); @@ -3117,8 +3137,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events, /***** Write user's ID ******/ HTM_TD_Begin ("class=\"%s LM\"", - UsrDat->Accepted ? "DAT_N" : - "DAT"); + UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] : + The_ClassDat[Gbl.Prefs.Theme]); ID_WriteUsrIDs (UsrDat,NULL); HTM_TD_End (); @@ -3172,7 +3192,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events, Att_PutCheckOrCross (Present); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (asprintf (&Id,"att_date_start_%u_%u",NumUsr,UniqueId) < 0) Err_NotEnoughMemoryExit (); HTM_SPAN_Begin ("id=\"%s\"",Id); @@ -3197,7 +3218,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events, HTM_TD_Begin ("class=\"BT%u\"",Gbl.RowEvenOdd); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LM COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_DL_Begin (); if (ShowCommentStd) diff --git a/swad_banner.c b/swad_banner.c index d72d2fb1..9ac5153b 100644 --- a/swad_banner.c +++ b/swad_banner.c @@ -168,26 +168,28 @@ void Ban_ShowAllBanners (void) static void Ban_WriteListOfBanners (const struct Ban_Banners *Banners) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumBan; /***** List start *****/ HTM_UL_Begin ("class=\"LIST_LEFT\""); - /***** Write all banners *****/ - for (NumBan = 0; - NumBan < Banners->Num; - NumBan++) - { - /* Write data of this banner */ - HTM_LI_Begin (NULL); - HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", - Banners->Lst[NumBan].WWW, - Banners->Lst[NumBan].FullName); - HTM_IMG (Cfg_URL_BANNER_PUBLIC,Banners->Lst[NumBan].Img,Banners->Lst[NumBan].FullName, - "class=\"BANNER\""); - HTM_A_End (); - HTM_LI_End (); - } + /***** Write all banners *****/ + for (NumBan = 0; + NumBan < Banners->Num; + NumBan++) + { + /* Write data of this banner */ + HTM_LI_Begin (NULL); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"", + Banners->Lst[NumBan].WWW, + Banners->Lst[NumBan].FullName, + The_ClassDat[Gbl.Prefs.Theme]); + HTM_IMG (Cfg_URL_BANNER_PUBLIC,Banners->Lst[NumBan].Img,Banners->Lst[NumBan].FullName, + "class=\"BANNER\""); + HTM_A_End (); + HTM_LI_End (); + } /***** List end *****/ HTM_UL_End (); @@ -400,6 +402,7 @@ void Ban_PutIconToViewBanners (void) static void Ban_ListBannersForEdition (struct Ban_Banners *Banners) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumBan; struct Ban_Banner *Ban; char *Anchor = NULL; @@ -446,7 +449,7 @@ static void Ban_ListBannersForEdition (struct Ban_Banners *Banners) /* Banner code */ HTM_TD_Begin ("class=\"%s RM\"", Ban->Hidden ? "DAT_LIGHT" : - "DAT"); + The_ClassDat[Gbl.Prefs.Theme]); HTM_ARTICLE_Begin (Anchor); HTM_Long (Ban->BanCod); HTM_ARTICLE_End (); diff --git a/swad_box.c b/swad_box.c index 40fa9fb0..e590abd0 100644 --- a/swad_box.c +++ b/swad_box.c @@ -82,10 +82,21 @@ void Box_BoxBegin (const char *Width,const char *Title, void (*FunctionToDrawContextualIcons) (void *Args),void *Args, const char *HelpLink,Box_Closable_t Closable) { + static const char *BgColor[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "FRAME FRAME_WHITE", + [The_THEME_GREY ] = "FRAME FRAME_GREY", + [The_THEME_PURPLE] = "FRAME FRAME_PURPLE", + [The_THEME_BLUE ] = "FRAME FRAME_BLUE", + [The_THEME_YELLOW] = "FRAME FRAME_YELLOW", + [The_THEME_PINK ] = "FRAME FRAME_PINK", + [The_THEME_DARK ] = "FRAME FRAME_DARK", + }; + Box_BoxInternalBegin (Width,Title, FunctionToDrawContextualIcons,Args, HelpLink,Closable, - "FRAME"); + BgColor[Gbl.Prefs.Theme]); } void Box_BoxShadowBegin (const char *Width,const char *Title, @@ -106,6 +117,16 @@ static void Box_BoxInternalBegin (const char *Width,const char *Title, { extern const char *Txt_Help; extern const char *Txt_Close; + static const char *ClassFrameTitleColor[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "FRAME_TITLE_WHITE", + [The_THEME_GREY ] = "FRAME_TITLE_GREY", + [The_THEME_PURPLE] = "FRAME_TITLE_PURPLE", + [The_THEME_BLUE ] = "FRAME_TITLE_BLUE", + [The_THEME_YELLOW] = "FRAME_TITLE_YELLOW", + [The_THEME_PINK ] = "FRAME_TITLE_PINK", + [The_THEME_DARK ] = "FRAME_TITLE_DARK", + }; /***** Check level of nesting *****/ if (Gbl.Box.Nested >= Box_MAX_NESTED - 1) // Can not nest a new box @@ -143,35 +164,35 @@ static void Box_BoxInternalBegin (const char *Width,const char *Title, /***** Row for left and right icons *****/ HTM_DIV_Begin ("class=\"FRAME_ICO\""); - /* Contextual icons at left */ - if (FunctionToDrawContextualIcons) - { - HTM_DIV_Begin ("class=\"FRAME_ICO_LEFT\""); - FunctionToDrawContextualIcons (Args); + /* Contextual icons at left */ + if (FunctionToDrawContextualIcons) + { + HTM_DIV_Begin ("class=\"FRAME_ICO_LEFT\""); + FunctionToDrawContextualIcons (Args); + HTM_DIV_End (); + } + + /* Icons at right: help and close */ + HTM_DIV_Begin ("class=\"FRAME_ICO_RIGHT\""); + + if (HelpLink) // Link to help + { + HTM_A_Begin ("href=\"%s%s\" target=\"_blank\"",Hlp_WIKI,HelpLink); + Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT", + "question.svg",Txt_Help); + HTM_A_End (); + } + + if (Closable == Box_CLOSABLE) // Icon to close the box + { + HTM_A_Begin ("href=\"\" onclick=\"toggleDisplay('%s');return false;\"", + Gbl.Box.Ids[Gbl.Box.Nested]); + Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT", + "times.svg",Txt_Close); + HTM_A_End (); + } + HTM_DIV_End (); - } - - /* Icons at right: help and close */ - HTM_DIV_Begin ("class=\"FRAME_ICO_RIGHT\""); - - if (HelpLink) // Link to help - { - HTM_A_Begin ("href=\"%s%s\" target=\"_blank\"",Hlp_WIKI,HelpLink); - Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT", - "question.svg",Txt_Help); - HTM_A_End (); - } - - if (Closable == Box_CLOSABLE) // Icon to close the box - { - HTM_A_Begin ("href=\"\" onclick=\"toggleDisplay('%s');return false;\"", - Gbl.Box.Ids[Gbl.Box.Nested]); - Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT", - "times.svg",Txt_Close); - HTM_A_End (); - } - - HTM_DIV_End (); /***** End row for left and right icons *****/ HTM_DIV_End (); @@ -179,10 +200,11 @@ static void Box_BoxInternalBegin (const char *Width,const char *Title, /***** Frame title *****/ if (Title) { - HTM_DIV_Begin ("class=\"FRAME_TITLE %s\"", + HTM_DIV_Begin ("class=\"FRAME_TITLE %s %s\"", Gbl.Box.Nested ? "FRAME_TITLE_SMALL" : - "FRAME_TITLE_BIG"); - HTM_Txt (Title); + "FRAME_TITLE_BIG", + ClassFrameTitleColor[Gbl.Prefs.Theme]); + HTM_Txt (Title); HTM_DIV_End (); } } diff --git a/swad_browser.c b/swad_browser.c index 87b48721..3e5ddbd9 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -3930,6 +3930,7 @@ static void Brw_InitHiddenLevels (void) static void Brw_ShowAndStoreSizeOfFileTree (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_level; extern const char *Txt_levels; extern const char *Txt_folder; @@ -3939,7 +3940,7 @@ static void Brw_ShowAndStoreSizeOfFileTree (void) extern const char *Txt_of_PART_OF_A_TOTAL; char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; - HTM_DIV_Begin ("class=\"DAT CM\""); + HTM_DIV_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); if (Brw_FileBrowserIsEditable[Gbl.FileBrowser.Type]) { @@ -7828,6 +7829,7 @@ bool Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_t FileType,const cha void Brw_ShowFileMetadata (void) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_The_file_of_folder_no_longer_exists_or_is_now_hidden; extern const char *Txt_Filename; extern const char *Txt_File_size; @@ -7998,7 +8000,7 @@ void Brw_ShowFileMetadata (void) HTM_TxtColon (Txt_Filename); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); Brw_WriteSmallLinkToDownloadFile (URL,&FileMetadata,FileNameToShow); HTM_TD_End (); @@ -8011,7 +8013,7 @@ void Brw_ShowFileMetadata (void) HTM_TxtColon (Txt_Uploaded_by); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (FileHasPublisher) { /* Show photo */ @@ -8042,7 +8044,7 @@ void Brw_ShowFileMetadata (void) HTM_TxtColon (Txt_File_size); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (FileSizeStr); HTM_TD_End (); @@ -8055,7 +8057,8 @@ void Brw_ShowFileMetadata (void) HTM_TxtColon (Txt_Date_of_creation); HTM_TD_End (); - HTM_TD_Begin ("id=\"filedate\" class=\"DAT LB\""); + HTM_TD_Begin ("id=\"filedate\" class=\"%s LB\"", + The_ClassDat[Gbl.Prefs.Theme]); Dat_WriteLocalDateHMSFromUTC ("filedate",FileMetadata.Time, Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, true,true,true,0x7); @@ -8070,7 +8073,7 @@ void Brw_ShowFileMetadata (void) Frm_LabelColumn ("RT","PublicFile",Txt_Availability); /* Data */ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanChangePublic) // I can change file to public { HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE, @@ -8097,7 +8100,7 @@ void Brw_ShowFileMetadata (void) Frm_LabelColumn ("RT","License",Txt_License); /* Data */ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) // I can edit file properties { HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE, @@ -8128,7 +8131,7 @@ void Brw_ShowFileMetadata (void) HTM_TxtColon (Txt_My_views); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (FileMetadata.NumMyViews); HTM_TD_End (); @@ -8142,7 +8145,7 @@ void Brw_ShowFileMetadata (void) HTM_TxtColon (Txt_Identified_views); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%u ",FileMetadata.NumViewsFromLoggedUsrs); HTM_TxtF ("(%u %s)", FileMetadata.NumLoggedUsrs, @@ -8159,7 +8162,7 @@ void Brw_ShowFileMetadata (void) HTM_TxtColon (Txt_Public_views); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (FileMetadata.NumPublicViews); HTM_TD_End (); @@ -8536,6 +8539,7 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL, struct FileMetadata *FileMetadata, const char *FileNameToShow) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Check_marks_in_the_file; /***** On the screen a link will be shown to download the file *****/ @@ -8553,7 +8557,10 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL, Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk); /* Begin link */ - HTM_BUTTON_SUBMIT_Begin (Txt_Check_marks_in_the_file,"BT_LINK DAT",NULL); + HTM_BUTTON_SUBMIT_Begin (Txt_Check_marks_in_the_file, + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); /* Name of the file of marks */ HTM_Txt (FileNameToShow); @@ -8567,8 +8574,8 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL, else { /* Put anchor and filename */ - HTM_A_Begin ("href=\"%s\" class=\"DAT\" title=\"%s\" target=\"_blank\"", - URL,FileNameToShow); + HTM_A_Begin ("href=\"%s\" class=\"%s\" title=\"%s\" target=\"_blank\"", + URL,The_ClassDat[Gbl.Prefs.Theme],FileNameToShow); HTM_Txt (FileNameToShow); HTM_A_End (); } @@ -9807,7 +9814,7 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs, TitlePlural), NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Write heading *****/ HTM_TR_Begin (NULL); @@ -9861,6 +9868,8 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs, static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Documents_area; extern const char *Txt_Teachers_files_area; extern const char *Txt_Shared_files_area; @@ -9931,7 +9940,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) HTM_TR_Begin (NULL); /***** Write number of document in this search *****/ - HTM_TD_Begin ("class=\"RT DAT %s\"",BgColor); + HTM_TD_Begin ("class=\"RT %s %s\"", + The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (++(*NumDocsNotHidden)); HTM_TD_End (); @@ -9941,9 +9951,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) { Frm_BeginFormGoTo (ActSeeInsInf); Deg_PutParamDegCod (InsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (InsShortName), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (InsShortName), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); Lgo_DrawLogo (HieLvl_INS,InsCod,InsShortName,20,"BT_LINK LT",true); HTM_TxtF (" %s",InsShortName); HTM_BUTTON_End (); @@ -9957,9 +9968,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) { Frm_BeginFormGoTo (ActSeeCtrInf); Deg_PutParamDegCod (CtrCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (CtrShortName), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (CtrShortName), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); Lgo_DrawLogo (HieLvl_CTR,CtrCod,CtrShortName,20,"LT",true); HTM_TxtF (" %s",CtrShortName); HTM_BUTTON_End (); @@ -9973,9 +9985,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) { Frm_BeginFormGoTo (ActSeeDegInf); Deg_PutParamDegCod (DegCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (DegShortName), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (DegShortName), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); Lgo_DrawLogo (HieLvl_DEG,DegCod,DegShortName,20,"LT",true); HTM_TxtF (" %s",DegShortName); HTM_BUTTON_End (); @@ -9989,8 +10002,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) { Frm_BeginFormGoTo (ActSeeCrsInf); Crs_PutParamCrsCod (CrsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (CrsShortName),"BT_LINK DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (CrsShortName), + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_Txt (CrsShortName); HTM_BUTTON_End (); Frm_EndForm (); @@ -10042,7 +10057,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) break; } - HTM_TD_Begin ("class=\"DAT LT %s\"",BgColor); + HTM_TD_Begin ("class=\"%s LT %s\"", + The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Txt (Title); HTM_TD_End (); @@ -10052,7 +10068,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) FileNameToShow); /***** Write file name using path (row[1]) *****/ - HTM_TD_Begin ("class=\"DAT_N LT %s\"",BgColor); + HTM_TD_Begin ("class=\"%s LT %s\"", + The_ClassDatN[Gbl.Prefs.Theme],BgColor); /* Begin form */ Action = Brw_ActReqDatFile[Brw_FileBrowserForFoundDocs[FileMetadata.FileBrowser]]; @@ -10092,7 +10109,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) FileMetadata.FilCod); /* File or folder icon */ - HTM_BUTTON_SUBMIT_Begin (FileNameToShow,"BT_LINK LT DAT_N",NULL); + HTM_BUTTON_SUBMIT_Begin (FileNameToShow, + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); if (FileMetadata.FilFolLnk.Type == Brw_IS_FOLDER) /* Icon with folder */ Ico_PutIcon ("folder-yellow.png",Txt_Folder,"CONTEXT_ICO_16x16"); diff --git a/swad_building.c b/swad_building.c index 3a6cd63c..e0468233 100644 --- a/swad_building.c +++ b/swad_building.c @@ -92,6 +92,7 @@ void Bld_ResetBuildings (struct Bld_Buildings *Buildings) void Bld_SeeBuildings (void) { extern const char *Hlp_CENTER_Buildings; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Buildings; extern const char *Txt_BUILDINGS_HELP_ORDER[Bld_NUM_ORDERS]; extern const char *Txt_BUILDINGS_ORDER[Bld_NUM_ORDERS]; @@ -148,17 +149,20 @@ void Bld_SeeBuildings (void) HTM_TR_Begin (NULL); /* Short name */ - HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LM %s\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[RowEvenOdd]); HTM_Txt (Buildings.Lst[NumBuilding].ShrtName); HTM_TD_End (); /* Full name */ - HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LM %s\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[RowEvenOdd]); HTM_Txt (Buildings.Lst[NumBuilding].FullName); HTM_TD_End (); /* Location */ - HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LM %s\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[RowEvenOdd]); HTM_Txt (Buildings.Lst[NumBuilding].Location); HTM_TD_End (); @@ -404,6 +408,7 @@ void Bld_FreeListBuildings (struct Bld_Buildings *Buildings) static void Bld_ListBuildingsForEdition (const struct Bld_Buildings *Buildings) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumBld; struct Bld_Building *Building; char *Anchor = NULL; @@ -433,7 +438,7 @@ static void Bld_ListBuildingsForEdition (const struct Bld_Buildings *Buildings) HTM_TD_End (); /* Building code */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_ARTICLE_Begin (Anchor); HTM_Long (Building->BldCod); HTM_ARTICLE_End (); diff --git a/swad_calendar.c b/swad_calendar.c index e9f6fb5a..aab0049d 100644 --- a/swad_calendar.c +++ b/swad_calendar.c @@ -134,7 +134,7 @@ void Cal_ShowFormToSelFirstDayOfWeek (Act_Action_t Action, Ico_PutSettingIconLink (Icon, Str_BuildStringStr (Txt_First_day_of_the_week_X, Txt_DAYS_SMALL[FirstDayOfWeek])); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); HTM_DIV_End (); } diff --git a/swad_center.c b/swad_center.c index 5766ac56..0bf7837b 100644 --- a/swad_center.c +++ b/swad_center.c @@ -105,6 +105,7 @@ static void Ctr_FormToGoToMap (struct Ctr_Center *Ctr); void Ctr_SeeCtrWithPendingDegs (void) { extern const char *Hlp_SYSTEM_Pending; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Centers_with_pending_degrees; extern const char *Txt_Center; extern const char *Txt_Degrees_ABBREVIATION; @@ -157,7 +158,8 @@ void Ctr_SeeCtrWithPendingDegs (void) HTM_TD_End (); /* Number of pending degrees (row[1]) */ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"", + The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Txt (row[1]); HTM_TD_End (); @@ -186,8 +188,8 @@ void Ctr_DrawCenterLogoAndNameWithLink (struct Ctr_Center *Ctr,Act_Action_t Acti Ctr_PutParamCtrCod (Ctr->CtrCod); /***** Link to action *****/ - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Ctr->FullName),ClassLink,NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Ctr->FullName),ClassLink,NULL); + Str_FreeStrings (); /***** Center logo and name *****/ Lgo_DrawLogo (HieLvl_CTR,Ctr->CtrCod,Ctr->ShrtName,16,ClassLogo,true); @@ -248,7 +250,7 @@ static void Ctr_ListCenters (void) Gbl.Hierarchy.Ins.FullName), Ctr_PutIconsListingCenters,NULL, Hlp_INSTITUTION_Centers,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); if (Gbl.Hierarchy.Ctrs.Num) // There are centers in the current institution { @@ -325,6 +327,8 @@ static void Ctr_PutIconToEditCenters (void) static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_CENTER_STATUS[Hie_NUM_STATUS_TXT]; struct Plc_Place Plc; const char *TxtClassNormal; @@ -338,12 +342,12 @@ static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr) if (Ctr->Status & Hie_STATUS_BIT_PENDING) { TxtClassNormal = "DAT_LIGHT"; - TxtClassStrong = "BT_LINK LT DAT_LIGHT"; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT"); } else { - TxtClassNormal = "DAT"; - TxtClassStrong = "BT_LINK LT DAT_N"; + TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme]; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]); } BgColor = (Ctr->CtrCod == Gbl.Hierarchy.Ctr.CtrCod) ? "LIGHT_BLUE" : Gbl.ColorRows[Gbl.RowEvenOdd]; @@ -394,6 +398,7 @@ static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr) HTM_TR_End (); + Str_FreeStrings (); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; } @@ -452,7 +457,7 @@ static void Ctr_EditCentersInternal (void) Gbl.Hierarchy.Ins.FullName), Ctr_PutIconsEditingCenters,NULL, Hlp_INSTITUTION_Centers,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Put a form to create a new center *****/ Ctr_PutFormToCreateCenter (&Places); @@ -740,6 +745,7 @@ void Ctr_WriteSelectorOfCenter (void) static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Another_place; extern const char *Txt_CENTER_STATUS[Hie_NUM_STATUS_TXT]; unsigned NumCtr; @@ -791,7 +797,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Center code */ - HTM_TD_Begin ("class=\"DAT CODE\""); + HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Ctr->CtrCod); HTM_TD_End (); @@ -801,7 +807,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Place */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActChgCtrPlc); @@ -829,7 +835,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Center short name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActRenCtrSho); @@ -844,7 +850,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Center full name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActRenCtrFul); @@ -859,7 +865,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Center WWW */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActChgCtrWWW); @@ -873,7 +879,10 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) Str_Copy (WWW,Ctr->WWW,sizeof (WWW) - 1); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\""); HTM_A_Begin ("href=\"%s\" target=\"_blank\"" - " class=\"DAT\" title=\"%s\"",Ctr->WWW,Ctr->WWW); + " class=\"%s\" title=\"%s\"", + Ctr->WWW, + The_ClassDat[Gbl.Prefs.Theme], + Ctr->WWW); HTM_Txt (WWW); HTM_A_End (); HTM_DIV_End (); @@ -881,17 +890,17 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Number of users who claim to belong to this center */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsCtr); HTM_TD_End (); /* Number of degrees */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumDegs); HTM_TD_End (); /* Number of users in courses of this center */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsInCrssOfCtr); HTM_TD_End (); @@ -900,7 +909,8 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CURRENT_CRS); - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Msg_WriteMsgAuthor (&UsrDat,true,NULL); HTM_TD_End (); @@ -1257,8 +1267,8 @@ static void Ctr_ShowAlertAndButtonToGoToCtr (void) Ale_ShowLastAlertAndButton (ActSeeDeg,NULL,NULL, Ctr_PutParamGoToCtr,&Ctr_EditingCtr->CtrCod, Btn_CONFIRM_BUTTON, - Hie_BuildGoToMsg (Ctr_EditingCtr->ShrtName)); - Hie_FreeGoToMsg (); + Str_BuildGoToMsg (Ctr_EditingCtr->ShrtName)); + Str_FreeStrings (); } else /***** Alert *****/ @@ -1277,6 +1287,7 @@ static void Ctr_PutParamGoToCtr (void *CtrCod) static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_center; extern const char *Txt_Another_place; extern const char *Txt_Create_center; @@ -1350,27 +1361,28 @@ static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places) HTM_TD_End (); /***** Number of users who claim to belong to this center *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Number of degrees *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Number of users in courses of this center *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Center requester *****/ - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL); HTM_TD_End (); /***** Center status *****/ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TD_End (); HTM_TR_End (); @@ -1824,7 +1836,7 @@ void Ctr_ListCtrsFound (MYSQL_RES **mysql_res,unsigned NumCtrs) Txt_centers), NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Write heading *****/ Ctr_PutHeadCentersForSeeing (false); // Order not selectable diff --git a/swad_center_config.c b/swad_center_config.c index eb12bee5..966e947f 100644 --- a/swad_center_config.c +++ b/swad_center_config.c @@ -433,6 +433,7 @@ static void CtrCfg_Altitude (void) static void CtrCfg_Photo (bool PrintView,bool PutForm,bool PutLink, const char PathPhoto[PATH_MAX + 1]) { + extern const char *The_ClassDatN[The_NUM_THEMES]; char *PhotoAttribution = NULL; char *URL; char *Icon; @@ -449,8 +450,8 @@ static void CtrCfg_Photo (bool PrintView,bool PutForm,bool PutLink, /***** Photo image *****/ HTM_DIV_Begin ("class=\"DAT_SMALL CM\""); if (PutLink) - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"", - Gbl.Hierarchy.Ctr.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Gbl.Hierarchy.Ctr.WWW,The_ClassDatN[Gbl.Prefs.Theme]); if (asprintf (&URL,"%s/%02u/%u", Cfg_URL_CTR_PUBLIC, (unsigned) (Gbl.Hierarchy.Ctr.CtrCod % 100), @@ -546,6 +547,7 @@ static void CtrCfg_FreePhotoAttr (char **PhotoAttribution) static void CtrCfg_Institution (bool PrintView,bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Institution; unsigned NumIns; @@ -558,7 +560,7 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm) Txt_Institution); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { /* Get list of institutions of the current country */ @@ -587,9 +589,10 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm) { Frm_BeginFormGoTo (ActSeeInsInf); Ins_PutParamInsCod (Gbl.Hierarchy.Ins.InsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Ins.ShrtName), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Ins.ShrtName), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); } Lgo_DrawLogo (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.ShrtName, @@ -635,6 +638,7 @@ static void CtrCfg_ShrtName (bool PutForm) static void CtrCfg_Place (bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Place; extern const char *Txt_Another_place; struct Plc_Places Places; @@ -657,7 +661,7 @@ static void CtrCfg_Place (bool PutForm) Txt_Place); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { /* Get list of places of the current institution */ @@ -723,6 +727,7 @@ static void CtrCfg_QR (void) static void CtrCfg_NumUsrs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Users_of_the_center; /***** Number of users *****/ @@ -732,7 +737,7 @@ static void CtrCfg_NumUsrs (void) Frm_LabelColumn ("RT",NULL,Txt_Users_of_the_center); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ctr_GetCachedNumUsrsWhoClaimToBelongToCtr (&Gbl.Hierarchy.Ctr)); HTM_TD_End (); @@ -745,6 +750,7 @@ static void CtrCfg_NumUsrs (void) static void CtrCfg_NumDegs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Degrees; extern const char *Txt_Degrees_of_CENTER_X; @@ -760,8 +766,9 @@ static void CtrCfg_NumDegs (void) Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod); HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Degrees_of_CENTER_X, Gbl.Hierarchy.Ctr.ShrtName), - "BT_LINK DAT",NULL); - Str_FreeString (); + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_Unsigned (Deg_GetCachedNumDegsInCtr (Gbl.Hierarchy.Ctr.CtrCod)); HTM_BUTTON_End (); Frm_EndForm (); @@ -776,6 +783,7 @@ static void CtrCfg_NumDegs (void) static void CtrCfg_NumCrss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Courses; /***** Number of courses *****/ @@ -785,7 +793,7 @@ static void CtrCfg_NumCrss (void) Frm_LabelColumn ("RT",NULL,Txt_Courses); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Crs_GetCachedNumCrssInCtr (Gbl.Hierarchy.Ctr.CtrCod)); HTM_TD_End (); diff --git a/swad_changelog.h b/swad_changelog.h index 44b6dbd1..c6663ee5 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -602,10 +602,13 @@ TODO: FIX BUG, URGENT! En las fechas como par TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo. */ -#define Log_PLATFORM_VERSION "SWAD 21.68 (2021-12-08)" +#define Log_PLATFORM_VERSION "SWAD 21.69 (2021-12-15)" #define CSS_FILE "swad21.68.css" #define JS_FILE "swad21.67.4.js" /* +// TODO: al ver los resultados de un juego como profesor, el rol del estudiante sale como desconocido y no se puede ver el DNI + + Version 21.69: Dec 15, 2021 Working on design of dark theme. (321089 lines) Version 21.68: Dec 08, 2021 Beginning design of dark theme. (320444 lines) Copy the following icons to icon public directory: sudo mkdir /var/www/html/swad/icon/theme/dark diff --git a/swad_chat.c b/swad_chat.c index 651bc00f..3755e3f4 100644 --- a/swad_chat.c +++ b/swad_chat.c @@ -103,6 +103,7 @@ void Cht_ShowChatRooms (void) void Cht_ShowListOfAvailableChatRooms (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Chat_rooms; extern const char *Txt_General; extern const char *Txt_SEX_PLURAL_Abc[Usr_NUM_SEXS]; @@ -135,7 +136,7 @@ void Cht_ShowListOfAvailableChatRooms (void) HTM_UL_Begin ("class=\"LIST_TREE\""); /***** Title of top level *****/ - HTM_LI_Begin ("class=\"DAT\""); + HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); Ico_PutIcon ("comments.svg",Txt_Chat_rooms,"ICO16x16"); HTM_TxtF (" %s",Txt_Chat_rooms); HTM_LI_End (); @@ -242,6 +243,7 @@ void Cht_ShowListOfAvailableChatRooms (void) void Cht_ShowListOfChatRoomsWithUsrs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Rooms_with_users; extern const char *Txt_CHAT_Room_code; extern const char *Txt_Number_of_users; @@ -275,11 +277,11 @@ void Cht_ShowListOfChatRoomsWithUsrs (void) HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (row[0]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (row[1]); HTM_TD_End (); diff --git a/swad_cookie.c b/swad_cookie.c index 3577a050..9ebeb48e 100644 --- a/swad_cookie.c +++ b/swad_cookie.c @@ -55,6 +55,8 @@ static void Coo_PutIconsCookies (__attribute__((unused)) void *Args); void Coo_EditMyPrefsOnCookies (void) { extern const char *Hlp_PROFILE_Settings_cookies; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Cookies; extern const char *Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites; @@ -71,17 +73,19 @@ void Coo_EditMyPrefsOnCookies (void) Frm_BeginFormAnchor (ActChgCooPrf,Coo_COOKIES_ID); /* Begin container */ - HTM_DIV_Begin ("class=\"%s\"", - (Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies) ? "DAT_N LIGHT_BLUE" : - "DAT"); - /* Check box */ - HTM_LABEL_Begin (NULL); - HTM_INPUT_CHECKBOX ("cookies",HTM_SUBMIT_ON_CHANGE, - "value=\"Y\"%s", - Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies ? " checked=\"checked\"" : - ""); - HTM_Txt (Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites); - HTM_LABEL_End (); + if (Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies) + HTM_DIV_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); + + /* Check box */ + HTM_LABEL_Begin (NULL); + HTM_INPUT_CHECKBOX ("cookies",HTM_SUBMIT_ON_CHANGE, + "value=\"Y\"%s", + Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies ? " checked=\"checked\"" : + ""); + HTM_Txt (Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites); + HTM_LABEL_End (); /* End container */ HTM_DIV_End (); diff --git a/swad_country.c b/swad_country.c index ba914ffd..6abda8ea 100644 --- a/swad_country.c +++ b/swad_country.c @@ -98,6 +98,7 @@ static void Cty_FormToGoToMap (struct Cty_Countr *Cty); void Cty_SeeCtyWithPendingInss (void) { extern const char *Hlp_SYSTEM_Pending; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Countries_with_pending_institutions; extern const char *Txt_Country; extern const char *Txt_Institutions_ABBREVIATION; @@ -156,11 +157,13 @@ void Cty_SeeCtyWithPendingInss (void) Cty_DrawCountryMapAndNameWithLink (&Cty,ActSeeIns, "COUNTRY_SMALL", "COUNTRY_MAP_SMALL", - "BT_LINK DAT"); + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme])); + Str_FreeStrings (); HTM_TD_End (); /* Number of pending institutions (row[1]) */ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"", + The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Txt (row[1]); HTM_TD_End (); @@ -204,6 +207,7 @@ void Cty_ListCountries1 (void) void Cty_ListCountries2 (void) { extern const char *Hlp_SYSTEM_Countries; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Countries; extern const char *Txt_Other_countries; extern const char *Txt_Country_unspecified; @@ -228,7 +232,8 @@ void Cty_ListCountries2 (void) /***** Separation row *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"8\" class=\"DAT CM\""); + HTM_TD_Begin ("colspan=\"8\" class=\"%s CM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_NBSP (); HTM_TD_End (); HTM_TR_End (); @@ -236,40 +241,40 @@ void Cty_ListCountries2 (void) /***** Write users and institutions in other countries *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_Other_countries); HTM_TD_End (); /* Number of users who claim to belong to another country */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Cty_GetCachedNumUsrsWhoClaimToBelongToAnotherCty ()); HTM_TD_End (); /* Number of institutions in other countries */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ins_GetCachedNumInssInCty (0)); HTM_TD_End (); /* Number of centers in other countries */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ctr_GetCachedNumCtrsInCty (0)); HTM_TD_End (); /* Number of degrees in other countries */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Deg_GetCachedNumDegsInCty (0)); HTM_TD_End (); /* Number of courses in other countries */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Crs_GetCachedNumCrssInCty (0)); HTM_TD_End (); /* Number of users in courses of other countries */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Enr_GetCachedNumUsrsInCrss (HieLvl_CTY,0, 1 << Rol_STD | 1 << Rol_NET | @@ -281,39 +286,39 @@ void Cty_ListCountries2 (void) /***** Write users and institutions with unknown country *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_Country_unspecified); HTM_TD_End (); /* Number of users who do not claim to belong to any country */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Cty_GetCachedNumUsrsWhoDontClaimToBelongToAnyCty ()); HTM_TD_End (); /* Number of institutions with unknown country */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ins_GetCachedNumInssInCty (-1L)); HTM_TD_End (); /* Number of centers with unknown country */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ctr_GetCachedNumCtrsInCty (-1L)); HTM_TD_End (); /* Number of degrees with unknown country */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Deg_GetCachedNumDegsInCty (-1L)); HTM_TD_End (); /* Number of courses with unknown country */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Crs_GetCachedNumCrssInCty (-1L)); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); @@ -395,6 +400,8 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable) static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; const char *BgColor; BgColor = (Cty->CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? "LIGHT_BLUE" : @@ -403,7 +410,7 @@ static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty) HTM_TR_Begin (NULL); /***** Number of country in this list *****/ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (NumCty); HTM_TD_End (); @@ -412,36 +419,37 @@ static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty) Cty_DrawCountryMapAndNameWithLink (Cty,ActSeeIns, "COUNTRY_SMALL", "COUNTRY_MAP_SMALL", - "BT_LINK DAT_N"); + Str_BuildStringStr ("BT_LINK %s",The_ClassDatN[Gbl.Prefs.Theme])); + Str_FreeStrings (); HTM_TD_End (); /***** Number of users who claim to belong to this country *****/ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (Cty_GetCachedNumUsrsWhoClaimToBelongToCty (Cty)); HTM_TD_End (); /***** Number of institutions *****/ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (Ins_GetCachedNumInssInCty (Cty->CtyCod)); HTM_TD_End (); /***** Number of centers *****/ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (Ctr_GetCachedNumCtrsInCty (Cty->CtyCod)); HTM_TD_End (); /***** Number of degrees *****/ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (Deg_GetCachedNumDegsInCty (Cty->CtyCod)); HTM_TD_End (); /***** Number of courses *****/ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (Crs_GetCachedNumCrssInCty (Cty->CtyCod)); HTM_TD_End (); /***** Number of users in courses *****/ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (Enr_GetCachedNumUsrsInCrss (HieLvl_CTY,Cty->CtyCod, 1 << Rol_STD | 1 << Rol_NET | @@ -505,9 +513,9 @@ void Cty_DrawCountryMapAndNameWithLink (struct Cty_Countr *Cty,Act_Action_t Acti HTM_DIV_Begin ("class=\"%s\"",ClassContainer); /***** Link to action *****/ - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Cty->Name[Gbl.Prefs.Language]), + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Cty->Name[Gbl.Prefs.Language]), ClassLink,NULL); - Hie_FreeGoToMsg (); + Str_FreeStrings (); /***** Draw country map *****/ Cty_DrawCountryMap (Cty,ClassMap); @@ -548,7 +556,7 @@ void Cty_DrawCountryMap (struct Cty_Countr *Cty,const char *Class) HTM_IMG (URL,Str_BuildStringStr ("%s.png",Cty->Alpha2), Cty->Name[Gbl.Prefs.Language], "class=\"%s\"",Class); - Str_FreeString (); + Str_FreeStrings (); free (URL); } else @@ -1040,6 +1048,7 @@ void Cty_FreeListCountries (void) static void Cty_ListCountriesForEdition (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_STR_LANG_NAME[1 + Lan_NUM_LANGUAGES]; unsigned NumCty; struct Cty_Countr *Cty; @@ -1082,24 +1091,28 @@ static void Cty_ListCountriesForEdition (void) HTM_TD_End (); /* Numerical country code (ISO 3166-1) */ - HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES); + HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"", + 1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%03ld",Cty->CtyCod); HTM_TD_End (); /* Alphabetic country code with 2 letters (ISO 3166-1) */ - HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES); + HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"", + 1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Cty->Alpha2); HTM_TD_End (); HTM_TD_Empty (3); /* Number of users */ - HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES); + HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"", + 1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsCty); HTM_TD_End (); /* Number of institutions */ - HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES); + HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"", + 1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumInss); HTM_TD_End (); @@ -1113,7 +1126,7 @@ static void Cty_ListCountriesForEdition (void) HTM_TR_Begin (NULL); /* Language */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_STR_LANG_NAME[Lan]); HTM_TD_End (); @@ -1395,8 +1408,8 @@ static void Cty_ShowAlertAndButtonToGoToCty (void) Ale_ShowLastAlertAndButton (ActSeeIns,NULL,NULL, Cty_PutParamGoToCty,&Cty_EditingCty->CtyCod, Btn_CONFIRM_BUTTON, - Hie_BuildGoToMsg (Cty_EditingCty->Name[Gbl.Prefs.Language])); - Hie_FreeGoToMsg (); + Str_BuildGoToMsg (Cty_EditingCty->Name[Gbl.Prefs.Language])); + Str_FreeStrings (); } else /***** Alert *****/ @@ -1416,9 +1429,10 @@ static void Cty_PutParamGoToCty (void *CtyCod) static void Cty_PutFormToCreateCountry (void) { + extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_country; extern const char *Txt_STR_LANG_NAME[1 + Lan_NUM_LANGUAGES]; - extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES]; extern const char *Txt_Create_country; Lan_Language_t Lan; char StrCtyCod[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; @@ -1460,12 +1474,14 @@ static void Cty_PutFormToCreateCountry (void) HTM_TD_Empty (3); /***** Number of users *****/ - HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES); + HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"", + 1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Number of institutions *****/ - HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES); + HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"", + 1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); @@ -1479,7 +1495,7 @@ static void Cty_PutFormToCreateCountry (void) HTM_TR_Begin (NULL); /* Language */ - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_STR_LANG_NAME[Lan]); HTM_TD_End (); @@ -1796,7 +1812,7 @@ void Cty_ListCtysFound (MYSQL_RES **mysql_res,unsigned NumCtys) Txt_countries), NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Write heading *****/ Cty_PutHeadCountriesForSeeing (false); // Order not selectable diff --git a/swad_country_config.c b/swad_country_config.c index 11514a0f..ecd237ed 100644 --- a/swad_country_config.c +++ b/swad_country_config.c @@ -357,6 +357,7 @@ static void CtyCfg_MapImage (bool PrintView,bool PutLink) static void CtyCfg_Platform (bool PrintView) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Platform; /***** Institution *****/ @@ -366,13 +367,14 @@ static void CtyCfg_Platform (bool PrintView) Frm_LabelColumn ("RT",NULL,Txt_Platform); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (!PrintView) { Frm_BeginFormGoTo (ActSeeSysInf); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Cfg_PLATFORM_SHORT_NAME), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Cfg_PLATFORM_SHORT_NAME), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); } Ico_PutIcon ("swad64x64.png",Cfg_PLATFORM_FULL_NAME,"ICO20x20"); HTM_NBSP (); @@ -393,6 +395,7 @@ static void CtyCfg_Platform (bool PrintView) static void CtyCfg_Name (bool PutLink) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Country; /***** Country name *****/ @@ -402,10 +405,11 @@ static void CtyCfg_Name (bool PutLink) Frm_LabelColumn ("RT",NULL,Txt_Country); /* Data */ - HTM_TD_Begin ("class=\"DAT_N LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (PutLink) - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"", - Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language], + The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]); if (PutLink) HTM_A_End (); @@ -438,6 +442,7 @@ static void CtyCfg_QR (void) static void CtyCfg_NumUsrs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Users_of_the_country; /***** Number of users *****/ @@ -447,7 +452,7 @@ static void CtyCfg_NumUsrs (void) Frm_LabelColumn ("RT",NULL,Txt_Users_of_the_country); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Cty_GetCachedNumUsrsWhoClaimToBelongToCty (&Gbl.Hierarchy.Cty)); HTM_TD_End (); @@ -460,6 +465,7 @@ static void CtyCfg_NumUsrs (void) static void CtyCfg_NumInss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Institutions; extern const char *Txt_Institutions_of_COUNTRY_X; @@ -475,8 +481,9 @@ static void CtyCfg_NumInss (void) Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod); HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Institutions_of_COUNTRY_X, Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]), - "BT_LINK DAT",NULL); - Str_FreeString (); + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_Unsigned (Ins_GetCachedNumInssInCty (Gbl.Hierarchy.Cty.CtyCod)); HTM_BUTTON_End (); Frm_EndForm (); @@ -491,6 +498,7 @@ static void CtyCfg_NumInss (void) static void CtyCfg_NumDegs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Degrees; /***** Number of degrees *****/ @@ -500,7 +508,7 @@ static void CtyCfg_NumDegs (void) Frm_LabelColumn ("RT",NULL,Txt_Degrees); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Deg_GetCachedNumDegsInCty (Gbl.Hierarchy.Cty.CtyCod)); HTM_TD_End (); @@ -513,6 +521,7 @@ static void CtyCfg_NumDegs (void) static void CtyCfg_NumCrss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Courses; /***** Number of courses *****/ @@ -522,7 +531,7 @@ static void CtyCfg_NumCrss (void) Frm_LabelColumn ("RT",NULL,Txt_Courses); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Crs_GetCachedNumCrssInCty (Gbl.Hierarchy.Cty.CtyCod)); HTM_TD_End (); diff --git a/swad_course.c b/swad_course.c index c008d4cd..41ea582d 100644 --- a/swad_course.c +++ b/swad_course.c @@ -364,11 +364,11 @@ static void Crs_WriteListMyCoursesToSelectOne (void) Lay_IndentDependingOnLevel (5,IsLastItemInLevel); Frm_BeginForm (ActMyCrs); Crs_PutParamCrsCod (Hie.Crs.CrsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Hie.Crs.ShrtName), + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Hie.Crs.ShrtName), Highlight ? ClassHighlight : ClassNormal, NULL); - Hie_FreeGoToMsg (); + Str_FreeStrings (); Ico_PutIcon ("chalkboard-teacher.svg",Hie.Crs.FullName,"ICO16x16"); HTM_TxtF (" %s",Hie.Crs.ShrtName); HTM_BUTTON_End (); @@ -851,7 +851,7 @@ static void Crs_ListCourses (void) Gbl.Hierarchy.Deg.ShrtName), Crs_PutIconsListCourses,NULL, Hlp_DEGREE_Courses,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); if (Gbl.Hierarchy.Crss.Num) // There are courses in the current degree { @@ -928,6 +928,8 @@ static void Crs_PutIconToEditCourses (void) static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_COURSE_With_users; extern const char *Txt_COURSE_Without_users; extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE]; @@ -952,12 +954,12 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year) if (Crs->Status & Hie_STATUS_BIT_PENDING) { TxtClassNormal = "DAT_LIGHT"; - TxtClassStrong = "BT_LINK LT DAT_LIGHT"; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT"); } else { - TxtClassNormal = "DAT"; - TxtClassStrong = "BT_LINK LT DAT_N"; + TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme]; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]); } /* Check if this course is one of my courses */ @@ -997,9 +999,9 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year) HTM_TD_Begin ("class=\"%s LM %s\"",TxtClassStrong,BgColor); Frm_BeginFormGoTo (ActSeeCrsInf); Crs_PutParamCrsCod (Crs->CrsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs->FullName), + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs->FullName), TxtClassStrong,NULL); - Hie_FreeGoToMsg (); + Str_FreeStrings (); HTM_Txt (Crs->FullName); HTM_BUTTON_End (); Frm_EndForm (); @@ -1020,6 +1022,8 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year) Hie_WriteStatusCell (Crs->Status,TxtClassNormal,BgColor,Txt_COURSE_STATUS); HTM_TR_End (); + + Str_FreeStrings (); } } @@ -1061,7 +1065,7 @@ static void Crs_EditCoursesInternal (void) Gbl.Hierarchy.Deg.ShrtName), Crs_PutIconsEditingCourses,NULL, Hlp_DEGREE_Courses,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Put a form to create or request a new course *****/ Crs_PutFormToCreateCourse (); @@ -1138,6 +1142,7 @@ static void Crs_ListCoursesForEdition (void) static void Crs_ListCoursesOfAYearForEdition (unsigned Year) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE]; extern const char *Txt_COURSE_STATUS[Hie_NUM_STATUS_TXT]; struct Crs_Course *Crs; @@ -1181,12 +1186,12 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_End (); /* Course code */ - HTM_TD_Begin ("class=\"DAT CODE\""); + HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Crs->CrsCod); HTM_TD_End (); /* Institutional code of the course */ - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActChgInsCrsCod); @@ -1201,7 +1206,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_End (); /* Course year */ - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActChgCrsYea); @@ -1224,7 +1229,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_End (); /* Course short name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActRenCrsSho); @@ -1239,7 +1244,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_End (); /* Course full name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActRenCrsFul); @@ -1254,13 +1259,13 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_End (); /* Current number of teachers in this course */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Rol_TCH] + NumUsrs[Rol_NET]); HTM_TD_End (); /* Current number of students in this course */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Rol_STD]); HTM_TD_End (); @@ -1269,7 +1274,8 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CURRENT_CRS); - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Msg_WriteMsgAuthor (&UsrDat,true,NULL); HTM_TD_End (); @@ -1303,6 +1309,7 @@ static bool Crs_CheckIfICanEdit (struct Crs_Course *Crs) static void Crs_PutFormToCreateCourse (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_course; extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE]; extern const char *Txt_Create_course; @@ -1370,22 +1377,23 @@ static void Crs_PutFormToCreateCourse (void) HTM_TD_End (); /***** Current number of teachers in this course *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Current number of students in this course *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Course requester *****/ - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL); HTM_TD_End (); /***** Course status *****/ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TD_End (); HTM_TR_End (); @@ -2130,8 +2138,8 @@ static void Crs_PutButtonToGoToCrs (void) { Frm_BeginForm (ActSeeCrsInf); Crs_PutParamCrsCod (Crs_EditingCrs->CrsCod); - Btn_PutConfirmButton (Hie_BuildGoToMsg (Crs_EditingCrs->ShrtName)); - Hie_FreeGoToMsg (); + Btn_PutConfirmButton (Str_BuildGoToMsg (Crs_EditingCrs->ShrtName)); + Str_FreeStrings (); Frm_EndForm (); } } @@ -2151,7 +2159,7 @@ static void Crs_PutButtonToRegisterInCrs (void) Btn_PutCreateButton (Str_BuildStringStr (Txt_Register_me_in_X, Crs_EditingCrs->ShrtName)); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); } @@ -2272,7 +2280,7 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role) HTM_TxtColon (Str_BuildStringStr (Txt_USER_in_COURSE, Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex])); - Str_FreeString (); + Str_FreeStrings (); HTM_TH_End (); HTM_TR_End (); @@ -2335,7 +2343,7 @@ void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss) Txt_courses), NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Heading row *****/ HTM_TR_Begin (NULL); @@ -2376,6 +2384,8 @@ void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss) static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnAccepted) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Enrolment_confirmed; extern const char *Txt_Enrolment_not_confirmed; extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE]; @@ -2418,13 +2428,13 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA NumUsrs = NumStds + NumNETs + NumTchs; if (NumUsrs) { - ClassTxt = "DAT_N"; - ClassLink = "BT_LINK LT DAT_N"; + ClassTxt = The_ClassDatN[Gbl.Prefs.Theme]; + ClassLink = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]); } else { - ClassTxt = "DAT"; - ClassLink = "BT_LINK LT DAT"; + ClassTxt = The_ClassDat[Gbl.Prefs.Theme]; + ClassLink = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]); } BgColor = (CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? "LIGHT_BLUE" : Gbl.ColorRows[RowEvenOdd]; @@ -2455,8 +2465,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA HTM_TD_Begin ("class=\"LT %s\"",BgColor); Frm_BeginFormGoTo (ActSeeDegInf); Deg_PutParamDegCod (Deg.DegCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (row[2]),ClassLink,NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (row[2]),ClassLink,NULL); Lgo_DrawLogo (HieLvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true); HTM_TxtF (" %s (%s)",row[2],row[6]); HTM_BUTTON_End (); @@ -2472,8 +2481,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA HTM_TD_Begin ("class=\"LT %s\"",BgColor); Frm_BeginFormGoTo (ActSeeCrsInf); Crs_PutParamCrsCod (CrsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (row[5]),ClassLink,NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (row[5]),ClassLink,NULL); HTM_Txt (row[5]); HTM_BUTTON_End (); Frm_EndForm (); @@ -2496,6 +2504,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA HTM_TR_End (); + Str_FreeStrings (); RowEvenOdd = 1 - RowEvenOdd; } diff --git a/swad_course_config.c b/swad_course_config.c index e705555b..aee61cce 100644 --- a/swad_course_config.c +++ b/swad_course_config.c @@ -207,6 +207,7 @@ static void CrsCfg_Title (bool PutLink) static void CrsCfg_Degree (bool PrintView,bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Degree; unsigned NumDeg; @@ -219,7 +220,7 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm) Txt_Degree); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { /* Get list of degrees of the current center */ @@ -248,9 +249,10 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm) { Frm_BeginFormGoTo (ActSeeDegInf); Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Deg.ShrtName), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Deg.ShrtName), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); } Lgo_DrawLogo (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.ShrtName, 20,"LM",true); @@ -294,6 +296,7 @@ static void CrsCfg_ShrtName (bool PutForm) static void CrsCfg_Year (bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Year_OF_A_DEGREE; extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE]; extern const char *Txt_Not_applicable; @@ -308,7 +311,7 @@ static void CrsCfg_Year (bool PutForm) Txt_Year_OF_A_DEGREE); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { Frm_BeginForm (ActChgCrsYeaCfg); @@ -337,6 +340,7 @@ static void CrsCfg_Year (bool PutForm) static void CrsCfg_InstitutionalCode (bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Institutional_code; /***** Institutional course code *****/ @@ -348,7 +352,7 @@ static void CrsCfg_InstitutionalCode (bool PutForm) Txt_Institutional_code); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { Frm_BeginForm (ActChgInsCrsCodCfg); @@ -372,6 +376,7 @@ static void CrsCfg_InstitutionalCode (bool PutForm) static void CrsCfg_InternalCode (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Internal_code; /***** Internal course code *****/ @@ -381,7 +386,7 @@ static void CrsCfg_InternalCode (void) Frm_LabelColumn ("RT",NULL,Txt_Internal_code); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Gbl.Hierarchy.Crs.CrsCod); HTM_TD_End (); @@ -412,6 +417,7 @@ static void CrsCfg_QR (void) static void CrsCfg_Indicators (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Indicators; extern const char *Txt_of_PART_OF_A_TOTAL; struct Ind_IndicatorsCrs IndicatorsCrs; @@ -435,7 +441,10 @@ static void CrsCfg_Indicators (void) IndicatorsCrs.NumIndicators, Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS) < 0) Err_NotEnoughMemoryExit (); - HTM_BUTTON_SUBMIT_Begin (Title,"BT_LINK DAT",NULL); + HTM_BUTTON_SUBMIT_Begin (Title, + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_TxtF ("%s ",Title); Ico_PutIcon ((IndicatorsCrs.NumIndicators == Ind_NUM_INDICATORS) ? "check-circle.svg" : "exclamation-triangle.svg", diff --git a/swad_database.c b/swad_database.c index ab38e872..5608b306 100644 --- a/swad_database.c +++ b/swad_database.c @@ -3728,7 +3728,9 @@ mysql> DESCRIBE usr_webs; static void DB_CreateTable (const char *Query) { - HTM_LI_Begin ("class=\"DAT\""); + extern const char *The_ClassDat[The_NUM_THEMES]; + + HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Query); HTM_LI_End (); diff --git a/swad_date.c b/swad_date.c index bf46348f..666e4abb 100644 --- a/swad_date.c +++ b/swad_date.c @@ -122,6 +122,8 @@ void Dat_ResetHour (struct Dat_Hour *Hour) void Dat_PutBoxToSelectDateFormat (void) { extern const char *Hlp_PROFILE_Settings_dates; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Dates; Dat_Format_t Format; @@ -140,17 +142,19 @@ void Dat_PutBoxToSelectDateFormat (void) Format <= (Dat_Format_t) (Dat_NUM_OPTIONS_FORMAT - 1); Format++) { - HTM_LI_Begin ("class=\"%s\"",(Format == Gbl.Prefs.DateFormat) ? "DAT_N LIGHT_BLUE" : - "DAT"); - HTM_LABEL_Begin (NULL); - HTM_INPUT_RADIO ("DateFormat",true, - " value=\"%u\"%s", - (unsigned) Format, - Format == Gbl.Prefs.DateFormat ? " checked=\"checked\"" : - ""); - Dat_PutSpanDateFormat (Format); - Dat_PutScriptDateFormat (Format); - HTM_LABEL_End (); + if (Format == Gbl.Prefs.DateFormat) + HTM_LI_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]); + else + HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO ("DateFormat",true, + " value=\"%u\"%s", + (unsigned) Format, + Format == Gbl.Prefs.DateFormat ? " checked=\"checked\"" : + ""); + Dat_PutSpanDateFormat (Format); + Dat_PutScriptDateFormat (Format); + HTM_LABEL_End (); HTM_LI_End (); } @@ -191,7 +195,7 @@ void Dat_PutScriptDateFormat (Dat_Format_t Format) Gbl.StartExecutionTimeUTC, Format,Dat_SEPARATOR_NONE, false,true,false,0x0); - Str_FreeString (); + Str_FreeStrings (); } /*****************************************************************************/ diff --git a/swad_degree.c b/swad_degree.c index 458130a5..af6cb8ae 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -109,6 +109,7 @@ static void Deg_EditingDegreeDestructor (void); void Deg_SeeDegWithPendingCrss (void) { extern const char *Hlp_SYSTEM_Pending; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Degrees_with_pending_courses; extern const char *Txt_Degree; extern const char *Txt_Courses_ABBREVIATION; @@ -162,7 +163,8 @@ void Deg_SeeDegWithPendingCrss (void) HTM_TD_End (); /* Number of pending courses (row[1]) */ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"", + The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Txt (row[1]); HTM_TD_End (); @@ -192,8 +194,8 @@ void Deg_DrawDegreeLogoAndNameWithLink (struct Deg_Degree *Deg,Act_Action_t Acti Deg_PutParamDegCod (Deg->DegCod); /***** Link to action *****/ - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Deg->FullName),ClassLink,NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Deg->FullName),ClassLink,NULL); + Str_FreeStrings (); /***** Degree logo and name *****/ Lgo_DrawLogo (HieLvl_DEG,Deg->DegCod,Deg->ShrtName,16,ClassLogo,true); @@ -300,6 +302,7 @@ void Deg_ShowDegsOfCurrentCtr (void) static void Deg_ListDegreesForEdition (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_DEGREE_STATUS[Hie_NUM_STATUS_TXT]; unsigned NumDeg; struct DegreeType *DegTyp; @@ -348,7 +351,7 @@ static void Deg_ListDegreesForEdition (void) HTM_TD_End (); /* Degree code */ - HTM_TD_Begin ("class=\"DAT CODE\""); + HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Deg->DegCod); HTM_TD_End (); @@ -358,7 +361,7 @@ static void Deg_ListDegreesForEdition (void) HTM_TD_End (); /* Degree short name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActRenDegSho); @@ -373,7 +376,7 @@ static void Deg_ListDegreesForEdition (void) HTM_TD_End (); /* Degree full name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActRenDegFul); @@ -388,7 +391,7 @@ static void Deg_ListDegreesForEdition (void) HTM_TD_End (); /* Degree type */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActChgDegTyp); @@ -417,7 +420,7 @@ static void Deg_ListDegreesForEdition (void) HTM_TD_End (); /* Degree WWW */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActChgDegWWW); @@ -430,8 +433,10 @@ static void Deg_ListDegreesForEdition (void) { Str_Copy (WWW,Deg->WWW,sizeof (WWW) - 1); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\""); - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"", - Deg->WWW,Deg->WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\" title=\"%s\"", + Deg->WWW, + The_ClassDat[Gbl.Prefs.Theme], + Deg->WWW); HTM_Txt (WWW); HTM_A_End (); HTM_DIV_End (); @@ -439,12 +444,12 @@ static void Deg_ListDegreesForEdition (void) HTM_TD_End (); /* Number of courses in this degree */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCrss); HTM_TD_End (); /* Number of users in courses of this degree */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsInCrssOfDeg); HTM_TD_End (); @@ -453,7 +458,8 @@ static void Deg_ListDegreesForEdition (void) Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CURRENT_CRS); - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Msg_WriteMsgAuthor (&UsrDat,true,NULL); HTM_TD_End (); @@ -489,6 +495,7 @@ static bool Deg_CheckIfICanEditADegree (struct Deg_Degree *Deg) static void Deg_PutFormToCreateDegree (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_degree; extern const char *Txt_Create_degree; struct DegreeType *DegTyp; @@ -562,22 +569,23 @@ static void Deg_PutFormToCreateDegree (void) HTM_TD_End (); /***** Number of courses in this degree *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Number of users in courses of this degree *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Degree requester *****/ - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL); HTM_TD_End (); /***** Degree status *****/ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TD_End (); HTM_TR_End (); @@ -688,7 +696,7 @@ static void Deg_ListDegrees (void) Gbl.Hierarchy.Ctr.ShrtName), Deg_PutIconsListingDegrees,NULL, Hlp_CENTER_Degrees,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); if (Gbl.Hierarchy.Degs.Num) // There are degrees in the current center { @@ -765,6 +773,8 @@ static void Deg_PutIconToEditDegrees (void) static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_DEGREE_With_courses; extern const char *Txt_DEGREE_Without_courses; extern const char *Txt_DEGREE_STATUS[Hie_NUM_STATUS_TXT]; @@ -782,12 +792,12 @@ static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg) if (Deg->Status & Hie_STATUS_BIT_PENDING) { TxtClassNormal = "DAT_LIGHT"; - TxtClassStrong = "BT_LINK LT DAT_LIGHT"; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT"); } else { - TxtClassNormal = "DAT"; - TxtClassStrong = "BT_LINK LT DAT_N"; + TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme]; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]); } BgColor = (Deg->DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" : Gbl.ColorRows[Gbl.RowEvenOdd]; @@ -839,6 +849,7 @@ static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg) /***** End table row *****/ HTM_TR_End (); + Str_FreeStrings (); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; } @@ -878,7 +889,7 @@ static void Deg_EditDegreesInternal (void) Gbl.Hierarchy.Ctr.ShrtName), Deg_PutIconsEditingDegrees,NULL, Hlp_CENTER_Degrees,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); if (Gbl.DegTypes.Num) { @@ -1529,8 +1540,8 @@ static void Deg_ShowAlertAndButtonToGoToDeg (void) Ale_ShowLastAlertAndButton (ActSeeCrs,NULL,NULL, Deg_PutParamGoToDeg,&Deg_EditingDeg->DegCod, Btn_CONFIRM_BUTTON, - Hie_BuildGoToMsg (Deg_EditingDeg->ShrtName)); - Hie_FreeGoToMsg (); + Str_BuildGoToMsg (Deg_EditingDeg->ShrtName)); + Str_FreeStrings (); } else /***** Alert *****/ @@ -1785,7 +1796,7 @@ void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumDegs) Txt_degrees), NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Write heading *****/ Deg_PutHeadDegreesForSeeing (); diff --git a/swad_degree_config.c b/swad_degree_config.c index f083ddb3..a6250ec8 100644 --- a/swad_degree_config.c +++ b/swad_degree_config.c @@ -198,6 +198,7 @@ static void DegCfg_Title (bool PutLink) static void DegCfg_Center (bool PrintView,bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Center; unsigned NumCtr; @@ -210,7 +211,7 @@ static void DegCfg_Center (bool PrintView,bool PutForm) Txt_Center); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { /* Get list of centers of the current institution */ @@ -239,9 +240,10 @@ static void DegCfg_Center (bool PrintView,bool PutForm) { Frm_BeginFormGoTo (ActSeeCtrInf); Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Ctr.ShrtName), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Ctr.ShrtName), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); } Lgo_DrawLogo (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.ShrtName, 20,"LM",true); @@ -312,6 +314,7 @@ static void DegCfg_QR (void) static void DegCfg_NumCrss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Courses; extern const char *Txt_Courses_of_DEGREE_X; @@ -328,8 +331,9 @@ static void DegCfg_NumCrss (void) Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod); HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Courses_of_DEGREE_X, Gbl.Hierarchy.Deg.ShrtName), - "BT_LINK DAT",NULL); - Str_FreeString (); + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_Unsigned (Crs_GetCachedNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod)); HTM_BUTTON_End (); Frm_EndForm (); diff --git a/swad_degree_type.c b/swad_degree_type.c index 047dc938..da8a5342 100644 --- a/swad_degree_type.c +++ b/swad_degree_type.c @@ -313,6 +313,7 @@ void DegTyp_PutIconToViewDegreeTypes (void) static void DegTyp_ListDegreeTypesForSeeing (void) { + extern const char *The_ClassDatN[The_NUM_THEMES]; unsigned NumDegTyp; const char *BgColor; @@ -329,17 +330,20 @@ static void DegTyp_ListDegreeTypesForSeeing (void) HTM_TR_Begin (NULL); /* Number of degree type in this list */ - HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor); + HTM_TD_Begin ("class=\"RM %s %s\"", + The_ClassDatN[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (NumDegTyp + 1); HTM_TD_End (); /* Name of degree type */ - HTM_TD_Begin ("class=\"DAT_N LM %s\"",BgColor); + HTM_TD_Begin ("class=\"LM %s %s\"", + The_ClassDatN[Gbl.Prefs.Theme],BgColor); HTM_Txt (Gbl.DegTypes.Lst[NumDegTyp].DegTypName); HTM_TD_End (); /* Number of degrees of this type */ - HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor); + HTM_TD_Begin ("class=\"RM %s %s\"", + The_ClassDatN[Gbl.Prefs.Theme],BgColor); HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs); HTM_TD_End (); @@ -382,6 +386,7 @@ static void DegTyp_PutIconToEditDegTypes (__attribute__((unused)) void *Args) static void DegTyp_ListDegreeTypesForEdition (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumDegTyp; /***** Begin table *****/ @@ -408,7 +413,7 @@ static void DegTyp_ListDegreeTypesForEdition (void) HTM_TD_End (); /* Degree type code */ - HTM_TD_Begin ("class=\"DAT CODE\""); + HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod); HTM_TD_End (); @@ -424,7 +429,7 @@ static void DegTyp_ListDegreeTypesForEdition (void) HTM_TD_End (); /* Number of degrees of this type */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs); HTM_TD_End (); @@ -451,6 +456,7 @@ bool DegTyp_CheckIfICanCreateDegreeTypes (void) static void DegTyp_PutFormToCreateDegreeType (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_type_of_degree; extern const char *Txt_Create_type_of_degree; @@ -484,7 +490,7 @@ static void DegTyp_PutFormToCreateDegreeType (void) HTM_TD_End (); /***** Number of degrees of this degree type ****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); diff --git a/swad_department.c b/swad_department.c index 618bec23..b44b757a 100644 --- a/swad_department.c +++ b/swad_department.c @@ -97,6 +97,7 @@ static void Dpt_ResetDepartments (struct Dpt_Departments *Departments) void Dpt_SeeDepts (void) { extern const char *Hlp_INSTITUTION_Departments; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Departments_of_INSTITUTION_X; extern const char *Txt_DEPARTMENTS_HELP_ORDER[2]; extern const char *Txt_DEPARTMENTS_ORDER[2]; @@ -132,7 +133,7 @@ void Dpt_SeeDepts (void) Gbl.Hierarchy.Ins.FullName), NULL,NULL, Hlp_INSTITUTION_Departments,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Write heading *****/ HTM_TR_Begin (NULL); @@ -167,13 +168,14 @@ void Dpt_SeeDepts (void) HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"LM\""); - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\"", - Departments.Lst[NumDpt].WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Departments.Lst[NumDpt].WWW, + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Departments.Lst[NumDpt].FullName); HTM_A_End (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Departments.Lst[NumDpt].NumTchs); HTM_TD_End (); @@ -182,7 +184,8 @@ void Dpt_SeeDepts (void) /***** Separation row *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"3\" class=\"DAT\""); + HTM_TD_Begin ("colspan=\"3\" class=\"%s\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_NBSP (); HTM_TD_End (); HTM_TR_End (); @@ -192,11 +195,11 @@ void Dpt_SeeDepts (void) HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_Other_departments); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumTchsInsInOtherDpts); HTM_TD_End (); @@ -207,11 +210,11 @@ void Dpt_SeeDepts (void) HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_Department_unspecified); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumTchsInsWithNoDpt); HTM_TD_End (); @@ -286,7 +289,7 @@ static void Dpt_EditDepartmentsInternal (void) Gbl.Hierarchy.Ins.FullName), NULL,NULL, Hlp_INSTITUTION_Departments_edit,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Put a form to create a new department *****/ Dpt_PutFormToCreateDepartment (); @@ -436,6 +439,7 @@ void Dpt_FreeListDepartments (struct Dpt_Departments *Departments) static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departments) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Another_institution; unsigned NumDpt; struct Dpt_Department *Dpt; @@ -471,7 +475,7 @@ static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departm HTM_TD_End (); /* Department code */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%ld ",Dpt->DptCod); HTM_TD_End (); @@ -523,7 +527,7 @@ static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departm HTM_TD_End (); /* Number of teachers */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Dpt->NumTchs); HTM_TD_End (); diff --git a/swad_duplicate.c b/swad_duplicate.c index f8ff1bdc..a66dff48 100644 --- a/swad_duplicate.c +++ b/swad_duplicate.c @@ -107,6 +107,7 @@ void Dup_PutLinkToListDupUsrs (void) void Dup_ListDuplicateUsrs (void) { extern const char *Hlp_USERS_Duplicates_possibly_duplicate_users; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Possibly_duplicate_users; extern const char *Txt_Informants; MYSQL_RES *mysql_res; @@ -165,8 +166,9 @@ void Dup_ListDuplicateUsrs (void) HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_End (); - HTM_TD_Begin ("colspan=\"%u\" class=\"DAT LM COLOR%u\"", - Usr_NUM_MAIN_FIELDS_DATA_USR-2, + HTM_TD_Begin ("colspan=\"%u\" class=\"%s LM COLOR%u\"", + Usr_NUM_MAIN_FIELDS_DATA_USR - 2, + The_ClassDat[Gbl.Prefs.Theme], Gbl.RowEvenOdd); /* Write number of informants (row[1]) if greater than 1 */ diff --git a/swad_enrolment.c b/swad_enrolment.c index 4f68d0fe..7e715621 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -2062,6 +2062,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) { extern const char *Hlp_USERS_Requests; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Enrolment_requests; extern const char *Txt_Scope; extern const char *Txt_Users; @@ -2140,7 +2141,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) Frm_LabelColumn ("RT","Role",Txt_Users); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Rol_WriteSelectorRoles (1 << Rol_STD | 1 << Rol_NET | 1 << Rol_TCH, @@ -2212,7 +2213,8 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) HTM_TR_Begin (NULL); /***** Number *****/ - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumReqs - NumReq); HTM_TD_End (); @@ -2225,9 +2227,10 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) Frm_BeginFormGoTo (ActSeeCrsInf); Crs_PutParamCrsCod (Crs.CrsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs.FullName), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs.FullName), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_TxtF ("%s > %s",Deg.ShrtName,Crs.ShrtName); HTM_BUTTON_End (); Frm_EndForm (); @@ -2235,35 +2238,41 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) HTM_TD_End (); /***** Number of teachers in the course *****/ - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Enr_GetNumUsrsInCrss (HieLvl_CRS,Crs.CrsCod, 1 << Rol_TCH)); HTM_TD_End (); /***** User photo *****/ - HTM_TD_Begin ("class=\"DAT CT\" style=\"width:22px;\""); + HTM_TD_Begin ("class=\"%s CT\" style=\"width:22px;\"", + The_ClassDat[Gbl.Prefs.Theme]); Pho_ShowUsrPhotoIfAllowed (&UsrDat, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, false); HTM_TD_End (); /***** User name *****/ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_DIV_Begin ("class=\"REQUESTER_NAME\""); // Limited width Usr_WriteFirstNameBRSurnames (&UsrDat); HTM_DIV_End (); HTM_TD_End (); /***** Requested role (row[3]) *****/ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_ROLES_SINGUL_abc[DesiredRole][UsrDat.Sex]); HTM_TD_End (); /***** Request time (row[4]) *****/ - Msg_WriteMsgDate (Dat_GetUNIXTimeFromStr (row[4]),"DAT"); + Msg_WriteMsgDate (Dat_GetUNIXTimeFromStr (row[4]), + The_ClassDat[Gbl.Prefs.Theme]); /***** Button to confirm the request *****/ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"", + The_ClassDat[Gbl.Prefs.Theme]); if (!NextAction[DesiredRole]) Err_WrongRoleExit (); Frm_BeginForm (NextAction[DesiredRole]); @@ -2274,7 +2283,8 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected) HTM_TD_End (); /***** Button to reject the request *****/ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Frm_BeginForm (ActReqRejSignUp); Crs_PutParamCrsCod (Crs.CrsCod); Usr_PutParamUsrCodEncrypted (UsrDat.EnUsrCod); diff --git a/swad_exam.c b/swad_exam.c index 9d309139..a1fd7d44 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -473,6 +473,7 @@ void Exa_ShowOnlyOneExamEnd (void) static void Exa_ShowOneExam (struct Exa_Exams *Exams, struct Exa_Exam *Exam,bool ShowOnlyThisExam) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_View_exam; extern const char *Txt_Sets_of_questions; extern const char *Txt_Maximum_grade; @@ -613,7 +614,7 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams, Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML ALn_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links HTM_DIV_Begin ("class=\"PAR %s\"",Exam->Hidden ? "DAT_LIGHT" : - "DAT"); + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt); HTM_DIV_End (); HTM_TD_End (); diff --git a/swad_exam_result.c b/swad_exam_result.c index c7d033ed..831a1af6 100644 --- a/swad_exam_result.c +++ b/swad_exam_result.c @@ -208,7 +208,7 @@ void ExaRes_ShowMyResultsInExa (void) ExaRes_ShowResultsBegin (&Exams, Str_BuildStringStr (Txt_Results_of_exam_X,Exam.Title), false); // Do not list exams to select - Str_FreeString (); + Str_FreeStrings (); ExaRes_ListMyResultsInExa (&Exams,Exam.ExaCod); ExaRes_ShowResultsEnd (); @@ -260,7 +260,7 @@ void ExaRes_ShowMyResultsInSes (void) /***** List my sessions results in session *****/ ExaRes_ShowResultsBegin (&Exams,Str_BuildStringStr (Txt_Results_of_session_X,Session.Title), false); // Do not list exams to select - Str_FreeString (); + Str_FreeStrings (); ExaRes_ListMyResultsInSes (&Exams,Session.SesCod); ExaRes_ShowResultsEnd (); @@ -408,7 +408,7 @@ void ExaRes_ShowAllResultsInExa (void) ExaRes_ShowResultsBegin (&Exams, Str_BuildStringStr (Txt_Results_of_exam_X,Exam.Title), false); // Do not list exams to select - Str_FreeString (); + Str_FreeStrings (); ExaRes_ListAllResultsInExa (&Exams,Exam.ExaCod); ExaRes_ShowResultsEnd (); @@ -485,7 +485,7 @@ void ExaRes_ShowAllResultsInSes (void) ExaRes_ShowResultsBegin (&Exams, Str_BuildStringStr (Txt_Results_of_session_X,Session.Title), false); // Do not list exams to select - Str_FreeString (); + Str_FreeStrings (); ExaRes_ListAllResultsInSes (&Exams,Session.SesCod); ExaRes_ShowResultsEnd (); @@ -575,6 +575,7 @@ static void ExaRes_ShowResultsEnd (void) static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams) { extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Exams; extern const char *Txt_Exam; extern const char *Txt_Update_results; @@ -618,7 +619,8 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams) /* Write a row for this session */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s CT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_INPUT_CHECKBOX ("ExaCod",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"Gam%u\" value=\"%ld\"%s", NumExam,Exams->Lst[NumExam].ExaCod, @@ -626,13 +628,15 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams) ""); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_LABEL_Begin ("for=\"Gam%u\"",NumExam); HTM_TxtF ("%u:",NumExam + 1); HTM_LABEL_End (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Txt (Exam.Title); HTM_TD_End (); @@ -762,6 +766,7 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, long ExaCod, // <= 0 ==> any const char *ExamsSelectedCommas) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Result; MYSQL_RES *mysql_res; struct UsrData *UsrDat; @@ -839,8 +844,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, UniqueId++; if (asprintf (&Id,"exa_res_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0) Err_NotEnoughMemoryExit (); - HTM_TD_Begin ("id =\"%s\" class=\"DAT LT COLOR%u\"", - Id,Gbl.RowEvenOdd); + HTM_TD_Begin ("id =\"%s\" class=\"%s LT COLOR%u\"", + Id,The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime], Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, true,true,false,0x7); @@ -849,7 +854,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, } /* Write session title */ - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Txt (Session.Title); HTM_TD_End (); @@ -872,7 +878,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, } /* Write total number of questions */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) HTM_Unsigned (Print.NumQsts.All); else @@ -907,7 +914,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_End (); /* Write number of correct questions */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { if (Print.NumQsts.Valid.Correct) @@ -920,7 +928,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_End (); /* Write number of wrong questions */ - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { if (Print.NumQsts.Valid.Wrong.Negative) @@ -932,7 +941,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, Ico_PutIconNotVisible (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { if (Print.NumQsts.Valid.Wrong.Zero) @@ -944,7 +954,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, Ico_PutIconNotVisible (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { if (Print.NumQsts.Valid.Wrong.Positive) @@ -957,7 +968,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_End (); /* Write number of blank questions */ - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { if (Print.NumQsts.Valid.Blank) @@ -970,7 +982,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_End (); /* Write score valid (taking into account only valid questions) */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { HTM_Double2Decimals (Print.Score.Valid); @@ -982,7 +995,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_End (); /* Write average score per question (taking into account only valid questions) */ - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) HTM_Double2Decimals (Print.NumQsts.Valid.Total ? Print.Score.Valid / (double) Print.NumQsts.Valid.Total : @@ -992,7 +1006,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_End (); /* Write grade over maximum grade (taking into account only valid questions) */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { Grade = TstPrn_ComputeGrade (Print.NumQsts.Valid.Total,Print.Score.Valid,Exam.MaxGrade); @@ -1086,22 +1101,25 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults, const struct ExaPrn_Score *TotalScore, double TotalGrade) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Sessions; unsigned NumTotalQstsInvalid; /***** Row title *****/ - HTM_TD_Begin ("colspan=\"3\" class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_TxtColonNBSP (Txt_Sessions); HTM_Unsigned (NumResults); HTM_TD_End (); /***** Write total number of questions *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Unsigned (NumTotalQsts->All); HTM_TD_End (); /***** Write total number of valid questions *****/ - HTM_TD_Begin ("class=\"DAT_GREEN RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RT DAT_GREEN LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); if (NumTotalQsts->Valid.Total) HTM_Unsigned (NumTotalQsts->Valid.Total); else @@ -1118,7 +1136,8 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults, HTM_TD_End (); /***** Write number of correct questions *****/ - HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumTotalQsts->Valid.Correct) HTM_Unsigned (NumTotalQsts->Valid.Correct); else @@ -1126,21 +1145,24 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults, HTM_TD_End (); /***** Write number of wrong questions *****/ - HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumTotalQsts->Valid.Wrong.Negative) HTM_Unsigned (NumTotalQsts->Valid.Wrong.Negative); else HTM_Light0 (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumTotalQsts->Valid.Wrong.Zero) HTM_Unsigned (NumTotalQsts->Valid.Wrong.Zero); else HTM_Light0 (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumTotalQsts->Valid.Wrong.Positive) HTM_Unsigned (NumTotalQsts->Valid.Wrong.Positive); else @@ -1148,7 +1170,8 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults, HTM_TD_End (); /***** Write number of blank questions *****/ - HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumTotalQsts->Valid.Blank) HTM_Unsigned (NumTotalQsts->Valid.Blank); else @@ -1156,14 +1179,16 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults, HTM_TD_End (); /***** Write total valid score *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Double2Decimals (TotalScore->Valid); HTM_Txt ("/"); HTM_Unsigned (NumTotalQsts->Valid.Total); HTM_TD_End (); /***** Write average valid score per valid question *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Double2Decimals (NumTotalQsts->Valid.Total ? TotalScore->Valid / (double) NumTotalQsts->Valid.Total : 0.0); @@ -1171,12 +1196,14 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults, /***** Write total grade *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Double2Decimals (TotalGrade); HTM_TD_End (); /***** Last cell *****/ - HTM_TD_Begin ("class=\"DAT_N LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_TD_End (); } @@ -1482,6 +1509,8 @@ static void ExaRes_ComputeValidPrintScore (struct ExaPrn_Print *Print) void ExaRes_ShowExamResultUser (struct UsrData *UsrDat) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; static const char *ClassPhoto[Pho_NUM_SHAPES] = { @@ -1495,12 +1524,12 @@ void ExaRes_ShowExamResultUser (struct UsrData *UsrDat) HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]); HTM_TD_End (); /***** User's data *****/ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); ID_WriteUsrIDs (UsrDat,NULL); HTM_TxtF (" %s",UsrDat->Surname1); if (UsrDat->Surname2[0]) @@ -1523,6 +1552,8 @@ void ExaRes_ShowExamResultUser (struct UsrData *UsrDat) static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME]; Dat_StartEndTime_t StartEndTime; char *Id; @@ -1535,14 +1566,15 @@ static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print) HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_START_END_TIME[StartEndTime]); HTM_TD_End (); /***** Time *****/ if (asprintf (&Id,"match_%u",(unsigned) StartEndTime) < 0) Err_NotEnoughMemoryExit (); - HTM_TD_Begin ("id=\"%s\" class=\"DAT LB\"",Id); + HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"", + Id,The_ClassDat[Gbl.Prefs.Theme]); Dat_WriteLocalDateHMSFromUTC (Id,Print->TimeUTC[StartEndTime], Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, true,true,true,0x7); @@ -1561,6 +1593,8 @@ static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print) static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print, const struct ExaRes_ICanView *ICanView) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Questions; extern const char *Txt_QUESTIONS_valid; extern const char *Txt_QUESTIONS_invalid; @@ -1569,12 +1603,12 @@ static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print, HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Questions); HTM_TD_End (); /***** Number of questions *****/ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView->Result) { HTM_TxtF ("%u",Print->NumQsts.All); @@ -1614,6 +1648,8 @@ static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print, static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print, const struct ExaRes_ICanView *ICanView) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Valid_answers; extern const char *Txt_ANSWERS_correct; extern const char *Txt_ANSWERS_wrong; @@ -1623,12 +1659,12 @@ static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print, HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Valid_answers); HTM_TD_End (); /***** Number of answers *****/ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView->Score) HTM_TxtF ("%s(pi=1): %u; " "%s(-1≤pi<0): %u; " @@ -1655,6 +1691,8 @@ static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print, static void ExaRes_ShowExamResultScore (struct ExaPrn_Print *Print, const struct ExaRes_ICanView *ICanView) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Score; extern const char *Txt_valid_score; @@ -1662,12 +1700,12 @@ static void ExaRes_ShowExamResultScore (struct ExaPrn_Print *Print, HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Score); HTM_TD_End (); /***** Score *****/ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView->Score) { /* Score counting all questions */ @@ -1707,6 +1745,8 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam, struct ExaPrn_Print *Print, const struct ExaRes_ICanView *ICanView) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Grade; extern const char *Txt_valid_grade; @@ -1714,12 +1754,12 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam, HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Grade); HTM_TD_End (); /***** Grade *****/ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView->Score) { /* Grade counting all questions */ diff --git a/swad_exam_session.c b/swad_exam_session.c index 1e81b1ff..aca0cc0b 100644 --- a/swad_exam_session.c +++ b/swad_exam_session.c @@ -614,6 +614,7 @@ static void ExaSes_GetAndWriteNamesOfGrpsAssociatedToSession (const struct ExaSe static void ExaSes_ListOneOrMoreSessionsResult (struct Exa_Exams *Exams, const struct ExaSes_Session *Session) { + extern const char *The_ClassDat[The_NUM_THEMES]; static void (*Function[Rol_NUM_ROLES]) (struct Exa_Exams *Exams, const struct ExaSes_Session *Session) = { @@ -623,7 +624,8 @@ static void ExaSes_ListOneOrMoreSessionsResult (struct Exa_Exams *Exams, [Rol_SYS_ADM] = ExaSes_ListOneOrMoreSessionsResultTch, }; - HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s CT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (Function[Gbl.Usrs.Me.Role.Logged]) Function[Gbl.Usrs.Me.Role.Logged] (Exams,Session); @@ -1058,6 +1060,7 @@ static void ExaSes_PutFormSession (const struct ExaSes_Session *Session) static void ExaSes_ShowLstGrpsToCreateSession (long SesCod) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Groups; extern const char *Txt_The_whole_course; unsigned NumGrpTyp; @@ -1082,7 +1085,8 @@ static void ExaSes_ShowLstGrpsToCreateSession (long SesCod) /***** First row: checkbox to select the whole course *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\""); + HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_LABEL_Begin (NULL); HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"WholeCrs\" value=\"Y\"%s" diff --git a/swad_exam_set.c b/swad_exam_set.c index 045489b9..320158c9 100644 --- a/swad_exam_set.c +++ b/swad_exam_set.c @@ -788,7 +788,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams, "arrow-up.svg", Str_BuildStringStr (Txt_Move_up_X, StrSetInd)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed); @@ -801,7 +801,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams, "arrow-down.svg", Str_BuildStringStr (Txt_Move_down_X, StrSetInd)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed); diff --git a/swad_figure.c b/swad_figure.c index 446036a8..a32f634e 100644 --- a/swad_figure.c +++ b/swad_figure.c @@ -442,11 +442,13 @@ static void Fig_GetAndShowUsersStats (void) static void Fig_GetAndShowNumUsrsInCrss (Rol_Role_t Role) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Total; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; long Cod = Sco_GetCurrentCod (); - char *Class = (Role == Rol_UNK) ? "DAT_N LINE_TOP RB" : - "DAT RB"; + char *Class = (Role == Rol_UNK) ? Str_BuildStringStr ("RB %s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) : + Str_BuildStringStr ("RB %s",The_ClassDat[Gbl.Prefs.Theme]); unsigned Roles = (Role == Rol_UNK) ? ((1 << Rol_STD) | (1 << Rol_NET) | (1 << Rol_TCH)) : @@ -474,6 +476,8 @@ static void Fig_GetAndShowNumUsrsInCrss (Rol_Role_t Role) HTM_TD_End (); HTM_TR_End (); + + Str_FreeStrings (); } /*****************************************************************************/ @@ -482,8 +486,9 @@ static void Fig_GetAndShowNumUsrsInCrss (Rol_Role_t Role) static void Fig_GetAndShowNumUsrsNotBelongingToAnyCrs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; - char *Class = "DAT RB"; + char *Class = Str_BuildStringStr ("%s RB",The_ClassDat[Gbl.Prefs.Theme]); /***** Write the total number of users not belonging to any course *****/ HTM_TR_Begin (NULL); @@ -505,6 +510,8 @@ static void Fig_GetAndShowNumUsrsNotBelongingToAnyCrs (void) HTM_TD_End (); HTM_TR_End (); + + Str_FreeStrings (); } /*****************************************************************************/ @@ -514,6 +521,7 @@ static void Fig_GetAndShowNumUsrsNotBelongingToAnyCrs (void) static void Fig_GetAndShowUsersRanking (void) { extern const char *Hlp_ANALYTICS_Figures_ranking; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Clicks; extern const char *Txt_Clicks_per_day; @@ -542,31 +550,31 @@ static void Fig_GetAndShowUsersRanking (void) /***** Rankings *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Prf_GetAndShowRankingClicks (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Prf_GetAndShowRankingClicksPerDay (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Prf_GetAndShowRankingTimelinePubs (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Fol_GetAndShowRankingFollowers (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Prf_GetAndShowRankingFileViews (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Prf_GetAndShowRankingForPsts (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); Prf_GetAndShowRankingMsgsSnt (); HTM_TD_End (); @@ -662,6 +670,7 @@ static void Fig_WriteHeadHierarchy (void) static void Fig_GetAndShowHierarchyWithInss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_With_; extern const char *Txt_institutions; unsigned NumCtysWithInss = 1; @@ -685,7 +694,7 @@ static void Fig_GetAndShowHierarchyWithInss (void) /***** Write number of elements with institutions *****/ Fig_ShowHierarchyRow (Txt_With_,Txt_institutions, - "DAT", + The_ClassDat[Gbl.Prefs.Theme], (int) NumCtysWithInss, -1, // < 0 ==> do not show number -1, // < 0 ==> do not show number @@ -699,6 +708,7 @@ static void Fig_GetAndShowHierarchyWithInss (void) static void Fig_GetAndShowHierarchyWithCtrs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_With_; extern const char *Txt_centers; unsigned NumCtysWithCtrs = 1; @@ -726,7 +736,7 @@ static void Fig_GetAndShowHierarchyWithCtrs (void) /***** Write number of elements with centers *****/ Fig_ShowHierarchyRow (Txt_With_,Txt_centers, - "DAT", + The_ClassDat[Gbl.Prefs.Theme], (int) NumCtysWithCtrs, (int) NumInssWithCtrs, -1, // < 0 ==> do not show number @@ -740,6 +750,7 @@ static void Fig_GetAndShowHierarchyWithCtrs (void) static void Fig_GetAndShowHierarchyWithDegs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_With_; extern const char *Txt_degrees; unsigned NumCtysWithDegs = 1; @@ -772,7 +783,7 @@ static void Fig_GetAndShowHierarchyWithDegs (void) /***** Write number of elements with degrees *****/ Fig_ShowHierarchyRow (Txt_With_,Txt_degrees, - "DAT", + The_ClassDat[Gbl.Prefs.Theme], (int) NumCtysWithDegs, (int) NumInssWithDegs, (int) NumCtrsWithDegs, @@ -786,6 +797,7 @@ static void Fig_GetAndShowHierarchyWithDegs (void) static void Fig_GetAndShowHierarchyWithCrss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_With_; extern const char *Txt_courses; unsigned NumCtysWithCrss = 1; @@ -821,7 +833,7 @@ static void Fig_GetAndShowHierarchyWithCrss (void) /***** Write number of elements with courses *****/ Fig_ShowHierarchyRow (Txt_With_,Txt_courses, - "DAT", + The_ClassDat[Gbl.Prefs.Theme], (int) NumCtysWithCrss, (int) NumInssWithCrss, (int) NumCtrsWithCrss, @@ -835,6 +847,7 @@ static void Fig_GetAndShowHierarchyWithCrss (void) static void Fig_GetAndShowHierarchyWithUsrs (Rol_Role_t Role) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_With_; extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; unsigned NumCtysWithUsrs; @@ -852,7 +865,7 @@ static void Fig_GetAndShowHierarchyWithUsrs (Rol_Role_t Role) /***** Write number of elements with students *****/ Fig_ShowHierarchyRow (Txt_With_,Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN], - "DAT", + The_ClassDat[Gbl.Prefs.Theme], (int) NumCtysWithUsrs, (int) NumInssWithUsrs, (int) NumCtrsWithUsrs, @@ -866,6 +879,7 @@ static void Fig_GetAndShowHierarchyWithUsrs (Rol_Role_t Role) static void Fig_GetAndShowHierarchyTotal (void) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Total; unsigned NumCtysTotal = 1; unsigned NumInssTotal = 1; @@ -910,12 +924,13 @@ static void Fig_GetAndShowHierarchyTotal (void) /***** Write total number of elements *****/ Fig_ShowHierarchyRow ("",Txt_Total, - "DAT_N LINE_TOP", + Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]), (int) NumCtysTotal, (int) NumInssTotal, (int) NumCtrsTotal, (int) NumDegsTotal, (int) NumCrssTotal); + Str_FreeStrings (); } /*****************************************************************************/ @@ -1156,6 +1171,7 @@ static void Fig_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss, { extern const char *The_ClassFormInBox[The_NUM_THEMES]; extern const char *The_ClassFormLinkInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Institution; unsigned NumIns; unsigned NumOrder; @@ -1221,7 +1237,7 @@ static void Fig_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss, /***** Number of order *****/ if (NumberThisRow != NumberLastRow) NumOrder = NumIns; - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumOrder); HTM_TD_End (); @@ -1244,7 +1260,7 @@ static void Fig_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss, HTM_TD_End (); /***** Write statistic *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumberThisRow); HTM_TD_End (); @@ -1535,12 +1551,14 @@ static void Fig_WriteRowStatsFileBrowsers1 (const char *NameOfFileZones, Brw_FileBrowser_t FileZone, struct Fig_SizeOfFileZones *SizeOfFileZones) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; char StrNumCrss[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrNumGrps[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrNumUsrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; - char *Class = (FileZone == Brw_UNKNOWN) ? "DAT_N LINE_TOP" : - "DAT"; + const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) : + The_ClassDat[Gbl.Prefs.Theme]; Fil_WriteFileSizeFull ((double) SizeOfFileZones->Size,FileSizeStr); @@ -1597,17 +1615,21 @@ static void Fig_WriteRowStatsFileBrowsers1 (const char *NameOfFileZones, HTM_TD_End (); HTM_TR_End (); + + Str_FreeStrings (); } static void Fig_WriteRowStatsFileBrowsers2 (const char *NameOfFileZones, Brw_FileBrowser_t FileZone, struct Fig_SizeOfFileZones *SizeOfFileZones) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; char StrNumFoldersPerCrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrNumFilesPerCrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char FileSizePerCrsStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; - char *Class = (FileZone == Brw_UNKNOWN) ? "DAT_N LINE_TOP" : - "DAT"; + const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) : + The_ClassDat[Gbl.Prefs.Theme]; if (SizeOfFileZones->NumCrss == -1) // Not applicable { @@ -1650,17 +1672,21 @@ static void Fig_WriteRowStatsFileBrowsers2 (const char *NameOfFileZones, HTM_TD_End (); HTM_TR_End (); + + Str_FreeStrings (); } static void Fig_WriteRowStatsFileBrowsers3 (const char *NameOfFileZones, Brw_FileBrowser_t FileZone, struct Fig_SizeOfFileZones *SizeOfFileZones) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; char StrNumFoldersPerUsr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrNumFilesPerUsr[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char FileSizePerUsrStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; - char *Class = (FileZone == Brw_UNKNOWN) ? "DAT_N LINE_TOP" : - "DAT"; + const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) : + The_ClassDat[Gbl.Prefs.Theme]; if (SizeOfFileZones->NumUsrs == -1) // Not applicable { @@ -1703,6 +1729,8 @@ static void Fig_WriteRowStatsFileBrowsers3 (const char *NameOfFileZones, HTM_TD_End (); HTM_TR_End (); + + Str_FreeStrings (); } /*****************************************************************************/ @@ -1712,6 +1740,7 @@ static void Fig_WriteRowStatsFileBrowsers3 (const char *NameOfFileZones, static void Fig_GetAndShowOERsStats (void) { extern const char *Hlp_ANALYTICS_Figures_open_educational_resources_oer; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_License; extern const char *Txt_Number_of_private_files; @@ -1740,15 +1769,15 @@ static void Fig_GetAndShowOERsStats (void) HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_LICENSES[License]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_UnsignedLong (NumFiles[0]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_UnsignedLong (NumFiles[1]); HTM_TD_End (); @@ -1806,6 +1835,7 @@ static void Fig_GetNumberOfOERs (Brw_License_t License, static void Fig_GetAndShowCourseProgramStats (void) // TODO: Change function from assignments to course program items { extern const char *Hlp_ANALYTICS_Figures_course_programs; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Number_of_BR_program_items; extern const char *Txt_Number_of_BR_courses_with_BR_program_items; @@ -1835,15 +1865,15 @@ static void Fig_GetAndShowCourseProgramStats (void) // TODO: Change function fro /***** Write number of assignments *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumItems); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCoursesWithItems); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumItemsPerCourse); HTM_TD_End (); @@ -1860,6 +1890,7 @@ static void Fig_GetAndShowCourseProgramStats (void) // TODO: Change function fro static void Fig_GetAndShowAssignmentsStats (void) { extern const char *Hlp_ANALYTICS_Figures_assignments; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Number_of_BR_assignments; extern const char *Txt_Number_of_BR_courses_with_BR_assignments; @@ -1892,19 +1923,19 @@ static void Fig_GetAndShowAssignmentsStats (void) /***** Write number of assignments *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumAssignments); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCoursesWithAssignments); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumAssignmentsPerCourse); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumNotif); HTM_TD_End (); @@ -1921,6 +1952,7 @@ static void Fig_GetAndShowAssignmentsStats (void) static void Fig_GetAndShowProjectsStats (void) { extern const char *Hlp_ANALYTICS_Figures_projects; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Number_of_BR_projects; extern const char *Txt_Number_of_BR_courses_with_BR_projects; @@ -1950,15 +1982,15 @@ static void Fig_GetAndShowProjectsStats (void) /***** Write number of projects *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumProjects); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCoursesWithProjects); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumProjectsPerCourse); HTM_TD_End (); @@ -1975,6 +2007,8 @@ static void Fig_GetAndShowProjectsStats (void) static void Fig_GetAndShowTestsStats (void) { extern const char *Hlp_ANALYTICS_Figures_tests; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Type_of_BR_answers; extern const char *Txt_Number_of_BR_courses_BR_with_test_BR_questions; @@ -2018,15 +2052,15 @@ static void Fig_GetAndShowTestsStats (void) /***** Write stats *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_TST_STR_ANSWER_TYPES[AnsType]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Stats.NumCoursesWithQuestions); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%u (%.1lf%%)", Stats.NumCoursesWithPluggableQuestions, Stats.NumCoursesWithQuestions ? (double) Stats.NumCoursesWithPluggableQuestions * 100.0 / @@ -2034,27 +2068,27 @@ static void Fig_GetAndShowTestsStats (void) 0.0); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Stats.NumQsts); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgQstsPerCourse); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_UnsignedLong (Stats.NumHits); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgHitsPerCourse); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgHitsPerQuestion); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgScorePerQuestion); HTM_TD_End (); @@ -2067,15 +2101,15 @@ static void Fig_GetAndShowTestsStats (void) /***** Write stats *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP LM\""); + HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Txt_Total); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (Stats.NumCoursesWithQuestions); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtF ("%u (%.1f%%)", Stats.NumCoursesWithPluggableQuestions, Stats.NumCoursesWithQuestions ? (double) Stats.NumCoursesWithPluggableQuestions * 100.0 / @@ -2083,27 +2117,27 @@ static void Fig_GetAndShowTestsStats (void) 0.0); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (Stats.NumQsts); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgQstsPerCourse); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_UnsignedLong (Stats.NumHits); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgHitsPerCourse); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgHitsPerQuestion); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (Stats.AvgScorePerQuestion); HTM_TD_End (); @@ -2120,6 +2154,7 @@ static void Fig_GetAndShowTestsStats (void) static void Fig_GetAndShowExamsStats (void) { extern const char *Hlp_ANALYTICS_Figures_exams; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Number_of_BR_exams; extern const char *Txt_Number_of_BR_courses_with_BR_exams; @@ -2148,15 +2183,15 @@ static void Fig_GetAndShowExamsStats (void) /***** Write number of exams *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumExams); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCoursesWithExams); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumExamsPerCourse); HTM_TD_End (); @@ -2173,6 +2208,7 @@ static void Fig_GetAndShowExamsStats (void) static void Fig_GetAndShowGamesStats (void) { extern const char *Hlp_ANALYTICS_Figures_games; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Number_of_BR_games; extern const char *Txt_Number_of_BR_courses_with_BR_games; @@ -2201,15 +2237,15 @@ static void Fig_GetAndShowGamesStats (void) /***** Write number of games *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumGames); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCoursesWithGames); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumGamesPerCourse); HTM_TD_End (); @@ -2226,6 +2262,8 @@ static void Fig_GetAndShowGamesStats (void) static void Fig_GetAndShowTimelineActivityStats (void) { extern const char *Hlp_ANALYTICS_Figures_timeline; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Type; extern const char *Txt_Number_of_posts; @@ -2290,25 +2328,25 @@ static void Fig_GetAndShowTimelineActivityStats (void) /***** Write number of timeline notes and number of users *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_TIMELINE_NOTE[NoteType]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumNotes); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs * 100.0 / (double) NumUsrsTotal : 0.0); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumUsrs ? (double) NumNotes / (double) NumUsrs : 0.0); @@ -2345,25 +2383,25 @@ static void Fig_GetAndShowTimelineActivityStats (void) /* Write totals */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP LM\""); + HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Txt_Total); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumNotes); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs * 100.0 / (double) NumUsrsTotal : 0.0); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumUsrs ? (double) NumNotes / (double) NumUsrs : 0.0); HTM_TD_End (); @@ -2381,6 +2419,7 @@ static void Fig_GetAndShowTimelineActivityStats (void) static void Fig_GetAndShowFollowStats (void) { extern const char *Hlp_ANALYTICS_Figures_followed_followers; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Users; extern const char *Txt_Number_of_users; @@ -2418,16 +2457,16 @@ static void Fig_GetAndShowFollowStats (void) /***** Write number of followed / followers *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Fol == 0 ? Txt_Followed : Txt_Followers); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs * 100.0 / (double) NumUsrsTotal : 0.0); @@ -2446,11 +2485,11 @@ static void Fig_GetAndShowFollowStats (void) /***** Write number of followed per follower *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_FollowPerFollow[Fol]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (Average); HTM_TD_End (); @@ -2627,6 +2666,7 @@ static void Fig_WriteForumTitleAndStats (For_ForumType_t ForumType, const char *Icon,struct Fig_FiguresForum *FiguresForum, const char *ForumName1,const char *ForumName2) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumForums; unsigned NumThreads; unsigned NumPosts; @@ -2666,36 +2706,36 @@ static void Fig_WriteForumTitleAndStats (For_ForumType_t ForumType, free (ForumName); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (ForumName1); HTM_Txt (ForumName2); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumForums); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumThreads); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumPosts); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsToBeNotifiedByEMail); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumThrsPerForum); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumPostsPerThread); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumPostsPerForum); HTM_TD_End (); @@ -2708,6 +2748,7 @@ static void Fig_WriteForumTitleAndStats (For_ForumType_t ForumType, static void Fig_WriteForumTotalStats (struct Fig_FiguresForum *FiguresForum) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Total; double NumThrsPerForum; double NumPostsPerThread; @@ -2727,38 +2768,39 @@ static void Fig_WriteForumTotalStats (struct Fig_FiguresForum *FiguresForum) /***** Write forum name and stats *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP\" style=\"width:20px;\""); + HTM_TD_Begin ("class=\"%s LINE_TOP\" style=\"width:20px;\"", + The_ClassDatN[Gbl.Prefs.Theme]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP LM\""); + HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Txt_Total); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (FiguresForum->NumForums); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (FiguresForum->NumThreads); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (FiguresForum->NumPosts); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP RM\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (FiguresForum->NumUsrsToBeNotifiedByEMail); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumThrsPerForum); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumPostsPerThread); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumPostsPerForum); HTM_TD_End (); @@ -2772,6 +2814,8 @@ static void Fig_WriteForumTotalStats (struct Fig_FiguresForum *FiguresForum) static void Fig_GetAndShowNumUsrsPerNotifyEvent (void) { extern const char *Hlp_ANALYTICS_Figures_notifications; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Event; extern const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS]; @@ -2870,25 +2914,25 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void) { HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_NOTIFY_EVENTS_PLURAL[NotifyEvent]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[NotifyEvent]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[NotifyEvent] * 100.0 / (double) NumUsrsTotal : 0.0); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumEvents[NotifyEvent]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumMails[NotifyEvent]); HTM_TD_End (); @@ -2898,25 +2942,25 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void) /***** Write total number of users who want to be notified by email on some event *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP LM\""); + HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Txt_Total); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsTotalWhoWantToBeNotifiedByEMailAboutSomeEvent); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrsTotalWhoWantToBeNotifiedByEMailAboutSomeEvent * 100.0 / (double) NumUsrsTotal : 0.0); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumEventsTotal); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumMailsTotal); HTM_TD_End (); @@ -2933,6 +2977,8 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void) static void Fig_GetAndShowNoticesStats (void) { extern const char *Hlp_ANALYTICS_Figures_notices; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_NOTICE_Active_BR_notices; extern const char *Txt_NOTICE_Obsolete_BR_notices; @@ -2976,23 +3022,23 @@ static void Fig_GetAndShowNoticesStats (void) /***** Write number of notices *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumNotices[Not_ACTIVE_NOTICE]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumNotices[Not_OBSOLETE_NOTICE]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumNoticesDeleted); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned ( NumTotalNotices); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumTotalNotifications); HTM_TD_End (); @@ -3009,6 +3055,8 @@ static void Fig_GetAndShowNoticesStats (void) static void Fig_GetAndShowMsgsStats (void) { extern const char *Hlp_ANALYTICS_Figures_messages; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Messages; extern const char *Txt_MSGS_Not_deleted; @@ -3046,23 +3094,23 @@ static void Fig_GetAndShowMsgsStats (void) /***** Write number of messages *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"LM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_MSGS_Sent); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumMsgsSentNotDeleted); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumMsgsSentDeleted); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumMsgsSentNotDeleted + NumMsgsSentDeleted); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Hyphen (); HTM_TD_End (); @@ -3070,23 +3118,23 @@ static void Fig_GetAndShowMsgsStats (void) HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"LM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_MSGS_Received); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumMsgsReceivedNotDeleted); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumMsgsReceivedAndDeleted); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumMsgsReceivedNotDeleted + NumMsgsReceivedAndDeleted); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumMsgsReceivedAndNotified); HTM_TD_End (); @@ -3104,6 +3152,7 @@ static void Fig_GetAndShowMsgsStats (void) static void Fig_GetAndShowAgendasStats (void) { extern const char *Hlp_ANALYTICS_Figures_agendas; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Number_of_events; extern const char *Txt_Number_of_users; @@ -3138,21 +3187,21 @@ static void Fig_GetAndShowAgendasStats (void) /***** Write number of users who have chosen each language *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumEvents); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs * 100.0 / (double) NumUsrsTotal : 0); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumUsrs ? (double) NumEvents / (double) NumUsrs : 0); @@ -3171,6 +3220,7 @@ static void Fig_GetAndShowAgendasStats (void) static void Fig_GetAndShowSurveysStats (void) { extern const char *Hlp_ANALYTICS_Figures_surveys; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Number_of_BR_surveys; extern const char *Txt_Number_of_BR_courses_with_BR_surveys; @@ -3209,23 +3259,23 @@ static void Fig_GetAndShowSurveysStats (void) /***** Write number of surveys *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumSurveys); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCoursesWithSurveys); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumSurveysPerCourse); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Double2Decimals (NumQstsPerSurvey); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumNotif); HTM_TD_End (); @@ -3277,9 +3327,10 @@ static void Fig_GetAndShowNumUsrsPerPrivacyForAnObject (const char *TxtObject, const char *FieldName, unsigned MaskAllowedVisibility) { + extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Number_of_users; extern const char *Txt_PERCENT_of_users; - extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY]; extern const char *Txt_PRIVACY_OPTIONS[Pri_NUM_OPTIONS_PRIVACY]; Pri_Visibility_t Visibility; char *SubQuery; @@ -3318,15 +3369,15 @@ static void Fig_GetAndShowNumUsrsPerPrivacyForAnObject (const char *TxtObject, { HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_PRIVACY_OPTIONS[Visibility]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Visibility]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[Visibility] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3343,6 +3394,7 @@ static void Fig_GetAndShowNumUsrsPerPrivacyForAnObject (const char *TxtObject, static void Fig_GetAndShowNumUsrsPerCookies (void) { extern const char *Hlp_ANALYTICS_Figures_cookies; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Cookies; extern const char *Txt_Number_of_users; @@ -3407,11 +3459,11 @@ static void Fig_GetAndShowNumUsrsPerCookies (void) HTM_Txt (AcceptedSymbol[i]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[i]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[i] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3431,6 +3483,7 @@ static void Fig_GetAndShowNumUsrsPerCookies (void) static void Fig_GetAndShowNumUsrsPerLanguage (void) { extern const char *Hlp_ANALYTICS_Figures_language; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Language; extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES]; @@ -3477,15 +3530,15 @@ static void Fig_GetAndShowNumUsrsPerLanguage (void) { HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_STR_LANG_NAME[Lan]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Lan]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[Lan] * 100.0 / (double) NumUsrsTotal : 0); @@ -3506,6 +3559,7 @@ static void Fig_GetAndShowNumUsrsPerFirstDayOfWeek (void) { extern const bool Cal_DayIsValidAsFirstDayOfWeek[7]; extern const char *Hlp_ANALYTICS_Figures_calendar; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Calendar; extern const char *Txt_First_day_of_the_week_X; @@ -3563,15 +3617,15 @@ static void Fig_GetAndShowNumUsrsPerFirstDayOfWeek (void) Str_BuildStringStr (Txt_First_day_of_the_week_X, Txt_DAYS_SMALL[FirstDayOfWeek]), "ICO40x40"); - Str_FreeString (); + Str_FreeStrings (); free (Icon); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[FirstDayOfWeek]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[FirstDayOfWeek] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3591,6 +3645,8 @@ static void Fig_GetAndShowNumUsrsPerFirstDayOfWeek (void) static void Fig_GetAndShowNumUsrsPerDateFormat (void) { extern const char *Hlp_ANALYTICS_Figures_dates; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Format; extern const char *Txt_Number_of_users; @@ -3635,16 +3691,16 @@ static void Fig_GetAndShowNumUsrsPerDateFormat (void) { HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N LM\""); + HTM_TD_Begin ("class=\"LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); Dat_PutSpanDateFormat (Format); Dat_PutScriptDateFormat (Format); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Format]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"RM %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[Format] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3666,6 +3722,7 @@ static void Fig_GetAndShowNumUsrsPerIconSet (void) extern const char *Hlp_ANALYTICS_Figures_icons; extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS]; extern const char *Ico_IconSetNames[Ico_NUM_ICON_SETS]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Icons; extern const char *Txt_Number_of_users; @@ -3720,11 +3777,11 @@ static void Fig_GetAndShowNumUsrsPerIconSet (void) free (URL); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[IconSet]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[IconSet] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3745,6 +3802,7 @@ static void Fig_GetAndShowNumUsrsPerMenu (void) { extern const char *Hlp_ANALYTICS_Figures_menu; extern const char *Mnu_MenuIcons[Mnu_NUM_MENUS]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Menu; extern const char *Txt_Number_of_users; @@ -3794,11 +3852,11 @@ static void Fig_GetAndShowNumUsrsPerMenu (void) Ico_PutIcon (Mnu_MenuIcons[Menu],Txt_MENU_NAMES[Menu],"ICO40x40"); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Menu]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[Menu] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3820,6 +3878,7 @@ static void Fig_GetAndShowNumUsrsPerTheme (void) extern const char *Hlp_ANALYTICS_Figures_theme; extern const char *The_ThemeId[The_NUM_THEMES]; extern const char *The_ThemeNames[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Theme_SKIN; extern const char *Txt_Number_of_users; @@ -3874,11 +3933,11 @@ static void Fig_GetAndShowNumUsrsPerTheme (void) free (URL); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Theme]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[Theme] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3898,6 +3957,7 @@ static void Fig_GetAndShowNumUsrsPerTheme (void) static void Fig_GetAndShowNumUsrsPerSideColumns (void) { extern const char *Hlp_ANALYTICS_Figures_columns; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Columns; extern const char *Txt_Number_of_users; @@ -3953,11 +4013,11 @@ static void Fig_GetAndShowNumUsrsPerSideColumns (void) free (Icon); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[SideCols]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[SideCols] * 100.0 / (double) NumUsrsTotal : 0.0); @@ -3977,6 +4037,7 @@ static void Fig_GetAndShowNumUsrsPerSideColumns (void) static void Fig_GetAndShowNumUsrsPerPhotoShape (void) { extern const char *Hlp_ANALYTICS_Figures_user_photos; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_User_photos; extern const char *Txt_Number_of_users; @@ -4034,11 +4095,11 @@ static void Fig_GetAndShowNumUsrsPerPhotoShape (void) "class=\"%s\"",ClassPhoto[Shape]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs[Shape]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? (double) NumUsrs[Shape] * 100.0 / (double) NumUsrsTotal : 0.0); diff --git a/swad_follow.c b/swad_follow.c index 2180dcb7..93abd5a5 100644 --- a/swad_follow.c +++ b/swad_follow.c @@ -611,6 +611,7 @@ static void Fol_ListFollowersUsr (struct UsrData *UsrDat) static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Another_user_s_profile; static const char *ClassPhoto[Pho_NUM_SHAPES] = { @@ -638,7 +639,10 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat) Frm_BeginForm (ActSeeOthPubPrf); Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); HTM_DIV_Begin ("class=\"FOLLOW_USR_NAME\""); // Limited width - HTM_BUTTON_SUBMIT_Begin (Txt_Another_user_s_profile,"BT_LINK LT DAT",NULL); + HTM_BUTTON_SUBMIT_Begin (Txt_Another_user_s_profile, + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); Usr_WriteFirstNameBRSurnames (UsrDat); HTM_BUTTON_End (); HTM_DIV_End (); diff --git a/swad_form.c b/swad_form.c index 6dce978b..b20766b6 100644 --- a/swad_form.c +++ b/swad_form.c @@ -295,6 +295,7 @@ void Frm_FreeAnchorStr (char *Anchor) void Frm_LabelColumn (const char *TDClass,const char *Id,const char *Label) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; /***** Column/cell begin *****/ if (TDClass) @@ -313,7 +314,7 @@ void Frm_LabelColumn (const char *TDClass,const char *Id,const char *Label) The_ClassFormInBox[Gbl.Prefs.Theme]); } else - HTM_LABEL_Begin ("class=\"DAT\""); + HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtColon (Label); HTM_LABEL_End (); diff --git a/swad_forum.c b/swad_forum.c index 5c0accd6..918a9927 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -931,7 +931,7 @@ static void For_ShowAForumPost (struct For_Forums *Forums, Str_BuildStringLong (Enabled ? Txt_FORUM_Post_X_allowed_Click_to_ban_it : Txt_FORUM_Post_X_banned_Click_to_unban_it, (long) PstNum)); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); } else @@ -942,7 +942,7 @@ static void For_ShowAForumPost (struct For_Forums *Forums, Txt_FORUM_Post_X_banned, (long) PstNum), "ICO_HIDDEN ICO16x16"); - Str_FreeString (); + Str_FreeStrings (); } /***** Form to remove post *****/ diff --git a/swad_game.c b/swad_game.c index 2446aa1d..fc9214c1 100644 --- a/swad_game.c +++ b/swad_game.c @@ -514,6 +514,7 @@ void Gam_ShowOnlyOneGameEnd (void) static void Gam_ShowOneGame (struct Gam_Games *Games, struct Gam_Game *Game,bool ShowOnlyThisGame) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_View_game; extern const char *Txt_Number_of_questions; extern const char *Txt_Maximum_grade; @@ -664,7 +665,7 @@ static void Gam_ShowOneGame (struct Gam_Games *Games, Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML ALn_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links HTM_DIV_Begin ("class=\"PAR %s\"",Game->Hidden ? "DAT_LIGHT" : - "DAT"); + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt); HTM_DIV_End (); HTM_TD_End (); @@ -1761,7 +1762,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games, "arrow-up.svg", Str_BuildStringStr (Txt_Move_up_X, StrQstInd)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed); @@ -1774,7 +1775,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games, "arrow-down.svg", Str_BuildStringStr (Txt_Move_down_X, StrQstInd)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed); diff --git a/swad_group.c b/swad_group.c index 8ad940c9..d4495c80 100644 --- a/swad_group.c +++ b/swad_group.c @@ -1226,6 +1226,7 @@ static void Grp_RemoveUsrFromGroup (long UsrCod,long GrpCod) static void Grp_ListGroupTypesForEdition (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_It_is_optional_to_choose_a_group; extern const char *Txt_It_is_mandatory_to_choose_a_group; extern const char *Txt_A_student_can_belong_to_several_groups; @@ -1333,7 +1334,7 @@ static void Grp_ListGroupTypesForEdition (void) HTM_TD_End (); /* Number of groups of this type */ - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps); HTM_TD_End (); @@ -1408,6 +1409,7 @@ static void Grp_WriteHeadingGroupTypes (void) static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Group_X_open_click_to_close_it; extern const char *Txt_Group_X_closed_click_to_open_it; extern const char *Txt_File_zones_of_the_group_X_enabled_click_to_disable_them; @@ -1461,7 +1463,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms) Str_BuildStringStr (Grp->Open ? Txt_Group_X_open_click_to_close_it : Txt_Group_X_closed_click_to_open_it, Grp->GrpName)); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); HTM_TD_End (); @@ -1476,7 +1478,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms) Str_BuildStringStr (Grp->FileZones ? Txt_File_zones_of_the_group_X_enabled_click_to_disable_them : Txt_File_zones_of_the_group_X_disabled_click_to_enable_them, Grp->GrpName)); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); HTM_TD_End (); @@ -1550,7 +1552,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms) Role >= Rol_STD; Role--) { - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Int (Grp->NumUsrs[Role]); HTM_TD_End (); } @@ -2111,6 +2113,7 @@ static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod) static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp, Grp_WhichGroups_t GroupsSelectableByStdsOrNETs) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_users_with_no_group; unsigned NumGrpThisType; unsigned NumGrpSel; @@ -2236,14 +2239,14 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp, HTM_TD_End (); /* Group name = students with no group */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_LABEL_Begin ("for=\"Grp%ld\"",-GrpTyp->GrpTypCod); HTM_Txt (Txt_users_with_no_group); HTM_LABEL_End (); HTM_TD_End (); /* Room */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TD_End (); /* Number of students who don't belong to any group of this type */ @@ -2251,7 +2254,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp, Role >= Rol_STD; Role--) { - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Grp_DB_CountNumUsrsInNoGrpsOfType (Role,GrpTyp->GrpTypCod)); HTM_TD_End (); } @@ -2322,6 +2325,7 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp) static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Group_X_open; extern const char *Txt_Group_X_closed; int Vacant; @@ -2339,22 +2343,23 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight) Str_BuildStringStr (Grp->Open ? Txt_Group_X_open : Txt_Group_X_closed, Grp->GrpName)); - Str_FreeString (); + Str_FreeStrings (); HTM_TD_End (); /***** Group name *****/ HTM_TD_Begin ("class=\"%s\"", Highlight ? "LM LIGHT_BLUE" : "LM"); - HTM_LABEL_Begin ("for=\"Grp%ld\" class=\"DAT\"",Grp->GrpCod); + HTM_LABEL_Begin ("for=\"Grp%ld\" class=\"%s\"", + Grp->GrpCod,The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Grp->GrpName); HTM_LABEL_End (); HTM_TD_End (); /***** Room *****/ - HTM_TD_Begin ("class=\"%s\"", - Highlight ? "DAT LM LIGHT_BLUE" : - "DAT LM"); + HTM_TD_Begin ("class=\"%s %s\"", + The_ClassDat[Gbl.Prefs.Theme],Highlight ? "LM LIGHT_BLUE" : + "LM"); HTM_Txt (Grp->Room.ShrtName); HTM_TD_End (); @@ -2363,22 +2368,25 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight) Role >= Rol_STD; Role--) { - HTM_TD_Begin (Highlight ? "class=\"DAT CM LIGHT_BLUE\"" : - "class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s %s\"", + The_ClassDat[Gbl.Prefs.Theme],Highlight ? "CM LIGHT_BLUE" : + "CM"); HTM_Int (Grp->NumUsrs[Role]); HTM_TD_End (); } /***** Max. number of students in this group *****/ - HTM_TD_Begin (Highlight ? "class=\"DAT CM LIGHT_BLUE\"" : - "class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s %s\"", + The_ClassDat[Gbl.Prefs.Theme],Highlight ? "CM LIGHT_BLUE" : + "CM"); Grp_WriteMaxStds (StrMaxStudents,Grp->MaxStudents); HTM_TxtF ("%s ",StrMaxStudents); HTM_TD_End (); /***** Vacants in this group *****/ - HTM_TD_Begin (Highlight ? "class=\"DAT CM LIGHT_BLUE\"" : - "class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s %s\"", + The_ClassDat[Gbl.Prefs.Theme],Highlight ? "CM LIGHT_BLUE" : + "CM"); if (Grp->MaxStudents <= Grp_MAX_STUDENTS_IN_A_GROUP) { Vacant = (int) Grp->MaxStudents - (int) Grp->NumUsrs[Rol_STD]; @@ -2394,6 +2402,7 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight) static void Grp_PutFormToCreateGroupType (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_type_of_group; extern const char *Txt_It_is_optional_to_choose_a_group; extern const char *Txt_It_is_mandatory_to_choose_a_group; @@ -2485,7 +2494,7 @@ static void Grp_PutFormToCreateGroupType (void) HTM_TD_End (); /***** Number of groups of this type *****/ - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); // It's a new group type ==> 0 groups HTM_TD_End (); @@ -2507,6 +2516,7 @@ static void Grp_PutFormToCreateGroupType (void) static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_group; extern const char *Txt_Group_closed; extern const char *Txt_File_zones_disabled; @@ -2601,11 +2611,11 @@ static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms) HTM_TD_End (); /***** Current number of users in this group *****/ - for (Role = Rol_TCH; + for (Role = Rol_TCH; Role >= Rol_STD; Role--) { - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); } diff --git a/swad_help.c b/swad_help.c index ceb0e4ef..79af79de 100644 --- a/swad_help.c +++ b/swad_help.c @@ -131,7 +131,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Gbl.Hierarchy.Crs.ShrtName), ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs], Btn_REMOVE_BUTTON,Txt_Remove_me); - Str_FreeString (); + Str_FreeStrings (); } } else // I do not belong to this course @@ -141,7 +141,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Gbl.Hierarchy.Crs.ShrtName), ActReqSignUp, Btn_CREATE_BUTTON,Txt_Sign_up); - Str_FreeString (); + Str_FreeStrings (); } } @@ -157,7 +157,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Gbl.Hierarchy.Crs.ShrtName), ActReqEnrSevStd, Btn_CREATE_BUTTON,Txt_Register_students); - Str_FreeString (); + Str_FreeStrings (); } if (Gbl.Action.Act != ActMyCrs) // I am not seeing the action to list my courses @@ -175,7 +175,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Gbl.Hierarchy.Deg.ShrtName), ActSeeCrs, Btn_CONFIRM_BUTTON,Txt_Courses); - Str_FreeString (); + Str_FreeStrings (); } else if (Gbl.Hierarchy.Ctr.CtrCod > 0) // Center selected { @@ -185,7 +185,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Gbl.Hierarchy.Ctr.ShrtName), ActSeeDeg, Btn_CONFIRM_BUTTON,Txt_Degrees); - Str_FreeString (); + Str_FreeStrings (); } else if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected { @@ -195,7 +195,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Gbl.Hierarchy.Ins.ShrtName), ActSeeCtr, Btn_CONFIRM_BUTTON,Txt_Centers); - Str_FreeString (); + Str_FreeStrings (); } else if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected { @@ -205,7 +205,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]), ActSeeIns, Btn_CONFIRM_BUTTON,Txt_Institutions); - Str_FreeString (); + Str_FreeStrings (); } else /* Select a country */ @@ -231,7 +231,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) Cfg_PLATFORM_SHORT_NAME), ActFrmMyAcc, Btn_CREATE_BUTTON,Txt_Create_account); - Str_FreeString (); + Str_FreeStrings (); } /***** End table and box *****/ @@ -247,10 +247,12 @@ static void Hlp_ShowRowHelpWhatWouldYouLikeToDo (const char *Description, Btn_Button_t Button, const char *TxtButton) { + extern const char *The_ClassDat[The_NUM_THEMES]; + HTM_TR_Begin (NULL); /***** Description *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtColon (Description); HTM_TD_End (); diff --git a/swad_hierarchy.c b/swad_hierarchy.c index ed3c47ba..32280d48 100644 --- a/swad_hierarchy.c +++ b/swad_hierarchy.c @@ -735,24 +735,6 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan) DB_FreeMySQLResult (&mysql_res); } -/*****************************************************************************/ -/********************* Build a "Go to " message ***********************/ -/*****************************************************************************/ -// Where is a hierarchy member (country, institution, center, degree or course -// Hie_FreeGoToMsg() must be called after calling this function - -char *Hie_BuildGoToMsg (const char *Where) - { - extern const char *Txt_Go_to_X; - - return Str_BuildStringStr (Txt_Go_to_X,Where); - } - -void Hie_FreeGoToMsg (void) - { - Str_FreeString (); - } - /*****************************************************************************/ /*********************** Write status cell in table **************************/ /*****************************************************************************/ @@ -773,11 +755,12 @@ void Hie_WriteStatusCellEditable (bool ICanEdit,Hie_Status_t Status, Act_Action_t NextAction,long HieCod, const char *Txt[Hie_NUM_STATUS_TXT]) { + extern const char *The_ClassDat[The_NUM_THEMES]; Hie_StatusTxt_t StatusTxt = Hie_GetStatusTxtFromStatusBits (Status); unsigned StatusUnsigned; /***** Begin cell *****/ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit && StatusTxt == Hie_STATUS_PENDING) { /* Begin form */ diff --git a/swad_hierarchy.h b/swad_hierarchy.h index fba8e9e9..53f0f815 100644 --- a/swad_hierarchy.h +++ b/swad_hierarchy.h @@ -62,9 +62,6 @@ void Hie_ResetHierarchy (void); void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan); -char *Hie_BuildGoToMsg (const char *Where); -void Hie_FreeGoToMsg (void); - void Hie_WriteStatusCell (Hie_Status_t Status, const char *Class,const char *BgColor, const char *Txt[Hie_NUM_STATUS_TXT]); diff --git a/swad_hierarchy_config.c b/swad_hierarchy_config.c index bf92186e..86a93779 100644 --- a/swad_hierarchy_config.c +++ b/swad_hierarchy_config.c @@ -70,6 +70,8 @@ void HieCfg_Title (bool PutLink, void HieCfg_FullName (bool PutForm,const char *Label,Act_Action_t NextAction, const char FullName[Cns_HIERARCHY_MAX_BYTES_FULL_NAME + 1]) { + extern const char *The_ClassDatN[The_NUM_THEMES]; + /***** Full name *****/ HTM_TR_Begin (NULL); @@ -79,7 +81,7 @@ void HieCfg_FullName (bool PutForm,const char *Label,Act_Action_t NextAction, Label); /* Data */ - HTM_TD_Begin ("class=\"DAT_N LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (PutForm) { /* Form to change full name */ @@ -104,6 +106,7 @@ void HieCfg_FullName (bool PutForm,const char *Label,Act_Action_t NextAction, void HieCfg_ShrtName (bool PutForm,Act_Action_t NextAction, const char ShrtName[Cns_HIERARCHY_MAX_BYTES_SHRT_NAME + 1]) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Short_name; /***** Short name *****/ @@ -115,7 +118,7 @@ void HieCfg_ShrtName (bool PutForm,Act_Action_t NextAction, Txt_Short_name); /* Data */ - HTM_TD_Begin ("class=\"DAT_N LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (PutForm) { /* Form to change short name */ @@ -140,6 +143,7 @@ void HieCfg_ShrtName (bool PutForm,Act_Action_t NextAction, void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction, const char WWW[Cns_MAX_BYTES_WWW + 1]) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Web; /***** Web *****/ @@ -151,7 +155,7 @@ void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction, Txt_Web); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { /* Form to change web */ @@ -164,7 +168,8 @@ void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction, { HTM_DIV_Begin ("class=\"EXTERNAL_WWW_LONG\""); if (!PrintView) - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\"",WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + WWW,The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (WWW); if (!PrintView) HTM_A_End (); @@ -181,6 +186,7 @@ void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction, void HieCfg_Shortcut (bool PrintView,const char *ParamName,long HieCod) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Shortcut; /***** Short cut *****/ @@ -190,16 +196,18 @@ void HieCfg_Shortcut (bool PrintView,const char *ParamName,long HieCod) Frm_LabelColumn ("RT",NULL,Txt_Shortcut); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (!PrintView) { if (ParamName) - HTM_A_Begin ("href=\"%s/?%s=%ld\" class=\"DAT\" target=\"_blank\"", + HTM_A_Begin ("href=\"%s/?%s=%ld\" class=\"%s\" target=\"_blank\"", Cfg_URL_SWAD_CGI, - ParamName,HieCod); + ParamName,HieCod, + The_ClassDat[Gbl.Prefs.Theme]); else - HTM_A_Begin ("href=\"%s/\" class=\"DAT\" target=\"_blank\"", - Cfg_URL_SWAD_CGI); + HTM_A_Begin ("href=\"%s/\" class=\"%s\" target=\"_blank\"", + Cfg_URL_SWAD_CGI, + The_ClassDat[Gbl.Prefs.Theme]); } if (ParamName) HTM_TxtF ("%s/?%s=%ld", @@ -221,6 +229,7 @@ void HieCfg_Shortcut (bool PrintView,const char *ParamName,long HieCod) void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Centers; extern const char *Txt_Centers_of_INSTITUTION_X; @@ -238,8 +247,9 @@ void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm) Ins_PutParamInsCod (Gbl.Hierarchy.Ins.InsCod); HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Centers_of_INSTITUTION_X, Gbl.Hierarchy.Ins.ShrtName), - "BT_LINK DAT",NULL); - Str_FreeString (); + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); } HTM_Unsigned (NumCtrs); if (PutForm) @@ -258,6 +268,7 @@ void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm) void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Centers_with_map; /***** Number of centers with map *****/ @@ -267,7 +278,7 @@ void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap) Frm_LabelColumn ("RT",NULL,Txt_Centers_with_map); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%u (%.1lf%%)", NumCtrsWithMap, NumCtrs ? (double) NumCtrsWithMap * 100.0 / @@ -284,6 +295,7 @@ void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap) void HieCfg_QR (const char *ParamName,long HieCod) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_QR_code; /***** QR *****/ @@ -293,7 +305,7 @@ void HieCfg_QR (const char *ParamName,long HieCod) Frm_LabelColumn ("RT",NULL,Txt_QR_code); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); QR_LinkTo (250,ParamName,HieCod); HTM_TD_End (); @@ -306,6 +318,7 @@ void HieCfg_QR (const char *ParamName,long HieCod) void HieCfg_NumUsrsInCrss (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Users_in_courses; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; @@ -318,7 +331,7 @@ void HieCfg_NumUsrsInCrss (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role) Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN]); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Enr_GetCachedNumUsrsInCrss (Scope,Cod, Role == Rol_UNK ? (1 << Rol_STD) | (1 << Rol_NET) | diff --git a/swad_holiday.c b/swad_holiday.c index 3f97356d..f3d65403 100644 --- a/swad_holiday.c +++ b/swad_holiday.c @@ -95,6 +95,7 @@ void Hld_ResetHolidays (struct Hld_Holidays *Holidays) void Hld_SeeHolidays (void) { extern const char *Hlp_INSTITUTION_Holidays; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Holidays; extern const char *Txt_HOLIDAYS_HELP_ORDER[2]; extern const char *Txt_HOLIDAYS_ORDER[2]; @@ -163,18 +164,20 @@ void Hld_SeeHolidays (void) /* Write data of this holiday */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Holidays.Lst[NumHld].PlcCod <= 0 ? Txt_All_places : Holidays.Lst[NumHld].PlaceFullName); HTM_TD_End (); Dat_ConvDateToDateStr (&Holidays.Lst[NumHld].StartDate,StrDate); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF (" %s",StrDate); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_NBSP (); switch (Holidays.Lst[NumHld].HldTyp) { @@ -187,7 +190,8 @@ void Hld_SeeHolidays (void) } HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF (" %s",Holidays.Lst[NumHld].Name); HTM_TD_End (); @@ -503,6 +507,7 @@ static void Hld_ListHolidaysForEdition (const struct Hld_Holidays *Holidays, const struct Plc_Places *Places) { extern const char *Hlp_INSTITUTION_Holidays_edit; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Holidays; extern const char *Txt_All_places; extern const char *Txt_HOLIDAY_TYPES[Hld_NUM_TYPES_HOLIDAY]; @@ -536,7 +541,7 @@ static void Hld_ListHolidaysForEdition (const struct Hld_Holidays *Holidays, HTM_TD_End (); /* Holiday code */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%ld ",Hld->HldCod); HTM_TD_End (); diff --git a/swad_icon.c b/swad_icon.c index 1229b15a..a5e75d74 100644 --- a/swad_icon.c +++ b/swad_icon.c @@ -384,8 +384,19 @@ void Ico_PutContextualIconToZIP (Act_Action_t NextAction, void Ico_PutDivIcon (const char *DivClass,const char *Icon,const char *Title) { + static const char *ClassIco[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "CONTEXT_ICO_16x16", + [The_THEME_GREY ] = "CONTEXT_ICO_16x16", + [The_THEME_PURPLE] = "CONTEXT_ICO_16x16", + [The_THEME_BLUE ] = "CONTEXT_ICO_16x16", + [The_THEME_YELLOW] = "CONTEXT_ICO_16x16", + [The_THEME_PINK ] = "CONTEXT_ICO_16x16", + [The_THEME_DARK ] = "CONTEXT_ICO_16x16 CONTEXT_ICO_DARK", + }; + HTM_DIV_Begin ("class=\"%s\"",DivClass); - Ico_PutIcon (Icon,Title,"CONTEXT_ICO_16x16"); + Ico_PutIcon (Icon,Title,ClassIco[Gbl.Prefs.Theme]); HTM_DIV_End (); } @@ -406,7 +417,18 @@ void Ico_PutDivIconLink (const char *DivClass,const char *Icon,const char *Title void Ico_PutIconLink (const char *Icon,const char *Title) { - HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16"); + static const char *ClassIco[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16", + [The_THEME_GREY ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16", + [The_THEME_PURPLE] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16", + [The_THEME_BLUE ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16", + [The_THEME_YELLOW] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16", + [The_THEME_PINK ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16", + [The_THEME_DARK ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16 CONTEXT_ICO_DARK", + }; + + HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,ClassIco[Gbl.Prefs.Theme]); } /*****************************************************************************/ @@ -415,9 +437,20 @@ void Ico_PutIconLink (const char *Icon,const char *Title) void Ico_PutIconTextLink (const char *Icon,const char *Text) { + static const char *ClassIco[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "CONTEXT_ICO_x16", + [The_THEME_GREY ] = "CONTEXT_ICO_x16", + [The_THEME_PURPLE] = "CONTEXT_ICO_x16", + [The_THEME_BLUE ] = "CONTEXT_ICO_x16", + [The_THEME_YELLOW] = "CONTEXT_ICO_x16", + [The_THEME_PINK ] = "CONTEXT_ICO_x16", + [The_THEME_DARK ] = "CONTEXT_ICO_x16 CONTEXT_ICO_DARK", + }; + /***** Print icon and optional text *****/ HTM_DIV_Begin ("class=\"CONTEXT_OPT ICO_HIGHLIGHT\""); - Ico_PutIcon (Icon,Text,"CONTEXT_ICO_x16"); + Ico_PutIcon (Icon,Text,ClassIco[Gbl.Prefs.Theme]); HTM_TxtF (" %s",Text); HTM_DIV_End (); } diff --git a/swad_indicator.c b/swad_indicator.c index bf560dbb..a9df7159 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -93,6 +93,7 @@ void Ind_ReqIndicatorsCourses (void) { extern const char *Hlp_ANALYTICS_Indicators; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Scope; extern const char *Txt_Types_of_degree; extern const char *Txt_only_if_the_scope_is_X; @@ -141,7 +142,7 @@ void Ind_ReqIndicatorsCourses (void) Frm_LabelColumn ("RT","OthDegTypCod",Txt_Types_of_degree); /* Data */ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); DegTyp_WriteSelectorDegreeTypes (Indicators.DegTypCod); HTM_Txt (" ("); HTM_TxtF (Txt_only_if_the_scope_is_X,Cfg_PLATFORM_SHORT_NAME); @@ -427,13 +428,15 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic unsigned NumCrssWithIndicatorYes[1 + Ind_NUM_INDICATORS], unsigned NumCrss,bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Indicators; extern const char *Txt_Courses; extern const char *Txt_Total; unsigned Ind; const char *Class; const char *ClassNormal = "DAT_LIGHT RM"; - const char *ClassHighlight = "DAT RM LIGHT_BLUE"; + const char *ClassHighlight = Str_BuildStringStr ("%s RM LIGHT_BLUE",The_ClassDat[Gbl.Prefs.Theme]); /***** Write number of courses with each number of indicators valid *****/ HTM_TABLE_BeginPadding (2); @@ -492,21 +495,23 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic if (PutForm) HTM_TD_Empty (1); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Txt_Total); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Unsigned (NumCrss); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\""); + HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtF ("(%.1f%%)",100.0); HTM_TD_End (); HTM_TR_End (); HTM_TABLE_End (); + + Str_FreeStrings (); } /*****************************************************************************/ diff --git a/swad_info.c b/swad_info.c index 5704a71f..ab9a7695 100644 --- a/swad_info.c +++ b/swad_info.c @@ -887,6 +887,7 @@ void Inf_SetInfoSrc (void) void Inf_FormsToSelSendInfo (void) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Source_of_information; extern const char *Txt_INFO_SRC_FULL_TEXT[Inf_NUM_SOURCES]; extern const char *Txt_INFO_SRC_HELP[Inf_NUM_SOURCES]; @@ -947,21 +948,21 @@ void Inf_FormsToSelSendInfo (void) HTM_TR_Begin (NULL); /* Select info source */ - if (InfoSrc == FromDB.Src) - HTM_TD_Begin ("class=\"DAT LT LIGHT_BLUE\""); - else - HTM_TD_Begin ("class=\"DAT LT\""); - Frm_BeginForm (Inf_ActionsSelecInfoSrc[Gbl.Crs.Info.Type]); - HTM_INPUT_RADIO ("InfoSrc",InfoSrc != FromDB.Src && - (InfoSrc == Inf_NONE || - InfoAvailable[InfoSrc]), // Info available for this source - "id=\"InfoSrc%u\" value=\"%u\"%s", - (unsigned) InfoSrc,(unsigned) InfoSrc, - InfoSrc == FromDB.Src ? " checked=\"checked\"" : - (InfoSrc == Inf_NONE || - InfoAvailable[InfoSrc]) ? "" : // Info available for this source - " disabled=\"disabled\""); - Frm_EndForm (); + HTM_TD_Begin ("class=\"%s LT%s\"", + The_ClassDat[Gbl.Prefs.Theme], + InfoSrc == FromDB.Src ? " LIGHT_BLUE" : + ""); + Frm_BeginForm (Inf_ActionsSelecInfoSrc[Gbl.Crs.Info.Type]); + HTM_INPUT_RADIO ("InfoSrc",InfoSrc != FromDB.Src && + (InfoSrc == Inf_NONE || + InfoAvailable[InfoSrc]), // Info available for this source + "id=\"InfoSrc%u\" value=\"%u\"%s", + (unsigned) InfoSrc,(unsigned) InfoSrc, + InfoSrc == FromDB.Src ? " checked=\"checked\"" : + (InfoSrc == Inf_NONE || + InfoAvailable[InfoSrc]) ? "" : // Info available for this source + " disabled=\"disabled\""); + Frm_EndForm (); HTM_TD_End (); /* Form for this info source */ @@ -975,7 +976,7 @@ void Inf_FormsToSelSendInfo (void) HTM_LABEL_End (); if (Txt_INFO_SRC_HELP[InfoSrc]) { - HTM_SPAN_Begin ("class=\"DAT\""); + HTM_SPAN_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_BR (); HTM_TxtF ("(%s)",Txt_INFO_SRC_HELP[InfoSrc]); HTM_SPAN_End (); @@ -1459,6 +1460,7 @@ static bool Inf_CheckPlainTxt (long CrsCod,Inf_Type_t InfoType) static bool Inf_CheckAndShowPlainTxt (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_INFO_TITLE[Inf_NUM_TYPES]; char TxtHTML[Cns_MAX_BYTES_LONG_TEXT + 1]; bool ICanEdit = (Gbl.Usrs.Me.Role.Logged == Rol_TCH || @@ -1495,7 +1497,7 @@ static bool Inf_CheckAndShowPlainTxt (void) Gbl.Crs.Info.Type == Inf_TEACHING_GUIDE) Lay_WriteHeaderClassPhoto (false,false,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Crs.CrsCod); - HTM_DIV_Begin ("class=\"DAT LM\""); + HTM_DIV_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); /***** Convert to respectful HTML and insert links *****/ Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, diff --git a/swad_institution.c b/swad_institution.c index d99c6650..eb0c669e 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -106,6 +106,7 @@ static void Ins_FormToGoToMap (struct Ins_Instit *Ins); void Ins_SeeInsWithPendingCtrs (void) { extern const char *Hlp_SYSTEM_Pending; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Institutions_with_pending_centers; extern const char *Txt_Institution; extern const char *Txt_Centers_ABBREVIATION; @@ -170,7 +171,8 @@ void Ins_SeeInsWithPendingCtrs (void) HTM_TD_End (); /* Number of pending centers (row[1]) */ - HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor); + HTM_TD_Begin ("class=\"%s RM %s\"", + The_ClassDat[Gbl.Prefs.Theme],BgColor); HTM_Txt (row[1]); HTM_TD_End (); @@ -224,8 +226,8 @@ void Ins_DrawInstitutionLogoAndNameWithLink (struct Ins_Instit *Ins,Act_Action_t Ins_PutParamInsCod (Ins->InsCod); /***** Link to action *****/ - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Ins->FullName),ClassLink,NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Ins->FullName),ClassLink,NULL); + Str_FreeStrings (); /***** Institution logo and name *****/ Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,16,ClassLogo,true); @@ -284,7 +286,7 @@ static void Ins_ListInstitutions (void) Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]), Ins_PutIconsListingInstitutions,NULL, Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); if (Gbl.Hierarchy.Inss.Num) // There are institutions in the current country { @@ -356,6 +358,8 @@ static void Ins_PutIconToEditInstitutions (void) static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned NumIns) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_INSTITUTION_STATUS[Hie_NUM_STATUS_TXT]; const char *TxtClassNormal; const char *TxtClassStrong; @@ -364,12 +368,12 @@ static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned Num if (Ins->Status & Hie_STATUS_BIT_PENDING) { TxtClassNormal = "DAT_LIGHT"; - TxtClassStrong = "BT_LINK LT DAT_LIGHT"; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT"); } else { - TxtClassNormal = "DAT"; - TxtClassStrong = "BT_LINK LT DAT_N"; + TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme]; + TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]); } BgColor = (Ins->InsCod == Gbl.Hierarchy.Ins.InsCod) ? "LIGHT_BLUE" : Gbl.ColorRows[Gbl.RowEvenOdd]; @@ -426,6 +430,7 @@ static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned Num HTM_TR_End (); + Str_FreeStrings (); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; } @@ -539,7 +544,7 @@ static void Ins_EditInstitutionsInternal (void) Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]), Ins_PutIconsEditingInstitutions,NULL, Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Put a form to create a new institution *****/ Ins_PutFormToCreateInstitution (); @@ -910,6 +915,7 @@ void Ins_WriteSelectorOfInstitution (void) static void Ins_ListInstitutionsForEdition (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_INSTITUTION_STATUS[Hie_NUM_STATUS_TXT]; unsigned NumIns; struct Ins_Instit *Ins; @@ -948,44 +954,44 @@ static void Ins_ListInstitutionsForEdition (void) /* Put icon to remove institution */ HTM_TD_Begin ("class=\"BM\""); - if (!ICanEdit || - NumCtrs || // Institution has centers - NumUsrsIns || // Institution has users - NumUsrsInCrssOfIns) // Institution has users - // Institution has centers or users ==> deletion forbidden - Ico_PutIconRemovalNotAllowed (); - else - Ico_PutContextualIconToRemove (ActRemIns,NULL, - Hie_PutParamOtherHieCod,&Ins->InsCod); + if (!ICanEdit || + NumCtrs || // Institution has centers + NumUsrsIns || // Institution has users + NumUsrsInCrssOfIns) // Institution has users + // Institution has centers or users ==> deletion forbidden + Ico_PutIconRemovalNotAllowed (); + else + Ico_PutContextualIconToRemove (ActRemIns,NULL, + Hie_PutParamOtherHieCod,&Ins->InsCod); HTM_TD_End (); /* Institution code */ - HTM_TD_Begin ("class=\"DAT CODE\""); - HTM_Long (Ins->InsCod); + HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]); + HTM_Long (Ins->InsCod); HTM_TD_End (); /* Institution logo */ HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ins->FullName); - Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,20,NULL,true); + Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,20,NULL,true); HTM_TD_End (); /* Institution short name */ - HTM_TD_Begin ("class=\"DAT LM\""); - if (ICanEdit) - { - Frm_BeginForm (ActRenInsSho); - Hie_PutParamOtherHieCod (&Ins->InsCod); - HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Ins->ShrtName, - HTM_SUBMIT_ON_CHANGE, - "class=\"INPUT_SHORT_NAME\""); - Frm_EndForm (); - } - else - HTM_Txt (Ins->ShrtName); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); + if (ICanEdit) + { + Frm_BeginForm (ActRenInsSho); + Hie_PutParamOtherHieCod (&Ins->InsCod); + HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Ins->ShrtName, + HTM_SUBMIT_ON_CHANGE, + "class=\"INPUT_SHORT_NAME\""); + Frm_EndForm (); + } + else + HTM_Txt (Ins->ShrtName); HTM_TD_End (); /* Institution full name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActRenInsFul); @@ -1000,7 +1006,7 @@ static void Ins_ListInstitutionsForEdition (void) HTM_TD_End (); /* Institution WWW */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanEdit) { Frm_BeginForm (ActChgInsWWW); @@ -1013,8 +1019,10 @@ static void Ins_ListInstitutionsForEdition (void) { Str_Copy (WWW,Ins->WWW,sizeof (WWW) - 1); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\""); - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"", - Ins->WWW,Ins->WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\" title=\"%s\"", + Ins->WWW, + The_ClassDat[Gbl.Prefs.Theme], + Ins->WWW); HTM_Txt (WWW); HTM_A_End (); HTM_DIV_End (); @@ -1022,22 +1030,23 @@ static void Ins_ListInstitutionsForEdition (void) HTM_TD_End (); /* Number of users who claim to belong to this institution */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsIns); HTM_TD_End (); /* Number of centers */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCtrs); HTM_TD_End (); /* Number of users in courses of this institution */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrsInCrssOfIns); HTM_TD_End (); /* Institution requester */ - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); UsrDat.UsrCod = Ins->RequesterUsrCod; Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, Usr_DONT_GET_PREFS, @@ -1396,8 +1405,8 @@ static void Ins_ShowAlertAndButtonToGoToIns (void) Ale_ShowLastAlertAndButton (ActSeeCtr,NULL,NULL, Ins_PutParamGoToIns,&Ins_EditingIns->InsCod, Btn_CONFIRM_BUTTON, - Hie_BuildGoToMsg (Ins_EditingIns->ShrtName)); - Hie_FreeGoToMsg (); + Str_BuildGoToMsg (Ins_EditingIns->ShrtName)); + Str_FreeStrings (); } else /***** Alert *****/ @@ -1417,6 +1426,7 @@ static void Ins_PutParamGoToIns (void *InsCod) static void Ins_PutFormToCreateInstitution (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_institution; extern const char *Txt_Create_institution; @@ -1472,27 +1482,28 @@ static void Ins_PutFormToCreateInstitution (void) HTM_TD_End (); /***** Number of users who claim to belong to this institution ****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Number of centers *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Number of users in courses of this institution ****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); /***** Institution requester *****/ - HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\""); + HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"", + The_ClassDat[Gbl.Prefs.Theme]); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL); HTM_TD_End (); /***** Institution status *****/ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TD_End (); HTM_TR_End (); @@ -1797,7 +1808,7 @@ void Ins_ListInssFound (MYSQL_RES **mysql_res,unsigned NumInss) Txt_institutions), NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Write heading *****/ Ins_PutHeadInstitutionsForSeeing (false); // Order not selectable diff --git a/swad_institution_config.c b/swad_institution_config.c index d53583ca..10532498 100644 --- a/swad_institution_config.c +++ b/swad_institution_config.c @@ -302,6 +302,7 @@ static void InsCfg_Map (void) static void InsCfg_Country (bool PrintView,bool PutForm) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Country; unsigned NumCty; @@ -317,7 +318,7 @@ static void InsCfg_Country (bool PrintView,bool PutForm) Txt_Country); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); if (PutForm) { /* Put form to select country */ @@ -340,9 +341,10 @@ static void InsCfg_Country (bool PrintView,bool PutForm) { Frm_BeginFormGoTo (ActSeeCtyInf); Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]), - "BT_LINK LT DAT",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]), + Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); } Cty_DrawCountryMap (&Gbl.Hierarchy.Cty,"COUNTRY_MAP_TINY"); HTM_NBSP (); @@ -414,6 +416,7 @@ static void InsCfg_QR (void) static void InsCfg_NumUsrs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Users_of_the_institution; /***** Number of users *****/ @@ -423,7 +426,7 @@ static void InsCfg_NumUsrs (void) Frm_LabelColumn ("RT",NULL,Txt_Users_of_the_institution); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ins_GetCachedNumUsrsWhoClaimToBelongToIns (&Gbl.Hierarchy.Ins)); HTM_TD_End (); @@ -436,6 +439,7 @@ static void InsCfg_NumUsrs (void) static void InsCfg_NumDegs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Degrees; /***** Number of degrees *****/ @@ -445,7 +449,7 @@ static void InsCfg_NumDegs (void) Frm_LabelColumn ("RT",NULL,Txt_Degrees); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Deg_GetCachedNumDegsInIns (Gbl.Hierarchy.Ins.InsCod)); HTM_TD_End (); @@ -458,6 +462,7 @@ static void InsCfg_NumDegs (void) static void InsCfg_NumCrss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Courses; /***** Number of courses *****/ @@ -467,7 +472,7 @@ static void InsCfg_NumCrss (void) Frm_LabelColumn ("RT",NULL,Txt_Courses); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Crs_GetCachedNumCrssInIns (Gbl.Hierarchy.Ins.InsCod)); HTM_TD_End (); @@ -480,6 +485,7 @@ static void InsCfg_NumCrss (void) static void InsCfg_NumDpts (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Departments; /***** Number of departments *****/ @@ -489,7 +495,7 @@ static void InsCfg_NumDpts (void) Frm_LabelColumn ("RT",NULL,Txt_Departments); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Dpt_GetNumDptsInIns (Gbl.Hierarchy.Ins.InsCod)); HTM_TD_End (); diff --git a/swad_layout.c b/swad_layout.c index 639e7c50..4cdc76c6 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -1581,6 +1581,7 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto, void Lay_AdvertisementMobile (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Stay_connected_with_SWADroid; if (!(rand () % Lay_SHOW_ADVERTISEMENT_ONE_TIME_OF_X)) @@ -1594,9 +1595,9 @@ void Lay_AdvertisementMobile (void) /***** Show advertisement *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_A_Begin ("href=\"https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid\"" - " class=\"DAT\""); + " class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_Stay_connected_with_SWADroid); HTM_BR (); HTM_BR (); diff --git a/swad_link.c b/swad_link.c index 3adcc535..5c35efe8 100644 --- a/swad_link.c +++ b/swad_link.c @@ -375,6 +375,7 @@ void Lnk_FreeListLinks (void) static void Lnk_ListLinksForEdition (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumLnk; struct Lnk_Link *Lnk; @@ -400,7 +401,7 @@ static void Lnk_ListLinksForEdition (void) HTM_TD_End (); /* Link code */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Lnk->LnkCod); HTM_TD_End (); diff --git a/swad_mail.c b/swad_mail.c index 7cef9a1c..33e7b8f6 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -101,6 +101,7 @@ static void Mai_EditingMailDomainDestructor (void); void Mai_SeeMailDomains (void) { extern const char *Hlp_START_Domains; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Email_domains_allowed_for_notifications; extern const char *Txt_EMAIL_DOMAIN_HELP_ORDER[3]; extern const char *Txt_EMAIL_DOMAIN_ORDER[3]; @@ -154,15 +155,15 @@ void Mai_SeeMailDomains (void) /* Write data of this mail domain */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Gbl.Mails.Lst[NumMai].Domain); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Gbl.Mails.Lst[NumMai].Info); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Gbl.Mails.Lst[NumMai].NumUsrs); HTM_TD_End (); @@ -401,6 +402,7 @@ void Mai_FreeListMailDomains (void) static void Mai_ListMailDomainsForEdition (void) { extern const char *Hlp_START_Domains_edit; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Email_domains_allowed_for_notifications; unsigned NumMai; struct Mail *Mai; @@ -429,7 +431,7 @@ static void Mai_ListMailDomainsForEdition (void) HTM_TD_End (); /* Mail code */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Mai->MaiCod); HTM_TD_End (); @@ -454,7 +456,7 @@ static void Mai_ListMailDomainsForEdition (void) HTM_TD_End (); /* Number of users */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Mai->NumUsrs); HTM_TD_End (); @@ -792,6 +794,7 @@ static void Mai_ListEmails (__attribute__((unused)) void *Args) { extern const char *Hlp_COMMUNICATION_Email; extern const char *The_ClassFormOutBoxBold[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Email_addresses; extern const char *Txt_X_users_who_have_email; extern const char *Txt_X_users_who_have_accepted_and_who_have_email; @@ -865,12 +868,12 @@ static void Mai_ListEmails (__attribute__((unused)) void *Args) HTM_DIV_End (); /***** Show a message with the number of users with email ****/ - HTM_DIV_Begin ("class=\"DAT CM\""); + HTM_DIV_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF (Txt_X_users_who_have_email,NumUsrsWithEmail); HTM_DIV_End (); /***** Show a message with the number of users who have accepted and have email ****/ - HTM_DIV_Begin ("class=\"DAT CM\""); + HTM_DIV_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF (Txt_X_users_who_have_accepted_and_who_have_email, NumAcceptedUsrsWithEmail); HTM_DIV_End (); @@ -1047,6 +1050,7 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe, bool IMustFillInEmail, bool IShouldConfirmEmail) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Before_going_to_any_other_option_you_must_fill_in_your_email_address; extern const char *Txt_Please_confirm_your_email_address; extern const char *Txt_Current_email; @@ -1126,7 +1130,8 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe, Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Other_emails); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"", + The_ClassDat[Gbl.Prefs.Theme]); } /* Form to remove email */ @@ -1146,7 +1151,7 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe, Ico_PutIcon ("check-circle.svg", Str_BuildStringStr (Txt_Email_X_confirmed,row[0]), "ICO16x16"); - Str_FreeString (); + Str_FreeStrings (); } /* Form to change user's email */ @@ -1185,7 +1190,7 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe, Txt_Email); // The first email /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ItsMe) Frm_BeginFormAnchor (ActChgMyMai,Mai_EMAIL_SECTION_ID); else diff --git a/swad_match.c b/swad_match.c index 0997780e..b36f8f77 100644 --- a/swad_match.c +++ b/swad_match.c @@ -717,8 +717,11 @@ static void Mch_GetAndWriteNamesOfGrpsAssociatedToMatch (const struct Mch_Match void Mch_ListOneOrMoreMatchesNumPlayers (const struct Mch_Match *Match) { + extern const char *The_ClassDat[The_NUM_THEMES]; + /***** Number of players who have answered any question in the match ******/ - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Unsigned (Mch_DB_GetNumUsrsWhoHavePlayedMch (Match->MchCod)); HTM_TD_End (); } @@ -729,15 +732,17 @@ void Mch_ListOneOrMoreMatchesNumPlayers (const struct Mch_Match *Match) static void Mch_ListOneOrMoreMatchesStatus (struct Mch_Match *Match,unsigned NumQsts) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Play; extern const char *Txt_Resume; - HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s CT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (Match->Status.Showing != Mch_END) // Match not over { /* Current question index / total of questions */ - HTM_DIV_Begin ("class=\"DAT\""); + HTM_DIV_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%u/%u",Match->Status.QstInd,NumQsts); HTM_DIV_End (); } @@ -762,6 +767,7 @@ static void Mch_ListOneOrMoreMatchesStatus (struct Mch_Match *Match,unsigned Num static void Mch_ListOneOrMoreMatchesResult (struct Gam_Games *Games, const struct Mch_Match *Match) { + extern const char *The_ClassDat[The_NUM_THEMES]; static void (*Function[Rol_NUM_ROLES]) (struct Gam_Games *Games, const struct Mch_Match *Match) = { @@ -771,7 +777,8 @@ static void Mch_ListOneOrMoreMatchesResult (struct Gam_Games *Games, [Rol_SYS_ADM] = Mch_ListOneOrMoreMatchesResultTch, }; - HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s CT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (Function[Gbl.Usrs.Me.Role.Logged]) Function[Gbl.Usrs.Me.Role.Logged] (Games,Match); @@ -1318,6 +1325,7 @@ static void Mch_PutFormNewMatch (const struct Gam_Game *Game) static void Mch_ShowLstGrpsToEditMatch (long MchCod) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Groups; extern const char *Txt_The_whole_course; unsigned NumGrpTyp; @@ -1343,7 +1351,8 @@ static void Mch_ShowLstGrpsToEditMatch (long MchCod) /***** First row: checkbox to select the whole course *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\""); + HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_LABEL_Begin (NULL); HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"WholeCrs\" value=\"Y\"%s" @@ -2370,7 +2379,7 @@ static void Mch_PutFormCountdown (struct Mch_Match *Match,long Seconds,const cha "BT_LINK_OFF MCH_BUTTON_HIDDEN %s", Color), NULL); - Str_FreeString (); + Str_FreeStrings (); HTM_NBSP (); if (Seconds >= 0) @@ -2639,7 +2648,7 @@ static void Mch_ShowFormColumns (const struct Mch_Match *Match) Str_BuildStringLongStr ((long) NumCols, NumCols == 1 ? Txt_column : Txt_columns)); - Str_FreeString (); + Str_FreeStrings (); /* End form */ Frm_EndForm (); @@ -2667,6 +2676,7 @@ static void Mch_PutParamNumCols (unsigned NumCols) // Number of columns static void Mch_PutCheckboxResult (const struct Mch_Match *Match) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_View_results; /***** Begin container *****/ @@ -2677,7 +2687,10 @@ static void Mch_PutCheckboxResult (const struct Mch_Match *Match) Mch_PutParamMchCod (Match->MchCod); // Current match being played /***** Put icon with link *****/ - HTM_BUTTON_SUBMIT_Begin (Txt_View_results,"BT_LINK DAT ICO_HIGHLIGHT",NULL); + HTM_BUTTON_SUBMIT_Begin (Txt_View_results, + Str_BuildStringStr ("BT_LINK %s ICO_HIGHLIGHT",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_TxtF ("", Match->Status.ShowQstResults ? "fas fa-toggle-on" : "fas fa-toggle-off"); @@ -3220,7 +3233,7 @@ static void Mch_DrawScoreRow (double Score,double MinScore,double MaxScore, NumUsrs == 1 ? Txt_ROLES_SINGUL_abc[Rol_STD][Usr_SEX_UNKNOWN] : Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN]), "class=\"MCH_SCO_BAR\" style=\"width:%u%%;\"",BarWidth); - Str_FreeString (); + Str_FreeStrings (); free (Icon); HTM_TxtF (" %u",NumUsrs); HTM_TD_End (); diff --git a/swad_match_result.c b/swad_match_result.c index 5e658ea7..1dc6d29a 100644 --- a/swad_match_result.c +++ b/swad_match_result.c @@ -171,7 +171,7 @@ void MchRes_ShowMyMchResultsInGam (void) MchRes_ShowResultsBegin (&Games, Str_BuildStringStr (Txt_Results_of_game_X,Game.Title), false); // Do not list games to select - Str_FreeString (); + Str_FreeStrings (); MchRes_ListMyMchResultsInGam (&Games,Game.GamCod); MchRes_ShowResultsEnd (); @@ -223,7 +223,7 @@ void MchRes_ShowMyMchResultsInMch (void) /***** List my matches results in match *****/ MchRes_ShowResultsBegin (&Games,Str_BuildStringStr (Txt_Results_of_match_X,Match.Title), false); // Do not list games to select - Str_FreeString (); + Str_FreeStrings (); MchRes_ListMyMchResultsInMch (&Games,Match.MchCod); MchRes_ShowResultsEnd (); @@ -375,7 +375,7 @@ void MchRes_ShowAllMchResultsInGam (void) MchRes_ShowResultsBegin (&Games, Str_BuildStringStr (Txt_Results_of_game_X,Game.Title), false); // Do not list games to select - Str_FreeString (); + Str_FreeStrings (); MchRes_ListAllMchResultsInGam (&Games,Game.GamCod); MchRes_ShowResultsEnd (); @@ -450,7 +450,7 @@ void MchRes_ShowAllMchResultsInMch (void) MchRes_ShowResultsBegin (&Games, Str_BuildStringStr (Txt_Results_of_match_X,Match.Title), false); // Do not list games to select - Str_FreeString (); + Str_FreeStrings (); MchRes_ListAllMchResultsInMch (&Games,Match.MchCod); MchRes_ShowResultsEnd (); @@ -532,6 +532,7 @@ static void MchRes_ShowResultsEnd (void) static void MchRes_ListGamesToSelect (struct Gam_Games *Games) { extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Games; extern const char *Txt_Game; extern const char *Txt_Update_results; @@ -576,7 +577,8 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games) /* Write a row for this event */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s CT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_INPUT_CHECKBOX ("GamCod",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"Gam%u\" value=\"%ld\"%s", NumGame,Games->Lst[NumGame].GamCod, @@ -584,13 +586,15 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games) ""); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_LABEL_Begin ("for=\"Gam%u\"",NumGame); HTM_TxtF ("%u:",NumGame + 1); HTM_LABEL_End (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Txt (Game.Title); HTM_TD_End (); @@ -716,6 +720,7 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, long GamCod, // <= 0 ==> any const char *GamesSelectedCommas) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Result; MYSQL_RES *mysql_res; struct UsrData *UsrDat; @@ -788,8 +793,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, if (asprintf (&Id,"mch_res_time_%u_%u", (unsigned) StartEndTime,UniqueId) < 0) Err_NotEnoughMemoryExit (); - HTM_TD_Begin ("id =\"%s\" class=\"DAT LT COLOR%u\"", - Id,Gbl.RowEvenOdd); + HTM_TD_Begin ("id =\"%s\" class=\"%s LT COLOR%u\"", + Id,The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime], Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, true,true,false,0x7); @@ -798,7 +803,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, } /* Write match title */ - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Txt (Match.Title); HTM_TD_End (); @@ -811,7 +817,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, } /* Write number of questions */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) HTM_Unsigned (Print.NumQsts.All); else @@ -819,7 +826,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, HTM_TD_End (); /* Write number of non-blank answers */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { if (Print.NumQsts.NotBlank) @@ -832,7 +840,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, HTM_TD_End (); /* Write number of blank answers */ - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank; if (ICanView.Score) { @@ -846,7 +855,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, HTM_TD_End (); /* Write score */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { HTM_Double2Decimals (Print.Score); @@ -858,7 +868,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, HTM_TD_End (); /* Write average score per question */ - HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) HTM_Double2Decimals (Print.NumQsts.All ? Print.Score / (double) Print.NumQsts.All : @@ -868,7 +879,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, HTM_TD_End (); /* Write grade over maximum grade */ - HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanView.Score) { Grade = TstPrn_ComputeGrade (Print.NumQsts.All,Print.Score,Game.MaxGrade); @@ -963,64 +975,65 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults, double TotalScore, double TotalGrade) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Matches; /***** Begin row *****/ HTM_TR_Begin (NULL); /***** Row title *****/ - HTM_TD_Begin ("colspan=\"3\" class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_TxtColonNBSP (Txt_Matches); HTM_Unsigned (NumResults); HTM_TD_End (); /***** Write total number of questions *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumResults) HTM_Unsigned (NumTotalQsts->All); HTM_TD_End (); /***** Write total number of non-blank answers *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumResults) HTM_Unsigned (NumTotalQsts->NotBlank); HTM_TD_End (); /***** Write total number of blank answers *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumResults) HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank); HTM_TD_End (); /***** Write total score *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Double2Decimals (TotalScore); HTM_Txt ("/"); HTM_Unsigned (NumTotalQsts->All); HTM_TD_End (); /***** Write average score per question *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All : 0.0); HTM_TD_End (); /***** Write total grade *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Double2Decimals (TotalGrade); HTM_TD_End (); /***** Last cell *****/ - HTM_TD_Begin ("class=\"DAT_N LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", - Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_TD_End (); /***** End row *****/ @@ -1034,6 +1047,8 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults, void MchRes_ShowOneMchResult (void) { extern const char *Hlp_ASSESSMENT_Games_results; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME]; extern const char *Txt_Questions; @@ -1120,11 +1135,11 @@ void MchRes_ShowOneMchResult (void) /* User */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); ID_WriteUsrIDs (UsrDat,NULL); HTM_TxtF (" %s",UsrDat->Surname1); if (UsrDat->Surname2[0]) @@ -1146,13 +1161,14 @@ void MchRes_ShowOneMchResult (void) { HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_START_END_TIME[StartEndTime]); HTM_TD_End (); if (asprintf (&Id,"match_%u",(unsigned) StartEndTime) < 0) Err_NotEnoughMemoryExit (); - HTM_TD_Begin ("id=\"%s\" class=\"DAT LB\"",Id); + HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"", + Id,The_ClassDat[Gbl.Prefs.Theme]); Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime], Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, true,true,true,0x7); @@ -1165,11 +1181,11 @@ void MchRes_ShowOneMchResult (void) /***** Number of questions *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Questions); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Print.NumQsts.All); HTM_TD_End (); @@ -1178,11 +1194,11 @@ void MchRes_ShowOneMchResult (void) /***** Number of answers *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Answers); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Print.NumQsts.NotBlank); HTM_TD_End (); @@ -1191,11 +1207,11 @@ void MchRes_ShowOneMchResult (void) /***** Score *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Score); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView.Score) { HTM_STRONG_Begin (); @@ -1213,11 +1229,11 @@ void MchRes_ShowOneMchResult (void) /***** Grade *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Grade); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView.Score) { HTM_STRONG_Begin (); @@ -1233,11 +1249,11 @@ void MchRes_ShowOneMchResult (void) /***** Tags present in this result *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Tags); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); Gam_ShowTstTagsPresentInAGame (Match.GamCod); HTM_TD_End (); diff --git a/swad_menu.c b/swad_menu.c index fd05c7c3..297bda9b 100644 --- a/swad_menu.c +++ b/swad_menu.c @@ -209,9 +209,26 @@ Act_Action_t Mnu_GetFirstActionAvailableInCurrentTab (void) void Mnu_WriteMenuThisTab (void) { - extern const char *The_ClassIcoMenu[Ico_NUM_ICON_SETS][The_NUM_THEMES]; extern const char *The_ClassTxtMenu[The_NUM_THEMES]; extern const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB]; + static const char *ClassIcoMenu[Ico_NUM_ICON_SETS][The_NUM_THEMES] = + { + [Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_GREY ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = "", + [Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = "", + [Ico_ICON_SET_AWESOME][The_THEME_PINK ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " MENU_ICO_DARK", + + [Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "", + }; unsigned NumOptInMenu; Act_Action_t NumAct; const char *Title; @@ -252,7 +269,7 @@ void Mnu_WriteMenuThisTab (void) /***** Icon and text *****/ HTM_DIV_Begin ("class=\"MENU_ICO_TXT\""); HTM_DIV_Begin ("class=\"MENU_ICO%s\" style=\"background-image:url('%s/%s');\"", - The_ClassIcoMenu[Gbl.Prefs.IconSet][Gbl.Prefs.Theme], + ClassIcoMenu[Gbl.Prefs.IconSet][Gbl.Prefs.Theme], Gbl.Prefs.URLIconSet, Act_GetIcon (NumAct)); HTM_DIV_End (); diff --git a/swad_message.c b/swad_message.c index 19c8f360..de8e71b0 100644 --- a/swad_message.c +++ b/swad_message.c @@ -2390,9 +2390,9 @@ static bool Msg_WriteCrsOrgMsg (long CrsCod) Crs_PutParamCrsCod (Crs.CrsCod); HTM_DIV_Begin ("class=\"AUTHOR_TXT\""); HTM_Txt ("("); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs.FullName), + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs.FullName), "BT_LINK AUTHOR_TXT",NULL); - Hie_FreeGoToMsg (); + Str_FreeStrings (); HTM_Txt (Crs.ShrtName); HTM_BUTTON_End (); HTM_Txt (")"); @@ -2876,6 +2876,7 @@ static void Msg_UnbanSender (void) void Msg_ListBannedUsrs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_You_have_not_banned_any_sender; extern const char *Txt_Banned_users; extern const char *Txt_Sender_banned_click_to_unban_him; @@ -2933,7 +2934,7 @@ void Msg_ListBannedUsrs (void) HTM_TD_End (); /* Write user's full name */ - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (UsrDat.FullName); HTM_TD_End (); diff --git a/swad_network.c b/swad_network.c index 808e0b99..1dcebdc1 100644 --- a/swad_network.c +++ b/swad_network.c @@ -322,6 +322,7 @@ void Net_ShowWebAndSocialNetworksStats (void) { extern const char *Hlp_ANALYTICS_Figures_webs_social_networks; extern const char *Net_DB_WebsAndSocialNetworks[Net_NUM_WEBS_AND_SOCIAL_NETWORKS]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES]; extern const char *Txt_Web_social_network; extern const char *Txt_Number_of_users; @@ -376,7 +377,7 @@ void Net_ShowWebAndSocialNetworksStats (void) HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_IMG (Cfg_URL_ICON_PUBLIC, Net_WebsAndSocialNetworksIcons[Web], Net_WebsAndSocialNetworksTitle[Web], @@ -385,11 +386,11 @@ void Net_ShowWebAndSocialNetworksStats (void) HTM_Txt (Net_WebsAndSocialNetworksTitle[Web]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumUsrs); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Percentage (NumUsrsTotal ? 100.0 * (double) NumUsrs / (double) NumUsrsTotal : 0.0); diff --git a/swad_nickname.c b/swad_nickname.c index f669d37d..2c348714 100644 --- a/swad_nickname.c +++ b/swad_nickname.c @@ -150,6 +150,7 @@ static void Nck_ShowFormChangeUsrNickname (bool ItsMe, bool IMustFillNickname) { extern const char *Hlp_PROFILE_Account; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Nickname; extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_nickname; extern const char *Txt_Current_nickname; @@ -235,7 +236,8 @@ static void Nck_ShowFormChangeUsrNickname (bool ItsMe, Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Other_nicknames); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"", + The_ClassDat[Gbl.Prefs.Theme]); } /* Form to remove old nickname */ @@ -292,7 +294,8 @@ static void Nck_ShowFormChangeUsrNickname (bool ItsMe, Txt_Nickname); // The first nickname /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"", + The_ClassDat[Gbl.Prefs.Theme]); if (ItsMe) Frm_BeginFormAnchor (ActChgMyNck,Nck_NICKNAME_SECTION_ID); else diff --git a/swad_notification.c b/swad_notification.c index 68970d2a..35427dbb 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -309,6 +309,7 @@ static void Ntf_GetParamsNotifyEvents (void); void Ntf_ShowMyNotifications (void) { extern const char *Hlp_START_Notifications; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Settings; extern const char *Txt_Domains; extern const char *Txt_Mark_all_NOTIFICATIONS_as_read; @@ -590,8 +591,9 @@ void Ntf_ShowMyNotifications (void) HTM_TD_Begin ("colspan=\"2\""); HTM_TD_End (); - HTM_TD_Begin ("colspan=\"4\" class=\"DAT LT\"" - " style=\"padding-bottom:12px;\""); + HTM_TD_Begin ("colspan=\"4\" class=\"%s LT\"" + " style=\"padding-bottom:12px;\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (SummaryStr); HTM_TD_End (); diff --git a/swad_photo.c b/swad_photo.c index 72dda8d7..04221b59 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -793,7 +793,7 @@ static bool Pho_ReceivePhotoAndDetectFaces (bool ItsMe,const struct UsrData *Usr Str_BuildStringStr ("%s_map.jpg",Gbl.UniqueNameEncrypted), Txt_Faces_detected, "usemap=\"#faces_map\""); - Str_FreeString (); + Str_FreeStrings (); HTM_DIV_End (); /***** End alert *****/ @@ -886,6 +886,7 @@ static void Pho_UpdatePhoto1 (struct UsrData *UsrDat) static void Pho_UpdatePhoto2 (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_PHOTO_PROCESSING_CAPTIONS[3]; unsigned NumPhoto; char *Img; @@ -900,7 +901,8 @@ static void Pho_UpdatePhoto2 (void) NumPhoto < 3; NumPhoto++) { - HTM_TD_Begin ("class=\"DAT CT\" style=\"width:33%%;\""); + HTM_TD_Begin ("class=\"%s CT\" style=\"width:33%%;\"", + The_ClassDat[Gbl.Prefs.Theme]); if (asprintf (&Img,"%s_paso%u.jpg",Gbl.Usrs.FileNamePhoto,NumPhoto + 1) < 0) Err_NotEnoughMemoryExit (); HTM_IMG (Cfg_URL_PHOTO_TMP_PUBLIC,Img,Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto], @@ -2177,6 +2179,7 @@ static void Pho_ShowOrPrintClassPhotoDegrees (struct Pho_DegPhotos *DegPhotos, static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos, Pho_AvgPhotoSeeOrPrint_t SeeOrPrint) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_No_INDEX; extern const char *Txt_Degree; extern const char *Txt_SEX_PLURAL_Abc[Usr_NUM_SEXS]; @@ -2229,15 +2232,21 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos, HTM_TR_Begin (NULL); /***** Show logo and name of this degree *****/ - HTM_TD_Begin ("class=\"DAT RM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s RM COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_Unsigned (++NumDegsNotEmpty); HTM_TD_End (); /***** Show logo and name of this degree *****/ - HTM_TD_Begin ("class=\"DAT LM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LM COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (SeeOrPrint == Pho_DEGREES_SEE) + { Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf, - "BT_LINK DAT","CT"); + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + "CT"); + Str_FreeStrings (); + } else // Pho_DEGREES_PRINT { Lgo_DrawLogo (HieLvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true); @@ -2310,9 +2319,10 @@ static void Pho_GetNumStdsInDegree (long DegCod,Usr_Sex_t Sex, static void Pho_ShowDegreeStat (int NumStds,int NumStdsWithPhoto) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_photos; - HTM_SPAN_Begin ("class=\"DAT\""); + HTM_SPAN_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%d ",NumStds); HTM_SPAN_End (); @@ -2335,6 +2345,7 @@ static void Pho_ShowDegreeAvgPhotoAndStat (const struct Deg_Degree *Deg, int NumStds,int NumStdsWithPhoto) { extern const char *Usr_StringsSexDB[Usr_NUM_SEXS]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_students_ABBREVIATION; extern const char *Txt_SEX_PLURAL_abc[Usr_NUM_SEXS]; extern const char *Txt_photos; @@ -2361,8 +2372,8 @@ static void Pho_ShowDegreeAvgPhotoAndStat (const struct Deg_Degree *Deg, { Frm_BeginFormGoTo (ActSeeDegInf); Deg_PutParamDegCod (Deg->DegCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Deg->FullName),"BT_LINK",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Deg->FullName),"BT_LINK",NULL); + Str_FreeStrings (); } /***** Check if photo of degree can be shown *****/ @@ -2398,7 +2409,8 @@ static void Pho_ShowDegreeAvgPhotoAndStat (const struct Deg_Degree *Deg, 0); Frm_SetUniqueId (IdCaption); HTM_DIV_Begin ("id=\"%s\" class=\"NOT_SHOWN\"",IdCaption); - HTM_DIV_Begin ("class=\"ZOOM_TXT_LINE DAT_N\""); + HTM_DIV_Begin ("class=\"ZOOM_TXT_LINE %s\"", + The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (PhotoCaption); HTM_DIV_End (); HTM_DIV_End (); diff --git a/swad_place.c b/swad_place.c index 31a6f128..ed0043dc 100644 --- a/swad_place.c +++ b/swad_place.c @@ -94,6 +94,7 @@ void Plc_ResetPlaces (struct Plc_Places *Places) void Plc_SeePlaces (void) { extern const char *Hlp_INSTITUTION_Places; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Places; extern const char *Txt_PLACES_HELP_ORDER[2]; extern const char *Txt_PLACES_ORDER[2]; @@ -152,11 +153,11 @@ void Plc_SeePlaces (void) /* Write data of this place */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Places.Lst[NumPlc].FullName); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Places.Lst[NumPlc].NumCtrs); HTM_TD_End (); @@ -166,7 +167,8 @@ void Plc_SeePlaces (void) /***** Separation row *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"2\" class=\"DAT\""); + HTM_TD_Begin ("colspan=\"2\" class=\"%s\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_NBSP (); HTM_TD_End (); HTM_TR_End (); @@ -175,11 +177,11 @@ void Plc_SeePlaces (void) NumCtrsInOtherPlcs = Ctr_DB_GetNumCtrsInPlc (0); HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_Other_places); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (NumCtrsInOtherPlcs); HTM_TD_End (); @@ -189,11 +191,11 @@ void Plc_SeePlaces (void) /***** Write centers (of the current institution) with no place *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Txt_Place_unspecified); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod) - NumCtrsWithPlc); HTM_TD_End (); @@ -455,6 +457,7 @@ void Plc_FreeListPlaces (struct Plc_Places *Places) static void Plc_ListPlacesForEdition (const struct Plc_Places *Places) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumPlc; struct Plc_Place *Plc; @@ -483,7 +486,7 @@ static void Plc_ListPlacesForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Place code */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Plc->PlcCod); HTM_TD_End (); @@ -508,7 +511,7 @@ static void Plc_ListPlacesForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Number of centers */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Plc->NumCtrs); HTM_TD_End (); @@ -699,6 +702,7 @@ void Plc_ContEditAfterChgPlc (void) static void Plc_PutFormToCreatePlace (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_place; extern const char *Txt_Create_place; @@ -738,7 +742,7 @@ static void Plc_PutFormToCreatePlace (void) HTM_TD_End (); /***** Number of centers *****/ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (0); HTM_TD_End (); diff --git a/swad_plugin.c b/swad_plugin.c index 07640d27..a7bc5b8c 100644 --- a/swad_plugin.c +++ b/swad_plugin.c @@ -82,6 +82,7 @@ static void Plg_EditingPluginDestructor (void); void Plg_ListPlugins (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Option_under_development; extern const char *Txt_Plugins; extern const char *Txt_Plugin; @@ -129,20 +130,21 @@ void Plg_ListPlugins (void) // TODO: Change plugin icons to 32x32 HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT LM\" style=\"width:45px;\""); - HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", - URL,Plg->Name); + HTM_TD_Begin ("class=\"%s LM\" style=\"width:45px;\"", + The_ClassDat[Gbl.Prefs.Theme]); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"", + URL,Plg->Name,The_ClassDat[Gbl.Prefs.Theme]); HTM_IMG (Cfg_URL_ICON_PLUGINS_PUBLIC, Str_BuildStringStr ("%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo), Plg->Name, "class=\"ICO40x40\""); - Str_FreeString (); + Str_FreeStrings (); HTM_A_End (); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); - HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", - URL,Plg->Name); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"", + URL,Plg->Name,The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Plg->Name); HTM_A_End (); HTM_TD_End (); @@ -326,6 +328,7 @@ void Plg_FreeListPlugins (void) static void Plg_ListPluginsForEdition (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumPlg; struct Plugin *Plg; @@ -352,7 +355,7 @@ static void Plg_ListPluginsForEdition (void) HTM_TD_End (); /* Plugin code */ - HTM_TD_Begin ("class=\"DAT RM\""); + HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Long (Plg->PlgCod); HTM_TD_End (); @@ -363,7 +366,7 @@ static void Plg_ListPluginsForEdition (void) Str_BuildStringStr ("%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo), Gbl.Plugins.Lst[NumPlg].Name, "class=\"ICO40x40\""); - Str_FreeString (); + Str_FreeStrings (); HTM_TD_End (); /* Plugin name */ diff --git a/swad_privacy.c b/swad_privacy.c index 68378656..18893a2f 100644 --- a/swad_privacy.c +++ b/swad_privacy.c @@ -154,6 +154,8 @@ static void Pri_PutFormVisibility (const char *TxtLabel, unsigned MaskAllowedVisibility) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_PRIVACY_OPTIONS[Pri_NUM_OPTIONS_PRIVACY]; Pri_Visibility_t Visibility; @@ -170,24 +172,25 @@ static void Pri_PutFormVisibility (const char *TxtLabel, Frm_BeginFormAnchor (Action,Pri_PRIVACY_ID); HTM_UL_Begin ("class=\"PRI_LIST LIST_LEFT\""); - for (Visibility = Pri_VISIBILITY_USER; + for (Visibility = Pri_VISIBILITY_USER; Visibility <= Pri_VISIBILITY_WORLD; Visibility++) if (MaskAllowedVisibility & (1 << Visibility)) { - HTM_LI_Begin ("class=\"%s\"", - (Visibility == CurrentVisibilityInDB) ? "DAT_N LIGHT_BLUE" : - "DAT"); - HTM_LABEL_Begin (NULL); - HTM_INPUT_RADIO (ParamName,Action != ActUnk, - "value=\"%u\"%s%s", - (unsigned) Visibility, - Visibility == CurrentVisibilityInDB ? " checked=\"checked\"" : - "", - Action == ActUnk ? " disabled=\"disabled\"" : - ""); - HTM_Txt (Txt_PRIVACY_OPTIONS[Visibility]); - HTM_LABEL_End (); + if (Visibility == CurrentVisibilityInDB) + HTM_LI_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]); + else + HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO (ParamName,Action != ActUnk, + "value=\"%u\"%s%s", + (unsigned) Visibility, + Visibility == CurrentVisibilityInDB ? " checked=\"checked\"" : + "", + Action == ActUnk ? " disabled=\"disabled\"" : + ""); + HTM_Txt (Txt_PRIVACY_OPTIONS[Visibility]); + HTM_LABEL_End (); HTM_LI_End (); } diff --git a/swad_program.c b/swad_program.c index f2c9e2da..6a1f9509 100644 --- a/swad_program.c +++ b/swad_program.c @@ -778,7 +778,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem, "arrow-up.svg", Str_BuildStringStr (Txt_Move_up_X, StrItemIndex)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed); @@ -791,7 +791,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem, "arrow-down.svg", Str_BuildStringStr (Txt_Move_down_X, StrItemIndex)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed); @@ -804,7 +804,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem, "arrow-left.svg", Str_BuildStringStr (Txt_Increase_level_of_X, StrItemIndex)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-left.svg",Txt_Movement_not_allowed); @@ -817,7 +817,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem, "arrow-right.svg", Str_BuildStringStr (Txt_Decrease_level_of_X, StrItemIndex)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-right.svg",Txt_Movement_not_allowed); diff --git a/swad_project.c b/swad_project.c index 5762ba07..de5e20b9 100644 --- a/swad_project.c +++ b/swad_project.c @@ -1003,6 +1003,7 @@ static void Prj_ShowProjectsHead (struct Prj_Projects *Projects, static void Prj_ShowTableAllProjectsHead (void) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS]; extern const char *Txt_Assigned_QUESTION; extern const char *Txt_Number_of_students; @@ -1014,26 +1015,29 @@ static void Prj_ShowTableAllProjectsHead (void) extern const char *Txt_URL; Prj_Order_t Order; unsigned NumRoleToShow; + const char *Class = Str_BuildStringStr ("LT %s",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TR_Begin (NULL); for (Order = (Prj_Order_t) 0; Order <= (Prj_Order_t) (Prj_NUM_ORDERS - 1); Order++) - HTM_TH (1,1,"LT DAT_N",Txt_PROJECT_ORDER[Order]); - HTM_TH (1,1,"LT DAT_N",Txt_Assigned_QUESTION); - HTM_TH (1,1,"LT DAT_N",Txt_Number_of_students); + HTM_TH (1,1,Class,Txt_PROJECT_ORDER[Order]); + HTM_TH (1,1,Class,Txt_Assigned_QUESTION); + HTM_TH (1,1,Class,Txt_Number_of_students); for (NumRoleToShow = 0; NumRoleToShow < Brw_NUM_ROLES_TO_SHOW; NumRoleToShow++) - HTM_TH (1,1,"LT DAT_N",Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]); - HTM_TH (1,1,"LT DAT_N",Txt_Proposal); - HTM_TH (1,1,"LT DAT_N",Txt_Description); - HTM_TH (1,1,"LT DAT_N",Txt_Required_knowledge); - HTM_TH (1,1,"LT DAT_N",Txt_Required_materials); - HTM_TH (1,1,"LT DAT_N",Txt_URL); + HTM_TH (1,1,Class,Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]); + HTM_TH (1,1,Class,Txt_Proposal); + HTM_TH (1,1,Class,Txt_Description); + HTM_TH (1,1,Class,Txt_Required_knowledge); + HTM_TH (1,1,Class,Txt_Required_materials); + HTM_TH (1,1,Class,Txt_URL); HTM_TR_End (); + + Str_FreeStrings (); } /*****************************************************************************/ @@ -1214,6 +1218,7 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects, struct Prj_Project *Prj, Prj_ProjectView_t ProjectView) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Project_files; extern const char *Txt_Assigned_QUESTION; extern const char *Txt_Yes; @@ -1249,7 +1254,7 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects, ClassLink = (Prj->Hidden == Prj_HIDDEN) ? "BT_LINK LT ASG_TITLE_LIGHT" : "BT_LINK LT ASG_TITLE"; ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Set anchor string *****/ Frm_SetAnchorStr (Prj->PrjCod,&Anchor); @@ -1651,6 +1656,7 @@ static void Prj_PutIconToToggleProject (unsigned UniqueId, static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Yes; extern const char *Txt_No; extern const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES]; @@ -1667,7 +1673,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj) ClassDate = (Prj->Hidden == Prj_HIDDEN) ? "DATE_BLUE_LIGHT" : "DATE_BLUE"; ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Begin row *****/ HTM_TR_Begin (NULL); @@ -1754,13 +1760,14 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj) static void Prj_ShowOneProjectDepartment (const struct Prj_Project *Prj, Prj_ProjectView_t ProjectView) { + extern const char *The_ClassDat[The_NUM_THEMES]; struct Dpt_Department Dpt; bool PutLink; const char *ClassData; /***** Set CSS classes *****/ ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Get data of department *****/ Dpt.DptCod = Prj->DptCod; @@ -1792,12 +1799,13 @@ static void Prj_ShowOneProjectDepartment (const struct Prj_Project *Prj, static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj) { + extern const char *The_ClassDat[The_NUM_THEMES]; struct Dpt_Department Dpt; const char *ClassData; /***** Set CSS classes *****/ ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Get data of department *****/ Dpt.DptCod = Prj->DptCod; @@ -1819,6 +1827,7 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj, const char *Label,char *TxtField, bool Warning) { + extern const char *The_ClassDat[The_NUM_THEMES]; const char *ClassLabel; const char *ClassData; @@ -1826,7 +1835,7 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj, ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" : "ASG_LABEL"; ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Label *****/ switch (ProjectView) @@ -1887,11 +1896,12 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj, static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj, char *TxtField) { + extern const char *The_ClassDat[The_NUM_THEMES]; const char *ClassData; /***** Set CSS classes *****/ ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Change format *****/ Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, @@ -1911,6 +1921,7 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj, Prj_ProjectView_t ProjectView, const char *id,unsigned UniqueId) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_URL; const char *ClassLabel; const char *ClassData; @@ -1922,7 +1933,7 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj, ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" : "ASG_LABEL"; ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Write row with label and text *****/ switch (ProjectView) @@ -1970,11 +1981,12 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj, static void Prj_ShowTableAllProjectsURL (const struct Prj_Project *Prj) { + extern const char *The_ClassDat[The_NUM_THEMES]; const char *ClassData; /***** Set CSS classes *****/ ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Show URL *****/ HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); @@ -2009,6 +2021,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects, Prj_ProjectView_t ProjectView, Prj_RoleInProject_t RoleInPrj) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_PROJECT_ROLES_SINGUL_Abc[Prj_NUM_ROLES_IN_PROJECT]; extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT]; extern const char *Txt_Remove; @@ -2047,7 +2060,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects, ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" : "ASG_LABEL"; ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Get users in project from database *****/ NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj); @@ -2098,7 +2111,8 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects, ClassData); break; case Prj_EDIT_ONE_PROJECT: - HTM_TD_Begin ("colspan=\"2\" class=\"LT DAT\""); + HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"", + The_ClassDat[Gbl.Prefs.Theme]); break; } @@ -2161,7 +2175,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects, Prj_PutCurrentParams,Projects, Str_BuildStringStr (Txt_Add_USERS, Txt_PROJECT_ROLES_PLURAL_abc[RoleInPrj])); - Str_FreeString (); + Str_FreeStrings (); HTM_TD_End (); HTM_TD_Begin ("class=\"PRJ_MEMBER_PHO\""); // Column for photo @@ -2191,6 +2205,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects, static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *Prj, Prj_RoleInProject_t RoleInPrj) { + extern const char *The_ClassDat[The_NUM_THEMES]; MYSQL_RES *mysql_res; MYSQL_ROW row; unsigned NumUsr; @@ -2199,7 +2214,7 @@ static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project * /***** Set CSS classes *****/ ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" : - "DAT"; + The_ClassDat[Gbl.Prefs.Theme]; /***** Get users in project from database *****/ NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj); @@ -2573,7 +2588,7 @@ static void Prj_ReqRemUsrFromPrj (struct Prj_Projects *Projects, Prj_PutCurrentParams (Projects); Btn_PutRemoveButton (Str_BuildStringStr (Txt_Remove_USER_from_this_project, Txt_PROJECT_ROLES_SINGUL_abc[RoleInPrj][Gbl.Usrs.Other.UsrDat.Sex])); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); /* End alert */ @@ -3241,6 +3256,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects, extern const char *Hlp_ASSESSMENT_Projects_new_project; extern const char *Hlp_ASSESSMENT_Projects_edit_project; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_project; extern const char *Txt_Edit_project; extern const char *Txt_Data; @@ -3420,7 +3436,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects, Frm_LabelColumn ("RT","WWW",Txt_URL); /* Data */ - HTM_TD_Begin ("class=\"DAT LT\""); + HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_INPUT_URL ("URL",Prj->URL,HTM_DONT_SUBMIT_ON_CHANGE, "class=\"TITLE_DESCRIPTION_WIDTH\""); HTM_TD_End (); diff --git a/swad_question.c b/swad_question.c index 7b06c1a9..e61d93c6 100644 --- a/swad_question.c +++ b/swad_question.c @@ -195,6 +195,7 @@ void Qst_ShowFormRequestEditQsts (struct Qst_Questions *Questions) void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Types_of_answers; extern const char *Txt_All_types_of_answers; extern const char *Txt_TST_STR_ANSWER_TYPES[Qst_NUM_ANS_TYPES]; @@ -247,7 +248,7 @@ void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes) } } HTM_TD_Begin ("class=\"LM\""); - HTM_LABEL_Begin ("class=\"DAT\""); + HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_INPUT_CHECKBOX ("AnswerType",HTM_DONT_SUBMIT_ON_CHANGE, "value=\"%u\"%s onclick=\"checkParent(this,'AllAnsTypes');\"", (unsigned) AnsType, @@ -1860,7 +1861,7 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question) Box_BoxBegin (NULL,Str_BuildStringLong (Txt_Question_code_X,Question->QstCod), Qst_PutIconToRemoveOneQst,&Question->QstCod, Hlp_ASSESSMENT_Questions_writing_a_question,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); } else Box_BoxBegin (NULL,Txt_New_question, diff --git a/swad_record.c b/swad_record.c index 19f9f594..1d2f4e4e 100644 --- a/swad_record.c +++ b/swad_record.c @@ -1565,6 +1565,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, struct UsrData *UsrDat,const char *Anchor) { extern const char *Hlp_USERS_Students_course_record_card; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *The_ClassFormInBox[The_NUM_THEMES]; extern const char *Txt_RECORD_FIELD_VISIBILITY_RECORD[Rec_NUM_TYPES_VISIBILITY]; extern const char *Txt_Save_changes; @@ -1733,7 +1734,8 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, /* Write form, text, or nothing depending on the user's role and the visibility of the field */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanEditThisField) // Show with form { HTM_TEXTAREA_Begin ("name=\"Field%ld\" rows=\"%u\"" @@ -2681,11 +2683,16 @@ static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks) static void Rec_ShowCountryInHead (struct UsrData *UsrDat,bool ShowData) { - HTM_TD_Begin ("class=\"REC_C2_MID DAT_N LT\""); + extern const char *The_ClassDatN[The_NUM_THEMES]; + + HTM_TD_Begin ("class=\"REC_C2_MID LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData && UsrDat->CtyCod > 0) + { /* Link to see country information */ Cty_WriteCountryName (UsrDat->CtyCod, - "BT_LINK DAT_N"); // Put link to country + Str_BuildStringStr ("BT_LINK %s",The_ClassDatN[Gbl.Prefs.Theme])); // Put link to country + Str_FreeStrings (); + } HTM_TD_End (); } @@ -2708,6 +2715,7 @@ static void Rec_ShowWebsAndSocialNets (struct UsrData *UsrDat, static void Rec_ShowEmail (struct UsrData *UsrDat) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Email; /***** Email *****/ @@ -2717,13 +2725,14 @@ static void Rec_ShowEmail (struct UsrData *UsrDat) Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Email); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (UsrDat->Email[0]) { HTM_DIV_Begin ("class=\"REC_EMAIL\""); // Limited width if (Mai_ICanSeeOtherUsrEmail (UsrDat)) { - HTM_A_Begin ("href=\"mailto:%s\" class=\"DAT_N\"",UsrDat->Email); + HTM_A_Begin ("href=\"mailto:%s\" class=\"%s\"", + UsrDat->Email,The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (UsrDat->Email); HTM_A_End (); } @@ -2742,6 +2751,7 @@ static void Rec_ShowEmail (struct UsrData *UsrDat) static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *Anchor) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_ID; /***** User's IDs *****/ @@ -2751,7 +2761,7 @@ static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *Anchor) Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_ID); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); ID_WriteUsrIDs (UsrDat,Anchor); HTM_TD_End (); @@ -2766,6 +2776,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat, Rec_SharedRecordViewType_t TypeOfView) { extern const char *Usr_StringsSexIcons[Usr_NUM_SEXS]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Role; extern const char *Txt_Sex; extern const char *Txt_SEX_SINGULAR_Abc[Usr_NUM_SEXS]; @@ -2791,7 +2802,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat, Frm_LabelColumn ("REC_C1_BOT RM","Role",Txt_Role); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); switch (TypeOfView) { case Rec_SHA_SIGN_UP_IN_CRS_FORM: // I want to apply for enrolment @@ -2987,7 +2998,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat, /* Label */ Frm_LabelColumn ("REC_C1_BOT RM","", Str_BuildStringStr ("%s*",Txt_Sex)); - Str_FreeString (); + Str_FreeStrings (); /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); @@ -2995,7 +3006,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat, Sex <= Usr_SEX_MALE; Sex++) { - HTM_LABEL_Begin ("class=\"DAT_N\""); + HTM_LABEL_Begin ("class=\"%s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_INPUT_RADIO ("Sex",false, "value=\"%u\"%s required=\"required\"", (unsigned) Sex, @@ -3012,7 +3023,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat, Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Role); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]); HTM_TD_End (); } @@ -3026,6 +3037,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat, static void Rec_ShowSurname1 (struct UsrData *UsrDat,bool PutForm) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Surname_1; HTM_TR_Begin (NULL); @@ -3035,13 +3047,13 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,bool PutForm) { Frm_LabelColumn ("REC_C1_BOT RM","Surname1", Str_BuildStringStr ("%s*",Txt_Surname_1)); - Str_FreeString (); + Str_FreeStrings (); } else Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Surname_1); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (PutForm) HTM_INPUT_TEXT ("Surname1",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME,UsrDat->Surname1, HTM_DONT_SUBMIT_ON_CHANGE, @@ -3064,6 +3076,7 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,bool PutForm) static void Rec_ShowSurname2 (struct UsrData *UsrDat,bool PutForm) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Surname_2; HTM_TR_Begin (NULL); @@ -3074,7 +3087,7 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,bool PutForm) Txt_Surname_2); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (PutForm) HTM_INPUT_TEXT ("Surname2",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME, UsrDat->Surname2, @@ -3097,6 +3110,7 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,bool PutForm) static void Rec_ShowFirstName (struct UsrData *UsrDat,bool PutForm) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_First_name; HTM_TR_Begin (NULL); @@ -3106,13 +3120,14 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,bool PutForm) { Frm_LabelColumn ("REC_C1_BOT RM","FirstName", Str_BuildStringStr ("%s*",Txt_First_name)); - Str_FreeString (); + Str_FreeStrings (); } else Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_First_name); /* Data */ - HTM_TD_Begin ("colspan=\"2\" class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("colspan=\"2\" class=\"REC_C2_BOT LM %s\"", + The_ClassDatN[Gbl.Prefs.Theme]); if (PutForm) HTM_INPUT_TEXT ("FirstName",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME, UsrDat->FrstName, @@ -3151,7 +3166,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm) { Frm_LabelColumn ("REC_C1_BOT RM","OthCtyCod", Str_BuildStringStr ("%s*",Txt_Country)); - Str_FreeString (); + Str_FreeStrings (); } else Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Country); @@ -3185,6 +3200,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm) static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,bool ShowData,bool PutForm) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Date_of_birth; /***** Date of birth *****/ @@ -3196,7 +3212,7 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,bool ShowData,bool PutFo Txt_Date_of_birth); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) { if (PutForm) @@ -3221,6 +3237,7 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,bool ShowData,bool PutFo static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm, unsigned NumPhone) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Phone; char *Name; char *Label; @@ -3242,7 +3259,7 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm, Label); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) { if (PutForm) @@ -3251,7 +3268,8 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm, "id=\"%s\" class=\"REC_C2_BOT_INPUT\"",Name); else if (UsrDat->Phone[NumPhone][0]) { - HTM_A_Begin ("href=\"tel:%s\" class=\"DAT_N\"",UsrDat->Phone[NumPhone]); + HTM_A_Begin ("href=\"tel:%s\" class=\"%s\"", + UsrDat->Phone[NumPhone],The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (UsrDat->Phone[NumPhone]); HTM_A_End (); } @@ -3273,6 +3291,7 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm, static void Rec_ShowComments (struct UsrData *UsrDat,bool ShowData,bool PutForm) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_USER_comments; /***** Comments *****/ @@ -3284,7 +3303,7 @@ static void Rec_ShowComments (struct UsrData *UsrDat,bool ShowData,bool PutForm) Txt_USER_comments); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) { if (PutForm) @@ -3335,6 +3354,7 @@ static void Rec_ShowTeacherRows (struct UsrData *UsrDat,struct Ins_Instit *Ins, static void Rec_ShowInstitution (struct Ins_Instit *Ins,bool ShowData) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Institution; /***** Institution *****/ @@ -3344,13 +3364,13 @@ static void Rec_ShowInstitution (struct Ins_Instit *Ins,bool ShowData) Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Institution); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) if (Ins->InsCod > 0) { if (Ins->WWW[0]) - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"", - Ins->WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Ins->WWW,The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Ins->FullName); if (Ins->WWW[0]) HTM_A_End (); @@ -3366,6 +3386,7 @@ static void Rec_ShowInstitution (struct Ins_Instit *Ins,bool ShowData) static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Center; struct Ctr_Center Ctr; @@ -3376,7 +3397,7 @@ static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData) Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Center); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) { if (UsrDat->Tch.CtrCod > 0) @@ -3384,8 +3405,8 @@ static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData) Ctr.CtrCod = UsrDat->Tch.CtrCod; Ctr_GetDataOfCenterByCod (&Ctr); if (Ctr.WWW[0]) - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"", - Ctr.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Ctr.WWW,The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Ctr.FullName); if (Ctr.WWW[0]) HTM_A_End (); @@ -3402,6 +3423,7 @@ static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData) static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Department; struct Dpt_Department Dpt; @@ -3412,7 +3434,7 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData) Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Department); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) { if (UsrDat->Tch.DptCod > 0) @@ -3420,8 +3442,8 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData) Dpt.DptCod = UsrDat->Tch.DptCod; Dpt_GetDataOfDepartmentByCod (&Dpt); if (Dpt.WWW[0]) - HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"", - Dpt.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Dpt.WWW,The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Dpt.FullName); if (Dpt.WWW[0]) HTM_A_End (); @@ -3438,6 +3460,7 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData) static void Rec_ShowOffice (struct UsrData *UsrDat,bool ShowData) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Office; /***** Office *****/ @@ -3447,7 +3470,7 @@ static void Rec_ShowOffice (struct UsrData *UsrDat,bool ShowData) Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Office); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) HTM_Txt (UsrDat->Tch.Office); HTM_TD_End (); @@ -3461,6 +3484,7 @@ static void Rec_ShowOffice (struct UsrData *UsrDat,bool ShowData) static void Rec_ShowOfficePhone (struct UsrData *UsrDat,bool ShowData) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Phone; /***** Office phone *****/ @@ -3470,11 +3494,11 @@ static void Rec_ShowOfficePhone (struct UsrData *UsrDat,bool ShowData) Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Phone); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\""); + HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]); if (ShowData) { - HTM_A_Begin ("href=\"tel:%s\" class=\"DAT_N\"", - UsrDat->Tch.OfficePhone); + HTM_A_Begin ("href=\"tel:%s\" class=\"%s\"", + UsrDat->Tch.OfficePhone,The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (UsrDat->Tch.OfficePhone); HTM_A_End (); } @@ -3751,7 +3775,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) /* Label */ Frm_LabelColumn ("REC_C1_BOT RM","InsCtyCod", Str_BuildStringStr ("%s*",Txt_Country)); - Str_FreeString (); + Str_FreeStrings (); /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); @@ -3783,7 +3807,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) /* Label */ Frm_LabelColumn ("REC_C1_BOT RM","OthInsCod", Str_BuildStringStr ("%s*",Txt_Institution)); - Str_FreeString (); + Str_FreeStrings (); /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); @@ -3824,7 +3848,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) /* Label */ Frm_LabelColumn ("REC_C1_BOT RM","OthCtrCod", Str_BuildStringStr ("%s*",Txt_Center)); - Str_FreeString (); + Str_FreeStrings (); /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); @@ -3863,7 +3887,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) /* Label */ Frm_LabelColumn ("REC_C1_BOT RM",Dpt_PARAM_DPT_COD_NAME, Str_BuildStringStr ("%s*",Txt_Department)); - Str_FreeString (); + Str_FreeStrings (); /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); diff --git a/swad_report.c b/swad_report.c index 9e702586..fa889fd7 100644 --- a/swad_report.c +++ b/swad_report.c @@ -128,7 +128,7 @@ void Rep_ReqMyUsageReport (void) Cfg_PLATFORM_SHORT_NAME), NULL,NULL, Hlp_ANALYTICS_Report,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Header *****/ Rep_TitleReport (NULL); // NULL means do not write date @@ -236,7 +236,7 @@ static void Rep_PutLinkToMyUsageReport (struct Rep_Report *Report) Cfg_PLATFORM_SHORT_NAME), NULL,NULL, Hlp_ANALYTICS_Report,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Header *****/ Rep_TitleReport (&Report->CurrentTimeUTC); @@ -267,10 +267,12 @@ static void Rep_PutLinkToMyUsageReport (struct Rep_Report *Report) static void Rep_TitleReport (struct Rep_CurrentTimeUTC *CurrentTimeUTC) { + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_User[Usr_NUM_SEXS]; extern const char *Txt_Date; - HTM_DIV_Begin ("class=\"TITLE_REPORT DAT\""); + HTM_DIV_Begin ("class=\"TITLE_REPORT %s\"",The_ClassDat[Gbl.Prefs.Theme]); /***** User *****/ HTM_TxtColonNBSP (Txt_User[Gbl.Usrs.Me.UsrDat.Sex]); @@ -283,7 +285,7 @@ static void Rep_TitleReport (struct Rep_CurrentTimeUTC *CurrentTimeUTC) { HTM_BR (); HTM_TxtColonNBSP (Txt_Date); - HTM_SPAN_Begin ("class=\"DAT_N\""); + HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtF ("%s %s UTC",CurrentTimeUTC->StrDate, CurrentTimeUTC->StrTime); HTM_SPAN_End (); diff --git a/swad_room.c b/swad_room.c index 20d3234f..95b12172 100644 --- a/swad_room.c +++ b/swad_room.c @@ -145,6 +145,7 @@ void Roo_ResetRooms (struct Roo_Rooms *Rooms) void Roo_SeeRooms (void) { extern const char *Hlp_CENTER_Rooms; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Rooms; extern const char *Txt_ROOMS_HELP_ORDER[Roo_NUM_ORDERS]; extern const char *Txt_ROOMS_ORDER[Roo_NUM_ORDERS]; @@ -220,32 +221,44 @@ void Roo_SeeRooms (void) HTM_TR_Begin (NULL); /* Building short name */ - HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LT %s\"", + The_ClassDat[Gbl.Prefs.Theme], + Gbl.ColorRows[RowEvenOdd]); HTM_Txt (Rooms.Lst[NumRoom].BldShrtName); HTM_TD_End (); /* Floor */ - HTM_TD_Begin ("class=\"DAT RT %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s RT %s\"", + The_ClassDat[Gbl.Prefs.Theme], + Gbl.ColorRows[RowEvenOdd]); HTM_Int (Rooms.Lst[NumRoom].Floor); HTM_TD_End (); /* Type */ - HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LT %s\"", + The_ClassDat[Gbl.Prefs.Theme], + Gbl.ColorRows[RowEvenOdd]); Ico_PutIconOn (Roo_TypesIcons[Rooms.Lst[NumRoom].Type],Txt_ROOM_TYPES[Rooms.Lst[NumRoom].Type]); HTM_TD_End (); /* Short name */ - HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LT %s\"", + The_ClassDat[Gbl.Prefs.Theme], + Gbl.ColorRows[RowEvenOdd]); HTM_Txt (Rooms.Lst[NumRoom].ShrtName); HTM_TD_End (); /* Full name */ - HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LT %s\"", + The_ClassDat[Gbl.Prefs.Theme], + Gbl.ColorRows[RowEvenOdd]); HTM_Txt (Rooms.Lst[NumRoom].FullName); HTM_TD_End (); /* Capacity */ - HTM_TD_Begin ("class=\"DAT RT %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s RT %s\"", + The_ClassDat[Gbl.Prefs.Theme], + Gbl.ColorRows[RowEvenOdd]); Roo_WriteCapacity (StrCapacity,Rooms.Lst[NumRoom].Capacity); HTM_Txt (StrCapacity); HTM_TD_End (); @@ -256,7 +269,9 @@ void Roo_SeeRooms (void) case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: - HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]); + HTM_TD_Begin ("class=\"%s LT %s\"", + The_ClassDat[Gbl.Prefs.Theme], + Gbl.ColorRows[RowEvenOdd]); Roo_GetAndListMACAddresses (Rooms.Lst[NumRoom].RooCod); HTM_TD_End (); break; @@ -649,6 +664,7 @@ void Roo_FreeListRooms (struct Roo_Rooms *Rooms) static void Roo_ListRoomsForEdition (const struct Bld_Buildings *Buildings, const struct Roo_Rooms *Rooms) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumRoom; struct Roo_Room *Room; char *Anchor = NULL; @@ -678,7 +694,7 @@ static void Roo_ListRoomsForEdition (const struct Bld_Buildings *Buildings, HTM_TD_End (); /* Room code */ - HTM_TD_Begin ("class=\"DAT RT\""); + HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_ARTICLE_Begin (Anchor); HTM_Long (Room->RooCod); HTM_ARTICLE_End (); diff --git a/swad_statistic.c b/swad_statistic.c index 648a12e1..8d4f62b3 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -279,7 +279,7 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats) Gbl.Hierarchy.Crs.ShrtName), NULL,NULL, Hlp_ANALYTICS_Visits_visits_to_course,Box_NOT_CLOSABLE); - Str_FreeString (); + Str_FreeStrings (); /***** Show form to select the groups *****/ Grp_ShowFormToSelectSeveralGroups (NULL,NULL, @@ -1047,6 +1047,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, MYSQL_RES *mysql_res) { extern Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Show_previous_X_clicks; extern const char *Txt_PAGES_Previous; extern const char *Txt_Clicks; @@ -1134,7 +1135,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, HTM_BUTTON_SUBMIT_Begin (Str_BuildStringLong (Txt_Show_previous_X_clicks, (long) Stats->RowsPerPage), "BT_LINK TIT_TBL",NULL); - Str_FreeString (); + Str_FreeStrings (); HTM_STRONG_Begin (); HTM_TxtF ("<%s",Txt_PAGES_Previous); HTM_STRONG_End (); @@ -1145,7 +1146,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, Frm_EndForm (); /* Write number of current page */ - HTM_TD_Begin ("class=\"DAT_N CM\""); + HTM_TD_Begin ("class=\"%s CM\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_STRONG_Begin (); HTM_TxtF ("%s %u-%u %s %u (%s %u %s %u)", Txt_Clicks, @@ -1172,7 +1173,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats, HTM_BUTTON_SUBMIT_Begin (Str_BuildStringLong (Txt_Show_next_X_clicks, (long) Stats->RowsPerPage), "BT_LINK TIT_TBL",NULL); - Str_FreeString (); + Str_FreeStrings (); HTM_STRONG_Begin (); HTM_TxtF ("%s>",Txt_PAGES_Next); HTM_STRONG_End (); @@ -2781,6 +2782,7 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType, unsigned NumHits, MYSQL_RES *mysql_res) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Banner; extern const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES]; unsigned NumHit; @@ -2825,9 +2827,10 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType, Err_WrongBannerExit (); Ban_GetDataOfBannerByCod (&Ban); HTM_TD_Begin ("class=\"LOG LT\""); - HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"", Ban.WWW, - Ban.FullName); + Ban.FullName, + The_ClassDat[Gbl.Prefs.Theme]); HTM_IMG (Cfg_URL_BANNER_PUBLIC,Ban.Img,Ban.FullName, "style=\"margin:0 10px 5px 0;\""); HTM_A_End (); @@ -3279,8 +3282,8 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType, { Frm_BeginFormGoTo (ActSeeCrsInf); Crs_PutParamCrsCod (Crs.CrsCod); - HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs.FullName),"BT_LINK LT LOG",NULL); - Hie_FreeGoToMsg (); + HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs.FullName),"BT_LINK LT LOG",NULL); + Str_FreeStrings (); HTM_Txt (Crs.ShrtName); HTM_BUTTON_End (); } diff --git a/swad_string.c b/swad_string.c index 66986875..44e62286 100644 --- a/swad_string.c +++ b/swad_string.c @@ -2657,52 +2657,102 @@ void Str_Concat (char *Dst,const char *Src,size_t DstSize) strcat (Dst,Src); } +/*****************************************************************************/ +/********************* Build a "Go to " message ***********************/ +/*****************************************************************************/ +// Where is a hierarchy member (country, institution, center, degree or course +// Str_FreeStrings() must be called after calling this function + +char *Str_BuildGoToMsg (const char *Where) + { + extern const char *Txt_Go_to_X; + + return Str_BuildStringStr (Txt_Go_to_X,Where); + } + /*****************************************************************************/ /******************** Build and free a text with format **********************/ /*****************************************************************************/ -static char *Str_String = NULL; +#define Str_MAX_STRINGS 10 +static struct + { + size_t Num; + char *Str[Str_MAX_STRINGS]; + } Str_Strings = + { + .Num = 0, + }; + +// Str_FreeStrings() must be called after calling these functions // fmt must be a string including "%s" -// Str_FreeString() must be called after calling this function - char *Str_BuildStringStr (const char *fmt,const char *Str) { - Str_FreeString (); - if (asprintf (&Str_String,fmt,Str) < 0) + char *Ptr; + + if (Str_Strings.Num >= Str_MAX_STRINGS) Err_NotEnoughMemoryExit (); - return Str_String; + if (Str_Strings.Str[Str_Strings.Num] != NULL) + Err_NotEnoughMemoryExit (); + + if (asprintf (&Str_Strings.Str[Str_Strings.Num],fmt,Str) < 0) + Err_NotEnoughMemoryExit (); + Ptr = Str_Strings.Str[Str_Strings.Num]; + Str_Strings.Num++; + + return Ptr; } // fmt must be a string including "%ld" -// Str_FreeString() must be called after calling this function - char *Str_BuildStringLong (const char *fmt,long Num) { - Str_FreeString (); - if (asprintf (&Str_String,fmt,Num) < 0) + char *Ptr; + + if (Str_Strings.Num >= Str_MAX_STRINGS) Err_NotEnoughMemoryExit (); - return Str_String; - } + if (Str_Strings.Str[Str_Strings.Num] != NULL) + Err_NotEnoughMemoryExit (); -// Str_FreeString() must be called after calling this function + if (asprintf (&Str_Strings.Str[Str_Strings.Num],fmt,Num) < 0) + Err_NotEnoughMemoryExit (); + Ptr = Str_Strings.Str[Str_Strings.Num]; + Str_Strings.Num++; + + return Ptr; + } char *Str_BuildStringLongStr (long Num,const char *Str) { - Str_FreeString (); - if (asprintf (&Str_String,"%ld %s",Num,Str) < 0) + char *Ptr; + + if (Str_Strings.Num >= Str_MAX_STRINGS) Err_NotEnoughMemoryExit (); - return Str_String; + if (Str_Strings.Str[Str_Strings.Num] != NULL) + Err_NotEnoughMemoryExit (); + + if (asprintf (&Str_Strings.Str[Str_Strings.Num],"%ld %s",Num,Str) < 0) + Err_NotEnoughMemoryExit (); + Ptr = Str_Strings.Str[Str_Strings.Num]; + Str_Strings.Num++; + + return Ptr; } -void Str_FreeString (void) +void Str_FreeStrings (void) { - if (Str_String != NULL) + size_t i; + + for (i = Str_Strings.Num; + i != 0; + i--) { - free (Str_String); - Str_String = NULL; + free (Str_Strings.Str[i - 1]); + Str_Strings.Str[i - 1] = NULL; } + + Str_Strings.Num = 0; } diff --git a/swad_string.h b/swad_string.h index 1e7608fa..b3ed09b8 100644 --- a/swad_string.h +++ b/swad_string.h @@ -146,9 +146,10 @@ void Str_CreateRandomAlphanumStr (char *Str,size_t Length); void Str_Copy (char *Dst,const char *Src,size_t DstSize); void Str_Concat (char *Dst,const char *Src,size_t DstSize); +char *Str_BuildGoToMsg (const char *Where); char *Str_BuildStringStr (const char *fmt,const char *Str); char *Str_BuildStringLong (const char *fmt,long Num); char *Str_BuildStringLongStr (long Num,const char *Str); -void Str_FreeString (void); +void Str_FreeStrings (void); #endif diff --git a/swad_survey.c b/swad_survey.c index e3f16efd..71757df3 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -424,6 +424,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, long SvyCod,bool ShowOnlyThisSvyComplete) { extern const char *Hlp_ASSESSMENT_Surveys; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Survey; extern const char *Txt_View_survey; extern const char *Txt_Number_of_questions; @@ -671,7 +672,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML ALn_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links - HTM_DIV_Begin ("class=\"PAR %s\"",Svy.Status.Visible ? "DAT" : + HTM_DIV_Begin ("class=\"PAR %s\"",Svy.Status.Visible ? The_ClassDat[Gbl.Prefs.Theme] : "DAT_LIGHT"); HTM_Txt (Txt); HTM_DIV_End (); @@ -1642,6 +1643,7 @@ void Svy_RequestCreatOrEditSvy (void) extern const char *Hlp_ASSESSMENT_Surveys_new_survey; extern const char *Hlp_ASSESSMENT_Surveys_edit_survey; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_New_survey; extern const char *Txt_Scope; extern const char *Txt_Edit_survey; @@ -1785,7 +1787,7 @@ void Svy_RequestCreatOrEditSvy (void) HTM_TxtColon (Txt_Users); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); Rol_WriteSelectorRoles (1 << Rol_STD | 1 << Rol_NET | 1 << Rol_TCH, @@ -1901,6 +1903,7 @@ static void Svy_SetDefaultAndAllowedScope (struct Svy_Survey *Svy) static void Svy_ShowLstGrpsToEditSurvey (long SvyCod) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Groups; extern const char *Txt_The_whole_course; unsigned NumGrpTyp; @@ -1925,7 +1928,8 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod) /***** First row: checkbox to select the whole course *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\""); + HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"", + The_ClassDat[Gbl.Prefs.Theme]); HTM_LABEL_Begin (NULL); HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE, "id=\"WholeCrs\" value=\"Y\"%s onclick=\"uncheckChildren(this,'GrpCods')\"", @@ -2731,6 +2735,7 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys, struct Svy_Survey *Svy) { extern const char *Hlp_ASSESSMENT_Surveys_questions; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Questions; extern const char *Txt_No_INDEX; extern const char *Txt_Type; @@ -2828,7 +2833,8 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys, HTM_TD_End (); /* Write the stem and the answers of this question */ - HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LT COLOR%u\"", + The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); Svy_WriteQstStem (Stem); Svy_WriteAnswersOfAQst (Svy,&SvyQst,PutFormAnswerSurvey); HTM_TD_End (); @@ -2958,6 +2964,7 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy, struct Svy_Question *SvyQst, bool PutFormAnswerSurvey) { + extern const char *The_ClassDat[The_NUM_THEMES]; unsigned NumAnswers; unsigned NumAns; MYSQL_RES *mysql_res; @@ -3023,16 +3030,18 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy, /* Write the number of option */ HTM_TD_Begin ("class=\"SVY_OPT LT\""); - HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"DAT\"", - (unsigned) SvyQst->QstCod,NumAns); + HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"%s\"", + (unsigned) SvyQst->QstCod,NumAns, + The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtF ("%u)",NumAns + 1); HTM_LABEL_End (); HTM_TD_End (); /* Write the text of the answer */ HTM_TD_Begin ("class=\"LT\""); - HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"DAT\"", - (unsigned) SvyQst->QstCod,NumAns); + HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"%s\"", + (unsigned) SvyQst->QstCod,NumAns, + The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (SvyQst->AnsChoice[NumAns].Text); HTM_LABEL_End (); HTM_TD_End (); @@ -3062,6 +3071,7 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy, static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_of_PART_OF_A_TOTAL; unsigned BarWidth = 0; char *Title; @@ -3082,7 +3092,8 @@ static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs) Err_NotEnoughMemoryExit (); } - HTM_TD_Begin ("class=\"DAT LT\" style=\"width:%upx;\"",Svy_MAX_BAR_WIDTH + 125); + HTM_TD_Begin ("class=\"%s LT\" style=\"width:%upx;\"", + The_ClassDat[Gbl.Prefs.Theme],Svy_MAX_BAR_WIDTH + 125); /***** Draw bar with a with proportional to the number of clicks *****/ if (NumUsrs && MaxUsrs) diff --git a/swad_syllabus.c b/swad_syllabus.c index f978c16c..b8c39f90 100644 --- a/swad_syllabus.c +++ b/swad_syllabus.c @@ -153,6 +153,7 @@ Syl_WhichSyllabus_t Syl_GetParamWhichSyllabus (void) void Syl_PutFormWhichSyllabus (Syl_WhichSyllabus_t SyllabusSelected) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_SYLLABUS_WHICH_SYLLABUS[Syl_NUM_WHICH_SYLLABUS]; Syl_WhichSyllabus_t WhichSyl; @@ -165,7 +166,7 @@ void Syl_PutFormWhichSyllabus (Syl_WhichSyllabus_t SyllabusSelected) WhichSyl <= (Syl_WhichSyllabus_t) (For_NUM_FORUM_SETS - 1); WhichSyl++) { - HTM_LI_Begin ("class=\"DAT LM\""); + HTM_LI_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_LABEL_Begin (NULL); HTM_INPUT_RADIO ("WhichSyllabus",true, "value=\"%u\"%s", @@ -650,7 +651,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem, Str_BuildStringStr (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_up_X_and_its_subsections : Txt_Move_up_X, StrItemCod)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed); @@ -669,7 +670,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem, Str_BuildStringStr (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_down_X_and_its_subsections : Txt_Move_down_X, StrItemCod)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed); @@ -686,7 +687,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem, "arrow-left.svg", Str_BuildStringStr (Txt_Increase_level_of_X, StrItemCod)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-left.svg",Txt_Movement_not_allowed); @@ -704,7 +705,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem, "arrow-right.svg", Str_BuildStringStr (Txt_Decrease_level_of_X, StrItemCod)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutIconOff ("arrow-right.svg",Txt_Movement_not_allowed); diff --git a/swad_system_config.c b/swad_system_config.c index a93cf585..0164beec 100644 --- a/swad_system_config.c +++ b/swad_system_config.c @@ -40,6 +40,7 @@ #include "swad_error.h" #include "swad_figure_cache.h" #include "swad_form.h" +#include "swad_global.h" #include "swad_help.h" #include "swad_hierarchy_config.h" #include "swad_hierarchy_level.h" @@ -47,6 +48,12 @@ #include "swad_role.h" #include "swad_system_config.h" +/*****************************************************************************/ +/************** External global variables from others modules ****************/ +/*****************************************************************************/ + +extern struct Globals Gbl; + /*****************************************************************************/ /***************************** Private prototypes ****************************/ /*****************************************************************************/ @@ -251,6 +258,7 @@ static void SysCfg_Map (void) static void SysCfg_Platform (void) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Platform; /***** Institution *****/ @@ -260,7 +268,7 @@ static void SysCfg_Platform (void) Frm_LabelColumn ("RT",NULL,Txt_Platform); /* Data */ - HTM_TD_Begin ("class=\"DAT_N LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_Txt (Cfg_PLATFORM_SHORT_NAME); HTM_TD_End (); @@ -291,6 +299,7 @@ static void SysCfg_QR (void) static void SysCfg_NumCtys (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Countries; /***** Number of countries ******/ @@ -302,7 +311,10 @@ static void SysCfg_NumCtys (void) /* Data */ HTM_TD_Begin ("class=\"LB\""); Frm_BeginFormGoTo (ActSeeCty); - HTM_BUTTON_SUBMIT_Begin (Txt_Countries,"BT_LINK DAT",NULL); + HTM_BUTTON_SUBMIT_Begin (Txt_Countries, + Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]), + NULL); + Str_FreeStrings (); HTM_Unsigned (Cty_GetCachedNumCtysInSys ()); HTM_BUTTON_End (); Frm_EndForm (); @@ -317,6 +329,7 @@ static void SysCfg_NumCtys (void) static void SysCfg_NumInss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Institutions; /***** Number of institutions ******/ @@ -326,7 +339,7 @@ static void SysCfg_NumInss (void) Frm_LabelColumn ("RT",NULL,Txt_Institutions); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Ins_GetCachedNumInssInSys ()); HTM_TD_End (); @@ -339,6 +352,7 @@ static void SysCfg_NumInss (void) static void SysCfg_NumDegs (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Degrees; /***** Number of degrees *****/ @@ -348,7 +362,7 @@ static void SysCfg_NumDegs (void) Frm_LabelColumn ("RT",NULL,Txt_Degrees); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Deg_GetCachedNumDegsInSys ()); HTM_TD_End (); @@ -361,6 +375,7 @@ static void SysCfg_NumDegs (void) static void SysCfg_NumCrss (void) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Courses; /***** Number of courses *****/ @@ -370,7 +385,7 @@ static void SysCfg_NumCrss (void) Frm_LabelColumn ("RT",NULL,Txt_Courses); /* Data */ - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Crs_GetCachedNumCrssInSys ()); HTM_TD_End (); diff --git a/swad_tab.c b/swad_tab.c index 3d45e51f..e44b4871 100644 --- a/swad_tab.c +++ b/swad_tab.c @@ -69,6 +69,24 @@ void Tab_DrawTabs (void) [The_THEME_PINK ] = "HEAD_ROW_3_PINK", [The_THEME_DARK ] = "HEAD_ROW_3_DARK", }; + static const char *ClassIcoTab[Ico_NUM_ICON_SETS][The_NUM_THEMES] = + { + [Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_GREY ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = "", + [Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = "", + [Ico_ICON_SET_AWESOME][The_THEME_PINK ] = "", + [Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " TAB_ICO_DARK", + + [Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "", + [Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "", + }; /***** Begin tabs container *****/ HTM_DIV_Begin ("class=\"%s\"",ClassHeadRow3[Gbl.Prefs.Theme]); @@ -110,7 +128,7 @@ void Tab_DrawTabs (void) "BT_LINK", NULL); HTM_IMG (Gbl.Prefs.URLIconSet,Tab_GetIcon (NumTab),Txt_TABS_TXT[NumTab], - "class=\"TAB_ICO\""); + "class=\"TAB_ICO%s\"",ClassIcoTab[Gbl.Prefs.IconSet][Gbl.Prefs.Theme]); HTM_DIV_Begin ("class=\"TAB_TXT %s\"", NumTab == Gbl.Action.Tab ? The_ClassTxtTabOn[Gbl.Prefs.Theme] : The_ClassTxtTabOff[Gbl.Prefs.Theme]); diff --git a/swad_tag.c b/swad_tag.c index a3b50b9c..bf2cdd9f 100644 --- a/swad_tag.c +++ b/swad_tag.c @@ -291,6 +291,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags, bool ShowOnlyEnabledTags) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Tags; extern const char *Txt_All_tags; extern const char *Txt_Tag_not_allowed; @@ -370,7 +371,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags, } HTM_TD_Begin ("class=\"LM\""); - HTM_LABEL_Begin ("class=\"DAT\""); + HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_INPUT_CHECKBOX ("ChkTag",HTM_DONT_SUBMIT_ON_CHANGE, "value=\"%s\"%s onclick=\"checkParent(this,'AllTags');\"", row[1], @@ -471,7 +472,7 @@ static void Tag_PutIconEnable (long TagCod,const char *TagTxt) Ico_PutIconLink ("eye-slash-red.svg", Str_BuildStringStr (Txt_Tag_X_not_allowed_Click_to_allow_it, TagTxt)); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); HTM_TD_End (); } @@ -490,7 +491,7 @@ static void Tag_PutIconDisable (long TagCod,const char *TagTxt) Ico_PutIconLink ("eye-green.svg", Str_BuildStringStr (Txt_Tag_X_allowed_Click_to_disable_it, TagTxt)); - Str_FreeString (); + Str_FreeStrings (); Frm_EndForm (); HTM_TD_End (); } diff --git a/swad_test_config.c b/swad_test_config.c index 6549e2db..fa64f50d 100644 --- a/swad_test_config.c +++ b/swad_test_config.c @@ -143,6 +143,7 @@ static void TstCfg_ShowFormConfig (void) { extern const char *Hlp_ASSESSMENT_Tests_configuring_tests; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Configure_tests; extern const char *Txt_Plugins; extern const char *Txt_TST_PLUGGABLE[TstCfg_NUM_OPTIONS_PLUGGABLE]; @@ -184,7 +185,7 @@ static void TstCfg_ShowFormConfig (void) Pluggable <= TstCfg_PLUGGABLE_YES; Pluggable++) { - HTM_LABEL_Begin ("class=\"DAT\""); + HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_INPUT_RADIO ("Pluggable",false, "value=\"%u\"%s", (unsigned) Pluggable, @@ -271,12 +272,14 @@ static void TstCfg_ShowFormConfig (void) static void TstCfg_PutInputFieldNumQsts (const char *Field,const char *Label, unsigned Value) { + extern const char *The_ClassDat[The_NUM_THEMES]; char StrValue[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"RM\""); - HTM_LABEL_Begin ("for=\"%s\" class=\"DAT\"",Field); + HTM_LABEL_Begin ("for=\"%s\" class=\"%s\"", + Field,The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (Label); HTM_LABEL_End (); HTM_TD_End (); diff --git a/swad_test_print.c b/swad_test_print.c index f734328f..ffc7a0b5 100644 --- a/swad_test_print.c +++ b/swad_test_print.c @@ -1829,6 +1829,7 @@ static void TstPrn_ShowHeaderPrints (Usr_MeOrOther_t MeOrOther) static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_View_test; MYSQL_RES *mysql_res; unsigned NumPrints; @@ -1842,7 +1843,7 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat) double TotalScore; unsigned NumPrintsVisibleByTchs = 0; struct TstRes_ICanView ICanView; - char *ClassDat; + const char *ClassDat; /***** Reset total number of questions and total score *****/ NumTotalQsts.All = @@ -1870,7 +1871,7 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat) /* Get print data */ TstPrn_GetPrintDataByPrnCod (&Print); - ClassDat = Print.AllowTeachers ? "DAT" : + ClassDat = Print.AllowTeachers ? The_ClassDat[Gbl.Prefs.Theme] : "DAT_LIGHT"; /* Get if I can see print result and score */ @@ -2056,6 +2057,7 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe, struct TstPrn_NumQuestions *NumTotalQsts, double TotalScore) { + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Visible_tests; bool ICanViewTotalScore; @@ -2085,31 +2087,36 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe, HTM_TR_Begin (NULL); /***** Row title *****/ - HTM_TD_Begin ("colspan=\"2\" class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("colspan=\"2\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_TxtColonNBSP (Txt_Visible_tests); HTM_Unsigned (NumPrints); HTM_TD_End (); /***** Write total number of questions *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumPrints) HTM_Unsigned (NumTotalQsts->All); HTM_TD_End (); /***** Write total number of non-blank answers *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumPrints) HTM_Unsigned (NumTotalQsts->NotBlank); HTM_TD_End (); /***** Write total number of blank answers *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (NumPrints) HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank); HTM_TD_End (); /***** Write total score *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanViewTotalScore) { HTM_Double2Decimals (TotalScore); @@ -2119,20 +2126,23 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe, HTM_TD_End (); /***** Write average score per question *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanViewTotalScore) HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All : 0.0); HTM_TD_End (); /***** Write grade over Tst_SCORE_MAX *****/ - HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); if (ICanViewTotalScore) TstPrn_ComputeAndShowGrade (NumTotalQsts->All,TotalScore,Tst_SCORE_MAX); HTM_TD_End (); /***** Last cell *****/ - HTM_TD_Begin ("class=\"DAT_N LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); + HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", + The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd); HTM_TD_End (); /***** End row *****/ @@ -2146,6 +2156,8 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe, void TstPrn_ShowOnePrint (void) { extern const char *Hlp_ASSESSMENT_Tests_results; + extern const char *The_ClassDat[The_NUM_THEMES]; + extern const char *The_ClassDatN[The_NUM_THEMES]; extern const char *Txt_Result; extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME]; @@ -2209,11 +2221,11 @@ void TstPrn_ShowOnePrint (void) /* User */ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_ROLES_SINGUL_Abc[Gbl.Usrs.Other.UsrDat.Roles.InCurrentCrs][Gbl.Usrs.Other.UsrDat.Sex]); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); ID_WriteUsrIDs (&Gbl.Usrs.Other.UsrDat,NULL); HTM_TxtF (" %s",Gbl.Usrs.Other.UsrDat.Surname1); if (Gbl.Usrs.Other.UsrDat.Surname2[0]) @@ -2238,11 +2250,12 @@ void TstPrn_ShowOnePrint (void) HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_START_END_TIME[StartEndTime]); HTM_TD_End (); - HTM_TD_Begin ("id=\"%s\" class=\"DAT LB\"",Id); + HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"", + Id,The_ClassDat[Gbl.Prefs.Theme]); Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime], Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, true,true,true,0x7); @@ -2256,11 +2269,11 @@ void TstPrn_ShowOnePrint (void) /***** Number of questions *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Questions); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Print.NumQsts.All); HTM_TD_End (); @@ -2269,11 +2282,11 @@ void TstPrn_ShowOnePrint (void) /***** Number of answers *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Answers); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Unsigned (Print.NumQsts.NotBlank); HTM_TD_End (); @@ -2282,11 +2295,11 @@ void TstPrn_ShowOnePrint (void) /***** Score *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Score); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView.Score) { HTM_STRONG_Begin (); @@ -2304,11 +2317,11 @@ void TstPrn_ShowOnePrint (void) /***** Grade *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Grade); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); if (ICanView.Score) { HTM_STRONG_Begin (); @@ -2324,11 +2337,11 @@ void TstPrn_ShowOnePrint (void) /***** Tags present in this test *****/ HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"DAT_N RT\""); + HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]); HTM_TxtColon (Txt_Tags); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LB\""); + HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]); TstPrn_ShowTagsPresentInAPrint (Print.PrnCod); HTM_TD_End (); diff --git a/swad_test_visibility.c b/swad_test_visibility.c index 165d4ccc..7072500f 100644 --- a/swad_test_visibility.c +++ b/swad_test_visibility.c @@ -30,10 +30,17 @@ #include // For malloc, free #include "swad_error.h" +#include "swad_global.h" #include "swad_HTML.h" #include "swad_parameter.h" #include "swad_test_visibility.h" +/*****************************************************************************/ +/************** External global variables from others modules ****************/ +/*****************************************************************************/ + +extern struct Globals Gbl; + /*****************************************************************************/ /******************************* Show visibility *****************************/ /*****************************************************************************/ @@ -86,6 +93,7 @@ void TstVis_ShowVisibilityIcons (unsigned SelectedVisibility,bool Hidden) void TstVis_PutVisibilityCheckboxes (unsigned SelectedVisibility) { + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_TST_STR_VISIBILITY[TstVis_NUM_ITEMS_VISIBILITY]; static const char *Icons[TstVis_NUM_ITEMS_VISIBILITY] = { @@ -104,7 +112,7 @@ void TstVis_PutVisibilityCheckboxes (unsigned SelectedVisibility) Visibility++) { /* Begin label */ - HTM_LABEL_Begin ("class=\"DAT\""); + HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); /* Checkbox with icon and text */ ItemVisible = (SelectedVisibility & (1 << Visibility)) != 0; diff --git a/swad_theme.c b/swad_theme.c index a50b31ec..f363f5e2 100644 --- a/swad_theme.c +++ b/swad_theme.c @@ -162,25 +162,6 @@ const char *The_ClassCourse[The_NUM_THEMES] = [The_THEME_DARK ] = "MAIN_TITLE_DARK", }; -const char *The_ClassIcoMenu[Ico_NUM_ICON_SETS][The_NUM_THEMES] = - { - [Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = "", - [Ico_ICON_SET_AWESOME][The_THEME_GREY ] = "", - [Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = "", - [Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = "", - [Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = "", - [Ico_ICON_SET_AWESOME][The_THEME_PINK ] = "", - [Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " MENU_ICO_DARK", - - [Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "", - [Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "", - [Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "", - [Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "", - [Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "", - [Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "", - [Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "", - }; - const char *The_ClassTxtMenu[The_NUM_THEMES] = { [The_THEME_WHITE ] = "MENU_TXT_WHITE", @@ -335,6 +316,28 @@ const char *The_ClassFormOutBoxBold[The_NUM_THEMES] = [The_THEME_DARK ] = "FORM_OUT_DARK BOLD", }; +const char *The_ClassDat[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "DAT_WHITE", + [The_THEME_GREY ] = "DAT_GREY", + [The_THEME_PURPLE] = "DAT_PURPLE", + [The_THEME_BLUE ] = "DAT_BLUE", + [The_THEME_YELLOW] = "DAT_YELLOW", + [The_THEME_PINK ] = "DAT_PINK", + [The_THEME_DARK ] = "DAT_DARK", + }; + +const char *The_ClassDatN[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "DAT_N_WHITE", + [The_THEME_GREY ] = "DAT_N_GREY", + [The_THEME_PURPLE] = "DAT_N_PURPLE", + [The_THEME_BLUE ] = "DAT_N_BLUE", + [The_THEME_YELLOW] = "DAT_N_YELLOW", + [The_THEME_PINK ] = "DAT_N_PINK", + [The_THEME_DARK ] = "DAT_N_DARK", + }; + /*****************************************************************************/ /****************************** Private prototypes ***************************/ /*****************************************************************************/ diff --git a/swad_timeline.c b/swad_timeline.c index 8ab2b4ef..50e538d9 100644 --- a/swad_timeline.c +++ b/swad_timeline.c @@ -280,7 +280,7 @@ void Tml_ShowTimelineUsrHighlighting (struct Tml_Timeline *Timeline,long NotCod) Tml_ShowTimeline (Timeline,NotCod, Str_BuildStringStr (Txt_Timeline_OF_A_USER, Gbl.Usrs.Other.UsrDat.FrstName)); - Str_FreeString (); + Str_FreeStrings (); /***** Free chained list of publications *****/ Tml_Pub_FreeListPubs (Timeline); diff --git a/swad_timeline_comment.c b/swad_timeline_comment.c index e0d37963..497369ca 100644 --- a/swad_timeline_comment.c +++ b/swad_timeline_comment.c @@ -488,7 +488,7 @@ static void Tml_Com_LinkToShowComms (Tml_Com_ContractExpand_t ConExp, /* Icon and text */ Tml_Com_PutIconToToggleComms (IdComms,Link[ConExp].Icon, Str_BuildStringLong (*Link[ConExp].Text,(long) NumComms)); - Str_FreeString (); + Str_FreeStrings (); /* End container */ HTM_DIV_End (); diff --git a/swad_timeline_form.c b/swad_timeline_form.c index fe1615bc..1fbf53de 100644 --- a/swad_timeline_form.c +++ b/swad_timeline_form.c @@ -342,7 +342,7 @@ void Tml_Frm_FormToShowHiddenComms (long NotCod, Ico_PutIconTextLink ("angle-up.svg", Str_BuildStringLong (Txt_See_the_previous_X_COMMENTS, (long) NumInitialComms)); - Str_FreeString (); + Str_FreeStrings (); HTM_BUTTON_End (); /* End form */ diff --git a/swad_timeline_note.c b/swad_timeline_note.c index 887e257b..13e6f38d 100644 --- a/swad_timeline_note.c +++ b/swad_timeline_note.c @@ -686,7 +686,7 @@ static void Tml_Not_PutFormGoToAction (const struct Tml_Not_Note *Not, Str_BuildStringStr ("BT_LINK %s ICO_HIGHLIGHT", The_ClassFormInBoxBold[Gbl.Prefs.Theme]), NULL); - Str_FreeString (); + Str_FreeStrings (); /* Icon and text */ Ico_PutIcon (Tml_Icons[Not->Type], diff --git a/swad_timeline_user.c b/swad_timeline_user.c index 039b293c..2a0f8859 100644 --- a/swad_timeline_user.c +++ b/swad_timeline_user.c @@ -352,7 +352,7 @@ static void Tml_Usr_PutDisabledIconFavSha (Tml_Usr_FavSha_t FavSha, { Ico_PutDivIcon ("Tml_ICO_DISABLED",Ico[FavSha].Icon, Str_BuildStringLong (*Ico[FavSha].Title.WithUsrs,(long) NumUsrs)); - Str_FreeString (); + Str_FreeStrings (); } else Ico_PutDivIcon ("Tml_ICO_DISABLED",Ico[FavSha].Icon, diff --git a/swad_user.c b/swad_user.c index e15edb14..7b8a5f5a 100644 --- a/swad_user.c +++ b/swad_user.c @@ -1359,7 +1359,7 @@ void Usr_WriteLoggedUsrHead (void) Str_BuildStringStr ("BT_LINK %s", The_ClassUsr[Gbl.Prefs.Theme]), NULL); - Str_FreeString (); + Str_FreeStrings (); HTM_Txt (Txt_ROLES_SINGUL_Abc[Gbl.Usrs.Me.Role.Logged][Gbl.Usrs.Me.UsrDat.Sex]); HTM_BUTTON_End (); Frm_EndForm (); @@ -2031,6 +2031,7 @@ void Usr_ShowFormsLogoutAndRole (void) { extern const char *Hlp_PROFILE_Session_role; extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_Session; extern const char *Txt_Role; extern const char *Txt_You_are_now_LOGGED_IN_as_X; @@ -2052,7 +2053,7 @@ void Usr_ShowFormsLogoutAndRole (void) /***** Put a form to change my role *****/ if (Rol_GetNumAvailableRoles () == 1) { - HTM_SPAN_Begin ("class=\"DAT\""); + HTM_SPAN_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_TxtColonNBSP (Txt_Role); HTM_SPAN_End (); @@ -4732,7 +4733,7 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role, Txt_ROLES_PLURAL_abc[Role][Sex])), NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - Str_FreeString (); + Str_FreeStrings (); /***** Heading row with column names *****/ Gbl.Usrs.Listing.WithPhotos = true; diff --git a/swad_zip.c b/swad_zip.c index 81fe85de..d1b1dd76 100644 --- a/swad_zip.c +++ b/swad_zip.c @@ -522,6 +522,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL, off_t FileSize,unsigned long long UncompressedSize) { extern const char *The_ClassFormInBox[The_NUM_THEMES]; + extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *Txt_ZIP_file; extern const char *Txt_Download; extern const char *Txt_Filename; @@ -554,9 +555,9 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL, HTM_TxtColon (Txt_Filename); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); - HTM_A_Begin ("href=\"%s\" class=\"DAT\" title=\"%s\" target=\"_blank\"", - URL,FileName); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); + HTM_A_Begin ("href=\"%s\" class=\"%s\" title=\"%s\" target=\"_blank\"", + URL,The_ClassDat[Gbl.Prefs.Theme],FileName); HTM_Txt (FileName); HTM_A_End (); HTM_TD_End (); @@ -571,7 +572,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL, HTM_TxtColon (Txt_File_size); HTM_TD_End (); - HTM_TD_Begin ("class=\"DAT LM\""); + HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]); HTM_Txt (FileSizeStr); if (UncompressedSize) {