Version 21.71: Dec 20, 2021 Working on design of dark theme.

This commit is contained in:
acanas 2021-12-20 22:43:32 +01:00
parent 1ded003286
commit 69b39a13fd
65 changed files with 1556 additions and 1402 deletions

View File

@ -56,7 +56,7 @@ textarea
.INPUT_BLUE {} .INPUT_BLUE {}
.INPUT_YELLOW {} .INPUT_YELLOW {}
.INPUT_PINK {} .INPUT_PINK {}
.INPUT_DARK {background-color:#1f1f1f;color:white;} .INPUT_DARK {border-color:#505050;background-color:#1f1f1f;color:white;}
table table
{ {
@ -1692,9 +1692,9 @@ a:hover img.CENTER_PHOTO_SHOW
box-sizing:border-box; box-sizing:border-box;
margin:0 auto 10px auto; margin:0 auto 10px auto;
padding:10px; padding:10px;
background-image:-webkit-linear-gradient(rgba(238,216,108,0.8) 0%,rgba(248,237,149,0.8) 15%,rgba(250,240,152,0.8) 100%); /* Safari */ background-image:-webkit-linear-gradient(rgba(238,216,108,0.6) 0%,rgba(248,237,149,0.6) 15%,rgba(250,240,152,0.6) 100%); /* Safari */
background-image:linear-gradient(rgba(238,216,108,0.8) 0%,rgba(248,237,149,0.8) 15%,rgba(250,240,152,0.8) 100%); background-image:linear-gradient(rgba(238,216,108,0.6) 0%,rgba(248,237,149,0.6) 15%,rgba(250,240,152,0.6) 100%);
box-shadow:0 8px 10px -5px rgba(125,113,0,0.8); box-shadow:0 8px 10px -5px rgba(125,113,0,0.6);
text-align:left; text-align:left;
overflow:hidden; overflow:hidden;
} }
@ -1703,9 +1703,9 @@ a:hover img.CENTER_PHOTO_SHOW
box-sizing:border-box; box-sizing:border-box;
margin:0 auto 10px auto; margin:0 auto 10px auto;
padding:10px; padding:10px;
background-image:-webkit-linear-gradient(rgba(238,216,108,0.4) 0%,rgba(248,237,149,0.4) 15%,rgba(250,240,152,0.4) 100%); /* Safari */ background-image:-webkit-linear-gradient(rgba(238,216,108,0.3) 0%,rgba(248,237,149,0.3) 15%,rgba(250,240,152,0.3) 100%); /* Safari */
background-image:linear-gradient(rgba(238,216,108,0.4) 0%,rgba(248,237,149,0.4) 15%,rgba(250,240,152,0.4) 100%); background-image:linear-gradient(rgba(238,216,108,0.3) 0%,rgba(248,237,149,0.3) 15%,rgba(250,240,152,0.3) 100%);
box-shadow:0 8px 10px -5px rgba(125,113,0,0.4); box-shadow:0 8px 10px -5px rgba(125,113,0,0.3);
text-align:left; text-align:left;
overflow:hidden; overflow:hidden;
} }
@ -1859,7 +1859,7 @@ a:hover img.CENTER_PHOTO_SHOW
.ALERT_BG_BLUE {background-color:#fff8e5;} .ALERT_BG_BLUE {background-color:#fff8e5;}
.ALERT_BG_YELLOW {background-color:#fff8e5;} .ALERT_BG_YELLOW {background-color:#fff8e5;}
.ALERT_BG_PINK {background-color:#fff8e5;} .ALERT_BG_PINK {background-color:#fff8e5;}
.ALERT_BG_DARK {background-color:#a0a0a0;} .ALERT_BG_DARK {background-color:#808080;}
.ALERT_CLOSE .ALERT_CLOSE
{ {
@ -2350,8 +2350,22 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.RB {text-align:right; vertical-align:bottom;} /* Right Bottom */ .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;} .COLOR0_WHITE {background-color:#f4f2ea;}
.COLOR1 {background-color:#FBFAF7;} .COLOR0_GREY {background-color:#f4f2ea;}
.COLOR0_PURPLE {background-color:#f4f2ea;}
.COLOR0_BLUE {background-color:#f4f2ea;}
.COLOR0_YELLOW {background-color:#f4f2ea;}
.COLOR0_PINK {background-color:#f4f2ea;}
.COLOR0_DARK {background-color:#444444;}
.COLOR1_WHITE {background-color:#fbfaf7;}
.COLOR1_GREY {background-color:#fbfaf7;}
.COLOR1_PURPLE {background-color:#fbfaf7;}
.COLOR1_BLUE {background-color:#fbfaf7;}
.COLOR1_YELLOW {background-color:#fbfaf7;}
.COLOR1_PINK {background-color:#fbfaf7;}
.COLOR1_DARK {background-color:#4c4c4c;}
.LIGHT_GREEN {background-color:#C0FF40;} .LIGHT_GREEN {background-color:#C0FF40;}
.VERY_LIGHT_BLUE {background-color:#EAF3F6;} .VERY_LIGHT_BLUE {background-color:#EAF3F6;}

View File

@ -77,9 +77,6 @@ static void HTM_TBODY_BeginWithoutAttr (void);
static void HTM_TR_BeginWithoutAttr (void); static void HTM_TR_BeginWithoutAttr (void);
static void HTM_TH_BeginWithoutAttr (void);
static void HTM_TH_BeginAttr (const char *fmt,...);
static void HTM_TD_BeginWithoutAttr (void); static void HTM_TD_BeginWithoutAttr (void);
static void HTM_DIV_BeginWithoutAttr (void); static void HTM_DIV_BeginWithoutAttr (void);
@ -318,87 +315,123 @@ void HTM_TR_End (void)
/***************************** Table heading cells ***************************/ /***************************** Table heading cells ***************************/
/*****************************************************************************/ /*****************************************************************************/
void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Class,const char *Txt) void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Txt,const char *ClassFmt,...)
{
HTM_TH_Begin (RowSpan,ColSpan,Class);
if (Txt)
if (Txt[0])
HTM_Txt (Txt);
HTM_TH_End ();
}
void HTM_TH_Begin (unsigned RowSpan,unsigned ColSpan,const char *Class)
{
if (RowSpan > 1 && ColSpan > 1)
{
if (Class)
HTM_TH_BeginAttr ("rowspan=\"%u\" colspan=\"%u\" class=\"%s\"",
RowSpan,ColSpan,Class);
else
HTM_TH_BeginAttr ("rowspan=\"%u\" colspan=\"%u\"",
RowSpan,ColSpan);
}
else if (RowSpan > 1)
{
if (Class)
HTM_TH_BeginAttr ("rowspan=\"%u\" class=\"%s\"",
RowSpan,Class);
else
HTM_TH_BeginAttr ("rowspan=\"%u\"",
RowSpan);
}
else if (ColSpan > 1)
{
if (Class)
HTM_TH_BeginAttr ("colspan=\"%u\" class=\"%s\"",
ColSpan,Class);
else
HTM_TH_BeginAttr ("colspan=\"%u\"",
ColSpan);
}
else
{
if (Class)
HTM_TH_BeginAttr ("class=\"%s\"",
Class);
else
HTM_TH_BeginWithoutAttr ();
}
}
static void HTM_TH_BeginAttr (const char *fmt,...)
{ {
va_list ap; va_list ap;
int NumBytesPrinted; int NumBytesPrinted;
char *Attr; char *Attr = NULL;
if (fmt) if (ClassFmt)
{ if (ClassFmt[0])
if (fmt[0])
{ {
va_start (ap,fmt); va_start (ap,ClassFmt);
NumBytesPrinted = vasprintf (&Attr,fmt,ap); NumBytesPrinted = vasprintf (&Attr,ClassFmt,ap);
va_end (ap); va_end (ap);
if (NumBytesPrinted < 0) // -1 if no memory or any other error if (NumBytesPrinted < 0) // -1 if no memory or any other error
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
/***** Print HTML *****/
HTM_TxtF ("<th %s>",Attr);
free (Attr);
} }
if (RowSpan > 1 && ColSpan > 1)
{
if (Attr)
HTM_TxtF ("<th rowspan=\"%u\" colspan=\"%u\" class=\"%s\">",
RowSpan,ColSpan,Attr);
else else
HTM_TH_BeginWithoutAttr (); HTM_TxtF ("<th rowspan=\"%u\" colspan=\"%u\">",
RowSpan,ColSpan);
}
else if (RowSpan > 1)
{
if (Attr)
HTM_TxtF ("<th rowspan=\"%u\" class=\"%s\">",
RowSpan,Attr);
else
HTM_TxtF ("<th rowspan=\"%u\">",
RowSpan);
}
else if (ColSpan > 1)
{
if (Attr)
HTM_TxtF ("<th colspan=\"%u\" class=\"%s\">",
ColSpan,Attr);
else
HTM_TxtF ("<th colspan=\"%u\">",
ColSpan);
} }
else else
HTM_TH_BeginWithoutAttr (); {
if (Attr)
HTM_TxtF ("<th class=\"%s\">",
Attr);
else
HTM_Txt ("<th>");
}
HTM_TH_NestingLevel++; if (ClassFmt)
if (ClassFmt[0])
free (Attr);
HTM_Txt (Txt);
HTM_Txt ("</th>");
} }
static void HTM_TH_BeginWithoutAttr (void) void HTM_TH_Begin (unsigned RowSpan,unsigned ColSpan,const char *ClassFmt,...)
{ {
HTM_Txt ("<th>"); va_list ap;
int NumBytesPrinted;
char *Attr = NULL;
if (ClassFmt)
if (ClassFmt[0])
{
va_start (ap,ClassFmt);
NumBytesPrinted = vasprintf (&Attr,ClassFmt,ap);
va_end (ap);
if (NumBytesPrinted < 0) // -1 if no memory or any other error
Err_NotEnoughMemoryExit ();
}
if (RowSpan > 1 && ColSpan > 1)
{
if (Attr)
HTM_TxtF ("<th rowspan=\"%u\" colspan=\"%u\" class=\"%s\">",
RowSpan,ColSpan,Attr);
else
HTM_TxtF ("<th rowspan=\"%u\" colspan=\"%u\">",
RowSpan,ColSpan);
}
else if (RowSpan > 1)
{
if (Attr)
HTM_TxtF ("<th rowspan=\"%u\" class=\"%s\">",
RowSpan,Attr);
else
HTM_TxtF ("<th rowspan=\"%u\">",
RowSpan);
}
else if (ColSpan > 1)
{
if (Attr)
HTM_TxtF ("<th colspan=\"%u\" class=\"%s\">",
ColSpan,Attr);
else
HTM_TxtF ("<th colspan=\"%u\">",
ColSpan);
}
else
{
if (Attr)
HTM_TxtF ("<th class=\"%s\">",
Attr);
else
HTM_Txt ("<th>");
}
if (ClassFmt)
if (ClassFmt[0])
free (Attr);
HTM_TH_NestingLevel++;
} }
void HTM_TH_End (void) void HTM_TH_End (void)
@ -418,10 +451,7 @@ void HTM_TH_Empty (unsigned NumColumns)
for (NumCol = 0; for (NumCol = 0;
NumCol < NumColumns; NumCol < NumColumns;
NumCol++) NumCol++)
{ HTM_Txt ("<th></th>");
HTM_TH_BeginAttr (NULL);
HTM_TH_End ();
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -494,7 +524,7 @@ void HTM_TD_ColouredEmpty (unsigned NumColumns)
NumCol < NumColumns; NumCol < NumColumns;
NumCol++) NumCol++)
{ {
HTM_TD_Begin ("class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
} }

View File

@ -66,8 +66,8 @@ void HTM_TBODY_End (void);
void HTM_TR_Begin (const char *fmt,...); void HTM_TR_Begin (const char *fmt,...);
void HTM_TR_End (void); void HTM_TR_End (void);
void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Class,const char *Txt); void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Txt,const char *ClassFmt,...);
void HTM_TH_Begin (unsigned RowSpan,unsigned ColSpan,const char *Class); void HTM_TH_Begin (unsigned RowSpan,unsigned ColSpan,const char *ClassFmt,...);
void HTM_TH_End (void); void HTM_TH_End (void);
void HTM_TH_Empty (unsigned NumColumns); void HTM_TH_Empty (unsigned NumColumns);

View File

@ -282,15 +282,15 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Write number of user in the list *****/ /***** Write number of user in the list *****/
HTM_TD_Begin ("rowspan=\"2\" class=\"USR_LIST_NUM_N RT COLOR%u\"", HTM_TD_Begin ("rowspan=\"2\" class=\"USR_LIST_NUM_N RT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumUsr); HTM_Unsigned (NumUsr);
HTM_TD_End (); HTM_TD_End ();
/***** Write user's ID and name *****/ /***** Write user's ID and name *****/
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme], The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s:&nbsp;%s",Txt_ID,ID); HTM_TxtF ("%s:&nbsp;%s",Txt_ID,ID);
HTM_BR (); HTM_BR ();
HTM_TxtColonNBSP (Txt_Name); HTM_TxtColonNBSP (Txt_Name);
@ -309,7 +309,7 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
HTM_TD_End (); HTM_TD_End ();
/***** Button to login with this account *****/ /***** Button to login with this account *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Frm_BeginForm (ActLogInNew); Frm_BeginForm (ActLogInNew);
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
Btn_PutCreateButtonInline (Txt_Its_me); Btn_PutCreateButtonInline (Txt_Its_me);
@ -323,7 +323,7 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Courses of this user *****/ /***** Courses of this user *****/
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
UsrDat->Sex = Usr_SEX_UNKNOWN; UsrDat->Sex = Usr_SEX_UNKNOWN;
Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_TCH); Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_TCH);
Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_NET); Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_NET);

View File

@ -658,8 +658,8 @@ static void Agd_WriteHeaderListEvents (const struct Agd_Agenda *Agenda,
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"LM",Txt_Event); HTM_TH (1,1,Txt_Event ,"LM");
HTM_TH (1,1,"LM",Txt_Location); HTM_TH (1,1,Txt_Location,"LM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -814,11 +814,11 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
{ {
if (asprintf (&Id,"agd_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0) if (asprintf (&Id,"agd_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LB %s\"",
Id, Id,
AgdEvent.Hidden ? Dat_TimeStatusClassHidden[AgdEvent.TimeStatus] : AgdEvent.Hidden ? Dat_TimeStatusClassHidden[AgdEvent.TimeStatus] :
Dat_TimeStatusClassVisible[AgdEvent.TimeStatus], Dat_TimeStatusClassVisible[AgdEvent.TimeStatus],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,AgdEvent.TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,AgdEvent.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x6); true,true,true,0x6);
@ -827,17 +827,17 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
} }
/* Event */ /* Event */
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
AgdEvent.Hidden ? "ASG_TITLE_LIGHT" : AgdEvent.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE", "ASG_TITLE",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
HTM_Txt (AgdEvent.Event); HTM_Txt (AgdEvent.Event);
HTM_ARTICLE_End (); HTM_ARTICLE_End ();
HTM_TD_End (); HTM_TD_End ();
/* Location */ /* Location */
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DIV_Begin ("class=\"%s\"",AgdEvent.Hidden ? "ASG_TITLE_LIGHT" : HTM_DIV_Begin ("class=\"%s\"",AgdEvent.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE"); "ASG_TITLE");
HTM_Txt (AgdEvent.Location); HTM_Txt (AgdEvent.Location);
@ -849,7 +849,7 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
/***** Write second row of data of this event *****/ /***** Write second row of data of this event *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
switch (AgendaType) switch (AgendaType)
{ {
case Agd_MY_AGENDA_TODAY: case Agd_MY_AGENDA_TODAY:
@ -863,9 +863,10 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
HTM_TD_End (); HTM_TD_End ();
/* Text of the event */ /* Text of the event */
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DIV_Begin ("class=\"PAR %s\"",AgdEvent.Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] : HTM_DIV_Begin ("class=\"PAR %s\"",
The_ClassDat[Gbl.Prefs.Theme]); AgdEvent.Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
Agd_DB_GetEventTxt (&AgdEvent,Txt); Agd_DB_GetEventTxt (&AgdEvent,Txt);
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML

View File

@ -223,7 +223,7 @@ static void Asg_PutHeadForSeeing (struct Asg_Assignments *Assignments,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons HTM_TH (1,1,NULL,"CONTEXT_COL"); // Column for contextual icons
for (Order = Dat_STR_TIME; for (Order = Dat_STR_TIME;
Order <= Dat_END_TIME; Order <= Dat_END_TIME;
Order++) Order++)
@ -263,8 +263,8 @@ static void Asg_PutHeadForSeeing (struct Asg_Assignments *Assignments,
/* End head cell */ /* End head cell */
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"LM",Txt_Assignment); HTM_TH (1,1,Txt_Assignment,"LM");
HTM_TH (1,1,"LM",Txt_Folder); HTM_TH (1,1,Txt_Folder ,"LM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -417,7 +417,8 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\""); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
else else
{ {
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Asg_PutFormsToRemEditOneAsg (Assignments,&Asg,Anchor); Asg_PutFormsToRemEditOneAsg (Assignments,&Asg,Anchor);
} }
HTM_TD_End (); HTM_TD_End ();
@ -439,13 +440,13 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
(Asg.Open ? "DATE_GREEN" : (Asg.Open ? "DATE_GREEN" :
"DATE_RED")); "DATE_RED"));
else else
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LB %s\"",
Id, Id,
Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" : Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") : "DATE_RED_LIGHT") :
(Asg.Open ? "DATE_GREEN" : (Asg.Open ? "DATE_GREEN" :
"DATE_RED"), "DATE_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Asg.TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Asg.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x7); true,true,true,0x7);
@ -459,10 +460,10 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
Asg.Hidden ? "ASG_TITLE_LIGHT" : Asg.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE"); "ASG_TITLE");
else else
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
Asg.Hidden ? "ASG_TITLE_LIGHT" : Asg.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE", "ASG_TITLE",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
HTM_Txt (Asg.Title); HTM_Txt (Asg.Title);
HTM_ARTICLE_End (); HTM_ARTICLE_End ();
@ -473,8 +474,9 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
HTM_TD_Begin ("class=\"%s LT\"", HTM_TD_Begin ("class=\"%s LT\"",
The_ClassDat[Gbl.Prefs.Theme]); The_ClassDat[Gbl.Prefs.Theme]);
else else
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Asg.SendWork == Asg_SEND_WORK) if (Asg.SendWork == Asg_SEND_WORK)
Asg_WriteAssignmentFolder (&Asg,PrintView); Asg_WriteAssignmentFolder (&Asg,PrintView);
HTM_TD_End (); HTM_TD_End ();
@ -488,7 +490,8 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
if (PrintView) if (PrintView)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Asg_WriteAsgAuthor (&Asg); Asg_WriteAsgAuthor (&Asg);
HTM_TD_End (); HTM_TD_End ();
@ -500,7 +503,8 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
if (PrintView) if (PrintView)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Gbl.Crs.Grps.NumGrps) if (Gbl.Crs.Grps.NumGrps)
Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (&Asg); Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (&Asg);

View File

@ -257,7 +257,7 @@ static void Att_ShowAllAttEvents (struct Att_Events *Events)
/***** Table head *****/ /***** Table head *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons HTM_TH (1,1,NULL,"CONTEXT_COL"); // Column for contextual icons
for (Order = Dat_STR_TIME; for (Order = Dat_STR_TIME;
Order <= Dat_END_TIME; Order <= Dat_END_TIME;
Order++) Order++)
@ -284,8 +284,8 @@ static void Att_ShowAllAttEvents (struct Att_Events *Events)
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"LM",Txt_Event); HTM_TH (1,1,Txt_Event ,"LM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_Abc[Rol_STD][Usr_SEX_UNKNOWN]); HTM_TH (1,1,Txt_ROLES_PLURAL_Abc[Rol_STD][Usr_SEX_UNKNOWN],"RM");
HTM_TR_End (); HTM_TR_End ();
@ -470,7 +470,8 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
if (ShowOnlyThisAttEventComplete) if (ShowOnlyThisAttEventComplete)
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\""); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
else else
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
switch (Gbl.Usrs.Me.Role.Logged) switch (Gbl.Usrs.Me.Role.Logged)
{ {
case Rol_TCH: case Rol_TCH:
@ -498,13 +499,13 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
(Event->Open ? "DATE_GREEN" : (Event->Open ? "DATE_GREEN" :
"DATE_RED")); "DATE_RED"));
else else
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LB %s\"",
Id, Id,
Event->Hidden ? (Event->Open ? "DATE_GREEN_LIGHT" : Event->Hidden ? (Event->Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") : "DATE_RED_LIGHT") :
(Event->Open ? "DATE_GREEN" : (Event->Open ? "DATE_GREEN" :
"DATE_RED"), "DATE_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Event->TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Event->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x7); true,true,true,0x7);
@ -516,7 +517,7 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
if (ShowOnlyThisAttEventComplete) if (ShowOnlyThisAttEventComplete)
HTM_TD_Begin ("class=\"LT\""); HTM_TD_Begin ("class=\"LT\"");
else else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
Att_PutLinkAttEvent (Event,Txt_View_event,Event->Title, Att_PutLinkAttEvent (Event,Txt_View_event,Event->Title,
Event->Hidden ? "BT_LINK LT ASG_TITLE_LIGHT" : Event->Hidden ? "BT_LINK LT ASG_TITLE_LIGHT" :
@ -530,10 +531,10 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
Event->Hidden ? "ASG_TITLE_LIGHT" : Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE"); "ASG_TITLE");
else else
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
Event->Hidden ? "ASG_TITLE_LIGHT" : Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE", "ASG_TITLE",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (Event->NumStdsTotal); HTM_Unsigned (Event->NumStdsTotal);
HTM_TD_End (); HTM_TD_End ();
@ -546,7 +547,8 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
if (ShowOnlyThisAttEventComplete) if (ShowOnlyThisAttEventComplete)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Att_WriteAttEventAuthor (Event); Att_WriteAttEventAuthor (Event);
HTM_TD_End (); HTM_TD_End ();
@ -558,7 +560,8 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
if (ShowOnlyThisAttEventComplete) if (ShowOnlyThisAttEventComplete)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Gbl.Crs.Grps.NumGrps) if (Gbl.Crs.Grps.NumGrps)
Att_GetAndWriteNamesOfGrpsAssociatedToAttEvent (Event); Att_GetAndWriteNamesOfGrpsAssociatedToAttEvent (Event);
@ -1552,9 +1555,9 @@ static void Att_ListAttOnlyMeAsStudent (struct Att_Event *Event)
HTM_TH_Empty (3); HTM_TH_Empty (3);
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,2,"TIT_TBL LM",Txt_ROLES_SINGUL_Abc[Rol_STD][Usr_SEX_UNKNOWN]); HTM_TH (1,2,Txt_ROLES_SINGUL_Abc[Rol_STD][Usr_SEX_UNKNOWN],"TIT_TBL LM");
HTM_TH (1,1,"LM",Txt_Student_comment); HTM_TH (1,1,Txt_Student_comment ,"LM");
HTM_TH (1,1,"LM",Txt_Teachers_comment); HTM_TH (1,1,Txt_Teachers_comment ,"LM");
HTM_TR_End (); HTM_TR_End ();
@ -1632,9 +1635,9 @@ static void Att_ListAttStudents (struct Att_Events *Events,
HTM_TH_Empty (3); HTM_TH_Empty (3);
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,2,"LM",Txt_ROLES_SINGUL_Abc[Rol_STD][Usr_SEX_UNKNOWN]); HTM_TH (1,2,Txt_ROLES_SINGUL_Abc[Rol_STD][Usr_SEX_UNKNOWN],"LM");
HTM_TH (1,1,"LM",Txt_Student_comment); HTM_TH (1,1,Txt_Student_comment ,"LM");
HTM_TH (1,1,"LM",Txt_Teachers_comment); HTM_TH (1,1,Txt_Teachers_comment ,"LM");
HTM_TR_End (); HTM_TR_End ();
@ -1747,7 +1750,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
HTM_TD_End (); HTM_TD_End ();
/***** Checkbox to select user *****/ /***** Checkbox to select user *****/
HTM_TD_Begin ("class=\"CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_INPUT_CHECKBOX ("UsrCodStd",HTM_DONT_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("UsrCodStd",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Std%u\" value=\"%s\"%s%s", "id=\"Std%u\" value=\"%s\"%s%s",
NumUsr,UsrDat->EnUsrCod, NumUsr,UsrDat->EnUsrCod,
@ -1756,17 +1759,17 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
HTM_TD_End (); HTM_TD_End ();
/***** Write number of student in the list *****/ /***** Write number of student in the list *****/
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] : UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme], The_ClassDat[Gbl.Prefs.Theme],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumUsr); HTM_Unsigned (NumUsr);
HTM_TD_End (); HTM_TD_End ();
/***** Show student's photo *****/ /***** Show student's photo *****/
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
{ {
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
@ -1774,18 +1777,18 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
} }
/***** Write user's ID ******/ /***** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" : UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL); ID_WriteUsrIDs (UsrDat,NULL);
HTM_TD_End (); HTM_TD_End ();
/***** Write student's name *****/ /***** Write student's name *****/
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" : UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (UsrDat->Surname1); HTM_Txt (UsrDat->Surname1);
if (UsrDat->Surname2[0]) if (UsrDat->Surname2[0])
HTM_TxtF ("&nbsp;%s",UsrDat->Surname2); HTM_TxtF ("&nbsp;%s",UsrDat->Surname2);
@ -1793,7 +1796,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
HTM_TD_End (); HTM_TD_End ();
/***** Student's comment: write form or text */ /***** Student's comment: write form or text */
HTM_TD_Begin ("class=\"DAT_SMALL LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditStdComment) // Show with form if (ICanEditStdComment) // Show with form
{ {
HTM_TEXTAREA_Begin ("name=\"CommentStd%s\" cols=\"40\" rows=\"3\"", HTM_TEXTAREA_Begin ("name=\"CommentStd%s\" cols=\"40\" rows=\"3\"",
@ -1810,7 +1813,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
HTM_TD_End (); HTM_TD_End ();
/***** Teacher's comment: write form, text or nothing */ /***** Teacher's comment: write form, text or nothing */
HTM_TD_Begin ("class=\"DAT_SMALL LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditTchComment) // Show with form if (ICanEditTchComment) // Show with form
{ {
HTM_TEXTAREA_Begin ("name=\"CommentTch%s\" cols=\"40\" rows=\"3\"", HTM_TEXTAREA_Begin ("name=\"CommentTch%s\" cols=\"40\" rows=\"3\"",
@ -2688,8 +2691,8 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,4,"LM",Txt_Event); HTM_TH (1,4,Txt_Event ,"LM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_Abc[Rol_STD][Usr_SEX_UNKNOWN]); HTM_TH (1,1,Txt_ROLES_PLURAL_Abc[Rol_STD][Usr_SEX_UNKNOWN],"RM");
HTM_TR_End (); HTM_TR_End ();
@ -2705,8 +2708,9 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
/* Write a row for this event */ /* Write a row for this event */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s CT COLOR%u\"", HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_INPUT_CHECKBOX ("AttCods",HTM_DONT_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("AttCods",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Event%u\" value=\"%ld\"%s", "id=\"Event%u\" value=\"%ld\"%s",
NumAttEvent,Events->Lst[NumAttEvent].AttCod, NumAttEvent,Events->Lst[NumAttEvent].AttCod,
@ -2714,15 +2718,17 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
""); "");
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent); HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent);
HTM_TxtF ("%u:",NumAttEvent + 1); HTM_TxtF ("%u:",NumAttEvent + 1);
HTM_LABEL_End (); HTM_LABEL_End ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (asprintf (&Id,"att_date_start_%u",UniqueId) < 0) if (asprintf (&Id,"att_date_start_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent); HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent);
@ -2735,13 +2741,15 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
free (Id); free (Id);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Events->Lst[NumAttEvent].Title); HTM_Txt (Events->Lst[NumAttEvent].Title);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsTotal); HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsTotal);
HTM_TD_End (); HTM_TD_End ();
@ -2904,7 +2912,7 @@ static void Att_WriteTableHeadSeveralAttEvents (const struct Att_Events *Events)
HTM_TH (1,Gbl.Usrs.Listing.WithPhotos ? 4 : HTM_TH (1,Gbl.Usrs.Listing.WithPhotos ? 4 :
3, 3,
"LM",Txt_ROLES_SINGUL_Abc[Rol_USR][Usr_SEX_UNKNOWN]); Txt_ROLES_SINGUL_Abc[Rol_USR][Usr_SEX_UNKNOWN],"LM");
for (NumAttEvent = 0; for (NumAttEvent = 0;
NumAttEvent < Events->Num; NumAttEvent < Events->Num;
@ -2924,7 +2932,7 @@ static void Att_WriteTableHeadSeveralAttEvents (const struct Att_Events *Events)
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"RM",Txt_Attendance); HTM_TH (1,1,Txt_Attendance,"RM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -2952,17 +2960,17 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
/***** Write number of user in the list *****/ /***** Write number of user in the list *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] : UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme], The_ClassDat[Gbl.Prefs.Theme],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumUsr + 1); HTM_Unsigned (NumUsr + 1);
HTM_TD_End (); HTM_TD_End ();
/***** Show user's photo *****/ /***** Show user's photo *****/
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
{ {
HTM_TD_Begin ("class=\"LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
@ -2970,18 +2978,18 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
} }
/***** Write user's ID ******/ /***** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" : UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL); ID_WriteUsrIDs (UsrDat,NULL);
HTM_TD_End (); HTM_TD_End ();
/***** Write user's name *****/ /***** Write user's name *****/
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" : UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (UsrDat->Surname1); HTM_Txt (UsrDat->Surname1);
if (UsrDat->Surname2[0]) if (UsrDat->Surname2[0])
HTM_TxtF ("&nbsp;%s",UsrDat->Surname2); HTM_TxtF ("&nbsp;%s",UsrDat->Surname2);
@ -3009,8 +3017,9 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
} }
/***** Last column with the number of times this user is present *****/ /***** Last column with the number of times this user is present *****/
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumTimesPresent); HTM_Unsigned (NumTimesPresent);
HTM_TD_End (); HTM_TD_End ();
@ -3122,21 +3131,22 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
NumUsr++; NumUsr++;
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] : UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme], The_ClassDat[Gbl.Prefs.Theme],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%u:",NumUsr); HTM_TxtF ("%u:",NumUsr);
HTM_TD_End (); HTM_TD_End ();
/***** Show student's photo *****/ /***** Show student's photo *****/
HTM_TD_Begin ("colspan=\"2\" class=\"RM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"RM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TABLE_Begin (NULL); HTM_TABLE_Begin (NULL);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -3187,10 +3197,10 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
HTM_TD_ColouredEmpty (1); HTM_TD_ColouredEmpty (1);
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
Present ? "DAT_GREEN" : Present ? "DAT_GREEN" :
"DAT_RED", "DAT_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%u:",NumAttEvent + 1); HTM_TxtF ("%u:",NumAttEvent + 1);
HTM_TD_End (); HTM_TD_End ();
@ -3198,8 +3208,9 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
Att_PutCheckOrCross (Present); Att_PutCheckOrCross (Present);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (asprintf (&Id,"att_date_start_%u_%u",NumUsr,UniqueId) < 0) if (asprintf (&Id,"att_date_start_%u_%u",NumUsr,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_SPAN_Begin ("id=\"%s\"",Id); HTM_SPAN_Begin ("id=\"%s\"",Id);
@ -3224,8 +3235,9 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
HTM_TD_Begin ("class=\"BT%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"BT%u\"",Gbl.RowEvenOdd);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DL_Begin (); HTM_DL_Begin ();
if (ShowCommentStd) if (ShowCommentStd)

View File

@ -943,13 +943,13 @@ static void Ban_PutHeadBanners (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/****** Head cells *****/ /****** Head cells *****/
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"LM",Txt_Short_name); HTM_TH (1,1,Txt_Short_name,"LM");
HTM_TH (1,1,"LM",Txt_Full_name); HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,"LM",Txt_Image); HTM_TH (1,1,Txt_Image ,"LM");
HTM_TH (1,1,"LM",Txt_WWW); HTM_TH (1,1,Txt_WWW ,"LM");
/***** End table row *****/ /***** End table row *****/
HTM_TR_End (); HTM_TR_End ();

View File

@ -4577,7 +4577,8 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
/***** Indentation depending on level, icon, and file/folder name *****/ /***** Indentation depending on level, icon, and file/folder name *****/
/* Begin column */ /* Begin column */
HTM_TD_Begin ("class=\"NO_BR LM COLOR%u\" style=\"width:99%%;\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"NO_BR LM %s\" style=\"width:99%%;\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TABLE_Begin (NULL); HTM_TABLE_Begin (NULL);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -5368,10 +5369,10 @@ static void Brw_WriteDatesAssignment (void)
char *Id; char *Id;
/***** Begin table cell *****/ /***** Begin table cell *****/
HTM_TD_Begin ("colspan=\"2\" class=\"%s RM COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"%s RM %s\"",
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" : Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
"ASG_LST_DATE_RED", "ASG_LST_DATE_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Gbl.FileBrowser.Asg.AsgCod > 0) if (Gbl.FileBrowser.Asg.AsgCod > 0)
{ {
@ -5422,14 +5423,14 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
Fil_WriteFileSizeBrief ((double) FileMetadata->Size,FileSizeStr); Fil_WriteFileSizeBrief ((double) FileMetadata->Size,FileSizeStr);
else else
FileSizeStr[0] = '\0'; FileSizeStr[0] = '\0';
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd); Gbl.FileBrowser.TxtStyle,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("&nbsp;%s",FileSizeStr); HTM_TxtF ("&nbsp;%s",FileSizeStr);
HTM_TD_End (); HTM_TD_End ();
/***** Write the date *****/ /***** Write the date *****/
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd); Gbl.FileBrowser.TxtStyle,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_NBSP (); HTM_NBSP ();
if (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FILE || if (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FILE ||
Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_LINK) Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_LINK)
@ -9827,13 +9828,13 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"LM",Txt_Institution); HTM_TH (1,1,Txt_Institution,"LM");
HTM_TH (1,1,"LM",Txt_Center); HTM_TH (1,1,Txt_Center ,"LM");
HTM_TH (1,1,"LM",Txt_Degree); HTM_TH (1,1,Txt_Degree ,"LM");
HTM_TH (1,1,"LM",Txt_Course); HTM_TH (1,1,Txt_Course ,"LM");
HTM_TH (1,1,"LM",Txt_File_zone); HTM_TH (1,1,Txt_File_zone ,"LM");
HTM_TH (1,1,"LM",Txt_Document); HTM_TH (1,1,Txt_Document ,"LM");
HTM_TR_End (); HTM_TR_End ();
/***** List documents found *****/ /***** List documents found *****/

View File

@ -777,11 +777,11 @@ static void Bld_PutHeadBuildings (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"LM",Txt_Short_name); HTM_TH (1,1,Txt_Short_name,"LM");
HTM_TH (1,1,"LM",Txt_Full_name); HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,"LM",Txt_Location); HTM_TH (1,1,Txt_Location ,"LM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -129,8 +129,8 @@ void Ctr_SeeCtrWithPendingDegs (void)
/***** Wrtie heading *****/ /***** Wrtie heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Center); HTM_TH (1,1,Txt_Center ,"LM");
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION); HTM_TH (1,1,Txt_Degrees_ABBREVIATION,"RM");
HTM_TR_End (); HTM_TR_End ();
@ -1460,9 +1460,9 @@ static void Ctr_PutHeadCentersForSeeing (bool OrderSelectable)
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"LM",Txt_Place); HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION); HTM_TH (1,1,Txt_Degrees_ABBREVIATION,"RM");
HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION); HTM_TH (1,1,Txt_Courses_ABBREVIATION,"RM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR (); HTM_BR ();
@ -1492,20 +1492,20 @@ static void Ctr_PutHeadCentersForEdition (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Place); HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,"LM",Txt_Short_name_of_the_center); HTM_TH (1,1,Txt_Short_name_of_the_center,"LM");
HTM_TH (1,1,"LM",Txt_Full_name_of_the_center); HTM_TH (1,1,Txt_Full_name_of_the_center ,"LM");
HTM_TH (1,1,"LM",Txt_WWW); HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TH (1,1,"RM",Txt_Users); HTM_TH (1,1,Txt_Users ,"RM");
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION); HTM_TH (1,1,Txt_Degrees_ABBREVIATION ,"RM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR (); HTM_BR ();
HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,"LM",Txt_Requester); HTM_TH (1,1,Txt_Requester ,"LM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TR_End (); HTM_TR_End ();

View File

@ -602,10 +602,11 @@ 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. TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
*/ */
#define Log_PLATFORM_VERSION "SWAD 21.70.8 (2021-12-20)" #define Log_PLATFORM_VERSION "SWAD 21.71 (2021-12-20)"
#define CSS_FILE "swad21.70.7.css" #define CSS_FILE "swad21.71.css"
#define JS_FILE "swad21.67.4.js" #define JS_FILE "swad21.67.4.js"
/* /*
Version 21.71: Dec 20, 2021 Working on design of dark theme. (322132 lines)
Version 21.70.9: Dec 20, 2021 Fixed bug in user's IDs when listing match results. (321929 lines) Version 21.70.9: Dec 20, 2021 Fixed bug in user's IDs when listing match results. (321929 lines)
Version 21.70.8: Dec 20, 2021 Fixed bug showing calendar. (321927 lines) Version 21.70.8: Dec 20, 2021 Fixed bug showing calendar. (321927 lines)
Version 21.70.7: Dec 20, 2021 Working on design of dark theme. (321926 lines) Version 21.70.7: Dec 20, 2021 Working on design of dark theme. (321926 lines)

View File

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

View File

@ -593,7 +593,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Show photo *****/ /***** Show photo *****/
HTM_TD_Begin ("class=\"CON_PHOTO COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CON_PHOTO %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
true); true);
@ -610,7 +610,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
ClassTxt = "CON_NAME_NARROW CON_NO_CRS"; ClassTxt = "CON_NAME_NARROW CON_NO_CRS";
ClassLink = "BT_LINK CON_NAME_NARROW CON_NO_CRS"; ClassLink = "BT_LINK CON_NAME_NARROW CON_NO_CRS";
} }
HTM_TD_Begin ("class=\"%s COLOR%u\"",ClassTxt,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s %s\"",ClassTxt,Gbl.ColorRows[Gbl.RowEvenOdd]);
// The form must be unique because // The form must be unique because
// the list of connected users // the list of connected users
// is dynamically updated via AJAX // is dynamically updated via AJAX
@ -631,7 +631,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
/***** Write time from last access *****/ /***** Write time from last access *****/
ClassTxt = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_SINCE CON_CRS" : ClassTxt = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_SINCE CON_CRS" :
"CON_SINCE CON_NO_CRS"); "CON_SINCE CON_NO_CRS");
HTM_TD_Begin ("class=\"%s COLOR%u\"",ClassTxt,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s %s\"",ClassTxt,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DIV_Begin ("id=\"hm%u\"",Gbl.Usrs.Connected.NumUsr); // Used for automatic update, only when displayed on right column HTM_DIV_Begin ("id=\"hm%u\"",Gbl.Usrs.Connected.NumUsr); // Used for automatic update, only when displayed on right column
Dat_WriteHoursMinutesSecondsFromSeconds (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].TimeDiff); Dat_WriteHoursMinutesSecondsFromSeconds (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].TimeDiff);
HTM_DIV_End (); // Used for automatic update, only when displayed on right column HTM_DIV_End (); // Used for automatic update, only when displayed on right column
@ -710,7 +710,7 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Show photo *****/ /***** Show photo *****/
HTM_TD_Begin ("class=\"CON_PHOTO COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CON_PHOTO %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (&UsrDat, Pho_ShowUsrPhotoIfAllowed (&UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
@ -727,7 +727,8 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
ClassTxt = "CON_NAME_WIDE CON_NO_CRS"; ClassTxt = "CON_NAME_WIDE CON_NO_CRS";
ClassLink = "BT_LINK CON_NAME_WIDE CON_NO_CRS"; ClassLink = "BT_LINK CON_NAME_WIDE CON_NO_CRS";
} }
HTM_TD_Begin ("class=\"%s COLOR%u\"",ClassTxt,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s %s\"",
ClassTxt,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (PutLinkToRecord) if (PutLinkToRecord)
{ {
@ -753,7 +754,8 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
/***** Write time from last access *****/ /***** Write time from last access *****/
ClassTxt = ThisCrs ? "CON_SINCE CON_CRS" : ClassTxt = ThisCrs ? "CON_SINCE CON_CRS" :
"CON_SINCE CON_NO_CRS"; "CON_SINCE CON_NO_CRS";
HTM_TD_Begin ("class=\"%s COLOR%u\"",ClassTxt,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s %s\"",
ClassTxt,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteHoursMinutesSecondsFromSeconds (TimeDiff); Dat_WriteHoursMinutesSecondsFromSeconds (TimeDiff);
HTM_TD_End (); HTM_TD_End ();

View File

@ -130,8 +130,8 @@ void Cty_SeeCtyWithPendingInss (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Country); HTM_TH (1,1,Txt_Country ,"LM");
HTM_TH (1,1,"RM",Txt_Institutions_ABBREVIATION); HTM_TH (1,1,Txt_Institutions_ABBREVIATION,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** List the countries *****/ /***** List the countries *****/
@ -382,10 +382,10 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable)
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"RM",Txt_Institutions_ABBREVIATION); HTM_TH (1,1,Txt_Institutions_ABBREVIATION,"RM");
HTM_TH (1,1,"RM",Txt_Centers_ABBREVIATION); HTM_TH (1,1,Txt_Centers_ABBREVIATION ,"RM");
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION); HTM_TH (1,1,Txt_Degrees_ABBREVIATION ,"RM");
HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION); HTM_TH (1,1,Txt_Courses_ABBREVIATION ,"RM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR (); HTM_BR ();
@ -1554,14 +1554,14 @@ static void Cty_PutHeadCountriesForEdition (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Numeric_BR_code_BR_ISO_3166_1); HTM_TH (1,1,Txt_Numeric_BR_code_BR_ISO_3166_1 ,"RM");
HTM_TH (1,1,"RM",Txt_Alphabetic_BR_code_BR_ISO_3166_1); HTM_TH (1,1,Txt_Alphabetic_BR_code_BR_ISO_3166_1,"RM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Name); HTM_TH (1,1,Txt_Name ,"LM");
HTM_TH (1,1,"LM",Txt_WWW); HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TH (1,1,"RM",Txt_Users); HTM_TH (1,1,Txt_Users ,"RM");
HTM_TH (1,1,"RM",Txt_Institutions_ABBREVIATION); HTM_TH (1,1,Txt_Institutions_ABBREVIATION ,"RM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -1440,12 +1440,12 @@ static void Crs_PutHeadCoursesForSeeing (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"CM",Txt_Institutional_BR_code); HTM_TH (1,1,Txt_Institutional_BR_code ,"CM");
HTM_TH (1,1,"CM",Txt_Year_OF_A_DEGREE); HTM_TH (1,1,Txt_Year_OF_A_DEGREE ,"CM");
HTM_TH (1,1,"LM",Txt_Course); HTM_TH (1,1,Txt_Course ,"LM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"RM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],"RM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TR_End (); HTM_TR_End ();
@ -1468,17 +1468,17 @@ static void Crs_PutHeadCoursesForEdition (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH_Begin (1,1,"CM"); HTM_TH_Begin (1,1,"CM");
HTM_TxtF ("%s&nbsp;(%s)",Txt_Institutional_code,Txt_optional); HTM_TxtF ("%s&nbsp;(%s)",Txt_Institutional_code,Txt_optional);
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,"CM",Txt_Year_OF_A_DEGREE); HTM_TH (1,1,Txt_Year_OF_A_DEGREE ,"CM");
HTM_TH (1,1,"LM",Txt_Short_name_of_the_course); HTM_TH (1,1,Txt_Short_name_of_the_course ,"LM");
HTM_TH (1,1,"LM",Txt_Full_name_of_the_course); HTM_TH (1,1,Txt_Full_name_of_the_course ,"LM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"RM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],"RM");
HTM_TH (1,1,"LM",Txt_Requester); HTM_TH (1,1,Txt_Requester ,"LM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TR_End (); HTM_TR_End ();
@ -2309,19 +2309,19 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"LM",Txt_Degree); HTM_TH (1,1,Txt_Degree ,"LM");
HTM_TH (1,1,"CM",Txt_Year_OF_A_DEGREE); HTM_TH (1,1,Txt_Year_OF_A_DEGREE ,"CM");
HTM_TH (1,1,"LM",Txt_Course); HTM_TH (1,1,Txt_Course ,"LM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"RM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_NET]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_NET],"RM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],"RM");
HTM_TR_End (); HTM_TR_End ();
/* Write courses */ /* Write courses */
for (NumCrs = 1; for (NumCrs = 1;
NumCrs <= NumCrss; NumCrs <= NumCrss;
NumCrs++) NumCrs++)
{ {
@ -2371,13 +2371,13 @@ void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"LM",Txt_Degree); HTM_TH (1,1,Txt_Degree ,"LM");
HTM_TH (1,1,"CM",Txt_Year_OF_A_DEGREE); HTM_TH (1,1,Txt_Year_OF_A_DEGREE ,"CM");
HTM_TH (1,1,"LM",Txt_Course); HTM_TH (1,1,Txt_Course ,"LM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"RM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_NET]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_NET],"RM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],"RM");
HTM_TR_End (); HTM_TR_End ();

View File

@ -133,8 +133,8 @@ void Deg_SeeDegWithPendingCrss (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Degree); HTM_TH (1,1,Txt_Degree ,"LM");
HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION); HTM_TH (1,1,Txt_Courses_ABBREVIATION,"RM");
HTM_TR_End (); HTM_TR_End ();
@ -633,15 +633,15 @@ static void Deg_PutHeadDegreesForSeeing (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Degree); HTM_TH (1,1,Txt_Degree ,"LM");
HTM_TH (1,1,"LM",Txt_Type); HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION); HTM_TH (1,1,Txt_Courses_ABBREVIATION,"RM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR (); HTM_BR ();
HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Empty (1); HTM_TH_Empty (1);
@ -665,20 +665,20 @@ static void Deg_PutHeadDegreesForEdition (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Short_name_of_the_degree); HTM_TH (1,1,Txt_Short_name_of_the_degree,"LM");
HTM_TH (1,1,"LM",Txt_Full_name_of_the_degree); HTM_TH (1,1,Txt_Full_name_of_the_degree ,"LM");
HTM_TH (1,1,"LM",Txt_Type); HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,"LM",Txt_WWW); HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION); HTM_TH (1,1,Txt_Courses_ABBREVIATION ,"RM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR (); HTM_BR ();
HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,"LM",Txt_Requester); HTM_TH (1,1,Txt_Requester ,"LM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TR_End (); HTM_TR_End ();

View File

@ -572,10 +572,10 @@ static void DegTyp_PutHeadDegreeTypesForEdition (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"CM",Txt_Code); HTM_TH (1,1,Txt_Code ,"CM");
HTM_TH (1,1,"CM",Txt_Type_of_degree); HTM_TH (1,1,Txt_Type_of_degree,"CM");
HTM_TH (1,1,"RM",Txt_Degrees); HTM_TH (1,1,Txt_Degrees ,"RM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -819,10 +819,10 @@ static void Dpt_PutFormToCreateDepartment (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Institution); HTM_TH (1,1,Txt_Institution,"LM");
HTM_TH (1,1,"LM",Txt_Short_name); HTM_TH (1,1,Txt_Short_name ,"LM");
HTM_TH (1,1,"LM",Txt_Full_name); HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,"LM",Txt_WWW); HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TR_End (); HTM_TR_End ();
@ -896,12 +896,12 @@ static void Dpt_PutHeadDepartments (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"LM",Txt_Institution); HTM_TH (1,1,Txt_Institution ,"LM");
HTM_TH (1,1,"LM",Txt_Short_name); HTM_TH (1,1,Txt_Short_name ,"LM");
HTM_TH (1,1,"LM",Txt_Full_name); HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,"LM",Txt_WWW); HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TH (1,1,"RM",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"RM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -163,13 +163,14 @@ void Dup_ListDuplicateUsrs (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"%s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("colspan=\"%u\" class=\"%s LM COLOR%u\"", HTM_TD_Begin ("colspan=\"%u\" class=\"%s LM %s\"",
Usr_NUM_MAIN_FIELDS_DATA_USR - 2, Usr_NUM_MAIN_FIELDS_DATA_USR - 2,
The_ClassDat[Gbl.Prefs.Theme], The_ClassDat[Gbl.Prefs.Theme],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Write number of informants (row[1]) if greater than 1 */ /* Write number of informants (row[1]) if greater than 1 */
if (sscanf (row[1],"%u",&NumInformants) != 1) if (sscanf (row[1],"%u",&NumInformants) != 1)
@ -282,12 +283,13 @@ static void Dup_ListSimilarUsrs (void)
/***** Write user's profile and user's courses *****/ /***** Write user's profile and user's courses *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"%s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("colspan=\"%u\" class=\"COLOR%u\"", HTM_TD_Begin ("colspan=\"%u\" class=\"%s\"",
Usr_NUM_MAIN_FIELDS_DATA_USR-2, Usr_NUM_MAIN_FIELDS_DATA_USR-2,
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Show details of user's profile */ /* Show details of user's profile */
Prf_ShowDetailsUserProfile (&UsrDat); Prf_ShowDetailsUserProfile (&UsrDat);
/* Write all courses this user belongs to */ /* Write all courses this user belongs to */
@ -301,12 +303,13 @@ static void Dup_ListSimilarUsrs (void)
/***** Buttons to remove user / mark as not dubplicated *****/ /***** Buttons to remove user / mark as not dubplicated *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"%s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("colspan=\"%u\" class=\"LT COLOR%u\"", HTM_TD_Begin ("colspan=\"%u\" class=\"LT %s\"",
Usr_NUM_MAIN_FIELDS_DATA_USR-2, Usr_NUM_MAIN_FIELDS_DATA_USR-2,
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Button to remove this user */ /* Button to remove this user */
if (Acc_CheckIfICanEliminateAccount (UsrDat.UsrCod)) if (Acc_CheckIfICanEliminateAccount (UsrDat.UsrCod))
Dup_PutButtonToEliminateUsrAccount (&UsrDat); Dup_PutButtonToEliminateUsrAccount (&UsrDat);

View File

@ -2177,11 +2177,11 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
/* Table heading */ /* Table heading */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LT",Txt_Course); HTM_TH (1,1,Txt_Course ,"LT");
HTM_TH (1,1,"RT",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"RT");
HTM_TH (1,2,"LT",Txt_Requester); HTM_TH (1,2,Txt_Requester ,"LT");
HTM_TH (1,1,"LT",Txt_Role); HTM_TH (1,1,Txt_Role ,"LT");
HTM_TH (1,1,"CT",Txt_Date); HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH_Empty (2); HTM_TH_Empty (2);
HTM_TR_End (); HTM_TR_End ();

View File

@ -248,7 +248,7 @@ static void Exa_ListAllExams (struct Exa_Exams *Exams)
HTM_TABLE_BeginWideMarginPadding (5); HTM_TABLE_BeginWideMarginPadding (5);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
if (Exa_CheckIfICanEditExams ()) if (Exa_CheckIfICanEditExams ())
HTM_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons HTM_TH (1,1,NULL,"CONTEXT_COL"); // Column for contextual icons
for (Order = (Exa_Order_t) 0; for (Order = (Exa_Order_t) 0;
Order <= (Exa_Order_t) (Exa_NUM_ORDERS - 1); Order <= (Exa_Order_t) (Exa_NUM_ORDERS - 1);
@ -272,7 +272,7 @@ static void Exa_ListAllExams (struct Exa_Exams *Exams)
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"RM",Txt_Sessions); HTM_TH (1,1,Txt_Sessions,"RM");
HTM_TR_End (); HTM_TR_End ();
@ -503,7 +503,8 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam) if (ShowOnlyThisExam)
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\""); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
else else
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Icons to remove/edit this exam */ /* Icons to remove/edit this exam */
Exa_PutIconsToRemEditOneExam (Exams,Exam,Anchor); Exa_PutIconsToRemEditOneExam (Exams,Exam,Anchor);
@ -527,8 +528,8 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
Id,Color); Id,Color);
else else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,Color,Gbl.RowEvenOdd); Id,Color,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Exam->TimeUTC[Dat_STR_TIME]) if (Exam->TimeUTC[Dat_STR_TIME])
Dat_WriteLocalDateHMSFromUTC (Id,Exam->TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Exam->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
@ -541,7 +542,7 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam) if (ShowOnlyThisExam)
HTM_TD_Begin ("class=\"LT\""); HTM_TD_Begin ("class=\"LT\"");
else else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Exam title */ /* Exam title */
Exams->ExaCod = Exam->ExaCod; Exams->ExaCod = Exam->ExaCod;
@ -574,7 +575,7 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam) if (ShowOnlyThisExam)
HTM_TD_Begin ("class=\"RT\""); HTM_TD_Begin ("class=\"RT\"");
else else
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Exams->ExaCod = Exam->ExaCod; Exams->ExaCod = Exam->ExaCod;
Frm_BeginForm (ActSeeExa); Frm_BeginForm (ActSeeExa);
@ -601,7 +602,8 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam) if (ShowOnlyThisExam)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Exa_WriteAuthor (Exam); Exa_WriteAuthor (Exam);
HTM_TD_End (); HTM_TD_End ();
@ -609,7 +611,8 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam) if (ShowOnlyThisExam)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Exa_DB_GetExamTxt (Exam->ExaCod,Txt); Exa_DB_GetExamTxt (Exam->ExaCod,Txt);
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML

View File

@ -266,14 +266,14 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RB",Txt_Click); HTM_TH (1,1,Txt_Click ,"RB");
HTM_TH (1,1,"LB",Txt_Date_and_time); HTM_TH (1,1,Txt_Date_and_time,"LB");
HTM_TH (1,1,"LB",Txt_Action); HTM_TH (1,1,Txt_Action ,"LB");
HTM_TH (1,1,"RB",Txt_Question); HTM_TH (1,1,Txt_Question ,"RB");
HTM_TH (1,1,"CB",Txt_EXAM_Open); HTM_TH (1,1,Txt_EXAM_Open ,"CB");
HTM_TH (1,1,"LB",Txt_IP); HTM_TH (1,1,Txt_IP ,"LB");
HTM_TH (1,1,"LB",Txt_Session); HTM_TH (1,1,Txt_Session ,"LB");
HTM_TH (1,1,"LB",Txt_Web_browser); HTM_TH (1,1,Txt_Web_browser ,"LB");
HTM_TR_End (); HTM_TR_End ();
/***** Write clicks *****/ /***** Write clicks *****/
@ -319,16 +319,18 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/* Write number of click */ /* Write number of click */
HTM_TD_Begin ("class=\"RT COLOR%u %s\"", HTM_TD_Begin ("class=\"RT %s %s\"",
Gbl.RowEvenOdd,UsrCouldAnswer ? "DAT_SMALL" : UsrCouldAnswer ? "DAT_SMALL" :
"DAT_SMALL_LIGHT"); "DAT_SMALL_LIGHT",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumClick + 1); HTM_Unsigned (NumClick + 1);
HTM_TD_End (); HTM_TD_End ();
/* Write click time */ /* Write click time */
if (asprintf (&Id,"click_date_%u",NumClick) < 0) if (asprintf (&Id,"click_date_%u",NumClick) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT COLOR%u %s\"",Id,Gbl.RowEvenOdd,Class[Action]); HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,ClickTimeUTC, Dat_WriteLocalDateHMSFromUTC (Id,ClickTimeUTC,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
true,true,true,0x7); true,true,true,0x7);
@ -336,26 +338,30 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End (); HTM_TD_End ();
/* Write action */ /* Write action */
HTM_TD_Begin ("class=\"LT COLOR%u %s\"",Gbl.RowEvenOdd,Class[Action]); HTM_TD_Begin ("class=\"LT %s %s\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_EXAM_LOG_ACTIONS[Action]); HTM_Txt (Txt_EXAM_LOG_ACTIONS[Action]);
HTM_TD_End (); HTM_TD_End ();
/* Write number of question */ /* Write number of question */
HTM_TD_Begin ("class=\"RT COLOR%u %s\"",Gbl.RowEvenOdd,Class[Action]); HTM_TD_Begin ("class=\"RT %s %s\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (QstInd >= 0) if (QstInd >= 0)
HTM_Unsigned ((unsigned) QstInd + 1); HTM_Unsigned ((unsigned) QstInd + 1);
HTM_TD_End (); HTM_TD_End ();
/* Write if exam print was open and accesible to answer */ /* Write if exam print was open and accesible to answer */
HTM_TD_Begin ("class=\"CT COLOR%u %s\"", HTM_TD_Begin ("class=\"CT %s %s\"",
Gbl.RowEvenOdd,UsrCouldAnswer ? "DAT_SMALL_GREEN" : UsrCouldAnswer ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED"); "DAT_SMALL_RED",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (UsrCouldAnswer ? "&check;" : HTM_Txt (UsrCouldAnswer ? "&check;" :
"&cross;"); "&cross;");
HTM_TD_End (); HTM_TD_End ();
/* Write IP */ /* Write IP */
HTM_TD_Begin ("class=\"LT COLOR%u %s\"",Gbl.RowEvenOdd,Class[Action]); HTM_TD_Begin ("class=\"LT %s %s\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
Length = strlen (IP); Length = strlen (IP);
if (Length > 6) if (Length > 6)
{ {
@ -373,7 +379,8 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End (); HTM_TD_End ();
/* Write session id */ /* Write session id */
HTM_TD_Begin ("class=\"LT COLOR%u %s\"",Gbl.RowEvenOdd,Class[Action]); HTM_TD_Begin ("class=\"LT %s %s\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (SessionId[0]) if (SessionId[0])
{ {
Length = strlen (SessionId); Length = strlen (SessionId);
@ -394,7 +401,8 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End (); HTM_TD_End ();
/* Write user agent (row[6]) */ /* Write user agent (row[6]) */
HTM_TD_Begin ("class=\"LT COLOR%u %s\"",Gbl.RowEvenOdd,Class[Action]); HTM_TD_Begin ("class=\"LT %s %s\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (UserAgent[0]) if (UserAgent[0])
HTM_Txt (UserAgent); HTM_Txt (UserAgent);
HTM_TD_End (); HTM_TD_End ();

View File

@ -711,7 +711,7 @@ static void ExaPrn_WriteQstAndAnsToFill (const struct ExaPrn_Print *Print,
/***** Title for this set *****/ /***** Title for this set *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR0\""); HTM_TD_Begin ("colspan=\"2\" class=\"%s\"",Gbl.ColorRows[0]);
ExaSet_WriteSetTitle (&CurrentSet); ExaSet_WriteSetTitle (&CurrentSet);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();

View File

@ -602,8 +602,8 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,2,NULL,NULL); HTM_TH (1,2,NULL ,NULL);
HTM_TH (1,1,"LM",Txt_Exam); HTM_TH (1,1,Txt_Exam,"LM");
HTM_TR_End (); HTM_TR_End ();
/***** List the sessions *****/ /***** List the sessions *****/
@ -619,8 +619,9 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
/* Write a row for this session */ /* Write a row for this session */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s CT COLOR%u\"", HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_INPUT_CHECKBOX ("ExaCod",HTM_DONT_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("ExaCod",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Gam%u\" value=\"%ld\"%s", "id=\"Gam%u\" value=\"%ld\"%s",
NumExam,Exams->Lst[NumExam].ExaCod, NumExam,Exams->Lst[NumExam].ExaCod,
@ -628,15 +629,17 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
""); "");
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_Begin ("for=\"Gam%u\"",NumExam); HTM_LABEL_Begin ("for=\"Gam%u\"",NumExam);
HTM_TxtF ("%u:",NumExam + 1); HTM_TxtF ("%u:",NumExam + 1);
HTM_LABEL_End (); HTM_LABEL_End ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Exam.Title); HTM_Txt (Exam.Title);
HTM_TD_End (); HTM_TD_End ();
@ -689,39 +692,42 @@ static void ExaRes_ShowHeaderResults (Usr_MeOrOther_t MeOrOther)
/***** First row *****/ /***** First row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (3,2,"CT LINE_BOTTOM",Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex : HTM_TH (3,2,Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
Usr_SEX_UNKNOWN]); Usr_SEX_UNKNOWN],
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_STR_TIME]); "CT LINE_BOTTOM");
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_END_TIME]); HTM_TH (3,1,Txt_START_END_TIME[Dat_STR_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_Session); HTM_TH (3,1,Txt_START_END_TIME[Dat_END_TIME],"LT LINE_BOTTOM");
HTM_TH (1,3,"CT LINE_LEFT",Txt_Questions); HTM_TH (3,1,Txt_Session ,"LT LINE_BOTTOM");
HTM_TH (1,5,"CT LINE_LEFT",Txt_Valid_answers); HTM_TH (1,3,Txt_Questions ,"CT LINE_LEFT");
HTM_TH (1,2,"CT LINE_LEFT",Txt_Score); HTM_TH (1,5,Txt_Valid_answers ,"CT LINE_LEFT");
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Grade); HTM_TH (1,2,Txt_Score ,"CT LINE_LEFT");
HTM_TH (3,1,"LINE_BOTTOM LINE_LEFT",NULL); HTM_TH (3,1,Txt_Grade ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (3,1,NULL ,"LINE_BOTTOM LINE_LEFT");
HTM_TR_End (); HTM_TR_End ();
/***** Second row *****/ /***** Second row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (2,1,"RT LINE_BOTTOM LINE_LEFT",Txt_total); HTM_TH (2,1,Txt_total ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (2,1,"RT LINE_BOTTOM",Txt_QUESTIONS_valid); HTM_TH (2,1,Txt_QUESTIONS_valid ,"RT LINE_BOTTOM");
HTM_TH (2,1,"RT LINE_BOTTOM",Txt_QUESTIONS_invalid); HTM_TH (2,1,Txt_QUESTIONS_invalid,"RT LINE_BOTTOM");
HTM_TH (1,1,"RT LINE_LEFT",Txt_ANSWERS_correct); HTM_TH (1,1,Txt_ANSWERS_correct ,"RT LINE_LEFT");
HTM_TH (1,3,"CT",Txt_ANSWERS_wrong); HTM_TH (1,3,Txt_ANSWERS_wrong ,"CT");
HTM_TH (1,1,"RT",Txt_ANSWERS_blank); HTM_TH (1,1,Txt_ANSWERS_blank ,"RT");
HTM_TH (1,1,"RT LINE_LEFT",Txt_total); HTM_TH (1,1,Txt_total ,"RT LINE_LEFT");
HTM_TH (1,1,"RT",Txt_average); HTM_TH (1,1,Txt_average ,"RT");
HTM_TR_End (); HTM_TR_End ();
/***** Third row *****/ /***** Third row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","{<em>p<sub>i</sub></em>=1}"); HTM_TH (1,1,"{<em>p<sub>i</sub></em>=1}" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"RT LINE_BOTTOM","{-1&le;<em>p<sub>i</sub></em>&lt;0}"); HTM_TH (1,1,"{-1&le;<em>p<sub>i</sub></em>&lt;0}","RT LINE_BOTTOM");
HTM_TH (1,1,"RT LINE_BOTTOM","{<em>p<sub>i</sub></em>=0}"); HTM_TH (1,1,"{<em>p<sub>i</sub></em>=0}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"RT LINE_BOTTOM","{0&lt;<em>p<sub>i</sub></em>&lt;1}"); HTM_TH (1,1,"{0&lt;<em>p<sub>i</sub></em>&lt;1}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"RT LINE_BOTTOM","{<em>p<sub>i</sub></em>=0}"); HTM_TH (1,1,"{<em>p<sub>i</sub></em>=0}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","<em>&Sigma;p<sub>i</sub></em>"); HTM_TH (1,1,"<em>&Sigma;p<sub>i</sub></em>" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"RT LINE_BOTTOM","-1&le;<em style=\"text-decoration:overline;\">p</em>&le;1"); HTM_TH (1,1,"-1&le;"
"<em style=\"text-decoration:overline;\">p</em>"
"&le;1" ,"RT LINE_BOTTOM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -844,8 +850,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
UniqueId++; UniqueId++;
if (asprintf (&Id,"exa_res_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0) if (asprintf (&Id,"exa_res_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id =\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id =\"%s\" class=\"%s LT %s\"",
Id,The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); Id,The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -854,8 +861,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
} }
/* Write session title */ /* Write session title */
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Session.Title); HTM_Txt (Session.Title);
HTM_TD_End (); HTM_TD_End ();
@ -878,8 +886,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
} }
/* Write total number of questions */ /* Write total number of questions */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
HTM_Unsigned (Print.NumQsts.All); HTM_Unsigned (Print.NumQsts.All);
else else
@ -887,7 +896,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Valid questions */ /* Valid questions */
HTM_TD_Begin ("class=\"DAT_GREEN RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_GREEN RT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
if (Print.NumQsts.Valid.Total) if (Print.NumQsts.Valid.Total)
@ -900,7 +910,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Invalid questions */ /* Invalid questions */
HTM_TD_Begin ("class=\"DAT_RED RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_RED RT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
NumQstsInvalid = Print.NumQsts.All - Print.NumQsts.Valid.Total; NumQstsInvalid = Print.NumQsts.All - Print.NumQsts.Valid.Total;
@ -914,8 +925,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Write number of correct questions */ /* Write number of correct questions */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
if (Print.NumQsts.Valid.Correct) if (Print.NumQsts.Valid.Correct)
@ -928,8 +940,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Write number of wrong questions */ /* Write number of wrong questions */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
if (Print.NumQsts.Valid.Wrong.Negative) if (Print.NumQsts.Valid.Wrong.Negative)
@ -941,8 +954,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
Ico_PutIconNotVisible (); Ico_PutIconNotVisible ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
if (Print.NumQsts.Valid.Wrong.Zero) if (Print.NumQsts.Valid.Wrong.Zero)
@ -954,8 +968,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
Ico_PutIconNotVisible (); Ico_PutIconNotVisible ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
if (Print.NumQsts.Valid.Wrong.Positive) if (Print.NumQsts.Valid.Wrong.Positive)
@ -968,8 +983,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Write number of blank questions */ /* Write number of blank questions */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
if (Print.NumQsts.Valid.Blank) if (Print.NumQsts.Valid.Blank)
@ -982,8 +998,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Write score valid (taking into account only valid questions) */ /* Write score valid (taking into account only valid questions) */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
HTM_Double2Decimals (Print.Score.Valid); HTM_Double2Decimals (Print.Score.Valid);
@ -995,8 +1012,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Write average score per question (taking into account only valid questions) */ /* Write average score per question (taking into account only valid questions) */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
HTM_Double2Decimals (Print.NumQsts.Valid.Total ? Print.Score.Valid / HTM_Double2Decimals (Print.NumQsts.Valid.Total ? Print.Score.Valid /
(double) Print.NumQsts.Valid.Total : (double) Print.NumQsts.Valid.Total :
@ -1006,8 +1024,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Write grade over maximum grade (taking into account only valid questions) */ /* Write grade over maximum grade (taking into account only valid questions) */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
Grade = TstPrn_ComputeGrade (Print.NumQsts.Valid.Total,Print.Score.Valid,Exam.MaxGrade); Grade = TstPrn_ComputeGrade (Print.NumQsts.Valid.Total,Print.Score.Valid,Exam.MaxGrade);
@ -1019,7 +1038,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/* Link to show this result */ /* Link to show this result */
HTM_TD_Begin ("class=\"RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Result) if (ICanView.Result)
{ {
Exams->ExaCod = Session.ExaCod; Exams->ExaCod = Session.ExaCod;
@ -1053,33 +1073,33 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
else else
{ {
/* Columns for dates and title */ /* Columns for dates and title */
HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Columns for questions */ /* Columns for questions */
HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Columns for answers */ /* Columns for answers */
HTM_TD_Begin ("colspan=\"5\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("colspan=\"5\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Columns for score */ /* Columns for score */
HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for grade */ /* Column for grade */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for link to show the result */ /* Column for link to show the result */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
@ -1106,20 +1126,23 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
unsigned NumTotalQstsInvalid; unsigned NumTotalQstsInvalid;
/***** Row title *****/ /***** Row title *****/
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColonNBSP (Txt_Sessions); HTM_TxtColonNBSP (Txt_Sessions);
HTM_Unsigned (NumResults); HTM_Unsigned (NumResults);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of questions *****/ /***** Write total number of questions *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumTotalQsts->All); HTM_Unsigned (NumTotalQsts->All);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of valid questions *****/ /***** Write total number of valid questions *****/
HTM_TD_Begin ("class=\"RT DAT_GREEN LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT DAT_GREEN LINE_TOP LINE_BOTTOM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Total) if (NumTotalQsts->Valid.Total)
HTM_Unsigned (NumTotalQsts->Valid.Total); HTM_Unsigned (NumTotalQsts->Valid.Total);
else else
@ -1127,7 +1150,8 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of invalid questions *****/ /***** Write total number of invalid questions *****/
HTM_TD_Begin ("class=\"DAT_RED RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_RED RT LINE_TOP LINE_BOTTOM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
NumTotalQstsInvalid = NumTotalQsts->All - NumTotalQsts->Valid.Total; NumTotalQstsInvalid = NumTotalQsts->All - NumTotalQsts->Valid.Total;
if (NumTotalQstsInvalid) if (NumTotalQstsInvalid)
HTM_Unsigned (NumTotalQstsInvalid); HTM_Unsigned (NumTotalQstsInvalid);
@ -1136,8 +1160,9 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End (); HTM_TD_End ();
/***** Write number of correct questions *****/ /***** Write number of correct questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Correct) if (NumTotalQsts->Valid.Correct)
HTM_Unsigned (NumTotalQsts->Valid.Correct); HTM_Unsigned (NumTotalQsts->Valid.Correct);
else else
@ -1145,24 +1170,27 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End (); HTM_TD_End ();
/***** Write number of wrong questions *****/ /***** Write number of wrong questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Wrong.Negative) if (NumTotalQsts->Valid.Wrong.Negative)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Negative); HTM_Unsigned (NumTotalQsts->Valid.Wrong.Negative);
else else
HTM_Light0 (); HTM_Light0 ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Wrong.Zero) if (NumTotalQsts->Valid.Wrong.Zero)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Zero); HTM_Unsigned (NumTotalQsts->Valid.Wrong.Zero);
else else
HTM_Light0 (); HTM_Light0 ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Wrong.Positive) if (NumTotalQsts->Valid.Wrong.Positive)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Positive); HTM_Unsigned (NumTotalQsts->Valid.Wrong.Positive);
else else
@ -1170,8 +1198,9 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End (); HTM_TD_End ();
/***** Write number of blank questions *****/ /***** Write number of blank questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Blank) if (NumTotalQsts->Valid.Blank)
HTM_Unsigned (NumTotalQsts->Valid.Blank); HTM_Unsigned (NumTotalQsts->Valid.Blank);
else else
@ -1179,16 +1208,18 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End (); HTM_TD_End ();
/***** Write total valid score *****/ /***** Write total valid score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (TotalScore->Valid); HTM_Double2Decimals (TotalScore->Valid);
HTM_Txt ("/"); HTM_Txt ("/");
HTM_Unsigned (NumTotalQsts->Valid.Total); HTM_Unsigned (NumTotalQsts->Valid.Total);
HTM_TD_End (); HTM_TD_End ();
/***** Write average valid score per valid question *****/ /***** Write average valid score per valid question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (NumTotalQsts->Valid.Total ? TotalScore->Valid / HTM_Double2Decimals (NumTotalQsts->Valid.Total ? TotalScore->Valid /
(double) NumTotalQsts->Valid.Total : (double) NumTotalQsts->Valid.Total :
0.0); 0.0);
@ -1196,14 +1227,16 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write total grade *****/ /***** Write total grade *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (TotalGrade); HTM_Double2Decimals (TotalGrade);
HTM_TD_End (); HTM_TD_End ();
/***** Last cell *****/ /***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
@ -1885,13 +1918,13 @@ static void ExaRes_WriteQstAndAnsExam (struct UsrData *UsrDat,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Number of question and answer type *****/ /***** Number of question and answer type *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd + 1,ClassNumQst[Question->Validity]); Qst_WriteNumQst (QstInd + 1,ClassNumQst[Question->Validity]);
Qst_WriteAnswerType (Question->Answer.Type,ClassAnswerType[Question->Validity]); Qst_WriteAnswerType (Question->Answer.Type,ClassAnswerType[Question->Validity]);
HTM_TD_End (); HTM_TD_End ();
/***** Stem, media and answers *****/ /***** Stem, media and answers *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Stem */ /* Stem */
Qst_WriteQstStem (Question->Stem,ClassTxt[Question->Validity], Qst_WriteQstStem (Question->Stem,ClassTxt[Question->Validity],

View File

@ -333,7 +333,8 @@ static void ExaSes_ListOneOrMoreSessions (struct Exa_Exams *Exams,
if (Session.SesCod == SesCodToBeEdited) if (Session.SesCod == SesCodToBeEdited)
{ {
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"6\" class=\"CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"6\" class=\"CT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
ExaSes_PutFormSession (&Session); // Form to edit existing session ExaSes_PutFormSession (&Session); // Form to edit existing session
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
@ -367,11 +368,11 @@ static void ExaSes_ListOneOrMoreSessionsHeading (bool ICanEditSessions)
HTM_TH_Empty (1); HTM_TH_Empty (1);
/***** The rest of columns *****/ /***** The rest of columns *****/
HTM_TH (1,1,"LT",Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN]); HTM_TH (1,1,Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN],"LT");
HTM_TH (1,1,"LT",Txt_START_END_TIME[Exa_ORDER_BY_START_DATE]); HTM_TH (1,1,Txt_START_END_TIME[Exa_ORDER_BY_START_DATE] ,"LT");
HTM_TH (1,1,"LT",Txt_START_END_TIME[Exa_ORDER_BY_END_DATE ]); HTM_TH (1,1,Txt_START_END_TIME[Exa_ORDER_BY_END_DATE ] ,"LT");
HTM_TH (1,1,"LT",Txt_Session); HTM_TH (1,1,Txt_Session ,"LT");
HTM_TH (1,1,"CT",Txt_Results); HTM_TH (1,1,Txt_Results ,"CT");
/***** End row *****/ /***** End row *****/
HTM_TR_End (); HTM_TR_End ();
@ -466,7 +467,7 @@ static void ExaSes_ListOneOrMoreSessionsIcons (struct Exa_Exams *Exams,
static void ExaSes_ListOneOrMoreSessionsAuthor (const struct ExaSes_Session *Session) static void ExaSes_ListOneOrMoreSessionsAuthor (const struct ExaSes_Session *Session)
{ {
/***** Session author (teacher) *****/ /***** Session author (teacher) *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteAuthor1Line (Session->UsrCod,Session->Hidden); Usr_WriteAuthor1Line (Session->UsrCod,Session->Hidden);
HTM_TD_End (); HTM_TD_End ();
} }
@ -493,8 +494,8 @@ static void ExaSes_ListOneOrMoreSessionsTimes (const struct ExaSes_Session *Sess
if (asprintf (&Id,"exa_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0) if (asprintf (&Id,"exa_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,Color,Gbl.RowEvenOdd); Id,Color,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Session->TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Session->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x6); true,true,true,0x6);
@ -515,7 +516,7 @@ static void ExaSes_ListOneOrMoreSessionsTitleGrps (struct Exa_Exams *Exams,
extern const char *Txt_Play; extern const char *Txt_Play;
extern const char *Txt_Resume; extern const char *Txt_Resume;
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/***** Session title *****/ /***** Session title *****/
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
@ -624,8 +625,8 @@ static void ExaSes_ListOneOrMoreSessionsResult (struct Exa_Exams *Exams,
[Rol_SYS_ADM] = ExaSes_ListOneOrMoreSessionsResultTch, [Rol_SYS_ADM] = ExaSes_ListOneOrMoreSessionsResultTch,
}; };
HTM_TD_Begin ("class=\"%s CT COLOR%u\"", HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Function[Gbl.Usrs.Me.Role.Logged]) if (Function[Gbl.Usrs.Me.Role.Logged])
Function[Gbl.Usrs.Me.Role.Logged] (Exams,Session); Function[Gbl.Usrs.Me.Role.Logged] (Exams,Session);

View File

@ -813,12 +813,13 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/***** Index *****/ /***** Index *****/
HTM_TD_Begin ("rowspan=\"2\" class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"2\" class=\"RT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (Set.SetInd,"BIG_INDEX"); Qst_WriteNumQst (Set.SetInd,"BIG_INDEX");
HTM_TD_End (); HTM_TD_End ();
/***** Title *****/ /***** Title *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
if (ICanEditSets) if (ICanEditSets)
{ {
@ -842,14 +843,14 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
HTM_TD_End (); HTM_TD_End ();
/***** Current number of questions in set *****/ /***** Current number of questions in set *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_SPAN_Begin ("class=\"EXA_SET_NUM_QSTS\""); HTM_SPAN_Begin ("class=\"EXA_SET_NUM_QSTS\"");
HTM_Unsigned (Exa_DB_GetNumQstsInSet (Set.SetCod)); HTM_Unsigned (Exa_DB_GetNumQstsInSet (Set.SetCod));
HTM_SPAN_End (); HTM_SPAN_End ();
HTM_TD_End (); HTM_TD_End ();
/***** Number of questions to appear in exam print *****/ /***** Number of questions to appear in exam print *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditSets) if (ICanEditSets)
{ {
Frm_BeginFormAnchor (ActChgNumQstExaSet,Anchor); Frm_BeginFormAnchor (ActChgNumQstExaSet,Anchor);
@ -874,7 +875,8 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Questions *****/ /***** Questions *****/
HTM_TD_Begin ("colspan=\"3\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"3\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
/* List questions */ /* List questions */
ExaSet_ListSetQuestions (Exams,Exam,&Set); ExaSet_ListSetQuestions (Exams,Exam,&Set);
@ -908,10 +910,10 @@ static void ExaSet_PutTableHeadingForSets (void)
/***** Header cells *****/ /***** Header cells *****/
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"RB",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"RB");
HTM_TH (1,1,"LB",Txt_Set_of_questions); HTM_TH (1,1,Txt_Set_of_questions ,"LB");
HTM_TH (1,1,"RB",Txt_Number_of_questions); HTM_TH (1,1,Txt_Number_of_questions ,"RB");
HTM_TH (1,1,"RB",Txt_Number_of_questions_to_show); HTM_TH (1,1,Txt_Number_of_questions_to_show,"RB");
/***** End row *****/ /***** End row *****/
HTM_TR_End (); HTM_TR_End ();
@ -971,8 +973,8 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,"CT",Txt_Question); HTM_TH (1,1,Txt_Question,"CT");
HTM_TR_End (); HTM_TR_End ();
@ -1207,13 +1209,13 @@ static void ExaSet_ListQuestionForEdition (struct Qst_Question *Question,
}; };
/***** Number of question and answer type (row[1]) *****/ /***** Number of question and answer type (row[1]) *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd,ClassNumQst[Question->Validity]); Qst_WriteNumQst (QstInd,ClassNumQst[Question->Validity]);
Qst_WriteAnswerType (Question->Answer.Type,ClassAnswerType[Question->Validity]); Qst_WriteAnswerType (Question->Answer.Type,ClassAnswerType[Question->Validity]);
HTM_TD_End (); HTM_TD_End ();
/***** Write stem (row[3]) and media *****/ /***** Write stem (row[3]) and media *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
/* Write stem */ /* Write stem */

View File

@ -414,10 +414,10 @@ static void Fig_GetAndShowUsersStats (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Users); HTM_TH (1,1,Txt_Users ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_of_courses_to_which_a_user_belongs); HTM_TH (1,1,Txt_Average_number_of_courses_to_which_a_user_belongs,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_of_users_belonging_to_a_course); HTM_TH (1,1,Txt_Average_number_of_users_belonging_to_a_course ,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Figures *****/ /***** Figures *****/
@ -428,7 +428,7 @@ static void Fig_GetAndShowUsersStats (void)
/***** Separator *****/ /***** Separator *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,4,"SEPAR_ROW",NULL); HTM_TH (1,4,NULL,"SEPAR_ROW");
HTM_TR_End (); HTM_TR_End ();
Fig_GetAndShowNumUsrsNotBelongingToAnyCrs (); // Users not beloging to any course Fig_GetAndShowNumUsrsNotBelongingToAnyCrs (); // Users not beloging to any course
@ -540,13 +540,13 @@ static void Fig_GetAndShowUsersRanking (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CM",Txt_Clicks); HTM_TH (1,1,Txt_Clicks ,"CM");
HTM_TH (1,1,"CM",Txt_Clicks_per_day); HTM_TH (1,1,Txt_Clicks_per_day,"CM");
HTM_TH (1,1,"CM",Txt_Timeline); HTM_TH (1,1,Txt_Timeline ,"CM");
HTM_TH (1,1,"CM",Txt_Followers); HTM_TH (1,1,Txt_Followers ,"CM");
HTM_TH (1,1,"CM",Txt_Downloads); HTM_TH (1,1,Txt_Downloads ,"CM");
HTM_TH (1,1,"CM",Txt_Forums); HTM_TH (1,1,Txt_Forums ,"CM");
HTM_TH (1,1,"CM",Txt_Messages); HTM_TH (1,1,Txt_Messages ,"CM");
HTM_TR_End (); HTM_TR_End ();
/***** Rankings *****/ /***** Rankings *****/
@ -1223,11 +1223,11 @@ static void Fig_ShowInss (MYSQL_RES **mysql_res,unsigned NumInss,
/***** Draw institutions as a list *****/ /***** Draw institutions as a list *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Institution); HTM_TH (1,1,Txt_Institution,"LM");
HTM_TH (1,1,"RM",TxtFigure); HTM_TH (1,1,TxtFigure,"RM");
HTM_TR_End (); HTM_TR_End ();
for (NumIns = 1, NumOrder = 1, NumberLastRow = 0; for (NumIns = 1, NumOrder = 1, NumberLastRow = 0;
NumIns <= NumInss; NumIns <= NumInss;
NumIns++) NumIns++)
{ {
@ -1468,14 +1468,14 @@ static void Fig_WriteStatsExpTreesTableHead1 (void)
extern const char *Txt_Size; extern const char *Txt_Size;
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_File_zones); HTM_TH (1,1,Txt_File_zones,"LM");
HTM_TH (1,1,"RM",Txt_Courses); HTM_TH (1,1,Txt_Courses ,"RM");
HTM_TH (1,1,"RM",Txt_Groups); HTM_TH (1,1,Txt_Groups ,"RM");
HTM_TH (1,1,"RM",Txt_Users); HTM_TH (1,1,Txt_Users ,"RM");
HTM_TH (1,1,"RM",Txt_Max_levels); HTM_TH (1,1,Txt_Max_levels,"RM");
HTM_TH (1,1,"RM",Txt_Folders); HTM_TH (1,1,Txt_Folders ,"RM");
HTM_TH (1,1,"RM",Txt_Files); HTM_TH (1,1,Txt_Files ,"RM");
HTM_TH (1,1,"RM",Txt_Size); HTM_TH (1,1,Txt_Size ,"RM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -1489,7 +1489,7 @@ static void Fig_WriteStatsExpTreesTableHead2 (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_File_zones); HTM_TH (1,1,Txt_File_zones,"LM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s/",Txt_Folders); HTM_TxtF ("%s/",Txt_Folders);
@ -1758,9 +1758,9 @@ static void Fig_GetAndShowOERsStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_License); HTM_TH (1,1,Txt_License ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_private_files); HTM_TH (1,1,Txt_Number_of_private_files,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_public_files); HTM_TH (1,1,Txt_Number_of_public_files ,"RM");
HTM_TR_End (); HTM_TR_End ();
for (License = (Brw_License_t) 0; for (License = (Brw_License_t) 0;
@ -1859,9 +1859,9 @@ static void Fig_GetAndShowCourseProgramStats (void) // TODO: Change function fro
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Number_of_BR_program_items); HTM_TH (1,1,Txt_Number_of_BR_program_items ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_program_items); HTM_TH (1,1,Txt_Number_of_BR_courses_with_BR_program_items,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_BR_of_items_BR_per_course); HTM_TH (1,1,Txt_Average_number_BR_of_items_BR_per_course ,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of assignments *****/ /***** Write number of assignments *****/
@ -1916,10 +1916,10 @@ static void Fig_GetAndShowAssignmentsStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Number_of_BR_assignments); HTM_TH (1,1,Txt_Number_of_BR_assignments ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_assignments); HTM_TH (1,1,Txt_Number_of_BR_courses_with_BR_assignments,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_BR_of_ASSIG_BR_per_course); HTM_TH (1,1,Txt_Average_number_BR_of_ASSIG_BR_per_course,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_notifications); HTM_TH (1,1,Txt_Number_of_BR_notifications ,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of assignments *****/ /***** Write number of assignments *****/
@ -1976,9 +1976,9 @@ static void Fig_GetAndShowProjectsStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Number_of_BR_projects); HTM_TH (1,1,Txt_Number_of_BR_projects ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_projects); HTM_TH (1,1,Txt_Number_of_BR_courses_with_BR_projects ,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_BR_of_projects_BR_per_course); HTM_TH (1,1,Txt_Average_number_BR_of_projects_BR_per_course,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of projects *****/ /***** Write number of projects *****/
@ -2033,15 +2033,15 @@ static void Fig_GetAndShowTestsStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Type_of_BR_answers); HTM_TH (1,1,Txt_Type_of_BR_answers ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_BR_with_test_BR_questions); HTM_TH (1,1,Txt_Number_of_BR_courses_BR_with_test_BR_questions ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_exportable_BR_test_BR_questions); HTM_TH (1,1,Txt_Number_of_BR_courses_with_BR_exportable_BR_test_BR_questions ,"RM");
HTM_TH (1,1,"RM",Txt_Number_BR_of_test_BR_questions); HTM_TH (1,1,Txt_Number_BR_of_test_BR_questions ,"RM");
HTM_TH (1,1,"RM",Txt_Average_BR_number_BR_of_test_BR_questions_BR_per_course); HTM_TH (1,1,Txt_Average_BR_number_BR_of_test_BR_questions_BR_per_course ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_times_that_BR_questions_BR_have_been_BR_responded); HTM_TH (1,1,Txt_Number_of_BR_times_that_BR_questions_BR_have_been_BR_responded ,"RM");
HTM_TH (1,1,"RM",Txt_Average_BR_number_of_BR_times_that_BR_questions_BR_have_been_BR_responded_BR_per_course); HTM_TH (1,1,Txt_Average_BR_number_of_BR_times_that_BR_questions_BR_have_been_BR_responded_BR_per_course,"RM");
HTM_TH (1,1,"RM",Txt_Average_BR_number_of_BR_times_that_BR_a_question_BR_has_been_BR_responded); HTM_TH (1,1,Txt_Average_BR_number_of_BR_times_that_BR_a_question_BR_has_been_BR_responded ,"RM");
HTM_TH (1,1,"RM",Txt_Average_BR_score_BR_per_question); HTM_TH (1,1,Txt_Average_BR_score_BR_per_question ,"RM");
HTM_TR_End (); HTM_TR_End ();
for (AnsType = (Qst_AnswerType_t) 0; for (AnsType = (Qst_AnswerType_t) 0;
@ -2177,9 +2177,9 @@ static void Fig_GetAndShowExamsStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Number_of_BR_exams); HTM_TH (1,1,Txt_Number_of_BR_exams ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_exams); HTM_TH (1,1,Txt_Number_of_BR_courses_with_BR_exams ,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_BR_of_exams_BR_per_course); HTM_TH (1,1,Txt_Average_number_BR_of_exams_BR_per_course,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of exams *****/ /***** Write number of exams *****/
@ -2231,9 +2231,9 @@ static void Fig_GetAndShowGamesStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Number_of_BR_games); HTM_TH (1,1,Txt_Number_of_BR_games ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_games); HTM_TH (1,1,Txt_Number_of_BR_courses_with_BR_games ,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_BR_of_games_BR_per_course); HTM_TH (1,1,Txt_Average_number_BR_of_games_BR_per_course,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of games *****/ /***** Write number of games *****/
@ -2288,11 +2288,11 @@ static void Fig_GetAndShowTimelineActivityStats (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Type); HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_posts); HTM_TH (1,1,Txt_Number_of_posts ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_posts_BR_per_user); HTM_TH (1,1,Txt_Number_of_posts_BR_per_user,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Get total number of users *****/ /***** Get total number of users *****/
@ -2441,9 +2441,9 @@ static void Fig_GetAndShowFollowStats (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Users); HTM_TH (1,1,Txt_Users ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Get total number of users *****/ /***** Get total number of users *****/
@ -2539,14 +2539,14 @@ static void Fig_GetAndShowForumStats (void)
HTM_TH_Begin (1,1,"BT"); HTM_TH_Begin (1,1,"BT");
Ico_PutIcon ("comments.svg",Txt_Scope,"ICO16x16"); Ico_PutIcon ("comments.svg",Txt_Scope,"ICO16x16");
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,"LT",Txt_Forums); HTM_TH (1,1,Txt_Forums ,"LT");
HTM_TH (1,1,"RT",Txt_Number_of_forums); HTM_TH (1,1,Txt_Number_of_forums ,"RT");
HTM_TH (1,1,"RT",Txt_Number_of_threads); HTM_TH (1,1,Txt_Number_of_threads ,"RT");
HTM_TH (1,1,"RT",Txt_Number_of_posts); HTM_TH (1,1,Txt_Number_of_posts ,"RT");
HTM_TH (1,1,"RT",Txt_Number_of_BR_notifications); HTM_TH (1,1,Txt_Number_of_BR_notifications ,"RT");
HTM_TH (1,1,"RT",Txt_Number_of_threads_BR_per_forum); HTM_TH (1,1,Txt_Number_of_threads_BR_per_forum,"RT");
HTM_TH (1,1,"RT",Txt_Number_of_posts_BR_per_thread); HTM_TH (1,1,Txt_Number_of_posts_BR_per_thread ,"RT");
HTM_TH (1,1,"RT",Txt_Number_of_posts_BR_per_forum); HTM_TH (1,1,Txt_Number_of_posts_BR_per_forum ,"RT");
HTM_TR_End (); HTM_TR_End ();
/***** Write a row for each type of forum *****/ /***** Write a row for each type of forum *****/
@ -2845,11 +2845,11 @@ static void Fig_GetAndShowNumUsrsPerNotifyEvent (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Event); HTM_TH (1,1,Txt_Event ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_events); HTM_TH (1,1,Txt_Number_of_events,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_emails); HTM_TH (1,1,Txt_Number_of_emails,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Get total number of users *****/ /***** Get total number of users *****/
@ -3014,11 +3014,11 @@ static void Fig_GetAndShowNoticesStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_NOTICE_Active_BR_notices); HTM_TH (1,1,Txt_NOTICE_Active_BR_notices ,"RM");
HTM_TH (1,1,"RM",Txt_NOTICE_Obsolete_BR_notices); HTM_TH (1,1,Txt_NOTICE_Obsolete_BR_notices,"RM");
HTM_TH (1,1,"RM",Txt_NOTICE_Deleted_BR_notices); HTM_TH (1,1,Txt_NOTICE_Deleted_BR_notices ,"RM");
HTM_TH (1,1,"RM",Txt_Total); HTM_TH (1,1,Txt_Total ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_notifications); HTM_TH (1,1,Txt_Number_of_BR_notifications,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of notices *****/ /***** Write number of notices *****/
@ -3086,11 +3086,11 @@ static void Fig_GetAndShowMsgsStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Messages); HTM_TH (1,1,Txt_Messages ,"LM");
HTM_TH (1,1,"RM",Txt_MSGS_Not_deleted); HTM_TH (1,1,Txt_MSGS_Not_deleted ,"RM");
HTM_TH (1,1,"RM",Txt_MSGS_Deleted); HTM_TH (1,1,Txt_MSGS_Deleted ,"RM");
HTM_TH (1,1,"RM",Txt_Total); HTM_TH (1,1,Txt_Total ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_notifications); HTM_TH (1,1,Txt_Number_of_BR_notifications,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of messages *****/ /***** Write number of messages *****/
@ -3171,10 +3171,10 @@ static void Fig_GetAndShowAgendasStats (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Number_of_events); HTM_TH (1,1,Txt_Number_of_events ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_events_per_user); HTM_TH (1,1,Txt_Number_of_events_per_user,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Number of agenda events *****/ /***** Number of agenda events *****/
@ -3251,11 +3251,11 @@ static void Fig_GetAndShowSurveysStats (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RM",Txt_Number_of_BR_surveys); HTM_TH (1,1,Txt_Number_of_BR_surveys ,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_courses_with_BR_surveys); HTM_TH (1,1,Txt_Number_of_BR_courses_with_BR_surveys ,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_BR_of_surveys_BR_per_course); HTM_TH (1,1,Txt_Average_number_BR_of_surveys_BR_per_course ,"RM");
HTM_TH (1,1,"RM",Txt_Average_number_BR_of_questions_BR_per_survey); HTM_TH (1,1,Txt_Average_number_BR_of_questions_BR_per_survey,"RM");
HTM_TH (1,1,"RM",Txt_Number_of_BR_notifications); HTM_TH (1,1,Txt_Number_of_BR_notifications ,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** Write number of surveys *****/ /***** Write number of surveys *****/
@ -3341,9 +3341,9 @@ static void Fig_GetAndShowNumUsrsPerPrivacyForAnObject (const char *TxtObject,
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",TxtObject); HTM_TH (1,1,TxtObject ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each privacy option... *****/ /***** For each privacy option... *****/
@ -3429,9 +3429,9 @@ static void Fig_GetAndShowNumUsrsPerCookies (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Cookies); HTM_TH (1,1,Txt_Cookies ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each option... *****/ /***** For each option... *****/
@ -3504,9 +3504,9 @@ static void Fig_GetAndShowNumUsrsPerLanguage (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Language); HTM_TH (1,1,Txt_Language ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each language... *****/ /***** For each language... *****/
@ -3581,9 +3581,9 @@ static void Fig_GetAndShowNumUsrsPerFirstDayOfWeek (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Calendar); HTM_TH (1,1,Txt_Calendar,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each day... *****/ /***** For each day... *****/
@ -3665,9 +3665,9 @@ static void Fig_GetAndShowNumUsrsPerDateFormat (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Format); HTM_TH (1,1,Txt_Format ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each format... *****/ /***** For each format... *****/
@ -3742,9 +3742,9 @@ static void Fig_GetAndShowNumUsrsPerIconSet (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Icons); HTM_TH (1,1,Txt_Icons ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each icon set... *****/ /***** For each icon set... *****/
@ -3898,9 +3898,9 @@ static void Fig_GetAndShowNumUsrsPerTheme (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Theme_SKIN); HTM_TH (1,1,Txt_Theme_SKIN ,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each theme... *****/ /***** For each theme... *****/
@ -3978,9 +3978,9 @@ static void Fig_GetAndShowNumUsrsPerSideColumns (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CM",Txt_Columns); HTM_TH (1,1,Txt_Columns ,"CM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each layout of columns... *****/ /***** For each layout of columns... *****/
@ -4064,9 +4064,9 @@ static void Fig_GetAndShowNumUsrsPerPhotoShape (void)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CM",Txt_User_photos); HTM_TH (1,1,Txt_User_photos ,"CM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each user photo shape... *****/ /***** For each user photo shape... *****/

View File

@ -688,7 +688,7 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat)
/***** Show user's photo *****/ /***** Show user's photo *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"CON_PHOTO COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CON_PHOTO %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Visible) if (Visible)
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
@ -696,7 +696,8 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/***** User's name *****/ /***** User's name *****/
HTM_TD_Begin ("class=\"CON_NAME_FOLLOW COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CON_NAME_FOLLOW %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Visible) if (Visible)
{ {
/* Put form to go to public profile */ /* Put form to go to public profile */
@ -713,22 +714,23 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/***** Icon to follow *****/ /***** Icon to follow *****/
HTM_TD_Begin ("class=\"CON_ICON_FOLLOW RM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CON_ICON_FOLLOW RM %s\"",
if (!Gbl.Usrs.Me.Logged || // Not logged Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_ItsMe (UsrDat->UsrCod)) // It's me if (!Gbl.Usrs.Me.Logged || // Not logged
/* Inactive icon to follow/unfollow */ Usr_ItsMe (UsrDat->UsrCod)) // It's me
Fol_PutInactiveIconToFollowUnfollow (); /* Inactive icon to follow/unfollow */
else // It's not me Fol_PutInactiveIconToFollowUnfollow ();
{ else // It's not me
/* Put form to follow / unfollow */ {
if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod, /* Put form to follow / unfollow */
UsrDat->UsrCod)) // I follow user if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
/* Form to unfollow */ UsrDat->UsrCod)) // I follow user
Fol_PutIconToUnfollow (UsrDat->EnUsrCod); /* Form to unfollow */
else if (Visible) // I do not follow this user and I can follow Fol_PutIconToUnfollow (UsrDat->EnUsrCod);
/* Form to follow */ else if (Visible) // I do not follow this user and I can follow
Fol_PutIconToFollow (UsrDat->EnUsrCod); /* Form to follow */
} Fol_PutIconToFollow (UsrDat->EnUsrCod);
}
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();

View File

@ -2036,9 +2036,9 @@ static void For_ShowForumThreadsHighlightingOneThread (struct For_Forums *Forums
HTM_TABLE_BeginWideMarginPadding (2); HTM_TABLE_BeginWideMarginPadding (2);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BT",NULL); HTM_TH (1,1,NULL ,"BT");
HTM_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons HTM_TH (1,1,NULL ,"CONTEXT_COL"); // Column for contextual icons
HTM_TH (1,1,"LM",Txt_MSG_Subject); HTM_TH (1,1,Txt_MSG_Subject,"LM");
for (Order = Dat_STR_TIME; for (Order = Dat_STR_TIME;
Order <= Dat_END_TIME; Order <= Dat_END_TIME;
@ -2067,10 +2067,10 @@ static void For_ShowForumThreadsHighlightingOneThread (struct For_Forums *Forums
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"RM",Txt_Number_BR_msgs); HTM_TH (1,1,Txt_Number_BR_msgs,"RM");
HTM_TH (1,1,"RM",Txt_Unread_BR_msgs); HTM_TH (1,1,Txt_Unread_BR_msgs,"RM");
HTM_TH (1,1,"RM",Txt_WriBRters); HTM_TH (1,1,Txt_WriBRters ,"RM");
HTM_TH (1,1,"RM",Txt_ReaBRders); HTM_TH (1,1,Txt_ReaBRders ,"RM");
HTM_TR_End (); HTM_TR_End ();

View File

@ -270,7 +270,7 @@ static void Gam_ListAllGames (struct Gam_Games *Games)
if (Gam_CheckIfICanEditGames () || if (Gam_CheckIfICanEditGames () ||
Gam_CheckIfICanListGameQuestions ()) Gam_CheckIfICanListGameQuestions ())
HTM_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons HTM_TH (1,1,NULL,"CONTEXT_COL"); // Column for contextual icons
for (Order = (Gam_Order_t) 0; for (Order = (Gam_Order_t) 0;
Order <= (Gam_Order_t) (Gam_NUM_ORDERS - 1); Order <= (Gam_Order_t) (Gam_NUM_ORDERS - 1);
@ -296,7 +296,7 @@ static void Gam_ListAllGames (struct Gam_Games *Games)
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"RM",Txt_Matches); HTM_TH (1,1,Txt_Matches,"RM");
HTM_TR_End (); HTM_TR_End ();
@ -549,7 +549,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame) if (ShowOnlyThisGame)
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\""); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
else else
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditGames) if (ICanEditGames)
/* Icons to remove/edit this game */ /* Icons to remove/edit this game */
@ -578,8 +579,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
Id,Color); Id,Color);
else else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,Color,Gbl.RowEvenOdd); Id,Color,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Game->TimeUTC[Dat_STR_TIME]) if (Game->TimeUTC[Dat_STR_TIME])
Dat_WriteLocalDateHMSFromUTC (Id,Game->TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Game->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
@ -592,7 +593,7 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame) if (ShowOnlyThisGame)
HTM_TD_Begin ("class=\"LT\""); HTM_TD_Begin ("class=\"LT\"");
else else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Game title */ /* Game title */
Games->GamCod = Game->GamCod; Games->GamCod = Game->GamCod;
@ -625,7 +626,7 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame) if (ShowOnlyThisGame)
HTM_TD_Begin ("class=\"RT\""); HTM_TD_Begin ("class=\"RT\"");
else else
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Games->GamCod = Game->GamCod; Games->GamCod = Game->GamCod;
Frm_BeginForm (ActSeeGam); Frm_BeginForm (ActSeeGam);
@ -652,7 +653,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame) if (ShowOnlyThisGame)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Gam_WriteAuthor (Game); Gam_WriteAuthor (Game);
HTM_TD_End (); HTM_TD_End ();
@ -660,7 +662,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame) if (ShowOnlyThisGame)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Gam_DB_GetGameTxt (Game->GamCod,Txt); Gam_DB_GetGameTxt (Game->GamCod,Txt);
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
@ -1710,10 +1713,10 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,"CT",Txt_Code); HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,"CT",Txt_Tags); HTM_TH (1,1,Txt_Tags ,"CT");
HTM_TH (1,1,"CT",Txt_Question); HTM_TH (1,1,Txt_Question,"CT");
HTM_TR_End (); HTM_TR_End ();

View File

@ -123,6 +123,7 @@ void Gbl_InitializeGlobals (void)
Gbl.Prefs.DateFormat = Dat_FORMAT_DEFAULT; // Default date format Gbl.Prefs.DateFormat = Dat_FORMAT_DEFAULT; // Default date format
Gbl.Prefs.Menu = Mnu_MENU_DEFAULT; // Default menu Gbl.Prefs.Menu = Mnu_MENU_DEFAULT; // Default menu
Gbl.Prefs.Theme = The_THEME_DEFAULT; // Default theme Gbl.Prefs.Theme = The_THEME_DEFAULT; // Default theme
The_SetColorRows ();
Gbl.Prefs.IconSet = Ico_ICON_SET_DEFAULT; // Default icon set Gbl.Prefs.IconSet = Ico_ICON_SET_DEFAULT; // Default icon set
snprintf (Gbl.Prefs.URLTheme,sizeof (Gbl.Prefs.URLTheme),"%s/%s", snprintf (Gbl.Prefs.URLTheme,sizeof (Gbl.Prefs.URLTheme),"%s/%s",
Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]); Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]);
@ -282,8 +283,6 @@ void Gbl_InitializeGlobals (void)
/* To alternate colors where listing rows */ /* To alternate colors where listing rows */
Gbl.RowEvenOdd = 0; Gbl.RowEvenOdd = 0;
Gbl.ColorRows[0] = "COLOR0"; // Darker
Gbl.ColorRows[1] = "COLOR1"; // Lighter
Gbl.WebService.Function = API_unknown; Gbl.WebService.Function = API_unknown;

View File

@ -176,7 +176,7 @@ struct Globals
struct Dat_DateTime Now; struct Dat_DateTime Now;
struct Dat_Date Yesterday; struct Dat_Date Yesterday;
unsigned RowEvenOdd; // To alternate row colors in listings unsigned RowEvenOdd; // To alternate row colors in listings
char *ColorRows[2]; const char *ColorRows[2];
const char *XMLPtr; const char *XMLPtr;
struct struct
{ {

View File

@ -1393,16 +1393,16 @@ static void Grp_WriteHeadingGroupTypes (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH_Begin (1,1,"CM"); HTM_TH_Begin (1,1,"CM");
HTM_Txt (Txt_Type_of_group); HTM_Txt (Txt_Type_of_group);
HTM_BR (); HTM_BR ();
HTM_TxtF ("(%s)",Txt_eg_Lectures_Practicals); HTM_TxtF ("(%s)",Txt_eg_Lectures_Practicals);
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,"CM",Txt_Mandatory_enrolment); HTM_TH (1,1,Txt_Mandatory_enrolment,"CM");
HTM_TH (1,1,"CM",Txt_Multiple_enrolment); HTM_TH (1,1,Txt_Multiple_enrolment ,"CM");
HTM_TH (1,1,"CM",Txt_Opening_of_groups); HTM_TH (1,1,Txt_Opening_of_groups ,"CM");
HTM_TH (1,1,"CM",Txt_Number_of_BR_groups); HTM_TH (1,1,Txt_Number_of_BR_groups,"CM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -1603,21 +1603,21 @@ static void Grp_WriteHeadingGroups (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"CM",Txt_Type_BR_of_group); HTM_TH (1,1,Txt_Type_BR_of_group,"CM");
HTM_TH_Begin (1,1,"CM"); HTM_TH_Begin (1,1,"CM");
HTM_Txt (Txt_Group_name); HTM_Txt (Txt_Group_name);
HTM_BR (); HTM_BR ();
HTM_TxtF ("(%s)",Txt_eg_A_B); HTM_TxtF ("(%s)",Txt_eg_A_B);
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,"CM",Txt_Room); HTM_TH (1,1,Txt_Room,"CM");
for (Role = Rol_TCH; for (Role = Rol_TCH;
Role >= Rol_STD; Role >= Rol_STD;
Role--) Role--)
HTM_TH (1,1,"CM",Txt_ROLES_PLURAL_BRIEF_Abc[Role]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Role],"CM");
HTM_TH (1,1,"CM",Txt_Max_BR_students); HTM_TH (1,1,Txt_Max_BR_students ,"CM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -2326,14 +2326,14 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (2); HTM_TH_Empty (2);
HTM_TH (1,1,"LM",Txt_Group); HTM_TH (1,1,Txt_Group ,"LM");
HTM_TH (1,1,"LM",Txt_Room); HTM_TH (1,1,Txt_Room ,"LM");
for (Role = Rol_TCH; for (Role = Rol_TCH;
Role >= Rol_STD; Role >= Rol_STD;
Role--) Role--)
HTM_TH (1,1,"CM",Txt_ROLES_PLURAL_BRIEF_Abc[Role]); HTM_TH (1,1,Txt_ROLES_PLURAL_BRIEF_Abc[Role],"CM");
HTM_TH (1,1,"CM",Txt_Max_BR_students); HTM_TH (1,1,Txt_Max_BR_students,"CM");
HTM_TH (1,1,"CM",Txt_Vacants); HTM_TH (1,1,Txt_Vacants ,"CM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -666,15 +666,15 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Indent *****/ /***** Indent *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Ico_PutIcon (NumRow == NumRows ? "subend20x20.gif" : Ico_PutIcon (NumRow == NumRows ? "subend20x20.gif" :
"submid20x20.gif", "submid20x20.gif",
"","ICO25x25"); "","ICO25x25");
HTM_TD_End (); HTM_TD_End ();
/***** Write institution, center, degree *****/ /***** Write institution, center, degree *****/
HTM_TD_Begin ("colspan=\"%u\" class=\"DAT_SMALL_NOBR LT COLOR%u\"", HTM_TD_Begin ("colspan=\"%u\" class=\"DAT_SMALL_NOBR LT %s\"",
ColSpan - 1,Gbl.RowEvenOdd); ColSpan - 1,Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Get next institution, center, degree */ /* Get next institution, center, degree */
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);

View File

@ -130,7 +130,7 @@ void Hld_SeeHolidays (void)
HTM_TABLE_BeginWideMarginPadding (2); HTM_TABLE_BeginWideMarginPadding (2);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
for (Order = Hld_ORDER_BY_PLACE; for (Order = Hld_ORDER_BY_PLACE;
Order <= Hld_ORDER_BY_START_DATE; Order <= Hld_ORDER_BY_START_DATE;
Order++) Order++)
{ {
@ -147,12 +147,10 @@ void Hld_SeeHolidays (void)
Frm_EndForm (); Frm_EndForm ();
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH_Begin (1,1,"LM"); HTM_TH_Begin (1,1,"LM");
HTM_TxtF ("&nbsp;%s&nbsp;",Txt_End_date); HTM_TxtF ("&nbsp;%s&nbsp;",Txt_End_date);
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,Txt_Holiday,"LM");
HTM_TH (1,1,"LM",Txt_Holiday);
HTM_TR_End (); HTM_TR_End ();
@ -924,11 +922,11 @@ static void Hld_PutFormToCreateHoliday (const struct Plc_Places *Places)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Place); HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,"LM",Txt_Type); HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_STR_TIME]); HTM_TH (1,1,Txt_START_END_TIME[Dat_STR_TIME],"LM");
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_END_TIME]); HTM_TH (1,1,Txt_START_END_TIME[Dat_END_TIME],"LM");
HTM_TH (1,1,"LM",Txt_Holiday); HTM_TH (1,1,Txt_Holiday ,"LM");
HTM_TR_End (); HTM_TR_End ();
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -1017,13 +1015,13 @@ static void Hld_PutHeadHolidays (void)
extern const char *Txt_Holiday; extern const char *Txt_Holiday;
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"LM",Txt_Place); HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,"LM",Txt_Type); HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_STR_TIME]); HTM_TH (1,1,Txt_START_END_TIME[Dat_STR_TIME],"LM");
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_END_TIME]); HTM_TH (1,1,Txt_START_END_TIME[Dat_END_TIME],"LM");
HTM_TH (1,1,"LM",Txt_Holiday); HTM_TH (1,1,Txt_Holiday ,"LM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -449,16 +449,15 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
/***** Write number of courses with each number of indicators valid *****/ /***** Write number of courses with each number of indicators valid *****/
HTM_TABLE_BeginPadding (2); HTM_TABLE_BeginPadding (2);
/* Header */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
if (PutForm)
if (PutForm) HTM_TH_Empty (1);
HTM_TH_Empty (1); HTM_TH (1,1,Txt_Indicators,"RM");
HTM_TH (1,1,"RM",Txt_Indicators); HTM_TH (1,2,Txt_Courses ,"RM");
HTM_TH (1,2,"RM",Txt_Courses);
HTM_TR_End (); HTM_TR_End ();
for (Ind = 0; for (Ind = 0;
Ind <= Ind_NUM_INDICATORS; Ind <= Ind_NUM_INDICATORS;
Ind++) Ind++)
{ {
@ -572,111 +571,99 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
{ {
case Ind_INDICATORS_BRIEF: case Ind_INDICATORS_BRIEF:
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (3, 1,Txt_Degree ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Degree); HTM_TH (3, 1,Txt_Course ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Course); HTM_TH (3, 1,Txt_Institutional_BR_code ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Institutional_BR_code); HTM_TH (3, 1,Txt_Web_page_of_the_course,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Web_page_of_the_course); HTM_TH (1,11,Txt_Indicators ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,11,"CM COLOR0",Txt_Indicators);
HTM_TR_End (); HTM_TR_End ();
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (2,1,Txt_No_INDEX,"CT %s",Gbl.ColorRows[0]);
HTM_TH (2,1,"CT COLOR0",Txt_No_INDEX); HTM_TH_Begin (1,2,"CT %s",Gbl.ColorRows[0]);
HTM_TH_Begin (1,2,"CT COLOR0");
HTM_TxtF ("(A) %s",Txt_Syllabus_of_the_course); HTM_TxtF ("(A) %s",Txt_Syllabus_of_the_course);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,2,"CT COLOR0"); HTM_TH_Begin (1,2,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(B) %s",Txt_Guided_academic_assignments); HTM_TxtF ("(B) %s",Txt_Guided_academic_assignments);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,2,"CT COLOR0"); HTM_TH_Begin (1,2,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(C) %s",Txt_Online_tutoring); HTM_TxtF ("(C) %s",Txt_Online_tutoring);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,2,"CT COLOR0"); HTM_TH_Begin (1,2,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(D) %s",Txt_Materials); HTM_TxtF ("(D) %s",Txt_Materials);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,2,"CT COLOR0"); HTM_TH_Begin (1,2,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(E) %s",Txt_Assessment_criteria); HTM_TxtF ("(E) %s",Txt_Assessment_criteria);
HTM_TH_End (); HTM_TH_End ();
HTM_TR_End (); HTM_TR_End ();
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TR_End (); HTM_TR_End ();
break; break;
case Ind_INDICATORS_FULL: case Ind_INDICATORS_FULL:
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (3, 1,Txt_Degree ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Degree); HTM_TH (3, 1,Txt_Course ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Course); HTM_TH (3, 1,Txt_Institutional_BR_code ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Institutional_BR_code); HTM_TH (3, 1,Txt_Web_page_of_the_course ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_Web_page_of_the_course); HTM_TH (3, 1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TH (3, 1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],"LM %s",Gbl.ColorRows[0]);
HTM_TH (3,1,"LM COLOR0",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_TH (1,24,Txt_Indicators ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,24,"CM COLOR0",Txt_Indicators);
HTM_TR_End (); HTM_TR_End ();
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (2,1,Txt_No_INDEX,"CT %s",Gbl.ColorRows[0]);
HTM_TH (2,1,"CT COLOR0",Txt_No_INDEX); HTM_TH_Begin (1,5,"CT %s",Gbl.ColorRows[0]);
HTM_TH_Begin (1,5,"CT COLOR0");
HTM_TxtF ("(A) %s",Txt_Syllabus_of_the_course); HTM_TxtF ("(A) %s",Txt_Syllabus_of_the_course);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,5,"CT COLOR0"); HTM_TH_Begin (1,5,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(B) %s",Txt_Guided_academic_assignments); HTM_TxtF ("(B) %s",Txt_Guided_academic_assignments);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,5,"CT COLOR0"); HTM_TH_Begin (1,5,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(C) %s",Txt_Online_tutoring); HTM_TxtF ("(C) %s",Txt_Online_tutoring);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,4,"CT COLOR0"); HTM_TH_Begin (1,4,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(D) %s",Txt_Materials); HTM_TxtF ("(D) %s",Txt_Materials);
HTM_TH_End (); HTM_TH_End ();
HTM_TH_Begin (1,4,"CT COLOR0"); HTM_TH_Begin (1,4,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(E) %s",Txt_Assessment_criteria); HTM_TxtF ("(E) %s",Txt_Assessment_criteria);
HTM_TH_End (); HTM_TH_End ();
HTM_TR_End (); HTM_TR_End ();
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_INFO_TITLE[Inf_LECTURES] ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_LECTURES]); HTM_TH (1,1,Txt_INFO_TITLE[Inf_PRACTICALS] ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_PRACTICALS]); HTM_TH (1,1,Txt_INFO_TITLE[Inf_TEACHING_GUIDE],"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_TEACHING_GUIDE]); HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_Assignments ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Assignments); HTM_TH (1,1,Txt_Files_assignments ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Files_assignments); HTM_TH (1,1,Txt_Files_works ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Files_works); HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_Forum_threads ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Forum_threads); HTM_TH (1,1,Txt_Forum_posts ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Forum_posts); HTM_TH (1,1,Txt_Messages_sent_by_teachers ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Messages_sent_by_teachers); HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_Number_of_files_in_DOCUM_zones,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Number_of_files_in_DOCUM_zones); HTM_TH (1,1,Txt_Number_of_files_in_SHARE_zones,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"RM COLOR0",Txt_Number_of_files_in_SHARE_zones); HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_YES); HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"CM COLOR0",Txt_NO); HTM_TH (1,1,Txt_INFO_TITLE[Inf_ASSESSMENT] ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_ASSESSMENT]); HTM_TH (1,1,Txt_INFO_TITLE[Inf_TEACHING_GUIDE],"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_TEACHING_GUIDE]);
HTM_TR_End (); HTM_TR_End ();
break; break;
} }
@ -712,31 +699,32 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
case Ind_INDICATORS_BRIEF: case Ind_INDICATORS_BRIEF:
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[0]); HTM_Txt (row[0]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[1]); HTM_Txt (row[1]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[3]); HTM_Txt (row[3]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL LM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_A_Begin ("href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\"", HTM_A_Begin ("href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\"",
Cfg_URL_SWAD_CGI,CrsCod,ActCod); Cfg_URL_SWAD_CGI,CrsCod,ActCod);
HTM_TxtF ("%s/?crs=%ld&amp;act=%ld", HTM_TxtF ("%s/?crs=%ld&amp;act=%ld",
@ -744,70 +732,70 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_A_End (); HTM_A_End ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumIndicators); HTM_Unsigned (IndicatorsCrs.NumIndicators);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsSyllabus) if (IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsSyllabus) if (!IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreAssignments) if (IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreAssignments) if (!IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsOnlineTutoring) if (IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsOnlineTutoring) if (!IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreMaterials) if (IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreMaterials) if (!IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsAssessment) if (IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsAssessment) if (!IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
@ -824,31 +812,32 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[0]); HTM_Txt (row[0]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[1]); HTM_Txt (row[1]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[3]); HTM_Txt (row[3]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL LM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_A_Begin ("href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\"", HTM_A_Begin ("href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\"",
Cfg_URL_SWAD_CGI,CrsCod,ActCod); Cfg_URL_SWAD_CGI,CrsCod,ActCod);
HTM_TxtF ("%s/?crs=%ld&amp;act=%ld", HTM_TxtF ("%s/?crs=%ld&amp;act=%ld",
@ -856,176 +845,176 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_A_End (); HTM_A_End ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
NumTchs != 0 ? "DAT_SMALL_GREEN" : NumTchs != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumTchs); HTM_Unsigned (NumTchs);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
NumStds != 0 ? "DAT_SMALL_GREEN" : NumStds != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumStds); HTM_Unsigned (NumStds);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" : IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" : (IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumIndicators); HTM_Unsigned (IndicatorsCrs.NumIndicators);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsSyllabus) if (IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsSyllabus) if (!IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
(IndicatorsCrs.SyllabusLecSrc != Inf_NONE) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.SyllabusLecSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusLecSrc]); HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusLecSrc]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
(IndicatorsCrs.SyllabusPraSrc != Inf_NONE) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.SyllabusPraSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusPraSrc]); HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusPraSrc]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
(IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]); HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreAssignments) if (IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreAssignments) if (!IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumAssignments != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumAssignments); HTM_Unsigned (IndicatorsCrs.NumAssignments);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesAssignments != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumFilesAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesAssignments); HTM_Unsigned (IndicatorsCrs.NumFilesAssignments);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesWorks != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumFilesWorks != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesWorks); HTM_Unsigned (IndicatorsCrs.NumFilesWorks);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsOnlineTutoring) if (IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsOnlineTutoring) if (!IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumThreads != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumThreads != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumThreads); HTM_Unsigned (IndicatorsCrs.NumThreads);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumPosts != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumPosts != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumPosts); HTM_Unsigned (IndicatorsCrs.NumPosts);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumMsgsSentByTchs != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumMsgsSentByTchs != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumMsgsSentByTchs); HTM_Unsigned (IndicatorsCrs.NumMsgsSentByTchs);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreMaterials) if (IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreMaterials) if (!IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesInDocumentZones != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumFilesInDocumentZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesInDocumentZones); HTM_Unsigned (IndicatorsCrs.NumFilesInDocumentZones);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesInSharedZones != 0) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.NumFilesInSharedZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesInSharedZones); HTM_Unsigned (IndicatorsCrs.NumFilesInSharedZones);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsAssessment) if (IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_YES); HTM_Txt (Txt_YES);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"", HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsAssessment) if (!IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_NO); HTM_Txt (Txt_NO);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
(IndicatorsCrs.AssessmentSrc != Inf_NONE) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.AssessmentSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.AssessmentSrc]); HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.AssessmentSrc]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
(IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? "DAT_SMALL_GREEN" : (IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]); HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]);
HTM_TD_End (); HTM_TD_End ();

View File

@ -143,8 +143,8 @@ void Ins_SeeInsWithPendingCtrs (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Institution); HTM_TH (1,1,Txt_Institution ,"LM");
HTM_TH (1,1,"RM",Txt_Centers_ABBREVIATION); HTM_TH (1,1,Txt_Centers_ABBREVIATION,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** List the institutions *****/ /***** List the institutions *****/
@ -491,10 +491,10 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable)
} }
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"RM",Txt_Centers_ABBREVIATION); HTM_TH (1,1,Txt_Centers_ABBREVIATION ,"RM");
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION); HTM_TH (1,1,Txt_Degrees_ABBREVIATION ,"RM");
HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION); HTM_TH (1,1,Txt_Courses_ABBREVIATION ,"RM");
HTM_TH (1,1,"RM",Txt_Departments_ABBREVIATION); HTM_TH (1,1,Txt_Departments_ABBREVIATION,"RM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR (); HTM_BR ();
@ -1554,19 +1554,19 @@ static void Ins_PutHeadInstitutionsForEdition (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Short_name_of_the_institution); HTM_TH (1,1,Txt_Short_name_of_the_institution,"LM");
HTM_TH (1,1,"LM",Txt_Full_name_of_the_institution); HTM_TH (1,1,Txt_Full_name_of_the_institution ,"LM");
HTM_TH (1,1,"LM",Txt_WWW); HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TH (1,1,"RM",Txt_Users); HTM_TH (1,1,Txt_Users ,"RM");
HTM_TH (1,1,"RM",Txt_Centers_ABBREVIATION); HTM_TH (1,1,Txt_Centers_ABBREVIATION ,"RM");
HTM_TH_Begin (1,1,"RM"); HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]); HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR (); HTM_BR ();
HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]); HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
HTM_TH_End (); HTM_TH_End ();
HTM_TH (1,1,"LM",Txt_Requester); HTM_TH (1,1,Txt_Requester ,"LM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TR_End (); HTM_TR_End ();

View File

@ -732,13 +732,11 @@ static void Lnk_PutHeadLinks (void)
extern const char *Txt_WWW; extern const char *Txt_WWW;
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Short_name,"LM");
HTM_TH (1,1,"LM",Txt_Short_name); HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,"LM",Txt_Full_name); HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TH (1,1,"LM",Txt_WWW);
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -186,14 +186,14 @@ void Log_GetAndShowLastClicks (void)
/* Heading row */ /* Heading row */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LC_CLK",Txt_Click); // Click HTM_TH (1,1,Txt_Click ,"LC_CLK"); // Click
HTM_TH (1,1,"LC_TIM",Txt_ELAPSED_TIME); // Elapsed time HTM_TH (1,1,Txt_ELAPSED_TIME,"LC_TIM"); // Elapsed time
HTM_TH (1,1,"LC_ROL",Txt_Role); // Role HTM_TH (1,1,Txt_Role ,"LC_ROL"); // Role
HTM_TH (1,1,"LC_CTY",Txt_Country); // Country HTM_TH (1,1,Txt_Country ,"LC_CTY"); // Country
HTM_TH (1,1,"LC_INS",Txt_Institution); // Institution HTM_TH (1,1,Txt_Institution ,"LC_INS"); // Institution
HTM_TH (1,1,"LC_CTR",Txt_Center); // Center HTM_TH (1,1,Txt_Center ,"LC_CTR"); // Center
HTM_TH (1,1,"LC_DEG",Txt_Degree); // Degree HTM_TH (1,1,Txt_Degree ,"LC_DEG"); // Degree
HTM_TH (1,1,"LC_ACT",Txt_Action); // Action HTM_TH (1,1,Txt_Action ,"LC_ACT"); // Action
HTM_TR_End (); HTM_TR_End ();
for (NumClick = 0; for (NumClick = 0;

View File

@ -126,7 +126,7 @@ void Mai_SeeMailDomains (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
for (Order = Mai_ORDER_BY_DOMAIN; for (Order = Mai_ORDER_BY_DOMAIN;
Order <= Mai_ORDER_BY_USERS; Order <= Mai_ORDER_BY_USERS;
Order++) Order++)
{ {
@ -654,8 +654,8 @@ static void Mai_PutFormToCreateMailDomain (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN]); HTM_TH (1,1,Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN],"LM");
HTM_TH (1,1,"LM",Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO]); HTM_TH (1,1,Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO] ,"LM");
HTM_TR_End (); HTM_TR_End ();
/***** Second row *****/ /***** Second row *****/
@ -696,11 +696,11 @@ static void Mai_PutHeadMailDomains (void)
extern const char *Txt_EMAIL_DOMAIN_ORDER[3]; extern const char *Txt_EMAIL_DOMAIN_ORDER[3];
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"LM",Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN]); HTM_TH (1,1,Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN],"LM");
HTM_TH (1,1,"LM",Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO ]); HTM_TH (1,1,Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO ],"LM");
HTM_TH (1,1,"RM",Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_USERS ]); HTM_TH (1,1,Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_USERS ],"RM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -98,9 +98,9 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void)
Mrk_GetNumRowsHeaderAndFooter (&Marks); Mrk_GetNumRowsHeaderAndFooter (&Marks);
/***** Write the number of rows of header *****/ /***** Write the number of rows of header *****/
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassFormInBoxNoWrap[Gbl.Prefs.Theme], The_ClassFormInBoxNoWrap[Gbl.Prefs.Theme],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Frm_BeginForm (Gbl.Crs.Grps.GrpCod > 0 ? ActChgNumRowHeaGrp : // Group zone Frm_BeginForm (Gbl.Crs.Grps.GrpCod > 0 ? ActChgNumRowHeaGrp : // Group zone
ActChgNumRowHeaCrs); // Course zone ActChgNumRowHeaCrs); // Course zone
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk); Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
@ -109,16 +109,16 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void)
snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot),"%u",Marks.Header); snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot),"%u",Marks.Header);
HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_HEADER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot, HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_HEADER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot,
HTM_SUBMIT_ON_CHANGE, HTM_SUBMIT_ON_CHANGE,
"size=\"1\" class=\"LST_EDIT_ROWS COLOR%u\"", "size=\"1\" class=\"LST_EDIT_ROWS %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_End (); HTM_LABEL_End ();
Frm_EndForm (); Frm_EndForm ();
HTM_TD_End (); HTM_TD_End ();
/***** Write the number of rows of footer *****/ /***** Write the number of rows of footer *****/
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassFormInBoxNoWrap[Gbl.Prefs.Theme], The_ClassFormInBoxNoWrap[Gbl.Prefs.Theme],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Frm_BeginForm (Gbl.Crs.Grps.GrpCod > 0 ? ActChgNumRowFooGrp : // Group zone Frm_BeginForm (Gbl.Crs.Grps.GrpCod > 0 ? ActChgNumRowFooGrp : // Group zone
ActChgNumRowFooCrs); // Course zone ActChgNumRowFooCrs); // Course zone
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk); Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
@ -127,8 +127,8 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void)
snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot),"%u",Marks.Footer); snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot),"%u",Marks.Footer);
HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_FOOTER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot, HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_FOOTER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot,
HTM_SUBMIT_ON_CHANGE, HTM_SUBMIT_ON_CHANGE,
"size=\"1\" class=\"LST_EDIT_ROWS COLOR%u\"", "size=\"1\" class=\"LST_EDIT_ROWS %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_End (); HTM_LABEL_End ();
Frm_EndForm (); Frm_EndForm ();
HTM_TD_End (); HTM_TD_End ();

View File

@ -453,7 +453,8 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/* Form to edit match */ /* Form to edit match */
HTM_TD_Begin ("colspan=\"8\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"8\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Mch_PutFormExistingMatch (Games,&Match,Anchor); // Form to fill in data and edit this match Mch_PutFormExistingMatch (Games,&Match,Anchor); // Form to fill in data and edit this match
HTM_TD_End (); HTM_TD_End ();
@ -491,13 +492,13 @@ static void Mch_ListOneOrMoreMatchesHeading (bool ICanEditMatches)
HTM_TH_Empty (1); HTM_TH_Empty (1);
/***** The rest of columns *****/ /***** The rest of columns *****/
HTM_TH (1,1,"LT",Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN]); HTM_TH (1,1,Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN],"LT");
HTM_TH (1,1,"LT",Txt_START_END_TIME[Gam_ORDER_BY_START_DATE]); HTM_TH (1,1,Txt_START_END_TIME[Gam_ORDER_BY_START_DATE] ,"LT");
HTM_TH (1,1,"LT",Txt_START_END_TIME[Gam_ORDER_BY_END_DATE ]); HTM_TH (1,1,Txt_START_END_TIME[Gam_ORDER_BY_END_DATE ] ,"LT");
HTM_TH (1,1,"LT",Txt_Match); HTM_TH (1,1,Txt_Match ,"LT");
HTM_TH (1,1,"RT",Txt_Players); HTM_TH (1,1,Txt_Players ,"RT");
HTM_TH (1,1,"CT",Txt_Status); HTM_TH (1,1,Txt_Status ,"CT");
HTM_TH (1,1,"CT",Txt_Results); HTM_TH (1,1,Txt_Results ,"CT");
/***** End row *****/ /***** End row *****/
HTM_TR_End (); HTM_TR_End ();
@ -587,7 +588,7 @@ static void Mch_ListOneOrMoreMatchesIcons (struct Gam_Games *Games,
void Mch_ListOneOrMoreMatchesAuthor (const struct Mch_Match *Match) void Mch_ListOneOrMoreMatchesAuthor (const struct Mch_Match *Match)
{ {
/***** Match author (teacher) *****/ /***** Match author (teacher) *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Usr_WriteAuthor1Line (Match->UsrCod,false); Usr_WriteAuthor1Line (Match->UsrCod,false);
HTM_TD_End (); HTM_TD_End ();
} }
@ -607,11 +608,11 @@ void Mch_ListOneOrMoreMatchesTimes (const struct Mch_Match *Match,unsigned Uniqu
{ {
if (asprintf (&Id,"mch_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0) if (asprintf (&Id,"mch_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id, Id,
Match->Status.Showing == Mch_END ? "DATE_RED" : Match->Status.Showing == Mch_END ? "DATE_RED" :
"DATE_GREEN", "DATE_GREEN",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Match->TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Match->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x7); true,true,true,0x7);
@ -630,7 +631,7 @@ static void Mch_ListOneOrMoreMatchesTitleGrps (const struct Mch_Match *Match,
extern const char *Txt_Play; extern const char *Txt_Play;
extern const char *Txt_Resume; extern const char *Txt_Resume;
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
/***** Match title *****/ /***** Match title *****/
@ -720,8 +721,8 @@ void Mch_ListOneOrMoreMatchesNumPlayers (const struct Mch_Match *Match)
extern const char *The_ClassDat[The_NUM_THEMES]; extern const char *The_ClassDat[The_NUM_THEMES];
/***** Number of players who have answered any question in the match ******/ /***** Number of players who have answered any question in the match ******/
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (Mch_DB_GetNumUsrsWhoHavePlayedMch (Match->MchCod)); HTM_Unsigned (Mch_DB_GetNumUsrsWhoHavePlayedMch (Match->MchCod));
HTM_TD_End (); HTM_TD_End ();
} }
@ -736,8 +737,8 @@ static void Mch_ListOneOrMoreMatchesStatus (struct Mch_Match *Match,unsigned Num
extern const char *Txt_Play; extern const char *Txt_Play;
extern const char *Txt_Resume; extern const char *Txt_Resume;
HTM_TD_Begin ("class=\"%s CT COLOR%u\"", HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Match->Status.Showing != Mch_END) // Match not over if (Match->Status.Showing != Mch_END) // Match not over
{ {
@ -777,8 +778,8 @@ static void Mch_ListOneOrMoreMatchesResult (struct Gam_Games *Games,
[Rol_SYS_ADM] = Mch_ListOneOrMoreMatchesResultTch, [Rol_SYS_ADM] = Mch_ListOneOrMoreMatchesResultTch,
}; };
HTM_TD_Begin ("class=\"%s CT COLOR%u\"", HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Function[Gbl.Usrs.Me.Role.Logged]) if (Function[Gbl.Usrs.Me.Role.Logged])
Function[Gbl.Usrs.Me.Role.Logged] (Games,Match); Function[Gbl.Usrs.Me.Role.Logged] (Games,Match);

View File

@ -559,10 +559,8 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,2,NULL ,NULL);
HTM_TH (1,2,NULL,NULL); HTM_TH (1,1,Txt_Game,"LM");
HTM_TH (1,1,"LM",Txt_Game);
HTM_TR_End (); HTM_TR_End ();
/***** List the events *****/ /***** List the events *****/
@ -577,8 +575,9 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
/* Write a row for this event */ /* Write a row for this event */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s CT COLOR%u\"", HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_INPUT_CHECKBOX ("GamCod",HTM_DONT_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("GamCod",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Gam%u\" value=\"%ld\"%s", "id=\"Gam%u\" value=\"%ld\"%s",
NumGame,Games->Lst[NumGame].GamCod, NumGame,Games->Lst[NumGame].GamCod,
@ -586,15 +585,17 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
""); "");
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_Begin ("for=\"Gam%u\"",NumGame); HTM_LABEL_Begin ("for=\"Gam%u\"",NumGame);
HTM_TxtF ("%u:",NumGame + 1); HTM_TxtF ("%u:",NumGame + 1);
HTM_LABEL_End (); HTM_LABEL_End ();
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Game.Title); HTM_Txt (Game.Title);
HTM_TD_End (); HTM_TD_End ();
@ -644,38 +645,35 @@ static void MchRes_ShowHeaderMchResults (Usr_MeOrOther_t MeOrOther)
/***** First row *****/ /***** First row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (3,2,Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
HTM_TH (3,2,"CT LINE_BOTTOM",Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex : Usr_SEX_UNKNOWN]
Usr_SEX_UNKNOWN]); ,"CT LINE_BOTTOM");
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_STR_TIME]); HTM_TH (3,1,Txt_START_END_TIME[Dat_STR_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_END_TIME]); HTM_TH (3,1,Txt_START_END_TIME[Dat_END_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_Match); HTM_TH (3,1,Txt_Match ,"LT LINE_BOTTOM");
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Questions); HTM_TH (3,1,Txt_Questions ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,2,"CT LINE_LEFT",Txt_Answers); HTM_TH (1,2,Txt_Answers ,"CT LINE_LEFT");
HTM_TH (1,2,"CT LINE_LEFT",Txt_Score); HTM_TH (1,2,Txt_Score ,"CT LINE_LEFT");
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Grade); HTM_TH (3,1,Txt_Grade ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (3,1,"LINE_BOTTOM LINE_LEFT",NULL); HTM_TH (3,1,NULL ,"LINE_BOTTOM LINE_LEFT");
HTM_TR_End (); HTM_TR_End ();
/***** Second row *****/ /***** Second row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,Txt_ANSWERS_non_blank,"RT LINE_LEFT");
HTM_TH (1,1,"RT LINE_LEFT",Txt_ANSWERS_non_blank); HTM_TH (1,1,Txt_ANSWERS_blank ,"RT");
HTM_TH (1,1,"RT",Txt_ANSWERS_blank); HTM_TH (1,1,Txt_total ,"RT LINE_LEFT");
HTM_TH (1,1,"RT LINE_LEFT",Txt_total); HTM_TH (1,1,Txt_average ,"RT");
HTM_TH (1,1,"RT",Txt_average);
HTM_TR_End (); HTM_TR_End ();
/***** Third row *****/ /***** Third row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"{-1&le;<em>p<sub>i</sub></em>&le;1}" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","{-1&le;<em>p<sub>i</sub></em>&le;1}"); HTM_TH (1,1,"{<em>p<sub>i</sub></em>=0}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"RT LINE_BOTTOM","{<em>p<sub>i</sub></em>=0}"); HTM_TH (1,1,"<em>&Sigma;p<sub>i</sub></em>" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","<em>&Sigma;p<sub>i</sub></em>"); HTM_TH (1,1,"-1&le;"
HTM_TH (1,1,"RT LINE_BOTTOM","-1&le;<em style=\"text-decoration:overline;\">p</em>&le;1"); "<em style=\"text-decoration:overline;\">p</em>"
"&le;1" ,"RT LINE_BOTTOM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -793,8 +791,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
if (asprintf (&Id,"mch_res_time_%u_%u", if (asprintf (&Id,"mch_res_time_%u_%u",
(unsigned) StartEndTime,UniqueId) < 0) (unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id =\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id =\"%s\" class=\"%s LT %s\"",
Id,The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); Id,The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -803,8 +802,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
} }
/* Write match title */ /* Write match title */
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Match.Title); HTM_Txt (Match.Title);
HTM_TD_End (); HTM_TD_End ();
@ -817,8 +817,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
} }
/* Write number of questions */ /* Write number of questions */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
HTM_Unsigned (Print.NumQsts.All); HTM_Unsigned (Print.NumQsts.All);
else else
@ -826,8 +827,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
HTM_TD_End (); HTM_TD_End ();
/* Write number of non-blank answers */ /* Write number of non-blank answers */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
if (Print.NumQsts.NotBlank) if (Print.NumQsts.NotBlank)
@ -840,8 +842,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
HTM_TD_End (); HTM_TD_End ();
/* Write number of blank answers */ /* Write number of blank answers */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank; NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank;
if (ICanView.Score) if (ICanView.Score)
{ {
@ -855,8 +858,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
HTM_TD_End (); HTM_TD_End ();
/* Write score */ /* Write score */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
HTM_Double2Decimals (Print.Score); HTM_Double2Decimals (Print.Score);
@ -868,8 +872,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
HTM_TD_End (); HTM_TD_End ();
/* Write average score per question */ /* Write average score per question */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
HTM_Double2Decimals (Print.NumQsts.All ? Print.Score / HTM_Double2Decimals (Print.NumQsts.All ? Print.Score /
(double) Print.NumQsts.All : (double) Print.NumQsts.All :
@ -879,8 +884,9 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
HTM_TD_End (); HTM_TD_End ();
/* Write grade over maximum grade */ /* Write grade over maximum grade */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
Grade = TstPrn_ComputeGrade (Print.NumQsts.All,Print.Score,Game.MaxGrade); Grade = TstPrn_ComputeGrade (Print.NumQsts.All,Print.Score,Game.MaxGrade);
@ -892,7 +898,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
HTM_TD_End (); HTM_TD_End ();
/* Link to show this result */ /* Link to show this result */
HTM_TD_Begin ("class=\"RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Result) if (ICanView.Result)
{ {
Games->GamCod = Match.GamCod; Games->GamCod = Match.GamCod;
@ -928,33 +935,33 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
else // No results else // No results
{ {
/* Columns for dates and match */ /* Columns for dates and match */
HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for questions */ /* Column for questions */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Columns for answers */ /* Columns for answers */
HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Columns for score */ /* Columns for score */
HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for grade */ /* Column for grade */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for link to show the result */ /* Column for link to show the result */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
@ -982,58 +989,66 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Row title *****/ /***** Row title *****/
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColonNBSP (Txt_Matches); HTM_TxtColonNBSP (Txt_Matches);
HTM_Unsigned (NumResults); HTM_Unsigned (NumResults);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of questions *****/ /***** Write total number of questions *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumResults) if (NumResults)
HTM_Unsigned (NumTotalQsts->All); HTM_Unsigned (NumTotalQsts->All);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of non-blank answers *****/ /***** Write total number of non-blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumResults) if (NumResults)
HTM_Unsigned (NumTotalQsts->NotBlank); HTM_Unsigned (NumTotalQsts->NotBlank);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of blank answers *****/ /***** Write total number of blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumResults) if (NumResults)
HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank); HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank);
HTM_TD_End (); HTM_TD_End ();
/***** Write total score *****/ /***** Write total score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (TotalScore); HTM_Double2Decimals (TotalScore);
HTM_Txt ("/"); HTM_Txt ("/");
HTM_Unsigned (NumTotalQsts->All); HTM_Unsigned (NumTotalQsts->All);
HTM_TD_End (); HTM_TD_End ();
/***** Write average score per question *****/ /***** Write average score per question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / HTM_Double2Decimals (NumTotalQsts->All ? TotalScore /
(double) NumTotalQsts->All : (double) NumTotalQsts->All :
0.0); 0.0);
HTM_TD_End (); HTM_TD_End ();
/***** Write total grade *****/ /***** Write total grade *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (TotalGrade); HTM_Double2Decimals (TotalGrade);
HTM_TD_End (); HTM_TD_End ();
/***** Last cell *****/ /***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/***** End row *****/ /***** End row *****/

View File

@ -538,8 +538,7 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
/***** Title *****/ /***** Title *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Begin (1,ColSpan,Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme])); HTM_TH_Begin (1,ColSpan,"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
Str_FreeStrings ();
HTM_LABEL_Begin ("for=\"OtherRecipients\""); HTM_LABEL_Begin ("for=\"OtherRecipients\"");
HTM_TxtColon (StdsAndTchsWritten ? Txt_Other_recipients : HTM_TxtColon (StdsAndTchsWritten ? Txt_Other_recipients :
Txt_Recipients); Txt_Recipients);

View File

@ -351,9 +351,9 @@ void Net_ShowWebAndSocialNetworksStats (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Web_social_network); HTM_TH (1,1,Txt_Web_social_network,"LM");
HTM_TH (1,1,"RM",Txt_Number_of_users); HTM_TH (1,1,Txt_Number_of_users ,"RM");
HTM_TH (1,1,"RM",Txt_PERCENT_of_users); HTM_TH (1,1,Txt_PERCENT_of_users ,"RM");
HTM_TR_End (); HTM_TR_End ();
/***** For each web / social network... *****/ /***** For each web / social network... *****/

View File

@ -388,11 +388,11 @@ void Ntf_ShowMyNotifications (void)
/***** Heading *****/ /***** Heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,2,"LM",Txt_Event); HTM_TH (1,2,Txt_Event ,"LM");
HTM_TH (1,1,"LM",Txt_MSG_From); HTM_TH (1,1,Txt_MSG_From,"LM");
HTM_TH (1,1,"LM",Txt_Location); HTM_TH (1,1,Txt_Location,"LM");
HTM_TH (1,1,"CM",Txt_Date); HTM_TH (1,1,Txt_Date ,"CM");
HTM_TH (1,1,"LM",Txt_Email); HTM_TH (1,1,Txt_Email ,"LM");
HTM_TR_End (); HTM_TR_End ();
/***** List notifications one by one *****/ /***** List notifications one by one *****/
@ -1521,8 +1521,8 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"CM",Txt_Create_BR_notification); HTM_TH (1,1,Txt_Create_BR_notification,"CM");
HTM_TH (1,1,"CM",Txt_Notify_me_BR_by_email); HTM_TH (1,1,Txt_Notify_me_BR_by_email ,"CM");
HTM_TR_End (); HTM_TR_End ();
/***** Checkbox to activate internal notifications and email notifications /***** Checkbox to activate internal notifications and email notifications

View File

@ -2216,14 +2216,12 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
/***** Write heading *****/ /***** Write heading *****/
HTM_TABLE_BeginCenterPadding (2); HTM_TABLE_BeginCenterPadding (2);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,Txt_No_INDEX,"RT");
HTM_TH (1,1,"RT",Txt_No_INDEX); HTM_TH (1,1,Txt_Degree ,"CT");
HTM_TH (1,1,"CT",Txt_Degree); for (Sex = (Usr_Sex_t) 0;
for (Sex = (Usr_Sex_t) 0; Sex <= (Usr_Sex_t) (Usr_NUM_SEXS - 1);
Sex <= (Usr_Sex_t) (Usr_NUM_SEXS - 1); Sex++)
Sex++) HTM_TH (1,1,Txt_SEX_PLURAL_Abc[Sex],"CT");
HTM_TH (1,1,"CT",Txt_SEX_PLURAL_Abc[Sex]);
HTM_TR_End (); HTM_TR_End ();
/***** Get degrees *****/ /***** Get degrees *****/
@ -2244,14 +2242,16 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Show logo and name of this degree *****/ /***** Show logo and name of this degree *****/
HTM_TD_Begin ("class=\"%s RM COLOR%u\"", HTM_TD_Begin ("class=\"%s RM %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (++NumDegsNotEmpty); HTM_Unsigned (++NumDegsNotEmpty);
HTM_TD_End (); HTM_TD_End ();
/***** Show logo and name of this degree *****/ /***** Show logo and name of this degree *****/
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (SeeOrPrint == Pho_DEGREES_SEE) if (SeeOrPrint == Pho_DEGREES_SEE)
{ {
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf, Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf,
@ -2272,7 +2272,8 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
{ {
/***** Show average photo of students belonging to this degree *****/ /***** Show average photo of students belonging to this degree *****/
Pho_GetNumStdsInDegree (Deg.DegCod,Sex,&NumStds,&NumStdsWithPhoto); Pho_GetNumStdsInDegree (Deg.DegCod,Sex,&NumStds,&NumStdsWithPhoto);
HTM_TD_Begin ("class=\"CLASSPHOTO RM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CLASSPHOTO RM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
Pho_ShowDegreeAvgPhotoAndStat (&Deg,DegPhotos, Pho_ShowDegreeAvgPhotoAndStat (&Deg,DegPhotos,
SeeOrPrint,Sex, SeeOrPrint,Sex,

View File

@ -775,11 +775,11 @@ static void Plc_PutHeadPlaces (void)
extern const char *Txt_Centers; extern const char *Txt_Centers;
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"LM",Txt_Short_name); HTM_TH (1,1,Txt_Short_name,"LM");
HTM_TH (1,1,"LM",Txt_Full_name); HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,"RM",Txt_Centers); HTM_TH (1,1,Txt_Centers ,"RM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -111,10 +111,8 @@ void Plg_ListPlugins (void)
/***** Write table heading *****/ /***** Write table heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Plugin); HTM_TH (1,1,Txt_Plugin,"LM");
HTM_TR_End (); HTM_TR_End ();
/***** Write all plugins *****/ /***** Write all plugins *****/
@ -789,12 +787,12 @@ static void Plg_PutFormToCreatePlugin (void)
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Name); HTM_TH (1,1,Txt_Name ,"LM");
HTM_TH (1,1,"LM",Txt_Description); HTM_TH (1,1,Txt_Description ,"LM");
HTM_TH (1,1,"LM",Txt_Logo); HTM_TH (1,1,Txt_Logo ,"LM");
HTM_TH (1,1,"LM",Txt_Application_key); HTM_TH (1,1,Txt_Application_key,"LM");
HTM_TH (1,1,"LM",Txt_URL); HTM_TH (1,1,Txt_URL ,"LM");
HTM_TH (1,1,"LM",Txt_IP); HTM_TH (1,1,Txt_IP ,"LM");
HTM_TR_End (); HTM_TR_End ();
/***** Row begin *****/ /***** Row begin *****/
@ -868,14 +866,14 @@ static void Plg_PutHeadPlugins (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Name); HTM_TH (1,1,Txt_Name ,"LM");
HTM_TH (1,1,"LM",Txt_Description); HTM_TH (1,1,Txt_Description ,"LM");
HTM_TH (1,1,"LM",Txt_Logo); HTM_TH (1,1,Txt_Logo ,"LM");
HTM_TH (1,1,"LM",Txt_Application_key); HTM_TH (1,1,Txt_Application_key,"LM");
HTM_TH (1,1,"LM",Txt_URL); HTM_TH (1,1,Txt_URL ,"LM");
HTM_TH (1,1,"LM",Txt_IP); HTM_TH (1,1,Txt_IP ,"LM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -1208,10 +1208,10 @@ void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs)
/***** Show row *****/ /***** Show row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
Prf_ShowUsrInRanking (&UsrDat,Rank,ItsMe); Prf_ShowUsrInRanking (&UsrDat,Rank,ItsMe);
HTM_TD_Begin ("class=\"RM %s COLOR%u\"", HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" : ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Long (Figure); HTM_Long (Figure);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
@ -1276,10 +1276,10 @@ void Prf_GetAndShowRankingClicksPerDay (void)
/***** Show row *****/ /***** Show row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
Prf_ShowUsrInRanking (&UsrDat,Rank,ItsMe); Prf_ShowUsrInRanking (&UsrDat,Rank,ItsMe);
HTM_TD_Begin ("class=\"RM %s COLOR%u\"", HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" : ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DoubleFewDigits (NumClicksPerDay); HTM_DoubleFewDigits (NumClicksPerDay);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
@ -1311,15 +1311,15 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank,bool ItsM
}; };
bool Visible = Pri_ShowingIsAllowed (UsrDat->BaPrfVisibility,UsrDat); bool Visible = Pri_ShowingIsAllowed (UsrDat->BaPrfVisibility,UsrDat);
HTM_TD_Begin ("class=\"RM %s COLOR%u\"", HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" : ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("#%u",Rank); HTM_TxtF ("#%u",Rank);
HTM_TD_End (); HTM_TD_End ();
/***** Check if I can see the public profile *****/ /***** Check if I can see the public profile *****/
HTM_TD_Begin ("class=\"RANK_PHOTO COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RANK_PHOTO %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Visible) if (Visible)
/***** User's photo *****/ /***** User's photo *****/
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
@ -1328,7 +1328,7 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank,bool ItsM
HTM_TD_End (); HTM_TD_End ();
/***** Put form to go to public profile *****/ /***** Put form to go to public profile *****/
HTM_TD_Begin ("class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Visible) if (Visible)
{ {
Frm_BeginForm (ActSeeOthPubPrf); Frm_BeginForm (ActSeeOthPubPrf);

View File

@ -401,7 +401,7 @@ static void Prg_WriteRowItem (unsigned NumItem,struct Prg_Item *Item,
/***** Forms to remove/edit this program item *****/ /***** Forms to remove/edit this program item *****/
if (!PrintView) if (!PrintView)
{ {
HTM_TD_Begin ("class=\"PRG_COL1 LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"PRG_COL1 LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Prg_PutFormsToRemEditOneItem (NumItem,Item); Prg_PutFormsToRemEditOneItem (NumItem,Item);
HTM_TD_End (); HTM_TD_End ();
} }
@ -411,13 +411,13 @@ static void Prg_WriteRowItem (unsigned NumItem,struct Prg_Item *Item,
NumCol < Item->Hierarchy.Level; NumCol < Item->Hierarchy.Level;
NumCol++) NumCol++)
{ {
HTM_TD_Begin ("class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
/***** Item number *****/ /***** Item number *****/
HTM_TD_Begin ("class=\"PRG_NUM %s RT COLOR%u\"", HTM_TD_Begin ("class=\"PRG_NUM %s RT %s\"",
TitleClass,Gbl.RowEvenOdd); TitleClass,Gbl.ColorRows[Gbl.RowEvenOdd]);
Prg_WriteNumItem (Item->Hierarchy.Level); Prg_WriteNumItem (Item->Hierarchy.Level);
HTM_TD_End (); HTM_TD_End ();
@ -428,8 +428,8 @@ static void Prg_WriteRowItem (unsigned NumItem,struct Prg_Item *Item,
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN\"", HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN\"",
ColSpan); ColSpan);
else else
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN COLOR%u\"", HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN %s\"",
ColSpan,Gbl.RowEvenOdd); ColSpan,Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Title */ /* Title */
HTM_DIV_Begin ("class=\"%s\"",TitleClass); HTM_DIV_Begin ("class=\"%s\"",TitleClass);
@ -467,13 +467,13 @@ static void Prg_WriteRowItem (unsigned NumItem,struct Prg_Item *Item,
(Item->Open ? "DATE_GREEN" : (Item->Open ? "DATE_GREEN" :
"DATE_RED")); "DATE_RED"));
else else
HTM_TD_Begin ("id=\"%s\" class=\"PRG_DATE %s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"PRG_DATE %s LT %s\"",
Id, Id,
LightStyle ? (Item->Open ? "DATE_GREEN_LIGHT" : LightStyle ? (Item->Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") : "DATE_RED_LIGHT") :
(Item->Open ? "DATE_GREEN" : (Item->Open ? "DATE_GREEN" :
"DATE_RED"), "DATE_RED"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Item->TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Item->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x7); true,true,true,0x7);
@ -520,7 +520,7 @@ static void Prg_WriteRowWithItemForm (Prg_CreateOrChangeItem_t CreateOrChangeIte
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Column under icons *****/ /***** Column under icons *****/
HTM_TD_Begin ("class=\"PRG_COL1 LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"PRG_COL1 LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/***** Indent depending on the level *****/ /***** Indent depending on the level *****/
@ -528,20 +528,21 @@ static void Prg_WriteRowWithItemForm (Prg_CreateOrChangeItem_t CreateOrChangeIte
NumCol < FormLevel; NumCol < FormLevel;
NumCol++) NumCol++)
{ {
HTM_TD_Begin ("class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
/***** Item number *****/ /***** Item number *****/
HTM_TD_Begin ("class=\"PRG_NUM %s RT COLOR%u\"",TitleClass,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"PRG_NUM %s RT %s\"",
TitleClass,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (CreateOrChangeItem == Prg_PUT_FORM_CREATE_ITEM) if (CreateOrChangeItem == Prg_PUT_FORM_CREATE_ITEM)
Prg_WriteNumNewItem (FormLevel); Prg_WriteNumNewItem (FormLevel);
HTM_TD_End (); HTM_TD_End ();
/***** Show form to create new item as child *****/ /***** Show form to create new item as child *****/
ColSpan = (Prg_GetMaxItemLevel () + 4) - FormLevel; ColSpan = (Prg_GetMaxItemLevel () + 4) - FormLevel;
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN COLOR%u\"", HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN %s\"",
ColSpan,Gbl.RowEvenOdd); ColSpan,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin ("item_form"); HTM_ARTICLE_Begin ("item_form");
ShowForm[CreateOrChangeItem] (ItmCod); ShowForm[CreateOrChangeItem] (ItmCod);
HTM_ARTICLE_End (); HTM_ARTICLE_End ();

View File

@ -959,7 +959,7 @@ static void Prj_ShowProjectsHead (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TH (1,1,"CM",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX,"CM");
break; break;
default: default:
break; break;
@ -970,7 +970,7 @@ static void Prj_ShowProjectsHead (struct Prj_Projects *Projects,
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
case Prj_FILE_BROWSER_PROJECT: case Prj_FILE_BROWSER_PROJECT:
HTM_TH (1,1,"CONTEXT_COL",NULL); HTM_TH (1,1,NULL,"CONTEXT_COL");
break; break;
default: default:
break; break;
@ -1029,23 +1029,21 @@ static void Prj_ShowTableAllProjectsHead (void)
const char *Class = Str_BuildString ("LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]); const char *Class = Str_BuildString ("LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
for (Order = (Prj_Order_t) 0; for (Order = (Prj_Order_t) 0;
Order <= (Prj_Order_t) (Prj_NUM_ORDERS - 1); Order <= (Prj_Order_t) (Prj_NUM_ORDERS - 1);
Order++) Order++)
HTM_TH (1,1,Class,Txt_PROJECT_ORDER[Order]); HTM_TH (1,1,Txt_PROJECT_ORDER[Order],Class);
HTM_TH (1,1,Class,Txt_Assigned_QUESTION); HTM_TH (1,1,Txt_Assigned_QUESTION ,Class);
HTM_TH (1,1,Class,Txt_Number_of_students); HTM_TH (1,1,Txt_Number_of_students,Class);
for (NumRoleToShow = 0; for (NumRoleToShow = 0;
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW; NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
NumRoleToShow++) NumRoleToShow++)
HTM_TH (1,1,Class,Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]); HTM_TH (1,1,Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]],Class);
HTM_TH (1,1,Class,Txt_Proposal); HTM_TH (1,1,Txt_Proposal ,Class);
HTM_TH (1,1,Class,Txt_Description); HTM_TH (1,1,Txt_Description ,Class);
HTM_TH (1,1,Class,Txt_Required_knowledge); HTM_TH (1,1,Txt_Required_knowledge,Class);
HTM_TH (1,1,Class,Txt_Required_materials); HTM_TH (1,1,Txt_Required_materials,Class);
HTM_TH (1,1,Class,Txt_URL); HTM_TH (1,1,Txt_URL ,Class);
HTM_TR_End (); HTM_TR_End ();
Str_FreeStrings (); Str_FreeStrings ();
@ -1281,8 +1279,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("rowspan=\"3\" class=\"BIG_INDEX RT COLOR%u\"", HTM_TD_Begin ("rowspan=\"3\" class=\"BIG_INDEX RT %s\"",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumIndex); HTM_Unsigned (NumIndex);
if (PrjIsFaulty) if (PrjIsFaulty)
{ {
@ -1299,7 +1297,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("rowspan=\"3\" class=\"CONTEXT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"3\" class=\"CONTEXT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Prj_PutFormsToRemEditOnePrj (Projects,Prj,Anchor,ICanViewProjectFiles); Prj_PutFormsToRemEditOnePrj (Projects,Prj,Anchor,ICanViewProjectFiles);
HTM_TD_End (); HTM_TD_End ();
break; break;
@ -1319,8 +1318,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,ClassDate,Gbl.RowEvenOdd); Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
@ -1340,8 +1339,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,ClassDate,Gbl.RowEvenOdd); Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
@ -1358,10 +1357,12 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",ClassTitle,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s LT %s\"",
ClassTitle,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("class=\"%s LT\"",ClassTitle); HTM_TD_Begin ("class=\"%s LT\"",
ClassTitle);
break; break;
} }
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
@ -1393,8 +1394,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"RT %s %s\"",
ClassLabel,Gbl.RowEvenOdd); ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"RT %s\"",
@ -1407,8 +1408,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.RowEvenOdd); ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -1433,8 +1434,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"RT %s %s\"",
ClassLabel,Gbl.RowEvenOdd); ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"RT %s\"",
@ -1447,8 +1448,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.RowEvenOdd); ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -1470,13 +1471,15 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TR_Begin ("id=\"prj_exp_%u\"",UniqueId); HTM_TR_Begin ("id=\"prj_exp_%u\"",UniqueId);
HTM_TD_Begin ("colspan=\"6\" class=\"CM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"6\" class=\"CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more); Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
HTM_TR_Begin ("id=\"prj_con_%u\" style=\"display:none;\"",UniqueId); HTM_TR_Begin ("id=\"prj_con_%u\" style=\"display:none;\"",UniqueId);
HTM_TD_Begin ("colspan=\"6\" class=\"CM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"6\" class=\"CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less); Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
@ -1503,8 +1506,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TR_Begin ("id=\"prj_pro_%u\" style=\"display:none;\"",UniqueId); HTM_TR_Begin ("id=\"prj_pro_%u\" style=\"display:none;\"",UniqueId);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.RowEvenOdd); ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
case Prj_FILE_BROWSER_PROJECT: case Prj_FILE_BROWSER_PROJECT:
HTM_TR_Begin ("id=\"prj_pro_%u\" style=\"display:none;\"",UniqueId); HTM_TR_Begin ("id=\"prj_pro_%u\" style=\"display:none;\"",UniqueId);
@ -1521,9 +1524,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData, ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
Gbl.RowEvenOdd);
break; break;
default: default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -1695,8 +1697,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
UniqueId++; UniqueId++;
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0) if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,ClassDate,Gbl.RowEvenOdd); Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Prj->CreatTime, Dat_WriteLocalDateHMSFromUTC (Id,Prj->CreatTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -1707,8 +1709,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
UniqueId++; UniqueId++;
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0) if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,ClassDate,Gbl.RowEvenOdd); Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Prj->ModifTime, Dat_WriteLocalDateHMSFromUTC (Id,Prj->ModifTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -1716,9 +1718,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
free (Id); free (Id);
/***** Project title *****/ /***** Project title *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"", HTM_TD_Begin ("class=\"LT %s %s\"",
ClassData, ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
Gbl.RowEvenOdd);
HTM_Txt (Prj->Title); HTM_Txt (Prj->Title);
HTM_TD_End (); HTM_TD_End ();
@ -1726,13 +1727,13 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
Prj_ShowTableAllProjectsDepartment (Prj); Prj_ShowTableAllProjectsDepartment (Prj);
/***** Assigned? *****/ /***** Assigned? *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt ((Prj->Assigned == Prj_ASSIGNED) ? Txt_Yes : HTM_Txt ((Prj->Assigned == Prj_ASSIGNED) ? Txt_Yes :
Txt_No); Txt_No);
HTM_TD_End (); HTM_TD_End ();
/***** Number of students *****/ /***** Number of students *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (Prj->NumStds); HTM_Unsigned (Prj->NumStds);
HTM_TD_End (); HTM_TD_End ();
@ -1743,7 +1744,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
Prj_ShowTableAllProjectsMembersWithARole (Prj,Prj_RolesToShow[NumRoleToShow]); Prj_ShowTableAllProjectsMembersWithARole (Prj,Prj_RolesToShow[NumRoleToShow]);
/***** Proposal *****/ /***** Proposal *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_PROJECT_STATUS[Prj->Proposal]); HTM_Txt (Txt_PROJECT_STATUS[Prj->Proposal]);
HTM_TD_End (); HTM_TD_End ();
@ -1795,10 +1796,12 @@ static void Prj_ShowOneProjectDepartment (const struct Prj_Project *Prj,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",
ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("class=\"LT %s\"",ClassData); HTM_TD_Begin ("class=\"LT %s\"",
ClassData);
break; break;
} }
if (PutLink) if (PutLink)
@ -1827,7 +1830,7 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
Dpt_GetDataOfDepartmentByCod (&Dpt); Dpt_GetDataOfDepartmentByCod (&Dpt);
/***** Show department *****/ /***** Show department *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Dpt.FullName); HTM_Txt (Dpt.FullName);
HTM_TD_End (); HTM_TD_End ();
} }
@ -1858,8 +1861,8 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj,
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId); HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.RowEvenOdd); ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
case Prj_FILE_BROWSER_PROJECT: case Prj_FILE_BROWSER_PROJECT:
HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId); HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId);
@ -1893,8 +1896,8 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.RowEvenOdd); ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -1925,7 +1928,7 @@ static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
TxtField,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML TxtField,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML
/***** Write text *****/ /***** Write text *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (TxtField); HTM_Txt (TxtField);
HTM_TD_End (); HTM_TD_End ();
} }
@ -1958,8 +1961,8 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId); HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.RowEvenOdd); ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
case Prj_FILE_BROWSER_PROJECT: case Prj_FILE_BROWSER_PROJECT:
HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId); HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId);
@ -1979,8 +1982,8 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.RowEvenOdd); ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
default: default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -2008,7 +2011,7 @@ static void Prj_ShowTableAllProjectsURL (const struct Prj_Project *Prj)
The_ClassDat[Gbl.Prefs.Theme]; The_ClassDat[Gbl.Prefs.Theme];
/***** Show URL *****/ /***** Show URL *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Prj->URL); HTM_Txt (Prj->URL);
HTM_TD_End (); HTM_TD_End ();
} }
@ -2096,8 +2099,8 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.RowEvenOdd); ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColon (NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj] : HTM_TxtColon (NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]); Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break; break;
@ -2122,8 +2125,8 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.RowEvenOdd); ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break; break;
case Prj_FILE_BROWSER_PROJECT: case Prj_FILE_BROWSER_PROJECT:
case Prj_PRINT_ONE_PROJECT: case Prj_PRINT_ONE_PROJECT:
@ -2241,7 +2244,7 @@ static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *
NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj); NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj);
/***** Begin column with list of all members with this role *****/ /***** Begin column with list of all members with this role *****/
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumUsrs) if (NumUsrs)
{ {

View File

@ -522,25 +522,25 @@ void Qst_ListQuestionForEdition (struct Qst_Question *Question,
extern const char *Txt_Question_removed; extern const char *Txt_Question_removed;
/***** Number of question and answer type (row[1]) *****/ /***** Number of question and answer type (row[1]) *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd,"BIG_INDEX"); Qst_WriteNumQst (QstInd,"BIG_INDEX");
if (QuestionExists) if (QuestionExists)
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL"); Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
HTM_TD_End (); HTM_TD_End ();
/***** Write question code *****/ /***** Write question code *****/
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%ld&nbsp;",Question->QstCod); HTM_TxtF ("%ld&nbsp;",Question->QstCod);
HTM_TD_End (); HTM_TD_End ();
/***** Write the question tags *****/ /***** Write the question tags *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (QuestionExists) if (QuestionExists)
Tag_GetAndWriteTagsQst (Question->QstCod); Tag_GetAndWriteTagsQst (Question->QstCod);
HTM_TD_End (); HTM_TD_End ();
/***** Write stem (row[3]) and media *****/ /***** Write stem (row[3]) and media *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
if (QuestionExists) if (QuestionExists)
{ {
@ -912,11 +912,11 @@ void Qst_WriteHeadingRowQuestionsForEdition (struct Qst_Questions *Questions)
/***** First columns *****/ /***** First columns *****/
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,"CT",Txt_Code); HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,"CT",Txt_Date); HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,"CT",Txt_Tags); HTM_TH (1,1,Txt_Tags ,"CT");
HTM_TH (1,1,"CT",Txt_Shuffle); HTM_TH (1,1,Txt_Shuffle ,"CT");
/***** Columns which data can be ordered *****/ /***** Columns which data can be ordered *****/
/* Stem and answers of question */ /* Stem and answers of question */
@ -982,21 +982,21 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End (); HTM_TD_End ();
/* Number of question and answer type */ /* Number of question and answer type */
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd + 1,"BIG_INDEX"); Qst_WriteNumQst (QstInd + 1,"BIG_INDEX");
Qst_WriteAnswerType (Questions->Question.Answer.Type,"DAT_SMALL"); Qst_WriteAnswerType (Questions->Question.Answer.Type,"DAT_SMALL");
HTM_TD_End (); HTM_TD_End ();
/* Question code */ /* Question code */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%ld&nbsp;",Questions->Question.QstCod); HTM_TxtF ("%ld&nbsp;",Questions->Question.QstCod);
HTM_TD_End (); HTM_TD_End ();
/* Date (row[0] has the UTC date-time) */ /* Date (row[0] has the UTC date-time) */
if (asprintf (&Id,"tst_date_%u",++UniqueId) < 0) if (asprintf (&Id,"tst_date_%u",++UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT %s\"",
Id,Gbl.RowEvenOdd); Id,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Questions->Question.EditTime, Dat_WriteLocalDateHMSFromUTC (Id,Questions->Question.EditTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -1004,12 +1004,12 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
free (Id); free (Id);
/* Question tags */ /* Question tags */
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Tag_GetAndWriteTagsQst (Questions->Question.QstCod); Tag_GetAndWriteTagsQst (Questions->Question.QstCod);
HTM_TD_End (); HTM_TD_End ();
/* Shuffle (row[2]) */ /* Shuffle (row[2]) */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Questions->Question.Answer.Type == Qst_ANS_UNIQUE_CHOICE || if (Questions->Question.Answer.Type == Qst_ANS_UNIQUE_CHOICE ||
Questions->Question.Answer.Type == Qst_ANS_MULTIPLE_CHOICE) Questions->Question.Answer.Type == Qst_ANS_MULTIPLE_CHOICE)
{ {
@ -1025,7 +1025,7 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End (); HTM_TD_End ();
/* Stem (row[3]) */ /* Stem (row[3]) */
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteQstStem (Questions->Question.Stem,"TEST_TXT", Qst_WriteQstStem (Questions->Question.Stem,"TEST_TXT",
true); // Visible true); // Visible
@ -1040,12 +1040,12 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End (); HTM_TD_End ();
/* Number of times this question has been answered */ /* Number of times this question has been answered */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_UnsignedLong (Questions->Question.NumHits); HTM_UnsignedLong (Questions->Question.NumHits);
HTM_TD_End (); HTM_TD_End ();
/* Average score */ /* Average score */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Questions->Question.NumHits) if (Questions->Question.NumHits)
HTM_Double2Decimals (Questions->Question.Score / HTM_Double2Decimals (Questions->Question.Score /
(double) Questions->Question.NumHits); (double) Questions->Question.NumHits);
@ -1054,12 +1054,12 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End (); HTM_TD_End ();
/* Number of times this question has been answered (not blank) */ /* Number of times this question has been answered (not blank) */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_UnsignedLong (Questions->Question.NumHitsNotBlank); HTM_UnsignedLong (Questions->Question.NumHitsNotBlank);
HTM_TD_End (); HTM_TD_End ();
/* Average score (not blank) */ /* Average score (not blank) */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Questions->Question.NumHitsNotBlank) if (Questions->Question.NumHitsNotBlank)
HTM_Double2Decimals (Questions->Question.Score / HTM_Double2Decimals (Questions->Question.Score /
(double) Questions->Question.NumHitsNotBlank); (double) Questions->Question.NumHitsNotBlank);
@ -1111,17 +1111,14 @@ void Qst_ListOneOrMoreQstsForSelectionForExamSet (struct Exa_Exams *Exams,
/***** Write the heading *****/ /***** Write the heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,"CT",Txt_Code); HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,"CT",Txt_Date); HTM_TH (1,1,Txt_Tags ,"LT");
HTM_TH (1,1,"LT",Txt_Tags); HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,"CT",Txt_Type); HTM_TH (1,1,Txt_Shuffle ,"CT");
HTM_TH (1,1,"CT",Txt_Shuffle); HTM_TH (1,1,Txt_Question,"CT");
HTM_TH (1,1,"CT",Txt_Question);
HTM_TR_End (); HTM_TR_End ();
/***** Write rows *****/ /***** Write rows *****/
@ -1198,16 +1195,14 @@ void Qst_ListOneOrMoreQstsForSelectionForGame (struct Gam_Games *Games,
/***** Write the heading *****/ /***** Write the heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,"CT",Txt_Code); HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,"CT",Txt_Date); HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,"LT",Txt_Tags); HTM_TH (1,1,Txt_Tags ,"LT");
HTM_TH (1,1,"CT",Txt_Type); HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,"CT",Txt_Shuffle); HTM_TH (1,1,Txt_Shuffle ,"CT");
HTM_TH (1,1,"CT",Txt_Question); HTM_TH (1,1,Txt_Question,"CT");
HTM_TR_End (); HTM_TR_End ();
/***** Write rows *****/ /***** Write rows *****/
@ -1287,20 +1282,20 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
HTM_TD_End (); HTM_TD_End ();
/* Write number of question */ /* Write number of question */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%u&nbsp;",QstInd + 1); HTM_TxtF ("%u&nbsp;",QstInd + 1);
HTM_TD_End (); HTM_TD_End ();
/* Write question code */ /* Write question code */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%ld&nbsp;",Question->QstCod); HTM_TxtF ("%ld&nbsp;",Question->QstCod);
HTM_TD_End (); HTM_TD_End ();
/* Write the date (row[0] has the UTC date-time) */ /* Write the date (row[0] has the UTC date-time) */
if (asprintf (&Id,"tst_date_%u",++UniqueId) < 0) if (asprintf (&Id,"tst_date_%u",++UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\">", HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT %s\">",
Id,Gbl.RowEvenOdd); Id,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Question->EditTime, Dat_WriteLocalDateHMSFromUTC (Id,Question->EditTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -1308,17 +1303,17 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
free (Id); free (Id);
/* Write the question tags */ /* Write the question tags */
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Tag_GetAndWriteTagsQst (Question->QstCod); Tag_GetAndWriteTagsQst (Question->QstCod);
HTM_TD_End (); HTM_TD_End ();
/* Write the question type */ /* Write the question type */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s&nbsp;",Txt_TST_STR_ANSWER_TYPES[Question->Answer.Type]); HTM_TxtF ("%s&nbsp;",Txt_TST_STR_ANSWER_TYPES[Question->Answer.Type]);
HTM_TD_End (); HTM_TD_End ();
/* Write if shuffle is enabled */ /* Write if shuffle is enabled */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_INPUT_CHECKBOX ("Shuffle",HTM_DONT_SUBMIT_ON_CHANGE, HTM_INPUT_CHECKBOX ("Shuffle",HTM_DONT_SUBMIT_ON_CHANGE,
"value=\"Y\"%s disabled=\"disabled\"", "value=\"Y\"%s disabled=\"disabled\"",
Question->Answer.Shuffle ? " checked=\"checked\"" : Question->Answer.Shuffle ? " checked=\"checked\"" :
@ -1326,7 +1321,7 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
HTM_TD_End (); HTM_TD_End ();
/* Write stem */ /* Write stem */
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteQstStem (Question->Stem,"TEST_TXT", Qst_WriteQstStem (Question->Stem,"TEST_TXT",
true); // Visible true); // Visible
@ -2126,7 +2121,8 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Left column: selectors *****/ /***** Left column: selectors *****/
HTM_TD_Begin ("class=\"TEST_EDI_ANS_LEFT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"TEST_EDI_ANS_LEFT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Radio selector for unique choice answers */ /* Radio selector for unique choice answers */
HTM_INPUT_RADIO ("AnsUni",false, HTM_INPUT_RADIO ("AnsUni",false,
@ -2151,8 +2147,9 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
HTM_TD_End (); HTM_TD_End ();
/***** Center column: letter of the answer and expand / contract icon *****/ /***** Center column: letter of the answer and expand / contract icon *****/
HTM_TD_Begin ("class=\"%s TEST_EDI_ANS_CENTER_COL COLOR%u\"", HTM_TD_Begin ("class=\"%s TEST_EDI_ANS_CENTER_COL %s\"",
The_ClassFormInBox[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassFormInBox[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%c)",'a' + (char) NumOpt); HTM_TxtF ("%c)",'a' + (char) NumOpt);
/* Icon to expand (show the answer) */ /* Icon to expand (show the answer) */
@ -2184,7 +2181,8 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
HTM_TD_End (); HTM_TD_End ();
/***** Right column: content of the answer *****/ /***** Right column: content of the answer *****/
HTM_TD_Begin ("class=\"TEST_EDI_ANS_RIGHT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"TEST_EDI_ANS_RIGHT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DIV_Begin ("id=\"ans_%u\"%s", HTM_DIV_Begin ("id=\"ans_%u\"%s",
NumOpt, NumOpt,
DisplayRightColumn ? "" : DisplayRightColumn ? "" :

View File

@ -837,15 +837,12 @@ static void QstImp_WriteHeadingListImportedQst (void)
/***** Write the heading *****/ /***** Write the heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_Tags ,"CT");
HTM_TH (1,1,"CT",Txt_Tags); HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,"CT",Txt_Type); HTM_TH (1,1,Txt_Shuffle ,"CT");
HTM_TH (1,1,"CT",Txt_Shuffle); HTM_TH (1,1,Txt_Question,"LT");
HTM_TH (1,1,"LT",Txt_Question);
HTM_TR_End (); HTM_TR_End ();
} }
@ -895,13 +892,13 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
HTM_TD_End (); HTM_TD_End ();
/***** Write number of question *****/ /***** Write number of question *****/
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s CT %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!QuestionExists) if (!QuestionExists)
HTM_TxtF ("%u&nbsp;",++NumNonExistingQst); HTM_TxtF ("%u&nbsp;",++NumNonExistingQst);
HTM_TD_End (); HTM_TD_End ();
/***** Write the question tags *****/ /***** Write the question tags *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Question->Tags.Num) if (Question->Tags.Num)
{ {
@ -935,12 +932,12 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
HTM_TD_End (); HTM_TD_End ();
/***** Write the question type *****/ /***** Write the question type *****/
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",ClassData,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s CT %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s&nbsp;",Txt_TST_STR_ANSWER_TYPES[Question->Answer.Type]); HTM_TxtF ("%s&nbsp;",Txt_TST_STR_ANSWER_TYPES[Question->Answer.Type]);
HTM_TD_End (); HTM_TD_End ();
/***** Write if shuffle is enabled *****/ /***** Write if shuffle is enabled *****/
HTM_TD_Begin ("class=\"CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Question->Answer.Type == Qst_ANS_UNIQUE_CHOICE || if (Question->Answer.Type == Qst_ANS_UNIQUE_CHOICE ||
Question->Answer.Type == Qst_ANS_MULTIPLE_CHOICE) Question->Answer.Type == Qst_ANS_MULTIPLE_CHOICE)
/* Put an icon that indicates whether shuffle is enabled or not */ /* Put an icon that indicates whether shuffle is enabled or not */
@ -951,7 +948,7 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
HTM_TD_End (); HTM_TD_End ();
/***** Write the stem and the answers *****/ /***** Write the stem and the answers *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteQstStem (Stem,ClassStem, Qst_WriteQstStem (Stem,ClassStem,
true); // Visible true); // Visible
Qst_WriteQstFeedback (Feedback,"TEST_TXT_LIGHT"); Qst_WriteQstFeedback (Feedback,"TEST_TXT_LIGHT");

View File

@ -406,9 +406,9 @@ static void Rec_WriteHeadingRecordFields (void)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"CM",Txt_Field_BR_name); HTM_TH (1,1,Txt_Field_BR_name ,"CM");
HTM_TH (1,1,"CM",Txt_Number_of_BR_lines); HTM_TH (1,1,Txt_Number_of_BR_lines ,"CM");
HTM_TH (1,1,"CM",Txt_Visible_by_BR_the_student); HTM_TH (1,1,Txt_Visible_by_BR_the_student,"CM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -1706,10 +1706,10 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
/* Name of the field */ /* Name of the field */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"REC_C1_BOT %s RT COLOR%u\"", HTM_TD_Begin ("class=\"REC_C1_BOT %s RT %s\"",
ICanEditThisField ? The_ClassFormInBox[Gbl.Prefs.Theme] : ICanEditThisField ? The_ClassFormInBox[Gbl.Prefs.Theme] :
"REC_DAT_SMALL", "REC_DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColon (Gbl.Crs.Records.LstFields.Lst[NumField].Name); HTM_TxtColon (Gbl.Crs.Records.LstFields.Lst[NumField].Name);
if (TypeOfView == Rec_CRS_LIST_ONE_RECORD || if (TypeOfView == Rec_CRS_LIST_ONE_RECORD ||
TypeOfView == Rec_CRS_LIST_SEVERAL_RECORDS) TypeOfView == Rec_CRS_LIST_SEVERAL_RECORDS)
@ -1734,8 +1734,9 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
/* Write form, text, or nothing depending on /* Write form, text, or nothing depending on
the user's role and the visibility of the field */ the user's role and the visibility of the field */
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s COLOR%u\"", HTM_TD_Begin ("class=\"REC_C2_BOT LT %s %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditThisField) // Show with form if (ICanEditThisField) // Show with form
{ {
HTM_TEXTAREA_Begin ("name=\"Field%ld\" rows=\"%u\"" HTM_TEXTAREA_Begin ("name=\"Field%ld\" rows=\"%u\""

View File

@ -1356,15 +1356,15 @@ static void Roo_PutHeadRooms (void)
extern const char *Txt_MAC_address; extern const char *Txt_MAC_address;
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL); HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,"RM",Txt_Code); HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,"LM",Txt_Building); HTM_TH (1,1,Txt_Building ,"LM");
HTM_TH (1,1,"LM",Txt_Floor); HTM_TH (1,1,Txt_Floor ,"LM");
HTM_TH (1,1,"LM",Txt_Type); HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,"LM",Txt_Short_name); HTM_TH (1,1,Txt_Short_name ,"LM");
HTM_TH (1,1,"LM",Txt_Full_name); HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,"LM",Txt_Capacity_OF_A_ROOM); HTM_TH (1,1,Txt_Capacity_OF_A_ROOM,"LM");
HTM_TH (1,1,"LM",Txt_MAC_address); HTM_TH (1,1,Txt_MAC_address ,"LM");
HTM_TR_End (); HTM_TR_End ();
} }

View File

@ -166,6 +166,7 @@ void Set_GetSettingsFromIP (void)
/* Get theme (row[2]) */ /* Get theme (row[2]) */
Gbl.Prefs.Theme = The_GetThemeFromStr (row[2]); Gbl.Prefs.Theme = The_GetThemeFromStr (row[2]);
The_SetColorRows ();
/* Get icon set (row[3]) */ /* Get icon set (row[3]) */
Gbl.Prefs.IconSet = Ico_GetIconSetFromStr (row[3]); Gbl.Prefs.IconSet = Ico_GetIconSetFromStr (row[3]);

View File

@ -1202,13 +1202,13 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"RT");
HTM_TH (1,1,"CT",Txt_User_ID); HTM_TH (1,1,Txt_User_ID ,"CT");
HTM_TH (1,1,"LT",Txt_Name); HTM_TH (1,1,Txt_Name ,"LT");
HTM_TH (1,1,"CT",Txt_Role); HTM_TH (1,1,Txt_Role ,"CT");
HTM_TH (1,1,"CT",Txt_Date); HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,"LT",Txt_Action); HTM_TH (1,1,Txt_Action ,"LT");
HTM_TH (1,1,"LT",Txt_LOG_More_info); HTM_TH (1,1,Txt_LOG_More_info,"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Write rows back *****/ /***** Write rows back *****/
@ -1235,23 +1235,23 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/* Write the number of row */ /* Write the number of row */
HTM_TD_Begin ("class=\"LOG RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%u&nbsp;",NumRow); HTM_TxtF ("%u&nbsp;",NumRow);
HTM_TD_End (); HTM_TD_End ();
/* Write the user's ID if user is a student */ /* Write the user's ID if user is a student */
HTM_TD_Begin ("class=\"LOG CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (&UsrDat,NULL); ID_WriteUsrIDs (&UsrDat,NULL);
HTM_NBSP (); HTM_NBSP ();
HTM_TD_End (); HTM_TD_End ();
/* Write the first name and the surnames */ /* Write the first name and the surnames */
HTM_TD_Begin ("class=\"LOG LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s&nbsp;",UsrDat.FullName); HTM_TxtF ("%s&nbsp;",UsrDat.FullName);
HTM_TD_End (); HTM_TD_End ();
/* Write the user's role */ /* Write the user's role */
HTM_TD_Begin ("class=\"LOG CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s&nbsp;",RoleFromLog < Rol_NUM_ROLES ? Txt_ROLES_SINGUL_Abc[RoleFromLog][UsrDat.Sex] : HTM_TxtF ("%s&nbsp;",RoleFromLog < Rol_NUM_ROLES ? Txt_ROLES_SINGUL_Abc[RoleFromLog][UsrDat.Sex] :
"?"); "?");
HTM_TD_End (); HTM_TD_End ();
@ -1259,7 +1259,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
/* Write the date-time (row[3]) */ /* Write the date-time (row[3]) */
if (asprintf (&Id,"log_date_%u",UniqueId) < 0) if (asprintf (&Id,"log_date_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LOG RT COLOR%u\"",Id,Gbl.RowEvenOdd); HTM_TD_Begin ("id=\"%s\" class=\"LOG RT %s\"",
Id,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetUNIXTimeFromStr (row[3]), Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetUNIXTimeFromStr (row[3]),
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
true,true,false,0x7); true,true,false,0x7);
@ -1269,7 +1270,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
/* Write the action */ /* Write the action */
if (sscanf (row[4],"%ld",&ActCod) != 1) if (sscanf (row[4],"%ld",&ActCod) != 1)
Err_WrongActionExit (); Err_WrongActionExit ();
HTM_TD_Begin ("class=\"LOG LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ActCod >= 0) if (ActCod >= 0)
HTM_TxtF ("%s&nbsp;",Act_GetActionText (Act_FromActCodToAction[ActCod])); HTM_TxtF ("%s&nbsp;",Act_GetActionText (Act_FromActCodToAction[ActCod]));
else else
@ -1277,7 +1278,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
HTM_TD_End (); HTM_TD_End ();
/* Write the comments of the access */ /* Write the comments of the access */
HTM_TD_Begin ("class=\"LOG LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Sta_WriteLogComments (LogCod); Sta_WriteLogComments (LogCod);
HTM_TD_End (); HTM_TD_End ();
@ -1337,12 +1338,12 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"RT");
HTM_TH (1,1,"CT",Txt_Photo); HTM_TH (1,1,Txt_Photo ,"CT");
HTM_TH (1,1,"LT",Txt_ID); HTM_TH (1,1,Txt_ID ,"LT");
HTM_TH (1,1,"LT",Txt_Name); HTM_TH (1,1,Txt_Name ,"LT");
HTM_TH (1,1,"CT",Txt_Role); HTM_TH (1,1,Txt_Role ,"CT");
HTM_TH (1,2,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,2,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Write rows *****/ /***** Write rows *****/
@ -1361,30 +1362,30 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/* Write the number of row */ /* Write the number of row */
HTM_TD_Begin ("class=\"LOG RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%u&nbsp;",NumHit); HTM_TxtF ("%u&nbsp;",NumHit);
HTM_TD_End (); HTM_TD_End ();
/* Show the photo */ /* Show the photo */
HTM_TD_Begin ("class=\"CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (&UsrDat, Pho_ShowUsrPhotoIfAllowed (&UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
HTM_TD_End (); HTM_TD_End ();
/* Write the user's ID if user is a student in current course */ /* Write the user's ID if user is a student in current course */
HTM_TD_Begin ("class=\"LOG LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (&UsrDat,NULL); ID_WriteUsrIDs (&UsrDat,NULL);
HTM_NBSP (); HTM_NBSP ();
HTM_TD_End (); HTM_TD_End ();
/* Write the name and the surnames */ /* Write the name and the surnames */
HTM_TD_Begin ("class=\"LOG LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s&nbsp;",UsrDat.FullName); HTM_TxtF ("%s&nbsp;",UsrDat.FullName);
HTM_TD_End (); HTM_TD_End ();
/* Write user's role */ /* Write user's role */
HTM_TD_Begin ("class=\"LOG CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s&nbsp;",Txt_ROLES_SINGUL_Abc[UsrDat.Roles.InCurrentCrs][UsrDat.Sex]); HTM_TxtF ("%s&nbsp;",Txt_ROLES_SINGUL_Abc[UsrDat.Roles.InCurrentCrs][UsrDat.Sex]);
HTM_TD_End (); HTM_TD_End ();
@ -1401,7 +1402,7 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
else else
BarWidth = 0; BarWidth = 0;
HTM_TD_Begin ("class=\"LOG LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LOG LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (BarWidth) if (BarWidth)
{ {
HTM_IMG (Cfg_URL_ICON_PUBLIC, HTM_IMG (Cfg_URL_ICON_PUBLIC,
@ -1450,9 +1451,9 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_Date); HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,"LT",Txt_Day); HTM_TH (1,1,Txt_Day ,"LT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per day *****/ /***** Compute maximum number of pages generated per day *****/
@ -1640,9 +1641,9 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (3,1,"CT",Txt_Date); HTM_TH (3, 1,Txt_Date ,"CT");
HTM_TH (3,1,"LT",Txt_Day); HTM_TH (3, 1,Txt_Day ,"LT");
HTM_TH (1,24,"LT",Txt_STAT_TYPE_COUNT_CAPS[Stats->CountType]); HTM_TH (1,24,Txt_STAT_TYPE_COUNT_CAPS[Stats->CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -2028,8 +2029,8 @@ static void Sta_ShowNumHitsPerWeek (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Week); HTM_TH (1,1,Txt_Week ,"LT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per week *****/ /***** Compute maximum number of pages generated per week *****/
@ -2127,8 +2128,8 @@ static void Sta_ShowNumHitsPerMonth (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Month); HTM_TH (1,1,Txt_Month ,"LT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per month *****/ /***** Compute maximum number of pages generated per month *****/
@ -2226,8 +2227,8 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Year); HTM_TH (1,1,Txt_Year ,"LT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per year *****/ /***** Compute maximum number of pages generated per year *****/
@ -2645,8 +2646,8 @@ static void Sta_ShowNumHitsPerAction (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_Action); HTM_TH (1,1,Txt_Action ,"RT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per day *****/ /***** Compute maximum number of pages generated per day *****/
@ -2698,8 +2699,8 @@ static void Sta_ShowNumHitsPerPlugin (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_Plugin); HTM_TH (1,1,Txt_Plugin ,"RT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per plugin *****/ /***** Compute maximum number of pages generated per plugin *****/
@ -2752,8 +2753,8 @@ static void Sta_ShowNumHitsPerWSFunction (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Function); HTM_TH (1,1,Txt_Function ,"LT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per function *****/ /***** Compute maximum number of pages generated per function *****/
@ -2806,8 +2807,8 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_Banner); HTM_TH (1,1,Txt_Banner ,"CT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of clicks per banner *****/ /***** Compute maximum number of clicks per banner *****/
@ -2876,9 +2877,9 @@ static void Sta_ShowNumHitsPerCountry (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,"CT",Txt_Country); HTM_TH (1,1,Txt_Country ,"CT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of hits per country *****/ /***** Compute maximum number of hits per country *****/
@ -2965,9 +2966,9 @@ static void Sta_ShowNumHitsPerInstitution (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,"CT",Txt_Institution); HTM_TH (1,1,Txt_Institution ,"CT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of hits per institution *****/ /***** Compute maximum number of hits per institution *****/
@ -3056,9 +3057,9 @@ static void Sta_ShowNumHitsPerCenter (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,"CT",Txt_Center); HTM_TH (1,1,Txt_Center ,"CT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of hits per center *****/ /***** Compute maximum number of hits per center *****/
@ -3147,9 +3148,9 @@ static void Sta_ShowNumHitsPerDegree (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,"CT",Txt_Degree); HTM_TH (1,1,Txt_Degree ,"CT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of hits per degree *****/ /***** Compute maximum number of hits per degree *****/
@ -3242,11 +3243,11 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType,
/***** Write heading *****/ /***** Write heading *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,"CT",Txt_Degree); HTM_TH (1,1,Txt_Degree ,"CT");
HTM_TH (1,1,"CT",Txt_Year_OF_A_DEGREE); HTM_TH (1,1,Txt_Year_OF_A_DEGREE ,"CT");
HTM_TH (1,1,"CT",Txt_Course); HTM_TH (1,1,Txt_Course ,"CT");
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]); HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Compute maximum number of pages generated per course *****/ /***** Compute maximum number of pages generated per course *****/

View File

@ -243,7 +243,7 @@ static void Svy_ListAllSurveys (struct Svy_Surveys *Surveys)
HTM_TABLE_BeginWideMarginPadding (5); HTM_TABLE_BeginWideMarginPadding (5);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"CONTEXT_COL",NULL); // Column for contextual icons HTM_TH (1,1,NULL,"CONTEXT_COL"); // Column for contextual icons
for (Order = Dat_STR_TIME; for (Order = Dat_STR_TIME;
Order <= Dat_END_TIME; Order <= Dat_END_TIME;
@ -270,8 +270,8 @@ static void Svy_ListAllSurveys (struct Svy_Surveys *Surveys)
HTM_TH_End (); HTM_TH_End ();
} }
HTM_TH (1,1,"LM",Txt_Survey); HTM_TH (1,1,Txt_Survey,"LM");
HTM_TH (1,1,"CM",Txt_Status); HTM_TH (1,1,Txt_Status,"CM");
HTM_TR_End (); HTM_TR_End ();
@ -470,7 +470,8 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete) if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\""); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
else else
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Svy.Status.ICanEdit) if (Svy.Status.ICanEdit)
Svy_PutFormsToRemEditOneSvy (Surveys,&Svy,Anchor); Svy_PutFormsToRemEditOneSvy (Surveys,&Svy,Anchor);
HTM_TD_End (); HTM_TD_End ();
@ -487,13 +488,13 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
(Svy.Status.Open ? "DATE_GREEN_LIGHT" : (Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT")); "DATE_RED_LIGHT"));
else else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id, Id,
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" : Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
"DATE_RED") : "DATE_RED") :
(Svy.Status.Open ? "DATE_GREEN_LIGHT" : (Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT"), "DATE_RED_LIGHT"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Svy.TimeUTC[Dat_STR_TIME], Dat_WriteLocalDateHMSFromUTC (Id,Svy.TimeUTC[Dat_STR_TIME],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x7); true,true,true,0x7);
@ -511,13 +512,13 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
(Svy.Status.Open ? "DATE_GREEN_LIGHT" : (Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT")); "DATE_RED_LIGHT"));
else else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id, Id,
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" : Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
"DATE_RED") : "DATE_RED") :
(Svy.Status.Open ? "DATE_GREEN_LIGHT" : (Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT"), "DATE_RED_LIGHT"),
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Svy.TimeUTC[Dat_END_TIME], Dat_WriteLocalDateHMSFromUTC (Id,Svy.TimeUTC[Dat_END_TIME],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,false,true,0x7); true,false,true,0x7);
@ -528,7 +529,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete) if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("class=\"LT\""); HTM_TD_Begin ("class=\"LT\"");
else else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor); HTM_ARTICLE_Begin (Anchor);
Frm_BeginForm (ActSeeSvy); Frm_BeginForm (ActSeeSvy);
Svy_PutParamSvyCod (SvyCod); Svy_PutParamSvyCod (SvyCod);
@ -562,7 +563,8 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete) if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("rowspan=\"2\" class=\"LT\""); HTM_TD_Begin ("rowspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("rowspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("rowspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Svy_WriteStatus (&Svy); Svy_WriteStatus (&Svy);
if (!ShowOnlyThisSvyComplete) if (!ShowOnlyThisSvyComplete)
@ -611,7 +613,8 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete) if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\""); HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
else else
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
Svy_WriteAuthor (&Svy); Svy_WriteAuthor (&Svy);
HTM_TD_End (); HTM_TD_End ();
@ -619,7 +622,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete) if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("class=\"LT\""); HTM_TD_Begin ("class=\"LT\"");
else else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Scope of the survey */ /* Scope of the survey */
HTM_DIV_Begin ("class=\"%s\"",Svy.Status.Visible ? "ASG_GRP" : HTM_DIV_Begin ("class=\"%s\"",Svy.Status.Visible ? "ASG_GRP" :
@ -2786,14 +2789,13 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys,
/***** Write the heading *****/ /***** Write the heading *****/
HTM_TABLE_BeginWideMarginPadding (5); HTM_TABLE_BeginWideMarginPadding (5);
HTM_TR_Begin (NULL);
HTM_TR_Begin (NULL);
if (Svy->Status.ICanEdit) if (Svy->Status.ICanEdit)
HTM_TH_Empty (1); HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX); HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,"CT",Txt_Type); HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,"LT",Txt_Question); HTM_TH (1,1,Txt_Question,"LT");
HTM_TR_End (); HTM_TR_End ();
/***** Write questions one by one *****/ /***** Write questions one by one *****/
@ -2832,18 +2834,21 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys,
} }
/* Write index of question inside survey */ /* Write index of question inside survey */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (SvyQst.QstInd + 1); HTM_Unsigned (SvyQst.QstInd + 1);
HTM_TD_End (); HTM_TD_End ();
/* Write the question type (row[2]) */ /* Write the question type (row[2]) */
HTM_TD_Begin ("class=\"DAT_SMALL CT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_SURVEY_STR_ANSWER_TYPES[SvyQst.AnswerType]); HTM_Txt (Txt_SURVEY_STR_ANSWER_TYPES[SvyQst.AnswerType]);
HTM_TD_End (); HTM_TD_End ();
/* Write the stem and the answers of this question */ /* Write the stem and the answers of this question */
HTM_TD_Begin ("class=\"%s LT COLOR%u\"", HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Svy_WriteQstStem (Stem); Svy_WriteQstStem (Stem);
Svy_WriteAnswersOfAQst (Svy,&SvyQst,PutFormAnswerSurvey); Svy_WriteAnswersOfAQst (Svy,&SvyQst,PutFormAnswerSurvey);
HTM_TD_End (); HTM_TD_End ();

View File

@ -623,7 +623,8 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
{ {
if (NewItem) if (NewItem)
{ {
HTM_TD_Begin ("colspan=\"5\" class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"5\" class=\"%s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
else else
@ -722,13 +723,14 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
/***** Indent depending on the level *****/ /***** Indent depending on the level *****/
if (Level > 1) if (Level > 1)
{ {
HTM_TD_Begin ("colspan=\"%d\" class=\"COLOR%u\"",Level - 1,Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"%d\" class=\"%s\"",
Level - 1,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
/***** Code of the item *****/ /***** Code of the item *****/
HTM_TD_Begin ("class=\"%s RT COLOR%u\" style=\"width:%dpx;\"", HTM_TD_Begin ("class=\"%s RT %s\" style=\"width:%dpx;\"",
StyleSyllabus[Level],Gbl.RowEvenOdd, StyleSyllabus[Level],Gbl.ColorRows[Gbl.RowEvenOdd],
Level * Syl_WIDTH_NUM_SYLLABUS); Level * Syl_WIDTH_NUM_SYLLABUS);
if (Level == 1) if (Level == 1)
HTM_NBSP (); HTM_NBSP ();
@ -736,10 +738,10 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
HTM_TD_End (); HTM_TD_End ();
/***** Text of the item *****/ /***** Text of the item *****/
HTM_TD_Begin ("colspan=\"%d\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("colspan=\"%d\" class=\"%s LT %s\"",
Syl_LstItemsSyllabus.NumLevels - Level + 1, Syl_LstItemsSyllabus.NumLevels - Level + 1,
StyleSyllabus[Level], StyleSyllabus[Level],
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Text); HTM_Txt (Text);
HTM_TD_End (); HTM_TD_End ();
} }
@ -831,21 +833,23 @@ static void Syl_PutFormItemSyllabus (struct Syl_Syllabus *Syllabus,
/***** Indent depending on the level *****/ /***** Indent depending on the level *****/
if (Level > 1) if (Level > 1)
{ {
HTM_TD_Begin ("colspan=\"%d\" class=\"COLOR%u\"",Level - 1,Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"%d\" class=\"%s\"",
Level - 1,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
} }
/***** Write the code of the item *****/ /***** Write the code of the item *****/
if (NewItem) // If the item is new (not stored in the file) ==> it has not a number if (NewItem) // If the item is new (not stored in the file) ==> it has not a number
{ {
HTM_TD_Begin ("class=\"COLOR%u\" style=\"width:%dpx;\"", HTM_TD_Begin ("class=\"%s\" style=\"width:%dpx;\"",
Gbl.RowEvenOdd,Level * Syl_WIDTH_NUM_SYLLABUS); Gbl.ColorRows[Gbl.RowEvenOdd],
Level * Syl_WIDTH_NUM_SYLLABUS);
HTM_TD_End (); HTM_TD_End ();
} }
else else
{ {
HTM_TD_Begin ("class=\"%s LM COLOR%u\" style=\"width:%dpx;\"", HTM_TD_Begin ("class=\"%s LM %s\" style=\"width:%dpx;\"",
StyleSyllabus[Level],Gbl.RowEvenOdd, StyleSyllabus[Level],Gbl.ColorRows[Gbl.RowEvenOdd],
Level * Syl_WIDTH_NUM_SYLLABUS); Level * Syl_WIDTH_NUM_SYLLABUS);
if (Level == 1) if (Level == 1)
HTM_NBSP (); HTM_NBSP ();
@ -855,8 +859,9 @@ static void Syl_PutFormItemSyllabus (struct Syl_Syllabus *Syllabus,
} }
/***** Text of the item *****/ /***** Text of the item *****/
HTM_TD_Begin ("colspan=\"%d\" class=\"LM COLOR%u\"", HTM_TD_Begin ("colspan=\"%d\" class=\"LM %s\"",
Syl_LstItemsSyllabus.NumLevels - Level + 1,Gbl.RowEvenOdd); Syl_LstItemsSyllabus.NumLevels - Level + 1,
Gbl.ColorRows[Gbl.RowEvenOdd]);
Frm_BeginForm (NewItem ? (Gbl.Crs.Info.Type == Inf_LECTURES ? ActInsIteSylLec : Frm_BeginForm (NewItem ? (Gbl.Crs.Info.Type == Inf_LECTURES ? ActInsIteSylLec :
ActInsIteSylPra) : ActInsIteSylPra) :
(Gbl.Crs.Info.Type == Inf_LECTURES ? ActModIteSylLec : (Gbl.Crs.Info.Type == Inf_LECTURES ? ActModIteSylLec :

View File

@ -289,13 +289,13 @@ static void TstPrn_WriteQstAndAnsToFill (struct TstPrn_PrintedQuestion *PrintedQ
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Number of question and answer type *****/ /***** Number of question and answer type *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd + 1,"BIG_INDEX"); Qst_WriteNumQst (QstInd + 1,"BIG_INDEX");
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL"); Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
HTM_TD_End (); HTM_TD_End ();
/***** Stem, media and answers *****/ /***** Stem, media and answers *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Write parameter with question code */ /* Write parameter with question code */
Qst_WriteParamQstCod (QstInd,Question->QstCod); Qst_WriteParamQstCod (QstInd,Question->QstCod);
@ -633,14 +633,14 @@ static void TstPrn_WriteQstAndAnsExam (struct UsrData *UsrDat,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Number of question and answer type *****/ /***** Number of question and answer type *****/
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd + 1,"BIG_INDEX"); Qst_WriteNumQst (QstInd + 1,"BIG_INDEX");
if (QuestionUneditedAfterExam) if (QuestionUneditedAfterExam)
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL"); Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
HTM_TD_End (); HTM_TD_End ();
/***** Stem, media and answers *****/ /***** Stem, media and answers *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (QuestionExists) if (QuestionExists)
{ {
if (QuestionUneditedAfterExam) if (QuestionUneditedAfterExam)
@ -1789,37 +1789,34 @@ static void TstPrn_ShowHeaderPrints (Usr_MeOrOther_t MeOrOther)
/***** First row *****/ /***** First row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (3,2,Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
HTM_TH (3,2,"CT LINE_BOTTOM",Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex : Usr_SEX_UNKNOWN]
Usr_SEX_UNKNOWN]); ,"CT LINE_BOTTOM");
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_STR_TIME]); HTM_TH (3,1,Txt_START_END_TIME[Dat_STR_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_END_TIME]); HTM_TH (3,1,Txt_START_END_TIME[Dat_END_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Questions); HTM_TH (3,1,Txt_Questions ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,2,"CT LINE_LEFT",Txt_Answers); HTM_TH (1,2,Txt_Answers ,"CT LINE_LEFT");
HTM_TH (1,2,"CT LINE_LEFT",Txt_Score); HTM_TH (1,2,Txt_Score ,"CT LINE_LEFT");
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Grade); HTM_TH (3,1,Txt_Grade ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (3,1,"LINE_BOTTOM LINE_LEFT",NULL); HTM_TH (3,1,NULL ,"LINE_BOTTOM LINE_LEFT");
HTM_TR_End (); HTM_TR_End ();
/***** Second row *****/ /***** Second row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,Txt_ANSWERS_non_blank,"RT LINE_LEFT");
HTM_TH (1,1,"RT LINE_LEFT",Txt_ANSWERS_non_blank); HTM_TH (1,1,Txt_ANSWERS_blank ,"RT");
HTM_TH (1,1,"RT",Txt_ANSWERS_blank); HTM_TH (1,1,Txt_total ,"RT LINE_LEFT");
HTM_TH (1,1,"RT LINE_LEFT",Txt_total); HTM_TH (1,1,Txt_average ,"RT");
HTM_TH (1,1,"RT",Txt_average);
HTM_TR_End (); HTM_TR_End ();
/***** Third row *****/ /***** Third row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH (1,1,"{-1&le;<em>p<sub>i</sub></em>&le;1}","RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","{-1&le;<em>p<sub>i</sub></em>&le;1}"); HTM_TH (1,1,"{<em>p<sub>i</sub></em>=0}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"RT LINE_BOTTOM","{<em>p<sub>i</sub></em>=0}"); HTM_TH (1,1,"<em>&Sigma;p<sub>i</sub></em>" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","<em>&Sigma;p<sub>i</sub></em>"); HTM_TH (1,1,"-1&le;"
HTM_TH (1,1,"RT LINE_BOTTOM","-1&le;<em style=\"text-decoration:overline;\">p</em>&le;1"); "<em style=\"text-decoration:overline;\">p</em>"
"&le;1" ,"RT LINE_BOTTOM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -1889,8 +1886,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
{ {
if (asprintf (&Id,"tst_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0) if (asprintf (&Id,"tst_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"", HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,ClassDat,Gbl.RowEvenOdd); Id,ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime], Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK, Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7); true,true,false,0x7);
@ -1907,7 +1904,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
} }
/* Write number of questions */ /* Write number of questions */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",ClassDat,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Result) if (ICanView.Result)
HTM_Unsigned (Print.NumQsts.All); HTM_Unsigned (Print.NumQsts.All);
else else
@ -1915,7 +1913,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/* Write number of non-blank answers */ /* Write number of non-blank answers */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",ClassDat,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Result) if (ICanView.Result)
{ {
if (Print.NumQsts.NotBlank) if (Print.NumQsts.NotBlank)
@ -1928,7 +1927,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/* Write number of blank answers */ /* Write number of blank answers */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",ClassDat,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s RT %s\"",
ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Result) if (ICanView.Result)
{ {
NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank; NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank;
@ -1942,7 +1942,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/* Write score */ /* Write score */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",ClassDat,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
{ {
HTM_Double2Decimals (Print.Score); HTM_Double2Decimals (Print.Score);
@ -1954,7 +1955,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/* Write average score per question */ /* Write average score per question */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",ClassDat,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s RT %s\"",
ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
HTM_Double2Decimals (Print.NumQsts.All ? Print.Score / HTM_Double2Decimals (Print.NumQsts.All ? Print.Score /
(double) Print.NumQsts.All : (double) Print.NumQsts.All :
@ -1964,7 +1966,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/* Write grade */ /* Write grade */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",ClassDat,Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score) if (ICanView.Score)
TstPrn_ComputeAndShowGrade (Print.NumQsts.All,Print.Score,Tst_SCORE_MAX); TstPrn_ComputeAndShowGrade (Print.NumQsts.All,Print.Score,Tst_SCORE_MAX);
else else
@ -1972,7 +1975,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End (); HTM_TD_End ();
/* Link to show this test */ /* Link to show this test */
HTM_TD_Begin ("class=\"RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"RT LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Result) if (ICanView.Result)
{ {
Frm_BeginForm (Gbl.Action.Act == ActSeeMyTstResCrs ? ActSeeOneTstResMe : Frm_BeginForm (Gbl.Action.Act == ActSeeMyTstResCrs ? ActSeeOneTstResMe :
@ -1998,27 +2002,33 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
else else
{ {
/* Columns for dates */ /* Columns for dates */
HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for questions */ /* Column for questions */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Columns for answers */ /* Columns for answers */
HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Columns for score */ /* Columns for score */
HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for grade */ /* Column for grade */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/* Column for link to show the result */ /* Column for link to show the result */
HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
@ -2088,36 +2098,41 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Row title *****/ /***** Row title *****/
HTM_TD_Begin ("colspan=\"2\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("colspan=\"2\" class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColonNBSP (Txt_Visible_tests); HTM_TxtColonNBSP (Txt_Visible_tests);
HTM_Unsigned (NumPrints); HTM_Unsigned (NumPrints);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of questions *****/ /***** Write total number of questions *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumPrints) if (NumPrints)
HTM_Unsigned (NumTotalQsts->All); HTM_Unsigned (NumTotalQsts->All);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of non-blank answers *****/ /***** Write total number of non-blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumPrints) if (NumPrints)
HTM_Unsigned (NumTotalQsts->NotBlank); HTM_Unsigned (NumTotalQsts->NotBlank);
HTM_TD_End (); HTM_TD_End ();
/***** Write total number of blank answers *****/ /***** Write total number of blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumPrints) if (NumPrints)
HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank); HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank);
HTM_TD_End (); HTM_TD_End ();
/***** Write total score *****/ /***** Write total score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanViewTotalScore) if (ICanViewTotalScore)
{ {
HTM_Double2Decimals (TotalScore); HTM_Double2Decimals (TotalScore);
@ -2127,23 +2142,26 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
HTM_TD_End (); HTM_TD_End ();
/***** Write average score per question *****/ /***** Write average score per question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanViewTotalScore) if (ICanViewTotalScore)
HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All : HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All :
0.0); 0.0);
HTM_TD_End (); HTM_TD_End ();
/***** Write grade over Tst_SCORE_MAX *****/ /***** Write grade over Tst_SCORE_MAX *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanViewTotalScore) if (ICanViewTotalScore)
TstPrn_ComputeAndShowGrade (NumTotalQsts->All,TotalScore,Tst_SCORE_MAX); TstPrn_ComputeAndShowGrade (NumTotalQsts->All,TotalScore,Tst_SCORE_MAX);
HTM_TD_End (); HTM_TD_End ();
/***** Last cell *****/ /***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"", HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd); The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
/***** End row *****/ /***** End row *****/

View File

@ -414,6 +414,25 @@ const char *The_ClassAlertTxtColor[The_NUM_THEMES] =
[The_THEME_DARK ] = "ALERT_TXT_DARK", [The_THEME_DARK ] = "ALERT_TXT_DARK",
}; };
const char *The_ClassColorRows[2][The_NUM_THEMES] =
{
[0][The_THEME_WHITE ] = "COLOR0_WHITE",
[0][The_THEME_GREY ] = "COLOR0_GREY",
[0][The_THEME_PURPLE] = "COLOR0_PURPLE",
[0][The_THEME_BLUE ] = "COLOR0_BLUE",
[0][The_THEME_YELLOW] = "COLOR0_YELLOW",
[0][The_THEME_PINK ] = "COLOR0_PINK",
[0][The_THEME_DARK ] = "COLOR0_DARK",
[1][The_THEME_WHITE ] = "COLOR1_WHITE",
[1][The_THEME_GREY ] = "COLOR1_GREY",
[1][The_THEME_PURPLE] = "COLOR1_PURPLE",
[1][The_THEME_BLUE ] = "COLOR1_BLUE",
[1][The_THEME_YELLOW] = "COLOR1_YELLOW",
[1][The_THEME_PINK ] = "COLOR1_PINK",
[1][The_THEME_DARK ] = "COLOR1_DARK",
};
/*****************************************************************************/ /*****************************************************************************/
/****************************** Private prototypes ***************************/ /****************************** Private prototypes ***************************/
/*****************************************************************************/ /*****************************************************************************/
@ -480,6 +499,7 @@ void The_ChangeTheme (void)
/***** Get param theme *****/ /***** Get param theme *****/
Gbl.Prefs.Theme = The_GetParamTheme (); Gbl.Prefs.Theme = The_GetParamTheme ();
The_SetColorRows ();
snprintf (Path,sizeof (Path),"%s/%s", snprintf (Path,sizeof (Path),"%s/%s",
Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]); Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]);
Str_Copy (Gbl.Prefs.URLTheme,Path,sizeof (Gbl.Prefs.URLTheme) - 1); Str_Copy (Gbl.Prefs.URLTheme,Path,sizeof (Gbl.Prefs.URLTheme) - 1);
@ -527,3 +547,15 @@ The_Theme_t The_GetThemeFromStr (const char *Str)
return The_THEME_DEFAULT; return The_THEME_DEFAULT;
} }
/*****************************************************************************/
/******** Set background colors for rows depending on selected theme *********/
/*****************************************************************************/
void The_SetColorRows (void)
{
extern const char *The_ClassColorRows[2][The_NUM_THEMES];
Gbl.ColorRows[0] = The_ClassColorRows[0][Gbl.Prefs.Theme]; // Darker
Gbl.ColorRows[1] = The_ClassColorRows[1][Gbl.Prefs.Theme]; // Lighter
}

View File

@ -54,4 +54,6 @@ void The_ChangeTheme (void);
The_Theme_t The_GetParamTheme (void); The_Theme_t The_GetParamTheme (void);
The_Theme_t The_GetThemeFromStr (const char *Str); The_Theme_t The_GetThemeFromStr (const char *Str);
void The_SetColorRows (void);
#endif #endif

View File

@ -1962,6 +1962,7 @@ static void Usr_SetMyPrefsAndRoles (void)
Gbl.Prefs.IconSet = Gbl.Usrs.Me.UsrDat.Prefs.IconSet; Gbl.Prefs.IconSet = Gbl.Usrs.Me.UsrDat.Prefs.IconSet;
Gbl.Prefs.Menu = Gbl.Usrs.Me.UsrDat.Prefs.Menu; Gbl.Prefs.Menu = Gbl.Usrs.Me.UsrDat.Prefs.Menu;
Gbl.Prefs.Theme = Gbl.Usrs.Me.UsrDat.Prefs.Theme; Gbl.Prefs.Theme = Gbl.Usrs.Me.UsrDat.Prefs.Theme;
The_SetColorRows ();
Gbl.Prefs.SideCols = Gbl.Usrs.Me.UsrDat.Prefs.SideCols; Gbl.Prefs.SideCols = Gbl.Usrs.Me.UsrDat.Prefs.SideCols;
Gbl.Prefs.PhotoShape = Gbl.Usrs.Me.UsrDat.Prefs.PhotoShape; Gbl.Prefs.PhotoShape = Gbl.Usrs.Me.UsrDat.Prefs.PhotoShape;
snprintf (Gbl.Prefs.URLIconSet,sizeof (Gbl.Prefs.URLIconSet),"%s/%s", snprintf (Gbl.Prefs.URLIconSet,sizeof (Gbl.Prefs.URLIconSet),"%s/%s",
@ -2170,7 +2171,7 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
if (UsrIsTheMsgSender) if (UsrIsTheMsgSender)
Str_Copy (BgColor,"LIGHT_GREEN",sizeof (BgColor) - 1); Str_Copy (BgColor,"LIGHT_GREEN",sizeof (BgColor) - 1);
else else
snprintf (BgColor,sizeof (BgColor),"COLOR%u",Gbl.RowEvenOdd); snprintf (BgColor,sizeof (BgColor),"%s",Gbl.ColorRows[Gbl.RowEvenOdd]);
if (PutCheckBoxToSelectUsr) if (PutCheckBoxToSelectUsr)
{ {
@ -2260,7 +2261,7 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
{ {
/***** Show guest's photo *****/ /***** Show guest's photo *****/
HTM_TD_Begin ("class=\"LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_NO_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_NO_ZOOM,
false); false);
@ -2268,7 +2269,7 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
} }
/****** Write user's ID ******/ /****** Write user's ID ******/
HTM_TD_Begin ("class=\"DAT_SMALL LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"DAT_SMALL LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL); ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP (); HTM_NBSP ();
HTM_TD_End (); HTM_TD_End ();
@ -2353,7 +2354,7 @@ static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
{ {
/***** Show student's photo *****/ /***** Show student's photo *****/
HTM_TD_Begin ("class=\"LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_NO_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_NO_ZOOM,
false); false);
@ -2361,10 +2362,10 @@ static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
} }
/****** Write user's ID ******/ /****** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" : UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL); ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP (); HTM_NBSP ();
HTM_TD_End (); HTM_TD_End ();
@ -2462,7 +2463,7 @@ static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
{ {
/***** Show teacher's photo *****/ /***** Show teacher's photo *****/
HTM_TD_Begin ("class=\"LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_NO_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_NO_ZOOM,
false); false);
@ -2470,10 +2471,10 @@ static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
} }
/****** Write the user's ID ******/ /****** Write the user's ID ******/
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" : UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL); ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP (); HTM_NBSP ();
HTM_TD_End (); HTM_TD_End ();
@ -2537,14 +2538,15 @@ static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
/***** Write number of user *****/ /***** Write number of user *****/
HTM_TD_Begin ("class=\"USR_LIST_NUM_N CM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"USR_LIST_NUM_N CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumUsr); HTM_Unsigned (NumUsr);
HTM_TD_End (); HTM_TD_End ();
if (Gbl.Usrs.Listing.WithPhotos) if (Gbl.Usrs.Listing.WithPhotos)
{ {
/***** Show administrator's photo *****/ /***** Show administrator's photo *****/
HTM_TD_Begin ("class=\"LM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
@ -2552,10 +2554,10 @@ static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
} }
/****** Write the user's ID ******/ /****** Write the user's ID ******/
HTM_TD_Begin ("class=\"%s LM COLOR%u\"", HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" : UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL", "DAT_SMALL",
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL); ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP (); HTM_NBSP ();
HTM_TD_End (); HTM_TD_End ();
@ -3856,9 +3858,7 @@ static void Usr_PutCheckboxToSelectAllUsers (Rol_Role_t Role,
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TH_Begin (1,Usr_GetColumnsForSelectUsrs (), HTM_TH_Begin (1,Usr_GetColumnsForSelectUsrs (),"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]));
Str_FreeStrings ();
HTM_LABEL_Begin (NULL); HTM_LABEL_Begin (NULL);
if (Usr_NameSelUnsel[Role] && Usr_ParamUsrCod[Role]) if (Usr_NameSelUnsel[Role] && Usr_ParamUsrCod[Role])
@ -4007,24 +4007,19 @@ void Usr_WriteHeaderFieldsUsrDat (bool PutCheckBoxToSelectUsr)
{ {
extern const char *The_ClassBgHighlight[The_NUM_THEMES]; extern const char *The_ClassBgHighlight[The_NUM_THEMES];
unsigned NumCol; unsigned NumCol;
const char *ClassHeader;
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/***** First column used for selection *****/ /***** First column used for selection *****/
if (PutCheckBoxToSelectUsr) if (PutCheckBoxToSelectUsr)
HTM_TH (1,1,ClassHeader,NULL); HTM_TH (1,1,NULL,"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/***** Columns for user's data fields *****/ /***** Columns for user's data fields *****/
for (NumCol = 0; for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR; NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR;
NumCol++) NumCol++)
if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
HTM_TH (1,1,ClassHeader,Usr_UsrDatMainFieldNames[NumCol]); HTM_TH (1,1,Usr_UsrDatMainFieldNames[NumCol],"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
Str_FreeStrings ();
HTM_TR_End (); HTM_TR_End ();
} }
@ -4168,7 +4163,6 @@ static void Usr_ListMainDataTchs (Rol_Role_t Role,
unsigned NumCol; unsigned NumCol;
unsigned NumUsr; unsigned NumUsr;
struct UsrData UsrDat; struct UsrData UsrDat;
const char *ClassHeader;
if (Gbl.Usrs.LstUsrs[Role].NumUsrs) if (Gbl.Usrs.LstUsrs[Role].NumUsrs)
{ {
@ -4180,20 +4174,16 @@ static void Usr_ListMainDataTchs (Rol_Role_t Role,
/* Begin row */ /* Begin row */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* First column used for selection */ /* First column used for selection */
if (PutCheckBoxToSelectUsr) if (PutCheckBoxToSelectUsr)
HTM_TH (1,1,ClassHeader,NULL); HTM_TH (1,1,NULL,"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* Columns for the data */ /* Columns for the data */
for (NumCol = 0; for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR; NumCol < Usr_NUM_MAIN_FIELDS_DATA_USR;
NumCol++) NumCol++)
if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column if (NumCol != 2 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
HTM_TH (1,1,ClassHeader,Usr_UsrDatMainFieldNames[NumCol]); HTM_TH (1,1,Usr_UsrDatMainFieldNames[NumCol],"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
Str_FreeStrings ();
/* End row */ /* End row */
HTM_TR_End (); HTM_TR_End ();
@ -4247,7 +4237,6 @@ void Usr_ListAllDataGsts (void)
unsigned NumUsr; unsigned NumUsr;
struct UsrData UsrDat; struct UsrData UsrDat;
const char *FieldNames[Usr_NUM_ALL_FIELDS_DATA_GST]; const char *FieldNames[Usr_NUM_ALL_FIELDS_DATA_GST];
const char *ClassHeader;
/***** Initialize field names *****/ /***** Initialize field names *****/
FieldNames[ 0] = Txt_Photo; FieldNames[ 0] = Txt_Photo;
@ -4287,16 +4276,13 @@ void Usr_ListAllDataGsts (void)
/* Begin row */ /* Begin row */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* Columns for the data */ /* Columns for the data */
for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 : for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 :
1); 1);
NumCol < NumColumnsCommonCard; NumCol < NumColumnsCommonCard;
NumCol++) NumCol++)
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]); HTM_TH (1,1,FieldNames[NumCol],"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
Str_FreeStrings ();
/* End row */ /* End row */
HTM_TR_End (); HTM_TR_End ();
@ -4365,7 +4351,6 @@ void Usr_ListAllDataStds (void)
struct UsrData UsrDat; struct UsrData UsrDat;
const char *FieldNames[Usr_NUM_ALL_FIELDS_DATA_STD]; const char *FieldNames[Usr_NUM_ALL_FIELDS_DATA_STD];
size_t Length; size_t Length;
const char *ClassHeader;
/***** Initialize field names *****/ /***** Initialize field names *****/
FieldNames[0] = Txt_Photo; FieldNames[0] = Txt_Photo;
@ -4445,14 +4430,12 @@ void Usr_ListAllDataStds (void)
/* Begin row */ /* Begin row */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* 1. Columns for the data */ /* 1. Columns for the data */
for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 : for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 :
1); 1);
NumCol < NumColsCommonRecord; NumCol < NumColsCommonRecord;
NumCol++) NumCol++)
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]); HTM_TH (1,1,FieldNames[NumCol],"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* 2. Columns for the groups */ /* 2. Columns for the groups */
if (Gbl.Scope.Current == HieLvl_CRS) if (Gbl.Scope.Current == HieLvl_CRS)
@ -4463,7 +4446,7 @@ void Usr_ListAllDataStds (void)
NumGrpTyp++) NumGrpTyp++)
if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) // If current course tiene groups of este type if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) // If current course tiene groups of este type
{ {
HTM_TH_Begin (1,1,ClassHeader); HTM_TH_Begin (1,1,"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
HTM_TxtF ("%s&nbsp;%s", HTM_TxtF ("%s&nbsp;%s",
Txt_Group, Txt_Group,
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypName); Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypName);
@ -4476,7 +4459,7 @@ void Usr_ListAllDataStds (void)
for (NumField = 0; for (NumField = 0;
NumField < Gbl.Crs.Records.LstFields.Num; NumField < Gbl.Crs.Records.LstFields.Num;
NumField++) NumField++)
HTM_TH (1,1,ClassHeader,Gbl.Crs.Records.LstFields.Lst[NumField].Name); HTM_TH (1,1,Gbl.Crs.Records.LstFields.Lst[NumField].Name,"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
/* 4. Visibility type for the record fields that depend on the course, in other row */ /* 4. Visibility type for the record fields that depend on the course, in other row */
HTM_TR_End (); HTM_TR_End ();
@ -4488,14 +4471,14 @@ void Usr_ListAllDataStds (void)
NumCol++) NumCol++)
if (NumCol != 1 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want it in listing if (NumCol != 1 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want it in listing
{ {
HTM_TD_Begin ("class=\"%s\"",ClassHeader); HTM_TD_Begin ("class=\"LM %s\"",The_ClassBgHighlight[Gbl.Prefs.Theme]);
HTM_TD_End (); HTM_TD_End ();
} }
for (NumField = 0; for (NumField = 0;
NumField < Gbl.Crs.Records.LstFields.Num; NumField < Gbl.Crs.Records.LstFields.Num;
NumField++) NumField++)
{ {
HTM_TH_Begin (1,1,ClassHeader); HTM_TH_Begin (1,1,"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
HTM_TxtF ("(%s)", HTM_TxtF ("(%s)",
Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.Crs.Records.LstFields.Lst[NumField].Visibility]); Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.Crs.Records.LstFields.Lst[NumField].Visibility]);
HTM_TH_End (); HTM_TH_End ();
@ -4503,8 +4486,6 @@ void Usr_ListAllDataStds (void)
} }
} }
Str_FreeStrings ();
/* End row */ /* End row */
HTM_TR_End (); HTM_TR_End ();
@ -4700,20 +4681,15 @@ static void Usr_ListRowsAllDataTchs (Rol_Role_t Role,
unsigned NumCol; unsigned NumCol;
struct UsrData UsrDat; struct UsrData UsrDat;
unsigned NumUsr; unsigned NumUsr;
const char *ClassHeader;
/***** Heading row *****/ /***** Heading row *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 : for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 :
1); 1);
NumCol < NumColumns; NumCol < NumColumns;
NumCol++) NumCol++)
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]); HTM_TH (1,1,FieldNames[NumCol],"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
Str_FreeStrings ();
HTM_TR_End (); HTM_TR_End ();
@ -4813,12 +4789,13 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,
{ {
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("colspan=\"2\" class=\"%s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End (); HTM_TD_End ();
HTM_TD_Begin ("colspan=\"%u\" class=\"COLOR%u\"", HTM_TD_Begin ("colspan=\"%u\" class=\"%s\"",
Usr_NUM_MAIN_FIELDS_DATA_USR-2, Usr_NUM_MAIN_FIELDS_DATA_USR-2,
Gbl.RowEvenOdd); Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Role == Rol_UNK) if (Role == Rol_UNK)
{ {
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_TCH); Crs_GetAndWriteCrssOfAUsr (&UsrDat,Rol_TCH);
@ -4874,7 +4851,6 @@ void Usr_ListDataAdms (void)
unsigned NumUsr; unsigned NumUsr;
struct UsrData UsrDat; struct UsrData UsrDat;
const char *FieldNames[Usr_NUM_MAIN_FIELDS_DATA_ADM]; const char *FieldNames[Usr_NUM_MAIN_FIELDS_DATA_ADM];
const char *ClassHeader;
/***** Put contextual links *****/ /***** Put contextual links *****/
switch (Gbl.Usrs.Me.Role.Logged) switch (Gbl.Usrs.Me.Role.Logged)
@ -4958,15 +4934,11 @@ void Usr_ListDataAdms (void)
HTM_TABLE_Begin (NULL); HTM_TABLE_Begin (NULL);
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
ClassHeader = Str_BuildString ("LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
for (NumCol = 0; for (NumCol = 0;
NumCol < Usr_NUM_MAIN_FIELDS_DATA_ADM; NumCol < Usr_NUM_MAIN_FIELDS_DATA_ADM;
NumCol++) NumCol++)
if (NumCol != 1 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column if (NumCol != 1 || Gbl.Usrs.Listing.WithPhotos) // Skip photo column if I don't want this column
HTM_TH (1,1,ClassHeader,FieldNames[NumCol]); HTM_TH (1,1,FieldNames[NumCol],"LM %s",The_ClassBgHighlight[Gbl.Prefs.Theme]);
Str_FreeStrings ();
HTM_TR_End (); HTM_TR_End ();
@ -6437,10 +6409,10 @@ void Usr_ShowTableCellWithUsrData (struct UsrData *UsrDat,unsigned NumRows)
/***** Show user's photo *****/ /***** Show user's photo *****/
if (NumRows) if (NumRows)
HTM_TD_Begin ("rowspan=\"%u\" class=\"LT LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("rowspan=\"%u\" class=\"LT LINE_BOTTOM %s\"",
NumRows + 1,Gbl.RowEvenOdd); NumRows + 1,Gbl.ColorRows[Gbl.RowEvenOdd]);
else else
HTM_TD_Begin ("class=\"LT LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT LINE_BOTTOM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat, Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
@ -6449,10 +6421,10 @@ void Usr_ShowTableCellWithUsrData (struct UsrData *UsrDat,unsigned NumRows)
/***** User's IDs and name *****/ /***** User's IDs and name *****/
/* Begin cell */ /* Begin cell */
if (NumRows) if (NumRows)
HTM_TD_Begin ("rowspan=\"%u\" class=\"LT LINE_BOTTOM COLOR%u\"", HTM_TD_Begin ("rowspan=\"%u\" class=\"LT LINE_BOTTOM %s\"",
NumRows + 1,Gbl.RowEvenOdd); NumRows + 1,Gbl.ColorRows[Gbl.RowEvenOdd]);
else else
HTM_TD_Begin ("class=\"LT LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd); HTM_TD_Begin ("class=\"LT LINE_BOTTOM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Action to go to user's record depending on role in course */ /* Action to go to user's record depending on role in course */
if (!NextAction[UsrDat->Roles.InCurrentCrs]) if (!NextAction[UsrDat->Roles.InCurrentCrs])