mirror of https://github.com/acanas/swad-core.git
Version 21.95.5: May 12, 2022 Fixing design of dark theme.
This commit is contained in:
parent
8222a051cb
commit
c8430ea406
|
@ -110,7 +110,7 @@ a:link, a:visited, a:active
|
|||
}
|
||||
a:hover /* Default ==> underlined */
|
||||
{
|
||||
text-decoration:underline;
|
||||
text-decoration:underline; opacity:1;
|
||||
}
|
||||
|
||||
/****************** Layout (the whole page with a background) ****************/
|
||||
|
@ -1673,7 +1673,6 @@ a:hover img.CENTER_PHOTO_SHOW
|
|||
.BT_LINK:hover
|
||||
{
|
||||
cursor:pointer;
|
||||
/* text-decoration:underline; */
|
||||
}
|
||||
|
||||
/****************************** Course program *******************************/
|
||||
|
@ -3933,18 +3932,21 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
|
|||
}
|
||||
|
||||
/************************************* Log ***********************************/
|
||||
.LOG
|
||||
{
|
||||
font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif;
|
||||
font-size:11pt;
|
||||
color:#404040;
|
||||
}
|
||||
.LOG_R
|
||||
{
|
||||
font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif;
|
||||
font-size:11pt;
|
||||
color:red;
|
||||
}
|
||||
.LOG_WHITE,
|
||||
.LOG_GREY,
|
||||
.LOG_PURPLE,
|
||||
.LOG_BLUE,
|
||||
.LOG_YELLOW,
|
||||
.LOG_PINK {color:#404040; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;}
|
||||
.LOG_DARK {color:#d0d0d0; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;}
|
||||
|
||||
.LOG_R_WHITE,
|
||||
.LOG_R_GREY,
|
||||
.LOG_R_PURPLE,
|
||||
.LOG_R_BLUE,
|
||||
.LOG_R_YELLOW,
|
||||
.LOG_R_PINK {color:#660000; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;}
|
||||
.LOG_R_DARK {color:#ff8080; font-family:"Arial Narrow","Nimbus Sans L","DejaVu LGC Sans Condensed",sans-serif; font-size:11pt;}
|
||||
|
||||
/***************************** Exam announcement *****************************/
|
||||
/* Bottom space is used for signatures */
|
Binary file not shown.
Before Width: | Height: | Size: 81 B |
Binary file not shown.
Before Width: | Height: | Size: 130 B |
Binary file not shown.
Before Width: | Height: | Size: 161 B |
Binary file not shown.
After Width: | Height: | Size: 73 B |
Binary file not shown.
After Width: | Height: | Size: 102 B |
Binary file not shown.
After Width: | Height: | Size: 114 B |
|
@ -606,12 +606,19 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
|
|||
|
||||
TODO: Attach pdf files in multimedia.
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.95.4 (2022-05-12)"
|
||||
#define CSS_FILE "swad21.95.4.css"
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.95.5 (2022-05-12)"
|
||||
#define CSS_FILE "swad21.95.5.css"
|
||||
#define JS_FILE "swad21.92.js"
|
||||
/*
|
||||
Version 21.95.4: May 12, 2022 SWADroid image updated. (323445 lines)
|
||||
Version 21.95.5: May 12, 2022 Some messages translated.
|
||||
Fixing design of dark theme. (? lines)
|
||||
Copy the following icons to icon public directory:
|
||||
sudo cp icon/y30x1.png /var/www/html/swad/icon/
|
||||
sudo cp icon/y30x30.png /var/www/html/swad/icon/
|
||||
sudo cp icon/y30x60.png /var/www/html/swad/icon/
|
||||
|
||||
Version 21.95.4: May 12, 2022 SWADroid image updated. (323445 lines)
|
||||
Copy the following icon to icon public directory:
|
||||
sudo cp icon/SWADroid300x650.png /var/www/html/swad/icon/
|
||||
|
||||
Version 21.95.3: May 09, 2022 Fixed bug inserting automatic links. Reported by Javier Fernández Baldomero and others. (323439 lines)
|
||||
|
|
|
@ -242,6 +242,10 @@
|
|||
/* Email */
|
||||
#define Cfg_AUTOMATIC_EMAIL_PASSWORD DONT_PUBLISH_SMTP_PASSWORD // Email user's password for automatic emails
|
||||
|
||||
/* SWADroid */
|
||||
#define Cfg_SWADROID_URL "https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid"
|
||||
#define Cfg_SWADROID_ICO "SWADroid300x650.png"
|
||||
|
||||
/* About SWAD */
|
||||
#define Cfg_ABOUT_SWAD_URL "https://github.com/acanas/swad-core/wiki/UserGuide.en"
|
||||
|
||||
|
|
|
@ -1159,10 +1159,10 @@ static void Lay_ShowRightColumn (void)
|
|||
{
|
||||
/***** SWADroid advertisement *****/
|
||||
HTM_DIV_Begin ("class=\"LEFT_RIGHT_CELL\"");
|
||||
HTM_A_Begin ("href=\"https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid\""
|
||||
" target=\"_blank\" title=\"%s\"",
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" title=\"%s\"",
|
||||
Cfg_SWADROID_URL,
|
||||
Txt_If_you_have_an_Android_device_try_SWADroid);
|
||||
HTM_IMG (Cfg_URL_ICON_PUBLIC,"SWADroid300x650.png","SWADroid",
|
||||
HTM_IMG (Cfg_URL_ICON_PUBLIC,Cfg_SWADROID_ICO,NULL,
|
||||
"class=\"SWADROID\"");
|
||||
HTM_A_End ();
|
||||
HTM_DIV_End ();
|
||||
|
|
229
swad_statistic.c
229
swad_statistic.c
|
@ -133,9 +133,9 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType,
|
|||
static void Sta_ShowNumHitsPerHour (unsigned NumHits,
|
||||
MYSQL_RES *mysql_res);
|
||||
static void Sta_WriteAccessHour (unsigned Hour,struct Sta_Hits *Hits,unsigned ColumnWidth);
|
||||
static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_res);
|
||||
static void Sta_ShowNumHitsPerMinute (unsigned NumHits,MYSQL_RES *mysql_res);
|
||||
static void Sta_WriteLabelsXAxisAccMin (double IncX,const char *Format);
|
||||
static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX);
|
||||
static void Sta_WriteHitsMinute (unsigned Minute,double HitsNum,double MaxX);
|
||||
static void Sta_ShowNumHitsPerAction (Sta_CountType_t CountTypes,
|
||||
unsigned NumHits,
|
||||
MYSQL_RES *mysql_res);
|
||||
|
@ -780,7 +780,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
/***** Set table where to find depending on initial date *****/
|
||||
/* If initial day is older than current day minus Cfg_DAYS_IN_RECENT_LOG,
|
||||
then use recent log table, else use historic log table */
|
||||
LogTable = (Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.Now.Date)
|
||||
LogTable = (Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,
|
||||
&Gbl.Now.Date)
|
||||
<= Cfg_DAYS_IN_RECENT_LOG) ? "log_recent" :
|
||||
"log";
|
||||
|
||||
|
@ -902,7 +903,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
}
|
||||
|
||||
/***** Check if range of dates is forbidden for me *****/
|
||||
NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.DateRange.DateEnd.Date);
|
||||
NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,
|
||||
&Gbl.DateRange.DateEnd.Date);
|
||||
ICanQueryWholeRange = (Gbl.Usrs.Me.Role.Logged >= Rol_TCH && Stats.GlobalOrCourse == Sta_SHOW_COURSE_ACCESSES) ||
|
||||
(Gbl.Usrs.Me.Role.Logged == Rol_TCH && Gbl.Scope.Current == HieLvl_CRS) ||
|
||||
(Gbl.Usrs.Me.Role.Logged == Rol_DEG_ADM && (Gbl.Scope.Current == HieLvl_DEG ||
|
||||
|
@ -972,7 +974,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
break;
|
||||
case Sta_CLICKS_CRS_PER_MINUTE:
|
||||
case Sta_CLICKS_GBL_PER_MINUTE:
|
||||
Sta_ShowAverageAccessesPerMinute (NumHits,mysql_res);
|
||||
Sta_ShowNumHitsPerMinute (NumHits,mysql_res);
|
||||
break;
|
||||
case Sta_CLICKS_CRS_PER_ACTION:
|
||||
case Sta_CLICKS_GBL_PER_ACTION:
|
||||
|
@ -1230,23 +1232,27 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write the number of row */
|
||||
HTM_TD_Begin ("class=\"LOG RT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
HTM_TxtF ("%u ",NumRow);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the user's ID if user is a student */
|
||||
HTM_TD_Begin ("class=\"LOG CT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"CT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
ID_WriteUsrIDs (&UsrDat,NULL);
|
||||
HTM_NBSP ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the first name and the surnames */
|
||||
HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
HTM_TxtF ("%s ",UsrDat.FullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the user's role */
|
||||
HTM_TD_Begin ("class=\"LOG CT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"CT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
HTM_TxtF ("%s ",RoleFromLog < Rol_NUM_ROLES ? Txt_ROLES_SINGUL_Abc[RoleFromLog][UsrDat.Sex] :
|
||||
"?");
|
||||
HTM_TD_End ();
|
||||
|
@ -1254,8 +1260,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
/* Write the date-time (row[3]) */
|
||||
if (asprintf (&Id,"log_date_%u",UniqueId) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"LOG RT %s\"",
|
||||
Id,The_GetColorRows ());
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"RT LOG_%s %s\"",
|
||||
Id,The_GetSuffix (),The_GetColorRows ());
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetUNIXTimeFromStr (row[3]),
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||
true,true,false,0x7);
|
||||
|
@ -1265,7 +1271,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
/* Write the action */
|
||||
if (sscanf (row[4],"%ld",&ActCod) != 1)
|
||||
Err_WrongActionExit ();
|
||||
HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
if (ActCod >= 0)
|
||||
HTM_TxtF ("%s ",Act_GetActionText (Act_FromActCodToAction[ActCod]));
|
||||
else
|
||||
|
@ -1273,7 +1280,8 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write the comments of the access */
|
||||
HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
Sta_WriteLogComments (LogCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1357,7 +1365,8 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write the number of row */
|
||||
HTM_TD_Begin ("class=\"LOG RT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
HTM_TxtF ("%u ",NumHit);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1369,18 +1378,21 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write the user's ID if user is a student in current course */
|
||||
HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
ID_WriteUsrIDs (&UsrDat,NULL);
|
||||
HTM_NBSP ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the name and the surnames */
|
||||
HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
HTM_TxtF ("%s ",UsrDat.FullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write user's role */
|
||||
HTM_TD_Begin ("class=\"LOG CT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"CT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
HTM_TxtF ("%s ",Txt_ROLES_SINGUL_Abc[UsrDat.Roles.InCurrentCrs][UsrDat.Sex]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1397,7 +1409,8 @@ static void Sta_ShowNumHitsPerUsr (Sta_CountType_t CountType,
|
|||
else
|
||||
BarWidth = 0;
|
||||
|
||||
HTM_TD_Begin ("class=\"LOG LT %s\"",The_GetColorRows ());
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s %s\"",
|
||||
The_GetSuffix (),The_GetColorRows ());
|
||||
if (BarWidth)
|
||||
{
|
||||
HTM_IMG (Cfg_URL_ICON_PUBLIC,
|
||||
|
@ -1470,7 +1483,8 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType,
|
|||
Hits.Num = Str_GetDoubleFromStr (row[1]);
|
||||
|
||||
Dat_AssignDate (&Date,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&ReadDate,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&ReadDate,
|
||||
&LastDate);
|
||||
/* In the next loop (NumDaysFromLastDateToCurrDate-1) días (the more recent) with 0 clicks are shown
|
||||
and a last day (the oldest) with Hits.Num */
|
||||
for (D = 1;
|
||||
|
@ -1483,14 +1497,18 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType,
|
|||
|
||||
/* Write the date */
|
||||
Dat_ConvDateToDateStr (&Date,StrDate);
|
||||
HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"RT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",StrDate);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the day of the week */
|
||||
HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"LT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1508,7 +1526,8 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType,
|
|||
}
|
||||
Dat_AssignDate (&LastDate,&Date);
|
||||
}
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,
|
||||
&LastDate);
|
||||
|
||||
/***** Finally NumDaysFromLastDateToCurrDate days are shown with 0 clicks
|
||||
(the oldest days from the requested initial day until the first with clicks) *****/
|
||||
|
@ -1522,14 +1541,18 @@ static void Sta_ShowNumHitsPerDay (Sta_CountType_t CountType,
|
|||
|
||||
/* Write the date */
|
||||
Dat_ConvDateToDateStr (&Date,StrDate);
|
||||
HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"RT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",StrDate);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the day of the week */
|
||||
HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"LT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1651,7 +1674,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
|
|||
Hour < 24;
|
||||
Hour++)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"LOG CT\" style=\"width:%upx;\"",
|
||||
HTM_TD_Begin ("class=\"CT LOG_%s\" style=\"width:%upx;\"",
|
||||
The_GetSuffix (),
|
||||
GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH);
|
||||
HTM_TxtF ("%02uh",Hour);
|
||||
HTM_TD_End ();
|
||||
|
@ -1690,7 +1714,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
|
|||
/* In the next loop we show (NumDaysFromLastDateToCurrDate-1) days with 0 clicks
|
||||
and a last day (older) with Hits.Num */
|
||||
Dat_AssignDate (&Date,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate,
|
||||
&LastDate);
|
||||
for (D = 1;
|
||||
D <= NumDaysFromLastDateToCurrDate;
|
||||
D++)
|
||||
|
@ -1701,14 +1726,18 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
|
|||
|
||||
/* Write the date */
|
||||
Dat_ConvDateToDateStr (&Date,StrDate);
|
||||
HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"RT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",StrDate);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the day of the week */
|
||||
HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"LT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1739,7 +1768,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
|
|||
/* In the next loop we show (NumDaysFromLastDateToCurrDate-1) days (more recent) with 0 clicks
|
||||
and a last day (older) with Hits.Num clicks */
|
||||
Dat_AssignDate (&Date,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&PreviousReadDate,
|
||||
&LastDate);
|
||||
for (D = 1;
|
||||
D <= NumDaysFromLastDateToCurrDate;
|
||||
D++)
|
||||
|
@ -1750,14 +1780,18 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
|
|||
|
||||
/* Write the date */
|
||||
Dat_ConvDateToDateStr (&Date,StrDate);
|
||||
HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"RT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",StrDate);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the day of the week */
|
||||
HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"LT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1776,7 +1810,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
|
|||
/***** Finally NumDaysFromLastDateToCurrDate days are shown with 0 clicks
|
||||
(the oldest days since the initial day requested by the user until the first with clicks) *****/
|
||||
Dat_AssignDate (&LastDate,&Date);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&LastDate);
|
||||
NumDaysFromLastDateToCurrDate = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,
|
||||
&LastDate);
|
||||
for (D = 1;
|
||||
D <= NumDaysFromLastDateToCurrDate;
|
||||
D++)
|
||||
|
@ -1787,14 +1822,18 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
|
|||
|
||||
/* Write the date */
|
||||
Dat_ConvDateToDateStr (&Date,StrDate);
|
||||
HTM_TD_Begin ("class=\"%s RT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"RT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",StrDate);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the day of the week */
|
||||
HTM_TD_Begin ("class=\"%s LT\"",NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG");
|
||||
HTM_TD_Begin ("class=\"LT %s_%s\"",
|
||||
NumDayWeek == 6 ? "LOG_R" :
|
||||
"LOG",
|
||||
The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",Txt_DAYS_SMALL[NumDayWeek]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1846,8 +1885,9 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,double HitsMax)
|
|||
HTM_TABLE_BeginWide ();
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LOG LB\" style=\"width:%upx;\"",
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LB LOG_%s\" style=\"width:%upx;\"",
|
||||
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2,
|
||||
The_GetSuffix (),
|
||||
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
@ -1856,15 +1896,17 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,double HitsMax)
|
|||
Interval <= 4;
|
||||
Interval++)
|
||||
{
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LOG CB\" style=\"width:%upx;\"",
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"CB LOG_%s\" style=\"width:%upx;\"",
|
||||
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5,
|
||||
The_GetSuffix (),
|
||||
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5);
|
||||
HTM_DoubleFewDigits ((double) Interval * HitsMax / 5.0);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"LOG RB\" style=\"width:%upx;\"",
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"RB LOG_%s\" style=\"width:%upx;\"",
|
||||
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2,
|
||||
The_GetSuffix (),
|
||||
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2);
|
||||
HTM_DoubleFewDigits (HitsMax);
|
||||
HTM_TD_End ();
|
||||
|
@ -1912,9 +1954,10 @@ static void Sta_DrawAccessesPerHourForADay (Sta_ColorType_t ColorType,double Hit
|
|||
Str_DoubleNumToStrFewDigits (&Str,HitsNum[Hour]);
|
||||
|
||||
/***** Write cell *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\""
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\""
|
||||
" style=\"width:%upx; background-color:#%02X%02X%02X;\"",
|
||||
Str,GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH,R,G,B);
|
||||
The_GetSuffix (),Str,
|
||||
GRAPH_DISTRIBUTION_PER_HOUR_HOUR_WIDTH,R,G,B);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Free memory allocated for string *****/
|
||||
|
@ -2054,7 +2097,7 @@ static void Sta_ShowNumHitsPerWeek (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write week */
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_TxtF ("%04u-%02u ",Date.Year,Date.Week);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2083,7 +2126,7 @@ static void Sta_ShowNumHitsPerWeek (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write week */
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_TxtF ("%04u-%02u ",Date.Year,Date.Week);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2154,7 +2197,7 @@ static void Sta_ShowNumHitsPerMonth (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write the month */
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_TxtF ("%04u-%02u ",Date.Year,Date.Month);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2182,7 +2225,7 @@ static void Sta_ShowNumHitsPerMonth (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write the month */
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_TxtF ("%04u-%02u ",Date.Year,Date.Month);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2253,7 +2296,7 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write the year */
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_TxtF ("%04u ",Date.Year);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2281,7 +2324,7 @@ static void Sta_ShowNumHitsPerYear (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write the year */
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_TxtF ("%04u ",Date.Year);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2315,7 +2358,8 @@ static void Sta_ShowNumHitsPerHour (unsigned NumHits,
|
|||
unsigned ColumnWidth;
|
||||
MYSQL_ROW row;
|
||||
|
||||
if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.DateRange.DateEnd.Date)))
|
||||
if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,
|
||||
&Gbl.DateRange.DateEnd.Date)))
|
||||
{
|
||||
/***** Compute maximum number of pages generated per hour *****/
|
||||
Sta_ComputeMaxAndTotalHits (&Hits,NumHits,mysql_res,1,NumDays);
|
||||
|
@ -2401,14 +2445,14 @@ static void Sta_WriteAccessHour (unsigned Hour,struct Sta_Hits *Hits,unsigned Co
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**** Show a listing with the number of clicks in every minute of the day ***/
|
||||
/**** Show a listing with the number of clicks in every minute of the day ****/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Sta_NUM_MINUTES_PER_DAY (60 * 24) // 1440 minutes in a day
|
||||
#define Sta_WIDTH_SEMIDIVISION_GRAPHIC 30
|
||||
#define Sta_NUM_DIVISIONS_X 10
|
||||
|
||||
static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_res)
|
||||
static void Sta_ShowNumHitsPerMinute (unsigned NumHits,MYSQL_RES *mysql_res)
|
||||
{
|
||||
unsigned NumHit = 1;
|
||||
MYSQL_ROW row;
|
||||
|
@ -2425,7 +2469,8 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_
|
|||
double IncX;
|
||||
char *Format;
|
||||
|
||||
if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,&Gbl.DateRange.DateEnd.Date)))
|
||||
if ((NumDays = Dat_GetNumDaysBetweenDates (&Gbl.DateRange.DateIni.Date,
|
||||
&Gbl.DateRange.DateEnd.Date)))
|
||||
{
|
||||
/***** Compute number of clicks (and máximo) in every minute *****/
|
||||
Hits.Max = 0.0;
|
||||
|
@ -2483,7 +2528,7 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_
|
|||
for (i = 0;
|
||||
i < Sta_NUM_MINUTES_PER_DAY;
|
||||
i++)
|
||||
Sta_WriteAccessMinute (i,NumClicksPerMin[i],MaxX);
|
||||
Sta_WriteHitsMinute (i,NumClicksPerMin[i],MaxX);
|
||||
|
||||
/***** X axis *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -2491,7 +2536,7 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned NumHits,MYSQL_RES *mysql_
|
|||
/* First division (left) */
|
||||
HTM_TD_Begin ("class=\"LM\" style=\"width:%upx;\"",
|
||||
Sta_WIDTH_SEMIDIVISION_GRAPHIC);
|
||||
HTM_IMG (Cfg_URL_ICON_PUBLIC,"ejexizq24x1.gif",NULL,
|
||||
HTM_IMG (Cfg_URL_ICON_PUBLIC,"y30x1.png",NULL,
|
||||
"style=\"display:block;width:%upx;height:1px;\"",
|
||||
Sta_WIDTH_SEMIDIVISION_GRAPHIC);
|
||||
HTM_TD_End ();
|
||||
|
@ -2540,8 +2585,8 @@ static void Sta_WriteLabelsXAxisAccMin (double IncX,const char *Format)
|
|||
i <= Sta_NUM_DIVISIONS_X;
|
||||
i++, NumX += IncX)
|
||||
{
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"LOG CB\" style=\"width:%upx;\"",
|
||||
Sta_WIDTH_DIVISION_GRAPHIC);
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"CB LOG_%s\" style=\"width:%upx;\"",
|
||||
The_GetSuffix (),Sta_WIDTH_DIVISION_GRAPHIC);
|
||||
HTM_TxtF (Format,NumX);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
@ -2554,7 +2599,7 @@ static void Sta_WriteLabelsXAxisAccMin (double IncX,const char *Format)
|
|||
|
||||
#define Sta_WIDTH_GRAPHIC (Sta_WIDTH_DIVISION_GRAPHIC * Sta_NUM_DIVISIONS_X) // 60 * 10 = 600
|
||||
|
||||
static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX)
|
||||
static void Sta_WriteHitsMinute (unsigned Minute,double HitsNum,double MaxX)
|
||||
{
|
||||
unsigned BarWidth;
|
||||
|
||||
|
@ -2565,11 +2610,12 @@ static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX)
|
|||
if (!Minute)
|
||||
{
|
||||
// If minute 0
|
||||
HTM_TD_Begin ("rowspan=\"30\" class=\"LOG LT\""
|
||||
HTM_TD_Begin ("rowspan=\"30\" class=\"LT LOG_%s\""
|
||||
" style=\"width:%upx;"
|
||||
" background-image:url('%s/ejey24x30.gif');"
|
||||
" background-image:url('%s/y30x30.png');"
|
||||
" background-size:30px 30px;"
|
||||
" background-repeat:repeat;\"",
|
||||
The_GetSuffix (),
|
||||
Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC);
|
||||
HTM_Txt ("00h");
|
||||
HTM_TD_End ();
|
||||
|
@ -2577,11 +2623,12 @@ static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX)
|
|||
else if (Minute == (Sta_NUM_MINUTES_PER_DAY - 30))
|
||||
{
|
||||
// If 23:30
|
||||
HTM_TD_Begin ("rowspan=\"30\" class=\"LOG LB\""
|
||||
HTM_TD_Begin ("rowspan=\"30\" class=\"LB LOG_%s\""
|
||||
" style=\"width:%upx;"
|
||||
" background-image:url('%s/ejey24x30.gif');"
|
||||
" background-image:url('%s/y30x30.png');"
|
||||
" background-size:30px 30px;"
|
||||
" background-repeat:repeat;\"",
|
||||
The_GetSuffix (),
|
||||
Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC);
|
||||
HTM_Txt ("24h");
|
||||
HTM_TD_End ();
|
||||
|
@ -2589,11 +2636,12 @@ static void Sta_WriteAccessMinute (unsigned Minute,double HitsNum,double MaxX)
|
|||
else if (!(Minute % 30) && (Minute % 60))
|
||||
{
|
||||
// If minute is multiple of 30 but not of 60 (i.e.: 30, 90, 150...)
|
||||
HTM_TD_Begin ("rowspan=\"60\" class=\"LOG LM\""
|
||||
HTM_TD_Begin ("rowspan=\"60\" class=\"LM LOG_%s\""
|
||||
" style=\"width:%upx;"
|
||||
" background-image:url('%s/ejey24x60.gif');"
|
||||
" background-image:url('%s/y30x60.png');"
|
||||
" background-size:30px 60px;"
|
||||
" background-repeat:repeat;\"",
|
||||
The_GetSuffix (),
|
||||
Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC);
|
||||
HTM_TxtF ("%02uh",(Minute + 30) / 60);
|
||||
HTM_TD_End ();
|
||||
|
@ -2662,7 +2710,7 @@ static void Sta_ShowNumHitsPerAction (Sta_CountType_t CountType,
|
|||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"LOG RT\"");
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ());
|
||||
if (ActCod >= 0)
|
||||
HTM_TxtF ("%s ",Act_GetActionText (Act_FromActCodToAction[ActCod]));
|
||||
else
|
||||
|
@ -2715,7 +2763,7 @@ static void Sta_ShowNumHitsPerPlugin (Sta_CountType_t CountType,
|
|||
/* Write the plugin */
|
||||
if (sscanf (row[0],"%ld",&Plg.PlgCod) != 1)
|
||||
Err_WrongPluginExit ();
|
||||
HTM_TD_Begin ("class=\"LOG RT\"");
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ());
|
||||
if (Plg_GetDataOfPluginByCod (&Plg))
|
||||
HTM_Txt (Plg.Name);
|
||||
else
|
||||
|
@ -2770,7 +2818,7 @@ static void Sta_ShowNumHitsPerWSFunction (Sta_CountType_t CountType,
|
|||
if (sscanf (row[0],"%ld",&FunCod) != 1)
|
||||
Err_ShowErrorAndExit ("Wrong function code.");
|
||||
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_TxtF ("%s ",API_GetFunctionNameFromFunCod (FunCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2834,7 +2882,7 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType,
|
|||
if (sscanf (row[0],"%ld",&(Ban.BanCod)) != 1)
|
||||
Err_WrongBannerExit ();
|
||||
Ban_GetDataOfBannerByCod (&Ban);
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" target=\"_blank\""
|
||||
" class=\"DAT_%s\"",
|
||||
Ban.WWW,
|
||||
|
@ -2894,7 +2942,7 @@ static void Sta_ShowNumHitsPerCountry (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write ranking of this country */
|
||||
HTM_TD_Begin ("class=\"LOG RM\"");
|
||||
HTM_TD_Begin ("class=\"RM LOG_%s\"",The_GetSuffix ());
|
||||
if (CtyCod > 0)
|
||||
HTM_Unsigned (++Ranking);
|
||||
HTM_NBSP ();
|
||||
|
@ -2921,7 +2969,7 @@ static void Sta_WriteCountry (long CtyCod)
|
|||
struct Cty_Countr Cty;
|
||||
|
||||
/***** Begin cell *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\"");
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ());
|
||||
|
||||
if (CtyCod > 0) // Hit with a country selected
|
||||
{
|
||||
|
@ -2982,7 +3030,7 @@ static void Sta_ShowNumHitsPerInstitution (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write ranking of this institution */
|
||||
HTM_TD_Begin ("class=\"LOG RT\"");
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ());
|
||||
if (InsCod > 0)
|
||||
HTM_Unsigned (++Ranking);
|
||||
HTM_NBSP ();
|
||||
|
@ -3016,7 +3064,8 @@ static void Sta_WriteInstit (long InsCod)
|
|||
Ins_GetDataOfInstitByCod (&Ins);
|
||||
|
||||
/***** Title in cell *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Ins.FullName);
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\"",
|
||||
The_GetSuffix (),Ins.FullName);
|
||||
|
||||
/***** Form to go to institution *****/
|
||||
Ins_DrawInstitLogoAndNameWithLink (&Ins,ActSeeInsInf,"CT");
|
||||
|
@ -3024,7 +3073,7 @@ static void Sta_WriteInstit (long InsCod)
|
|||
else // Hit with no institution selected
|
||||
{
|
||||
/***** No institution selected *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\"");
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ());
|
||||
HTM_Txt (" - ");
|
||||
}
|
||||
|
||||
|
@ -3072,7 +3121,7 @@ static void Sta_ShowNumHitsPerCenter (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write ranking of this center */
|
||||
HTM_TD_Begin ("class=\"LOG RT\"");
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ());
|
||||
if (CtrCod > 0)
|
||||
HTM_Unsigned (++Ranking);
|
||||
HTM_NBSP ();
|
||||
|
@ -3106,7 +3155,8 @@ static void Sta_WriteCenter (long CtrCod)
|
|||
Ctr_GetDataOfCenterByCod (&Ctr);
|
||||
|
||||
/***** Title in cell *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Ctr.FullName);
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\"",
|
||||
The_GetSuffix (),Ctr.FullName);
|
||||
|
||||
/***** Form to go to center *****/
|
||||
Ctr_DrawCenterLogoAndNameWithLink (&Ctr,ActSeeCtrInf,"CT");
|
||||
|
@ -3114,7 +3164,7 @@ static void Sta_WriteCenter (long CtrCod)
|
|||
else // Hit with no center selected
|
||||
{
|
||||
/***** No center selected *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\"");
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ());
|
||||
HTM_Txt (" - ");
|
||||
}
|
||||
|
||||
|
@ -3162,7 +3212,7 @@ static void Sta_ShowNumHitsPerDegree (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write ranking of this degree */
|
||||
HTM_TD_Begin ("class=\"LOG RT\"");
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ());
|
||||
if (DegCod > 0)
|
||||
HTM_Unsigned (++Ranking);
|
||||
HTM_NBSP ();
|
||||
|
@ -3196,7 +3246,8 @@ static void Sta_WriteDegree (long DegCod)
|
|||
Deg_GetDataOfDegreeByCod (&Deg);
|
||||
|
||||
/***** Title in cell *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\" title=\"%s\"",Deg.FullName);
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\" title=\"%s\"",
|
||||
The_GetSuffix (),Deg.FullName);
|
||||
|
||||
/***** Form to go to degree *****/
|
||||
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf,"CT");
|
||||
|
@ -3204,7 +3255,7 @@ static void Sta_WriteDegree (long DegCod)
|
|||
else // Hit with no degree selected
|
||||
{
|
||||
/***** No degree selected *****/
|
||||
HTM_TD_Begin ("class=\"LOG LM\"");
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ());
|
||||
HTM_Txt (" - ");
|
||||
}
|
||||
|
||||
|
@ -3263,7 +3314,7 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Write ranking of this course */
|
||||
HTM_TD_Begin ("class=\"LOG RT\"");
|
||||
HTM_TD_Begin ("class=\"RT LOG_%s\"",The_GetSuffix ());
|
||||
if (CrsOK)
|
||||
HTM_Unsigned (++Ranking);
|
||||
HTM_NBSP ();
|
||||
|
@ -3273,7 +3324,7 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType,
|
|||
Sta_WriteDegree (Crs.DegCod);
|
||||
|
||||
/* Write degree year */
|
||||
HTM_TD_Begin ("class=\"LOG CT\"");
|
||||
HTM_TD_Begin ("class=\"CT LOG_%s\"",The_GetSuffix ());
|
||||
if (CrsOK)
|
||||
HTM_Txt (Txt_YEAR_OF_DEGREE[Crs.Year]);
|
||||
else
|
||||
|
@ -3282,7 +3333,7 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write course, including link */
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_TD_Begin ("class=\"LT LOG_%s\"",The_GetSuffix ());
|
||||
if (CrsOK)
|
||||
{
|
||||
Frm_BeginFormGoTo (ActSeeCrsInf);
|
||||
|
@ -3354,7 +3405,7 @@ static void Sta_DrawBarNumHits (char Color,
|
|||
unsigned BarWidth;
|
||||
char *Icon;
|
||||
|
||||
HTM_TD_Begin ("class=\"LOG LM\"");
|
||||
HTM_TD_Begin ("class=\"LM LOG_%s\"",The_GetSuffix ());
|
||||
|
||||
if (HitsNum != 0.0)
|
||||
{
|
||||
|
|
74
swad_text.c
74
swad_text.c
|
@ -1326,13 +1326,13 @@ const char *Txt_all_degrees =
|
|||
#if L==1 // ca
|
||||
"Totes les titulacions";
|
||||
#elif L==2 // de
|
||||
"all degrees"; // Need Übersetzung
|
||||
"alle Abschlüsse";
|
||||
#elif L==3 // en
|
||||
"all degrees";
|
||||
#elif L==4 // es
|
||||
"todas las titulaciones";
|
||||
#elif L==5 // fr
|
||||
"tous les degrés";
|
||||
"tous les études";
|
||||
#elif L==6 // gn
|
||||
"todas las titulaciones"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
|
@ -5129,7 +5129,7 @@ const char *Txt_Congratulations_You_have_created_your_account_X_Now_Y_will_reque
|
|||
" Vous serez alors en mesure de demander l'inscription à des matières."
|
||||
" Si une matière ne existe pas,"
|
||||
" vous pouvez le créer avant de demander l'inscription en elle"
|
||||
" (la même chose se applique aux institutions, centers et degrés).";
|
||||
" (la même chose se applique aux institutions, centers et études).";
|
||||
#elif L==6 // gn
|
||||
"¡Enhorabuena! Ha creado su cuenta <strong>@%s</strong>."
|
||||
" Ahora %s le solicitará algunos datos para completar su perfil."
|
||||
|
@ -35572,7 +35572,7 @@ const char *Txt_ROLE_STATS[Sta_NUM_ROLES_STAT] =
|
|||
#elif L==4 // es
|
||||
"administradores de titulaciones"
|
||||
#elif L==5 // fr
|
||||
"administrateurs de degrés"
|
||||
"administrateurs d'études"
|
||||
#elif L==6 // gn
|
||||
"administradores de titulaciones" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
|
@ -43749,13 +43749,13 @@ const char *Txt_STAT_DEGREE_PHOTO_SIZE[Pho_NUM_HOW_COMPUTE_PHOTO_SIZES] =
|
|||
#elif L==4 // es
|
||||
"igual para todas las titulaciones"
|
||||
#elif L==5 // fr
|
||||
"same for all degrees" // Besoin de traduction
|
||||
"identique pour tous les études"
|
||||
#elif L==6 // gn
|
||||
"igual para todas las titulaciones" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"uguale per tutte le lauree"
|
||||
#elif L==8 // pl
|
||||
"same for all degrees" // Potrzebujesz tlumaczenie
|
||||
"to samo dla wszystkich stopni"
|
||||
#elif L==9 // pt
|
||||
"mesmo para todos os graus"
|
||||
#endif
|
||||
|
@ -43807,42 +43807,42 @@ const char *Txt_STAT_DEGREE_PHOTO_ORDER[Pho_NUM_HOW_ORDER_DEGREES] =
|
|||
,
|
||||
[Pho_PROPORTIONAL_TO_PERCENT] =
|
||||
#if L==1 // ca
|
||||
"porcentaje de estudiantes con fotografía" // Necessita traduccio
|
||||
"percentatge d'estudiants amb fotografia"
|
||||
#elif L==2 // de
|
||||
"percentage of students with photo" // Need Übersetzung
|
||||
"Prozentsatz der Schüler mit Foto"
|
||||
#elif L==3 // en
|
||||
"percentage of students with photo"
|
||||
#elif L==4 // es
|
||||
"porcentaje de estudiantes con fotografía"
|
||||
#elif L==5 // fr
|
||||
"percentage of students with photo" // Besoin de traduction
|
||||
"pourcentage d'étudiants avec photo"
|
||||
#elif L==6 // gn
|
||||
"porcentaje de estudiantes con fotografía" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"percentuale di studenti con foto"
|
||||
#elif L==8 // pl
|
||||
"percentage of students with photo" // Potrzebujesz tlumaczenie
|
||||
"odsetek uczniów ze zdjęciem"
|
||||
#elif L==9 // pt
|
||||
"porcentagem de estudantes com foto"
|
||||
#endif
|
||||
,
|
||||
[Pho_UNIQUE_SIZE] =
|
||||
#if L==1 // ca
|
||||
"nombre de titulación" // Necessita traduccio
|
||||
"nom de titulació"
|
||||
#elif L==2 // de
|
||||
"degree name" // Need Übersetzung
|
||||
"Grad Name"
|
||||
#elif L==3 // en
|
||||
"degree name"
|
||||
#elif L==4 // es
|
||||
"nombre de titulación"
|
||||
#elif L==5 // fr
|
||||
"degree name" // Besoin de traduction
|
||||
"nom d'étude"
|
||||
#elif L==6 // gn
|
||||
"nombre de titulación" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"nome laurea"
|
||||
#elif L==8 // pl
|
||||
"degree name" // Potrzebujesz tlumaczenie
|
||||
"nazwa stopnia"
|
||||
#elif L==9 // pt
|
||||
"nome do grau"
|
||||
#endif
|
||||
|
@ -43852,7 +43852,7 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] =
|
|||
{
|
||||
[Sta_TOTAL_CLICKS] =
|
||||
#if L==1 // ca
|
||||
"N.º total de clics" // Necessita traduccio
|
||||
"Nombre total de clics"
|
||||
#elif L==2 // de
|
||||
"Gesamtzahl der Klicks"
|
||||
#elif L==3 // en
|
||||
|
@ -43866,14 +43866,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"Numero totale di scatti"
|
||||
#elif L==8 // pl
|
||||
"Total number of clicks" // Potrzebujesz tlumaczenie
|
||||
"Całkowita liczba kliknięć"
|
||||
#elif L==9 // pt
|
||||
"Número total de cliques"
|
||||
#endif
|
||||
,
|
||||
[Sta_DISTINCT_USRS] =
|
||||
#if L==1 // ca
|
||||
"N.º de usuarios distintos" // Necessita traduccio
|
||||
"Nombre d'usuaris diferents"
|
||||
#elif L==2 // de
|
||||
"Anzahl der unterschiedlichen Benutzer"
|
||||
#elif L==3 // en
|
||||
|
@ -43887,14 +43887,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"Numero di utenti distinti"
|
||||
#elif L==8 // pl
|
||||
"Number of distinct users" // Potrzebujesz tlumaczenie
|
||||
"Liczba różnych użytkowników"
|
||||
#elif L==9 // pt
|
||||
"Número de utilizadores diferentes"
|
||||
#endif
|
||||
,
|
||||
[Sta_CLICKS_PER_USR] =
|
||||
#if L==1 // ca
|
||||
"N.º de clics por usuario" // Necessita traduccio
|
||||
"Nombre de clics per usuari"
|
||||
#elif L==2 // de
|
||||
"Anzahl der Klicks pro Benutzer"
|
||||
#elif L==3 // en
|
||||
|
@ -43908,14 +43908,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"Numero di scatti per utente"
|
||||
#elif L==8 // pl
|
||||
"Number of clicks per user" // Potrzebujesz tlumaczenie
|
||||
"Liczba kliknięć na użytkownika"
|
||||
#elif L==9 // pt
|
||||
"Número de cliques por utilizador"
|
||||
#endif
|
||||
,
|
||||
[Sta_GENERATION_TIME] =
|
||||
#if L==1 // ca
|
||||
"Tiempo de generación de página" // Necessita traduccio
|
||||
"Temps de generació de pàgina"
|
||||
#elif L==2 // de
|
||||
"Zeit zur Erzeugung der Seite"
|
||||
#elif L==3 // en
|
||||
|
@ -43929,14 +43929,14 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"Tempo per generare pagina"
|
||||
#elif L==8 // pl
|
||||
"Time to generate page" // Potrzebujesz tlumaczenie
|
||||
"Czas wygenerować stronę"
|
||||
#elif L==9 // pt
|
||||
"Tempo para gerar página"
|
||||
#endif
|
||||
,
|
||||
[Sta_SEND_TIME] =
|
||||
#if L==1 // ca
|
||||
"Tiempo de envío de página" // Necessita traduccio
|
||||
"Temps d'enviament de pàgina"
|
||||
#elif L==2 // de
|
||||
"Zeit, um die Seite zu senden"
|
||||
#elif L==3 // en
|
||||
|
@ -43950,7 +43950,7 @@ const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"Tempo d'invio della pagina"
|
||||
#elif L==8 // pl
|
||||
"Time to send page" // Potrzebujesz tlumaczenie
|
||||
"Czas wysłać stronę"
|
||||
#elif L==9 // pt
|
||||
"Tempo para enviar a página"
|
||||
#endif
|
||||
|
@ -43960,7 +43960,7 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] =
|
|||
{
|
||||
[Sta_TOTAL_CLICKS] =
|
||||
#if L==1 // ca
|
||||
"nº total de clics" // Necessita traduccio
|
||||
"nombre total de clics"
|
||||
#elif L==2 // de
|
||||
"Gesamtzahl der Klicks"
|
||||
#elif L==3 // en
|
||||
|
@ -43974,14 +43974,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"numero totale di scatti"
|
||||
#elif L==8 // pl
|
||||
"total number of clicks" // Potrzebujesz tlumaczenie
|
||||
"całkowita liczba kliknięć"
|
||||
#elif L==9 // pt
|
||||
"número total de cliques"
|
||||
#endif
|
||||
,
|
||||
[Sta_DISTINCT_USRS] =
|
||||
#if L==1 // ca
|
||||
"nº de usuarios distintos" // Necessita traduccio
|
||||
"nombre d'usuaris diferents"
|
||||
#elif L==2 // de
|
||||
"Anzahl der unterschiedliche Benutzer"
|
||||
#elif L==3 // en
|
||||
|
@ -43995,14 +43995,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"numero di utenti distinti"
|
||||
#elif L==8 // pl
|
||||
"number of distinct users" // Potrzebujesz tlumaczenie
|
||||
"liczba różnych użytkowników"
|
||||
#elif L==9 // pt
|
||||
"número de utilizadores diferentes"
|
||||
#endif
|
||||
,
|
||||
[Sta_CLICKS_PER_USR] =
|
||||
#if L==1 // ca
|
||||
"nº de clics por usuario" // Necessita traduccio
|
||||
"nombre de clics per usuari"
|
||||
#elif L==2 // de
|
||||
"Anzahl der Klicks pro Benutzer"
|
||||
#elif L==3 // en
|
||||
|
@ -44016,14 +44016,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"numero di scatti per utente"
|
||||
#elif L==8 // pl
|
||||
"number of clicks per user" // Potrzebujesz tlumaczenie
|
||||
"liczba kliknięć na użytkownika"
|
||||
#elif L==9 // pt
|
||||
"número de cliques por utilizador"
|
||||
#endif
|
||||
,
|
||||
[Sta_GENERATION_TIME] =
|
||||
#if L==1 // ca
|
||||
"tiempo de generación" // Necessita traduccio
|
||||
"temps de generació"
|
||||
#elif L==2 // de
|
||||
"Zeit zur Erzeugung"
|
||||
#elif L==3 // en
|
||||
|
@ -44037,14 +44037,14 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"tempo per generare"
|
||||
#elif L==8 // pl
|
||||
"time to generate" // Potrzebujesz tlumaczenie
|
||||
"czas na wygenerowanie"
|
||||
#elif L==9 // pt
|
||||
"tempo para gerar"
|
||||
#endif
|
||||
,
|
||||
[Sta_SEND_TIME] =
|
||||
#if L==1 // ca
|
||||
"tiempo de envío" // Necessita traduccio
|
||||
"temps d'enviament"
|
||||
#elif L==2 // de
|
||||
"Zeit, um Seite"
|
||||
#elif L==3 // en
|
||||
|
@ -44058,7 +44058,7 @@ const char *Txt_STAT_TYPE_COUNT_SMALL[Sta_NUM_COUNT_TYPES] =
|
|||
#elif L==7 // it
|
||||
"tempo d'invio"
|
||||
#elif L==8 // pl
|
||||
"time to send" // Potrzebujesz tlumaczenie
|
||||
"czas wysłać"
|
||||
#elif L==9 // pt
|
||||
"Tempo para enviar"
|
||||
#endif
|
||||
|
@ -44187,7 +44187,7 @@ const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES] =
|
|||
#elif L==7 // it
|
||||
"Cartelle e file"
|
||||
#elif L==8 // pl
|
||||
"Folders and files" // Potrzebujesz tlumaczenie
|
||||
"Foldery i pliki"
|
||||
#elif L==9 // pt
|
||||
"Diretórios e arquivos"
|
||||
#endif
|
||||
|
@ -51737,7 +51737,7 @@ const char *Txt_There_are_no_centers_with_requests_for_degrees_to_be_confirmed =
|
|||
" pendientes de confirmar.";
|
||||
#elif L==5 // fr
|
||||
"Il n'y a pas de centers"
|
||||
" avec demandes de degrés"
|
||||
" avec demandes d'études"
|
||||
" à confirmer.";
|
||||
#elif L==6 // gn
|
||||
"No hay centros"
|
||||
|
@ -51814,7 +51814,7 @@ const char *Txt_There_are_no_degrees_with_requests_for_courses_to_be_confirmed =
|
|||
" con solicitudes de asignaturas"
|
||||
" pendientes de confirmar.";
|
||||
#elif L==5 // fr
|
||||
"Il n'y a pas de degrés"
|
||||
"Il n'y a pas d'études"
|
||||
" avec demandes de cours"
|
||||
" à confirmer.";
|
||||
#elif L==6 // gn
|
||||
|
|
Loading…
Reference in New Issue