Version19.31.40

This commit is contained in:
Antonio Cañas Vargas 2019-10-10 21:21:24 +02:00
parent 1c065cbf99
commit 9a2de95c02
13 changed files with 133 additions and 108 deletions

View File

@ -2118,7 +2118,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
Tbl_EndCell ();
/***** Write number of student in the list *****/
Tbl_StartCellAttr ("class=\"%s RIGHT_TOP COLOR%u\">",
Tbl_StartCellAttr ("class=\"%s RIGHT_TOP COLOR%u\"",
UsrDat->Accepted ? "DAT_N" :
"DAT",
Gbl.RowEvenOdd);
@ -2128,7 +2128,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
/***** Show student's photo *****/
if (Gbl.Usrs.Listing.WithPhotos)
{
Tbl_StartCellAttr ("class=\"LEFT_TOP COLOR%u\">",Gbl.RowEvenOdd);
Tbl_StartCellAttr ("class=\"LEFT_TOP COLOR%u\"",Gbl.RowEvenOdd);
ShowPhoto = Pho_ShowingUsrPhotoIsAllowed (UsrDat,PhotoURL);
Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL :
NULL,
@ -2137,7 +2137,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
}
/***** Write user's ID ******/
Tbl_StartCellAttr ("class=\"%s LEFT_TOP COLOR%u\">",
Tbl_StartCellAttr ("class=\"%s LEFT_TOP COLOR%u\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
Gbl.RowEvenOdd);
@ -3392,7 +3392,7 @@ static void Att_WriteRowUsrSeveralAttEvents (unsigned NumUsr,struct UsrData *Usr
}
/***** Write user's ID ******/
Tbl_StartCellAttr ("class=\"%s LEFT_MIDDLE COLOR%u\">",
Tbl_StartCellAttr ("class=\"%s LEFT_MIDDLE COLOR%u\"",
UsrDat->Accepted ? "DAT_SMALL_N" :
"DAT_SMALL",
Gbl.RowEvenOdd);

View File

@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.31.38 (2019-10-10)"
#define Log_PLATFORM_VERSION "SWAD 19.31.40 (2019-10-10)"
#define CSS_FILE "swad19.29.css"
#define JS_FILE "swad19.30.js"
/*
@ -496,6 +496,8 @@ ps2pdf source.ps destination.pdf
// TODO: En un TFG no preasignado con estudiante tiene que salir un triángulo amarillo
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
Version 19.31.40: Oct 10, 2019 Code refactoring in HTML tables. (246669 lines)
Version 19.31.39: Oct 10, 2019 Code refactoring in HTML tables. (246668 lines)
Version 19.31.38: Oct 10, 2019 Code refactoring in HTML tables. (246657 lines)
Version 19.31.37: Oct 10, 2019 Code refactoring in HTML tables. (246626 lines)
Version 19.31.36: Oct 10, 2019 Code refactoring in HTML tables. (246620 lines)

View File

@ -323,8 +323,6 @@ static void Crs_Configuration (bool PrintView)
Txt_Short_name);
Tbl_EndCell ();
Tbl_EndRow ();
Tbl_StartCellAttr ("class=\"DAT_N LEFT_MIDDLE\"");
if (!PrintView &&
Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM)
@ -345,6 +343,7 @@ static void Crs_Configuration (bool PrintView)
else // I can not edit course short name
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Crs.ShrtName);
Tbl_EndCell ();
Tbl_EndRow ();
/***** Course year *****/
@ -355,7 +354,7 @@ static void Crs_Configuration (bool PrintView)
fprintf (Gbl.F.Out,"<label for=\"OthCrsYear\" class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Year_OF_A_DEGREE);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (IsForm)
@ -380,6 +379,7 @@ static void Crs_Configuration (bool PrintView)
Gbl.Hierarchy.Crs.Year ? Txt_YEAR_OF_DEGREE[Gbl.Hierarchy.Crs.Year] :
Txt_Not_applicable);
Tbl_EndCell ();
Tbl_EndRow ();
if (!PrintView)
@ -391,7 +391,7 @@ static void Crs_Configuration (bool PrintView)
fprintf (Gbl.F.Out,"<label for=\"InsCrsCod\" class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Institutional_code);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (IsForm)
@ -410,6 +410,7 @@ static void Crs_Configuration (bool PrintView)
else
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Crs.InstitutionalCrsCod);
Tbl_EndCell ();
Tbl_EndRow ();
/***** Internal code of the course *****/
@ -417,11 +418,11 @@ static void Crs_Configuration (bool PrintView)
Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"%s:",Txt_Internal_code);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
fprintf (Gbl.F.Out,"%ld",Gbl.Hierarchy.Crs.CrsCod);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_EndRow ();
}
@ -431,7 +432,7 @@ static void Crs_Configuration (bool PrintView)
Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"%s:",Txt_Shortcut);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
fprintf (Gbl.F.Out,"<a href=\"%s/%s?crs=%ld\" class=\"DAT\" target=\"_blank\">"
@ -442,7 +443,7 @@ static void Crs_Configuration (bool PrintView)
Cfg_URL_SWAD_CGI,
Lan_STR_LANG_ID[Gbl.Prefs.Language],
Gbl.Hierarchy.Crs.CrsCod);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_EndRow ();
@ -453,7 +454,7 @@ static void Crs_Configuration (bool PrintView)
Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"%s:",Txt_QR_code);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
QR_LinkTo (250,"crs",Gbl.Hierarchy.Crs.CrsCod);
@ -476,7 +477,7 @@ static void Crs_Configuration (bool PrintView)
Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"%s:",Txt_Indicators);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
Frm_StartForm (ActReqStaCrs);
@ -495,6 +496,7 @@ static void Crs_Configuration (bool PrintView)
Gbl.Title);
Frm_EndForm ();
Tbl_EndCell ();
Tbl_EndRow ();
}
@ -527,11 +529,11 @@ static void Crs_ShowNumUsrsInCrs (Rol_Role_t Role)
Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
fprintf (Gbl.F.Out,"%s:",Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN]);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
fprintf (Gbl.F.Out,"%u",Gbl.Hierarchy.Crs.NumUsrs[Role]);
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_EndRow ();
}
@ -1297,22 +1299,22 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
Txt_COURSE_Without_users);
fprintf (Gbl.F.Out,"%s",Crs->NumUsrs[Rol_UNK] ? "&check;" :
"&nbsp;");
Tbl_EndRow ();
Tbl_EndCell ();
/* Institutional code of the course */
Tbl_StartCellAttr ("class=\"%s CENTER_MIDDLE %s\"",
TxtClassNormal,BgColor);
fprintf (Gbl.F.Out,"%s",Crs->InstitutionalCrsCod);
Tbl_EndRow ();
Tbl_EndCell ();
/* Course year */
Tbl_StartCellAttr ("class=\"%s CENTER_MIDDLE %s\">",
TxtClassNormal,BgColor);
fprintf (Gbl.F.Out,"%s",Txt_YEAR_OF_DEGREE[Crs->Year]);
Tbl_EndRow ();
Tbl_EndCell ();
/* Course full name */
Tbl_StartCellAttr ("class=\"%s LEFT_MIDDLE %s\">",
Tbl_StartCellAttr ("class=\"%s LEFT_MIDDLE %s\"",
TxtClassStrong,BgColor);
Frm_StartFormGoTo (ActSeeCrsInf);
Crs_PutParamCrsCod (Crs->CrsCod);
@ -1330,13 +1332,13 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
TxtClassNormal,BgColor);
fprintf (Gbl.F.Out,"%u",Crs->NumUsrs[Rol_TCH] +
Crs->NumUsrs[Rol_NET]);
Tbl_EndRow ();
Tbl_EndCell ();
/* Current number of students in this course */
Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE %s\"",
TxtClassNormal,BgColor);
fprintf (Gbl.F.Out,"%u",Crs->NumUsrs[Rol_STD]);
Tbl_EndRow ();
Tbl_EndCell ();
/* Course status */
StatusTxt = Crs_GetStatusTxtFromStatusBits (Crs->Status);
@ -1345,6 +1347,7 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
if (StatusTxt != Crs_STATUS_ACTIVE) // If active ==> do not show anything
fprintf (Gbl.F.Out,"%s",Txt_COURSE_STATUS[StatusTxt]);
Tbl_EndCell ();
Tbl_EndRow ();
}
}
@ -1503,7 +1506,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
/* Course code */
Tbl_StartCellAttr ("class=\"DAT CODE\"");
fprintf (Gbl.F.Out,"%ld",Crs->CrsCod);
Tbl_EndRow ();
Tbl_EndCell ();
/* Institutional code of the course */
Tbl_StartCellAttr ("class=\"DAT CENTER_MIDDLE\"");
@ -1626,6 +1629,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
else if (StatusTxt != Crs_STATUS_ACTIVE) // If active ==> do not show anything
fprintf (Gbl.F.Out,"%s",Txt_COURSE_STATUS[StatusTxt]);
Tbl_EndCell ();
Tbl_EndRow ();
}
}
@ -1717,11 +1721,11 @@ static void Crs_PutFormToCreateCourse (void)
/***** Column to remove course, disabled here *****/
Tbl_StartCellAttr ("class=\"BM\"");
Tbl_EndRow ();
Tbl_EndCell ();
/***** Course code *****/
Tbl_StartCellAttr ("class=\"CODE\"");
Tbl_EndRow ();
Tbl_EndCell ();
/***** Institutional code of the course *****/
Tbl_StartCellAttr ("class=\"CENTER_MIDDLE\"");
@ -1730,7 +1734,7 @@ static void Crs_PutFormToCreateCourse (void)
" class=\"INPUT_INS_CODE\" />",
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
Crs_EditingCrs->InstitutionalCrsCod);
Tbl_EndRow ();
Tbl_EndCell ();
/***** Year *****/
Tbl_StartCellAttr ("class=\"CENTER_MIDDLE\"");
@ -1744,7 +1748,7 @@ static void Crs_PutFormToCreateCourse (void)
"",
Txt_YEAR_OF_DEGREE[Year]);
fprintf (Gbl.F.Out,"</select>");
Tbl_EndRow ();
Tbl_EndCell ();
/***** Course short name *****/
Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
@ -1753,7 +1757,7 @@ static void Crs_PutFormToCreateCourse (void)
" class=\"INPUT_SHORT_NAME\""
" required=\"required\" />",
Hie_MAX_CHARS_SHRT_NAME,Crs_EditingCrs->ShrtName);
Tbl_EndRow ();
Tbl_EndCell ();
/***** Course full name *****/
Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
@ -1762,17 +1766,17 @@ static void Crs_PutFormToCreateCourse (void)
" class=\"INPUT_FULL_NAME\""
" required=\"required\" />",
Hie_MAX_CHARS_FULL_NAME,Crs_EditingCrs->FullName);
Tbl_EndRow ();
Tbl_EndCell ();
/***** Current number of teachers in this course *****/
Tbl_StartCellAttr ("class=\"DAT RIGHT_MIDDLE\"");
fprintf (Gbl.F.Out,"0");
Tbl_EndRow ();
Tbl_EndCell ();
/***** Current number of students in this course *****/
Tbl_StartCellAttr ("class=\"DAT RIGHT_MIDDLE\"");
fprintf (Gbl.F.Out,"0");
Tbl_EndRow ();
Tbl_EndCell ();
/***** Course requester *****/
Tbl_StartCellAttr ("class=\"DAT INPUT_REQUESTER LEFT_TOP\"");
@ -1781,7 +1785,7 @@ static void Crs_PutFormToCreateCourse (void)
/***** Course status *****/
Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
Tbl_EndRow ();
Tbl_EndCell ();
Tbl_EndRow ();
@ -3303,13 +3307,13 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
fprintf (Gbl.F.Out,"%s",
Accepted ? "&check;" :
"&cross;");
Tbl_EndRow ();
Tbl_EndCell ();
}
/***** Write number of course in this search *****/
Tbl_StartCellAttr ("class=\"%s RIGHT_TOP %s\"",StyleNoBR,BgColor);
fprintf (Gbl.F.Out,"%u",NumCrs);
Tbl_EndRow ();
Tbl_EndCell ();
/***** Write degree logo, degree short name (row[2])
and centre short name (row[6]) *****/
@ -3330,7 +3334,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
/***** Write year (row[4]) *****/
Tbl_StartCellAttr ("class=\"%s CENTER_TOP %s\"",Style,BgColor);
fprintf (Gbl.F.Out,"%s",Txt_YEAR_OF_DEGREE[Deg_ConvStrToYear (row[4])]);
Tbl_EndRow ();
Tbl_EndCell ();
/***** Write course full name (row[5]) *****/
Tbl_StartCellAttr ("class=\"%s LEFT_TOP %s\"",Style,BgColor);

View File

@ -1488,7 +1488,7 @@ static void Ins_ListInstitutionsForEdition (void)
Tbl_StartRow ();
/* Put icon to remove institution */
Tbl_StartCellAttr ("class=\"BM\">");
Tbl_StartCellAttr ("class=\"BM\"");
if (Ins->Ctrs.Num ||
Ins->NumUsrsWhoClaimToBelongToIns ||
Ins->NumUsrs || // Institution has centres or users ==> deletion forbidden

View File

@ -608,7 +608,7 @@ static void Prf_ShowNumClicks (const struct UsrData *UsrDat,
if (UsrFigures->NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum (Gbl.F.Out,
Str_WriteFloatNumToFile (Gbl.F.Out,
(float) UsrFigures->NumClicks /
(float) UsrFigures->NumDays);
fprintf (Gbl.F.Out,"/%s&nbsp;",Txt_day);
@ -650,7 +650,7 @@ static void Prf_ShowNumFileViews (const struct UsrData *UsrDat,
if (UsrFigures->NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum (Gbl.F.Out,
Str_WriteFloatNumToFile (Gbl.F.Out,
(float) UsrFigures->NumFileViews /
(float) UsrFigures->NumDays);
fprintf (Gbl.F.Out,"/%s)",Txt_day);
@ -689,7 +689,7 @@ static void Prf_ShowNumSocialPublications (const struct UsrData *UsrDat,
if (UsrFigures->NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum (Gbl.F.Out,
Str_WriteFloatNumToFile (Gbl.F.Out,
(float) UsrFigures->NumSocPub /
(float) UsrFigures->NumDays);
fprintf (Gbl.F.Out,"/%s)",Txt_day);
@ -728,7 +728,7 @@ static void Prf_ShowNumForumPosts (const struct UsrData *UsrDat,
if (UsrFigures->NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum (Gbl.F.Out,
Str_WriteFloatNumToFile (Gbl.F.Out,
(float) UsrFigures->NumForPst /
(float) UsrFigures->NumDays);
fprintf (Gbl.F.Out,"/%s)",Txt_day);
@ -767,7 +767,7 @@ static void Prf_ShowNumMessagesSent (const struct UsrData *UsrDat,
if (UsrFigures->NumDays > 0)
{
fprintf (Gbl.F.Out,"&nbsp;(");
Str_WriteFloatNum (Gbl.F.Out,
Str_WriteFloatNumToFile (Gbl.F.Out,
(float) UsrFigures->NumMsgSnt /
(float) UsrFigures->NumDays);
fprintf (Gbl.F.Out,"/%s)",Txt_day);
@ -1733,7 +1733,7 @@ void Prf_GetAndShowRankingClicksPerDay (void)
Prf_ShowUsrInRanking (&UsrDat,Rank);
Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE COLOR%u\" style=\"height:50px;\"",
Gbl.RowEvenOdd);
Str_WriteFloatNum (Gbl.F.Out,NumClicksPerDay);
Str_WriteFloatNumToFile (Gbl.F.Out,NumClicksPerDay);
Tbl_EndCell ();
Tbl_EndRow ();
}

View File

@ -649,7 +649,7 @@ static void Rep_WriteSectionUsrFigures (const struct Rep_Report *Report)
if (Report->UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Rep," (");
Str_WriteFloatNum (Gbl.F.Rep,
Str_WriteFloatNumToFile (Gbl.F.Rep,
(float) Report->UsrFigures.NumClicks /
(float) Report->UsrFigures.NumDays);
fprintf (Gbl.F.Rep," / %s)",Txt_day);
@ -684,7 +684,7 @@ static void Rep_WriteSectionUsrFigures (const struct Rep_Report *Report)
if (Report->UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Rep," (");
Str_WriteFloatNum (Gbl.F.Rep,
Str_WriteFloatNumToFile (Gbl.F.Rep,
(float) Report->UsrFigures.NumFileViews /
(float) Report->UsrFigures.NumDays);
fprintf (Gbl.F.Rep," / %s)",Txt_day);
@ -705,7 +705,7 @@ static void Rep_WriteSectionUsrFigures (const struct Rep_Report *Report)
if (Report->UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Rep," (");
Str_WriteFloatNum (Gbl.F.Rep,
Str_WriteFloatNumToFile (Gbl.F.Rep,
(float) Report->UsrFigures.NumForPst /
(float) Report->UsrFigures.NumDays);
fprintf (Gbl.F.Rep," / %s)",Txt_day);
@ -726,7 +726,7 @@ static void Rep_WriteSectionUsrFigures (const struct Rep_Report *Report)
if (Report->UsrFigures.NumDays > 0)
{
fprintf (Gbl.F.Rep," (");
Str_WriteFloatNum (Gbl.F.Rep,
Str_WriteFloatNumToFile (Gbl.F.Rep,
(float) Report->UsrFigures.NumMsgSnt /
(float) Report->UsrFigures.NumDays);
fprintf (Gbl.F.Rep," / %s)",Txt_day);
@ -1372,7 +1372,7 @@ static void Rep_DrawBarNumHits (unsigned long HitsNum,unsigned long HitsMax,
/***** Write the number of hits *****/
fprintf (Gbl.F.Rep,"&nbsp;");
Str_WriteFloatNum (Gbl.F.Rep,HitsNum);
Str_WriteFloatNumToFile (Gbl.F.Rep,HitsNum);
}
}

View File

@ -1923,7 +1923,7 @@ static void Sta_ShowNumHitsPerUsr (unsigned long NumRows,MYSQL_RES *mysql_res)
UsrDat.Roles.InCurrentCrs.Role == Rol_STD ? 'o' : // Student
'r', // Non-editing teacher or teacher
BarWidth);
Str_WriteFloatNum (Gbl.F.Out,Hits.Num);
Str_WriteFloatNumToFile (Gbl.F.Out,Hits.Num);
fprintf (Gbl.F.Out,"&nbsp;");
Tbl_EndCell ();
@ -2402,14 +2402,14 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,float HitsMax)
Tbl_StartCellAttr ("colspan=\"%u\" class=\"LOG CENTER_BOTTOM\" style=\"width:%upx;\"",
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5,
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5);
Str_WriteFloatNum (Gbl.F.Out,(float) Interval * HitsMax / 5.0);
Str_WriteFloatNumToFile (Gbl.F.Out,(float) Interval * HitsMax / 5.0);
Tbl_EndCell ();
}
Tbl_StartCellAttr ("colspan=\"%u\" class=\"LOG RIGHT_BOTTOM\" style=\"width:%upx;\"",
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2,
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2);
Str_WriteFloatNum (Gbl.F.Out,HitsMax);
Str_WriteFloatNumToFile (Gbl.F.Out,HitsMax);
Tbl_EndCell ();
Tbl_EndRow ();
@ -2422,7 +2422,8 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,float HitsMax)
NumColor++)
{
Sta_SetColor (ColorType,(float) NumColor,(float) GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH,&R,&G,&B);
Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\" style=\"width:1px; background-color:#%02X%02X%02X;\">",
Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\""
" style=\"width:1px; background-color:#%02X%02X%02X;\"",
R,G,B);
fprintf (Gbl.F.Out,"<img src=\"%s/tr1x14.gif\" alt=\"\" title=\"\" />",
Cfg_URL_ICON_PUBLIC);
@ -2442,22 +2443,31 @@ static void Sta_DrawAccessesPerHourForADay (Sta_ColorType_t ColorType,float Hits
unsigned R;
unsigned G;
unsigned B;
char *Str;
for (Hour = 0;
Hour < 24;
Hour++)
{
/***** Set color depending on hits *****/
Sta_SetColor (ColorType,HitsNum[Hour],HitsMax,&R,&G,&B);
fprintf (Gbl.F.Out,"<td class=\"LOG LEFT_MIDDLE\" title=\"");
Str_WriteFloatNum (Gbl.F.Out,HitsNum[Hour]);
fprintf (Gbl.F.Out,"\" style=\"width:%upx; background-color:#%02X%02X%02X;\">",
GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH,R,G,B);
/***** Write from floating point number to string *****/
Str_FloatNumToStr (&Str,HitsNum[Hour]);
/***** Write cell *****/
Tbl_StartCellAttr ("class=\"LOG LEFT_MIDDLE\" title=\"%s\""
" style=\"width:%upx; background-color:#%02X%02X%02X;\"",
Str,GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH,R,G,B);
Tbl_EndCell ();
/***** Free memory allocated for string *****/
free ((void *) Str);
}
}
/*****************************************************************************/
/************************* Set color depending on ratio **********************/
/************************* Set color depending on hits ***********************/
/*****************************************************************************/
// Hits.Max must be > 0
/*
@ -2925,7 +2935,7 @@ static void Sta_WriteAccessHour (unsigned Hour,struct Sta_Hits *Hits,unsigned Co
fprintf (Gbl.F.Out,"%u%%<br />",
(unsigned) (((Hits->Num * 100.0) /
Hits->Total) + 0.5));
Str_WriteFloatNum (Gbl.F.Out,Hits->Num);
Str_WriteFloatNumToFile (Gbl.F.Out,Hits->Num);
fprintf (Gbl.F.Out,"<br />");
BarHeight = (unsigned) (((Hits->Num * 500.0) / Hits->Max) + 0.5);
if (BarHeight == 0)
@ -3995,7 +4005,7 @@ static void Sta_DrawBarNumHits (char Color,
Cfg_URL_ICON_PUBLIC,Color,BarWidth);
/***** Write the number of hits *****/
Str_WriteFloatNum (Gbl.F.Out,HitsNum);
Str_WriteFloatNumToFile (Gbl.F.Out,HitsNum);
fprintf (Gbl.F.Out,"&nbsp;(%u",
(unsigned) (((HitsNum * 100.0) /
HitsTotal) + 0.5));

View File

@ -25,10 +25,12 @@
/********************************* Headers ***********************************/
/*****************************************************************************/
#define _GNU_SOURCE // For asprintf
#include <linux/stddef.h> // For NULL
#include <ctype.h> // For isprint, isspace, etc.
#include <locale.h> // For setlocale
#include <math.h> // For log10, floor, ceil, modf, sqrt...
#include <stdio.h> // For asprintf
#include <stdlib.h> // For malloc and free
#include <string.h> // For string functions
@ -878,10 +880,29 @@ char Str_ConvertToLowerLetter (char Ch)
}
/*****************************************************************************/
/******** Write a number in floating point with the correct accuracy *********/
/*** Write a number in floating point with the correct accuracy to a file ****/
/*****************************************************************************/
void Str_WriteFloatNum (FILE *FileDst,float Number)
void Str_WriteFloatNumToFile (FILE *FileDst,float Number)
{
char *Str;
/***** Write from floating point number to string *****/
Str_FloatNumToStr (&Str,Number);
/***** Write number from string to file *****/
fprintf (FileDst,"%s",Str);
/***** Free memory allocated for string *****/
free ((void *) Str);
}
/*****************************************************************************/
/** Write a number in floating point with the correct accuracy to a string ***/
/*****************************************************************************/
// Str should be freed after calling this function
void Str_FloatNumToStr (char **Str,float Number)
{
double IntegerPart;
double FractionaryPart;
@ -890,7 +911,10 @@ void Str_WriteFloatNum (FILE *FileDst,float Number)
FractionaryPart = modf ((double) Number,&IntegerPart);
if (FractionaryPart == 0.0)
fprintf (FileDst,"%.0f",IntegerPart);
{
if (asprintf (Str,"%.0f",IntegerPart) < 0)
Lay_NotEnoughMemoryExit ();
}
else
{
if (IntegerPart != 0.0)
@ -907,7 +931,8 @@ void Str_WriteFloatNum (FILE *FileDst,float Number)
Format = "%.6f";
else
Format = "%e";
fprintf (FileDst,Format,Number);
if (asprintf (Str,Format,Number) < 0)
Lay_NotEnoughMemoryExit ();
}
}

View File

@ -92,7 +92,8 @@ char *Str_ConvertToLowerText (char *Str);
char Str_ConvertToUpperLetter (char Ch);
char Str_ConvertToLowerLetter (char Ch);
void Str_WriteFloatNum (FILE *FileDst,float Number);
void Str_WriteFloatNumToFile (FILE *FileDst,float Number);
void Str_FloatNumToStr (char **Str,float Number);
void Str_ConvertStrFloatCommaToStrFloatPoint (char *Str);
float Str_GetFloatNumFromStr (const char *Str);
void Str_SetDecimalPointToUS (void);

View File

@ -913,7 +913,7 @@ static void Syl_PutFormItemSyllabus (bool NewItem,unsigned NumItem,int Level,int
}
/***** Text of the item *****/
Tbl_StartCellAttr ("colspan=\"%d\" class=\"LEFT_MIDDLE COLOR%u\">",
Tbl_StartCellAttr ("colspan=\"%d\" class=\"LEFT_MIDDLE COLOR%u\"",
LstItemsSyllabus.NumLevels - Level + 1,Gbl.RowEvenOdd);
Frm_StartForm (NewItem ? (Gbl.Crs.Info.Type == Inf_LECTURES ? ActInsIteSylLec :
ActInsIteSylPra) :

View File

@ -79,8 +79,7 @@ void Tbl_StartTableClass (const char *fmt,...)
Lay_NotEnoughMemoryExit ();
/***** Print HTML *****/
fprintf (Gbl.F.Out,
"<table class=\"%s\">",Class);
fprintf (Gbl.F.Out,"<table class=\"%s\">",Class);
free ((void *) Class);
}
@ -94,8 +93,7 @@ void Tbl_StartTableClass (const char *fmt,...)
void Tbl_StartTablePadding (unsigned CellPadding)
{
if (CellPadding)
fprintf (Gbl.F.Out,
"<table class=\"CELLS_PAD_%u\">",
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_%u\">",
CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
else
Tbl_StartTable ();
@ -103,15 +101,13 @@ void Tbl_StartTablePadding (unsigned CellPadding)
void Tbl_StartTable (void)
{
fprintf (Gbl.F.Out,
"<table>");
fprintf (Gbl.F.Out,"<table>");
}
void Tbl_StartTableCenterPadding (unsigned CellPadding)
{
if (CellPadding)
fprintf (Gbl.F.Out,
"<table class=\"FRAME_TBL_CENTER CELLS_PAD_%u\">",
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_CENTER CELLS_PAD_%u\">",
CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
else
Tbl_StartTableCenter ();
@ -119,15 +115,13 @@ void Tbl_StartTableCenterPadding (unsigned CellPadding)
void Tbl_StartTableCenter (void)
{
fprintf (Gbl.F.Out,
"<table class=\"FRAME_TBL_CENTER\">");
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_CENTER\">");
}
void Tbl_StartTableWidePadding (unsigned CellPadding)
{
if (CellPadding)
fprintf (Gbl.F.Out,
"<table class=\"FRAME_TBL_WIDE CELLS_PAD_%u\">",
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE CELLS_PAD_%u\">",
CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
else
Tbl_StartTableWide ();
@ -135,15 +129,13 @@ void Tbl_StartTableWidePadding (unsigned CellPadding)
void Tbl_StartTableWide (void)
{
fprintf (Gbl.F.Out,
"<table class=\"FRAME_TBL_WIDE\">");
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE\">");
}
void Tbl_StartTableWideMarginPadding (unsigned CellPadding)
{
if (CellPadding)
fprintf (Gbl.F.Out,
"<table class=\"FRAME_TBL_WIDE_MARGIN CELLS_PAD_%u\">",
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE_MARGIN CELLS_PAD_%u\">",
CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
else
Tbl_StartTableWideMargin ();
@ -151,14 +143,12 @@ void Tbl_StartTableWideMarginPadding (unsigned CellPadding)
void Tbl_StartTableWideMargin (void)
{
fprintf (Gbl.F.Out,
"<table class=\"FRAME_TBL_WIDE_MARGIN\">");
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_WIDE_MARGIN\">");
}
void Tbl_EndTable (void)
{
fprintf (Gbl.F.Out,
"</table>");
fprintf (Gbl.F.Out,"</table>");
}
/*****************************************************************************/
@ -185,8 +175,7 @@ void Tbl_StartRowAttr (const char *fmt,...)
Lay_NotEnoughMemoryExit ();
/***** Print HTML *****/
fprintf (Gbl.F.Out,
"<tr %s>",Attr);
fprintf (Gbl.F.Out,"<tr %s>",Attr);
free ((void *) Attr);
}
@ -199,14 +188,12 @@ void Tbl_StartRowAttr (const char *fmt,...)
void Tbl_StartRow (void)
{
fprintf (Gbl.F.Out,
"<tr>");
fprintf (Gbl.F.Out,"<tr>");
}
void Tbl_EndRow (void)
{
fprintf (Gbl.F.Out,
"</tr>");
fprintf (Gbl.F.Out,"</tr>");
}
/*****************************************************************************/
@ -233,8 +220,7 @@ void Tbl_StartCellAttr (const char *fmt,...)
Lay_NotEnoughMemoryExit ();
/***** Print HTML *****/
fprintf (Gbl.F.Out,
"<td %s>",Attr);
fprintf (Gbl.F.Out,"<td %s>",Attr);
free ((void *) Attr);
}
@ -247,14 +233,12 @@ void Tbl_StartCellAttr (const char *fmt,...)
void Tbl_StartCell (void)
{
fprintf (Gbl.F.Out,
"<td>");
fprintf (Gbl.F.Out,"<td>");
}
void Tbl_EndCell (void)
{
fprintf (Gbl.F.Out,
"</td>");
fprintf (Gbl.F.Out,"</td>");
}
void Tbl_PutEmptyCells (unsigned NumColumns)
@ -264,8 +248,7 @@ void Tbl_PutEmptyCells (unsigned NumColumns)
for (NumCol = 0;
NumCol < NumColumns;
NumCol++)
fprintf (Gbl.F.Out,
"<td></td>");
fprintf (Gbl.F.Out,"<td></td>");
}
void Tbl_PutEmptyColouredCells (unsigned NumColumns)
@ -275,7 +258,6 @@ void Tbl_PutEmptyColouredCells (unsigned NumColumns)
for (NumCol = 0;
NumCol < NumColumns;
NumCol++)
fprintf (Gbl.F.Out,
"<td class=\"COLOR%u\"></td>",
fprintf (Gbl.F.Out,"<td class=\"COLOR%u\"></td>",
Gbl.RowEvenOdd);
}

View File

@ -1492,22 +1492,22 @@ static void TT_TimeTableDrawCell (unsigned Weekday,unsigned Interval,unsigned Co
/* Create rowspan, colspan and class strings */
if (RowSpan > 1)
{
if (asprintf (&RowSpanStr,"%s","") < 0)
if (asprintf (&RowSpanStr,"rowspan=\"%u\" ",RowSpan) < 0)
Lay_NotEnoughMemoryExit ();
}
else
{
if (asprintf (&RowSpanStr,"rowspan=\"%u\" ",RowSpan) < 0)
if (asprintf (&RowSpanStr,"%s","") < 0)
Lay_NotEnoughMemoryExit ();
}
if (ColSpan > 1)
{
if (asprintf (&ColSpanStr,"%s","") < 0)
if (asprintf (&ColSpanStr,"colspan=\"%u\" ",ColSpan) < 0)
Lay_NotEnoughMemoryExit ();
}
else
{
if (asprintf (&ColSpanStr,"colspan=\"%u\" ",ColSpan) < 0)
if (asprintf (&ColSpanStr,"%s","") < 0)
Lay_NotEnoughMemoryExit ();
}
if (ClassType == TT_FREE)

View File

@ -8943,16 +8943,17 @@ static void Usr_DrawClassPhoto (Usr_ClassPhotoType_t ClassPhotoType,
ID_GetListIDsFromUsrCod (&UsrDat);
/***** Begin user's cell *****/
fprintf (Gbl.F.Out,"<td class=\"CLASSPHOTO CENTER_BOTTOM");
if (ClassPhotoType == Usr_CLASS_PHOTO_SEL &&
UsrDat.UsrCod == Gbl.Usrs.Other.UsrDat.UsrCod)
{
UsrIsTheMsgSender = true;
fprintf (Gbl.F.Out," LIGHT_GREEN");
Tbl_StartCellAttr ("class=\"CLASSPHOTO CENTER_BOTTOM LIGHT_GREEN\"");
}
else
{
UsrIsTheMsgSender = false;
fprintf (Gbl.F.Out,"\">");
Tbl_StartCellAttr ("class=\"CLASSPHOTO CENTER_BOTTOM\"");
}
/***** Checkbox to select this user *****/
if (PutCheckBoxToSelectUsr)