From 9260cb7538811afcdb78ab80d131f043e734d9e8 Mon Sep 17 00:00:00 2001 From: acanas Date: Sun, 9 Jan 2022 23:27:36 +0100 Subject: [PATCH] Version 21.83: Jan 09, 2022 Working on design of dark theme. --- css/{swad21.81.css => swad21.83.css} | 104 +++++++++++----- swad_attendance.c | 74 +++++++---- swad_center_config.c | 6 +- swad_changelog.h | 5 +- swad_country_config.c | 2 +- swad_exam_log.c | 43 ++++--- swad_exam_print.c | 8 +- swad_exam_result.c | 21 ++-- swad_exam_set.c | 14 ++- swad_hierarchy.c | 7 +- swad_indicator.c | 177 +++++++++++++++------------ swad_log.c | 15 ++- swad_mail.c | 3 +- swad_match.c | 13 +- swad_message.c | 10 +- swad_network.c | 3 +- swad_photo.c | 32 +++-- swad_profile.c | 28 +++-- swad_question.c | 69 ++++++++--- swad_question_import.c | 11 +- swad_record.c | 16 ++- swad_statistic.c | 9 +- swad_survey.c | 7 +- swad_tag.c | 7 +- swad_test_print.c | 16 ++- swad_theme.c | 99 +++++++++++++++ swad_timetable.c | 13 +- swad_user.c | 63 ++++++---- 28 files changed, 598 insertions(+), 277 deletions(-) rename css/{swad21.81.css => swad21.83.css} (93%) diff --git a/css/swad21.81.css b/css/swad21.83.css similarity index 93% rename from css/swad21.81.css rename to css/swad21.83.css index 2d7153f18..354c75469 100644 --- a/css/swad21.81.css +++ b/css/swad21.83.css @@ -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 diff --git a/swad_attendance.c b/swad_attendance.c index 0ecbfc8bf..5a8c234f8 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -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 (); diff --git a/swad_center_config.c b/swad_center_config.c index f073ceb12..a82cc2531 100644 --- a/swad_center_config.c +++ b/swad_center_config.c @@ -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), diff --git a/swad_changelog.h b/swad_changelog.h index 33a1ae6c0..1f543a41b 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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) diff --git a/swad_country_config.c b/swad_country_config.c index 15279ccaf..e3945c7a5 100644 --- a/swad_country_config.c +++ b/swad_country_config.c @@ -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]); diff --git a/swad_exam_log.c b/swad_exam_log.c index 4dd4456ec..d3da0b80a 100644 --- a/swad_exam_log.c +++ b/swad_exam_log.c @@ -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 ? "✓" : "✗"); 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); diff --git a/swad_exam_print.c b/swad_exam_print.c index c35cc6f31..a76b29953 100644 --- a/swad_exam_print.c +++ b/swad_exam_print.c @@ -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 *****/ diff --git a/swad_exam_result.c b/swad_exam_result.c index 8372e639c..4809e1f8d 100644 --- a/swad_exam_result.c +++ b/swad_exam_result.c @@ -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); diff --git a/swad_exam_set.c b/swad_exam_set.c index 9189c3dbe..3fa7bb560 100644 --- a/swad_exam_set.c +++ b/swad_exam_set.c @@ -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", diff --git a/swad_hierarchy.c b/swad_hierarchy.c index 915cc9ecb..33e3f0720 100644 --- a/swad_hierarchy.c +++ b/swad_hierarchy.c @@ -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); diff --git a/swad_indicator.c b/swad_indicator.c index 2e938a570..92dcffdb2 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -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&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&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 (); diff --git a/swad_log.c b/swad_log.c index e0b583539..5d9a65815 100644 --- a/swad_log.c +++ b/swad_log.c @@ -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) diff --git a/swad_mail.c b/swad_mail.c index 6348220bf..db908ed4a 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -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); diff --git a/swad_match.c b/swad_match.c index d689cdda1..b5af16a0e 100644 --- a/swad_match.c +++ b/swad_match.c @@ -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 ("","fas fa-check-circle"); HTM_TxtF (" %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 ("", Answered ? "fas fa-check-circle" : "fas fa-exclamation-circle", diff --git a/swad_message.c b/swad_message.c index c5ef8bac3..c63a0a3e5 100644 --- a/swad_message.c +++ b/swad_message.c @@ -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 (); diff --git a/swad_network.c b/swad_network.c index bd61450ec..9670e3160 100644 --- a/swad_network.c +++ b/swad_network.c @@ -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 (); diff --git a/swad_photo.c b/swad_photo.c index 0d3f5f2a1..377f3a425 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -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,"
" + if (asprintf (&Caption.Nick,"
" "@%s" "
", + 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,"
" + if (asprintf (&Caption.InsCty,"
" "%s (%s)" "
", + 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,"
" + if (asprintf (&Caption.InsCty,"
" "%s" "
", - 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,"
" - "
" + if (asprintf (&Caption.MainDeg,"
" + "
" "%s" "
" "
", - 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, "" "%u" "" - "" + "" " %s " "" "" "%u" "" - "" + "" " %s" "" "
", 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 ",NumStds); HTM_SPAN_End (); - HTM_SPAN_Begin ("class=\"DAT_SMALL\""); + HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatSmall[Gbl.Prefs.Theme]); HTM_TxtF ("(%d %s, %d%%)", NumStdsWithPhoto,Txt_photos, NumStds > 0 ? (int) (((NumStdsWithPhoto * 100.0) / NumStds) + 0.5) : diff --git a/swad_profile.c b/swad_profile.c index a77556fa7..917d55f85 100644 --- a/swad_profile.c +++ b/swad_profile.c @@ -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) { diff --git a/swad_question.c b/swad_question.c index 9f6b728ad..45158e373 100644 --- a/swad_question.c +++ b/swad_question.c @@ -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 ",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 ",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 ",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 ",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 ",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\"" : diff --git a/swad_question_import.c b/swad_question_import.c index fa9717a45..592683c86 100644 --- a/swad_question_import.c +++ b/swad_question_import.c @@ -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 ",++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) { diff --git a/swad_record.c b/swad_record.c index b069608cb..8797f5b96 100644 --- a/swad_record.c +++ b/swad_record.c @@ -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\"", diff --git a/swad_statistic.c b/swad_statistic.c index 365de7a6b..0cbf32d4f 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -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 ("

%s: %s

", + HTM_TxtF ("

%s: %s

", + 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) diff --git a/swad_survey.c b/swad_survey.c index 4f81664ac..5d2e3c960 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -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 (); diff --git a/swad_tag.c b/swad_tag.c index 90ee5dca0..c09bbda75 100644 --- a/swad_tag.c +++ b/swad_tag.c @@ -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 (); } diff --git a/swad_test_print.c b/swad_test_print.c index 48db49e53..a4ff7dc95 100644 --- a/swad_test_print.c +++ b/swad_test_print.c @@ -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 (); } diff --git a/swad_theme.c b/swad_theme.c index 03d8f982b..fd2cbd63d 100644 --- a/swad_theme.c +++ b/swad_theme.c @@ -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", diff --git a/swad_timetable.c b/swad_timetable.c index 1ae32f527..713e9448c 100644 --- a/swad_timetable.c +++ b/swad_timetable.c @@ -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, diff --git a/swad_user.c b/swad_user.c index e1156281e..d96721db5 100644 --- a/swad_user.c +++ b/swad_user.c @@ -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,