Version 21.83: Jan 09, 2022 Working on design of dark theme.

This commit is contained in:
acanas 2022-01-09 23:27:36 +01:00
parent 52ea25d9db
commit 9260cb7538
28 changed files with 598 additions and 277 deletions

View File

@ -1430,7 +1430,7 @@ a:hover img.CENTER_PHOTO_SHOW
{
box-sizing:border-box;
margin-bottom:15px;
color:#A0A0A0;
color:#a0a0a0;
font-size:8pt;
text-align:center;
}
@ -1965,7 +1965,7 @@ a:hover img.CENTER_PHOTO_SHOW
.GREEN_ICO_BLUE {filter: invert(31%) sepia(16%) saturate(3727%) hue-rotate(60deg) brightness(94%) contrast(104%);} /* #246600 */
.GREEN_ICO_YELLOW {filter: invert(31%) sepia(16%) saturate(3727%) hue-rotate(60deg) brightness(94%) contrast(104%);} /* #246600 */
.GREEN_ICO_PINK {filter: invert(31%) sepia(16%) saturate(3727%) hue-rotate(60deg) brightness(94%) contrast(104%);} /* #246600 */
.GREEN_ICO_DARK {filter: invert(49%) sepia(97%) saturate(781%) hue-rotate(55deg) brightness(95%) contrast(104%);} /* #50b800 */
.GREEN_ICO_DARK {filter: invert(75%) sepia(13%) saturate(1915%) hue-rotate(46deg) brightness(89%) contrast(89%);} /* #80c040 */
.RED_ICO_WHITE {filter: invert(8%) sepia(61%) saturate(5373%) hue-rotate(0deg) brightness(92%) contrast(114%);} /* #660000 */
.RED_ICO_GREY {filter: invert(8%) sepia(61%) saturate(5373%) hue-rotate(0deg) brightness(92%) contrast(114%);} /* #660000 */
@ -2566,7 +2566,6 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.DAT_LIGHT_PINK {color:#a0a0a0; font-size:13pt;}
.DAT_LIGHT_DARK {color:#909090; font-size:13pt;}
.DAT_SMALL {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt;}
.DAT_SMALL_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt;}
.DAT_SMALL_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt;}
.DAT_SMALL_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt;}
@ -2575,33 +2574,29 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.DAT_SMALL_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt;}
.DAT_SMALL_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#d0d0d0; font-size:12pt;}
.DAT_SMALL_N {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_N_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_N_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_N_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_N_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_N_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_N_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_N_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:white; font-size:12pt;}
.DAT_SMALL_STRONG_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_STRONG_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_STRONG_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_STRONG_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_STRONG_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_STRONG_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt;}
.DAT_SMALL_STRONG_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:white; font-size:12pt;}
.DAT_SMALL_NOBR {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#404040; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#d0d0d0; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#d0d0d0; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_N_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:white; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_STRONG_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_STRONG_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_STRONG_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_STRONG_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_STRONG_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_STRONG_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:black; font-size:12pt; white-space:nowrap;}
.DAT_SMALL_NOBR_STRONG_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:white; font-size:12pt; white-space:nowrap;}
.DAT_GREEN {color:#246600; font-size:13pt;}
.DAT_RED {color:#660000; font-size:13pt;}
@ -2631,13 +2626,45 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
border-width:1px;
}
.DAT_SMALL_LIGHT {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_LIGHT_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_LIGHT_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_LIGHT_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_LIGHT_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_LIGHT_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_LIGHT_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_LIGHT_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#A0A0A0; font-size:12pt;}
.DAT_SMALL_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#707070; font-size:12pt;}
.DAT_SMALL_RED {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_GREEN {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
.DAT_SMALL_BLUE_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_BLUE_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_BLUE_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_BLUE_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_BLUE_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_BLUE_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_BLUE_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#0080FF; font-size:12pt;}
.DAT_SMALL_GREEN_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_GREEN_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_GREEN_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_GREEN_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_GREEN_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_GREEN_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_GREEN_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#246600; font-size:12pt;}
.DAT_SMALL_RED_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_RED_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_RED_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_RED_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_RED_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_RED_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_RED_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#660000; font-size:12pt;}
.DAT_SMALL_YELLOW_WHITE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
.DAT_SMALL_YELLOW_GREY {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
.DAT_SMALL_YELLOW_PURPLE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
.DAT_SMALL_YELLOW_BLUE {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
.DAT_SMALL_YELLOW_YELLOW {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
.DAT_SMALL_YELLOW_PINK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
.DAT_SMALL_YELLOW_DARK {font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; color:#C0C000; font-size:12pt;}
/******************************** User's IDs *********************************/
.USR_ID {font-size:18pt; font-weight:bold;}
@ -3650,16 +3677,31 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
display:inline-block;
font-size:13pt;
font-weight:bold;
color:darkgreen;
}
.ATT_CHECK {color:#246600;}
.ATT_CHECK_WHITE {color:#246600;}
.ATT_CHECK_GREY {color:#246600;}
.ATT_CHECK_PURPLE {color:#246600;}
.ATT_CHECK_BLUE {color:#246600;}
.ATT_CHECK_YELLOW {color:#246600;}
.ATT_CHECK_PINK {color:#246600;}
.ATT_CHECK_DARK {color:#80c040;}
.ATT_CROSS
{
display:inline-block;
font-size:13pt;
font-weight:bold;
color:darkred;
opacity:0.1;
opacity:0.2;
}
.ATT_CROSS {color:#660000;}
.ATT_CROSS_WHITE {color:#660000;}
.ATT_CROSS_GREY {color:#660000;}
.ATT_CROSS_PURPLE {color:#660000;}
.ATT_CROSS_BLUE {color:#660000;}
.ATT_CROSS_YELLOW {color:#660000;}
.ATT_CROSS_PINK {color:#660000;}
.ATT_CROSS_DARK {color:#ff8080;}
/********************* Edition of attendance events, games *******************/
.TITLE_DESCRIPTION_WIDTH

View File

@ -1697,6 +1697,9 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_ClassInput[The_NUM_THEMES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
[PhoSha_SHAPE_CIRCLE ] = "PHOTOC45x60",
@ -1746,7 +1749,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
HTM_TR_Begin (NULL);
/***** Icon to show if the user is already present *****/
HTM_TD_Begin ("class=\"BT%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"BT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_LABEL_Begin ("for=\"Std%u\"",NumUsr);
Att_PutCheckOrCross (Present);
HTM_LABEL_End ();
@ -1758,7 +1761,8 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
"id=\"Std%u\" value=\"%s\"%s%s",
NumUsr,UsrDat->EnUsrCod,
Present ? " checked=\"checked\"" : "",
ICanChangeStdAttendance ? "" : " disabled=\"disabled\"");
ICanChangeStdAttendance ? "" :
" disabled=\"disabled\"");
HTM_TD_End ();
/***** Write number of student in the list *****/
@ -1772,7 +1776,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
/***** Show student's photo *****/
if (Gbl.Usrs.Listing.WithPhotos)
{
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s LT\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false);
@ -1780,17 +1784,17 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
}
/***** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LT %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s LT\"",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_TD_End ();
/***** Write student's name *****/
HTM_TD_Begin ("class=\"%s LT %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (UsrDat->Surname1);
if (UsrDat->Surname2[0])
@ -1799,11 +1803,16 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
HTM_TD_End ();
/***** Student's comment: write form or text */
HTM_TD_Begin ("class=\"DAT_SMALL LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s LT %s\"",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditStdComment) // Show with form
{
HTM_TEXTAREA_Begin ("name=\"CommentStd%s\" cols=\"40\" rows=\"3\"",
UsrDat->EnUsrCod);
HTM_TEXTAREA_Begin ("name=\"CommentStd%s\" cols=\"40\" rows=\"3\""
" class=\"%s\"",
UsrDat->EnUsrCod,
The_ClassInput[Gbl.Prefs.Theme]);
HTM_Txt (CommentStd);
HTM_TEXTAREA_End ();
}
@ -1816,11 +1825,16 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
HTM_TD_End ();
/***** Teacher's comment: write form, text or nothing */
HTM_TD_Begin ("class=\"DAT_SMALL LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s LT %s\"",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (ICanEditTchComment) // Show with form
{
HTM_TEXTAREA_Begin ("name=\"CommentTch%s\" cols=\"40\" rows=\"3\"",
UsrDat->EnUsrCod);
HTM_TEXTAREA_Begin ("name=\"CommentTch%s\" cols=\"40\" rows=\"3\""
" class=\"%s\"",
UsrDat->EnUsrCod,
The_ClassInput[Gbl.Prefs.Theme]);
HTM_Txt (CommentTch);
HTM_TEXTAREA_End ();
}
@ -2947,6 +2961,8 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
[PhoSha_SHAPE_CIRCLE ] = "PHOTOC21x28",
@ -2980,16 +2996,16 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
/***** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_TD_End ();
/***** Write user's name *****/
HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (UsrDat->Surname1);
if (UsrDat->Surname2[0])
@ -3009,7 +3025,7 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
UsrDat->UsrCod);
/* Write check or cross */
HTM_TD_Begin ("class=\"BM%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"BM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Att_PutCheckOrCross (Present);
HTM_TD_End ();
@ -3035,17 +3051,20 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
static void Att_PutCheckOrCross (bool Present)
{
extern const char *The_Colors[The_NUM_THEMES];
extern const char *Txt_Present;
extern const char *Txt_Absent;
if (Present)
{
HTM_DIV_Begin ("class=\"ATT_CHECK\" title=\"%s\"",Txt_Present);
HTM_DIV_Begin ("class=\"ATT_CHECK ATT_CHECK_%s\" title=\"%s\"",
The_Colors[Gbl.Prefs.Theme],Txt_Present);
HTM_Txt ("✓");
}
else
{
HTM_DIV_Begin ("class=\"ATT_CROSS\" title=\"%s\"",Txt_Absent);
HTM_DIV_Begin ("class=\"ATT_CROSS ATT_CROSS_%s\" title=\"%s\"",
The_Colors[Gbl.Prefs.Theme],Txt_Absent);
HTM_Txt ("✗");
}
@ -3110,6 +3129,9 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_Colors[The_NUM_THEMES];
extern const char *Txt_Student_comment;
extern const char *Txt_Teachers_comment;
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
@ -3154,15 +3176,15 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
/***** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LM\"",
UsrDat->Accepted ? The_ClassDatStrong[Gbl.Prefs.Theme] :
The_ClassDat[Gbl.Prefs.Theme]);
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_TD_End ();
/***** Write student's name *****/
HTM_TD_Begin ("class=\"%s LM\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL");
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_Txt (UsrDat->Surname1);
if (UsrDat->Surname2[0])
HTM_TxtF (" %s",UsrDat->Surname2);
@ -3205,7 +3227,7 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
HTM_TxtF ("%u:",NumAttEvent + 1);
HTM_TD_End ();
HTM_TD_Begin ("class=\"BT%u\"",Gbl.RowEvenOdd);
HTM_TD_Begin ("class=\"BT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Att_PutCheckOrCross (Present);
HTM_TD_End ();

View File

@ -439,7 +439,6 @@ static void CtrCfg_Altitude (void)
static void CtrCfg_Photo (bool PrintView,bool PutForm,bool PutLink,
const char PathPhoto[PATH_MAX + 1])
{
extern const char *The_ClassDatStrong[The_NUM_THEMES];
char *PhotoAttribution = NULL;
char *URL;
char *Icon;
@ -454,10 +453,9 @@ static void CtrCfg_Photo (bool PrintView,bool PutForm,bool PutLink,
CtrCfg_GetPhotoAttr (Gbl.Hierarchy.Ctr.CtrCod,&PhotoAttribution);
/***** Photo image *****/
HTM_DIV_Begin ("class=\"DAT_SMALL CM\"");
HTM_DIV_Begin ("class=\"CM\"");
if (PutLink)
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
Gbl.Hierarchy.Ctr.WWW,The_ClassDatStrong[Gbl.Prefs.Theme]);
HTM_A_Begin ("href=\"%s\" target=\"_blank\"",Gbl.Hierarchy.Ctr.WWW);
if (asprintf (&URL,"%s/%02u/%u",
Cfg_URL_CTR_PUBLIC,
(unsigned) (Gbl.Hierarchy.Ctr.CtrCod % 100),

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.82 (2022-01-03)"
#define CSS_FILE "swad21.81.css"
#define Log_PLATFORM_VERSION "SWAD 21.83 (2022-01-09)"
#define CSS_FILE "swad21.83.css"
#define JS_FILE "swad21.78.2.js"
/*
Version 21.83: Jan 09, 2022 Working on design of dark theme. (322857 lines)
Version 21.82: Jan 03, 2022 Functions moved from swad_figure to other modules. (322550 lines)
Version 21.81.2: Jan 02, 2022 Functions moved from swad_figure to other modules. (322523 lines)
Version 21.81.1: Jan 02, 2022 Fixed bug in projects. (322460 lines)

View File

@ -320,7 +320,7 @@ static void CtyCfg_MapImage (bool PrintView,bool PutLink)
CtyCfg_GetMapAttr (Gbl.Hierarchy.Cty.CtyCod,&MapAttribution);
/***** Map image *****/
HTM_DIV_Begin ("class=\"DAT_SMALL CM\"");
HTM_DIV_Begin ("class=\"CM\"");
if (PutLink)
HTM_A_Begin ("href=\"%s\" target=\"_blank\"",
Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]);

View File

@ -214,6 +214,11 @@ static void ExaLog_LogUsrAgent (long LogCod,long PrnCod)
void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallLight[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_ClassDatSmallGreen[The_NUM_THEMES];
extern const char *The_ClassDatSmallRed[The_NUM_THEMES];
extern const char *Txt_Hits;
extern const char *Txt_Click;
extern const char *Txt_Date_and_time;
@ -242,11 +247,11 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
char *UserAgent;
const char *Class[ExaLog_NUM_ACTIONS] =
{
[ExaLog_UNKNOWN_ACTION ] = "DAT_SMALL_LIGHT",
[ExaLog_START_EXAM ] = "DAT_SMALL_N",
[ExaLog_RESUME_EXAM ] = "DAT_SMALL_N",
[ExaLog_ANSWER_QUESTION] = "DAT_SMALL",
[ExaLog_FINISH_EXAM ] = "DAT_SMALL_N",
[ExaLog_UNKNOWN_ACTION ] = The_ClassDatSmallLight[Gbl.Prefs.Theme],
[ExaLog_START_EXAM ] = The_ClassDatSmallStrong[Gbl.Prefs.Theme],
[ExaLog_RESUME_EXAM ] = The_ClassDatSmallStrong[Gbl.Prefs.Theme],
[ExaLog_ANSWER_QUESTION] = The_ClassDatSmall[Gbl.Prefs.Theme],
[ExaLog_FINISH_EXAM ] = The_ClassDatSmallStrong[Gbl.Prefs.Theme],
};
/***** Get print log from database *****/
@ -319,9 +324,9 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TR_Begin (NULL);
/* Write number of click */
HTM_TD_Begin ("class=\"RT %s %s\"",
UsrCouldAnswer ? "DAT_SMALL" :
"DAT_SMALL_LIGHT",
HTM_TD_Begin ("class=\"%s %s RT\"",
UsrCouldAnswer ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallLight[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumClick + 1);
HTM_TD_End ();
@ -329,8 +334,10 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
/* Write click time */
if (asprintf (&Id,"click_date_%u",NumClick) < 0)
Err_NotEnoughMemoryExit ();
HTM_TD_Begin ("id=\"%s\" class=\"LT %s %s\"",
Id,Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("id=\"%s\" class=\"%s %s LT\"",
Id,
Class[Action],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,ClickTimeUTC,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
true,true,true,0x7);
@ -338,29 +345,29 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End ();
/* Write action */
HTM_TD_Begin ("class=\"LT %s %s\"",
HTM_TD_Begin ("class=\"%s %s LT\"",
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 %s %s\"",
HTM_TD_Begin ("class=\"%s %s RT\"",
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 %s %s\"",
UsrCouldAnswer ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
HTM_TD_Begin ("class=\"%s %s CT\"",
UsrCouldAnswer ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (UsrCouldAnswer ? "&check;" :
"&cross;");
HTM_TD_End ();
/* Write IP */
HTM_TD_Begin ("class=\"LT %s %s\"",
HTM_TD_Begin ("class=\"%s %s LT\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
Length = strlen (IP);
if (Length > 6)
@ -379,7 +386,7 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End ();
/* Write session id */
HTM_TD_Begin ("class=\"LT %s %s\"",
HTM_TD_Begin ("class=\"%s %s LT\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (SessionId[0])
{
@ -401,7 +408,7 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
HTM_TD_End ();
/* Write user agent (row[6]) */
HTM_TD_Begin ("class=\"LT %s %s\"",
HTM_TD_Begin ("class=\"%s %s LT\"",
Class[Action],Gbl.ColorRows[Gbl.RowEvenOdd]);
if (UserAgent[0])
HTM_Txt (UserAgent);

View File

@ -629,6 +629,7 @@ static void ExaPrn_ShowExamPrintToFillIt (struct Exa_Exams *Exams,
static void ExaPrn_GetAndWriteDescription (long ExaCod)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Get description from database *****/
@ -638,7 +639,8 @@ static void ExaPrn_GetAndWriteDescription (long ExaCod)
ALn_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
/***** Write description *****/
HTM_DIV_Begin ("class=\"EXA_PRN_DESC DAT_SMALL\"");
HTM_DIV_Begin ("class=\"EXA_PRN_DESC %s\"",
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_Txt (Txt);
HTM_DIV_End ();
}
@ -694,6 +696,7 @@ static void ExaPrn_WriteQstAndAnsToFill (const struct ExaPrn_Print *Print,
unsigned QstInd,
struct Qst_Question *Question)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
static struct ExaSet_Set CurrentSet =
{
.ExaCod = -1L,
@ -723,7 +726,8 @@ static void ExaPrn_WriteQstAndAnsToFill (const struct ExaPrn_Print *Print,
/***** Number of question and answer type *****/
HTM_TD_Begin ("class=\"RT\"");
Qst_WriteNumQst (QstInd + 1,"BIG_INDEX");
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
Qst_WriteAnswerType (Question->Answer.Type,
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Stem, media and answers *****/

View File

@ -1863,25 +1863,27 @@ static void ExaRes_WriteQstAndAnsExam (struct UsrData *UsrDat,
struct Qst_Question *Question,
unsigned Visibility)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallRed[The_NUM_THEMES];
extern const char *Txt_Score;
extern const char *Txt_Invalid_question;
bool ICanView[TstVis_NUM_ITEMS_VISIBILITY];
static char *ClassNumQst[Qst_NUM_VALIDITIES] =
static const char *ClassNumQst[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "BIG_INDEX_RED",
[Qst_VALID_QUESTION ] = "BIG_INDEX",
};
static char *ClassAnswerType[Qst_NUM_VALIDITIES] =
const char *ClassAnswerType[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "DAT_SMALL_RED",
[Qst_VALID_QUESTION ] = "DAT_SMALL",
[Qst_INVALID_QUESTION] = The_ClassDatSmallRed[Gbl.Prefs.Theme],
[Qst_VALID_QUESTION ] = The_ClassDatSmall[Gbl.Prefs.Theme],
};
static char *ClassTxt[Qst_NUM_VALIDITIES] =
static const char *ClassTxt[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "TEST_TXT_RED",
[Qst_VALID_QUESTION ] = "TEST_TXT",
};
static char *ClassFeedback[Qst_NUM_VALIDITIES] =
static const char *ClassFeedback[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "TEST_TXT_LIGHT_RED",
[Qst_VALID_QUESTION ] = "TEST_TXT_LIGHT",
@ -1947,13 +1949,14 @@ static void ExaRes_WriteQstAndAnsExam (struct UsrData *UsrDat,
/* Write score retrieved from database */
if (ICanView[TstVis_VISIBLE_EACH_QST_SCORE])
{
HTM_DIV_Begin ("class=\"DAT_SMALL LM\"");
HTM_DIV_Begin ("class=\"%s LM\"",
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TxtColonNBSP (Txt_Score);
HTM_SPAN_Begin ("class=\"%s\"",
Print->PrintedQuestions[QstInd].StrAnswers[0] ?
(Print->PrintedQuestions[QstInd].Score > 0 ? "ANS_OK" : // Correct/semicorrect
(Print->PrintedQuestions[QstInd].Score > 0 ? "ANS_OK" : // Correct/semicorrect
"ANS_BAD") : // Wrong
"ANS_0"); // Blank answer
"ANS_0"); // Blank answer
HTM_Double2Decimals (Print->PrintedQuestions[QstInd].Score);
if (Question->Validity == Qst_INVALID_QUESTION)
HTM_TxtF (" (%s)",Txt_Invalid_question);

View File

@ -1188,22 +1188,24 @@ void ExaSet_GetQstDataFromDB (struct Qst_Question *Question)
static void ExaSet_ListQuestionForEdition (struct Qst_Question *Question,
unsigned QstInd,const char *Anchor)
{
static char *ClassNumQst[Qst_NUM_VALIDITIES] =
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallRed[The_NUM_THEMES];
static const char *ClassNumQst[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "BIG_INDEX_RED",
[Qst_VALID_QUESTION ] = "BIG_INDEX",
};
static char *ClassAnswerType[Qst_NUM_VALIDITIES] =
const char *ClassAnswerType[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "DAT_SMALL_RED",
[Qst_VALID_QUESTION ] = "DAT_SMALL",
[Qst_INVALID_QUESTION] = The_ClassDatSmallRed[Gbl.Prefs.Theme],
[Qst_VALID_QUESTION ] = The_ClassDatSmall[Gbl.Prefs.Theme],
};
static char *ClassTxt[Qst_NUM_VALIDITIES] =
static const char *ClassTxt[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "TEST_TXT_RED",
[Qst_VALID_QUESTION ] = "TEST_TXT",
};
static char *ClassFeedback[Qst_NUM_VALIDITIES] =
static const char *ClassFeedback[Qst_NUM_VALIDITIES] =
{
[Qst_INVALID_QUESTION] = "TEST_TXT_LIGHT_RED",
[Qst_VALID_QUESTION ] = "TEST_TXT_LIGHT",

View File

@ -661,6 +661,7 @@ void Hie_ResetHierarchy (void)
void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
{
extern const char *The_ClassDatSmallNoBR[The_NUM_THEMES];
extern const char *Txt_all_degrees;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@ -686,8 +687,10 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
HTM_TD_End ();
/***** Write institution, center, degree *****/
HTM_TD_Begin ("colspan=\"%u\" class=\"DAT_SMALL_NOBR LT %s\"",
ColSpan - 1,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("colspan=\"%u\" class=\"%s %s LT\"",
ColSpan - 1,
The_ClassDatSmallNoBR[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Get next institution, center, degree */
row = mysql_fetch_row (mysql_res);

View File

@ -537,6 +537,9 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
Ind_IndicatorsLayout_t IndicatorsLayout,
unsigned NumCrss,MYSQL_RES *mysql_res)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallGreen[The_NUM_THEMES];
extern const char *The_ClassDatSmallRed[The_NUM_THEMES];
extern const char *Txt_Degree;
extern const char *Txt_Course;
extern const char *Txt_Institutional_BR_code;
@ -708,30 +711,31 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s %s LM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[0]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[1]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[3]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL %s LM\"",
HTM_TD_Begin ("class=\"%s %s LM\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_A_Begin ("href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\"",
Cfg_URL_SWAD_CGI,CrsCod,ActCod);
@ -741,68 +745,78 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumIndicators);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_NO);
@ -821,30 +835,31 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_TR_Begin (NULL);
HTM_TD_Begin ("class=\"%s %s LM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[0]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[1]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (row[3]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL %s LM\"",
HTM_TD_Begin ("class=\"%s %s LM\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_A_Begin ("href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\"",
Cfg_URL_SWAD_CGI,CrsCod,ActCod);
@ -854,174 +869,184 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
NumTchs != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
NumTchs != 0 ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumTchs);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
NumStds != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
NumStds != 0 ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (NumStds);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
IndicatorsCrs.CourseAllOK ? "DAT_SMALL_GREEN" :
(IndicatorsCrs.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
IndicatorsCrs.CourseAllOK ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(IndicatorsCrs.CoursePartiallyOK ? The_ClassDatSmall[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]),
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumIndicators);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsSyllabus)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
(IndicatorsCrs.SyllabusLecSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.SyllabusLecSrc != Inf_NONE) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusLecSrc]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
(IndicatorsCrs.SyllabusPraSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.SyllabusPraSrc != Inf_NONE) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.SyllabusPraSrc]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
(IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreAssignments)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumAssignments != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumAssignments);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumFilesAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumFilesAssignments != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesAssignments);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumFilesWorks != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumFilesWorks != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesWorks);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsOnlineTutoring)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumThreads != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumThreads != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumThreads);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumPosts != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumPosts != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumPosts);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumMsgsSentByTchs != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumMsgsSentByTchs != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumMsgsSentByTchs);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereAreMaterials)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumFilesInDocumentZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumFilesInDocumentZones != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesInDocumentZones);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s RM\"",
(IndicatorsCrs.NumFilesInSharedZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.NumFilesInSharedZones != 0) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Unsigned (IndicatorsCrs.NumFilesInSharedZones);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_GREEN %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallGreen[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_YES);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL_RED %s CM\"",
HTM_TD_Begin ("class=\"%s %s CM\"",
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!IndicatorsCrs.ThereIsAssessment)
HTM_Txt (Txt_NO);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
(IndicatorsCrs.AssessmentSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.AssessmentSrc != Inf_NONE) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.AssessmentSrc]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"%s %s LM\"",
(IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
(IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]);
HTM_TD_End ();

View File

@ -159,6 +159,11 @@ void Log_ShowLastClicks (void)
void Log_GetAndShowLastClicks (void)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallBlue[The_NUM_THEMES];
extern const char *The_ClassDatSmallGreen[The_NUM_THEMES];
extern const char *The_ClassDatSmallRed[The_NUM_THEMES];
extern const char *The_ClassDatSmallYellow[The_NUM_THEMES];
extern const char *Txt_Click;
extern const char *Txt_ELAPSED_TIME;
extern const char *Txt_Role;
@ -207,12 +212,12 @@ void Log_GetAndShowLastClicks (void)
Action = Act_GetActionFromActCod (ActCod);
/* Use a special color for this row depending on the action */
ClassRow = (Act_GetBrowserTab (Action) == Act_DOWNLD_FILE) ? "DAT_SMALL_YELLOW" :
ClassRow = (Act_GetBrowserTab (Action) == Act_DOWNLD_FILE) ? The_ClassDatSmallYellow[Gbl.Prefs.Theme] :
(ActCod == Act_GetActCod (ActLogIn ) ||
ActCod == Act_GetActCod (ActLogInNew)) ? "DAT_SMALL_GREEN" :
(ActCod == Act_GetActCod (ActLogOut )) ? "DAT_SMALL_RED" :
(ActCod == Act_GetActCod (ActWebSvc )) ? "DAT_SMALL_BLUE" :
"DAT_SMALL_GREY";
ActCod == Act_GetActCod (ActLogInNew)) ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
(ActCod == Act_GetActCod (ActLogOut )) ? The_ClassDatSmallRed[Gbl.Prefs.Theme] :
(ActCod == Act_GetActCod (ActWebSvc )) ? The_ClassDatSmallBlue[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme];
/* Compute elapsed time from last access */
if (sscanf (row[2],"%ld",&TimeDiff) != 1)

View File

@ -798,6 +798,7 @@ static void Mai_ListEmails (__attribute__((unused)) void *Args)
extern const char *Hlp_COMMUNICATION_Email;
extern const char *The_ClassFormOutBoxBold[The_NUM_THEMES];
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_Email_addresses;
extern const char *Txt_X_users_who_have_email;
extern const char *Txt_X_users_who_have_accepted_and_who_have_email;
@ -815,7 +816,7 @@ static void Mai_ListEmails (__attribute__((unused)) void *Args)
Hlp_COMMUNICATION_Email,Box_NOT_CLOSABLE);
/***** Begin list with users' email addresses *****/
HTM_DIV_Begin ("class=\"DAT_SMALL CM\"");
HTM_DIV_Begin ("class=\"%s CM\"",The_ClassDatSmall[Gbl.Prefs.Theme]);
/***** Initialize structure with user's data *****/
Usr_UsrDataConstructor (&UsrDat);

View File

@ -2721,9 +2721,12 @@ static void Mch_PutCheckboxResult (const struct Mch_Match *Match)
static void Mch_PutIfAnswered (const struct Mch_Match *Match,bool Answered)
{
extern const char *The_ClassDatSmallGreen[The_NUM_THEMES];
extern const char *The_ClassDatSmallRed[The_NUM_THEMES];
extern const char *Txt_View_my_answer;
extern const char *Txt_MATCH_QUESTION_Answered;
extern const char *Txt_MATCH_QUESTION_Unanswered;
char *Class;
/***** Begin container *****/
HTM_DIV_Begin ("class=\"MCH_SHOW_ANSWERED\"");
@ -2737,8 +2740,10 @@ static void Mch_PutIfAnswered (const struct Mch_Match *Match,bool Answered)
Frm_BeginForm (ActSeeMchAnsQstStd);
Mch_PutParamMchCod (Match->MchCod); // Current match being played
HTM_BUTTON_OnMouseDown_Begin (Txt_View_my_answer,
"BT_LINK DAT_SMALL_GREEN");
if (asprintf (&Class,"BT_LINK %s",The_ClassDatSmallGreen[Gbl.Prefs.Theme]) < 0) // Background
Err_NotEnoughMemoryExit ();
HTM_BUTTON_OnMouseDown_Begin (Txt_View_my_answer,Class);
free (Class);
HTM_TxtF ("<i class=\"%s\"></i>","fas fa-check-circle");
HTM_TxtF ("&nbsp;%s",Txt_MATCH_QUESTION_Answered);
HTM_BUTTON_End ();
@ -2748,8 +2753,8 @@ static void Mch_PutIfAnswered (const struct Mch_Match *Match,bool Answered)
}
else
{
HTM_DIV_Begin ("class=\"%s\"",Answered ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED");
HTM_DIV_Begin ("class=\"%s\"",Answered ? The_ClassDatSmallGreen[Gbl.Prefs.Theme] :
The_ClassDatSmallRed[Gbl.Prefs.Theme]);
HTM_TxtF ("<i class=\"%s\" title=\"%s\"></i>",
Answered ? "fas fa-check-circle" :
"fas fa-exclamation-circle",

View File

@ -485,6 +485,8 @@ static void Msg_PutHiddenParamsSubjectAndContent (void)
static void Msg_ShowOneUniqueRecipient (void)
{
extern const char *The_ClassDatSmallNoBR[The_NUM_THEMES];
extern const char *The_ClassDatSmallNoBRStrong[The_NUM_THEMES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
[PhoSha_SHAPE_CIRCLE ] = "PHOTOC21x28",
@ -500,15 +502,15 @@ static void Msg_ShowOneUniqueRecipient (void)
/****** Write user's IDs ******/
HTM_DIV_Begin ("class=\"MSG_TO_ONE_RCP %s\"",
Gbl.Usrs.Other.UsrDat.Accepted ? "DAT_SMALL_NOBR_N" :
"DAT_SMALL_NOBR");
Gbl.Usrs.Other.UsrDat.Accepted ? The_ClassDatSmallNoBRStrong[Gbl.Prefs.Theme] :
The_ClassDatSmallNoBR[Gbl.Prefs.Theme]);
ID_WriteUsrIDs (&Gbl.Usrs.Other.UsrDat,NULL);
HTM_DIV_End ();
/***** Write user's name *****/
HTM_DIV_Begin ("class=\"MSG_TO_ONE_RCP %s\"",
Gbl.Usrs.Other.UsrDat.Accepted ? "DAT_SMALL_NOBR_N" :
"DAT_SMALL_NOBR");
Gbl.Usrs.Other.UsrDat.Accepted ? The_ClassDatSmallNoBRStrong[Gbl.Prefs.Theme] :
The_ClassDatSmallNoBR[Gbl.Prefs.Theme]);
HTM_Txt (Gbl.Usrs.Other.UsrDat.FullName);
HTM_DIV_End ();

View File

@ -241,7 +241,8 @@ void Net_ShowFormMyWebsAndSocialNets (void)
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
HTM_INPUT_URL (StrName,URL,HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%s\" class=\"REC_C2_BOT_INPUT %s\"",
StrName,The_ClassInput[Gbl.Prefs.Theme]);
StrName,
The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
HTM_TR_End ();

View File

@ -1062,6 +1062,8 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
{
extern const char *Rol_Icons[Rol_NUM_ROLES];
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *Txt_Following;
extern const char *Txt_Followers;
unsigned NumFollowing;
@ -1107,9 +1109,10 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
/* Nickname */
if (UsrDat->Nickname[0])
{
if (asprintf (&Caption.Nick,"<div class=\"ZOOM_TXT_LINE DAT_SMALL_N\">"
if (asprintf (&Caption.Nick,"<div class=\"ZOOM_TXT_LINE %s\">"
"@%s"
"</div>",
The_ClassDatSmallStrong[Gbl.Prefs.Theme],
UsrDat->Nickname) < 0)
Err_NotEnoughMemoryExit ();
}
@ -1124,9 +1127,10 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
Ins_GetShrtNameAndCtyOfInstitution (&Ins,CtyName);
/* Write institution short name and country name */
if (asprintf (&Caption.InsCty,"<div class=\"ZOOM_TXT_LINE DAT_SMALL\">"
if (asprintf (&Caption.InsCty,"<div class=\"ZOOM_TXT_LINE %s\">"
"%s&nbsp;(%s)"
"</div>",
The_ClassDatSmall[Gbl.Prefs.Theme],
Ins.ShrtName,CtyName) < 0)
Err_NotEnoughMemoryExit ();
}
@ -1136,10 +1140,11 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
Cty_GetCountryName (UsrDat->CtyCod,Gbl.Prefs.Language,CtyName);
/* Write country name */
if (asprintf (&Caption.InsCty,"<div class=\"ZOOM_TXT_LINE DAT_SMALL\">"
if (asprintf (&Caption.InsCty,"<div class=\"ZOOM_TXT_LINE %s\">"
"%s"
"</div>",
CtyName) < 0)
The_ClassDatSmall[Gbl.Prefs.Theme],
CtyName) < 0)
Err_NotEnoughMemoryExit ();
}
else if (asprintf (&Caption.InsCty,"%s","") < 0)
@ -1149,13 +1154,15 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
Deg_GetUsrMainDeg (UsrDat->UsrCod,MainDegreeShrtName,&MaxRole);
if (MainDegreeShrtName[0])
{
if (asprintf (&Caption.MainDeg,"<div class=\"ZOOM_TXT_LINE DAT_SMALL\">"
"<div class=\"ZOOM_DEG\" style=\"background-image:url('%s/%s');\">"
if (asprintf (&Caption.MainDeg,"<div class=\"ZOOM_TXT_LINE %s\">"
"<div class=\"ZOOM_DEG\""
" style=\"background-image:url('%s/%s');\">"
"%s"
"</div>"
"</div>",
Cfg_URL_ICON_PUBLIC,Rol_Icons[MaxRole],
MainDegreeShrtName) < 0)
The_ClassDatSmall[Gbl.Prefs.Theme],
Cfg_URL_ICON_PUBLIC,Rol_Icons[MaxRole],
MainDegreeShrtName) < 0)
Err_NotEnoughMemoryExit ();
}
else if (asprintf (&Caption.MainDeg,"%s","") < 0)
@ -1169,21 +1176,23 @@ void Pho_BuildHTMLUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
"<span class=\"%s BOLD\">"
"%u"
"</span>"
"<span class=\"DAT_SMALL\">"
"<span class=\"%s\">"
"&nbsp;%s&nbsp;"
"</span>"
"<span class=\"%s BOLD\">"
"%u"
"</span>"
"<span class=\"DAT_SMALL\">"
"<span class=\"%s\">"
"&nbsp;%s"
"</span>"
"</div>",
The_ClassDatStrong[Gbl.Prefs.Theme],
NumFollowing,
The_ClassDatSmall[Gbl.Prefs.Theme],
Txt_Following,
The_ClassDatStrong[Gbl.Prefs.Theme],
NumFollowers,
The_ClassDatSmall[Gbl.Prefs.Theme],
Txt_Followers) < 0)
Err_NotEnoughMemoryExit ();
}
@ -2334,13 +2343,14 @@ static void Pho_GetNumStdsInDegree (long DegCod,Usr_Sex_t Sex,
static void Pho_ShowDegreeStat (int NumStds,int NumStdsWithPhoto)
{
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_photos;
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
HTM_TxtF ("%d&nbsp;",NumStds);
HTM_SPAN_End ();
HTM_SPAN_Begin ("class=\"DAT_SMALL\"");
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TxtF ("(%d&nbsp;%s,&nbsp;%d%%)",
NumStdsWithPhoto,Txt_photos,
NumStds > 0 ? (int) (((NumStdsWithPhoto * 100.0) / NumStds) + 0.5) :

View File

@ -1170,6 +1170,8 @@ static void Prf_GetAndShowRankingFigure (const char *FieldName)
void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
MYSQL_ROW row;
unsigned NumUsr;
unsigned Rank;
@ -1212,9 +1214,9 @@ 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 %s\"",
ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s RM\"",
ItsMe ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Long (Figure);
HTM_TD_End ();
@ -1237,6 +1239,8 @@ void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs)
void Prf_GetAndShowRankingClicksPerDay (void)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumUsrs = 0; // Initialized to avoid warning
@ -1280,9 +1284,9 @@ void Prf_GetAndShowRankingClicksPerDay (void)
/***** Show row *****/
HTM_TR_Begin (NULL);
Prf_ShowUsrInRanking (&UsrDat,Rank,ItsMe);
HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s RM\"",
ItsMe ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_DoubleFewDigits (NumClicksPerDay);
HTM_TD_End ();
@ -1305,6 +1309,8 @@ void Prf_GetAndShowRankingClicksPerDay (void)
static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank,bool ItsMe)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *Txt_Another_user_s_profile;
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
@ -1315,9 +1321,9 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank,bool ItsM
};
bool Visible = Pri_ShowingIsAllowed (UsrDat->BaPrfVisibility,UsrDat);
HTM_TD_Begin ("class=\"RM %s %s\"",
ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s RM\"",
ItsMe ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("#%u",Rank);
HTM_TD_End ();
@ -1333,8 +1339,8 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank,bool ItsM
/***** Put form to go to public profile *****/
HTM_TD_Begin ("class=\"RANK_USR %s %s\"", // Limited width
ItsMe ? "DAT_SMALL_N" :
"DAT_SMALL",
ItsMe ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Visible)
{

View File

@ -519,17 +519,21 @@ void Qst_ListQuestionForEdition (struct Qst_Question *Question,
const char *Anchor)
{
extern const char *The_ClassDatLight[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_Question_removed;
/***** Number of question and answer type (row[1]) *****/
HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd,"BIG_INDEX");
if (QuestionExists)
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
Qst_WriteAnswerType (Question->Answer.Type,
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Write question code *****/
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%ld&nbsp;",Question->QstCod);
HTM_TD_End ();
@ -963,7 +967,9 @@ void Qst_WriteHeadingRowQuestionsForEdition (struct Qst_Questions *Questions)
void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
static unsigned UniqueId = 0;
char *Class;
char *Id;
/***** Get and show question data *****/
@ -988,19 +994,27 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
/* Number of question and answer type */
HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd + 1,"BIG_INDEX");
Qst_WriteAnswerType (Questions->Question.Answer.Type,"DAT_SMALL");
if (asprintf (&Class,"%s",
The_ClassDatSmall[Gbl.Prefs.Theme]) < 0)
Err_NotEnoughMemoryExit ();
Qst_WriteAnswerType (Questions->Question.Answer.Type,Class);
free (Class);
HTM_TD_End ();
/* Question code */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
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 %s\"",
Id,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("id=\"%s\" class=\"%s %s CT\"",
Id,
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Questions->Question.EditTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -1013,7 +1027,9 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
HTM_TD_End ();
/* Shuffle (row[2]) */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Questions->Question.Answer.Type == Qst_ANS_UNIQUE_CHOICE ||
Questions->Question.Answer.Type == Qst_ANS_MULTIPLE_CHOICE)
{
@ -1044,12 +1060,16 @@ 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 %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_UnsignedLong (Questions->Question.NumHits);
HTM_TD_End ();
/* Average score */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Questions->Question.NumHits)
HTM_Double2Decimals (Questions->Question.Score /
(double) Questions->Question.NumHits);
@ -1058,12 +1078,16 @@ 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 %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_UnsignedLong (Questions->Question.NumHitsNotBlank);
HTM_TD_End ();
/* Average score (not blank) */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Questions->Question.NumHitsNotBlank)
HTM_Double2Decimals (Questions->Question.Score /
(double) Questions->Question.NumHitsNotBlank);
@ -1268,6 +1292,7 @@ void Qst_PutCheckboxToSelectAllQuestions (void)
void Qst_WriteQuestionRowForSelection (unsigned QstInd,
struct Qst_Question *Question)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_TST_STR_ANSWER_TYPES[Qst_NUM_ANS_TYPES];
static unsigned UniqueId = 0;
char *Id;
@ -1286,20 +1311,26 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
HTM_TD_End ();
/* Write number of question */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TxtF ("%u&nbsp;",QstInd + 1);
HTM_TD_End ();
/* Write question code */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
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 %s\">",
Id,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("id=\"%s\" class=\"%s %s CT\">",
Id,
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
Dat_WriteLocalDateHMSFromUTC (Id,Question->EditTime,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
true,true,false,0x7);
@ -1312,12 +1343,16 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
HTM_TD_End ();
/* Write the question type */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
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 %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_INPUT_CHECKBOX ("Shuffle",HTM_DONT_SUBMIT_ON_CHANGE,
"value=\"Y\"%s disabled=\"disabled\"",
Question->Answer.Shuffle ? " checked=\"checked\"" :

View File

@ -854,6 +854,8 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
const struct Qst_Question *Question,
bool QuestionExists)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallLight[The_NUM_THEMES];
extern const char *Txt_Existing_question;
extern const char *Txt_New_question;
extern const char *Txt_no_tags;
@ -871,8 +873,8 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
size_t AnswerTextLength;
char *AnswerFeedback;
size_t AnswerFeedbackLength;
const char *ClassData = QuestionExists ? "DAT_SMALL_LIGHT" :
"DAT_SMALL";
const char *ClassData = QuestionExists ? The_ClassDatSmallLight[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme];
const char *ClassStem = QuestionExists ? "TEST_TXT_LIGHT" :
"TEST_TXT";
@ -892,13 +894,14 @@ static void QstImp_WriteRowImportedQst (struct XMLElement *StemElem,
HTM_TD_End ();
/***** Write number of question *****/
HTM_TD_Begin ("class=\"%s CT %s\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s CT\"",ClassData,Gbl.ColorRows[Gbl.RowEvenOdd]);
if (!QuestionExists)
HTM_TxtF ("%u&nbsp;",++NumNonExistingQst);
HTM_TD_End ();
/***** Write the question tags *****/
HTM_TD_Begin ("class=\"LT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s LT\"",
Gbl.ColorRows[Gbl.RowEvenOdd]);
if (Question->Tags.Num)
{

View File

@ -1569,6 +1569,8 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
extern const char *Hlp_USERS_Students_course_record_card;
extern const char *The_ClassDatStrong[The_NUM_THEMES];
extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_RECORD_FIELD_VISIBILITY_RECORD[Rec_NUM_TYPES_VISIBILITY];
extern const char *Txt_Save_changes;
const char *Rec_RecordHelp[Rec_COURSE_NUM_VIEW_TYPES] =
@ -1716,9 +1718,11 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
if (TypeOfView == Rec_CRS_LIST_ONE_RECORD ||
TypeOfView == Rec_CRS_LIST_SEVERAL_RECORDS)
{
HTM_SPAN_Begin ("class=\"DAT_SMALL\"");
HTM_SPAN_Begin ("class=\"%s\"",
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_NBSP ();
HTM_TxtF ("(%s)",Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.Crs.Records.LstFields.Lst[NumField].Visibility]);
HTM_TxtF ("(%s)",
Txt_RECORD_FIELD_VISIBILITY_RECORD[Gbl.Crs.Records.LstFields.Lst[NumField].Visibility]);
HTM_SPAN_End ();
}
HTM_TD_End ();
@ -1742,9 +1746,10 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
if (ICanEditThisField) // Show with form
{
HTM_TEXTAREA_Begin ("name=\"Field%ld\" rows=\"%u\""
" class=\"REC_C2_BOT_INPUT\"",
" class=\"REC_C2_BOT_INPUT %s\"",
Gbl.Crs.Records.LstFields.Lst[NumField].FieldCod,
Gbl.Crs.Records.LstFields.Lst[NumField].NumLines);
Gbl.Crs.Records.LstFields.Lst[NumField].NumLines,
The_ClassInput[Gbl.Prefs.Theme]);
if (ThisFieldHasText)
HTM_Txt (row[0]);
HTM_TEXTAREA_End ();
@ -3289,7 +3294,8 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm,
HTM_INPUT_TEL (Name,UsrDat->Phone[NumPhone],
HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%s\" class=\"REC_C2_BOT_INPUT %s\"",
Name,The_ClassInput[Gbl.Prefs.Theme]);
Name,
The_ClassInput[Gbl.Prefs.Theme]);
else if (UsrDat->Phone[NumPhone][0])
{
HTM_A_Begin ("href=\"tel:%s\" class=\"%s\"",

View File

@ -751,6 +751,7 @@ void Sta_SeeCrsAccesses (void)
static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_You_must_select_one_ore_more_users;
extern const char *Txt_There_is_no_knowing_how_many_users_not_logged_have_accessed;
extern const char *Txt_The_date_range_must_be_less_than_or_equal_to_X_days;
@ -1043,7 +1044,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
case Sta_CLICKS_GBL_PER_HOUR:
case Sta_CLICKS_CRS_PER_MINUTE:
case Sta_CLICKS_GBL_PER_MINUTE:
HTM_TxtF ("<p class=\"DAT_SMALL CM\">%s: %s</p>",
HTM_TxtF ("<p class=\"%s CM\">%s: %s</p>",
The_ClassDatSmall[Gbl.Prefs.Theme],
Txt_Time_zone_used_in_the_calculation_of_these_statistics,
BrowserTimeZone);
break;
@ -2368,9 +2370,12 @@ static void Sta_ShowNumHitsPerHour (unsigned NumHits,
static void Sta_WriteAccessHour (unsigned Hour,struct Sta_Hits *Hits,unsigned ColumnWidth)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
unsigned BarHeight;
HTM_TD_Begin ("class=\"DAT_SMALL CB\" style=\"width:%upx;\"",ColumnWidth);
HTM_TD_Begin ("class=\"%s CB\" style=\"width:%upx;\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
ColumnWidth);
/* Draw bar with a height porportional to the number of clicks */
if (Hits->Num > 0.0)

View File

@ -2747,6 +2747,7 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys,
{
extern const char *Hlp_ASSESSMENT_Surveys_questions;
extern const char *The_ClassDat[The_NUM_THEMES];
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_Questions;
extern const char *Txt_No_INDEX;
extern const char *Txt_Type;
@ -2833,13 +2834,15 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys,
}
/* Write index of question inside survey */
HTM_TD_Begin ("class=\"DAT_SMALL CT %s\"",
HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
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 %s\"",
HTM_TD_Begin ("class=\"%s CT %s\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_Txt (Txt_SURVEY_STR_ANSWER_TYPES[SvyQst.AnswerType]);
HTM_TD_End ();

View File

@ -509,6 +509,7 @@ static void Tag_PutIconDisable (long TagCod,const char *TagTxt)
void Tag_GetAndWriteTagsQst (long QstCod)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_no_tags;
unsigned NumTags;
unsigned NumTag;
@ -518,7 +519,8 @@ void Tag_GetAndWriteTagsQst (long QstCod)
if ((NumTags = Tag_DB_GetTagsQst (&mysql_res,QstCod)))
{
/***** Write the tags *****/
HTM_UL_Begin ("class=\"TEST_TAG_LIST DAT_SMALL\"");
HTM_UL_Begin ("class=\"TEST_TAG_LIST %s\"",
The_ClassDatSmall[Gbl.Prefs.Theme]);
for (NumTag = 0;
NumTag < NumTags;
NumTag++)
@ -532,7 +534,8 @@ void Tag_GetAndWriteTagsQst (long QstCod)
}
else
{
HTM_SPAN_Begin ("class=\"DAT_SMALL\"");
HTM_SPAN_Begin ("class=\"%s\"",
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TxtF ("(%s)",Txt_no_tags);
HTM_SPAN_End ();
}

View File

@ -285,13 +285,16 @@ static void TstPrn_WriteQstAndAnsToFill (struct TstPrn_PrintedQuestion *PrintedQ
unsigned QstInd,
struct Qst_Question *Question)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
/***** Begin row *****/
HTM_TR_Begin (NULL);
/***** Number of question and answer type *****/
HTM_TD_Begin ("class=\"RT %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Qst_WriteNumQst (QstInd + 1,"BIG_INDEX");
Qst_WriteAnswerType (Question->Answer.Type,"DAT_SMALL");
Qst_WriteAnswerType (Question->Answer.Type,
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Stem, media and answers *****/
@ -588,6 +591,7 @@ static void TstPrn_WriteQstAndAnsExam (struct UsrData *UsrDat,
bool QuestionExists,
unsigned Visibility)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_Score;
extern const char *Txt_Question_removed;
extern const char *Txt_Question_modified;
@ -636,7 +640,8 @@ static void TstPrn_WriteQstAndAnsExam (struct UsrData *UsrDat,
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");
Qst_WriteAnswerType (Question->Answer.Type,
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Stem, media and answers *****/
@ -668,7 +673,7 @@ static void TstPrn_WriteQstAndAnsExam (struct UsrData *UsrDat,
/* Write score retrieved from database */
if (ICanView[TstVis_VISIBLE_EACH_QST_SCORE])
{
HTM_DIV_Begin ("class=\"DAT_SMALL LM\"");
HTM_DIV_Begin ("class=\"%s LM\"",The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_TxtColonNBSP (Txt_Score);
HTM_SPAN_Begin ("class=\"%s\"",
PrintedQuestions[QstInd].StrAnswers[0] ?
@ -1620,14 +1625,15 @@ static void TstPrn_WriteTxtAnsPrint (struct UsrData *UsrDat,
static void TstPrn_WriteHeadUserCorrect (struct UsrData *UsrDat)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Txt_User[Usr_NUM_SEXS];
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
HTM_TD_Begin ("class=\"DAT_SMALL CM\"");
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_Txt (Txt_User[UsrDat->Sex]);
HTM_TD_End ();
HTM_TD_Begin ("class=\"DAT_SMALL CM\"");
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_Txt (Txt_ROLES_PLURAL_Abc[Rol_TCH][Usr_SEX_UNKNOWN]);
HTM_TD_End ();
}

View File

@ -221,6 +221,105 @@ const char *The_ClassDatLight[The_NUM_THEMES] =
[The_THEME_DARK ] = "DAT_LIGHT_DARK",
};
const char *The_ClassDatSmall[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_PINK",
[The_THEME_DARK ] = "DAT_SMALL_DARK",
};
const char *The_ClassDatSmallLight[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_LIGHT_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_LIGHT_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_LIGHT_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_LIGHT_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_LIGHT_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_LIGHT_PINK",
[The_THEME_DARK ] = "DAT_SMALL_LIGHT_DARK",
};
const char *The_ClassDatSmallStrong[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_STRONG_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_STRONG_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_STRONG_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_STRONG_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_STRONG_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_STRONG_PINK",
[The_THEME_DARK ] = "DAT_SMALL_STRONG_DARK",
};
const char *The_ClassDatSmallRed[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_RED_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_RED_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_RED_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_RED_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_RED_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_RED_PINK",
[The_THEME_DARK ] = "DAT_SMALL_RED_DARK",
};
const char *The_ClassDatSmallGreen[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_GREEN_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_GREEN_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_GREEN_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_GREEN_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_GREEN_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_GREEN_PINK",
[The_THEME_DARK ] = "DAT_SMALL_GREEN_DARK",
};
const char *The_ClassDatSmallBlue[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_BLUE_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_BLUE_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_BLUE_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_BLUE_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_BLUE_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_BLUE_PINK",
[The_THEME_DARK ] = "DAT_SMALL_BLUE_DARK",
};
const char *The_ClassDatSmallYellow[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_YELLOW_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_YELLOW_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_YELLOW_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_YELLOW_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_YELLOW_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_YELLOW_PINK",
[The_THEME_DARK ] = "DAT_SMALL_YELLOW_DARK",
};
const char *The_ClassDatSmallNoBR[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_NOBR_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_NOBR_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_NOBR_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_NOBR_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_NOBR_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_NOBR_PINK",
[The_THEME_DARK ] = "DAT_SMALL_NOBR_DARK",
};
const char *The_ClassDatSmallNoBRStrong[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "DAT_SMALL_NOBR_STRONG_WHITE",
[The_THEME_GREY ] = "DAT_SMALL_NOBR_STRONG_GREY",
[The_THEME_PURPLE] = "DAT_SMALL_NOBR_STRONG_PURPLE",
[The_THEME_BLUE ] = "DAT_SMALL_NOBR_STRONG_BLUE",
[The_THEME_YELLOW] = "DAT_SMALL_NOBR_STRONG_YELLOW",
[The_THEME_PINK ] = "DAT_SMALL_NOBR_STRONG_PINK",
[The_THEME_DARK ] = "DAT_SMALL_NOBR_STRONG_DARK",
};
const char *The_ClassInput[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "INPUT_WHITE",

View File

@ -1303,6 +1303,7 @@ static void Tmt_TimeTableDrawCell (const struct Tmt_Timetable *Timetable,
long CrsCod,Tmt_IntervalType_t IntervalType,Tmt_ClassType_t ClassType,
unsigned DurationNumIntervals,long GrpCod,const char *Info)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *Tmt_DB_ClassType[Tmt_NUM_CLASS_TYPES];
extern const char *Txt_unknown_removed_course;
extern const char *Txt_TIMETABLE_CLASS_TYPES[Tmt_NUM_CLASS_TYPES];
@ -1386,12 +1387,16 @@ static void Tmt_TimeTableDrawCell (const struct Tmt_Timetable *Timetable,
}
if (ClassType == Tmt_FREE)
{
if (asprintf (&ClassStr,"%s%u",TimeTableClasses[ClassType],Interval % 4) < 0)
if (asprintf (&ClassStr,"%s%u",
TimeTableClasses[ClassType],
Interval % 4) < 0)
Err_NotEnoughMemoryExit ();
}
else
{
if (asprintf (&ClassStr,"%s CM DAT_SMALL",TimeTableClasses[ClassType]) < 0)
if (asprintf (&ClassStr,"%s %s CM",
TimeTableClasses[ClassType],
The_ClassDatSmall[Gbl.Prefs.Theme]) < 0)
Err_NotEnoughMemoryExit ();
}
@ -1598,7 +1603,9 @@ static void Tmt_TimeTableDrawCell (const struct Tmt_Timetable *Timetable,
{
/***** Info *****/
HTM_BR ();
HTM_LABEL_Begin ("for=\"TTInf%s\" class=\"DAT_SMALL\"",CellStr);
HTM_LABEL_Begin ("for=\"TTInf%s\" class=\"%s\"",
CellStr,
The_ClassDatSmall[Gbl.Prefs.Theme]);
HTM_Txt (Txt_Info);
HTM_LABEL_End ();
HTM_INPUT_TEXT ("TTInf",Tmt_MAX_CHARS_INFO,Info,

View File

@ -2154,6 +2154,8 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
bool PutCheckBoxToSelectUsr,Rol_Role_t Role,
struct SelectedUsrs *SelectedUsrs)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_Colors[The_NUM_THEMES];
extern const char *Txt_Enrolment_confirmed;
extern const char *Txt_Enrolment_not_confirmed;
@ -2227,9 +2229,9 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
}
/****** Write user's IDs ******/
HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s LM\"",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
BgColor);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_TD_End ();
@ -2253,6 +2255,7 @@ void Usr_WriteRowUsrMainData (unsigned NumUsr,struct UsrData *UsrDat,
static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
[PhoSha_SHAPE_CIRCLE ] = "PHOTOC21x28",
@ -2270,7 +2273,7 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
if (Gbl.Usrs.Listing.WithPhotos)
{
/***** Show guest's photo *****/
HTM_TD_Begin ("class=\"LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s LM\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_NO_ZOOM,
false);
@ -2278,7 +2281,9 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
}
/****** Write user's ID ******/
HTM_TD_Begin ("class=\"DAT_SMALL LM %s\"",Gbl.ColorRows[Gbl.RowEvenOdd]);
HTM_TD_Begin ("class=\"%s %s LM\"",
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP ();
HTM_TD_End ();
@ -2342,6 +2347,9 @@ static void Usr_WriteRowGstAllData (struct UsrData *UsrDat)
static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_Colors[The_NUM_THEMES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
[PhoSha_SHAPE_CIRCLE ] = "PHOTOC21x28",
@ -2371,9 +2379,9 @@ static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
}
/****** Write user's ID ******/
HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s LM\"",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP ();
@ -2453,6 +2461,9 @@ static void Usr_WriteRowStdAllData (struct UsrData *UsrDat,char *GroupNames)
static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_Colors[The_NUM_THEMES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
[PhoSha_SHAPE_CIRCLE ] = "PHOTOC21x28",
@ -2480,9 +2491,9 @@ static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
}
/****** Write the user's ID ******/
HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s LM\"",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP ();
@ -2534,6 +2545,9 @@ static void Usr_WriteRowTchAllData (struct UsrData *UsrDat)
static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_Colors[The_NUM_THEMES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
{
[PhoSha_SHAPE_CIRCLE ] = "PHOTOC21x28",
@ -2563,9 +2577,9 @@ static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
}
/****** Write the user's ID ******/
HTM_TD_Begin ("class=\"%s LM %s\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
HTM_TD_Begin ("class=\"%s %s LM\"",
UsrDat->Accepted ? The_ClassDatSmallStrong[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme],
Gbl.ColorRows[Gbl.RowEvenOdd]);
ID_WriteUsrIDs (UsrDat,NULL);
HTM_NBSP ();
@ -2643,15 +2657,18 @@ static void Usr_WriteUsrData (const char *BgColor,
const char *Data,const char *Link,
bool NonBreak,bool Accepted)
{
extern const char *The_ClassDatSmall[The_NUM_THEMES];
extern const char *The_ClassDatSmallStrong[The_NUM_THEMES];
extern const char *The_ClassDatSmallNoBR[The_NUM_THEMES];
extern const char *The_ClassDatSmallNoBRStrong[The_NUM_THEMES];
extern const char *The_Colors[The_NUM_THEMES];
/***** Begin table cell *****/
HTM_TD_Begin ("class=\"%s_%s LM %s\"",
Accepted ? (NonBreak ? "DAT_SMALL_NOBR_N" :
"DAT_SMALL_N") :
(NonBreak ? "DAT_SMALL_NOBR" :
"DAT_SMALL"),
The_Colors[Gbl.Prefs.Theme],
HTM_TD_Begin ("class=\"%s LM %s\"",
Accepted ? (NonBreak ? The_ClassDatSmallNoBRStrong[Gbl.Prefs.Theme] :
The_ClassDatSmallStrong[Gbl.Prefs.Theme]) :
(NonBreak ? The_ClassDatSmallNoBR[Gbl.Prefs.Theme] :
The_ClassDatSmall[Gbl.Prefs.Theme]),
BgColor);
/***** Container to limit length *****/
@ -2660,8 +2677,8 @@ static void Usr_WriteUsrData (const char *BgColor,
/***** Begin link *****/
if (Link)
HTM_A_Begin ("href=\"%s\" class=\"%s\" target=\"_blank\"",
Link,Accepted ? "DAT_SMALL_NOBR_N" :
"DAT_SMALL_NOBR");
Link,Accepted ? The_ClassDatSmallNoBRStrong[Gbl.Prefs.Theme] :
The_ClassDatSmallNoBR[Gbl.Prefs.Theme]);
/***** Write data *****/
HTM_Txt (Data);
@ -6485,7 +6502,7 @@ void Usr_PutWhoIcon (Usr_Who_t Who)
{
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Txt_WHO[Usr_NUM_WHO];
static char *Icon[Usr_NUM_WHO] =
static const char *Icon[Usr_NUM_WHO] =
{
[Usr_WHO_UNKNOWN ] = NULL,
[Usr_WHO_ME ] = NULL,