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)
{