Version 21.83.5: Mar 15, 2022 Working on design of dark theme.

This commit is contained in:
acanas 2022-03-15 14:38:07 +01:00
parent 2073965f8b
commit 67aa38a867
3 changed files with 83 additions and 63 deletions

View File

@ -3460,38 +3460,58 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
line-height:100%; line-height:100%;
letter-spacing:0; letter-spacing:0;
} }
.Tmt_DAY .Tmt_DAY
{ {
font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif;
color:#202020;
font-size:10pt; font-size:10pt;
letter-spacing:0; letter-spacing:0;
} }
.Tmt_SUNDAY
.Tmt_DAY_WHITE {color:#202020;}
.Tmt_DAY_GREY {color:#202020;}
.Tmt_DAY_PURPLE {color:#202020;}
.Tmt_DAY_BLUE {color:#202020;}
.Tmt_DAY_YELLOW {color:#202020;}
.Tmt_DAY_PINK {color:#202020;}
.Tmt_DAY_DARK {color:#e0e0e0;}
.Tmt_SUNDAY_WHITE {color:#660000;}
.Tmt_SUNDAY_GREY {color:#660000;}
.Tmt_SUNDAY_PURPLE {color:#660000;}
.Tmt_SUNDAY_BLUE {color:#660000;}
.Tmt_SUNDAY_YELLOW {color:#660000;}
.Tmt_SUNDAY_PINK {color:#660000;}
.Tmt_SUNDAY_DARK {color:#ff8080;}
.Tmt_HOUR
{ {
font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; box-sizing:border-box;
color:red; height:32px;
font-size:10pt; width:7%;
letter-spacing:0;
}
.Tmt_HOUR_BIG
{
color:#808080;
font-size:10pt; font-size:10pt;
font-weight:bold; font-weight:bold;
line-height:100%; line-height:100%;
letter-spacing:0; letter-spacing:0;
} }
.Tmt_HOUR_SMALL
{ .Tmt_HOUR00_WHITE {color:#808080;}
font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; .Tmt_HOUR00_GREY {color:#808080;}
color:#A0A0A0; .Tmt_HOUR00_PURPLE {color:#808080;}
font-size:10pt; .Tmt_HOUR00_BLUE {color:#808080;}
line-height:100%; .Tmt_HOUR00_YELLOW {color:#808080;}
letter-spacing:0; .Tmt_HOUR00_PINK {color:#808080;}
} .Tmt_HOUR00_DARK {color:#d0d0d0;}
.Tmt_HOURXX_WHITE {color:#d0d0d0;}
.Tmt_HOURXX_GREY {color:#d0d0d0;}
.Tmt_HOURXX_PURPLE {color:#d0d0d0;}
.Tmt_HOURXX_BLUE {color:#d0d0d0;}
.Tmt_HOURXX_YELLOW {color:#d0d0d0;}
.Tmt_HOURXX_PINK {color:#d0d0d0;}
.Tmt_HOURXX_DARK {color:#808080;}
.Tmt_HOURCOL {box-sizing:border-box; height:16px; width:7%;} .Tmt_HOURCOL {box-sizing:border-box; height:16px; width:7%;}
.Tmt_HOUR {box-sizing:border-box; height:32px; width:7%;}
.Tmt_MINICOL {box-sizing:border-box; height:16px; width:2%;} .Tmt_MINICOL {box-sizing:border-box; height:16px; width:2%;}
.Tmt_ALIGN {box-sizing:border-box; height:16px; width:1%;} .Tmt_ALIGN {box-sizing:border-box; height:16px; width:1%;}
.Tmt_FREE0 {box-sizing:border-box; height:16px; background-color:#F4F2EA; border:solid 1px; border-color:#F4F2EA #E0D9C2 #EEEADC #F4F2EA;} .Tmt_FREE0 {box-sizing:border-box; height:16px; background-color:#F4F2EA; border:solid 1px; border-color:#F4F2EA #E0D9C2 #EEEADC #F4F2EA;}

View File

@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia. TODO: Attach pdf files in multimedia.
*/ */
#define Log_PLATFORM_VERSION "SWAD 21.83.4 (2022-03-11)" #define Log_PLATFORM_VERSION "SWAD 21.83.5 (2022-03-15)"
#define CSS_FILE "swad21.83.2.css" #define CSS_FILE "swad21.83.5.css"
#define JS_FILE "swad21.78.2.js" #define JS_FILE "swad21.78.2.js"
/* /*
Version 21.83.5: Mar 15, 2022 Working on design of dark theme. (323559 lines)
Version 21.83.4: Mar 11, 2022 Code refactoring in timetable. (323543 lines) Version 21.83.4: Mar 11, 2022 Code refactoring in timetable. (323543 lines)
Version 21.83.3: Mar 10, 2022 Code refactoring in timetable. (323527 lines) Version 21.83.3: Mar 10, 2022 Code refactoring in timetable. (323527 lines)
Version 21.83.2: Mar 10, 2022 Working on design of dark theme. (323488 lines) Version 21.83.2: Mar 10, 2022 Working on design of dark theme. (323488 lines)

View File

@ -73,7 +73,6 @@ extern struct Globals Gbl;
#define Tmt_PERCENT_WIDTH_OF_A_DAY (Tmt_PERCENT_WIDTH_OF_A_MINICOLUMN * Tmt_NUM_MINICOLUMNS_PER_DAY) // Width (%) of each day #define Tmt_PERCENT_WIDTH_OF_A_DAY (Tmt_PERCENT_WIDTH_OF_A_MINICOLUMN * Tmt_NUM_MINICOLUMNS_PER_DAY) // Width (%) of each day
#define Tmt_PERCENT_WIDTH_OF_ALL_DAYS (Tmt_PERCENT_WIDTH_OF_A_DAY * Tmt_DAYS_PER_WEEK) // Width (%) of all days #define Tmt_PERCENT_WIDTH_OF_ALL_DAYS (Tmt_PERCENT_WIDTH_OF_A_DAY * Tmt_DAYS_PER_WEEK) // Width (%) of all days
#define Tmt_PERCENT_WIDTH_OF_A_SEPARATION_COLUMN 1 // Width (%) of left and right columns #define Tmt_PERCENT_WIDTH_OF_A_SEPARATION_COLUMN 1 // Width (%) of left and right columns
#define Tmt_PERCENT_WIDTH_OF_AN_HOUR_COLUMN ((100 - Tmt_PERCENT_WIDTH_OF_ALL_DAYS - Tmt_PERCENT_WIDTH_OF_A_SEPARATION_COLUMN * 2) / 2) // Width (%) of the separation columns
#define Tmt_MAX_BYTES_STR_CLASS_TYPE 256 #define Tmt_MAX_BYTES_STR_CLASS_TYPE 256
#define Tmt_MAX_BYTES_STR_DURATION 32 // "hh:mm h" #define Tmt_MAX_BYTES_STR_DURATION 32 // "hh:mm h"
@ -129,7 +128,7 @@ static void Tmt_ModifTimeTable (struct Tmt_Timetable *Timetable);
static void Tmt_DrawTimeTable (const struct Tmt_Timetable *Timetable); static void Tmt_DrawTimeTable (const struct Tmt_Timetable *Timetable);
static void Tmt_TimeTableDrawAdjustRow (void); static void Tmt_TimeTableDrawAdjustRow (void);
static void Tmt_TimeTableDrawDaysCells (void); static void Tmt_TimeTableDrawDaysCells (void);
static void Tmt_TimeTableDrawHourCell (unsigned Hour,unsigned Min,const char *Align); static void Tmt_DrawHourCell (unsigned Hour,unsigned Min,const char *Align);
static unsigned Tmt_CalculateColsToDrawInCell (const struct Tmt_Timetable *Timetable, static unsigned Tmt_CalculateColsToDrawInCell (const struct Tmt_Timetable *Timetable,
bool TopCall, bool TopCall,
unsigned Weekday,unsigned Interval); unsigned Weekday,unsigned Interval);
@ -1008,21 +1007,11 @@ static void Tmt_DrawTimeTable (const struct Tmt_Timetable *Timetable)
/***** Row with day names *****/ /***** Row with day names *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
Tmt_DrawHourCell (Timetable->Config.Range.Hours.Start,0,"RM");
HTM_TD_Begin ("rowspan=\"2\" class=\"Tmt_HOUR_BIG RM\" style=\"width:%u%%;\"",
Tmt_PERCENT_WIDTH_OF_AN_HOUR_COLUMN);
HTM_TxtF ("%02u:00",Timetable->Config.Range.Hours.Start);
HTM_TD_End ();
Tmt_DrawCellAlignTimeTable (); Tmt_DrawCellAlignTimeTable ();
Tmt_TimeTableDrawDaysCells (); Tmt_TimeTableDrawDaysCells ();
Tmt_DrawCellAlignTimeTable (); Tmt_DrawCellAlignTimeTable ();
Tmt_DrawHourCell (Timetable->Config.Range.Hours.Start,0,"LM");
HTM_TD_Begin ("rowspan=\"2\" class=\"Tmt_HOUR_BIG LM\" style=\"width:%u%%;\"",
Tmt_PERCENT_WIDTH_OF_AN_HOUR_COLUMN);
HTM_TxtF ("%02u:00",Timetable->Config.Range.Hours.Start);
HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
/***** Get list of groups types and groups in this course *****/ /***** Get list of groups types and groups in this course *****/
@ -1041,10 +1030,10 @@ static void Tmt_DrawTimeTable (const struct Tmt_Timetable *Timetable)
/* Left hour:minutes cell */ /* Left hour:minutes cell */
if (WhichCell.Interval % 2) if (WhichCell.Interval % 2)
Tmt_TimeTableDrawHourCell (Timetable->Config.Range.Hours.Start + Tmt_DrawHourCell (Timetable->Config.Range.Hours.Start +
(WhichCell.Interval + 2) / Timetable->Config.IntervalsPerHour, (WhichCell.Interval + 2) / Timetable->Config.IntervalsPerHour,
Min, Min,
"RM"); "RM");
/* Empty column used to adjust height */ /* Empty column used to adjust height */
Tmt_DrawCellAlignTimeTable (); Tmt_DrawCellAlignTimeTable ();
@ -1121,10 +1110,10 @@ static void Tmt_DrawTimeTable (const struct Tmt_Timetable *Timetable)
/* Right hour:minutes cell */ /* Right hour:minutes cell */
if (WhichCell.Interval % 2) if (WhichCell.Interval % 2)
Tmt_TimeTableDrawHourCell (Timetable->Config.Range.Hours.Start + Tmt_DrawHourCell (Timetable->Config.Range.Hours.Start +
(WhichCell.Interval + 2) / Timetable->Config.IntervalsPerHour, (WhichCell.Interval + 2) / Timetable->Config.IntervalsPerHour,
Min, Min,
"LM"); "LM");
HTM_TR_End (); HTM_TR_End ();
} }
@ -1187,6 +1176,7 @@ static void Tmt_TimeTableDrawAdjustRow (void)
static void Tmt_TimeTableDrawDaysCells (void) static void Tmt_TimeTableDrawDaysCells (void)
{ {
extern const char *The_Colors[The_NUM_THEMES];
extern const char *Txt_DAYS_CAPS[7]; extern const char *Txt_DAYS_CAPS[7];
unsigned DayColumn; unsigned DayColumn;
unsigned Weekday; unsigned Weekday;
@ -1196,10 +1186,11 @@ static void Tmt_TimeTableDrawDaysCells (void)
DayColumn++) DayColumn++)
{ {
Weekday = (DayColumn + Gbl.Prefs.FirstDayOfWeek) % 7; Weekday = (DayColumn + Gbl.Prefs.FirstDayOfWeek) % 7;
HTM_TD_Begin ("colspan=\"%u\" class=\"%s CM\" style=\"width:%u%%;\"", HTM_TD_Begin ("colspan=\"%u\" class=\"Tmt_DAY %s%s CM\" style=\"width:%u%%;\"",
Tmt_NUM_MINICOLUMNS_PER_DAY, Tmt_NUM_MINICOLUMNS_PER_DAY,
Weekday == 6 ? "Tmt_SUNDAY" : // Sunday drawn in red Weekday == 6 ? "Tmt_SUNDAY_" : // Sunday drawn in red
"Tmt_DAY", // Monday to Saturday "Tmt_DAY_", // Monday to Saturday
The_Colors[Gbl.Prefs.Theme],
Tmt_PERCENT_WIDTH_OF_A_DAY); Tmt_PERCENT_WIDTH_OF_A_DAY);
HTM_Txt (Txt_DAYS_CAPS[Weekday]); HTM_Txt (Txt_DAYS_CAPS[Weekday]);
HTM_TD_End (); HTM_TD_End ();
@ -1210,11 +1201,14 @@ static void Tmt_TimeTableDrawDaysCells (void)
/****************** Draw cells with day names in a time table ****************/ /****************** Draw cells with day names in a time table ****************/
/*****************************************************************************/ /*****************************************************************************/
static void Tmt_TimeTableDrawHourCell (unsigned Hour,unsigned Min,const char *Align) static void Tmt_DrawHourCell (unsigned Hour,unsigned Min,const char *Align)
{ {
HTM_TD_Begin ("rowspan=\"2\" class=\"Tmt_HOUR %s %s\"", extern const char *The_Colors[The_NUM_THEMES];
Min ? "Tmt_HOUR_SMALL" :
"Tmt_HOUR_BIG", HTM_TD_Begin ("rowspan=\"2\" class=\"Tmt_HOUR %s_%s %s\"",
Min ? "Tmt_HOURXX" :
"Tmt_HOUR00",
The_Colors[Gbl.Prefs.Theme],
Align); Align);
HTM_TxtF ("%02u:%02u",Hour,Min); HTM_TxtF ("%02u:%02u",Hour,Min);
HTM_TD_End (); HTM_TD_End ();
@ -1530,11 +1524,6 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
/***** Form to modify this cell *****/ /***** Form to modify this cell *****/
Frm_BeginForm (NextAction[Timetable->View]); Frm_BeginForm (NextAction[Timetable->View]);
/***** Create unique string for this cell used in labels *****/
if (asprintf (&CellStr,"%02u%02u%02u",
WhichCell->Weekday,WhichCell->Interval,WhichCell->Column) < 0)
Err_NotEnoughMemoryExit ();
/***** Put hidden parameters *****/ /***** Put hidden parameters *****/
Par_PutHiddenParamUnsigned (NULL,"TTDay",WhichCell->Weekday ); Par_PutHiddenParamUnsigned (NULL,"TTDay",WhichCell->Weekday );
Par_PutHiddenParamUnsigned (NULL,"TTInt",WhichCell->Interval); Par_PutHiddenParamUnsigned (NULL,"TTInt",WhichCell->Interval);
@ -1542,7 +1531,8 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
/***** Class type *****/ /***** Class type *****/
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE, HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
"name=\"TTTyp\" class=\"Tmt_TYP\""); "name=\"TTTyp\" class=\"Tmt_TYP %s\"",
The_ClassInput[Gbl.Prefs.Theme]);
for (CT = (Tmt_ClassType_t) 0; for (CT = (Tmt_ClassType_t) 0;
CT <= (Tmt_ClassType_t) (Tmt_NUM_CLASS_TYPES - 1); CT <= (Tmt_ClassType_t) (Tmt_NUM_CLASS_TYPES - 1);
CT++) CT++)
@ -1565,7 +1555,7 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
Dur = (MaxDuration >= Timetable->Config.IntervalsPerHour) ? Timetable->Config.IntervalsPerHour : // MaxDuration >= 1h ==> Dur = 1h Dur = (MaxDuration >= Timetable->Config.IntervalsPerHour) ? Timetable->Config.IntervalsPerHour : // MaxDuration >= 1h ==> Dur = 1h
MaxDuration; // MaxDuration < 1h ==> Dur = MaxDuration MaxDuration; // MaxDuration < 1h ==> Dur = MaxDuration
if (asprintf (&TTDur,"%u:%02u", if (asprintf (&TTDur,"%u:%02u",
(Dur / Timetable->Config.IntervalsPerHour), // Hours (Dur / Timetable->Config.IntervalsPerHour), // Hours
(Dur % Timetable->Config.IntervalsPerHour) * (Dur % Timetable->Config.IntervalsPerHour) *
Timetable->Config.Range.MinutesPerInterval) < 0) // Minutes Timetable->Config.Range.MinutesPerInterval) < 0) // Minutes
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
@ -1576,7 +1566,8 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
{ {
/***** Class duration *****/ /***** Class duration *****/
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE, HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
"name=\"TTDur\" class=\"Tmt_DUR\""); "name=\"TTDur\" class=\"Tmt_DUR %s\"",
The_ClassInput[Gbl.Prefs.Theme]);
for (i = WhichCell->Interval + for (i = WhichCell->Interval +
Tmt_TimeTable[WhichCell->Weekday][WhichCell->Interval].Columns[WhichCell->Column].DurationIntervals; Tmt_TimeTable[WhichCell->Weekday][WhichCell->Interval].Columns[WhichCell->Column].DurationIntervals;
i < Timetable->Config.IntervalsPerDay; i < Timetable->Config.IntervalsPerDay;
@ -1602,6 +1593,13 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
} }
HTM_SELECT_End (); HTM_SELECT_End ();
/***** Create unique string for this cell used in labels *****/
if (asprintf (&CellStr,"%02u%02u%02u",
WhichCell->Weekday,
WhichCell->Interval,
WhichCell->Column) < 0)
Err_NotEnoughMemoryExit ();
if (Timetable->View == Tmt_CRS_EDIT) if (Timetable->View == Tmt_CRS_EDIT)
{ {
/***** Group *****/ /***** Group *****/
@ -1611,8 +1609,9 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
HTM_LABEL_End (); HTM_LABEL_End ();
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE, HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
"id=\"TTGrp%s\" name=\"TTGrp\"" "id=\"TTGrp%s\" name=\"TTGrp\""
" class=\"Tmt_GRP\"", " class=\"Tmt_GRP %s\"",
CellStr); CellStr,
The_ClassInput[Gbl.Prefs.Theme]);
HTM_OPTION (HTM_Type_STRING,"-1",GrpCod <= 0,false, HTM_OPTION (HTM_Type_STRING,"-1",GrpCod <= 0,false,
"%s",Txt_All_groups); "%s",Txt_All_groups);
for (NumGrpTyp = 0; for (NumGrpTyp = 0;
@ -1672,10 +1671,10 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
" class=\"Tmt_INF %s\"", " class=\"Tmt_INF %s\"",
CellStr,The_ClassInput[Gbl.Prefs.Theme]); CellStr,The_ClassInput[Gbl.Prefs.Theme]);
} }
}
/***** Free allocated unique string for this cell used in labels *****/ /***** Free allocated unique string for this cell used in labels *****/
free (CellStr); free (CellStr);
}
/***** End form *****/ /***** End form *****/
Frm_EndForm (); Frm_EndForm ();