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_YELLOW {}
.INPUT_PINK {}
.INPUT_DARK {background-color:#1f1f1f;color:white;}
.INPUT_DARK {border-color:#505050;background-color:#1f1f1f;color:white;}
table
{
@ -1692,9 +1692,9 @@ a:hover img.CENTER_PHOTO_SHOW
box-sizing:border-box;
margin:0 auto 10px auto;
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:linear-gradient(rgba(238,216,108,0.8) 0%,rgba(248,237,149,0.8) 15%,rgba(250,240,152,0.8) 100%);
box-shadow:0 8px 10px -5px rgba(125,113,0,0.8);
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.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.6);
text-align:left;
overflow:hidden;
}
@ -1703,9 +1703,9 @@ a:hover img.CENTER_PHOTO_SHOW
box-sizing:border-box;
margin:0 auto 10px auto;
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:linear-gradient(rgba(238,216,108,0.4) 0%,rgba(248,237,149,0.4) 15%,rgba(250,240,152,0.4) 100%);
box-shadow:0 8px 10px -5px rgba(125,113,0,0.4);
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.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.3);
text-align:left;
overflow:hidden;
}
@ -1859,7 +1859,7 @@ a:hover img.CENTER_PHOTO_SHOW
.ALERT_BG_BLUE {background-color:#fff8e5;}
.ALERT_BG_YELLOW {background-color:#fff8e5;}
.ALERT_BG_PINK {background-color:#fff8e5;}
.ALERT_BG_DARK {background-color:#a0a0a0;}
.ALERT_BG_DARK {background-color:#808080;}
.ALERT_CLOSE
{
@ -2350,8 +2350,22 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.RB {text-align:right; vertical-align:bottom;} /* Right Bottom */
/***************** Colors used in headers, backgrounds, etc. *****************/
.COLOR0 {background-color:#F4F2EA;}
.COLOR1 {background-color:#FBFAF7;}
.COLOR0_WHITE {background-color:#f4f2ea;}
.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;}
.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_TH_BeginWithoutAttr (void);
static void HTM_TH_BeginAttr (const char *fmt,...);
static void HTM_TD_BeginWithoutAttr (void);
static void HTM_DIV_BeginWithoutAttr (void);
@ -318,87 +315,123 @@ void HTM_TR_End (void)
/***************************** Table heading cells ***************************/
/*****************************************************************************/
void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Class,const char *Txt)
{
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,...)
void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Txt,const char *ClassFmt,...)
{
va_list ap;
int NumBytesPrinted;
char *Attr;
char *Attr = NULL;
if (fmt)
{
if (fmt[0])
if (ClassFmt)
if (ClassFmt[0])
{
va_start (ap,fmt);
NumBytesPrinted = vasprintf (&Attr,fmt,ap);
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 ();
/***** 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
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
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)
@ -418,10 +451,7 @@ void HTM_TH_Empty (unsigned NumColumns)
for (NumCol = 0;
NumCol < NumColumns;
NumCol++)
{
HTM_TH_BeginAttr (NULL);
HTM_TH_End ();
}
HTM_Txt ("<th></th>");
}
/*****************************************************************************/
@ -494,7 +524,7 @@ void HTM_TD_ColouredEmpty (unsigned NumColumns)
NumCol < NumColumns;
NumCol++)
{
HTM_TD_Begin ("class=\"COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
}
}

View File

@ -66,8 +66,8 @@ void HTM_TBODY_End (void);
void HTM_TR_Begin (const char *fmt,...);
void HTM_TR_End (void);
void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Class,const char *Txt);
void HTM_TH_Begin (unsigned RowSpan,unsigned ColSpan,const char *Class);
void HTM_TH (unsigned RowSpan,unsigned ColSpan,const char *Txt,const char *ClassFmt,...);
void HTM_TH_Begin (unsigned RowSpan,unsigned ColSpan,const char *ClassFmt,...);
void HTM_TH_End (void);
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);
/***** Write number of user in the list *****/
HTM_TD_Begin ("rowspan=\"2\" class=\"USR_LIST_NUM_N RT COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("rowspan=\"2\" class=\"USR_LIST_NUM_N RT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumUsr);
HTM_TD_End ();
/***** 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],
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%s:&nbsp;%s",Txt_ID,ID);
HTM_BR ();
HTM_TxtColonNBSP (Txt_Name);
@ -309,7 +309,7 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
HTM_TD_End ();
/***** 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);
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
Btn_PutCreateButtonInline (Txt_Its_me);
@ -323,7 +323,7 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
HTM_TR_Begin (NULL);
/***** 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;
Crs_GetAndWriteCrssOfAUsr (UsrDat,Rol_TCH);
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 (1,1,"LM",Txt_Event);
HTM_TH (1,1,"LM",Txt_Location);
HTM_TH (1,1,Txt_Event ,"LM");
HTM_TH (1,1,Txt_Location,"LM");
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)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"",
HTM_TD_Begin ("id=\"%s\" class=\"%s LB %s\"",
Id,
AgdEvent.Hidden ? Dat_TimeStatusClassHidden[AgdEvent.TimeStatus] :
Dat_TimeStatusClassVisible[AgdEvent.TimeStatus],
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,AgdEvent.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x6);
@ -827,17 +827,17 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
}
/* Event */
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
HTM_TD_Begin ("class=\"%s LT %s\"",
AgdEvent.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor);
HTM_Txt (AgdEvent.Event);
HTM_ARTICLE_End ();
HTM_TD_End ();
/* 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" :
"ASG_TITLE");
HTM_Txt (AgdEvent.Location);
@ -849,7 +849,7 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
/***** Write second row of data of this event *****/
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)
{
case Agd_MY_AGENDA_TODAY:
@ -863,9 +863,10 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
HTM_TD_End ();
/* Text of the event */
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_DIV_Begin ("class=\"PAR %s\"",AgdEvent.Hidden ? The_ClassDatLight[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
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] :
The_ClassDat[Gbl.Prefs.Theme]);
Agd_DB_GetEventTxt (&AgdEvent,Txt);
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML

View File

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

View File

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

View File

@ -943,13 +943,13 @@ static void Ban_PutHeadBanners (void)
HTM_TR_Begin (NULL);
/****** Head cells *****/
HTM_TH (1,1,"BM",NULL);
HTM_TH (1,1,"BM",NULL);
HTM_TH (1,1,"RM",Txt_Code);
HTM_TH (1,1,"LM",Txt_Short_name);
HTM_TH (1,1,"LM",Txt_Full_name);
HTM_TH (1,1,"LM",Txt_Image);
HTM_TH (1,1,"LM",Txt_WWW);
HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,Txt_Short_name,"LM");
HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,Txt_Image ,"LM");
HTM_TH (1,1,Txt_WWW ,"LM");
/***** End table row *****/
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 *****/
/* 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_TR_Begin (NULL);
@ -5368,10 +5369,10 @@ static void Brw_WriteDatesAssignment (void)
char *Id;
/***** 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" :
"ASG_LST_DATE_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Gbl.FileBrowser.Asg.AsgCod > 0)
{
@ -5422,14 +5423,14 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
Fil_WriteFileSizeBrief ((double) FileMetadata->Size,FileSizeStr);
else
FileSizeStr[0] = '\0';
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RM %s\"",
Gbl.FileBrowser.TxtStyle,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("&nbsp;%s",FileSizeStr);
HTM_TD_End ();
/***** Write the date *****/
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RM %s\"",
Gbl.FileBrowser.TxtStyle,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_NBSP ();
if (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FILE ||
Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_LINK)
@ -9827,13 +9828,13 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL);
HTM_TH (1,1,"LM",Txt_Institution);
HTM_TH (1,1,"LM",Txt_Center);
HTM_TH (1,1,"LM",Txt_Degree);
HTM_TH (1,1,"LM",Txt_Course);
HTM_TH (1,1,"LM",Txt_File_zone);
HTM_TH (1,1,"LM",Txt_Document);
HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,Txt_Institution,"LM");
HTM_TH (1,1,Txt_Center ,"LM");
HTM_TH (1,1,Txt_Degree ,"LM");
HTM_TH (1,1,Txt_Course ,"LM");
HTM_TH (1,1,Txt_File_zone ,"LM");
HTM_TH (1,1,Txt_Document ,"LM");
HTM_TR_End ();
/***** List documents found *****/

View File

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

View File

@ -129,8 +129,8 @@ void Ctr_SeeCtrWithPendingDegs (void)
/***** Wrtie heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Center);
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION);
HTM_TH (1,1,Txt_Center ,"LM");
HTM_TH (1,1,Txt_Degrees_ABBREVIATION,"RM");
HTM_TR_End ();
@ -1460,9 +1460,9 @@ static void Ctr_PutHeadCentersForSeeing (bool OrderSelectable)
HTM_TH_End ();
}
HTM_TH (1,1,"LM",Txt_Place);
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION);
HTM_TH (1,1,"RM",Txt_Courses_ABBREVIATION);
HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,Txt_Degrees_ABBREVIATION,"RM");
HTM_TH (1,1,Txt_Courses_ABBREVIATION,"RM");
HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR ();
@ -1492,20 +1492,20 @@ static void Ctr_PutHeadCentersForEdition (void)
HTM_TR_Begin (NULL);
HTM_TH_Empty (1);
HTM_TH (1,1,"RM",Txt_Code);
HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH_Empty (1);
HTM_TH (1,1,"LM",Txt_Place);
HTM_TH (1,1,"LM",Txt_Short_name_of_the_center);
HTM_TH (1,1,"LM",Txt_Full_name_of_the_center);
HTM_TH (1,1,"LM",Txt_WWW);
HTM_TH (1,1,"RM",Txt_Users);
HTM_TH (1,1,"RM",Txt_Degrees_ABBREVIATION);
HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,Txt_Short_name_of_the_center,"LM");
HTM_TH (1,1,Txt_Full_name_of_the_center ,"LM");
HTM_TH (1,1,Txt_WWW ,"LM");
HTM_TH (1,1,Txt_Users ,"RM");
HTM_TH (1,1,Txt_Degrees_ABBREVIATION ,"RM");
HTM_TH_Begin (1,1,"RM");
HTM_TxtF ("%s+",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_BR ();
HTM_Txt (Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
HTM_TH_End ();
HTM_TH (1,1,"LM",Txt_Requester);
HTM_TH (1,1,Txt_Requester ,"LM");
HTM_TH_Empty (1);
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.
*/
#define Log_PLATFORM_VERSION "SWAD 21.70.8 (2021-12-20)"
#define CSS_FILE "swad21.70.7.css"
#define Log_PLATFORM_VERSION "SWAD 21.71 (2021-12-20)"
#define CSS_FILE "swad21.71.css"
#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.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)

View File

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

View File

@ -593,7 +593,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
HTM_TR_Begin (NULL);
/***** 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,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
true);
@ -610,7 +610,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
ClassTxt = "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 list of connected users
// is dynamically updated via AJAX
@ -631,7 +631,7 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
/***** Write time from last access *****/
ClassTxt = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_SINCE CON_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
Dat_WriteHoursMinutesSecondsFromSeconds (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].TimeDiff);
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);
/***** 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,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false);
@ -727,7 +727,8 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
ClassTxt = "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)
{
@ -753,7 +754,8 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R
/***** Write time from last access *****/
ClassTxt = ThisCrs ? "CON_SINCE CON_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);
HTM_TD_End ();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -248,7 +248,7 @@ static void Exa_ListAllExams (struct Exa_Exams *Exams)
HTM_TABLE_BeginWideMarginPadding (5);
HTM_TR_Begin (NULL);
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;
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 (1,1,"RM",Txt_Sessions);
HTM_TH (1,1,Txt_Sessions,"RM");
HTM_TR_End ();
@ -503,7 +503,8 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam)
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
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 */
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\"",
Id,Color);
else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
Id,Color,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,Color,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Exam->TimeUTC[Dat_STR_TIME])
Dat_WriteLocalDateHMSFromUTC (Id,Exam->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
@ -541,7 +542,7 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam)
HTM_TD_Begin ("class=\"LT\"");
else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Exam title */
Exams->ExaCod = Exam->ExaCod;
@ -574,7 +575,7 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam)
HTM_TD_Begin ("class=\"RT\"");
else
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Exams->ExaCod = Exam->ExaCod;
Frm_BeginForm (ActSeeExa);
@ -601,7 +602,8 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
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);
HTM_TD_End ();
@ -609,7 +611,8 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
if (ShowOnlyThisExam)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
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);
Str_ChangeFormat (Str_FROM_HTML,Str_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 *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RB",Txt_Click);
HTM_TH (1,1,"LB",Txt_Date_and_time);
HTM_TH (1,1,"LB",Txt_Action);
HTM_TH (1,1,"RB",Txt_Question);
HTM_TH (1,1,"CB",Txt_EXAM_Open);
HTM_TH (1,1,"LB",Txt_IP);
HTM_TH (1,1,"LB",Txt_Session);
HTM_TH (1,1,"LB",Txt_Web_browser);
HTM_TH (1,1,Txt_Click ,"RB");
HTM_TH (1,1,Txt_Date_and_time,"LB");
HTM_TH (1,1,Txt_Action ,"LB");
HTM_TH (1,1,Txt_Question ,"RB");
HTM_TH (1,1,Txt_EXAM_Open ,"CB");
HTM_TH (1,1,Txt_IP ,"LB");
HTM_TH (1,1,Txt_Session ,"LB");
HTM_TH (1,1,Txt_Web_browser ,"LB");
HTM_TR_End ();
/***** Write clicks *****/
@ -319,16 +319,18 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TR_Begin (NULL);
/* Write number of click */
HTM_TD_Begin ("class=\"RT COLOR%u %s\"",
Gbl.RowEvenOdd,UsrCouldAnswer ? "DAT_SMALL" :
"DAT_SMALL_LIGHT");
HTM_TD_Begin ("class=\"RT %s %s\"",
UsrCouldAnswer ? "DAT_SMALL" :
"DAT_SMALL_LIGHT",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumClick + 1);
HTM_TD_End ();
/* Write click time */
if (asprintf (&Id,"click_date_%u",NumClick) < 0)
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,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
true,true,true,0x7);
@ -336,26 +338,30 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End ();
/* 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_TD_End ();
/* 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)
HTM_Unsigned ((unsigned) QstInd + 1);
HTM_TD_End ();
/* Write if exam print was open and accesible to answer */
HTM_TD_Begin ("class=\"CT COLOR%u %s\"",
Gbl.RowEvenOdd,UsrCouldAnswer ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED");
HTM_TD_Begin ("class=\"CT %s %s\"",
UsrCouldAnswer ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (UsrCouldAnswer ? "&check;" :
"&cross;");
HTM_TD_End ();
/* 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);
if (Length > 6)
{
@ -373,7 +379,8 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End ();
/* 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])
{
Length = strlen (SessionId);
@ -394,7 +401,8 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End ();
/* 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])
HTM_Txt (UserAgent);
HTM_TD_End ();

View File

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

View File

@ -602,8 +602,8 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
/***** Heading row *****/
HTM_TR_Begin (NULL);
HTM_TH (1,2,NULL,NULL);
HTM_TH (1,1,"LM",Txt_Exam);
HTM_TH (1,2,NULL ,NULL);
HTM_TH (1,1,Txt_Exam,"LM");
HTM_TR_End ();
/***** List the sessions *****/
@ -619,8 +619,9 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
/* Write a row for this session */
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_INPUT_CHECKBOX ("ExaCod",HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"Gam%u\" value=\"%ld\"%s",
NumExam,Exams->Lst[NumExam].ExaCod,
@ -628,15 +629,17 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
"");
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_Begin ("for=\"Gam%u\"",NumExam);
HTM_TxtF ("%u:",NumExam + 1);
HTM_LABEL_End ();
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Exam.Title);
HTM_TD_End ();
@ -689,39 +692,42 @@ static void ExaRes_ShowHeaderResults (Usr_MeOrOther_t MeOrOther)
/***** First row *****/
HTM_TR_Begin (NULL);
HTM_TH (3,2,"CT LINE_BOTTOM",Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
Usr_SEX_UNKNOWN]);
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_STR_TIME]);
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_END_TIME]);
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_Session);
HTM_TH (1,3,"CT LINE_LEFT",Txt_Questions);
HTM_TH (1,5,"CT LINE_LEFT",Txt_Valid_answers);
HTM_TH (1,2,"CT LINE_LEFT",Txt_Score);
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Grade);
HTM_TH (3,1,"LINE_BOTTOM LINE_LEFT",NULL);
HTM_TH (3,2,Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
Usr_SEX_UNKNOWN],
"CT LINE_BOTTOM");
HTM_TH (3,1,Txt_START_END_TIME[Dat_STR_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,Txt_START_END_TIME[Dat_END_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,Txt_Session ,"LT LINE_BOTTOM");
HTM_TH (1,3,Txt_Questions ,"CT LINE_LEFT");
HTM_TH (1,5,Txt_Valid_answers ,"CT LINE_LEFT");
HTM_TH (1,2,Txt_Score ,"CT LINE_LEFT");
HTM_TH (3,1,Txt_Grade ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (3,1,NULL ,"LINE_BOTTOM LINE_LEFT");
HTM_TR_End ();
/***** Second row *****/
HTM_TR_Begin (NULL);
HTM_TH (2,1,"RT LINE_BOTTOM LINE_LEFT",Txt_total);
HTM_TH (2,1,"RT LINE_BOTTOM",Txt_QUESTIONS_valid);
HTM_TH (2,1,"RT LINE_BOTTOM",Txt_QUESTIONS_invalid);
HTM_TH (1,1,"RT LINE_LEFT",Txt_ANSWERS_correct);
HTM_TH (1,3,"CT",Txt_ANSWERS_wrong);
HTM_TH (1,1,"RT",Txt_ANSWERS_blank);
HTM_TH (1,1,"RT LINE_LEFT",Txt_total);
HTM_TH (1,1,"RT",Txt_average);
HTM_TH (2,1,Txt_total ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (2,1,Txt_QUESTIONS_valid ,"RT LINE_BOTTOM");
HTM_TH (2,1,Txt_QUESTIONS_invalid,"RT LINE_BOTTOM");
HTM_TH (1,1,Txt_ANSWERS_correct ,"RT LINE_LEFT");
HTM_TH (1,3,Txt_ANSWERS_wrong ,"CT");
HTM_TH (1,1,Txt_ANSWERS_blank ,"RT");
HTM_TH (1,1,Txt_total ,"RT LINE_LEFT");
HTM_TH (1,1,Txt_average ,"RT");
HTM_TR_End ();
/***** Third row *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","{<em>p<sub>i</sub></em>=1}");
HTM_TH (1,1,"RT LINE_BOTTOM","{-1&le;<em>p<sub>i</sub></em>&lt;0}");
HTM_TH (1,1,"RT LINE_BOTTOM","{<em>p<sub>i</sub></em>=0}");
HTM_TH (1,1,"RT LINE_BOTTOM","{0&lt;<em>p<sub>i</sub></em>&lt;1}");
HTM_TH (1,1,"RT LINE_BOTTOM","{<em>p<sub>i</sub></em>=0}");
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","<em>&Sigma;p<sub>i</sub></em>");
HTM_TH (1,1,"RT LINE_BOTTOM","-1&le;<em style=\"text-decoration:overline;\">p</em>&le;1");
HTM_TH (1,1,"{<em>p<sub>i</sub></em>=1}" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"{-1&le;<em>p<sub>i</sub></em>&lt;0}","RT LINE_BOTTOM");
HTM_TH (1,1,"{<em>p<sub>i</sub></em>=0}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"{0&lt;<em>p<sub>i</sub></em>&lt;1}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"{<em>p<sub>i</sub></em>=0}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"<em>&Sigma;p<sub>i</sub></em>" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"-1&le;"
"<em style=\"text-decoration:overline;\">p</em>"
"&le;1" ,"RT LINE_BOTTOM");
HTM_TR_End ();
}
@ -844,8 +850,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
UniqueId++;
if (asprintf (&Id,"exa_res_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id =\"%s\" class=\"%s LT COLOR%u\"",
Id,The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("id =\"%s\" class=\"%s LT %s\"",
Id,The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -854,8 +861,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
}
/* Write session title */
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Session.Title);
HTM_TD_End ();
@ -878,8 +886,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
}
/* Write total number of questions */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
HTM_Unsigned (Print.NumQsts.All);
else
@ -887,7 +896,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* 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 (Print.NumQsts.Valid.Total)
@ -900,7 +910,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* 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)
{
NumQstsInvalid = Print.NumQsts.All - Print.NumQsts.Valid.Total;
@ -914,8 +925,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* Write number of correct questions */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
{
if (Print.NumQsts.Valid.Correct)
@ -928,8 +940,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* Write number of wrong questions */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
{
if (Print.NumQsts.Valid.Wrong.Negative)
@ -941,8 +954,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
{
if (Print.NumQsts.Valid.Wrong.Zero)
@ -954,8 +968,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
Ico_PutIconNotVisible ();
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
{
if (Print.NumQsts.Valid.Wrong.Positive)
@ -968,8 +983,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* Write number of blank questions */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
{
if (Print.NumQsts.Valid.Blank)
@ -982,8 +998,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* Write score valid (taking into account only valid questions) */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
{
HTM_Double2Decimals (Print.Score.Valid);
@ -995,8 +1012,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* Write average score per question (taking into account only valid questions) */
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
HTM_Double2Decimals (Print.NumQsts.Valid.Total ? Print.Score.Valid /
(double) Print.NumQsts.Valid.Total :
@ -1006,8 +1024,9 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
HTM_TD_End ();
/* Write grade over maximum grade (taking into account only valid questions) */
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT LINE_LEFT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanView.Score)
{
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 ();
/* 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)
{
Exams->ExaCod = Session.ExaCod;
@ -1053,33 +1073,33 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
else
{
/* Columns for dates and title */
HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
/* Columns for questions */
HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"3\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
/* Columns for answers */
HTM_TD_Begin ("colspan=\"5\" class=\"LINE_BOTTOM LINE_LEFT COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"5\" class=\"LINE_BOTTOM LINE_LEFT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
/* 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 ();
/* 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 ();
/* 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 ();
}
@ -1106,20 +1126,23 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
unsigned NumTotalQstsInvalid;
/***** Row title *****/
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColonNBSP (Txt_Sessions);
HTM_Unsigned (NumResults);
HTM_TD_End ();
/***** Write total number of questions *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumTotalQsts->All);
HTM_TD_End ();
/***** 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)
HTM_Unsigned (NumTotalQsts->Valid.Total);
else
@ -1127,7 +1150,8 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End ();
/***** 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;
if (NumTotalQstsInvalid)
HTM_Unsigned (NumTotalQstsInvalid);
@ -1136,8 +1160,9 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End ();
/***** Write number of correct questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Correct)
HTM_Unsigned (NumTotalQsts->Valid.Correct);
else
@ -1145,24 +1170,27 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End ();
/***** Write number of wrong questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Wrong.Negative)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Negative);
else
HTM_Light0 ();
HTM_TD_End ();
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Wrong.Zero)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Zero);
else
HTM_Light0 ();
HTM_TD_End ();
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Wrong.Positive)
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Positive);
else
@ -1170,8 +1198,9 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End ();
/***** Write number of blank questions *****/
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumTotalQsts->Valid.Blank)
HTM_Unsigned (NumTotalQsts->Valid.Blank);
else
@ -1179,16 +1208,18 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
HTM_TD_End ();
/***** Write total valid score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (TotalScore->Valid);
HTM_Txt ("/");
HTM_Unsigned (NumTotalQsts->Valid.Total);
HTM_TD_End ();
/***** Write average valid score per valid question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (NumTotalQsts->Valid.Total ? TotalScore->Valid /
(double) NumTotalQsts->Valid.Total :
0.0);
@ -1196,14 +1227,16 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
/***** Write total grade *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Double2Decimals (TotalGrade);
HTM_TD_End ();
/***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
}
@ -1885,13 +1918,13 @@ static void ExaRes_WriteQstAndAnsExam (struct UsrData *UsrDat,
HTM_TR_Begin (NULL);
/***** 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_WriteAnswerType (Question->Answer.Type,ClassAnswerType[Question->Validity]);
HTM_TD_End ();
/***** Stem, media and answers *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Stem */
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)
{
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
HTM_TD_End ();
HTM_TR_End ();
@ -367,11 +368,11 @@ static void ExaSes_ListOneOrMoreSessionsHeading (bool ICanEditSessions)
HTM_TH_Empty (1);
/***** The rest of columns *****/
HTM_TH (1,1,"LT",Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN]);
HTM_TH (1,1,"LT",Txt_START_END_TIME[Exa_ORDER_BY_START_DATE]);
HTM_TH (1,1,"LT",Txt_START_END_TIME[Exa_ORDER_BY_END_DATE ]);
HTM_TH (1,1,"LT",Txt_Session);
HTM_TH (1,1,"CT",Txt_Results);
HTM_TH (1,1,Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN],"LT");
HTM_TH (1,1,Txt_START_END_TIME[Exa_ORDER_BY_START_DATE] ,"LT");
HTM_TH (1,1,Txt_START_END_TIME[Exa_ORDER_BY_END_DATE ] ,"LT");
HTM_TH (1,1,Txt_Session ,"LT");
HTM_TH (1,1,Txt_Results ,"CT");
/***** End row *****/
HTM_TR_End ();
@ -466,7 +467,7 @@ static void ExaSes_ListOneOrMoreSessionsIcons (struct Exa_Exams *Exams,
static void ExaSes_ListOneOrMoreSessionsAuthor (const struct ExaSes_Session *Session)
{
/***** 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);
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)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
Id,Color,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,Color,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Session->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
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_Resume;
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/***** Session title *****/
HTM_ARTICLE_Begin (Anchor);
@ -624,8 +625,8 @@ static void ExaSes_ListOneOrMoreSessionsResult (struct Exa_Exams *Exams,
[Rol_SYS_ADM] = ExaSes_ListOneOrMoreSessionsResultTch,
};
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Function[Gbl.Usrs.Me.Role.Logged])
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 ();
/***** 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");
HTM_TD_End ();
/***** Title *****/
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor);
if (ICanEditSets)
{
@ -842,14 +843,14 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
HTM_TD_End ();
/***** 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_Unsigned (Exa_DB_GetNumQstsInSet (Set.SetCod));
HTM_SPAN_End ();
HTM_TD_End ();
/***** 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)
{
Frm_BeginFormAnchor (ActChgNumQstExaSet,Anchor);
@ -874,7 +875,8 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
HTM_TR_Begin (NULL);
/***** 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 */
ExaSet_ListSetQuestions (Exams,Exam,&Set);
@ -908,10 +910,10 @@ static void ExaSet_PutTableHeadingForSets (void)
/***** Header cells *****/
HTM_TH_Empty (1);
HTM_TH (1,1,"RB",Txt_No_INDEX);
HTM_TH (1,1,"LB",Txt_Set_of_questions);
HTM_TH (1,1,"RB",Txt_Number_of_questions);
HTM_TH (1,1,"RB",Txt_Number_of_questions_to_show);
HTM_TH (1,1,Txt_No_INDEX ,"RB");
HTM_TH (1,1,Txt_Set_of_questions ,"LB");
HTM_TH (1,1,Txt_Number_of_questions ,"RB");
HTM_TH (1,1,Txt_Number_of_questions_to_show,"RB");
/***** End row *****/
HTM_TR_End ();
@ -971,8 +973,8 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Question);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,Txt_Question,"CT");
HTM_TR_End ();
@ -1207,13 +1209,13 @@ static void ExaSet_ListQuestionForEdition (struct Qst_Question *Question,
};
/***** 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_WriteAnswerType (Question->Answer.Type,ClassAnswerType[Question->Validity]);
HTM_TD_End ();
/***** 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);
/* Write stem */

View File

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

View File

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

View File

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

View File

@ -270,7 +270,7 @@ static void Gam_ListAllGames (struct Gam_Games *Games)
if (Gam_CheckIfICanEditGames () ||
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;
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 (1,1,"RM",Txt_Matches);
HTM_TH (1,1,Txt_Matches,"RM");
HTM_TR_End ();
@ -549,7 +549,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame)
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
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)
/* 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\"",
Id,Color);
else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
Id,Color,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,Color,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Game->TimeUTC[Dat_STR_TIME])
Dat_WriteLocalDateHMSFromUTC (Id,Game->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
@ -592,7 +593,7 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame)
HTM_TD_Begin ("class=\"LT\"");
else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Game title */
Games->GamCod = Game->GamCod;
@ -625,7 +626,7 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame)
HTM_TD_Begin ("class=\"RT\"");
else
HTM_TD_Begin ("class=\"RT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Games->GamCod = Game->GamCod;
Frm_BeginForm (ActSeeGam);
@ -652,7 +653,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
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);
HTM_TD_End ();
@ -660,7 +662,8 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
if (ShowOnlyThisGame)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
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);
Str_ChangeFormat (Str_FROM_HTML,Str_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 (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Code);
HTM_TH (1,1,"CT",Txt_Tags);
HTM_TH (1,1,"CT",Txt_Question);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,Txt_Tags ,"CT");
HTM_TH (1,1,Txt_Question,"CT");
HTM_TR_End ();

View File

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

View File

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

View File

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

View File

@ -666,15 +666,15 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
HTM_TR_Begin (NULL);
/***** 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" :
"submid20x20.gif",
"","ICO25x25");
HTM_TD_End ();
/***** Write institution, center, degree *****/
HTM_TD_Begin ("colspan=\"%u\" class=\"DAT_SMALL_NOBR LT COLOR%u\"",
ColSpan - 1,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"%u\" class=\"DAT_SMALL_NOBR LT %s\"",
ColSpan - 1,Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Get next institution, center, degree */
row = mysql_fetch_row (mysql_res);

View File

@ -130,7 +130,7 @@ void Hld_SeeHolidays (void)
HTM_TABLE_BeginWideMarginPadding (2);
HTM_TR_Begin (NULL);
for (Order = Hld_ORDER_BY_PLACE;
for (Order = Hld_ORDER_BY_PLACE;
Order <= Hld_ORDER_BY_START_DATE;
Order++)
{
@ -147,12 +147,10 @@ void Hld_SeeHolidays (void)
Frm_EndForm ();
HTM_TH_End ();
}
HTM_TH_Begin (1,1,"LM");
HTM_TxtF ("&nbsp;%s&nbsp;",Txt_End_date);
HTM_TH_End ();
HTM_TH (1,1,"LM",Txt_Holiday);
HTM_TH (1,1,Txt_Holiday,"LM");
HTM_TR_End ();
@ -924,11 +922,11 @@ static void Hld_PutFormToCreateHoliday (const struct Plc_Places *Places)
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"LM",Txt_Place);
HTM_TH (1,1,"LM",Txt_Type);
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_STR_TIME]);
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_END_TIME]);
HTM_TH (1,1,"LM",Txt_Holiday);
HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,Txt_START_END_TIME[Dat_STR_TIME],"LM");
HTM_TH (1,1,Txt_START_END_TIME[Dat_END_TIME],"LM");
HTM_TH (1,1,Txt_Holiday ,"LM");
HTM_TR_End ();
HTM_TR_Begin (NULL);
@ -1017,13 +1015,13 @@ static void Hld_PutHeadHolidays (void)
extern const char *Txt_Holiday;
HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL);
HTM_TH (1,1,"RM",Txt_Code);
HTM_TH (1,1,"LM",Txt_Place);
HTM_TH (1,1,"LM",Txt_Type);
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_STR_TIME]);
HTM_TH (1,1,"LM",Txt_START_END_TIME[Dat_END_TIME]);
HTM_TH (1,1,"LM",Txt_Holiday);
HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,Txt_Place ,"LM");
HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,Txt_START_END_TIME[Dat_STR_TIME],"LM");
HTM_TH (1,1,Txt_START_END_TIME[Dat_END_TIME],"LM");
HTM_TH (1,1,Txt_Holiday ,"LM");
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 *****/
HTM_TABLE_BeginPadding (2);
/* Header */
HTM_TR_Begin (NULL);
if (PutForm)
HTM_TH_Empty (1);
HTM_TH (1,1,"RM",Txt_Indicators);
HTM_TH (1,2,"RM",Txt_Courses);
if (PutForm)
HTM_TH_Empty (1);
HTM_TH (1,1,Txt_Indicators,"RM");
HTM_TH (1,2,Txt_Courses ,"RM");
HTM_TR_End ();
for (Ind = 0;
for (Ind = 0;
Ind <= Ind_NUM_INDICATORS;
Ind++)
{
@ -572,111 +571,99 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
{
case Ind_INDICATORS_BRIEF:
HTM_TR_Begin (NULL);
HTM_TH (3,1,"LM COLOR0",Txt_Degree);
HTM_TH (3,1,"LM COLOR0",Txt_Course);
HTM_TH (3,1,"LM COLOR0",Txt_Institutional_BR_code);
HTM_TH (3,1,"LM COLOR0",Txt_Web_page_of_the_course);
HTM_TH (1,11,"CM COLOR0",Txt_Indicators);
HTM_TH (3, 1,Txt_Degree ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_Course ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_Institutional_BR_code ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_Web_page_of_the_course,"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,11,Txt_Indicators ,"CM %s",Gbl.ColorRows[0]);
HTM_TR_End ();
HTM_TR_Begin (NULL);
HTM_TH (2,1,"CT COLOR0",Txt_No_INDEX);
HTM_TH_Begin (1,2,"CT COLOR0");
HTM_TH (2,1,Txt_No_INDEX,"CT %s",Gbl.ColorRows[0]);
HTM_TH_Begin (1,2,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(A) %s",Txt_Syllabus_of_the_course);
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_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_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_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_TH_End ();
HTM_TR_End ();
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TR_End ();
break;
case Ind_INDICATORS_FULL:
HTM_TR_Begin (NULL);
HTM_TH (3,1,"LM COLOR0",Txt_Degree);
HTM_TH (3,1,"LM COLOR0",Txt_Course);
HTM_TH (3,1,"LM COLOR0",Txt_Institutional_BR_code);
HTM_TH (3,1,"LM COLOR0",Txt_Web_page_of_the_course);
HTM_TH (3,1,"LM COLOR0",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH]);
HTM_TH (3,1,"LM COLOR0",Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
HTM_TH (1,24,"CM COLOR0",Txt_Indicators);
HTM_TH (3, 1,Txt_Degree ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_Course ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_Institutional_BR_code ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_Web_page_of_the_course ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],"LM %s",Gbl.ColorRows[0]);
HTM_TH (3, 1,Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,24,Txt_Indicators ,"CM %s",Gbl.ColorRows[0]);
HTM_TR_End ();
HTM_TR_Begin (NULL);
HTM_TH (2,1,"CT COLOR0",Txt_No_INDEX);
HTM_TH_Begin (1,5,"CT COLOR0");
HTM_TH (2,1,Txt_No_INDEX,"CT %s",Gbl.ColorRows[0]);
HTM_TH_Begin (1,5,"CT %s",Gbl.ColorRows[0]);
HTM_TxtF ("(A) %s",Txt_Syllabus_of_the_course);
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_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_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_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_TH_End ();
HTM_TR_End ();
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_LECTURES]);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_PRACTICALS]);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_TEACHING_GUIDE]);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"RM COLOR0",Txt_Assignments);
HTM_TH (1,1,"RM COLOR0",Txt_Files_assignments);
HTM_TH (1,1,"RM COLOR0",Txt_Files_works);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"RM COLOR0",Txt_Forum_threads);
HTM_TH (1,1,"RM COLOR0",Txt_Forum_posts);
HTM_TH (1,1,"RM COLOR0",Txt_Messages_sent_by_teachers);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"RM COLOR0",Txt_Number_of_files_in_DOCUM_zones);
HTM_TH (1,1,"RM COLOR0",Txt_Number_of_files_in_SHARE_zones);
HTM_TH (1,1,"CM COLOR0",Txt_YES);
HTM_TH (1,1,"CM COLOR0",Txt_NO);
HTM_TH (1,1,"LM COLOR0",Txt_INFO_TITLE[Inf_ASSESSMENT]);
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,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_INFO_TITLE[Inf_LECTURES] ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_INFO_TITLE[Inf_PRACTICALS] ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_INFO_TITLE[Inf_TEACHING_GUIDE],"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Assignments ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Files_assignments ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Files_works ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Forum_threads ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Forum_posts ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Messages_sent_by_teachers ,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Number_of_files_in_DOCUM_zones,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_Number_of_files_in_SHARE_zones,"RM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_YES ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_NO ,"CM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_INFO_TITLE[Inf_ASSESSMENT] ,"LM %s",Gbl.ColorRows[0]);
HTM_TH (1,1,Txt_INFO_TITLE[Inf_TEACHING_GUIDE],"LM %s",Gbl.ColorRows[0]);
HTM_TR_End ();
break;
}
@ -712,31 +699,32 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
case Ind_INDICATORS_BRIEF:
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.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[0]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"",
HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[1]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"",
HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[3]);
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\"",
Cfg_URL_SWAD_CGI,CrsCod,ActCod);
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_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumIndicators);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_NO);
HTM_TD_End ();
@ -824,31 +812,32 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
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.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[0]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"",
HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[1]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s LM COLOR%u\"",
HTM_TD_Begin ("class=\"%s LM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[3]);
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\"",
Cfg_URL_SWAD_CGI,CrsCod,ActCod);
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_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
NumTchs != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumTchs);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
NumStds != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumStds);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumIndicators);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_NO);
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" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusLecSrc]);
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" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusPraSrc]);
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" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumAssignments);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesAssignments);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesWorks != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesWorks);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumThreads != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumThreads);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumPosts != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumPosts);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumMsgsSentByTchs != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumMsgsSentByTchs);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesInDocumentZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesInDocumentZones);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
HTM_TD_Begin ("class=\"%s RM %s\"",
(IndicatorsCrs.NumFilesInSharedZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesInSharedZones);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"DAT_SMALL_RED CM %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_NO);
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" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.AssessmentSrc]);
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" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]);
HTM_TD_End ();

View File

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

View File

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

View File

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

View File

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

View File

@ -98,9 +98,9 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void)
Mrk_GetNumRowsHeaderAndFooter (&Marks);
/***** 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],
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
Frm_BeginForm (Gbl.Crs.Grps.GrpCod > 0 ? ActChgNumRowHeaGrp : // Group zone
ActChgNumRowHeaCrs); // Course zone
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
@ -109,16 +109,16 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void)
snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot),"%u",Marks.Header);
HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_HEADER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot,
HTM_SUBMIT_ON_CHANGE,
"size=\"1\" class=\"LST_EDIT_ROWS COLOR%u\"",
Gbl.RowEvenOdd);
"size=\"1\" class=\"LST_EDIT_ROWS %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_End ();
Frm_EndForm ();
HTM_TD_End ();
/***** 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],
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
Frm_BeginForm (Gbl.Crs.Grps.GrpCod > 0 ? ActChgNumRowFooGrp : // Group zone
ActChgNumRowFooCrs); // Course zone
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
@ -127,8 +127,8 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (void)
snprintf (StrHeadOrFoot,sizeof (StrHeadOrFoot),"%u",Marks.Footer);
HTM_INPUT_TEXT (Mrk_HeadOrFootStr[Brw_FOOTER],Cns_MAX_DECIMAL_DIGITS_UINT,StrHeadOrFoot,
HTM_SUBMIT_ON_CHANGE,
"size=\"1\" class=\"LST_EDIT_ROWS COLOR%u\"",
Gbl.RowEvenOdd);
"size=\"1\" class=\"LST_EDIT_ROWS %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_End ();
Frm_EndForm ();
HTM_TD_End ();

View File

@ -453,7 +453,8 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games,
HTM_TR_Begin (NULL);
/* 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
HTM_TD_End ();
@ -491,13 +492,13 @@ static void Mch_ListOneOrMoreMatchesHeading (bool ICanEditMatches)
HTM_TH_Empty (1);
/***** The rest of columns *****/
HTM_TH (1,1,"LT",Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN]);
HTM_TH (1,1,"LT",Txt_START_END_TIME[Gam_ORDER_BY_START_DATE]);
HTM_TH (1,1,"LT",Txt_START_END_TIME[Gam_ORDER_BY_END_DATE ]);
HTM_TH (1,1,"LT",Txt_Match);
HTM_TH (1,1,"RT",Txt_Players);
HTM_TH (1,1,"CT",Txt_Status);
HTM_TH (1,1,"CT",Txt_Results);
HTM_TH (1,1,Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN],"LT");
HTM_TH (1,1,Txt_START_END_TIME[Gam_ORDER_BY_START_DATE] ,"LT");
HTM_TH (1,1,Txt_START_END_TIME[Gam_ORDER_BY_END_DATE ] ,"LT");
HTM_TH (1,1,Txt_Match ,"LT");
HTM_TH (1,1,Txt_Players ,"RT");
HTM_TH (1,1,Txt_Status ,"CT");
HTM_TH (1,1,Txt_Results ,"CT");
/***** End row *****/
HTM_TR_End ();
@ -587,7 +588,7 @@ static void Mch_ListOneOrMoreMatchesIcons (struct Gam_Games *Games,
void Mch_ListOneOrMoreMatchesAuthor (const struct Mch_Match *Match)
{
/***** 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);
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)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,
Match->Status.Showing == Mch_END ? "DATE_RED" :
"DATE_GREEN",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Match->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
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_Resume;
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor);
/***** Match title *****/
@ -720,8 +721,8 @@ void Mch_ListOneOrMoreMatchesNumPlayers (const struct Mch_Match *Match)
extern const char *The_ClassDat[The_NUM_THEMES];
/***** Number of players who have answered any question in the match ******/
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (Mch_DB_GetNumUsrsWhoHavePlayedMch (Match->MchCod));
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_Resume;
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
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,
};
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Function[Gbl.Usrs.Me.Role.Logged])
Function[Gbl.Usrs.Me.Role.Logged] (Games,Match);

View File

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

View File

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

View File

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

View File

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

View File

@ -2216,14 +2216,12 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
/***** Write heading *****/
HTM_TABLE_BeginCenterPadding (2);
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Degree);
for (Sex = (Usr_Sex_t) 0;
Sex <= (Usr_Sex_t) (Usr_NUM_SEXS - 1);
Sex++)
HTM_TH (1,1,"CT",Txt_SEX_PLURAL_Abc[Sex]);
HTM_TH (1,1,Txt_No_INDEX,"RT");
HTM_TH (1,1,Txt_Degree ,"CT");
for (Sex = (Usr_Sex_t) 0;
Sex <= (Usr_Sex_t) (Usr_NUM_SEXS - 1);
Sex++)
HTM_TH (1,1,Txt_SEX_PLURAL_Abc[Sex],"CT");
HTM_TR_End ();
/***** Get degrees *****/
@ -2244,14 +2242,16 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
HTM_TR_Begin (NULL);
/***** Show logo and name of this degree *****/
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s RM %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (++NumDegsNotEmpty);
HTM_TD_End ();
/***** Show logo and name of this degree *****/
HTM_TD_Begin ("class=\"%s LM COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s LM %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (SeeOrPrint == Pho_DEGREES_SEE)
{
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 *****/
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)
Pho_ShowDegreeAvgPhotoAndStat (&Deg,DegPhotos,
SeeOrPrint,Sex,

View File

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

View File

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

View File

@ -1208,10 +1208,10 @@ void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs)
/***** Show row *****/
HTM_TR_Begin (NULL);
Prf_ShowUsrInRanking (&UsrDat,Rank,ItsMe);
HTM_TD_Begin ("class=\"RM %s COLOR%u\"",
HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Long (Figure);
HTM_TD_End ();
HTM_TR_End ();
@ -1276,10 +1276,10 @@ void Prf_GetAndShowRankingClicksPerDay (void)
/***** Show row *****/
HTM_TR_Begin (NULL);
Prf_ShowUsrInRanking (&UsrDat,Rank,ItsMe);
HTM_TD_Begin ("class=\"RM %s COLOR%u\"",
HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DoubleFewDigits (NumClicksPerDay);
HTM_TD_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);
HTM_TD_Begin ("class=\"RM %s COLOR%u\"",
HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("#%u",Rank);
HTM_TD_End ();
/***** 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)
/***** User's photo *****/
Pho_ShowUsrPhotoIfAllowed (UsrDat,
@ -1328,7 +1328,7 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank,bool ItsM
HTM_TD_End ();
/***** 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)
{
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 *****/
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);
HTM_TD_End ();
}
@ -411,13 +411,13 @@ static void Prg_WriteRowItem (unsigned NumItem,struct Prg_Item *Item,
NumCol < Item->Hierarchy.Level;
NumCol++)
{
HTM_TD_Begin ("class=\"COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
}
/***** 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]);
Prg_WriteNumItem (Item->Hierarchy.Level);
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\"",
ColSpan);
else
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN COLOR%u\"",
ColSpan,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN %s\"",
ColSpan,Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Title */
HTM_DIV_Begin ("class=\"%s\"",TitleClass);
@ -467,13 +467,13 @@ static void Prg_WriteRowItem (unsigned NumItem,struct Prg_Item *Item,
(Item->Open ? "DATE_GREEN" :
"DATE_RED"));
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,
LightStyle ? (Item->Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT") :
(Item->Open ? "DATE_GREEN" :
"DATE_RED"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Item->TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x7);
@ -520,7 +520,7 @@ static void Prg_WriteRowWithItemForm (Prg_CreateOrChangeItem_t CreateOrChangeIte
HTM_TR_Begin (NULL);
/***** 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 ();
/***** Indent depending on the level *****/
@ -528,20 +528,21 @@ static void Prg_WriteRowWithItemForm (Prg_CreateOrChangeItem_t CreateOrChangeIte
NumCol < FormLevel;
NumCol++)
{
HTM_TD_Begin ("class=\"COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
}
/***** 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)
Prg_WriteNumNewItem (FormLevel);
HTM_TD_End ();
/***** Show form to create new item as child *****/
ColSpan = (Prg_GetMaxItemLevel () + 4) - FormLevel;
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN COLOR%u\"",
ColSpan,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"%u\" class=\"PRG_MAIN %s\"",
ColSpan,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin ("item_form");
ShowForm[CreateOrChangeItem] (ItmCod);
HTM_ARTICLE_End ();

View File

@ -959,7 +959,7 @@ static void Prj_ShowProjectsHead (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TH (1,1,"CM",Txt_No_INDEX);
HTM_TH (1,1,Txt_No_INDEX,"CM");
break;
default:
break;
@ -970,7 +970,7 @@ static void Prj_ShowProjectsHead (struct Prj_Projects *Projects,
{
case Prj_LIST_PROJECTS:
case Prj_FILE_BROWSER_PROJECT:
HTM_TH (1,1,"CONTEXT_COL",NULL);
HTM_TH (1,1,NULL,"CONTEXT_COL");
break;
default:
break;
@ -1029,23 +1029,21 @@ static void Prj_ShowTableAllProjectsHead (void)
const char *Class = Str_BuildString ("LT %s",The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_TR_Begin (NULL);
for (Order = (Prj_Order_t) 0;
Order <= (Prj_Order_t) (Prj_NUM_ORDERS - 1);
Order++)
HTM_TH (1,1,Class,Txt_PROJECT_ORDER[Order]);
HTM_TH (1,1,Class,Txt_Assigned_QUESTION);
HTM_TH (1,1,Class,Txt_Number_of_students);
HTM_TH (1,1,Txt_PROJECT_ORDER[Order],Class);
HTM_TH (1,1,Txt_Assigned_QUESTION ,Class);
HTM_TH (1,1,Txt_Number_of_students,Class);
for (NumRoleToShow = 0;
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
NumRoleToShow++)
HTM_TH (1,1,Class,Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]);
HTM_TH (1,1,Class,Txt_Proposal);
HTM_TH (1,1,Class,Txt_Description);
HTM_TH (1,1,Class,Txt_Required_knowledge);
HTM_TH (1,1,Class,Txt_Required_materials);
HTM_TH (1,1,Class,Txt_URL);
HTM_TH (1,1,Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]],Class);
HTM_TH (1,1,Txt_Proposal ,Class);
HTM_TH (1,1,Txt_Description ,Class);
HTM_TH (1,1,Txt_Required_knowledge,Class);
HTM_TH (1,1,Txt_Required_materials,Class);
HTM_TH (1,1,Txt_URL ,Class);
HTM_TR_End ();
Str_FreeStrings ();
@ -1281,8 +1279,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("rowspan=\"3\" class=\"BIG_INDEX RT COLOR%u\"",
Gbl.RowEvenOdd);
HTM_TD_Begin ("rowspan=\"3\" class=\"BIG_INDEX RT %s\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumIndex);
if (PrjIsFaulty)
{
@ -1299,7 +1297,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
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);
HTM_TD_End ();
break;
@ -1319,8 +1318,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
Id,ClassDate,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
@ -1340,8 +1339,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
Id,ClassDate,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
@ -1358,10 +1357,12 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
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;
default:
HTM_TD_Begin ("class=\"%s LT\"",ClassTitle);
HTM_TD_Begin ("class=\"%s LT\"",
ClassTitle);
break;
}
HTM_ARTICLE_Begin (Anchor);
@ -1393,8 +1394,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s COLOR%u\"",
ClassLabel,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s %s\"",
ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s\"",
@ -1407,8 +1408,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"",
ClassData,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -1433,8 +1434,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s COLOR%u\"",
ClassLabel,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s %s\"",
ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"RT %s\"",
@ -1447,8 +1448,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"",
ClassData,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -1470,13 +1471,15 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
{
case Prj_LIST_PROJECTS:
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);
HTM_TD_End ();
HTM_TR_End ();
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);
HTM_TD_End ();
HTM_TR_End ();
@ -1503,8 +1506,8 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
{
case Prj_LIST_PROJECTS:
HTM_TR_Begin ("id=\"prj_pro_%u\" style=\"display:none;\"",UniqueId);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"",
ClassLabel,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
case Prj_FILE_BROWSER_PROJECT:
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)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"",
ClassData,
Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
@ -1695,8 +1697,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
UniqueId++;
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"",
Id,ClassDate,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Prj->CreatTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -1707,8 +1709,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
UniqueId++;
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"",
Id,ClassDate,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,ClassDate,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Prj->ModifTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -1716,9 +1718,8 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
free (Id);
/***** Project title *****/
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->Title);
HTM_TD_End ();
@ -1726,13 +1727,13 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
Prj_ShowTableAllProjectsDepartment (Prj);
/***** 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 :
Txt_No);
HTM_TD_End ();
/***** 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_TD_End ();
@ -1743,7 +1744,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
Prj_ShowTableAllProjectsMembersWithARole (Prj,Prj_RolesToShow[NumRoleToShow]);
/***** 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_TD_End ();
@ -1795,10 +1796,12 @@ static void Prj_ShowOneProjectDepartment (const struct Prj_Project *Prj,
switch (ProjectView)
{
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;
default:
HTM_TD_Begin ("class=\"LT %s\"",ClassData);
HTM_TD_Begin ("class=\"LT %s\"",
ClassData);
break;
}
if (PutLink)
@ -1827,7 +1830,7 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
Dpt_GetDataOfDepartmentByCod (&Dpt);
/***** 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_TD_End ();
}
@ -1858,8 +1861,8 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj,
{
case Prj_LIST_PROJECTS:
HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"",
ClassLabel,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
case Prj_FILE_BROWSER_PROJECT:
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)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"",
ClassData,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
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
/***** 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_TD_End ();
}
@ -1958,8 +1961,8 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
{
case Prj_LIST_PROJECTS:
HTM_TR_Begin ("id=\"%s%u\" style=\"display:none;\"",id,UniqueId);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"",
ClassLabel,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
case Prj_FILE_BROWSER_PROJECT:
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)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"",
ClassData,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
default:
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];
/***** 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_TD_End ();
}
@ -2096,8 +2099,8 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s COLOR%u\"",
ClassLabel,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"4\" class=\"RT %s %s\"",
ClassLabel,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColon (NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInPrj] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInPrj]);
break;
@ -2122,8 +2125,8 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s COLOR%u\"",
ClassData,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s %s\"",
ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
break;
case Prj_FILE_BROWSER_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);
/***** 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)
{

View File

@ -522,25 +522,25 @@ void Qst_ListQuestionForEdition (struct Qst_Question *Question,
extern const char *Txt_Question_removed;
/***** 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");
if (QuestionExists)
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
HTM_TD_End ();
/***** 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_TD_End ();
/***** 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)
Tag_GetAndWriteTagsQst (Question->QstCod);
HTM_TD_End ();
/***** 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);
if (QuestionExists)
{
@ -912,11 +912,11 @@ void Qst_WriteHeadingRowQuestionsForEdition (struct Qst_Questions *Questions)
/***** First columns *****/
HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Code);
HTM_TH (1,1,"CT",Txt_Date);
HTM_TH (1,1,"CT",Txt_Tags);
HTM_TH (1,1,"CT",Txt_Shuffle);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,Txt_Tags ,"CT");
HTM_TH (1,1,Txt_Shuffle ,"CT");
/***** Columns which data can be ordered *****/
/* Stem and answers of question */
@ -982,21 +982,21 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End ();
/* 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_WriteAnswerType (Questions->Question.Answer.Type,"DAT_SMALL");
HTM_TD_End ();
/* 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_TD_End ();
/* Date (row[0] has the UTC date-time) */
if (asprintf (&Id,"tst_date_%u",++UniqueId) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\"",
Id,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT %s\"",
Id,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Questions->Question.EditTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -1004,12 +1004,12 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
free (Id);
/* 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);
HTM_TD_End ();
/* 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 ||
Questions->Question.Answer.Type == Qst_ANS_MULTIPLE_CHOICE)
{
@ -1025,7 +1025,7 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End ();
/* 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",
true); // Visible
@ -1040,12 +1040,12 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End ();
/* 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_TD_End ();
/* 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)
HTM_Double2Decimals (Questions->Question.Score /
(double) Questions->Question.NumHits);
@ -1054,12 +1054,12 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End ();
/* 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_TD_End ();
/* 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)
HTM_Double2Decimals (Questions->Question.Score /
(double) Questions->Question.NumHitsNotBlank);
@ -1111,17 +1111,14 @@ void Qst_ListOneOrMoreQstsForSelectionForExamSet (struct Exa_Exams *Exams,
/***** Write the heading *****/
HTM_TR_Begin (NULL);
HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Code);
HTM_TH (1,1,"CT",Txt_Date);
HTM_TH (1,1,"LT",Txt_Tags);
HTM_TH (1,1,"CT",Txt_Type);
HTM_TH (1,1,"CT",Txt_Shuffle);
HTM_TH (1,1,"CT",Txt_Question);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,Txt_Tags ,"LT");
HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,Txt_Shuffle ,"CT");
HTM_TH (1,1,Txt_Question,"CT");
HTM_TR_End ();
/***** Write rows *****/
@ -1198,16 +1195,14 @@ void Qst_ListOneOrMoreQstsForSelectionForGame (struct Gam_Games *Games,
/***** Write the heading *****/
HTM_TR_Begin (NULL);
HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Code);
HTM_TH (1,1,"CT",Txt_Date);
HTM_TH (1,1,"LT",Txt_Tags);
HTM_TH (1,1,"CT",Txt_Type);
HTM_TH (1,1,"CT",Txt_Shuffle);
HTM_TH (1,1,"CT",Txt_Question);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,Txt_Code ,"CT");
HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,Txt_Tags ,"LT");
HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,Txt_Shuffle ,"CT");
HTM_TH (1,1,Txt_Question,"CT");
HTM_TR_End ();
/***** Write rows *****/
@ -1287,20 +1282,20 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
HTM_TD_End ();
/* 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_TD_End ();
/* 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_TD_End ();
/* Write the date (row[0] has the UTC date-time) */
if (asprintf (&Id,"tst_date_%u",++UniqueId) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\">",
Id,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT %s\">",
Id,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Question->EditTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -1308,17 +1303,17 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
free (Id);
/* 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);
HTM_TD_End ();
/* 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_TD_End ();
/* 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,
"value=\"Y\"%s disabled=\"disabled\"",
Question->Answer.Shuffle ? " checked=\"checked\"" :
@ -1326,7 +1321,7 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
HTM_TD_End ();
/* 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",
true); // Visible
@ -2126,7 +2121,8 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
HTM_TR_Begin (NULL);
/***** 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 */
HTM_INPUT_RADIO ("AnsUni",false,
@ -2151,8 +2147,9 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
HTM_TD_End ();
/***** Center column: letter of the answer and expand / contract icon *****/
HTM_TD_Begin ("class=\"%s TEST_EDI_ANS_CENTER_COL COLOR%u\"",
The_ClassFormInBox[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s TEST_EDI_ANS_CENTER_COL %s\"",
The_ClassFormInBox[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%c)",'a' + (char) NumOpt);
/* Icon to expand (show the answer) */
@ -2184,7 +2181,8 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
HTM_TD_End ();
/***** 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",
NumOpt,
DisplayRightColumn ? "" :

View File

@ -837,15 +837,12 @@ static void QstImp_WriteHeadingListImportedQst (void)
/***** Write the heading *****/
HTM_TR_Begin (NULL);
HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Tags);
HTM_TH (1,1,"CT",Txt_Type);
HTM_TH (1,1,"CT",Txt_Shuffle);
HTM_TH (1,1,"LT",Txt_Question);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,Txt_Tags ,"CT");
HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,Txt_Shuffle ,"CT");
HTM_TH (1,1,Txt_Question,"LT");
HTM_TR_End ();
}
@ -895,13 +892,13 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
HTM_TD_End ();
/***** 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)
HTM_TxtF ("%u&nbsp;",++NumNonExistingQst);
HTM_TD_End ();
/***** 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)
{
@ -935,12 +932,12 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
HTM_TD_End ();
/***** 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_TD_End ();
/***** 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 ||
Question->Answer.Type == Qst_ANS_MULTIPLE_CHOICE)
/* 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 ();
/***** 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,
true); // Visible
Qst_WriteQstFeedback (Feedback,"TEST_TXT_LIGHT");

View File

@ -406,9 +406,9 @@ static void Rec_WriteHeadingRecordFields (void)
HTM_TR_Begin (NULL);
HTM_TH_Empty (1);
HTM_TH (1,1,"CM",Txt_Field_BR_name);
HTM_TH (1,1,"CM",Txt_Number_of_BR_lines);
HTM_TH (1,1,"CM",Txt_Visible_by_BR_the_student);
HTM_TH (1,1,Txt_Field_BR_name ,"CM");
HTM_TH (1,1,Txt_Number_of_BR_lines ,"CM");
HTM_TH (1,1,Txt_Visible_by_BR_the_student,"CM");
HTM_TR_End ();
}
@ -1706,10 +1706,10 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
/* Name of the field */
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] :
"REC_DAT_SMALL",
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColon (Gbl.Crs.Records.LstFields.Lst[NumField].Name);
if (TypeOfView == Rec_CRS_LIST_ONE_RECORD ||
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
the user's role and the visibility of the field */
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditThisField) // Show with form
{
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;
HTM_TR_Begin (NULL);
HTM_TH (1,1,"BM",NULL);
HTM_TH (1,1,"RM",Txt_Code);
HTM_TH (1,1,"LM",Txt_Building);
HTM_TH (1,1,"LM",Txt_Floor);
HTM_TH (1,1,"LM",Txt_Type);
HTM_TH (1,1,"LM",Txt_Short_name);
HTM_TH (1,1,"LM",Txt_Full_name);
HTM_TH (1,1,"LM",Txt_Capacity_OF_A_ROOM);
HTM_TH (1,1,"LM",Txt_MAC_address);
HTM_TH (1,1,NULL ,"BM");
HTM_TH (1,1,Txt_Code ,"RM");
HTM_TH (1,1,Txt_Building ,"LM");
HTM_TH (1,1,Txt_Floor ,"LM");
HTM_TH (1,1,Txt_Type ,"LM");
HTM_TH (1,1,Txt_Short_name ,"LM");
HTM_TH (1,1,Txt_Full_name ,"LM");
HTM_TH (1,1,Txt_Capacity_OF_A_ROOM,"LM");
HTM_TH (1,1,Txt_MAC_address ,"LM");
HTM_TR_End ();
}

View File

@ -166,6 +166,7 @@ void Set_GetSettingsFromIP (void)
/* Get theme (row[2]) */
Gbl.Prefs.Theme = The_GetThemeFromStr (row[2]);
The_SetColorRows ();
/* Get icon set (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 *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_User_ID);
HTM_TH (1,1,"LT",Txt_Name);
HTM_TH (1,1,"CT",Txt_Role);
HTM_TH (1,1,"CT",Txt_Date);
HTM_TH (1,1,"LT",Txt_Action);
HTM_TH (1,1,"LT",Txt_LOG_More_info);
HTM_TH (1,1,Txt_No_INDEX ,"RT");
HTM_TH (1,1,Txt_User_ID ,"CT");
HTM_TH (1,1,Txt_Name ,"LT");
HTM_TH (1,1,Txt_Role ,"CT");
HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,Txt_Action ,"LT");
HTM_TH (1,1,Txt_LOG_More_info,"LT");
HTM_TR_End ();
/***** Write rows back *****/
@ -1235,23 +1235,23 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
HTM_TR_Begin (NULL);
/* 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_TD_End ();
/* 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);
HTM_NBSP ();
HTM_TD_End ();
/* 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_TD_End ();
/* 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_TD_End ();
@ -1259,7 +1259,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
/* Write the date-time (row[3]) */
if (asprintf (&Id,"log_date_%u",UniqueId) < 0)
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]),
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
true,true,false,0x7);
@ -1269,7 +1270,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
/* Write the action */
if (sscanf (row[4],"%ld",&ActCod) != 1)
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)
HTM_TxtF ("%s&nbsp;",Act_GetActionText (Act_FromActCodToAction[ActCod]));
else
@ -1277,7 +1278,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
HTM_TD_End ();
/* 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);
HTM_TD_End ();
@ -1337,12 +1338,12 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Photo);
HTM_TH (1,1,"LT",Txt_ID);
HTM_TH (1,1,"LT",Txt_Name);
HTM_TH (1,1,"CT",Txt_Role);
HTM_TH (1,2,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_No_INDEX ,"RT");
HTM_TH (1,1,Txt_Photo ,"CT");
HTM_TH (1,1,Txt_ID ,"LT");
HTM_TH (1,1,Txt_Name ,"LT");
HTM_TH (1,1,Txt_Role ,"CT");
HTM_TH (1,2,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Write rows *****/
@ -1361,30 +1362,30 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
HTM_TR_Begin (NULL);
/* 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_TD_End ();
/* 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,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false);
HTM_TD_End ();
/* 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);
HTM_NBSP ();
HTM_TD_End ();
/* 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_TD_End ();
/* 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_TD_End ();
@ -1401,7 +1402,7 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
else
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)
{
HTM_IMG (Cfg_URL_ICON_PUBLIC,
@ -1450,9 +1451,9 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_Date);
HTM_TH (1,1,"LT",Txt_Day);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Date ,"CT");
HTM_TH (1,1,Txt_Day ,"LT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of pages generated per day *****/
@ -1640,9 +1641,9 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (3,1,"CT",Txt_Date);
HTM_TH (3,1,"LT",Txt_Day);
HTM_TH (1,24,"LT",Txt_STAT_TYPE_COUNT_CAPS[Stats->CountType]);
HTM_TH (3, 1,Txt_Date ,"CT");
HTM_TH (3, 1,Txt_Day ,"LT");
HTM_TH (1,24,Txt_STAT_TYPE_COUNT_CAPS[Stats->CountType],"LT");
HTM_TR_End ();
HTM_TR_Begin (NULL);
@ -2028,8 +2029,8 @@ static void Sta_ShowNumHitsPerWeek (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Week);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Week ,"LT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of pages generated per week *****/
@ -2127,8 +2128,8 @@ static void Sta_ShowNumHitsPerMonth (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Month);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Month ,"LT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of pages generated per month *****/
@ -2226,8 +2227,8 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Year);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Year ,"LT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of pages generated per year *****/
@ -2645,8 +2646,8 @@ static void Sta_ShowNumHitsPerAction (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_Action);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Action ,"RT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of pages generated per day *****/
@ -2698,8 +2699,8 @@ static void Sta_ShowNumHitsPerPlugin (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT",Txt_Plugin);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Plugin ,"RT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of pages generated per plugin *****/
@ -2752,8 +2753,8 @@ static void Sta_ShowNumHitsPerWSFunction (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"LT",Txt_Function);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Function ,"LT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of pages generated per function *****/
@ -2806,8 +2807,8 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_Banner);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_Banner ,"CT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of clicks per banner *****/
@ -2876,9 +2877,9 @@ static void Sta_ShowNumHitsPerCountry (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Country);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,Txt_Country ,"CT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of hits per country *****/
@ -2965,9 +2966,9 @@ static void Sta_ShowNumHitsPerInstitution (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Institution);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,Txt_Institution ,"CT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of hits per institution *****/
@ -3056,9 +3057,9 @@ static void Sta_ShowNumHitsPerCenter (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Center);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,Txt_Center ,"CT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of hits per center *****/
@ -3147,9 +3148,9 @@ static void Sta_ShowNumHitsPerDegree (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Degree);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,Txt_Degree ,"CT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** Compute maximum number of hits per degree *****/
@ -3242,11 +3243,11 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType,
/***** Write heading *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Degree);
HTM_TH (1,1,"CT",Txt_Year_OF_A_DEGREE);
HTM_TH (1,1,"CT",Txt_Course);
HTM_TH (1,1,"LT",Txt_STAT_TYPE_COUNT_CAPS[CountType]);
HTM_TH (1,1,Txt_No_INDEX ,"CT");
HTM_TH (1,1,Txt_Degree ,"CT");
HTM_TH (1,1,Txt_Year_OF_A_DEGREE ,"CT");
HTM_TH (1,1,Txt_Course ,"CT");
HTM_TH (1,1,Txt_STAT_TYPE_COUNT_CAPS[CountType],"LT");
HTM_TR_End ();
/***** 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_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;
Order <= Dat_END_TIME;
@ -270,8 +270,8 @@ static void Svy_ListAllSurveys (struct Svy_Surveys *Surveys)
HTM_TH_End ();
}
HTM_TH (1,1,"LM",Txt_Survey);
HTM_TH (1,1,"CM",Txt_Status);
HTM_TH (1,1,Txt_Survey,"LM");
HTM_TH (1,1,Txt_Status,"CM");
HTM_TR_End ();
@ -470,7 +470,8 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL\"");
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)
Svy_PutFormsToRemEditOneSvy (Surveys,&Svy,Anchor);
HTM_TD_End ();
@ -487,13 +488,13 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT"));
else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
"DATE_RED") :
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Svy.TimeUTC[Dat_STR_TIME],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,true,0x7);
@ -511,13 +512,13 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT"));
else
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
"DATE_RED") :
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
"DATE_RED_LIGHT"),
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Svy.TimeUTC[Dat_END_TIME],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,false,true,0x7);
@ -528,7 +529,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("class=\"LT\"");
else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_ARTICLE_Begin (Anchor);
Frm_BeginForm (ActSeeSvy);
Svy_PutParamSvyCod (SvyCod);
@ -562,7 +563,8 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("rowspan=\"2\" class=\"LT\"");
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);
if (!ShowOnlyThisSvyComplete)
@ -611,7 +613,8 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("colspan=\"2\" class=\"LT\"");
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);
HTM_TD_End ();
@ -619,7 +622,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("class=\"LT\"");
else
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Scope of the survey */
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 *****/
HTM_TABLE_BeginWideMarginPadding (5);
HTM_TR_Begin (NULL);
HTM_TR_Begin (NULL);
if (Svy->Status.ICanEdit)
HTM_TH_Empty (1);
HTM_TH (1,1,"CT",Txt_No_INDEX);
HTM_TH (1,1,"CT",Txt_Type);
HTM_TH (1,1,"LT",Txt_Question);
HTM_TH (1,1,Txt_No_INDEX,"CT");
HTM_TH (1,1,Txt_Type ,"CT");
HTM_TH (1,1,Txt_Question,"LT");
HTM_TR_End ();
/***** Write questions one by one *****/
@ -2832,18 +2834,21 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys,
}
/* 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_TD_End ();
/* 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_TD_End ();
/* Write the stem and the answers of this question */
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s LT %s\"",
The_ClassDat[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Svy_WriteQstStem (Stem);
Svy_WriteAnswersOfAQst (Svy,&SvyQst,PutFormAnswerSurvey);
HTM_TD_End ();

View File

@ -623,7 +623,8 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
{
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 ();
}
else
@ -722,13 +723,14 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
/***** Indent depending on the level *****/
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 ();
}
/***** Code of the item *****/
HTM_TD_Begin ("class=\"%s RT COLOR%u\" style=\"width:%dpx;\"",
StyleSyllabus[Level],Gbl.RowEvenOdd,
HTM_TD_Begin ("class=\"%s RT %s\" style=\"width:%dpx;\"",
StyleSyllabus[Level],Gbl.ColorRows[Gbl.RowEvenOdd],
Level * Syl_WIDTH_NUM_SYLLABUS);
if (Level == 1)
HTM_NBSP ();
@ -736,10 +738,10 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
HTM_TD_End ();
/***** 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,
StyleSyllabus[Level],
Gbl.RowEvenOdd);
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Text);
HTM_TD_End ();
}
@ -831,21 +833,23 @@ static void Syl_PutFormItemSyllabus (struct Syl_Syllabus *Syllabus,
/***** Indent depending on the level *****/
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 ();
}
/***** Write the code of the item *****/
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;\"",
Gbl.RowEvenOdd,Level * Syl_WIDTH_NUM_SYLLABUS);
HTM_TD_Begin ("class=\"%s\" style=\"width:%dpx;\"",
Gbl.ColorRows[Gbl.RowEvenOdd],
Level * Syl_WIDTH_NUM_SYLLABUS);
HTM_TD_End ();
}
else
{
HTM_TD_Begin ("class=\"%s LM COLOR%u\" style=\"width:%dpx;\"",
StyleSyllabus[Level],Gbl.RowEvenOdd,
HTM_TD_Begin ("class=\"%s LM %s\" style=\"width:%dpx;\"",
StyleSyllabus[Level],Gbl.ColorRows[Gbl.RowEvenOdd],
Level * Syl_WIDTH_NUM_SYLLABUS);
if (Level == 1)
HTM_NBSP ();
@ -855,8 +859,9 @@ static void Syl_PutFormItemSyllabus (struct Syl_Syllabus *Syllabus,
}
/***** Text of the item *****/
HTM_TD_Begin ("colspan=\"%d\" class=\"LM COLOR%u\"",
Syl_LstItemsSyllabus.NumLevels - Level + 1,Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"%d\" class=\"LM %s\"",
Syl_LstItemsSyllabus.NumLevels - Level + 1,
Gbl.ColorRows[Gbl.RowEvenOdd]);
Frm_BeginForm (NewItem ? (Gbl.Crs.Info.Type == Inf_LECTURES ? ActInsIteSylLec :
ActInsIteSylPra) :
(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);
/***** 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_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
HTM_TD_End ();
/***** 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 */
Qst_WriteParamQstCod (QstInd,Question->QstCod);
@ -633,14 +633,14 @@ static void TstPrn_WriteQstAndAnsExam (struct UsrData *UsrDat,
HTM_TR_Begin (NULL);
/***** 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");
if (QuestionUneditedAfterExam)
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
HTM_TD_End ();
/***** 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 (QuestionUneditedAfterExam)
@ -1789,37 +1789,34 @@ static void TstPrn_ShowHeaderPrints (Usr_MeOrOther_t MeOrOther)
/***** First row *****/
HTM_TR_Begin (NULL);
HTM_TH (3,2,"CT LINE_BOTTOM",Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
Usr_SEX_UNKNOWN]);
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_STR_TIME]);
HTM_TH (3,1,"LT LINE_BOTTOM",Txt_START_END_TIME[Dat_END_TIME]);
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Questions);
HTM_TH (1,2,"CT LINE_LEFT",Txt_Answers);
HTM_TH (1,2,"CT LINE_LEFT",Txt_Score);
HTM_TH (3,1,"RT LINE_BOTTOM LINE_LEFT",Txt_Grade);
HTM_TH (3,1,"LINE_BOTTOM LINE_LEFT",NULL);
HTM_TH (3,2,Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
Usr_SEX_UNKNOWN]
,"CT LINE_BOTTOM");
HTM_TH (3,1,Txt_START_END_TIME[Dat_STR_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,Txt_START_END_TIME[Dat_END_TIME],"LT LINE_BOTTOM");
HTM_TH (3,1,Txt_Questions ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,2,Txt_Answers ,"CT LINE_LEFT");
HTM_TH (1,2,Txt_Score ,"CT LINE_LEFT");
HTM_TH (3,1,Txt_Grade ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (3,1,NULL ,"LINE_BOTTOM LINE_LEFT");
HTM_TR_End ();
/***** Second row *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT LINE_LEFT",Txt_ANSWERS_non_blank);
HTM_TH (1,1,"RT",Txt_ANSWERS_blank);
HTM_TH (1,1,"RT LINE_LEFT",Txt_total);
HTM_TH (1,1,"RT",Txt_average);
HTM_TH (1,1,Txt_ANSWERS_non_blank,"RT LINE_LEFT");
HTM_TH (1,1,Txt_ANSWERS_blank ,"RT");
HTM_TH (1,1,Txt_total ,"RT LINE_LEFT");
HTM_TH (1,1,Txt_average ,"RT");
HTM_TR_End ();
/***** Third row *****/
HTM_TR_Begin (NULL);
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","{-1&le;<em>p<sub>i</sub></em>&le;1}");
HTM_TH (1,1,"RT LINE_BOTTOM","{<em>p<sub>i</sub></em>=0}");
HTM_TH (1,1,"RT LINE_BOTTOM LINE_LEFT","<em>&Sigma;p<sub>i</sub></em>");
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>p<sub>i</sub></em>&le;1}","RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"{<em>p<sub>i</sub></em>=0}" ,"RT LINE_BOTTOM");
HTM_TH (1,1,"<em>&Sigma;p<sub>i</sub></em>" ,"RT LINE_BOTTOM LINE_LEFT");
HTM_TH (1,1,"-1&le;"
"<em style=\"text-decoration:overline;\">p</em>"
"&le;1" ,"RT LINE_BOTTOM");
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)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
Id,ClassDat,Gbl.RowEvenOdd);
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",
Id,ClassDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -1907,7 +1904,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
}
/* 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)
HTM_Unsigned (Print.NumQsts.All);
else
@ -1915,7 +1913,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End ();
/* 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 (Print.NumQsts.NotBlank)
@ -1928,7 +1927,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End ();
/* 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)
{
NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank;
@ -1942,7 +1942,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End ();
/* 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)
{
HTM_Double2Decimals (Print.Score);
@ -1954,7 +1955,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End ();
/* 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)
HTM_Double2Decimals (Print.NumQsts.All ? Print.Score /
(double) Print.NumQsts.All :
@ -1964,7 +1966,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End ();
/* 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)
TstPrn_ComputeAndShowGrade (Print.NumQsts.All,Print.Score,Tst_SCORE_MAX);
else
@ -1972,7 +1975,8 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
HTM_TD_End ();
/* 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)
{
Frm_BeginForm (Gbl.Action.Act == ActSeeMyTstResCrs ? ActSeeOneTstResMe :
@ -1998,27 +2002,33 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
else
{
/* 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 ();
/* 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 ();
/* 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 ();
/* 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 ();
/* 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 ();
/* 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_TR_End ();
@ -2088,36 +2098,41 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
HTM_TR_Begin (NULL);
/***** Row title *****/
HTM_TD_Begin ("colspan=\"2\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("colspan=\"2\" class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtColonNBSP (Txt_Visible_tests);
HTM_Unsigned (NumPrints);
HTM_TD_End ();
/***** Write total number of questions *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumPrints)
HTM_Unsigned (NumTotalQsts->All);
HTM_TD_End ();
/***** Write total number of non-blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumPrints)
HTM_Unsigned (NumTotalQsts->NotBlank);
HTM_TD_End ();
/***** Write total number of blank answers *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (NumPrints)
HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank);
HTM_TD_End ();
/***** Write total score *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanViewTotalScore)
{
HTM_Double2Decimals (TotalScore);
@ -2127,23 +2142,26 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
HTM_TD_End ();
/***** Write average score per question *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanViewTotalScore)
HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All :
0.0);
HTM_TD_End ();
/***** Write grade over Tst_SCORE_MAX *****/
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanViewTotalScore)
TstPrn_ComputeAndShowGrade (NumTotalQsts->All,TotalScore,Tst_SCORE_MAX);
HTM_TD_End ();
/***** Last cell *****/
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
The_ClassDatStrong[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"",
The_ClassDatStrong[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_End ();
/***** End row *****/

View File

@ -414,6 +414,25 @@ const char *The_ClassAlertTxtColor[The_NUM_THEMES] =
[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 ***************************/
/*****************************************************************************/
@ -480,6 +499,7 @@ void The_ChangeTheme (void)
/***** Get param theme *****/
Gbl.Prefs.Theme = The_GetParamTheme ();
The_SetColorRows ();
snprintf (Path,sizeof (Path),"%s/%s",
Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]);
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;
}
/*****************************************************************************/
/******** 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_GetThemeFromStr (const char *Str);
void The_SetColorRows (void);
#endif

View File

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