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

This commit is contained in:
acanas 2021-12-15 14:02:49 +01:00
parent 4112c3fa55
commit 849708bfa0
69 changed files with 999 additions and 828 deletions

View File

@ -283,7 +283,7 @@ a:hover /* Default ==> underlined */
}
.HEAD_ROW_2_GREY
{
background-color:#383838;
background-color:#404040;
}
.HEAD_ROW_2_PURPLE
{
@ -2306,7 +2306,7 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.FORM_IN_BLUE {color:#4d88a1; font-size:13pt;}
.FORM_IN_YELLOW {color:#7c4d2a; font-size:13pt;}
.FORM_IN_PINK {color:#4d88a1; font-size:13pt;}
.FORM_IN_DARK {color:#4d88a1; font-size:13pt;}
.FORM_IN_DARK {color:#c0e0ff; font-size:13pt;}
/* Outside white box */
.FORM_OUT_WHITE {color:#4d88a1; font-size:13pt;}
@ -2317,9 +2317,6 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.FORM_OUT_PINK {color:#63474e; font-size:13pt;}
.FORM_OUT_DARK {color:#c0e0ff; font-size:13pt;}
.BOLD {font-weight:bold;}
.NOWRAP {white-space:nowrap;}
/****************************** Placing of objects ***************************/
.LT {text-align:left; vertical-align:top; } /* Left Top */
.LM {text-align:left; vertical-align:middle;} /* Left Middle */
@ -2331,13 +2328,20 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.RM {text-align:right; vertical-align:middle;} /* Right Middle */
.RB {text-align:right; vertical-align:bottom;} /* Right Bottom */
/***************** Colors used in headers,backgrounds,etc. *****************/
/***************** Colors used in headers, backgrounds, etc. *****************/
.COLOR0 {background-color:#F4F2EA;}
.COLOR1 {background-color:#FBFAF7;}
.LIGHT_GREEN {background-color:#C0FF40;}
.LIGHT_BLUE {background-color:#DDECF1;}
.VERY_LIGHT_BLUE {background-color:#EAF3F6;}
.BG_HIGHLIGHT_WHITE {background-color:#ddecf1;}
.BG_HIGHLIGHT_GREY {background-color:#ddecf1;}
.BG_HIGHLIGHT_PURPLE {background-color:#ddecf1;}
.BG_HIGHLIGHT_BLUE {background-color:#ddecf1;}
.BG_HIGHLIGHT_YELLOW {background-color:#ddecf1;}
.BG_HIGHLIGHT_PINK {background-color:#ddecf1;}
.BG_HIGHLIGHT_DARK {background-color:#707070;}
/********************************* Course info *******************************/
#crs_info
{
@ -2458,29 +2462,35 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.T2 {color:#202020; font-size:13pt;}
.T3 {color:#202020; font-size:12pt;}
.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_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_STRONG_WHITE {color:black; font-size:13pt;}
.DAT_STRONG_GREY {color:black; font-size:13pt;}
.DAT_STRONG_PURPLE {color:black; font-size:13pt;}
.DAT_STRONG_BLUE {color:black; font-size:13pt;}
.DAT_STRONG_YELLOW {color:black; font-size:13pt;}
.DAT_STRONG_PINK {color:black; font-size:13pt;}
.DAT_STRONG_DARK {color:white; font-size:13pt;}
.DAT_LIGHT_WHITE {color:#a0a0a0; font-size:13pt;}
.DAT_LIGHT_GREY {color:#a0a0a0; font-size:13pt;}
.DAT_LIGHT_PURPLE {color:#a0a0a0; font-size:13pt;}
.DAT_LIGHT_BLUE {color:#a0a0a0; font-size:13pt;}
.DAT_LIGHT_YELLOW {color:#a0a0a0; font-size:13pt;}
.DAT_LIGHT_PINK {color:#a0a0a0; font-size:13pt;}
.DAT_LIGHT_DARK {color:#909090; 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;}
.NOWRAP {white-space:nowrap;}
.BOLD {font-weight:bold;}
/*********************** Line in top part of a table row *********************/
.LINE_TOP

View File

@ -577,7 +577,7 @@ static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID)
HTM_SPAN_Begin ("class=\"%s\" title=\"%s\"",
UsrDat->IDs.List[NumID].Confirmed ? "USR_ID_C" :
"USR_ID_NC",
Str_BuildStringStr (UsrDat->IDs.List[NumID].Confirmed ? Txt_ID_X_confirmed :
Str_BuildString (UsrDat->IDs.List[NumID].Confirmed ? Txt_ID_X_confirmed :
Txt_ID_X_not_confirmed,
UsrDat->IDs.List[NumID].ID));
Str_FreeStrings ();

View File

@ -272,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_ID;
extern const char *Txt_Name;
extern const char *Txt_yet_unnamed;
@ -289,7 +289,7 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
/***** Write user's ID and name *****/
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.RowEvenOdd);
HTM_TxtF ("%s: %s",Txt_ID,ID);
HTM_BR ();
@ -438,7 +438,7 @@ void Acc_ShowFormGoToRequestNewAccount (void)
extern const char *Txt_Create_account;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_New_on_PLATFORM_Sign_up,
Box_BoxBegin (NULL,Str_BuildString (Txt_New_on_PLATFORM_Sign_up,
Cfg_PLATFORM_SHORT_NAME),
NULL,NULL,
Hlp_PROFILE_SignUp,Box_NOT_CLOSABLE);

View File

@ -386,12 +386,12 @@ void Agd_ShowUsrAgenda (void)
/***** Begin box *****/
if (Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod))
Box_BoxBegin ("100%",Str_BuildStringStr (Txt_Public_agenda_USER,
Box_BoxBegin ("100%",Str_BuildString (Txt_Public_agenda_USER,
Gbl.Usrs.Me.UsrDat.FullName),
Agd_PutIconsMyPublicAgenda,Gbl.Usrs.Me.UsrDat.EnUsrCod,
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
else
Box_BoxBegin ("100%",Str_BuildStringStr (Txt_Public_agenda_USER,
Box_BoxBegin ("100%",Str_BuildString (Txt_Public_agenda_USER,
Gbl.Usrs.Other.UsrDat.FullName),
Agd_PutIconsOtherPublicAgenda,Gbl.Usrs.Other.UsrDat.EnUsrCod,
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
@ -438,12 +438,12 @@ void Agd_ShowOtherAgendaAfterLogIn (void)
/***** Begin box *****/
if (Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod))
Box_BoxBegin ("100%",Str_BuildStringStr (Txt_Public_agenda_USER,
Box_BoxBegin ("100%",Str_BuildString (Txt_Public_agenda_USER,
Gbl.Usrs.Me.UsrDat.FullName),
Agd_PutIconToViewEditMyFullAgenda,Gbl.Usrs.Me.UsrDat.EnUsrCod,
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
else
Box_BoxBegin ("100%",Str_BuildStringStr (Txt_Public_agenda_USER,
Box_BoxBegin ("100%",Str_BuildString (Txt_Public_agenda_USER,
Gbl.Usrs.Other.UsrDat.FullName),
Agd_PutIconsOtherPublicAgenda,Gbl.Usrs.Other.UsrDat.EnUsrCod,
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
@ -771,6 +771,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];
extern const char *The_ClassDatLight[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" :
HTM_DIV_Begin ("class=\"PAR %s\"",AgdEvent.Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
Agd_DB_GetEventTxt (&AgdEvent,Txt);
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
@ -1616,7 +1617,7 @@ void Agd_PrintAgdQRCode (void)
extern const char *Txt_Where_s_USER;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Where_s_USER,
Box_BoxBegin (NULL,Str_BuildString (Txt_Where_s_USER,
Gbl.Usrs.Me.UsrDat.FullName),
NULL,NULL,
NULL,Box_NOT_CLOSABLE);

View File

@ -394,6 +394,7 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
long AsgCod,bool PrintView)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
char *Anchor = NULL;
static unsigned UniqueId = 0;
char *Id;
@ -503,7 +504,7 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
if (Gbl.Crs.Grps.NumGrps)
Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (&Asg);
HTM_DIV_Begin ("class=\"PAR %s\"",Asg.Hidden ? "DAT_LIGHT" :
HTM_DIV_Begin ("class=\"PAR %s\"",Asg.Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
HTM_Txt (Txt);
HTM_DIV_End ();

View File

@ -448,6 +448,7 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
bool ShowOnlyThisAttEventComplete)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[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,
if (Gbl.Crs.Grps.NumGrps)
Att_GetAndWriteNamesOfGrpsAssociatedToAttEvent (Event);
HTM_DIV_Begin ("class=\"%s\"",Event->Hidden ? "DAT_LIGHT" :
HTM_DIV_Begin ("class=\"%s\"",Event->Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
HTM_Txt (Description);
HTM_DIV_End ();
@ -1684,7 +1685,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
struct Att_Event *Event)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
static const char *ClassPhoto[Pho_NUM_SHAPES] =
{
[Pho_SHAPE_CIRCLE ] = "PHOTOC45x60",
@ -1751,7 +1752,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
/***** Write number of student in the list *****/
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme],
Gbl.RowEvenOdd);
HTM_Unsigned (NumUsr);
@ -1929,7 +1930,7 @@ void Att_RegisterMeAsStdInAttEvent (void)
/***** Get comments for this student *****/
Present = Att_CheckIfUsrIsPresentInAttEventAndGetComments (Event.AttCod,Gbl.Usrs.Me.UsrDat.UsrCod,
CommentStd,CommentTch);
Par_GetParToHTML (Str_BuildStringStr ("CommentStd%s",
Par_GetParToHTML (Str_BuildString ("CommentStd%s",
Gbl.Usrs.Me.UsrDat.EnUsrCod),
CommentStd,Cns_MAX_BYTES_TEXT);
Str_FreeStrings ();
@ -2046,7 +2047,7 @@ void Att_RegisterStudentsInAttEvent (void)
{
/***** Get comments for this student *****/
Att_CheckIfUsrIsPresentInAttEventAndGetComments (Event.AttCod,Gbl.Usrs.LstUsrs[Rol_STD].Lst[NumUsr].UsrCod,CommentStd,CommentTch);
Par_GetParToHTML (Str_BuildStringStr ("CommentTch%s",
Par_GetParToHTML (Str_BuildString ("CommentTch%s",
Gbl.Usrs.LstUsrs[Rol_STD].Lst[NumUsr].EnUsrCod),
CommentTch,Cns_MAX_BYTES_TEXT);
Str_FreeStrings ();
@ -2798,7 +2799,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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Number_of_users;
struct UsrData UsrDat;
unsigned NumUsr;
@ -2844,7 +2845,7 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events,
HTM_TD_Begin ("colspan=\"%u\" class=\"%s LINE_TOP RM\"",
Gbl.Usrs.Listing.WithPhotos ? 4 :
3,
The_ClassDatN[Gbl.Prefs.Theme]);
The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Number_of_users);
HTM_TD_End ();
@ -2854,7 +2855,7 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events,
if (Events->Lst[NumAttEvent].Selected)
{
HTM_TD_Begin ("class=\"%s LINE_TOP RM\"",
The_ClassDatN[Gbl.Prefs.Theme]);
The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsFromList);
HTM_TD_End ();
@ -2862,7 +2863,7 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events,
}
HTM_TD_Begin ("class=\"%s LINE_TOP RM\"",
The_ClassDatN[Gbl.Prefs.Theme]);
The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (Total);
HTM_TD_End ();
@ -2931,7 +2932,7 @@ 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];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
static const char *ClassPhoto[Pho_NUM_SHAPES] =
{
[Pho_SHAPE_CIRCLE ] = "PHOTOC21x28",
@ -2947,7 +2948,7 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme],
Gbl.RowEvenOdd);
HTM_Unsigned (NumUsr + 1);
@ -3004,7 +3005,7 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
/***** Last column with the number of times this user is present *****/
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Unsigned (NumTimesPresent);
HTM_TD_End ();
@ -3093,7 +3094,7 @@ 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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Student_comment;
extern const char *Txt_Teachers_comment;
static const char *ClassPhoto[Pho_NUM_SHAPES] =
@ -3117,7 +3118,7 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme],
Gbl.RowEvenOdd);
HTM_TxtF ("%u:",NumUsr);
@ -3137,7 +3138,7 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
/***** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LM\"",
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_TD_End ();

View File

@ -403,6 +403,7 @@ void Ban_PutIconToViewBanners (void)
static void Ban_ListBannersForEdition (struct Ban_Banners *Banners)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
unsigned NumBan;
struct Ban_Banner *Ban;
char *Anchor = NULL;
@ -448,7 +449,7 @@ static void Ban_ListBannersForEdition (struct Ban_Banners *Banners)
/* Banner code */
HTM_TD_Begin ("class=\"%s RM\"",
Ban->Hidden ? "DAT_LIGHT" :
Ban->Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
HTM_ARTICLE_Begin (Anchor);
HTM_Long (Ban->BanCod);

View File

@ -6881,6 +6881,7 @@ static void Brw_PutFormToCreateAFolder (const char FileNameToShow[NAME_MAX + 1])
static void Brw_PutFormToUploadFilesUsingDropzone (const char *FileNameToShow)
{
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_Upload_files;
extern const char *Txt_or_you_can_upload_new_files_to_the_folder_X;
extern const char *Txt_Select_one_or_more_files_from_your_computer_or_drag_and_drop_here;
@ -6914,7 +6915,7 @@ static void Brw_PutFormToUploadFilesUsingDropzone (const char *FileNameToShow)
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
HTM_DIV_Begin ("class=\"dz-message\"");
HTM_SPAN_Begin ("class=\"DAT_LIGHT\"");
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatLight[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Select_one_or_more_files_from_your_computer_or_drag_and_drop_here);
HTM_SPAN_End ();
HTM_DIV_End ();
@ -8558,7 +8559,7 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL,
/* Begin link */
HTM_BUTTON_SUBMIT_Begin (Txt_Check_marks_in_the_file,
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
@ -9809,9 +9810,10 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs,
{
/***** Begin box and table *****/
/* Number of documents found */
Box_BoxTableBegin (NULL,Str_BuildStringLongStr ((long) NumDocs,
(NumDocs == 1) ? TitleSingular :
TitlePlural),
Box_BoxTableBegin (NULL,Str_BuildString ("%u %s",
NumDocs,
(NumDocs == 1) ? TitleSingular :
TitlePlural),
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Str_FreeStrings ();
@ -9868,8 +9870,9 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs,
static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Documents_area;
extern const char *Txt_Teachers_files_area;
extern const char *Txt_Shared_files_area;
@ -9934,8 +9937,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
/***** Set row color *****/
BgColor = (CrsCod > 0 &&
CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[Gbl.RowEvenOdd];
CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
HTM_TR_Begin (NULL);
@ -9952,7 +9955,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
Frm_BeginFormGoTo (ActSeeInsInf);
Deg_PutParamDegCod (InsCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (InsShortName),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
Lgo_DrawLogo (HieLvl_INS,InsCod,InsShortName,20,"BT_LINK LT",true);
@ -9969,7 +9972,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
Frm_BeginFormGoTo (ActSeeCtrInf);
Deg_PutParamDegCod (CtrCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (CtrShortName),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
Lgo_DrawLogo (HieLvl_CTR,CtrCod,CtrShortName,20,"LT",true);
@ -9986,7 +9989,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
Frm_BeginFormGoTo (ActSeeDegInf);
Deg_PutParamDegCod (DegCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (DegShortName),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
Lgo_DrawLogo (HieLvl_DEG,DegCod,DegShortName,20,"LT",true);
@ -10003,7 +10006,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
Frm_BeginFormGoTo (ActSeeCrsInf);
Crs_PutParamCrsCod (CrsCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (CrsShortName),
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_Txt (CrsShortName);
@ -10069,7 +10072,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
/***** Write file name using path (row[1]) *****/
HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
The_ClassDatStrong[Gbl.Prefs.Theme],BgColor);
/* Begin form */
Action = Brw_ActReqDatFile[Brw_FileBrowserForFoundDocs[FileMetadata.FileBrowser]];
@ -10110,7 +10113,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
/* File or folder icon */
HTM_BUTTON_SUBMIT_Begin (FileNameToShow,
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
if (FileMetadata.FilFolLnk.Type == Brw_IS_FOLDER)

View File

@ -132,7 +132,7 @@ void Cal_ShowFormToSelFirstDayOfWeek (Act_Action_t Action,
FuncParams (Args);
snprintf (Icon,sizeof (Icon),"first-day-of-week-%u.png",FirstDayOfWeek);
Ico_PutSettingIconLink (Icon,
Str_BuildStringStr (Txt_First_day_of_the_week_X,
Str_BuildString (Txt_First_day_of_the_week_X,
Txt_DAYS_SMALL[FirstDayOfWeek]));
Str_FreeStrings ();
Frm_EndForm ();

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_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_Centers_with_pending_degrees;
extern const char *Txt_Center;
@ -143,7 +144,7 @@ void Ctr_SeeCtrWithPendingDegs (void)
/* Get center code (row[0]) */
Ctr.CtrCod = Str_ConvertStrCodToLongCod (row[0]);
BgColor = (Ctr.CtrCod == Gbl.Hierarchy.Ctr.CtrCod) ? "LIGHT_BLUE" :
BgColor = (Ctr.CtrCod == Gbl.Hierarchy.Ctr.CtrCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
/* Get data of center */
@ -154,7 +155,10 @@ void Ctr_SeeCtrWithPendingDegs (void)
HTM_TD_Begin ("class=\"LM %s\"",BgColor);
Ctr_DrawCenterLogoAndNameWithLink (&Ctr,ActSeeDeg,
"BT_LINK DAT_NOBR","CM");
Str_BuildString ("BT_LINK %s NOWRAP",
The_ClassDat[Gbl.Prefs.Theme]),
"CM");
Str_FreeStrings ();
HTM_TD_End ();
/* Number of pending degrees (row[1]) */
@ -246,7 +250,7 @@ static void Ctr_ListCenters (void)
unsigned NumCtr;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Centers_of_INSTITUTION_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Centers_of_INSTITUTION_X,
Gbl.Hierarchy.Ins.FullName),
Ctr_PutIconsListingCenters,NULL,
Hlp_INSTITUTION_Centers,Box_NOT_CLOSABLE);
@ -327,8 +331,10 @@ static void Ctr_PutIconToEditCenters (void)
static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_CENTER_STATUS[Hie_NUM_STATUS_TXT];
struct Plc_Place Plc;
const char *TxtClassNormal;
@ -341,15 +347,15 @@ static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr)
if (Ctr->Status & Hie_STATUS_BIT_PENDING)
{
TxtClassNormal = "DAT_LIGHT";
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
TxtClassNormal = The_ClassDatLight[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatLight[Gbl.Prefs.Theme]);
}
else
{
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
}
BgColor = (Ctr->CtrCod == Gbl.Hierarchy.Ctr.CtrCod) ? "LIGHT_BLUE" :
BgColor = (Ctr->CtrCod == Gbl.Hierarchy.Ctr.CtrCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
HTM_TR_Begin (NULL);
@ -453,7 +459,7 @@ static void Ctr_EditCentersInternal (void)
Hie_WriteMenuHierarchy ();
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Centers_of_INSTITUTION_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Centers_of_INSTITUTION_X,
Gbl.Hierarchy.Ins.FullName),
Ctr_PutIconsEditingCenters,NULL,
Hlp_INSTITUTION_Centers,Box_NOT_CLOSABLE);
@ -1831,9 +1837,10 @@ void Ctr_ListCtrsFound (MYSQL_RES **mysql_res,unsigned NumCtrs)
{
/***** Begin box and table *****/
/* Number of centers found */
Box_BoxTableBegin (NULL,Str_BuildStringLongStr ((long) NumCtrs,
(NumCtrs == 1) ? Txt_center :
Txt_centers),
Box_BoxTableBegin (NULL,Str_BuildString ("%u %s",
NumCtrs,
(NumCtrs == 1) ? Txt_center :
Txt_centers),
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Str_FreeStrings ();

View File

@ -433,7 +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];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
char *PhotoAttribution = NULL;
char *URL;
char *Icon;
@ -451,7 +451,7 @@ static void CtrCfg_Photo (bool PrintView,bool PutForm,bool PutLink,
HTM_DIV_Begin ("class=\"DAT_SMALL CM\"");
if (PutLink)
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
Gbl.Hierarchy.Ctr.WWW,The_ClassDatN[Gbl.Prefs.Theme]);
Gbl.Hierarchy.Ctr.WWW,The_ClassDatStrong[Gbl.Prefs.Theme]);
if (asprintf (&URL,"%s/%02u/%u",
Cfg_URL_CTR_PUBLIC,
(unsigned) (Gbl.Hierarchy.Ctr.CtrCod % 100),
@ -590,7 +590,7 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
Frm_BeginFormGoTo (ActSeeInsInf);
Ins_PutParamInsCod (Gbl.Hierarchy.Ins.InsCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Ins.ShrtName),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
}
@ -764,9 +764,9 @@ static void CtrCfg_NumDegs (void)
HTM_TD_Begin ("class=\"LB\"");
Frm_BeginFormGoTo (ActSeeDeg);
Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Degrees_of_CENTER_X,
HTM_BUTTON_SUBMIT_Begin (Str_BuildString (Txt_Degrees_of_CENTER_X,
Gbl.Hierarchy.Ctr.ShrtName),
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_Unsigned (Deg_GetCachedNumDegsInCtr (Gbl.Hierarchy.Ctr.CtrCod));

View File

@ -602,12 +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.69 (2021-12-15)"
#define CSS_FILE "swad21.68.css"
#define Log_PLATFORM_VERSION "SWAD 21.70 (2021-12-15)"
#define CSS_FILE "swad21.70.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.70: Dec 15, 2021 Working on design of dark theme. (321252 lines)
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:

View File

@ -263,8 +263,8 @@ void Cht_ShowListOfChatRoomsWithUsrs (void)
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CM LIGHT_BLUE",Txt_CHAT_Room_code);
HTM_TH (1,1,"LM LIGHT_BLUE",Txt_Number_of_users);
HTM_TH (1,1,"CM",Txt_CHAT_Room_code);
HTM_TH (1,1,"LM",Txt_Number_of_users);
HTM_TR_End ();
/***** Loop over chat rooms *****/

View File

@ -55,8 +55,9 @@ static void Coo_PutIconsCookies (__attribute__((unused)) void *Args);
void Coo_EditMyPrefsOnCookies (void)
{
extern const char *Hlp_PROFILE_Settings_cookies;
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Cookies;
extern const char *Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites;
@ -74,7 +75,9 @@ void Coo_EditMyPrefsOnCookies (void)
/* Begin container */
if (Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies)
HTM_DIV_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_DIV_Begin ("class=\"%s %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_DIV_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);

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_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_Countries_with_pending_institutions;
extern const char *Txt_Country;
@ -143,7 +144,7 @@ void Cty_SeeCtyWithPendingInss (void)
/* Get country code (row[0]) */
Cty.CtyCod = Str_ConvertStrCodToLongCod (row[0]);
BgColor = (Cty.CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? "LIGHT_BLUE" :
BgColor = (Cty.CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
/* Get data of country */
@ -157,7 +158,7 @@ void Cty_SeeCtyWithPendingInss (void)
Cty_DrawCountryMapAndNameWithLink (&Cty,ActSeeIns,
"COUNTRY_SMALL",
"COUNTRY_MAP_SMALL",
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]));
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]));
Str_FreeStrings ();
HTM_TD_End ();
@ -400,11 +401,12 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable)
static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
const char *BgColor;
BgColor = (Cty->CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? "LIGHT_BLUE" :
BgColor = (Cty->CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
HTM_TR_Begin (NULL);
@ -419,7 +421,7 @@ static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty)
Cty_DrawCountryMapAndNameWithLink (Cty,ActSeeIns,
"COUNTRY_SMALL",
"COUNTRY_MAP_SMALL",
Str_BuildStringStr ("BT_LINK %s",The_ClassDatN[Gbl.Prefs.Theme]));
Str_BuildString ("BT_LINK %s",The_ClassDatStrong[Gbl.Prefs.Theme]));
Str_FreeStrings ();
HTM_TD_End ();
@ -553,7 +555,7 @@ void Cty_DrawCountryMap (struct Cty_Countr *Cty,const char *Class)
Cfg_URL_ICON_COUNTRIES_PUBLIC,
Cty->Alpha2) < 0)
Err_NotEnoughMemoryExit ();
HTM_IMG (URL,Str_BuildStringStr ("%s.png",Cty->Alpha2),
HTM_IMG (URL,Str_BuildString ("%s.png",Cty->Alpha2),
Cty->Name[Gbl.Prefs.Language],
"class=\"%s\"",Class);
Str_FreeStrings ();
@ -1807,9 +1809,10 @@ void Cty_ListCtysFound (MYSQL_RES **mysql_res,unsigned NumCtys)
{
/***** Begin box and table *****/
/* Number of countries found */
Box_BoxTableBegin (NULL,Str_BuildStringLongStr ((long) NumCtys,
NumCtys == 1 ? Txt_country :
Txt_countries),
Box_BoxTableBegin (NULL,Str_BuildString ("%u %s",
NumCtys,
NumCtys == 1 ? Txt_country :
Txt_countries),
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Str_FreeStrings ();

View File

@ -372,7 +372,7 @@ static void CtyCfg_Platform (bool PrintView)
{
Frm_BeginFormGoTo (ActSeeSysInf);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Cfg_PLATFORM_SHORT_NAME),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
}
@ -395,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Country;
/***** Country name *****/
@ -405,11 +405,11 @@ static void CtyCfg_Name (bool PutLink)
Frm_LabelColumn ("RT",NULL,Txt_Country);
/* Data */
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (PutLink)
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language],
The_ClassDatN[Gbl.Prefs.Theme]);
The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]);
if (PutLink)
HTM_A_End ();
@ -479,9 +479,9 @@ static void CtyCfg_NumInss (void)
HTM_TD_Begin ("class=\"LB\"");
Frm_BeginFormGoTo (ActSeeIns);
Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Institutions_of_COUNTRY_X,
HTM_BUTTON_SUBMIT_Begin (Str_BuildString (Txt_Institutions_of_COUNTRY_X,
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_Unsigned (Ins_GetCachedNumInssInCty (Gbl.Hierarchy.Cty.CtyCod));

View File

@ -147,6 +147,7 @@ void Crs_ShowIntroduction (void)
static void Crs_WriteListMyCoursesToSelectOne (void)
{
extern const char *Hlp_PROFILE_Courses;
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassFormLinkInBox[The_NUM_THEMES];
extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES];
extern const char *Txt_My_courses;
@ -174,8 +175,9 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
char ClassHighlight[64];
ClassNormal = The_ClassFormLinkInBox[Gbl.Prefs.Theme];
snprintf (ClassHighlight,sizeof (ClassHighlight),"%s LIGHT_BLUE",
The_ClassFormLinkInBoxBold[Gbl.Prefs.Theme]);
snprintf (ClassHighlight,sizeof (ClassHighlight),"%s %s",
The_ClassFormLinkInBoxBold[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
/***** Begin box *****/
Box_BoxBegin (NULL,Txt_My_courses,
@ -847,7 +849,7 @@ static void Crs_ListCourses (void)
unsigned Year;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Courses_of_DEGREE_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Courses_of_DEGREE_X,
Gbl.Hierarchy.Deg.ShrtName),
Crs_PutIconsListCourses,NULL,
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
@ -928,8 +930,10 @@ static void Crs_PutIconToEditCourses (void)
static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatLight[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];
@ -953,17 +957,17 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
ThisYearHasCourses = true;
if (Crs->Status & Hie_STATUS_BIT_PENDING)
{
TxtClassNormal = "DAT_LIGHT";
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
TxtClassNormal = The_ClassDatLight[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatLight[Gbl.Prefs.Theme]);
}
else
{
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
}
/* Check if this course is one of my courses */
BgColor = (Enr_CheckIfIBelongToCrs (Crs->CrsCod)) ? "LIGHT_BLUE" :
BgColor = (Enr_CheckIfIBelongToCrs (Crs->CrsCod)) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
HTM_TR_Begin (NULL);
@ -1061,7 +1065,7 @@ static void Crs_EditCoursesInternal (void)
Hie_WriteMenuHierarchy ();
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Courses_of_DEGREE_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Courses_of_DEGREE_X,
Gbl.Hierarchy.Deg.ShrtName),
Crs_PutIconsEditingCourses,NULL,
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
@ -2157,7 +2161,7 @@ static void Crs_PutButtonToRegisterInCrs (void)
if (Crs_EditingCrs->CrsCod != Gbl.Hierarchy.Crs.CrsCod)
Crs_PutParamCrsCod (Crs_EditingCrs->CrsCod);
Btn_PutCreateButton (Str_BuildStringStr (Txt_Register_me_in_X,
Btn_PutCreateButton (Str_BuildString (Txt_Register_me_in_X,
Crs_EditingCrs->ShrtName));
Str_FreeStrings ();
@ -2277,7 +2281,7 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
HTM_TR_Begin (NULL);
HTM_TH_Begin (1,7,"LM");
HTM_TxtColon (Str_BuildStringStr (Txt_USER_in_COURSE,
HTM_TxtColon (Str_BuildString (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_FreeStrings ();
@ -2338,9 +2342,10 @@ void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss)
{
/***** Begin box and table *****/
/* Number of courses found */
Box_BoxTableBegin (NULL,Str_BuildStringLongStr ((long) NumCrss,
(NumCrss == 1) ? Txt_course :
Txt_courses),
Box_BoxTableBegin (NULL,Str_BuildString ("%u %s",
NumCrss,
(NumCrss == 1) ? Txt_course :
Txt_courses),
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Str_FreeStrings ();
@ -2384,8 +2389,9 @@ void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss)
static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnAccepted)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[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];
@ -2428,16 +2434,16 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
NumUsrs = NumStds + NumNETs + NumTchs;
if (NumUsrs)
{
ClassTxt = The_ClassDatN[Gbl.Prefs.Theme];
ClassLink = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
ClassTxt = The_ClassDatStrong[Gbl.Prefs.Theme];
ClassLink = Str_BuildString ("BT_LINK LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
}
else
{
ClassTxt = The_ClassDat[Gbl.Prefs.Theme];
ClassLink = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]);
ClassLink = Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]);
}
BgColor = (CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[RowEvenOdd];
BgColor = (CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[RowEvenOdd];
/***** Begin row *****/
HTM_TR_Begin (NULL);

View File

@ -250,7 +250,7 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm)
Frm_BeginFormGoTo (ActSeeDegInf);
Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Deg.ShrtName),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
}
@ -442,7 +442,7 @@ static void CrsCfg_Indicators (void)
Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS) < 0)
Err_NotEnoughMemoryExit ();
HTM_BUTTON_SUBMIT_Begin (Title,
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_TxtF ("%s&nbsp;",Title);

View File

@ -122,8 +122,9 @@ void Dat_ResetHour (struct Dat_Hour *Hour)
void Dat_PutBoxToSelectDateFormat (void)
{
extern const char *Hlp_PROFILE_Settings_dates;
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Dates;
Dat_Format_t Format;
@ -143,7 +144,9 @@ void Dat_PutBoxToSelectDateFormat (void)
Format++)
{
if (Format == Gbl.Prefs.DateFormat)
HTM_LI_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_LI_Begin ("class=\"%s %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
HTM_LABEL_Begin (NULL);
@ -190,8 +193,8 @@ void Dat_PutSpanDateFormat (Dat_Format_t Format)
void Dat_PutScriptDateFormat (Dat_Format_t Format)
{
Dat_WriteLocalDateHMSFromUTC (Str_BuildStringLong ("date_format_%ld",
(long) Format),
Dat_WriteLocalDateHMSFromUTC (Str_BuildString ("date_format_%u",
(unsigned) Format),
Gbl.StartExecutionTimeUTC,
Format,Dat_SEPARATOR_NONE,
false,true,false,0x0);

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_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_Degrees_with_pending_courses;
extern const char *Txt_Degree;
@ -147,7 +148,7 @@ void Deg_SeeDegWithPendingCrss (void)
/* Get degree code (row[0]) */
Deg.DegCod = Str_ConvertStrCodToLongCod (row[0]);
BgColor = (Deg.DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
BgColor = (Deg.DegCod == Gbl.Hierarchy.Deg.DegCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
/* Get data of degree */
@ -159,7 +160,10 @@ void Deg_SeeDegWithPendingCrss (void)
/* Degree logo and full name */
HTM_TD_Begin ("class=\"LM %s\"",BgColor);
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeCrs,
"BT_LINK DAT_NOBR","CM");
Str_BuildString ("BT_LINK %s NOWRAP",
The_ClassDat[Gbl.Prefs.Theme]),
"CM");
Str_FreeStrings ();
HTM_TD_End ();
/* Number of pending courses (row[1]) */
@ -692,7 +696,7 @@ static void Deg_ListDegrees (void)
unsigned NumDeg;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Degrees_of_CENTER_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Degrees_of_CENTER_X,
Gbl.Hierarchy.Ctr.ShrtName),
Deg_PutIconsListingDegrees,NULL,
Hlp_CENTER_Degrees,Box_NOT_CLOSABLE);
@ -773,8 +777,10 @@ static void Deg_PutIconToEditDegrees (void)
static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatLight[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];
@ -791,15 +797,15 @@ static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg)
if (Deg->Status & Hie_STATUS_BIT_PENDING)
{
TxtClassNormal = "DAT_LIGHT";
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
TxtClassNormal = The_ClassDatLight[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatLight[Gbl.Prefs.Theme]);
}
else
{
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
}
BgColor = (Deg->DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
BgColor = (Deg->DegCod == Gbl.Hierarchy.Deg.DegCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
/***** Begin table row *****/
@ -885,7 +891,7 @@ static void Deg_EditDegreesInternal (void)
Hie_WriteMenuHierarchy ();
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Degrees_of_CENTER_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Degrees_of_CENTER_X,
Gbl.Hierarchy.Ctr.ShrtName),
Deg_PutIconsEditingDegrees,NULL,
Hlp_CENTER_Degrees,Box_NOT_CLOSABLE);
@ -1791,9 +1797,10 @@ void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumDegs)
{
/***** Begin box and table *****/
/* Number of degrees found */
Box_BoxTableBegin (NULL,Str_BuildStringLongStr ((long) NumDegs,
(NumDegs == 1) ? Txt_degree :
Txt_degrees),
Box_BoxTableBegin (NULL,Str_BuildString ("%u %s",
NumDegs,
(NumDegs == 1) ? Txt_degree :
Txt_degrees),
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Str_FreeStrings ();

View File

@ -241,7 +241,7 @@ static void DegCfg_Center (bool PrintView,bool PutForm)
Frm_BeginFormGoTo (ActSeeCtrInf);
Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Ctr.ShrtName),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
}
@ -329,9 +329,9 @@ static void DegCfg_NumCrss (void)
HTM_TD_Begin ("class=\"LB\"");
Frm_BeginFormGoTo (ActSeeCrs);
Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Courses_of_DEGREE_X,
HTM_BUTTON_SUBMIT_Begin (Str_BuildString (Txt_Courses_of_DEGREE_X,
Gbl.Hierarchy.Deg.ShrtName),
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_Unsigned (Crs_GetCachedNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod));

View File

@ -313,7 +313,8 @@ void DegTyp_PutIconToViewDegreeTypes (void)
static void DegTyp_ListDegreeTypesForSeeing (void)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
unsigned NumDegTyp;
const char *BgColor;
@ -323,7 +324,7 @@ static void DegTyp_ListDegreeTypesForSeeing (void)
NumDegTyp++, Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd)
{
BgColor = (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod ==
Gbl.Hierarchy.Deg.DegTypCod) ? "LIGHT_BLUE" :
Gbl.Hierarchy.Deg.DegTypCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
/* Begin table row */
@ -331,19 +332,19 @@ static void DegTyp_ListDegreeTypesForSeeing (void)
/* Number of degree type in this list */
HTM_TD_Begin ("class=\"RM %s %s\"",
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
The_ClassDatStrong[Gbl.Prefs.Theme],BgColor);
HTM_Unsigned (NumDegTyp + 1);
HTM_TD_End ();
/* Name of degree type */
HTM_TD_Begin ("class=\"LM %s %s\"",
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
The_ClassDatStrong[Gbl.Prefs.Theme],BgColor);
HTM_Txt (Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
HTM_TD_End ();
/* Number of degrees of this type */
HTM_TD_Begin ("class=\"RM %s %s\"",
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
The_ClassDatStrong[Gbl.Prefs.Theme],BgColor);
HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
HTM_TD_End ();

View File

@ -124,12 +124,12 @@ void Dpt_SeeDepts (void)
/***** Begin box and table *****/
if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)
Box_BoxTableBegin (NULL,Str_BuildStringStr (Txt_Departments_of_INSTITUTION_X,
Box_BoxTableBegin (NULL,Str_BuildString (Txt_Departments_of_INSTITUTION_X,
Gbl.Hierarchy.Ins.FullName),
Dpt_PutIconToEditDpts,NULL,
Hlp_INSTITUTION_Departments,Box_NOT_CLOSABLE,2);
else
Box_BoxTableBegin (NULL,Str_BuildStringStr (Txt_Departments_of_INSTITUTION_X,
Box_BoxTableBegin (NULL,Str_BuildString (Txt_Departments_of_INSTITUTION_X,
Gbl.Hierarchy.Ins.FullName),
NULL,NULL,
Hlp_INSTITUTION_Departments,Box_NOT_CLOSABLE,2);
@ -285,7 +285,7 @@ static void Dpt_EditDepartmentsInternal (void)
Dpt_GetListDepartments (&Departments,Gbl.Hierarchy.Ins.InsCod);
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Departments_of_INSTITUTION_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Departments_of_INSTITUTION_X,
Gbl.Hierarchy.Ins.FullName),
NULL,NULL,
Hlp_INSTITUTION_Departments_edit,Box_NOT_CLOSABLE);

View File

@ -2228,7 +2228,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
Frm_BeginFormGoTo (ActSeeCrsInf);
Crs_PutParamCrsCod (Crs.CrsCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs.FullName),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_TxtF ("%s &gt; %s",Deg.ShrtName,Crs.ShrtName);

View File

@ -474,6 +474,7 @@ 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 *The_ClassDatLight[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,
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\"",Exam->Hidden ? "DAT_LIGHT" :
HTM_DIV_Begin ("class=\"PAR %s\"",Exam->Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
HTM_Txt (Txt);
HTM_DIV_End ();

View File

@ -206,7 +206,7 @@ void ExaRes_ShowMyResultsInExa (void)
/***** List my sessions results in exam *****/
ExaRes_ShowResultsBegin (&Exams,
Str_BuildStringStr (Txt_Results_of_exam_X,Exam.Title),
Str_BuildString (Txt_Results_of_exam_X,Exam.Title),
false); // Do not list exams to select
Str_FreeStrings ();
ExaRes_ListMyResultsInExa (&Exams,Exam.ExaCod);
@ -258,7 +258,7 @@ void ExaRes_ShowMyResultsInSes (void)
false); // Do not put form to start new session
/***** List my sessions results in session *****/
ExaRes_ShowResultsBegin (&Exams,Str_BuildStringStr (Txt_Results_of_session_X,Session.Title),
ExaRes_ShowResultsBegin (&Exams,Str_BuildString (Txt_Results_of_session_X,Session.Title),
false); // Do not list exams to select
Str_FreeStrings ();
ExaRes_ListMyResultsInSes (&Exams,Session.SesCod);
@ -406,7 +406,7 @@ void ExaRes_ShowAllResultsInExa (void)
/***** List sessions results in exam *****/
ExaRes_ShowResultsBegin (&Exams,
Str_BuildStringStr (Txt_Results_of_exam_X,Exam.Title),
Str_BuildString (Txt_Results_of_exam_X,Exam.Title),
false); // Do not list exams to select
Str_FreeStrings ();
ExaRes_ListAllResultsInExa (&Exams,Exam.ExaCod);
@ -483,7 +483,7 @@ void ExaRes_ShowAllResultsInSes (void)
/***** List sessions results in session *****/
ExaRes_ShowResultsBegin (&Exams,
Str_BuildStringStr (Txt_Results_of_session_X,Session.Title),
Str_BuildString (Txt_Results_of_session_X,Session.Title),
false); // Do not list exams to select
Str_FreeStrings ();
ExaRes_ListAllResultsInSes (&Exams,Session.SesCod);
@ -1101,20 +1101,20 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
const struct ExaPrn_Score *TotalScore,
double TotalGrade)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Sessions;
unsigned NumTotalQstsInvalid;
/***** Row title *****/
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TxtColonNBSP (Txt_Sessions);
HTM_Unsigned (NumResults);
HTM_TD_End ();
/***** Write total number of questions *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Unsigned (NumTotalQsts->All);
HTM_TD_End ();
@ -1137,7 +1137,7 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write number of correct questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumTotalQsts->Valid.Correct)
HTM_Unsigned (NumTotalQsts->Valid.Correct);
else
@ -1146,7 +1146,7 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write number of wrong questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumTotalQsts->Valid.Wrong.Negative)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Negative);
else
@ -1154,7 +1154,7 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End ();
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumTotalQsts->Valid.Wrong.Zero)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Zero);
else
@ -1162,7 +1162,7 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End ();
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumTotalQsts->Valid.Wrong.Positive)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Positive);
else
@ -1171,7 +1171,7 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write number of blank questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumTotalQsts->Valid.Blank)
HTM_Unsigned (NumTotalQsts->Valid.Blank);
else
@ -1180,7 +1180,7 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write total valid score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Double2Decimals (TotalScore->Valid);
HTM_Txt ("/");
HTM_Unsigned (NumTotalQsts->Valid.Total);
@ -1188,7 +1188,7 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write average valid score per valid question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Double2Decimals (NumTotalQsts->Valid.Total ? TotalScore->Valid /
(double) NumTotalQsts->Valid.Total :
0.0);
@ -1197,13 +1197,13 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write total grade *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Double2Decimals (TotalGrade);
HTM_TD_End ();
/***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_End ();
}
@ -1510,7 +1510,7 @@ 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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
static const char *ClassPhoto[Pho_NUM_SHAPES] =
{
@ -1524,7 +1524,7 @@ void ExaRes_ShowExamResultUser (struct UsrData *UsrDat)
HTM_TR_Begin (NULL);
/***** Label *****/
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]);
HTM_TD_End ();
@ -1553,7 +1553,7 @@ 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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
Dat_StartEndTime_t StartEndTime;
char *Id;
@ -1566,7 +1566,7 @@ static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print)
HTM_TR_Begin (NULL);
/***** Label *****/
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_START_END_TIME[StartEndTime]);
HTM_TD_End ();
@ -1594,7 +1594,7 @@ 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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Questions;
extern const char *Txt_QUESTIONS_valid;
extern const char *Txt_QUESTIONS_invalid;
@ -1603,7 +1603,7 @@ static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print,
HTM_TR_Begin (NULL);
/***** Label *****/
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Questions);
HTM_TD_End ();
@ -1649,7 +1649,7 @@ 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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Valid_answers;
extern const char *Txt_ANSWERS_correct;
extern const char *Txt_ANSWERS_wrong;
@ -1659,7 +1659,7 @@ static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print,
HTM_TR_Begin (NULL);
/***** Label *****/
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Valid_answers);
HTM_TD_End ();
@ -1692,7 +1692,7 @@ 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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Score;
extern const char *Txt_valid_score;
@ -1700,7 +1700,7 @@ static void ExaRes_ShowExamResultScore (struct ExaPrn_Print *Print,
HTM_TR_Begin (NULL);
/***** Label *****/
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Score);
HTM_TD_End ();
@ -1746,7 +1746,7 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam,
const struct ExaRes_ICanView *ICanView)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Grade;
extern const char *Txt_valid_grade;
@ -1754,7 +1754,7 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam,
HTM_TR_Begin (NULL);
/***** Label *****/
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Grade);
HTM_TD_End ();

View File

@ -786,7 +786,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
Lay_PutContextualLinkOnlyIcon (ActUp_ExaSet,Anchor,
ExaSet_PutParamsOneSet,Exams,
"arrow-up.svg",
Str_BuildStringStr (Txt_Move_up_X,
Str_BuildString (Txt_Move_up_X,
StrSetInd));
Str_FreeStrings ();
}
@ -799,7 +799,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
Lay_PutContextualLinkOnlyIcon (ActDwnExaSet,Anchor,
ExaSet_PutParamsOneSet,Exams,
"arrow-down.svg",
Str_BuildStringStr (Txt_Move_down_X,
Str_BuildString (Txt_Move_down_X,
StrSetInd));
Str_FreeStrings ();
}

View File

@ -443,12 +443,12 @@ static void Fig_GetAndShowUsersStats (void)
static void Fig_GetAndShowNumUsrsInCrss (Rol_Role_t Role)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Total;
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
long Cod = Sco_GetCurrentCod ();
char *Class = (Role == Rol_UNK) ? Str_BuildStringStr ("RB %s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) :
Str_BuildStringStr ("RB %s",The_ClassDat[Gbl.Prefs.Theme]);
char *Class = (Role == Rol_UNK) ? Str_BuildString ("RB %s LINE_TOP",The_ClassDatStrong[Gbl.Prefs.Theme]) :
Str_BuildString ("RB %s",The_ClassDat[Gbl.Prefs.Theme]);
unsigned Roles = (Role == Rol_UNK) ? ((1 << Rol_STD) |
(1 << Rol_NET) |
(1 << Rol_TCH)) :
@ -488,7 +488,7 @@ static void Fig_GetAndShowNumUsrsNotBelongingToAnyCrs (void)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
char *Class = Str_BuildStringStr ("%s RB",The_ClassDat[Gbl.Prefs.Theme]);
char *Class = Str_BuildString ("%s RB",The_ClassDat[Gbl.Prefs.Theme]);
/***** Write the total number of users not belonging to any course *****/
HTM_TR_Begin (NULL);
@ -879,7 +879,7 @@ static void Fig_GetAndShowHierarchyWithUsrs (Rol_Role_t Role)
static void Fig_GetAndShowHierarchyTotal (void)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Total;
unsigned NumCtysTotal = 1;
unsigned NumInssTotal = 1;
@ -924,7 +924,7 @@ static void Fig_GetAndShowHierarchyTotal (void)
/***** Write total number of elements *****/
Fig_ShowHierarchyRow ("",Txt_Total,
Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]),
Str_BuildString ("%s LINE_TOP",The_ClassDatStrong[Gbl.Prefs.Theme]),
(int) NumCtysTotal,
(int) NumInssTotal,
(int) NumCtrsTotal,
@ -1552,12 +1552,12 @@ static void Fig_WriteRowStatsFileBrowsers1 (const char *NameOfFileZones,
struct Fig_SizeOfFileZones *SizeOfFileZones)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
char StrNumCrss[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char StrNumGrps[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char StrNumUsrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1];
const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) :
const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildString ("%s LINE_TOP",The_ClassDatStrong[Gbl.Prefs.Theme]) :
The_ClassDat[Gbl.Prefs.Theme];
Fil_WriteFileSizeFull ((double) SizeOfFileZones->Size,FileSizeStr);
@ -1624,11 +1624,11 @@ static void Fig_WriteRowStatsFileBrowsers2 (const char *NameOfFileZones,
struct Fig_SizeOfFileZones *SizeOfFileZones)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
char StrNumFoldersPerCrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char StrNumFilesPerCrs[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char FileSizePerCrsStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1];
const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) :
const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildString ("%s LINE_TOP",The_ClassDatStrong[Gbl.Prefs.Theme]) :
The_ClassDat[Gbl.Prefs.Theme];
if (SizeOfFileZones->NumCrss == -1) // Not applicable
@ -1681,11 +1681,11 @@ static void Fig_WriteRowStatsFileBrowsers3 (const char *NameOfFileZones,
struct Fig_SizeOfFileZones *SizeOfFileZones)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
char StrNumFoldersPerUsr[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char StrNumFilesPerUsr[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char FileSizePerUsrStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1];
const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildStringStr ("%s LINE_TOP",The_ClassDatN[Gbl.Prefs.Theme]) :
const char *Class = (FileZone == Brw_UNKNOWN) ? Str_BuildString ("%s LINE_TOP",The_ClassDatStrong[Gbl.Prefs.Theme]) :
The_ClassDat[Gbl.Prefs.Theme];
if (SizeOfFileZones->NumUsrs == -1) // Not applicable
@ -2008,7 +2008,7 @@ static void Fig_GetAndShowTestsStats (void)
{
extern const char *Hlp_ANALYTICS_Figures_tests;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_Type_of_BR_answers;
extern const char *Txt_Number_of_BR_courses_BR_with_test_BR_questions;
@ -2101,15 +2101,15 @@ static void Fig_GetAndShowTestsStats (void)
/***** Write stats *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Total);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (Stats.NumCoursesWithQuestions);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtF ("%u (%.1f%%)",
Stats.NumCoursesWithPluggableQuestions,
Stats.NumCoursesWithQuestions ? (double) Stats.NumCoursesWithPluggableQuestions * 100.0 /
@ -2117,27 +2117,27 @@ static void Fig_GetAndShowTestsStats (void)
0.0);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (Stats.NumQsts);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (Stats.AvgQstsPerCourse);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_UnsignedLong (Stats.NumHits);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (Stats.AvgHitsPerCourse);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (Stats.AvgHitsPerQuestion);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (Stats.AvgScorePerQuestion);
HTM_TD_End ();
@ -2263,7 +2263,7 @@ static void Fig_GetAndShowTimelineActivityStats (void)
{
extern const char *Hlp_ANALYTICS_Figures_timeline;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_Type;
extern const char *Txt_Number_of_posts;
@ -2383,25 +2383,25 @@ static void Fig_GetAndShowTimelineActivityStats (void)
/* Write totals */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Total);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumNotes);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumUsrs);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Percentage (NumUsrsTotal ? (double) NumUsrs * 100.0 /
(double) NumUsrsTotal :
0.0);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (NumUsrs ? (double) NumNotes / (double) NumUsrs :
0.0);
HTM_TD_End ();
@ -2748,7 +2748,7 @@ static void Fig_WriteForumTitleAndStats (For_ForumType_t ForumType,
static void Fig_WriteForumTotalStats (struct Fig_FiguresForum *FiguresForum)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Total;
double NumThrsPerForum;
double NumPostsPerThread;
@ -2769,38 +2769,38 @@ static void Fig_WriteForumTotalStats (struct Fig_FiguresForum *FiguresForum)
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s LINE_TOP\" style=\"width:20px;\"",
The_ClassDatN[Gbl.Prefs.Theme]);
The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Total);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (FiguresForum->NumForums);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (FiguresForum->NumThreads);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (FiguresForum->NumPosts);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP RM\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP RM\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (FiguresForum->NumUsrsToBeNotifiedByEMail);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (NumThrsPerForum);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (NumPostsPerThread);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Double2Decimals (NumPostsPerForum);
HTM_TD_End ();
@ -2815,7 +2815,7 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
{
extern const char *Hlp_ANALYTICS_Figures_notifications;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_Event;
extern const char *Txt_NOTIFY_EVENTS_PLURAL[Ntf_NUM_NOTIFY_EVENTS];
@ -2942,25 +2942,25 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
/***** Write total number of users who want to be notified by email on some event *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Total);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumUsrsTotalWhoWantToBeNotifiedByEMailAboutSomeEvent);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Percentage (NumUsrsTotal ? (double) NumUsrsTotalWhoWantToBeNotifiedByEMailAboutSomeEvent * 100.0 /
(double) NumUsrsTotal :
0.0);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumEventsTotal);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumMailsTotal);
HTM_TD_End ();
@ -2978,7 +2978,7 @@ static void Fig_GetAndShowNoticesStats (void)
{
extern const char *Hlp_ANALYTICS_Figures_notices;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_NOTICE_Active_BR_notices;
extern const char *Txt_NOTICE_Obsolete_BR_notices;
@ -3034,7 +3034,7 @@ static void Fig_GetAndShowNoticesStats (void)
HTM_Unsigned (NumNoticesDeleted);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned ( NumTotalNotices);
HTM_TD_End ();
@ -3056,7 +3056,7 @@ static void Fig_GetAndShowMsgsStats (void)
{
extern const char *Hlp_ANALYTICS_Figures_messages;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_Messages;
extern const char *Txt_MSGS_Not_deleted;
@ -3106,7 +3106,7 @@ static void Fig_GetAndShowMsgsStats (void)
HTM_Unsigned (NumMsgsSentDeleted);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumMsgsSentNotDeleted + NumMsgsSentDeleted);
HTM_TD_End ();
@ -3130,7 +3130,7 @@ static void Fig_GetAndShowMsgsStats (void)
HTM_Unsigned (NumMsgsReceivedAndDeleted);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumMsgsReceivedNotDeleted + NumMsgsReceivedAndDeleted);
HTM_TD_End ();
@ -3614,7 +3614,7 @@ static void Fig_GetAndShowNumUsrsPerFirstDayOfWeek (void)
FirstDayOfWeek) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutIcon (Icon,
Str_BuildStringStr (Txt_First_day_of_the_week_X,
Str_BuildString (Txt_First_day_of_the_week_X,
Txt_DAYS_SMALL[FirstDayOfWeek]),
"ICO40x40");
Str_FreeStrings ();
@ -3646,7 +3646,7 @@ static void Fig_GetAndShowNumUsrsPerDateFormat (void)
{
extern const char *Hlp_ANALYTICS_Figures_dates;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_Format;
extern const char *Txt_Number_of_users;
@ -3691,7 +3691,7 @@ static void Fig_GetAndShowNumUsrsPerDateFormat (void)
{
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
Dat_PutSpanDateFormat (Format);
Dat_PutScriptDateFormat (Format);
HTM_TD_End ();

View File

@ -314,6 +314,7 @@ void Fol_ShowFollowingAndFollowers (const struct UsrData *UsrDat,
unsigned NumFollowing,unsigned NumFollowers,
bool UsrFollowsMe,bool IFollowUsr)
{
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_FOLLOWS_YOU;
extern const char *Txt_Following;
extern const char *Txt_Followers;
@ -328,7 +329,7 @@ void Fol_ShowFollowingAndFollowers (const struct UsrData *UsrDat,
HTM_DIV_Begin ("class=\"FOLLOW_SIDE\"");
/* User follows me? */
HTM_DIV_Begin ("id=\"follows_me\" class=\"DAT_LIGHT\"");
HTM_DIV_Begin ("id=\"follows_me\" class=\"%s\"",The_ClassDatLight[Gbl.Prefs.Theme]);
if (UsrFollowsMe)
HTM_Txt (Txt_FOLLOWS_YOU);
HTM_DIV_End ();
@ -640,7 +641,7 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
HTM_DIV_Begin ("class=\"FOLLOW_USR_NAME\""); // Limited width
HTM_BUTTON_SUBMIT_Begin (Txt_Another_user_s_profile,
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
Usr_WriteFirstNameBRSurnames (UsrDat);

View File

@ -928,9 +928,9 @@ static void For_ShowAForumPost (struct For_Forums *Forums,
For_PutParamsForum (Forums);
Ico_PutIconLink (Enabled ? "eye-green.svg" :
"eye-slash-red.svg",
Str_BuildStringLong (Enabled ? Txt_FORUM_Post_X_allowed_Click_to_ban_it :
Txt_FORUM_Post_X_banned_Click_to_unban_it,
(long) PstNum));
Str_BuildString (Enabled ? Txt_FORUM_Post_X_allowed_Click_to_ban_it :
Txt_FORUM_Post_X_banned_Click_to_unban_it,
PstNum));
Str_FreeStrings ();
Frm_EndForm ();
}
@ -938,9 +938,9 @@ static void For_ShowAForumPost (struct For_Forums *Forums,
{
Ico_PutIcon (Enabled ? "eye-green.svg" :
"eye-slash-red.svg",
Str_BuildStringLong (Enabled ? Txt_FORUM_Post_X_allowed :
Txt_FORUM_Post_X_banned,
(long) PstNum),
Str_BuildString (Enabled ? Txt_FORUM_Post_X_allowed :
Txt_FORUM_Post_X_banned,
PstNum),
"ICO_HIDDEN ICO16x16");
Str_FreeStrings ();
}
@ -1665,6 +1665,7 @@ static void For_WriteLinkToForum (const struct For_Forums *Forums,
unsigned Level,
bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS])
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassFormLinkInBox[The_NUM_THEMES];
extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES];
extern const char *Txt_Copy_not_allowed;
@ -1680,92 +1681,94 @@ static void For_WriteLinkToForum (const struct For_Forums *Forums,
The_ClassFormLinkInBox[Gbl.Prefs.Theme]);
/***** Begin row *****/
HTM_LI_Begin (Highlight ? "class=\"LIGHT_BLUE\"" :
NULL);
if (Highlight)
HTM_LI_Begin ("class=\"%s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_LI_Begin (NULL);
/***** Indent forum title *****/
Lay_IndentDependingOnLevel (Level,IsLastItemInLevel);
/***** Indent forum title *****/
Lay_IndentDependingOnLevel (Level,IsLastItemInLevel);
/***** Write paste button used to move a thread in clipboard to this forum *****/
if (Forums->Thread.ToMove >= 0) // If I have permission to paste threads and there is a thread ready to be pasted...
/***** Write paste button used to move a thread in clipboard to this forum *****/
if (Forums->Thread.ToMove >= 0) // If I have permission to paste threads and there is a thread ready to be pasted...
{
/* Check if thread to move is yet in current forum */
if (For_DB_CheckIfThrBelongsToForum (Forums->Thread.ToMove,Forum))
Ico_PutIcon ("paste.svg",Txt_Copy_not_allowed,"CONTEXT_OPT ICO_HIDDEN ICO16x16");
else
{
/* Check if thread to move is yet in current forum */
if (For_DB_CheckIfThrBelongsToForum (Forums->Thread.ToMove,Forum))
Ico_PutIcon ("paste.svg",Txt_Copy_not_allowed,"CONTEXT_OPT ICO_HIDDEN ICO16x16");
else
{
Frm_BeginFormAnchor (For_ActionsPasThrFor[Forum->Type],
For_FORUM_THREADS_SECTION_ID);
For_PutAllHiddenParamsForum (1, // Page of threads = first
1, // Page of posts = first
Forums->ForumSet,
Forums->ThreadsOrder,
Forum->Location,
Forums->Thread.ToMove,
-1L);
Ico_PutIconPaste ();
Frm_EndForm ();
}
Frm_BeginFormAnchor (For_ActionsPasThrFor[Forum->Type],
For_FORUM_THREADS_SECTION_ID);
For_PutAllHiddenParamsForum (1, // Page of threads = first
1, // Page of posts = first
Forums->ForumSet,
Forums->ThreadsOrder,
Forum->Location,
Forums->Thread.ToMove,
-1L);
Ico_PutIconPaste ();
Frm_EndForm ();
}
}
/***** Write link to forum *****/
Frm_BeginFormAnchor (For_ActionsSeeFor[Forum->Type],
For_FORUM_THREADS_SECTION_ID);
For_PutAllHiddenParamsForum (1, // Page of threads = first
1, // Page of posts = first
Forums->ForumSet,
Forums->ThreadsOrder,
Forum->Location,
-1L,
-1L);
/***** Write link to forum *****/
Frm_BeginFormAnchor (For_ActionsSeeFor[Forum->Type],
For_FORUM_THREADS_SECTION_ID);
For_PutAllHiddenParamsForum (1, // Page of threads = first
1, // Page of posts = first
Forums->ForumSet,
Forums->ThreadsOrder,
Forum->Location,
-1L,
-1L);
HTM_BUTTON_SUBMIT_Begin (Act_GetActionText (For_ActionsSeeFor[Forum->Type]),
Class,NULL);
HTM_BUTTON_SUBMIT_Begin (Act_GetActionText (For_ActionsSeeFor[Forum->Type]),
Class,NULL);
For_SetForumName (Forum,ForumName,Gbl.Prefs.Language,true);
switch (Forum->Type)
{
case For_FORUM_GLOBAL_USRS:
case For_FORUM_GLOBAL_TCHS:
Ico_PutIcon ("comments.svg",ForumName,"ICO16x16");
break;
case For_FORUM__SWAD__USRS:
case For_FORUM__SWAD__TCHS:
Ico_PutIcon ("swad64x64.png",ForumName,"ICO16x16");
break;
case For_FORUM_INSTIT_USRS:
case For_FORUM_INSTIT_TCHS:
Lgo_DrawLogo (HieLvl_INS,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_CENTER_USRS:
case For_FORUM_CENTER_TCHS:
Lgo_DrawLogo (HieLvl_CTR,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_DEGREE_USRS:
case For_FORUM_DEGREE_TCHS:
Lgo_DrawLogo (HieLvl_DEG,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_COURSE_USRS:
case For_FORUM_COURSE_TCHS:
Ico_PutIcon ("chalkboard-teacher.svg",ForumName,"ICO16x16");
break;
default:
break;
}
HTM_TxtF ("&nbsp;%s",ForumName);
For_SetForumName (Forum,ForumName,Gbl.Prefs.Language,true);
switch (Forum->Type)
{
case For_FORUM_GLOBAL_USRS:
case For_FORUM_GLOBAL_TCHS:
Ico_PutIcon ("comments.svg",ForumName,"ICO16x16");
break;
case For_FORUM__SWAD__USRS:
case For_FORUM__SWAD__TCHS:
Ico_PutIcon ("swad64x64.png",ForumName,"ICO16x16");
break;
case For_FORUM_INSTIT_USRS:
case For_FORUM_INSTIT_TCHS:
Lgo_DrawLogo (HieLvl_INS,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_CENTER_USRS:
case For_FORUM_CENTER_TCHS:
Lgo_DrawLogo (HieLvl_CTR,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_DEGREE_USRS:
case For_FORUM_DEGREE_TCHS:
Lgo_DrawLogo (HieLvl_DEG,Forum->Location,ForumName,16,NULL,true);
break;
case For_FORUM_COURSE_USRS:
case For_FORUM_COURSE_TCHS:
Ico_PutIcon ("chalkboard-teacher.svg",ForumName,"ICO16x16");
break;
default:
break;
}
HTM_TxtF ("&nbsp;%s",ForumName);
/***** Write total number of threads and posts in this forum *****/
if (NumThrs)
For_WriteNumberOfThrs (NumThrs);
/***** Write total number of threads and posts in this forum *****/
if (NumThrs)
For_WriteNumberOfThrs (NumThrs);
/***** End row *****/
HTM_BUTTON_End ();
/***** End row *****/
HTM_BUTTON_End ();
Frm_EndForm ();
Frm_EndForm ();
/***** Put link to register students *****/
if (Forum->Type == For_FORUM_COURSE_USRS)
Enr_PutButtonInlineToRegisterStds (Forum->Location);
/***** Put link to register students *****/
if (Forum->Type == For_FORUM_COURSE_USRS)
Enr_PutButtonInlineToRegisterStds (Forum->Location);
HTM_LI_End ();
}
@ -2129,6 +2132,7 @@ static void For_ListForumThrs (struct For_Forums *Forums,
long ThrCodHighlighted,
struct Pagination *PaginationThrs)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *The_ClassFormInBoxBold[The_NUM_THEMES];
extern const char *Txt_Thread_with_posts_from_you;
@ -2175,7 +2179,7 @@ static void For_ListForumThrs (struct For_Forums *Forums,
Style = (Thr.NumUnreadPosts ? "AUTHOR_TXT_NEW" :
"AUTHOR_TXT");
BgColor = (Thr.ThrCod == ThreadInMyClipboard) ? "LIGHT_GREEN" :
((Thr.ThrCod == ThrCodHighlighted) ? "LIGHT_BLUE" :
((Thr.ThrCod == ThrCodHighlighted) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TR_Begin (NULL);

View File

@ -515,6 +515,7 @@ 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 *The_ClassDatLight[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,
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\"",Game->Hidden ? "DAT_LIGHT" :
HTM_DIV_Begin ("class=\"PAR %s\"",Game->Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
HTM_Txt (Txt);
HTM_DIV_End ();
@ -1760,7 +1761,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
Lay_PutContextualLinkOnlyIcon (ActUp_GamQst,Anchor,
Gam_PutParamsOneQst,Games,
"arrow-up.svg",
Str_BuildStringStr (Txt_Move_up_X,
Str_BuildString (Txt_Move_up_X,
StrQstInd));
Str_FreeStrings ();
}
@ -1773,7 +1774,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
Lay_PutContextualLinkOnlyIcon (ActDwnGamQst,Anchor,
Gam_PutParamsOneQst,Games,
"arrow-down.svg",
Str_BuildStringStr (Txt_Move_down_X,
Str_BuildString (Txt_Move_down_X,
StrQstInd));
Str_FreeStrings ();
}

View File

@ -1460,7 +1460,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
Grp_PutParamGrpCod (&Grp->GrpCod);
Ico_PutIconLink (Grp->Open ? "unlock.svg" :
"lock.svg",
Str_BuildStringStr (Grp->Open ? Txt_Group_X_open_click_to_close_it :
Str_BuildString (Grp->Open ? Txt_Group_X_open_click_to_close_it :
Txt_Group_X_closed_click_to_open_it,
Grp->GrpName));
Str_FreeStrings ();
@ -1475,7 +1475,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
Grp_PutParamGrpCod (&Grp->GrpCod);
Ico_PutIconLink (Grp->FileZones ? "folder-open-green.svg" :
"folder-red.svg",
Str_BuildStringStr (Grp->FileZones ? Txt_File_zones_of_the_group_X_enabled_click_to_disable_them :
Str_BuildString (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_FreeStrings ();
@ -1620,6 +1620,7 @@ void Grp_ListGrpsToEditAsgAttSvyEvtMch (struct GroupType *GrpTyp,
Grp_WhichIsAssociatedToGrp_t WhichIsAssociatedToGrp,
long Cod) // Assignment, attendance event, survey, exam event or match
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
static const struct
{
const char *Table;
@ -1663,18 +1664,19 @@ void Grp_ListGrpsToEditAsgAttSvyEvtMch (struct GroupType *GrpTyp,
/* Put checkbox to select the group */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s\"",
IBelongToThisGroup ? "LM LIGHT_BLUE" :
"LM");
HTM_INPUT_CHECKBOX ("GrpCods",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s%s"
" onclick=\"uncheckParent(this,'WholeCrs')\"",
Grp->GrpCod,Grp->GrpCod,
AssociatedToGrp ? " checked=\"checked\"" :
"",
(IBelongToThisGroup ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? "" :
" disabled=\"disabled\"");
if (IBelongToThisGroup)
HTM_TD_Begin ("class=\"LM %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_CHECKBOX ("GrpCods",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s%s"
" onclick=\"uncheckParent(this,'WholeCrs')\"",
Grp->GrpCod,Grp->GrpCod,
AssociatedToGrp ? " checked=\"checked\"" :
"",
(IBelongToThisGroup ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? "" :
" disabled=\"disabled\"");
HTM_TD_End ();
Grp_WriteRowGrp (Grp,IBelongToThisGroup);
@ -1843,6 +1845,7 @@ static void Grp_ShowWarningToStdsToChangeGrps (void)
static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp,
unsigned *NumGrpsThisTypeIBelong)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
struct ListCodGrps LstGrpsIBelong;
unsigned NumGrpThisType;
struct Group *Grp;
@ -1956,44 +1959,45 @@ static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp,
/* Put radio item or checkbox to select the group */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s\"",
IBelongToThisGroup ? "LM LIGHT_BLUE" :
"LM");
if (IBelongToThisGroup)
HTM_TD_Begin ("class=\"LM %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LM\"");
snprintf (StrGrpCod,sizeof (StrGrpCod),"GrpCod%ld",GrpTyp->GrpTypCod);
if (Gbl.Usrs.Me.Role.Logged == Rol_STD && // If I am a student
!GrpTyp->MultipleEnrolment && // ...and the enrolment is single
GrpTyp->NumGrps > 1) // ...and there are more than one group
{
/* Put a radio item */
if (GrpTyp->MandatoryEnrolment)
HTM_INPUT_RADIO (StrGrpCod,false,
"id=\"Grp%ld\" value=\"%ld\"%s%s",
Grp->GrpCod,Grp->GrpCod,
IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected?
ICanChangeMySelectionForThisGrp ? "" :
IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted)
" disabled=\"disabled\""); // I can not register
else // If the enrolment is not mandatory, I can select no groups
HTM_INPUT_RADIO (StrGrpCod,false,
"id=\"Grp%ld\" value=\"%ld\"%s%s"
" onclick=\"selectUnselectRadio(this,this.form.GrpCod%ld,%u)\"",
Grp->GrpCod,Grp->GrpCod,
IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected?
ICanChangeMySelectionForThisGrp ? "" :
IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted)
" disabled=\"disabled\"", // I can not register
GrpTyp->GrpTypCod,GrpTyp->NumGrps);
}
else
/* Put a checkbox item */
HTM_INPUT_CHECKBOX (StrGrpCod,HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s%s",
Grp->GrpCod,Grp->GrpCod,
IBelongToThisGroup ? " checked=\"checked\"" : "",
ICanChangeMySelectionForThisGrp ? "" :
IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted)
" disabled=\"disabled\""); // I can not register
snprintf (StrGrpCod,sizeof (StrGrpCod),"GrpCod%ld",GrpTyp->GrpTypCod);
if (Gbl.Usrs.Me.Role.Logged == Rol_STD && // If I am a student
!GrpTyp->MultipleEnrolment && // ...and the enrolment is single
GrpTyp->NumGrps > 1) // ...and there are more than one group
{
/* Put a radio item */
if (GrpTyp->MandatoryEnrolment)
HTM_INPUT_RADIO (StrGrpCod,false,
"id=\"Grp%ld\" value=\"%ld\"%s%s",
Grp->GrpCod,Grp->GrpCod,
IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected?
ICanChangeMySelectionForThisGrp ? "" :
IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted)
" disabled=\"disabled\""); // I can not register
else // If the enrolment is not mandatory, I can select no groups
HTM_INPUT_RADIO (StrGrpCod,false,
"id=\"Grp%ld\" value=\"%ld\"%s%s"
" onclick=\"selectUnselectRadio(this,this.form.GrpCod%ld,%u)\"",
Grp->GrpCod,Grp->GrpCod,
IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected?
ICanChangeMySelectionForThisGrp ? "" :
IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted)
" disabled=\"disabled\"", // I can not register
GrpTyp->GrpTypCod,GrpTyp->NumGrps);
}
else
/* Put a checkbox item */
HTM_INPUT_CHECKBOX (StrGrpCod,HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s%s",
Grp->GrpCod,Grp->GrpCod,
IBelongToThisGroup ? " checked=\"checked\"" : "",
ICanChangeMySelectionForThisGrp ? "" :
IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted)
" disabled=\"disabled\""); // I can not register
HTM_TD_End ();
@ -2050,6 +2054,7 @@ void Grp_ShowLstGrpsToChgOtherUsrsGrps (long UsrCod)
static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
struct ListCodGrps LstGrpsUsrBelongs;
unsigned NumGrpThisType;
bool UsrBelongsToThisGroup;
@ -2077,19 +2082,20 @@ static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod)
HTM_TR_Begin (NULL);
/* Begin cell for checkbox */
HTM_TD_Begin ("class=\"%s\"",
UsrBelongsToThisGroup ? "LM LIGHT_BLUE" :
"LM");
if (UsrBelongsToThisGroup)
HTM_TD_Begin ("class=\"LM %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LM\"");
/* Put checkbox to select the group */
// Always checkbox, not radio, because the role in the form may be teacher,
// so if he/she is registered as teacher, he/she can belong to several groups
snprintf (StrGrpCod,sizeof (StrGrpCod),"GrpCod%ld",GrpTyp->GrpTypCod);
HTM_INPUT_CHECKBOX (StrGrpCod,HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s",
Grp->GrpCod,Grp->GrpCod,
UsrBelongsToThisGroup ? " checked=\"checked\"" :
""); // I can not register
/* Put checkbox to select the group */
// Always checkbox, not radio, because the role in the form may be teacher,
// so if he/she is registered as teacher, he/she can belong to several groups
snprintf (StrGrpCod,sizeof (StrGrpCod),"GrpCod%ld",GrpTyp->GrpTypCod);
HTM_INPUT_CHECKBOX (StrGrpCod,HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s",
Grp->GrpCod,Grp->GrpCod,
UsrBelongsToThisGroup ? " checked=\"checked\"" :
""); // I can not register
/* End cell for checkbox */
HTM_TD_End ();
@ -2113,6 +2119,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_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_users_with_no_group;
unsigned NumGrpThisType;
@ -2181,16 +2188,17 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
/* Put checkbox to select the group */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s\"",
IBelongToThisGroup ? "LIGHT_BLUE" :
"LM");
HTM_INPUT_CHECKBOX ("GrpCods",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s%s",
Grp->GrpCod,Grp->GrpCod,
Checked ? " checked=\"checked\"" :
"",
ICanSelUnselGroup ? " onclick=\"checkParent(this,'AllGroups')\"" :
" disabled=\"disabled\"");
if (IBelongToThisGroup)
HTM_TD_Begin ("class=\"LM %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_CHECKBOX ("GrpCods",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Grp%ld\" value=\"%ld\"%s%s",
Grp->GrpCod,Grp->GrpCod,
Checked ? " checked=\"checked\"" :
"",
ICanSelUnselGroup ? " onclick=\"checkParent(this,'AllGroups')\"" :
" disabled=\"disabled\"");
HTM_TD_End ();
Grp_WriteRowGrp (Grp,IBelongToThisGroup);
@ -2325,6 +2333,7 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_Group_X_open;
extern const char *Txt_Group_X_closed;
@ -2335,32 +2344,37 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
/***** Write icon to show if group is open or closed *****/
if (Highlight)
HTM_TD_Begin ("class=\"BM LIGHT_BLUE\"");
HTM_TD_Begin ("class=\"BM %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"BM\"");
Ico_PutIconOff (Grp->Open ? "unlock.svg" :
"lock.svg",
Str_BuildStringStr (Grp->Open ? Txt_Group_X_open :
Str_BuildString (Grp->Open ? Txt_Group_X_open :
Txt_Group_X_closed,
Grp->GrpName));
Str_FreeStrings ();
HTM_TD_End ();
/***** Group name *****/
HTM_TD_Begin ("class=\"%s\"",
Highlight ? "LM LIGHT_BLUE" :
"LM");
HTM_LABEL_Begin ("for=\"Grp%ld\" class=\"%s\"",
Grp->GrpCod,The_ClassDat[Gbl.Prefs.Theme]);
HTM_Txt (Grp->GrpName);
HTM_LABEL_End ();
if (Highlight)
HTM_TD_Begin ("class=\"LM %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LM\"");
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 %s\"",
The_ClassDat[Gbl.Prefs.Theme],Highlight ? "LM LIGHT_BLUE" :
"LM");
HTM_Txt (Grp->Room.ShrtName);
if (Highlight)
HTM_TD_Begin ("class=\"LM %s %s\"",
The_ClassDat[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LM %s\"",
The_ClassDat[Gbl.Prefs.Theme]);
HTM_Txt (Grp->Room.ShrtName);
HTM_TD_End ();
/***** Current number of users in this group *****/
@ -2368,31 +2382,43 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
Role >= Rol_STD;
Role--)
{
HTM_TD_Begin ("class=\"%s %s\"",
The_ClassDat[Gbl.Prefs.Theme],Highlight ? "CM LIGHT_BLUE" :
"CM");
HTM_Int (Grp->NumUsrs[Role]);
if (Highlight)
HTM_TD_Begin ("class=\"CM %s %s\"",
The_ClassDat[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"CM %s\"",
The_ClassDat[Gbl.Prefs.Theme]);
HTM_Int (Grp->NumUsrs[Role]);
HTM_TD_End ();
}
/***** Max. number of students in this group *****/
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);
if (Highlight)
HTM_TD_Begin ("class=\"CM %s %s\"",
The_ClassDat[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"CM %s\"",
The_ClassDat[Gbl.Prefs.Theme]);
Grp_WriteMaxStds (StrMaxStudents,Grp->MaxStudents);
HTM_TxtF ("%s&nbsp;",StrMaxStudents);
HTM_TD_End ();
/***** Vacants in this group *****/
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];
HTM_Unsigned (Vacant > 0 ? (unsigned) Vacant :
0);
}
if (Highlight)
HTM_TD_Begin ("class=\"CM %s %s\"",
The_ClassDat[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"CM %s\"",
The_ClassDat[Gbl.Prefs.Theme]);
if (Grp->MaxStudents <= Grp_MAX_STUDENTS_IN_A_GROUP)
{
Vacant = (int) Grp->MaxStudents - (int) Grp->NumUsrs[Rol_STD];
HTM_Unsigned (Vacant > 0 ? (unsigned) Vacant :
0);
}
HTM_TD_End ();
}

View File

@ -127,7 +127,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
if (ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs] != ActUnk)
{
/* Request my removing from this course */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Txt_Remove_me_from_THE_COURSE_X,
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Txt_Remove_me_from_THE_COURSE_X,
Gbl.Hierarchy.Crs.ShrtName),
ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs],
Btn_REMOVE_BUTTON,Txt_Remove_me);
@ -137,7 +137,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
else // I do not belong to this course
{
/* Request my registration in this course */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Txt_Register_me_in_X,
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Txt_Register_me_in_X,
Gbl.Hierarchy.Crs.ShrtName),
ActReqSignUp,
Btn_CREATE_BUTTON,Txt_Sign_up);
@ -153,7 +153,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
1 << Rol_STD)) // Current course probably has no students
{
/* Request students enrolment */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Txt_Register_students_in_COURSE_X,
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Txt_Register_students_in_COURSE_X,
Gbl.Hierarchy.Crs.ShrtName),
ActReqEnrSevStd,
Btn_CREATE_BUTTON,Txt_Register_students);
@ -170,7 +170,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
if (Gbl.Hierarchy.Deg.DegCod > 0) // Degree selected
{
/* Select a course */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Gbl.Hierarchy.Level == HieLvl_CRS ? Txt_Select_create_course_in_X :
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Gbl.Hierarchy.Level == HieLvl_CRS ? Txt_Select_create_course_in_X :
Txt_Select_or_create_one_course_in_X,
Gbl.Hierarchy.Deg.ShrtName),
ActSeeCrs,
@ -180,7 +180,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
else if (Gbl.Hierarchy.Ctr.CtrCod > 0) // Center selected
{
/* Select a degree */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Gbl.Hierarchy.Deg.DegCod > 0 ? Txt_Select_or_create_another_degree_in_X :
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Gbl.Hierarchy.Deg.DegCod > 0 ? Txt_Select_or_create_another_degree_in_X :
Txt_Select_or_create_one_degree_in_X,
Gbl.Hierarchy.Ctr.ShrtName),
ActSeeDeg,
@ -190,7 +190,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
else if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected
{
/* Select a center */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Gbl.Hierarchy.Ctr.CtrCod > 0 ? Txt_Select_or_create_another_center_in_X :
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Gbl.Hierarchy.Ctr.CtrCod > 0 ? Txt_Select_or_create_another_center_in_X :
Txt_Select_or_create_one_center_in_X,
Gbl.Hierarchy.Ins.ShrtName),
ActSeeCtr,
@ -200,7 +200,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
else if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected
{
/* Select an institution */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Gbl.Hierarchy.Ins.InsCod > 0 ? Txt_Select_or_create_another_institution_in_X :
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Gbl.Hierarchy.Ins.InsCod > 0 ? Txt_Select_or_create_another_institution_in_X :
Txt_Select_or_create_one_institution_in_X,
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
ActSeeIns,
@ -227,7 +227,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
Btn_CONFIRM_BUTTON,Txt_Log_in);
/* Sign up */
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildStringStr (Txt_New_on_PLATFORM_Sign_up,
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Str_BuildString (Txt_New_on_PLATFORM_Sign_up,
Cfg_PLATFORM_SHORT_NAME),
ActFrmMyAcc,
Btn_CREATE_BUTTON,Txt_Create_account);

View File

@ -70,7 +70,7 @@ 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];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
/***** Full name *****/
HTM_TR_Begin (NULL);
@ -81,7 +81,7 @@ void HieCfg_FullName (bool PutForm,const char *Label,Act_Action_t NextAction,
Label);
/* Data */
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (PutForm)
{
/* Form to change full name */
@ -106,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Short_name;
/***** Short name *****/
@ -118,7 +118,7 @@ void HieCfg_ShrtName (bool PutForm,Act_Action_t NextAction,
Txt_Short_name);
/* Data */
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (PutForm)
{
/* Form to change short name */
@ -245,9 +245,9 @@ void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm)
{
Frm_BeginFormGoTo (ActSeeCtr);
Ins_PutParamInsCod (Gbl.Hierarchy.Ins.InsCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Centers_of_INSTITUTION_X,
HTM_BUTTON_SUBMIT_Begin (Str_BuildString (Txt_Centers_of_INSTITUTION_X,
Gbl.Hierarchy.Ins.ShrtName),
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
}

View File

@ -428,15 +428,20 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
unsigned NumCrssWithIndicatorYes[1 + Ind_NUM_INDICATORS],
unsigned NumCrss,bool PutForm)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatLight[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 = Str_BuildStringStr ("%s RM LIGHT_BLUE",The_ClassDat[Gbl.Prefs.Theme]);
const char *ClassNormal = Str_BuildString ("RM %s",
The_ClassDatLight[Gbl.Prefs.Theme]);
const char *ClassHighlight = Str_BuildString ("RM %s %s",
The_ClassDat[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
/***** Write number of courses with each number of indicators valid *****/
HTM_TABLE_BeginPadding (2);
@ -495,15 +500,15 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
if (PutForm)
HTM_TD_Empty (1);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Total);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Unsigned (NumCrss);
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtF ("(%.1f%%)",100.0);
HTM_TD_End ();

View File

@ -886,6 +886,7 @@ void Inf_SetInfoSrc (void)
void Inf_FormsToSelSendInfo (void)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_Source_of_information;
@ -948,26 +949,29 @@ void Inf_FormsToSelSendInfo (void)
HTM_TR_Begin (NULL);
/* Select info source */
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 ();
if (InfoSrc == FromDB.Src)
HTM_TD_Begin ("class=\"LT %s %s\"",
The_ClassDat[Gbl.Prefs.Theme],
The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LT %s\"",
The_ClassDat[Gbl.Prefs.Theme]);
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 */
if (InfoSrc == FromDB.Src)
HTM_TD_Begin ("class=\"LT LIGHT_BLUE\"");
HTM_TD_Begin ("class=\"LT %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_TD_Begin ("class=\"LT\"");
HTM_LABEL_Begin ("for=\"InfoSrc%u\" class=\"%s\"",

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_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_Institutions_with_pending_centers;
extern const char *Txt_Institution;
@ -156,8 +157,8 @@ void Ins_SeeInsWithPendingCtrs (void)
/* Get institution code (row[0]) */
Ins.InsCod = Str_ConvertStrCodToLongCod (row[0]);
BgColor = (Ins.InsCod == Gbl.Hierarchy.Ins.InsCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[Gbl.RowEvenOdd];
BgColor = (Ins.InsCod == Gbl.Hierarchy.Ins.InsCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
/* Get data of institution */
Ins_GetDataOfInstitByCod (&Ins);
@ -167,7 +168,10 @@ void Ins_SeeInsWithPendingCtrs (void)
HTM_TD_Begin ("class=\"LM %s\"",BgColor);
Ins_DrawInstitutionLogoAndNameWithLink (&Ins,ActSeeCtr,
"BT_LINK DAT_NOBR","CM");
Str_BuildString ("BT_LINK %s NOWRAP",
The_ClassDat[Gbl.Prefs.Theme]),
"CM");
Str_FreeStrings ();
HTM_TD_End ();
/* Number of pending centers (row[1]) */
@ -282,7 +286,7 @@ static void Ins_ListInstitutions (void)
unsigned NumIns;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Institutions_of_COUNTRY_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Institutions_of_COUNTRY_X,
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
Ins_PutIconsListingInstitutions,NULL,
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
@ -358,8 +362,10 @@ static void Ins_PutIconToEditInstitutions (void)
static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned NumIns)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_INSTITUTION_STATUS[Hie_NUM_STATUS_TXT];
const char *TxtClassNormal;
const char *TxtClassStrong;
@ -367,16 +373,16 @@ static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned Num
if (Ins->Status & Hie_STATUS_BIT_PENDING)
{
TxtClassNormal = "DAT_LIGHT";
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
TxtClassNormal = The_ClassDatLight[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatLight[Gbl.Prefs.Theme]);
}
else
{
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
TxtClassStrong = Str_BuildString ("BT_LINK LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
}
BgColor = (Ins->InsCod == Gbl.Hierarchy.Ins.InsCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[Gbl.RowEvenOdd];
BgColor = (Ins->InsCod == Gbl.Hierarchy.Ins.InsCod) ? The_ClassBgHighlight[Gbl.Prefs.Theme] :
Gbl.ColorRows[Gbl.RowEvenOdd];
HTM_TR_Begin (NULL);
@ -540,7 +546,7 @@ static void Ins_EditInstitutionsInternal (void)
Hie_WriteMenuHierarchy ();
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Institutions_of_COUNTRY_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Institutions_of_COUNTRY_X,
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
Ins_PutIconsEditingInstitutions,NULL,
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
@ -1803,9 +1809,10 @@ void Ins_ListInssFound (MYSQL_RES **mysql_res,unsigned NumInss)
{
/***** Begin box and table *****/
/* Number of institutions found */
Box_BoxTableBegin (NULL,Str_BuildStringLongStr ((long) NumInss,
NumInss == 1 ? Txt_institution :
Txt_institutions),
Box_BoxTableBegin (NULL,Str_BuildString ("%u %s",
NumInss,
NumInss == 1 ? Txt_institution :
Txt_institutions),
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Str_FreeStrings ();

View File

@ -342,7 +342,7 @@ static void InsCfg_Country (bool PrintView,bool PutForm)
Frm_BeginFormGoTo (ActSeeCtyInf);
Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod);
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
}

View File

@ -1149,7 +1149,7 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe,
if (Confirmed)
{
Ico_PutIcon ("check-circle.svg",
Str_BuildStringStr (Txt_Email_X_confirmed,row[0]),
Str_BuildString (Txt_Email_X_confirmed,row[0]),
"ICO16x16");
Str_FreeStrings ();
}

View File

@ -2375,7 +2375,7 @@ static void Mch_PutFormCountdown (struct Mch_Match *Match,long Seconds,const cha
HTM_BUTTON_SUBMIT_Begin (PutForm ? Txt_Countdown :
NULL,
Str_BuildStringStr (PutForm ? "BT_LINK MCH_BUTTON_ON %s" :
Str_BuildString (PutForm ? "BT_LINK MCH_BUTTON_ON %s" :
"BT_LINK_OFF MCH_BUTTON_HIDDEN %s",
Color),
NULL);
@ -2645,9 +2645,10 @@ static void Mch_ShowFormColumns (const struct Mch_Match *Match)
/* Number of columns */
Ico_PutSettingIconLink (NumColsIcon[NumCols],
Str_BuildStringLongStr ((long) NumCols,
NumCols == 1 ? Txt_column :
Txt_columns));
Str_BuildString ("%u %s",
NumCols,
NumCols == 1 ? Txt_column :
Txt_columns));
Str_FreeStrings ();
/* End form */
@ -2688,7 +2689,7 @@ static void Mch_PutCheckboxResult (const struct Mch_Match *Match)
/***** Put icon with link *****/
HTM_BUTTON_SUBMIT_Begin (Txt_View_results,
Str_BuildStringStr ("BT_LINK %s ICO_HIGHLIGHT",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s ICO_HIGHLIGHT",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_TxtF ("<i class=\"%s\"></i>",
@ -3229,9 +3230,10 @@ static void Mch_DrawScoreRow (double Score,double MinScore,double MaxScore,
if (asprintf (&Icon,"score%u_1x1.png",Color) < 0) // Background
Err_NotEnoughMemoryExit ();
HTM_IMG (Cfg_URL_ICON_PUBLIC,Icon,
Str_BuildStringLongStr ((long) NumUsrs,
NumUsrs == 1 ? Txt_ROLES_SINGUL_abc[Rol_STD][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN]),
Str_BuildString ("%u %s",
NumUsrs,
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_FreeStrings ();
free (Icon);

View File

@ -169,7 +169,7 @@ void MchRes_ShowMyMchResultsInGam (void)
/***** List my matches results in game *****/
MchRes_ShowResultsBegin (&Games,
Str_BuildStringStr (Txt_Results_of_game_X,Game.Title),
Str_BuildString (Txt_Results_of_game_X,Game.Title),
false); // Do not list games to select
Str_FreeStrings ();
MchRes_ListMyMchResultsInGam (&Games,Game.GamCod);
@ -221,7 +221,7 @@ void MchRes_ShowMyMchResultsInMch (void)
false); // Do not put form to start new match
/***** List my matches results in match *****/
MchRes_ShowResultsBegin (&Games,Str_BuildStringStr (Txt_Results_of_match_X,Match.Title),
MchRes_ShowResultsBegin (&Games,Str_BuildString (Txt_Results_of_match_X,Match.Title),
false); // Do not list games to select
Str_FreeStrings ();
MchRes_ListMyMchResultsInMch (&Games,Match.MchCod);
@ -373,7 +373,7 @@ void MchRes_ShowAllMchResultsInGam (void)
/***** List matches results in game *****/
MchRes_ShowResultsBegin (&Games,
Str_BuildStringStr (Txt_Results_of_game_X,Game.Title),
Str_BuildString (Txt_Results_of_game_X,Game.Title),
false); // Do not list games to select
Str_FreeStrings ();
MchRes_ListAllMchResultsInGam (&Games,Game.GamCod);
@ -448,7 +448,7 @@ void MchRes_ShowAllMchResultsInMch (void)
/***** List matches results in match *****/
MchRes_ShowResultsBegin (&Games,
Str_BuildStringStr (Txt_Results_of_match_X,Match.Title),
Str_BuildString (Txt_Results_of_match_X,Match.Title),
false); // Do not list games to select
Str_FreeStrings ();
MchRes_ListAllMchResultsInMch (&Games,Match.MchCod);
@ -975,7 +975,7 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults,
double TotalScore,
double TotalGrade)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Matches;
/***** Begin row *****/
@ -983,35 +983,35 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults,
/***** Row title *****/
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TxtColonNBSP (Txt_Matches);
HTM_Unsigned (NumResults);
HTM_TD_End ();
/***** Write total number of questions *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[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=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumResults)
HTM_Unsigned (NumTotalQsts->NotBlank);
HTM_TD_End ();
/***** Write total number of blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumResults)
HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank);
HTM_TD_End ();
/***** Write total score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Double2Decimals (TotalScore);
HTM_Txt ("/");
HTM_Unsigned (NumTotalQsts->All);
@ -1019,7 +1019,7 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults,
/***** Write average score per question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Double2Decimals (NumTotalQsts->All ? TotalScore /
(double) NumTotalQsts->All :
0.0);
@ -1027,13 +1027,13 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults,
/***** Write total grade *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_Double2Decimals (TotalGrade);
HTM_TD_End ();
/***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_End ();
/***** End row *****/
@ -1048,7 +1048,7 @@ 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 *The_ClassDatStrong[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;
@ -1135,7 +1135,7 @@ void MchRes_ShowOneMchResult (void)
/* User */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]);
HTM_TD_End ();
@ -1161,7 +1161,7 @@ void MchRes_ShowOneMchResult (void)
{
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_START_END_TIME[StartEndTime]);
HTM_TD_End ();
@ -1181,7 +1181,7 @@ void MchRes_ShowOneMchResult (void)
/***** Number of questions *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Questions);
HTM_TD_End ();
@ -1194,7 +1194,7 @@ void MchRes_ShowOneMchResult (void)
/***** Number of answers *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Answers);
HTM_TD_End ();
@ -1207,7 +1207,7 @@ void MchRes_ShowOneMchResult (void)
/***** Score *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Score);
HTM_TD_End ();
@ -1229,7 +1229,7 @@ void MchRes_ShowOneMchResult (void)
/***** Grade *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Grade);
HTM_TD_End ();
@ -1249,7 +1249,7 @@ void MchRes_ShowOneMchResult (void)
/***** Tags present in this result *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Tags);
HTM_TD_End ();

View File

@ -516,6 +516,7 @@ static void Msg_ShowOneUniqueRecipient (void)
static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *Txt_Other_recipients;
extern const char *Txt_Recipients;
extern const char *Txt_nicks_emails_or_IDs_separated_by_commas;
@ -533,7 +534,8 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
/***** Title *****/
HTM_TR_Begin (NULL);
HTM_TH_Begin (1,ColSpan,"LM LIGHT_BLUE");
HTM_TH_Begin (1,ColSpan,Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]));
Str_FreeStrings ();
HTM_LABEL_Begin ("for=\"OtherRecipients\"");
HTM_TxtColon (StdsAndTchsWritten ? Txt_Other_recipients :
Txt_Recipients);

View File

@ -790,7 +790,7 @@ static bool Pho_ReceivePhotoAndDetectFaces (bool ItsMe,const struct UsrData *Usr
Cfg_PATH_PHOTO_TMP_PUBLIC,Gbl.UniqueNameEncrypted);
HTM_DIV_Begin ("class=\"TIT CM\"");
HTM_IMG (Cfg_URL_PHOTO_TMP_PUBLIC,
Str_BuildStringStr ("%s_map.jpg",Gbl.UniqueNameEncrypted),
Str_BuildString ("%s_map.jpg",Gbl.UniqueNameEncrypted),
Txt_Faces_detected,
"usemap=\"#faces_map\"");
Str_FreeStrings ();
@ -1061,6 +1061,7 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
char **CaptionStr)
{
extern const char *Rol_Icons[Rol_NUM_ROLES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Following;
extern const char *Txt_Followers;
unsigned NumFollowing;
@ -1090,10 +1091,11 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
if (PutZoomCode)
{
/* First name and surnames */
if (asprintf (&Caption.Name,"<div class=\"ZOOM_TXT_LINE DAT_N_BOLD\">" // Limited width
if (asprintf (&Caption.Name,"<div class=\"ZOOM_TXT_LINE %s BOLD\">" // Limited width
"%s<br />"
"%s%s%s"
"</div>",
The_ClassDatStrong[Gbl.Prefs.Theme],
UsrDat->FrstName,
UsrDat->Surname1,
UsrDat->Surname2[0] ? "&nbsp;" :
@ -1164,21 +1166,23 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
{
Fol_GetNumFollow (UsrDat->UsrCod,&NumFollowing,&NumFollowers);
if (asprintf (&Caption.Follow,"<div class=\"ZOOM_TXT_LINE\">"
"<span class=\"DAT_N_BOLD\">"
"<span class=\"%s BOLD\">"
"%u"
"</span>"
"<span class=\"DAT_SMALL\">"
"&nbsp;%s&nbsp;"
"</span>"
"<span class=\"DAT_N_BOLD\">"
"<span class=\"%s BOLD\">"
"%u"
"</span>"
"<span class=\"DAT_SMALL\">"
"&nbsp;%s"
"</span>"
"</div>",
The_ClassDatStrong[Gbl.Prefs.Theme],
NumFollowing,
Txt_Following,
The_ClassDatStrong[Gbl.Prefs.Theme],
NumFollowers,
Txt_Followers) < 0)
Err_NotEnoughMemoryExit ();
@ -2243,7 +2247,7 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
if (SeeOrPrint == Pho_DEGREES_SEE)
{
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf,
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
"CT");
Str_FreeStrings ();
}
@ -2345,7 +2349,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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_students_ABBREVIATION;
extern const char *Txt_SEX_PLURAL_abc[Usr_NUM_SEXS];
extern const char *Txt_photos;
@ -2410,7 +2414,7 @@ static void Pho_ShowDegreeAvgPhotoAndStat (const struct Deg_Degree *Deg,
Frm_SetUniqueId (IdCaption);
HTM_DIV_Begin ("id=\"%s\" class=\"NOT_SHOWN\"",IdCaption);
HTM_DIV_Begin ("class=\"ZOOM_TXT_LINE %s\"",
The_ClassDatN[Gbl.Prefs.Theme]);
The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (PhotoCaption);
HTM_DIV_End ();
HTM_DIV_End ();

View File

@ -135,7 +135,7 @@ void Plg_ListPlugins (void)
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),
Str_BuildString ("%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo),
Plg->Name,
"class=\"ICO40x40\"");
Str_FreeStrings ();
@ -363,7 +363,7 @@ static void Plg_ListPluginsForEdition (void)
// TODO: Change plugin icons to 32x32
HTM_TD_Begin ("class=\"CM\" style=\"width:45px;\"");
HTM_IMG (Cfg_URL_ICON_PLUGINS_PUBLIC,
Str_BuildStringStr ("%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo),
Str_BuildString ("%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo),
Gbl.Plugins.Lst[NumPlg].Name,
"class=\"ICO40x40\"");
Str_FreeStrings ();

View File

@ -153,9 +153,10 @@ static void Pri_PutFormVisibility (const char *TxtLabel,
Pri_Visibility_t CurrentVisibilityInDB,
unsigned MaskAllowedVisibility)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_PRIVACY_OPTIONS[Pri_NUM_OPTIONS_PRIVACY];
Pri_Visibility_t Visibility;
@ -178,9 +179,11 @@ static void Pri_PutFormVisibility (const char *TxtLabel,
if (MaskAllowedVisibility & (1 << Visibility))
{
if (Visibility == CurrentVisibilityInDB)
HTM_LI_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_LI_Begin ("class=\"%s %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],The_ClassBgHighlight[Gbl.Prefs.Theme]);
else
HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
HTM_LI_Begin ("class=\"%s\"",
The_ClassDat[Gbl.Prefs.Theme]);
HTM_LABEL_Begin (NULL);
HTM_INPUT_RADIO (ParamName,Action != ActUnk,
"value=\"%u\"%s%s",

View File

@ -373,6 +373,7 @@ void Prf_ChangeExtendedProfileVis (void)
void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
{
extern const char *The_ClassDatStrong[The_NUM_THEMES];
bool UsrIsBannedFromRanking;
struct Prf_UsrFigures UsrFigures;
Rol_Role_t Role;
@ -383,7 +384,8 @@ void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
/***** Left list *****/
/* Begin left list */
HTM_DIV_Begin ("class=\"PRF_FIG_LEFT_CONT\"");
HTM_UL_Begin ("class=\"PRF_FIG_UL DAT_NOBR_N\"");
HTM_UL_Begin ("class=\"PRF_FIG_UL %s NOWRAP\"",
The_ClassDatStrong[Gbl.Prefs.Theme]);
/* Time since first click */
Prf_ShowTimeSinceFirstClick (UsrDat,&UsrFigures);
@ -408,7 +410,8 @@ void Prf_ShowDetailsUserProfile (const struct UsrData *UsrDat)
if (!UsrIsBannedFromRanking)
{
/* Begin right list */
HTM_UL_Begin ("class=\"PRF_FIG_UL DAT_NOBR_N\"");
HTM_UL_Begin ("class=\"PRF_FIG_UL %s NOWRAP\"",
The_ClassDatStrong[Gbl.Prefs.Theme]);
/* Number of clicks */
Prf_ShowNumClicks (UsrDat,&UsrFigures);

View File

@ -776,7 +776,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
Lay_PutContextualLinkOnlyIcon (ActUp_PrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-up.svg",
Str_BuildStringStr (Txt_Move_up_X,
Str_BuildString (Txt_Move_up_X,
StrItemIndex));
Str_FreeStrings ();
}
@ -789,7 +789,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
Lay_PutContextualLinkOnlyIcon (ActDwnPrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-down.svg",
Str_BuildStringStr (Txt_Move_down_X,
Str_BuildString (Txt_Move_down_X,
StrItemIndex));
Str_FreeStrings ();
}
@ -802,7 +802,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
Lay_PutContextualLinkOnlyIcon (ActLftPrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-left.svg",
Str_BuildStringStr (Txt_Increase_level_of_X,
Str_BuildString (Txt_Increase_level_of_X,
StrItemIndex));
Str_FreeStrings ();
}
@ -815,7 +815,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
Lay_PutContextualLinkOnlyIcon (ActRgtPrgItm,"prg_highlighted",
Prg_PutParams,&Item->Hierarchy.ItmCod,
"arrow-right.svg",
Str_BuildStringStr (Txt_Decrease_level_of_X,
Str_BuildString (Txt_Decrease_level_of_X,
StrItemIndex));
Str_FreeStrings ();
}

View File

@ -1003,7 +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 *The_ClassDatStrong[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;
@ -1015,7 +1015,7 @@ 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]);
const char *Class = Str_BuildString ("LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TR_Begin (NULL);
@ -1219,6 +1219,7 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
Prj_ProjectView_t ProjectView)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_Project_files;
extern const char *Txt_Assigned_QUESTION;
extern const char *Txt_Yes;
@ -1253,7 +1254,7 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
"ASG_TITLE";
ClassLink = (Prj->Hidden == Prj_HIDDEN) ? "BT_LINK LT ASG_TITLE_LIGHT" :
"BT_LINK LT ASG_TITLE";
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Set anchor string *****/
@ -1657,6 +1658,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 *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_Yes;
extern const char *Txt_No;
extern const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES];
@ -1672,7 +1674,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
/***** Set CSS classes *****/
ClassDate = (Prj->Hidden == Prj_HIDDEN) ? "DATE_BLUE_LIGHT" :
"DATE_BLUE";
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Begin row *****/
@ -1761,12 +1763,13 @@ static void Prj_ShowOneProjectDepartment (const struct Prj_Project *Prj,
Prj_ProjectView_t ProjectView)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
struct Dpt_Department Dpt;
bool PutLink;
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Get data of department *****/
@ -1800,11 +1803,12 @@ 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];
extern const char *The_ClassDatLight[The_NUM_THEMES];
struct Dpt_Department Dpt;
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Get data of department *****/
@ -1828,13 +1832,14 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj,
bool Warning)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
const char *ClassLabel;
const char *ClassData;
/***** Set CSS classes *****/
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
"ASG_LABEL";
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Label *****/
@ -1897,10 +1902,11 @@ static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
char *TxtField)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Change format *****/
@ -1922,6 +1928,7 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
const char *id,unsigned UniqueId)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_URL;
const char *ClassLabel;
const char *ClassData;
@ -1932,7 +1939,7 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
/***** Set CSS classes *****/
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
"ASG_LABEL";
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Write row with label and text *****/
@ -1982,10 +1989,11 @@ 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];
extern const char *The_ClassDatLight[The_NUM_THEMES];
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Show URL *****/
@ -2022,6 +2030,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
Prj_RoleInProject_t RoleInPrj)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[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;
@ -2059,7 +2068,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
/***** Set CSS classes *****/
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
"ASG_LABEL";
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Get users in project from database *****/
@ -2173,7 +2182,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
Projects->PrjCod = Prj->PrjCod; // Used to pass project code as a parameter
Ico_PutContextualIconToAdd (ActionReqAddUsr[RoleInPrj],NULL,
Prj_PutCurrentParams,Projects,
Str_BuildStringStr (Txt_Add_USERS,
Str_BuildString (Txt_Add_USERS,
Txt_PROJECT_ROLES_PLURAL_abc[RoleInPrj]));
Str_FreeStrings ();
HTM_TD_End ();
@ -2206,6 +2215,7 @@ static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *
Prj_RoleInProject_t RoleInPrj)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumUsr;
@ -2213,7 +2223,7 @@ static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *
const char *ClassData;
/***** Set CSS classes *****/
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
ClassData = (Prj->Hidden == Prj_HIDDEN) ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme];
/***** Get users in project from database *****/
@ -2586,7 +2596,7 @@ static void Prj_ReqRemUsrFromPrj (struct Prj_Projects *Projects,
Frm_BeginForm (ActionRemUsr[RoleInPrj]);
Projects->PrjCod = Prj.PrjCod;
Prj_PutCurrentParams (Projects);
Btn_PutRemoveButton (Str_BuildStringStr (Txt_Remove_USER_from_this_project,
Btn_PutRemoveButton (Str_BuildString (Txt_Remove_USER_from_this_project,
Txt_PROJECT_ROLES_SINGUL_abc[RoleInPrj][Gbl.Usrs.Other.UsrDat.Sex]));
Str_FreeStrings ();
Frm_EndForm ();

View File

@ -518,6 +518,7 @@ void Qst_ListQuestionForEdition (struct Qst_Question *Question,
unsigned QstInd,bool QuestionExists,
const char *Anchor)
{
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_Question_removed;
/***** Number of question and answer type (row[1]) *****/
@ -560,7 +561,7 @@ void Qst_ListQuestionForEdition (struct Qst_Question *Question,
}
else
{
HTM_SPAN_Begin ("class=\"DAT_LIGHT\"");
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatLight[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Question_removed);
HTM_SPAN_End ();
}
@ -1858,7 +1859,7 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
/***** Begin box *****/
if (Question->QstCod > 0) // The question already has assigned a code
{
Box_BoxBegin (NULL,Str_BuildStringLong (Txt_Question_code_X,Question->QstCod),
Box_BoxBegin (NULL,Str_BuildString (Txt_Question_code_X,Question->QstCod),
Qst_PutIconToRemoveOneQst,&Question->QstCod,
Hlp_ASSESSMENT_Questions_writing_a_question,Box_NOT_CLOSABLE);
Str_FreeStrings ();

View File

@ -1565,7 +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_ClassDatStrong[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;
@ -1735,7 +1735,7 @@ 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 LT %s COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (ICanEditThisField) // Show with form
{
HTM_TEXTAREA_Begin ("name=\"Field%ld\" rows=\"%u\""
@ -2683,14 +2683,14 @@ static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks)
static void Rec_ShowCountryInHead (struct UsrData *UsrDat,bool ShowData)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
HTM_TD_Begin ("class=\"REC_C2_MID LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_MID LT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData && UsrDat->CtyCod > 0)
{
/* Link to see country information */
Cty_WriteCountryName (UsrDat->CtyCod,
Str_BuildStringStr ("BT_LINK %s",The_ClassDatN[Gbl.Prefs.Theme])); // Put link to country
Str_BuildString ("BT_LINK %s",The_ClassDatStrong[Gbl.Prefs.Theme])); // Put link to country
Str_FreeStrings ();
}
HTM_TD_End ();
@ -2715,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Email;
/***** Email *****/
@ -2725,14 +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 LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[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=\"%s\"",
UsrDat->Email,The_ClassDatN[Gbl.Prefs.Theme]);
UsrDat->Email,The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (UsrDat->Email);
HTM_A_End ();
}
@ -2751,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_ID;
/***** User's IDs *****/
@ -2761,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 LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
ID_WriteUsrIDs (UsrDat,Anchor);
HTM_TD_End ();
@ -2776,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Role;
extern const char *Txt_Sex;
extern const char *Txt_SEX_SINGULAR_Abc[Usr_NUM_SEXS];
@ -2802,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 LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
switch (TypeOfView)
{
case Rec_SHA_SIGN_UP_IN_CRS_FORM: // I want to apply for enrolment
@ -2997,7 +2997,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
/***** Form to select a sex *****/
/* Label */
Frm_LabelColumn ("REC_C1_BOT RM","",
Str_BuildStringStr ("%s*",Txt_Sex));
Str_BuildString ("%s*",Txt_Sex));
Str_FreeStrings ();
/* Data */
@ -3006,7 +3006,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
Sex <= Usr_SEX_MALE;
Sex++)
{
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_INPUT_RADIO ("Sex",false,
"value=\"%u\"%s required=\"required\"",
(unsigned) Sex,
@ -3023,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 LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]);
HTM_TD_End ();
}
@ -3037,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Surname_1;
HTM_TR_Begin (NULL);
@ -3046,14 +3046,14 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,bool PutForm)
if (PutForm)
{
Frm_LabelColumn ("REC_C1_BOT RM","Surname1",
Str_BuildStringStr ("%s*",Txt_Surname_1));
Str_BuildString ("%s*",Txt_Surname_1));
Str_FreeStrings ();
}
else
Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Surname_1);
/* Data */
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (PutForm)
HTM_INPUT_TEXT ("Surname1",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME,UsrDat->Surname1,
HTM_DONT_SUBMIT_ON_CHANGE,
@ -3076,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Surname_2;
HTM_TR_Begin (NULL);
@ -3087,7 +3087,7 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,bool PutForm)
Txt_Surname_2);
/* Data */
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (PutForm)
HTM_INPUT_TEXT ("Surname2",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME,
UsrDat->Surname2,
@ -3110,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_First_name;
HTM_TR_Begin (NULL);
@ -3119,7 +3119,7 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,bool PutForm)
if (PutForm)
{
Frm_LabelColumn ("REC_C1_BOT RM","FirstName",
Str_BuildStringStr ("%s*",Txt_First_name));
Str_BuildString ("%s*",Txt_First_name));
Str_FreeStrings ();
}
else
@ -3127,7 +3127,7 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,bool PutForm)
/* Data */
HTM_TD_Begin ("colspan=\"2\" class=\"REC_C2_BOT LM %s\"",
The_ClassDatN[Gbl.Prefs.Theme]);
The_ClassDatStrong[Gbl.Prefs.Theme]);
if (PutForm)
HTM_INPUT_TEXT ("FirstName",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME,
UsrDat->FrstName,
@ -3165,7 +3165,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm)
if (PutForm)
{
Frm_LabelColumn ("REC_C1_BOT RM","OthCtyCod",
Str_BuildStringStr ("%s*",Txt_Country));
Str_BuildString ("%s*",Txt_Country));
Str_FreeStrings ();
}
else
@ -3200,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Date_of_birth;
/***** Date of birth *****/
@ -3212,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 LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
{
if (PutForm)
@ -3237,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Phone;
char *Name;
char *Label;
@ -3259,7 +3259,7 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm,
Label);
/* Data */
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
{
if (PutForm)
@ -3269,7 +3269,7 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm,
else if (UsrDat->Phone[NumPhone][0])
{
HTM_A_Begin ("href=\"tel:%s\" class=\"%s\"",
UsrDat->Phone[NumPhone],The_ClassDatN[Gbl.Prefs.Theme]);
UsrDat->Phone[NumPhone],The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (UsrDat->Phone[NumPhone]);
HTM_A_End ();
}
@ -3291,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_USER_comments;
/***** Comments *****/
@ -3303,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 LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
{
if (PutForm)
@ -3354,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Institution;
/***** Institution *****/
@ -3364,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 LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
if (Ins->InsCod > 0)
{
if (Ins->WWW[0])
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
Ins->WWW,The_ClassDatN[Gbl.Prefs.Theme]);
Ins->WWW,The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Ins->FullName);
if (Ins->WWW[0])
HTM_A_End ();
@ -3386,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Center;
struct Ctr_Center Ctr;
@ -3397,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 LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
{
if (UsrDat->Tch.CtrCod > 0)
@ -3406,7 +3406,7 @@ static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData)
Ctr_GetDataOfCenterByCod (&Ctr);
if (Ctr.WWW[0])
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
Ctr.WWW,The_ClassDatN[Gbl.Prefs.Theme]);
Ctr.WWW,The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Ctr.FullName);
if (Ctr.WWW[0])
HTM_A_End ();
@ -3423,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Department;
struct Dpt_Department Dpt;
@ -3434,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 LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
{
if (UsrDat->Tch.DptCod > 0)
@ -3443,7 +3443,7 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData)
Dpt_GetDataOfDepartmentByCod (&Dpt);
if (Dpt.WWW[0])
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
Dpt.WWW,The_ClassDatN[Gbl.Prefs.Theme]);
Dpt.WWW,The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Dpt.FullName);
if (Dpt.WWW[0])
HTM_A_End ();
@ -3460,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Office;
/***** Office *****/
@ -3470,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 LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
HTM_Txt (UsrDat->Tch.Office);
HTM_TD_End ();
@ -3484,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Phone;
/***** Office phone *****/
@ -3494,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 LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
if (ShowData)
{
HTM_A_Begin ("href=\"tel:%s\" class=\"%s\"",
UsrDat->Tch.OfficePhone,The_ClassDatN[Gbl.Prefs.Theme]);
UsrDat->Tch.OfficePhone,The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (UsrDat->Tch.OfficePhone);
HTM_A_End ();
}
@ -3774,7 +3774,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/* Label */
Frm_LabelColumn ("REC_C1_BOT RM","InsCtyCod",
Str_BuildStringStr ("%s*",Txt_Country));
Str_BuildString ("%s*",Txt_Country));
Str_FreeStrings ();
/* Data */
@ -3806,7 +3806,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/* Label */
Frm_LabelColumn ("REC_C1_BOT RM","OthInsCod",
Str_BuildStringStr ("%s*",Txt_Institution));
Str_BuildString ("%s*",Txt_Institution));
Str_FreeStrings ();
/* Data */
@ -3847,7 +3847,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/* Label */
Frm_LabelColumn ("REC_C1_BOT RM","OthCtrCod",
Str_BuildStringStr ("%s*",Txt_Center));
Str_BuildString ("%s*",Txt_Center));
Str_FreeStrings ();
/* Data */
@ -3886,7 +3886,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_BuildString ("%s*",Txt_Department));
Str_FreeStrings ();
/* Data */

View File

@ -124,7 +124,7 @@ void Rep_ReqMyUsageReport (void)
Frm_BeginForm (ActSeeMyUsgRep);
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Report_of_use_of_PLATFORM,
Box_BoxBegin (NULL,Str_BuildString (Txt_Report_of_use_of_PLATFORM,
Cfg_PLATFORM_SHORT_NAME),
NULL,NULL,
Hlp_ANALYTICS_Report,Box_NOT_CLOSABLE);
@ -227,12 +227,13 @@ static void Rep_CreateMyUsageReport (struct Rep_Report *Report)
static void Rep_PutLinkToMyUsageReport (struct Rep_Report *Report)
{
extern const char *Hlp_ANALYTICS_Report;
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_Report_of_use_of_PLATFORM;
extern const char *Txt_Report;
extern const char *Txt_This_link_will_remain_active_as_long_as_your_user_s_account_exists;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Report_of_use_of_PLATFORM,
Box_BoxBegin (NULL,Str_BuildString (Txt_Report_of_use_of_PLATFORM,
Cfg_PLATFORM_SHORT_NAME),
NULL,NULL,
Hlp_ANALYTICS_Report,Box_NOT_CLOSABLE);
@ -252,7 +253,7 @@ static void Rep_PutLinkToMyUsageReport (struct Rep_Report *Report)
HTM_A_End ();
HTM_DIV_End ();
HTM_DIV_Begin ("class=\"DAT_LIGHT\"");
HTM_DIV_Begin ("class=\"%s\"",The_ClassDatLight[Gbl.Prefs.Theme]);
HTM_Txt (Txt_This_link_will_remain_active_as_long_as_your_user_s_account_exists);
HTM_DIV_End ();
@ -268,7 +269,7 @@ 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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_User[Usr_NUM_SEXS];
extern const char *Txt_Date;
@ -276,7 +277,7 @@ static void Rep_TitleReport (struct Rep_CurrentTimeUTC *CurrentTimeUTC)
/***** User *****/
HTM_TxtColonNBSP (Txt_User[Gbl.Usrs.Me.UsrDat.Sex]);
HTM_SPAN_Begin ("class=\"DAT_N_BOLD\"");
HTM_SPAN_Begin ("class=\"%s BOLD\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Gbl.Usrs.Me.UsrDat.FullName);
HTM_SPAN_End ();
@ -285,7 +286,7 @@ static void Rep_TitleReport (struct Rep_CurrentTimeUTC *CurrentTimeUTC)
{
HTM_BR ();
HTM_TxtColonNBSP (Txt_Date);
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtF ("%s %s UTC",CurrentTimeUTC->StrDate,
CurrentTimeUTC->StrTime);
HTM_SPAN_End ();

View File

@ -275,7 +275,7 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
/***** Begin box *****/
Box_BoxBegin (NULL,Str_BuildStringStr (Txt_Statistics_of_visits_to_the_course_X,
Box_BoxBegin (NULL,Str_BuildString (Txt_Statistics_of_visits_to_the_course_X,
Gbl.Hierarchy.Crs.ShrtName),
NULL,NULL,
Hlp_ANALYTICS_Visits_visits_to_course,Box_NOT_CLOSABLE);
@ -1047,7 +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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Show_previous_X_clicks;
extern const char *Txt_PAGES_Previous;
extern const char *Txt_Clicks;
@ -1132,8 +1132,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
HTM_TD_Begin ("class=\"LM\"");
if (FirstRow > 1)
{
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringLong (Txt_Show_previous_X_clicks,
(long) Stats->RowsPerPage),
HTM_BUTTON_SUBMIT_Begin (Str_BuildString (Txt_Show_previous_X_clicks,
Stats->RowsPerPage),
"BT_LINK TIT_TBL",NULL);
Str_FreeStrings ();
HTM_STRONG_Begin ();
@ -1146,7 +1146,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
Frm_EndForm ();
/* Write number of current page */
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_STRONG_Begin ();
HTM_TxtF ("%s %u-%u %s %u (%s %u %s %u)",
Txt_Clicks,
@ -1170,8 +1170,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
HTM_TD_Begin ("class=\"RM\"");
if (LastRow < NumHits)
{
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringLong (Txt_Show_next_X_clicks,
(long) Stats->RowsPerPage),
HTM_BUTTON_SUBMIT_Begin (Str_BuildString (Txt_Show_next_X_clicks,
Stats->RowsPerPage),
"BT_LINK TIT_TBL",NULL);
Str_FreeStrings ();
HTM_STRONG_Begin ();

View File

@ -2667,7 +2667,7 @@ char *Str_BuildGoToMsg (const char *Where)
{
extern const char *Txt_Go_to_X;
return Str_BuildStringStr (Txt_Go_to_X,Where);
return Str_BuildString (Txt_Go_to_X,Where);
}
/*****************************************************************************/
@ -2686,58 +2686,33 @@ static struct
// Str_FreeStrings() must be called after calling these functions
// fmt must be a string including "%s"
char *Str_BuildStringStr (const char *fmt,const char *Str)
char *Str_BuildString (const char *fmt,...)
{
char *Ptr;
va_list ap;
int NumBytesPrinted;
char *Ptr = "";
if (Str_Strings.Num >= Str_MAX_STRINGS)
Err_NotEnoughMemoryExit ();
if (fmt)
{
if (fmt[0])
{
if (Str_Strings.Num >= Str_MAX_STRINGS)
Err_NotEnoughMemoryExit ();
if (Str_Strings.Str[Str_Strings.Num] != NULL)
Err_NotEnoughMemoryExit ();
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++;
va_start (ap,fmt);
NumBytesPrinted = vasprintf (&Str_Strings.Str[Str_Strings.Num],fmt,ap);
va_end (ap);
if (NumBytesPrinted < 0) // -1 if no memory or any other error
Err_NotEnoughMemoryExit ();
return Ptr;
}
Ptr = Str_Strings.Str[Str_Strings.Num];
// fmt must be a string including "%ld"
char *Str_BuildStringLong (const char *fmt,long Num)
{
char *Ptr;
if (Str_Strings.Num >= Str_MAX_STRINGS)
Err_NotEnoughMemoryExit ();
if (Str_Strings.Str[Str_Strings.Num] != NULL)
Err_NotEnoughMemoryExit ();
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)
{
char *Ptr;
if (Str_Strings.Num >= Str_MAX_STRINGS)
Err_NotEnoughMemoryExit ();
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++;
Str_Strings.Num++;
}
}
return Ptr;
}

View File

@ -147,9 +147,7 @@ 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);
char *Str_BuildString (const char *fmt,...);
void Str_FreeStrings (void);
#endif

View File

@ -425,6 +425,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
{
extern const char *Hlp_ASSESSMENT_Surveys;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_Survey;
extern const char *Txt_View_survey;
extern const char *Txt_Number_of_questions;
@ -673,7 +674,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
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 ? The_ClassDat[Gbl.Prefs.Theme] :
"DAT_LIGHT");
The_ClassDatLight[Gbl.Prefs.Theme]);
HTM_Txt (Txt);
HTM_DIV_End ();
HTM_TD_End ();

View File

@ -648,7 +648,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-up.svg",
Str_BuildStringStr (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_up_X_and_its_subsections :
Str_BuildString (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_up_X_and_its_subsections :
Txt_Move_up_X,
StrItemCod));
Str_FreeStrings ();
@ -667,7 +667,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-down.svg",
Str_BuildStringStr (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_down_X_and_its_subsections :
Str_BuildString (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_down_X_and_its_subsections :
Txt_Move_down_X,
StrItemCod));
Str_FreeStrings ();
@ -685,7 +685,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-left.svg",
Str_BuildStringStr (Txt_Increase_level_of_X,
Str_BuildString (Txt_Increase_level_of_X,
StrItemCod));
Str_FreeStrings ();
}
@ -703,7 +703,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
NULL,
Syl_PutParamNumItem,&Syllabus->ParamNumItem,
"arrow-right.svg",
Str_BuildStringStr (Txt_Decrease_level_of_X,
Str_BuildString (Txt_Decrease_level_of_X,
StrItemCod));
Str_FreeStrings ();
}

View File

@ -258,7 +258,7 @@ static void SysCfg_Map (void)
static void SysCfg_Platform (void)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Platform;
/***** Institution *****/
@ -268,7 +268,7 @@ static void SysCfg_Platform (void)
Frm_LabelColumn ("RT",NULL,Txt_Platform);
/* Data */
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Cfg_PLATFORM_SHORT_NAME);
HTM_TD_End ();
@ -312,7 +312,7 @@ static void SysCfg_NumCtys (void)
HTM_TD_Begin ("class=\"LB\"");
Frm_BeginFormGoTo (ActSeeCty);
HTM_BUTTON_SUBMIT_Begin (Txt_Countries,
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
Str_BuildString ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
HTM_Unsigned (Cty_GetCachedNumCtysInSys ());

View File

@ -470,7 +470,7 @@ static void Tag_PutIconEnable (long TagCod,const char *TagTxt)
Frm_BeginForm (ActEnaTag);
Par_PutHiddenParamLong (NULL,"TagCod",TagCod);
Ico_PutIconLink ("eye-slash-red.svg",
Str_BuildStringStr (Txt_Tag_X_not_allowed_Click_to_allow_it,
Str_BuildString (Txt_Tag_X_not_allowed_Click_to_allow_it,
TagTxt));
Str_FreeStrings ();
Frm_EndForm ();
@ -489,7 +489,7 @@ static void Tag_PutIconDisable (long TagCod,const char *TagTxt)
Frm_BeginForm (ActDisTag);
Par_PutHiddenParamLong (NULL,"TagCod",TagCod);
Ico_PutIconLink ("eye-green.svg",
Str_BuildStringStr (Txt_Tag_X_allowed_Click_to_disable_it,
Str_BuildString (Txt_Tag_X_allowed_Click_to_disable_it,
TagTxt));
Str_FreeStrings ();
Frm_EndForm ();

View File

@ -303,6 +303,7 @@ void Tst_ReceiveTestDraft (void)
void Tst_AssessTest (void)
{
extern const char *Hlp_ASSESSMENT_Tests;
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Result;
extern const char *Txt_Test_No_X_that_you_make_in_this_course;
extern const char *Txt_Score;
@ -371,7 +372,7 @@ void Tst_AssessTest (void)
/***** Write total score and grade *****/
if (TstVis_IsVisibleTotalScore (TstCfg_GetConfigVisibility ()))
{
HTM_DIV_Begin ("class=\"DAT_N_BOLD CM\"");
HTM_DIV_Begin ("class=\"CM %s BOLD\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColonNBSP (Txt_Score);
HTM_Double2Decimals (Print.Score);
HTM_BR ();

View File

@ -1830,6 +1830,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 *The_ClassDatLight[The_NUM_THEMES];
extern const char *Txt_View_test;
MYSQL_RES *mysql_res;
unsigned NumPrints;
@ -1872,7 +1873,7 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
/* Get print data */
TstPrn_GetPrintDataByPrnCod (&Print);
ClassDat = Print.AllowTeachers ? The_ClassDat[Gbl.Prefs.Theme] :
"DAT_LIGHT";
The_ClassDatLight[Gbl.Prefs.Theme];
/* Get if I can see print result and score */
TstRes_CheckIfICanSeePrintResult (&Print,UsrDat->UsrCod,&ICanView);
@ -2057,7 +2058,7 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
struct TstPrn_NumQuestions *NumTotalQsts,
double TotalScore)
{
extern const char *The_ClassDatN[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Visible_tests;
bool ICanViewTotalScore;
@ -2088,35 +2089,35 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
/***** Row title *****/
HTM_TD_Begin ("colspan=\"2\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[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=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[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=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumPrints)
HTM_Unsigned (NumTotalQsts->NotBlank);
HTM_TD_End ();
/***** Write total number of blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (NumPrints)
HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank);
HTM_TD_End ();
/***** Write total score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (ICanViewTotalScore)
{
HTM_Double2Decimals (TotalScore);
@ -2127,7 +2128,7 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
/***** Write average score per question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (ICanViewTotalScore)
HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All :
0.0);
@ -2135,14 +2136,14 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
/***** Write grade over Tst_SCORE_MAX *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
if (ICanViewTotalScore)
TstPrn_ComputeAndShowGrade (NumTotalQsts->All,TotalScore,Tst_SCORE_MAX);
HTM_TD_End ();
/***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_End ();
/***** End row *****/
@ -2157,7 +2158,7 @@ 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 *The_ClassDatStrong[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];
@ -2221,7 +2222,7 @@ void TstPrn_ShowOnePrint (void)
/* User */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_ROLES_SINGUL_Abc[Gbl.Usrs.Other.UsrDat.Roles.InCurrentCrs][Gbl.Usrs.Other.UsrDat.Sex]);
HTM_TD_End ();
@ -2250,7 +2251,7 @@ void TstPrn_ShowOnePrint (void)
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_START_END_TIME[StartEndTime]);
HTM_TD_End ();
@ -2269,7 +2270,7 @@ void TstPrn_ShowOnePrint (void)
/***** Number of questions *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Questions);
HTM_TD_End ();
@ -2282,7 +2283,7 @@ void TstPrn_ShowOnePrint (void)
/***** Number of answers *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Answers);
HTM_TD_End ();
@ -2295,7 +2296,7 @@ void TstPrn_ShowOnePrint (void)
/***** Score *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Score);
HTM_TD_End ();
@ -2317,7 +2318,7 @@ void TstPrn_ShowOnePrint (void)
/***** Grade *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Grade);
HTM_TD_End ();
@ -2337,7 +2338,7 @@ void TstPrn_ShowOnePrint (void)
/***** Tags present in this test *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TxtColon (Txt_Tags);
HTM_TD_End ();

View File

@ -13949,46 +13949,46 @@ const char *Txt_FORUM_posts =
"posts";
#endif
const char *Txt_FORUM_Post_X_allowed = // Warning: it is very important to include %ld in the following sentences
const char *Txt_FORUM_Post_X_allowed = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Comentario %ld permitido."; // Necessita traduccio
"Comentario %u permitido."; // Necessita traduccio
#elif L==2 // de
"Post %ld allowed."; // Need Übersetzung
"Post %u allowed."; // Need Übersetzung
#elif L==3 // en
"Post %ld allowed.";
"Post %u allowed.";
#elif L==4 // es
"Comentario %ld permitido.";
"Comentario %u permitido.";
#elif L==5 // fr
"Post %ld allowed."; // Besoin de traduction
"Post %u allowed."; // Besoin de traduction
#elif L==6 // gn
"Comentario %ld permitido."; // Okoteve traducción
"Comentario %u permitido."; // Okoteve traducción
#elif L==7 // it
"Post %ld autorizzato.";
"Post %u autorizzato.";
#elif L==8 // pl
"Post %ld dozwolone.";
"Post %u dozwolone.";
#elif L==9 // pt
"Post %ld permitido.";
"Post %u permitido.";
#endif
const char *Txt_FORUM_Post_X_allowed_Click_to_ban_it = // Warning: it is very important to include %ld in the following sentences
const char *Txt_FORUM_Post_X_allowed_Click_to_ban_it = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Comentario %ld permitido. Pulse para censurarlo."; // Necessita traduccio
"Comentario %u permitido. Pulse para censurarlo."; // Necessita traduccio
#elif L==2 // de
"Post %ld allowed. Click to ban it."; // Need Übersetzung
"Post %u allowed. Click to ban it."; // Need Übersetzung
#elif L==3 // en
"Post %ld allowed. Click to ban it.";
"Post %u allowed. Click to ban it.";
#elif L==4 // es
"Comentario %ld permitido. Pulse para censurarlo.";
"Comentario %u permitido. Pulse para censurarlo.";
#elif L==5 // fr
"Post %ld allowed. Click to ban it."; // Besoin de traduction
"Post %u allowed. Click to ban it."; // Besoin de traduction
#elif L==6 // gn
"Comentario %ld permitido. Pulse para censurarlo."; // Okoteve traducción
"Comentario %u permitido. Pulse para censurarlo."; // Okoteve traducción
#elif L==7 // it
"Post %ld autorizzato. Clicca per censurarlo.";
"Post %u autorizzato. Clicca per censurarlo.";
#elif L==8 // pl
"Post %ld dozwolone. Kliknij, aby to zakazac.";
"Post %u dozwolone. Kliknij, aby to zakazac.";
#elif L==9 // pt
"Post %ld permitido. Clique para censur&aacute;-lo.";
"Post %u permitido. Clique para censur&aacute;-lo.";
#endif
const char *Txt_FORUM_Post_and_thread_removed =
@ -14033,46 +14033,46 @@ const char *Txt_FORUM_Post_banned =
"Post n&atilde;o permitido.";
#endif
const char *Txt_FORUM_Post_X_banned = // Warning: it is very important to include %ld in the following sentences
const char *Txt_FORUM_Post_X_banned = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Comentario %ld no permitido"; // Necessita traduccio
"Comentario %u no permitido"; // Necessita traduccio
#elif L==2 // de
"Post %ld banned."; // Need Übersetzung
"Post %u banned."; // Need Übersetzung
#elif L==3 // en
"Post %ld banned.";
"Post %u banned.";
#elif L==4 // es
"Comentario %ld no permitido";
"Comentario %u no permitido";
#elif L==5 // fr
"Post %ld banned."; // Besoin de traduction
"Post %u banned."; // Besoin de traduction
#elif L==6 // gn
"Comentario %ld no permitido"; // Okoteve traducción
"Comentario %u no permitido"; // Okoteve traducción
#elif L==7 // it
"Post %ld censurato.";
"Post %u censurato.";
#elif L==8 // pl
"Post %ld zakazany.";
"Post %u zakazany.";
#elif L==9 // pt
"Post %ld n&atilde;o permitido.";
"Post %u n&atilde;o permitido.";
#endif
const char *Txt_FORUM_Post_X_banned_Click_to_unban_it = // Warning: it is very important to include %ld in the following sentences
const char *Txt_FORUM_Post_X_banned_Click_to_unban_it = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Comentario %ld no permitido. Pulse para permitirlo."; // Necessita traduccio
"Comentario %u no permitido. Pulse para permitirlo."; // Necessita traduccio
#elif L==2 // de
"Post %ld banned. Click to unban it."; // Need Übersetzung
"Post %u banned. Click to unban it."; // Need Übersetzung
#elif L==3 // en
"Post %ld banned. Click to unban it.";
"Post %u banned. Click to unban it.";
#elif L==4 // es
"Comentario %ld no permitido. Pulse para permitirlo.";
"Comentario %u no permitido. Pulse para permitirlo.";
#elif L==5 // fr
"Post %ld banned. Click to unban it."; // Besoin de traduction
"Post %u banned. Click to unban it."; // Besoin de traduction
#elif L==6 // gn
"Comentario %ld no permitido. Pulse para permitirlo."; // Okoteve traducción
"Comentario %u no permitido. Pulse para permitirlo."; // Okoteve traducción
#elif L==7 // it
"Post %ld censurato. Clicca per autorizzarlo.";
"Post %u censurato. Clicca per autorizzarlo.";
#elif L==8 // pl
"Post %ld zakazany.Kliknij, aby to odbanowac.";
"Post %u zakazany.Kliknij, aby to odbanowac.";
#elif L==9 // pt
"Post %ld n&atilde;o permitido. Clique para permiti-lo.";
"Post %u n&atilde;o permitido. Clique para permiti-lo.";
#endif
const char *Txt_FORUM_Post_sent =
@ -41073,46 +41073,46 @@ const char *Txt_See_notifications =
"Ver notifica&ccedil;&otilde;es";
#endif
const char *Txt_See_only_the_latest_X_COMMENTS = // Warning: it is very important to include %ld in the following sentences
const char *Txt_See_only_the_latest_X_COMMENTS = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Veure nom&eacute;s els %ld &uacute;ltims";
"Veure nom&eacute;s els %u &uacute;ltims";
#elif L==2 // de
"Nur die neuesten %ld anzeigen";
"Nur die neuesten %u anzeigen";
#elif L==3 // en
"See only the %ld latest";
"See only the %u latest";
#elif L==4 // es
"Ver s&oacute;lo los %ld &uacute;ltimos";
"Ver s&oacute;lo los %u &uacute;ltimos";
#elif L==5 // fr
"Voir seulement les %ld derni&egrave;res";
"Voir seulement les %u derni&egrave;res";
#elif L==6 // gn
"Ver s&oacute;lo los %ld &uacute;ltimos"; // Okoteve traducción
"Ver s&oacute;lo los %u &uacute;ltimos"; // Okoteve traducción
#elif L==7 // it
"Vedi solo le ultime %ld";
"Vedi solo le ultime %u";
#elif L==8 // pl
"Zobacz tylko najnowsze %ld";
"Zobacz tylko najnowsze %u";
#elif L==9 // pt
"Ver apenas os %ld &uacute;ltimos";
"Ver apenas os %u &uacute;ltimos";
#endif
const char *Txt_See_the_previous_X_COMMENTS = // Warning: it is very important to include %ld in the following sentences
const char *Txt_See_the_previous_X_COMMENTS = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Veure els %ld anteriors";
"Veure els %u anteriors";
#elif L==2 // de
"Siehe die vorherigen %ld";
"Siehe die vorherigen %u";
#elif L==3 // en
"See the previous %ld";
"See the previous %u";
#elif L==4 // es
"Ver los %ld anteriores";
"Ver los %u anteriores";
#elif L==5 // fr
"Voir les %ld pr&eacute;c&eacute;dents";
"Voir les %u pr&eacute;c&eacute;dents";
#elif L==6 // gn
"Ver los %ld anteriores"; // Okoteve traducción
"Ver los %u anteriores"; // Okoteve traducción
#elif L==7 // it
"Vedi i precedente %ld";
"Vedi i precedente %u";
#elif L==8 // pl
"Zobacz poprzednie %ld";
"Zobacz poprzednie %u";
#elif L==9 // pt
"Ver os %ld anteriores";
"Ver os %u anteriores";
#endif
const char *Txt_Select_another_country =
@ -42531,46 +42531,46 @@ const char *Txt_Show_more_recipients =
"Ver mais destinat&aacute;rios";
#endif
const char *Txt_Show_next_X_clicks = // Warning: it is very important to include %ld in the following sentences
const char *Txt_Show_next_X_clicks = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Mostrar %ld clics posteriores"; // Necessita traduccio
"Mostrar %u clics posteriores"; // Necessita traduccio
#elif L==2 // de
"Show next %ld clicks"; // Need Übersetzung
"Show next %u clicks"; // Need Übersetzung
#elif L==3 // en
"Show next %ld clicks";
"Show next %u clicks";
#elif L==4 // es
"Mostrar %ld clics posteriores";
"Mostrar %u clics posteriores";
#elif L==5 // fr
"Show next %ld clicks"; // Besoin de traduction
"Show next %u clicks"; // Besoin de traduction
#elif L==6 // gn
"Mostrar %ld clics posteriores"; // Okoteve traducción
"Mostrar %u clics posteriores"; // Okoteve traducción
#elif L==7 // it
"Mostra %ld scatti seguenti";
"Mostra %u scatti seguenti";
#elif L==8 // pl
"Show next %ld clicks"; // Potrzebujesz tlumaczenie
"Show next %u clicks"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Mostrar %ld cliques subsequentes";
"Mostrar %u cliques subsequentes";
#endif
const char *Txt_Show_previous_X_clicks = // Warning: it is very important to include %ld in the following sentences
const char *Txt_Show_previous_X_clicks = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Mostrar %ld clics anteriores"; // Necessita traduccio
"Mostrar %u clics anteriores"; // Necessita traduccio
#elif L==2 // de
"Show previous %ld clicks"; // Need Übersetzung
"Show previous %u clicks"; // Need Übersetzung
#elif L==3 // en
"Show previous %ld clicks";
"Show previous %u clicks";
#elif L==4 // es
"Mostrar %ld clics anteriores";
"Mostrar %u clics anteriores";
#elif L==5 // fr
"Show previous %ld clicks"; // Besoin de traduction
"Show previous %u clicks"; // Besoin de traduction
#elif L==6 // gn
"Mostrar %ld clics anteriores"; // Okoteve traducción
"Mostrar %u clics anteriores"; // Okoteve traducción
#elif L==7 // it
"Mostra %ld scatti precedenti";
"Mostra %u scatti precedenti";
#elif L==8 // pl
"Show previous %ld clicks"; // Potrzebujesz tlumaczenie
"Show previous %u clicks"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Mostrar %ld cliques anteriores";
"Mostrar %u cliques anteriores";
#endif
const char *Txt_Show_questions =
@ -52642,25 +52642,25 @@ const char *Txt_TIMELINE_Favourite =
"Favorito";
#endif
const char *Txt_TIMELINE_Favourited_by_X_USERS = // Warning: it is very important to include %ld in the following sentences
const char *Txt_TIMELINE_Favourited_by_X_USERS = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Marcat com favorit per %ld";
"Marcat com favorit per %u";
#elif L==2 // de
"Von %ld vorgemerkt";
"Von %u vorgemerkt";
#elif L==3 // en
"Favourited by %ld";
"Favourited by %u";
#elif L==4 // es
"Marcado como favorito por %ld";
"Marcado como favorito por %u";
#elif L==5 // fr
"Ajout&eacute; aux favoris par %ld";
"Ajout&eacute; aux favoris par %u";
#elif L==6 // gn
"Marcado como favorito por %ld"; // Okoteve traducción
"Marcado como favorito por %u"; // Okoteve traducción
#elif L==7 // it
"Preferiti da %ld";
"Preferiti da %u";
#elif L==8 // pl
"Dodane do ulubionych przez %ld";
"Dodane do ulubionych przez %u";
#elif L==9 // pt
"Marcado como favorito por %ld";
"Marcado como favorito por %u";
#endif
const char *Txt_TIMELINE_Not_favourited_by_anyone = // No favourited
@ -53242,25 +53242,25 @@ const char *Txt_TIMELINE_Shared =
"Compartilhado";
#endif
const char *Txt_TIMELINE_Shared_by_X_USERS = // Warning: it is very important to include %ld in the following sentences
const char *Txt_TIMELINE_Shared_by_X_USERS = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Compartit per %ld";
"Compartit per %u";
#elif L==2 // de
"Von %ld geteilt";
"Von %u geteilt";
#elif L==3 // en
"Shared by %ld";
"Shared by %u";
#elif L==4 // es
"Compartido por %ld";
"Compartido por %u";
#elif L==5 // fr
"Partag&eacute; par %ld";
"Partag&eacute; par %u";
#elif L==6 // gn
"Compartido por %ld"; // Okoteve traducción
"Compartido por %u"; // Okoteve traducción
#elif L==7 // it
"Condiviso da %ld";
"Condiviso da %u";
#elif L==8 // pl
"Udost&eogon;pnione przez %ld";
"Udost&eogon;pnione przez %u";
#elif L==9 // pt
"Compartilhado por %ld";
"Compartilhado por %u";
#endif
const char *Txt_TIMETABLE_CLASS_TYPES[Tmt_NUM_CLASS_TYPES] =

View File

@ -327,15 +327,37 @@ const char *The_ClassDat[The_NUM_THEMES] =
[The_THEME_DARK ] = "DAT_DARK",
};
const char *The_ClassDatN[The_NUM_THEMES] =
const char *The_ClassDatStrong[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",
[The_THEME_WHITE ] = "DAT_STRONG_WHITE",
[The_THEME_GREY ] = "DAT_STRONG_GREY",
[The_THEME_PURPLE] = "DAT_STRONG_PURPLE",
[The_THEME_BLUE ] = "DAT_STRONG_BLUE",
[The_THEME_YELLOW] = "DAT_STRONG_YELLOW",
[The_THEME_PINK ] = "DAT_STRONG_PINK",
[The_THEME_DARK ] = "DAT_STRONG_DARK",
};
const char *The_ClassDatLight[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_LIGHT_WHITE",
[The_THEME_GREY ] = "DAT_LIGHT_GREY",
[The_THEME_PURPLE] = "DAT_LIGHT_PURPLE",
[The_THEME_BLUE ] = "DAT_LIGHT_BLUE",
[The_THEME_YELLOW] = "DAT_LIGHT_YELLOW",
[The_THEME_PINK ] = "DAT_LIGHT_PINK",
[The_THEME_DARK ] = "DAT_LIGHT_DARK",
};
const char *The_ClassBgHighlight[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "BG_HIGHLIGHT_WHITE",
[The_THEME_GREY ] = "BG_HIGHLIGHT_GREY",
[The_THEME_PURPLE] = "BG_HIGHLIGHT_PURPLE",
[The_THEME_BLUE ] = "BG_HIGHLIGHT_BLUE",
[The_THEME_YELLOW] = "BG_HIGHLIGHT_YELLOW",
[The_THEME_PINK ] = "BG_HIGHLIGHT_PINK",
[The_THEME_DARK ] = "BG_HIGHLIGHT_DARK",
};
/*****************************************************************************/

View File

@ -278,7 +278,7 @@ void Tml_ShowTimelineUsrHighlighting (struct Tml_Timeline *Timeline,long NotCod)
/***** Show timeline *****/
Tml_ShowTimeline (Timeline,NotCod,
Str_BuildStringStr (Txt_Timeline_OF_A_USER,
Str_BuildString (Txt_Timeline_OF_A_USER,
Gbl.Usrs.Other.UsrDat.FrstName));
Str_FreeStrings ();
@ -517,13 +517,15 @@ static void Tml_PutHiddenList (const char *Id)
void Tml_WriteDateTime (time_t TimeUTC)
{
extern const char *The_ClassDatLight[The_NUM_THEMES];
char IdDateTime[Frm_MAX_BYTES_ID + 1];
/***** Create unique Id *****/
Frm_SetUniqueId (IdDateTime);
/***** Container where the date-time is written *****/
HTM_DIV_Begin ("id=\"%s\" class=\"Tml_RIGHT_TIME DAT_LIGHT\"",IdDateTime);
HTM_DIV_Begin ("id=\"%s\" class=\"Tml_RIGHT_TIME %s\"",
IdDateTime,The_ClassDatLight[Gbl.Prefs.Theme]);
HTM_DIV_End ();
/***** Script to write date and time in browser local time *****/

View File

@ -487,7 +487,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_BuildString (*Link[ConExp].Text,NumComms));
Str_FreeStrings ();
/* End container */
@ -612,6 +612,7 @@ static void Tml_Com_WriteAuthorTimeAndContent (struct Tml_Com_Comment *Com,
static void Tml_Com_WriteAuthorName (const struct UsrData *UsrDat) // Author
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
@ -623,7 +624,9 @@ static void Tml_Com_WriteAuthorName (const struct UsrData *UsrDat) // Author
/* Author's name */
HTM_BUTTON_SUBMIT_Begin (Usr_ItsMe (UsrDat->UsrCod) ? Txt_My_public_profile :
Txt_Another_user_s_profile,
"BT_LINK Tml_COM_AUTHOR Tml_COMM_AUTHOR_WIDTH DAT_BOLD",NULL);
Str_BuildString ("Tml_COM_AUTHOR Tml_COMM_AUTHOR_WIDTH BT_LINK %s BOLD",
The_ClassDat[Gbl.Prefs.Theme]),
NULL);
HTM_Txt (UsrDat->FullName);
HTM_BUTTON_End ();

View File

@ -340,8 +340,8 @@ void Tml_Frm_FormToShowHiddenComms (long NotCod,
/* Put icon and text with link to show the first hidden comments */
HTM_BUTTON_SUBMIT_Begin (NULL,The_ClassFormLinkInBox[Gbl.Prefs.Theme],NULL);
Ico_PutIconTextLink ("angle-up.svg",
Str_BuildStringLong (Txt_See_the_previous_X_COMMENTS,
(long) NumInitialComms));
Str_BuildString (Txt_See_the_previous_X_COMMENTS,
NumInitialComms));
Str_FreeStrings ();
HTM_BUTTON_End ();

View File

@ -316,13 +316,16 @@ void Tml_Not_ShowAuthorPhoto (struct UsrData *UsrDat,bool FormUnique)
static void Tml_Not_WriteAuthorTimeAndContent (const struct Tml_Not_Note *Not,
const struct UsrData *UsrDat)
{
extern const char *The_ClassDatStrong[The_NUM_THEMES];
/***** Begin top container *****/
HTM_DIV_Begin ("class=\"Tml_RIGHT_CONT Tml_RIGHT_WIDTH\"");
/***** Write author's full name *****/
Tml_Not_WriteAuthorName (UsrDat,
"BT_LINK Tml_RIGHT_AUTHOR"
" Tml_RIGHT_AUTHOR_WIDTH DAT_N_BOLD");
Str_BuildString ("Tml_RIGHT_AUTHOR Tml_RIGHT_AUTHOR_WIDTH BT_LINK %s BOLD",
The_ClassDatStrong[Gbl.Prefs.Theme]));
Str_FreeStrings ();
/***** Write date and time *****/
Tml_WriteDateTime (Not->DateTimeUTC);
@ -683,7 +686,7 @@ static void Tml_Not_PutFormGoToAction (const struct Tml_Not_Note *Not,
/***** Icon and link to go to action *****/
/* Begin button */
HTM_BUTTON_SUBMIT_Begin (Txt_TIMELINE_NOTE[Not->Type],
Str_BuildStringStr ("BT_LINK %s ICO_HIGHLIGHT",
Str_BuildString ("BT_LINK %s ICO_HIGHLIGHT",
The_ClassFormInBoxBold[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();

View File

@ -165,6 +165,7 @@ void Tml_Pst_PutPhotoAndFormToWriteNewPost (struct Tml_Timeline *Timeline)
static void Tml_Pst_PutFormToWriteNewPost (struct Tml_Timeline *Timeline)
{
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_New_TIMELINE_post;
/***** Begin container *****/
@ -172,8 +173,9 @@ static void Tml_Pst_PutFormToWriteNewPost (struct Tml_Timeline *Timeline)
/***** Author name *****/
Tml_Not_WriteAuthorName (&Gbl.Usrs.Me.UsrDat,
"BT_LINK Tml_RIGHT_AUTHOR"
" Tml_RIGHT_AUTHOR_WIDTH DAT_N_BOLD");
Str_BuildString ("Tml_RIGHT_AUTHOR Tml_RIGHT_AUTHOR_WIDTH BT_LINK %s BOLD",
The_ClassDatStrong[Gbl.Prefs.Theme]));
Str_FreeStrings ();
/***** Form to write the post *****/
/* Begin container */

View File

@ -351,7 +351,7 @@ static void Tml_Usr_PutDisabledIconFavSha (Tml_Usr_FavSha_t FavSha,
if (NumUsrs)
{
Ico_PutDivIcon ("Tml_ICO_DISABLED",Ico[FavSha].Icon,
Str_BuildStringLong (*Ico[FavSha].Title.WithUsrs,(long) NumUsrs));
Str_BuildString (*Ico[FavSha].Title.WithUsrs,NumUsrs));
Str_FreeStrings ();
}
else

View File

@ -1356,7 +1356,7 @@ void Usr_WriteLoggedUsrHead (void)
{
Frm_BeginForm (ActFrmRolSes);
HTM_BUTTON_SUBMIT_Begin (Txt_Role,
Str_BuildStringStr ("BT_LINK %s",
Str_BuildString ("BT_LINK %s",
The_ClassUsr[Gbl.Prefs.Theme]),
NULL);
Str_FreeStrings ();
@ -2032,6 +2032,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 *The_ClassDatStrong[The_NUM_THEMES];
extern const char *Txt_Session;
extern const char *Txt_Role;
extern const char *Txt_You_are_now_LOGGED_IN_as_X;
@ -2057,7 +2058,7 @@ void Usr_ShowFormsLogoutAndRole (void)
HTM_TxtColonNBSP (Txt_Role);
HTM_SPAN_End ();
HTM_SPAN_Begin ("class=\"DAT_N_BOLD\"");
HTM_SPAN_Begin ("class=\"%s BOLD\"",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_Txt (Txt_ROLES_SINGUL_Abc[Gbl.Usrs.Me.Role.Logged][Gbl.Usrs.Me.UsrDat.Sex]);
HTM_SPAN_End ();
}
@ -3833,6 +3834,7 @@ void Usr_ListUsersToSelect (Rol_Role_t Role,struct SelectedUsrs *SelectedUsrs)
static void Usr_PutCheckboxToSelectAllUsers (Rol_Role_t Role,
struct SelectedUsrs *SelectedUsrs)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
char *ParamName;
@ -3840,7 +3842,9 @@ static void Usr_PutCheckboxToSelectAllUsers (Rol_Role_t Role,
HTM_TR_Begin (NULL);
HTM_TH_Begin (1,Usr_GetColumnsForSelectUsrs (),"LM LIGHT_BLUE");
HTM_TH_Begin (1,Usr_GetColumnsForSelectUsrs (),
Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]));
Str_FreeStrings ();
HTM_LABEL_Begin (NULL);
if (Usr_NameSelUnsel[Role] && Usr_ParamUsrCod[Role])
@ -3987,20 +3991,26 @@ void Usr_SetUsrDatMainFieldNames (void)
void Usr_WriteHeaderFieldsUsrDat (bool PutCheckBoxToSelectUsr)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
unsigned NumCol;
const char *ClassHeader;
HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/***** First column used for selection *****/
if (PutCheckBoxToSelectUsr)
HTM_TH (1,1,"LM LIGHT_BLUE",NULL);
HTM_TH (1,1,ClassHeader,NULL);
/***** Columns for user's data fields *****/
for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR;
NumCol++)
if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
HTM_TH (1,1,"LM LIGHT_BLUE",Usr_UsrDatMainFieldNames[NumCol]);
HTM_TH (1,1,ClassHeader,Usr_UsrDatMainFieldNames[NumCol]);
Str_FreeStrings ();
HTM_TR_End ();
}
@ -4140,9 +4150,11 @@ static void Usr_ListMainDataStds (bool PutCheckBoxToSelectUsr)
static void Usr_ListMainDataTchs (Rol_Role_t Role,
bool PutCheckBoxToSelectUsr)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
unsigned NumCol;
unsigned NumUsr;
struct UsrData UsrDat;
const char *ClassHeader;
if (Gbl.Usrs.LstUsrs[Role].NumUsrs)
{
@ -4154,16 +4166,20 @@ static void Usr_ListMainDataTchs (Rol_Role_t Role,
/* Begin row */
HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* First column used for selection */
if (PutCheckBoxToSelectUsr)
HTM_TH (1,1,"LM LIGHT_BLUE",NULL);
HTM_TH (1,1,ClassHeader,NULL);
/* Columns for the data */
for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR;
NumCol++)
if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
HTM_TH (1,1,"LM LIGHT_BLUE",Usr_UsrDatMainFieldNames[NumCol]);
HTM_TH (1,1,ClassHeader,Usr_UsrDatMainFieldNames[NumCol]);
Str_FreeStrings ();
/* End row */
HTM_TR_End ();
@ -4199,6 +4215,7 @@ static void Usr_ListMainDataTchs (Rol_Role_t Role,
void Usr_ListAllDataGsts (void)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *Txt_Photo;
extern const char *Txt_ID;
extern const char *Txt_Surname_1;
@ -4216,6 +4233,7 @@ void Usr_ListAllDataGsts (void)
unsigned NumUsr;
struct UsrData UsrDat;
const char *FieldNames[Usr_NUM_ALL_FIELDS_DATA_GST];
const char *ClassHeader;
/***** Initialize field names *****/
FieldNames[ 0] = Txt_Photo;
@ -4255,13 +4273,16 @@ void Usr_ListAllDataGsts (void)
/* Begin row */
HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* Columns for the data */
for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 :
1);
NumCol < NumColumnsCommonCard;
NumCol++)
HTM_TH (1,1,"LM LIGHT_BLUE",FieldNames[NumCol]);
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]);
Str_FreeStrings ();
/* End row */
HTM_TR_End ();
@ -4308,6 +4329,7 @@ void Usr_ListAllDataGsts (void)
void Usr_ListAllDataStds (void)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *Txt_Photo;
extern const char *Txt_ID;
extern const char *Txt_Surname_1;
@ -4329,6 +4351,7 @@ void Usr_ListAllDataStds (void)
struct UsrData UsrDat;
const char *FieldNames[Usr_NUM_ALL_FIELDS_DATA_STD];
size_t Length;
const char *ClassHeader;
/***** Initialize field names *****/
FieldNames[0] = Txt_Photo;
@ -4408,12 +4431,14 @@ void Usr_ListAllDataStds (void)
/* Begin row */
HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* 1. Columns for the data */
for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 :
1);
NumCol < NumColsCommonRecord;
NumCol++)
HTM_TH (1,1,"LM LIGHT_BLUE",FieldNames[NumCol]);
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]);
/* 2. Columns for the groups */
if (Gbl.Scope.Current == HieLvl_CRS)
@ -4424,7 +4449,7 @@ void Usr_ListAllDataStds (void)
NumGrpTyp++)
if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) // If current course tiene groups of este type
{
HTM_TH_Begin (1,1,"LM LIGHT_BLUE");
HTM_TH_Begin (1,1,ClassHeader);
HTM_TxtF ("%s&nbsp;%s",
Txt_Group,
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypName);
@ -4437,7 +4462,7 @@ void Usr_ListAllDataStds (void)
for (NumField = 0;
NumField < Gbl.Crs.Records.LstFields.Num;
NumField++)
HTM_TH (1,1,"LM LIGHT_BLUE",Gbl.Crs.Records.LstFields.Lst[NumField].Name);
HTM_TH (1,1,ClassHeader,Gbl.Crs.Records.LstFields.Lst[NumField].Name);
/* 4. Visibility type for the record fields that depend on the course, in other row */
HTM_TR_End ();
@ -4449,20 +4474,23 @@ void Usr_ListAllDataStds (void)
NumCol++)
if (NumCol != 1 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want it in listing
{
HTM_TD_Begin ("class=\"VERY_LIGHT_BLUE\"");
HTM_TD_Begin ("class=\"%s\"",ClassHeader);
HTM_TD_End ();
}
for (NumField = 0;
NumField < Gbl.Crs.Records.LstFields.Num;
NumField++)
{
HTM_TH_Begin (1,1,"LM VERY_LIGHT_BLUE");
HTM_TxtF ("(%s)",Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.Crs.Records.LstFields.Lst[NumField].Visibility]);
HTM_TH_Begin (1,1,ClassHeader);
HTM_TxtF ("(%s)",
Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.Crs.Records.LstFields.Lst[NumField].Visibility]);
HTM_TH_End ();
}
}
}
Str_FreeStrings ();
/* End row */
HTM_TR_End ();
@ -4654,18 +4682,24 @@ static void Usr_ListRowsAllDataTchs (Rol_Role_t Role,
const char *FieldNames[Usr_NUM_ALL_FIELDS_DATA_TCH],
unsigned NumColumns)
{
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
unsigned NumCol;
struct UsrData UsrDat;
unsigned NumUsr;
const char *ClassHeader;
/***** Heading row *****/
HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 :
1);
NumCol < NumColumns;
NumCol++)
HTM_TH (1,1,"LM LIGHT_BLUE",FieldNames[NumCol]);
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]);
Str_FreeStrings ();
HTM_TR_End ();
@ -4726,11 +4760,11 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,
/***** Begin box and table *****/
/* Number of users found */
Sex = Usr_GetSexOfUsrsLst (Role);
Box_BoxTableBegin (NULL,Str_BuildStringLongStr ((long) NumUsrs,
(Role == Rol_UNK) ? ((NumUsrs == 1) ? Txt_user[Sex] :
Txt_users[Sex]) :
((NumUsrs == 1) ? Txt_ROLES_SINGUL_abc[Role][Sex] :
Txt_ROLES_PLURAL_abc[Role][Sex])),
Box_BoxTableBegin (NULL,Str_BuildString ("%u %s",NumUsrs,
(Role == Rol_UNK) ? ((NumUsrs == 1) ? Txt_user[Sex] :
Txt_users[Sex]) :
((NumUsrs == 1) ? Txt_ROLES_SINGUL_abc[Role][Sex] :
Txt_ROLES_PLURAL_abc[Role][Sex])),
NULL,NULL,
NULL,Box_NOT_CLOSABLE,2);
Str_FreeStrings ();
@ -4810,6 +4844,7 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,
void Usr_ListDataAdms (void)
{
extern const char *Hlp_USERS_Administrators;
extern const char *The_ClassBgHighlight[The_NUM_THEMES];
extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_Scope;
@ -4825,6 +4860,7 @@ void Usr_ListDataAdms (void)
unsigned NumUsr;
struct UsrData UsrDat;
const char *FieldNames[Usr_NUM_MAIN_FIELDS_DATA_ADM];
const char *ClassHeader;
/***** Put contextual links *****/
switch (Gbl.Usrs.Me.Role.Logged)
@ -4908,11 +4944,15 @@ void Usr_ListDataAdms (void)
HTM_TABLE_Begin (NULL);
HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_ADM;
NumCol++)
if (NumCol != 1 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
HTM_TH (1,1,"LM LIGHT_BLUE",FieldNames[NumCol]);
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]);
Str_FreeStrings ();
HTM_TR_End ();