diff --git a/swad_changelog.h b/swad_changelog.h index 92a8669ed..3d876f9cf 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -148,13 +148,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.17.10 (2016-10-09)" +#define Log_PLATFORM_VERSION "SWAD 16.17.11 (2016-10-09)" #define CSS_FILE "swad15.229.css" #define JS_FILE "swad15.238.1.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1 /* + Version 16.17.11: Oct 09, 2016 Code refactoring in user's usage report. (206279 lines) Version 16.17.10: Oct 09, 2016 Code refactoring in user's usage report. (206285 lines) Version 16.17.9: Oct 08, 2016 Code refactoring in user's usage report. (206286 lines) Version 16.17.8: Oct 08, 2016 Code refactoring in user's usage report. (206289 lines) diff --git a/swad_report.c b/swad_report.c index 6e808c3e6..e371e49e3 100644 --- a/swad_report.c +++ b/swad_report.c @@ -113,9 +113,7 @@ static void Rep_CreateNewReportEntryIntoDB (const struct Rep_Report *Report); static void Rep_WriteHeader (const struct Rep_Report *Report); static void Rep_WriteSectionPlatform (void); static void Rep_WriteSectionUsrInfo (void); -static void Rep_WriteSectionUsrFigures (const struct UsrFigures *UsrFigures, - const struct tm *tm_FirstClickTime, - const struct Rep_CurrentTimeUTC *CurrentTimeUTC); +static void Rep_WriteSectionUsrFigures (const struct Rep_Report *Report); static void Rep_WriteSectionHitsPerAction (const struct UsrFigures *UsrFigures); static void Rep_WriteSectionGlobalHits (const struct UsrFigures *UsrFigures, const struct tm *tm_FirstClickTime); @@ -239,7 +237,7 @@ static void Rep_CreateMyUsageReport (struct Rep_Report *Report) Prf_GetUsrFigures (Gbl.Usrs.Me.UsrDat.UsrCod,&Report->UsrFigures); if (Report->UsrFigures.FirstClickTimeUTC) gmtime_r (&Report->UsrFigures.FirstClickTimeUTC,&Report->tm_FirstClickTime); - Rep_WriteSectionUsrFigures (&Report->UsrFigures,&Report->tm_FirstClickTime,&Report->CurrentTimeUTC); + Rep_WriteSectionUsrFigures (Report); /***** Global count of hits *****/ Rep_WriteSectionGlobalHits (&Report->UsrFigures,&Report->tm_FirstClickTime); @@ -578,9 +576,7 @@ static void Rep_WriteSectionUsrInfo (void) /********* Write section for user's figures in user's usage report ***********/ /*****************************************************************************/ -static void Rep_WriteSectionUsrFigures (const struct UsrFigures *UsrFigures, - const struct tm *tm_FirstClickTime, - const struct Rep_CurrentTimeUTC *CurrentTimeUTC) +static void Rep_WriteSectionUsrFigures (const struct Rep_Report *Report) { extern const char *Txt_Figures; extern const char *Txt_TIME_Since; @@ -612,50 +608,47 @@ static void Rep_WriteSectionUsrFigures (const struct UsrFigures *UsrFigures, /***** Time since first click until now *****/ fprintf (Gbl.F.Rep,"
  • %s ",Txt_TIME_Since); - if (UsrFigures->FirstClickTimeUTC) + if (Report->UsrFigures.FirstClickTimeUTC) { - if (tm_FirstClickTime != NULL) - { - fprintf (Gbl.F.Rep,"%04d-%02d-%02d %02d:%02d:%02d UTC", - 1900 + tm_FirstClickTime->tm_year, // year - 1 + tm_FirstClickTime->tm_mon, // month - tm_FirstClickTime->tm_mday, // day of the month - tm_FirstClickTime->tm_hour, // hours - tm_FirstClickTime->tm_min, // minutes - tm_FirstClickTime->tm_sec); // seconds - if (CurrentTimeUTC->StrDate[0]) - fprintf (Gbl.F.Rep," %s %s %s UTC", - Txt_TIME_until, - CurrentTimeUTC->StrDate, - CurrentTimeUTC->StrTime); - if (UsrFigures->NumDays > 0) - fprintf (Gbl.F.Rep," (%d %s)", - UsrFigures->NumDays, - (UsrFigures->NumDays == 1) ? Txt_day : - Txt_days); - } + fprintf (Gbl.F.Rep,"%04d-%02d-%02d %02d:%02d:%02d UTC", + 1900 + Report->tm_FirstClickTime.tm_year, // year + 1 + Report->tm_FirstClickTime.tm_mon, // month + Report->tm_FirstClickTime.tm_mday, // day of the month + Report->tm_FirstClickTime.tm_hour, // hours + Report->tm_FirstClickTime.tm_min, // minutes + Report->tm_FirstClickTime.tm_sec); // seconds + if (Report->CurrentTimeUTC.StrDate[0]) + fprintf (Gbl.F.Rep," %s %s %s UTC", + Txt_TIME_until, + Report->CurrentTimeUTC.StrDate, + Report->CurrentTimeUTC.StrTime); + if (Report->UsrFigures.NumDays > 0) + fprintf (Gbl.F.Rep," (%d %s)", + Report->UsrFigures.NumDays, + (Report->UsrFigures.NumDays == 1) ? Txt_day : + Txt_days); } else // Time of first click is unknown { fprintf (Gbl.F.Rep,"?"); - if (CurrentTimeUTC->StrDate[0]) + if (Report->CurrentTimeUTC.StrDate[0]) fprintf (Gbl.F.Rep," - %s %s UTC", - CurrentTimeUTC->StrDate, - CurrentTimeUTC->StrTime); + Report->CurrentTimeUTC.StrDate, + Report->CurrentTimeUTC.StrTime); } fprintf (Gbl.F.Rep,"
  • "); /***** Number of clicks *****/ fprintf (Gbl.F.Rep,"
  • %s: ",Txt_Clicks); - if (UsrFigures->NumClicks >= 0) + if (Report->UsrFigures.NumClicks >= 0) { - fprintf (Gbl.F.Rep,"%ld",UsrFigures->NumClicks); - if (UsrFigures->NumDays > 0) + fprintf (Gbl.F.Rep,"%ld",Report->UsrFigures.NumClicks); + if (Report->UsrFigures.NumDays > 0) { fprintf (Gbl.F.Rep," ("); Str_WriteFloatNum (Gbl.F.Rep, - (float) UsrFigures->NumClicks / - (float) UsrFigures->NumDays); + (float) Report->UsrFigures.NumClicks / + (float) Report->UsrFigures.NumDays); fprintf (Gbl.F.Rep," / %s)",Txt_day); } } @@ -679,18 +672,18 @@ static void Rep_WriteSectionUsrFigures (const struct UsrFigures *UsrFigures, /***** Number of file views *****/ fprintf (Gbl.F.Rep,"
  • %s: ",Txt_Downloads); - if (UsrFigures->NumFileViews >= 0) + if (Report->UsrFigures.NumFileViews >= 0) { fprintf (Gbl.F.Rep,"%ld %s", - UsrFigures->NumFileViews, - (UsrFigures->NumFileViews == 1) ? Txt_download : + Report->UsrFigures.NumFileViews, + (Report->UsrFigures.NumFileViews == 1) ? Txt_download : Txt_downloads); - if (UsrFigures->NumDays > 0) + if (Report->UsrFigures.NumDays > 0) { fprintf (Gbl.F.Rep," ("); Str_WriteFloatNum (Gbl.F.Rep, - (float) UsrFigures->NumFileViews / - (float) UsrFigures->NumDays); + (float) Report->UsrFigures.NumFileViews / + (float) Report->UsrFigures.NumDays); fprintf (Gbl.F.Rep," / %s)",Txt_day); } } @@ -700,18 +693,18 @@ static void Rep_WriteSectionUsrFigures (const struct UsrFigures *UsrFigures, /***** Number of posts in forums *****/ fprintf (Gbl.F.Rep,"
  • %s: ",Txt_Forum_posts); - if (UsrFigures->NumForPst >= 0) + if (Report->UsrFigures.NumForPst >= 0) { fprintf (Gbl.F.Rep,"%ld %s", - UsrFigures->NumForPst, - (UsrFigures->NumForPst == 1) ? Txt_post : + Report->UsrFigures.NumForPst, + (Report->UsrFigures.NumForPst == 1) ? Txt_post : Txt_posts); - if (UsrFigures->NumDays > 0) + if (Report->UsrFigures.NumDays > 0) { fprintf (Gbl.F.Rep," ("); Str_WriteFloatNum (Gbl.F.Rep, - (float) UsrFigures->NumForPst / - (float) UsrFigures->NumDays); + (float) Report->UsrFigures.NumForPst / + (float) Report->UsrFigures.NumDays); fprintf (Gbl.F.Rep," / %s)",Txt_day); } } @@ -721,18 +714,18 @@ static void Rep_WriteSectionUsrFigures (const struct UsrFigures *UsrFigures, /***** Number of messages sent *****/ fprintf (Gbl.F.Rep,"
  • %s: ",Txt_Messages_sent); - if (UsrFigures->NumMsgSnt >= 0) + if (Report->UsrFigures.NumMsgSnt >= 0) { fprintf (Gbl.F.Rep,"%ld %s", - UsrFigures->NumMsgSnt, - (UsrFigures->NumMsgSnt == 1) ? Txt_message : - Txt_messages); - if (UsrFigures->NumDays > 0) + Report->UsrFigures.NumMsgSnt, + (Report->UsrFigures.NumMsgSnt == 1) ? Txt_message : + Txt_messages); + if (Report->UsrFigures.NumDays > 0) { fprintf (Gbl.F.Rep," ("); Str_WriteFloatNum (Gbl.F.Rep, - (float) UsrFigures->NumMsgSnt / - (float) UsrFigures->NumDays); + (float) Report->UsrFigures.NumMsgSnt / + (float) Report->UsrFigures.NumDays); fprintf (Gbl.F.Rep," / %s)",Txt_day); } }