Version 21.69: Dec 15, 2021 Working on design of dark theme.

This commit is contained in:
acanas 2021-12-15 00:47:29 +01:00
parent 5a9f5d9009
commit 4112c3fa55
89 changed files with 1789 additions and 1109 deletions

View File

@ -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

View File

@ -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,"<body>\n"
"<div class=\"DAT LM\">\n");
"<div class=\"%s LM\">\n",The_ClassDat[Gbl.Prefs.Theme]);
/***** Write plain text into text buffer *****/
/* Convert to respectful HTML and insert links */

View File

@ -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 ? "&check;" :
"");
@ -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

View File

@ -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:&nbsp;%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);

View File

@ -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 ();

View File

@ -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 |

View File

@ -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"

View File

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

View File

@ -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 ();

View File

@ -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 ();
}
}

View File

@ -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&nbsp;",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 ("&nbsp;%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 ("&nbsp;%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 ("&nbsp;%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");

View File

@ -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 ();

View File

@ -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 ();
}

View File

@ -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

View File

@ -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 ();

View File

@ -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

View File

@ -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 ("&nbsp;%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 ();

View File

@ -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 ();

View File

@ -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

View File

@ -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 ();

View File

@ -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 ("&nbsp;%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 ("&nbsp;%s&nbsp;(%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;
}

View File

@ -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&nbsp;",Title);
Ico_PutIcon ((IndicatorsCrs.NumIndicators == Ind_NUM_INDICATORS) ? "check-circle.svg" :
"exclamation-triangle.svg",

View File

@ -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 ();

View File

@ -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 ();
}
/*****************************************************************************/

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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&nbsp;",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 ();

View File

@ -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 */

View File

@ -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 &gt; %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);

View File

@ -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 ();

View File

@ -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 ("&nbsp;%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(<em>p<sub>i</sub></em>=1):&nbsp;%u; "
"%s(-1&le;<em>p<sub>i</sub></em>&lt;0):&nbsp;%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 */

View File

@ -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"

View File

@ -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);

File diff suppressed because it is too large Load Diff

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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 *****/

View File

@ -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);

View File

@ -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&nbsp;",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 ();
}

View File

@ -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 ();

View File

@ -735,24 +735,6 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
DB_FreeMySQLResult (&mysql_res);
}
/*****************************************************************************/
/********************* Build a "Go to <where>" 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 */

View File

@ -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]);

View File

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

View File

@ -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 ("&nbsp;%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 ("&nbsp;%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&nbsp;",Hld->HldCod);
HTM_TD_End ();

View File

@ -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 ("&nbsp;%s",Text);
HTM_DIV_End ();
}

View File

@ -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 ();
}
/*****************************************************************************/

View File

@ -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,

View File

@ -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

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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

View File

@ -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 ("<i class=\"%s\"></i>",
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 ("&nbsp;%u",NumUsrs);
HTM_TD_End ();

View File

@ -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 ("&nbsp;%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 ();

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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);

View File

@ -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

View File

@ -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 ();

View File

@ -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&nbsp;",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 ();

View File

@ -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 ();

View File

@ -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 */

View File

@ -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 ();
}

View File

@ -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);

View File

@ -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 ();

View File

@ -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,

View File

@ -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\"");

View File

@ -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 ();

View File

@ -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 ();

View File

@ -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 ("&lt;%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&gt;",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 ();
}

View File

@ -2657,52 +2657,102 @@ void Str_Concat (char *Dst,const char *Src,size_t DstSize)
strcat (Dst,Src);
}
/*****************************************************************************/
/********************* Build a "Go to <where>" 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;
}

View File

@ -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

View File

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

View File

@ -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);

View File

@ -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 ();

View File

@ -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]);

View File

@ -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 ();
}

View File

@ -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 ();

View File

@ -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 ("&nbsp;%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 ();

View File

@ -30,10 +30,17 @@
#include <stdlib.h> // 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;

View File

@ -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 ***************************/
/*****************************************************************************/

View File

@ -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);

View File

@ -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 ();

View File

@ -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 */

View File

@ -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],

View File

@ -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,

View File

@ -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;

View File

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