Version 16.132.3

This commit is contained in:
Antonio Cañas Vargas 2017-01-30 17:45:16 +01:00
parent 7816f1ed48
commit 9bce028646
2 changed files with 37 additions and 71 deletions

View File

@ -191,13 +191,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.132.2 (2017-01-30)"
#define Log_PLATFORM_VERSION "SWAD 16.132.3 (2017-01-30)"
#define CSS_FILE "swad16.123.css"
#define JS_FILE "swad16.123.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.132.3: Jan 30, 2017 Code refactoring in connected users. (211881 lines)
Version 16.132.2: Jan 30, 2017 Fixed bug in file browser. (211911 lines)
Version 16.132.1: Jan 29, 2017 Fixed bug in listing of users. (211916 lines)
Version 16.132: Jan 29, 2017 Code refactoring in unsigned parameters. (211915 lines)

View File

@ -56,14 +56,15 @@ extern struct Globals Gbl;
static void Con_PutIconToUpdateConnected (void);
static void Con_ShowGlobalConnectedUsrsRole (Rol_Role_t Role,unsigned UsrsTotal);
static void Con_ComputeConnectedUsrsWithARoleBelongingToCurrentCrs (Rol_Role_t Role);
static void Con_ShowConnectedUsrsBelongingToLocation (void);
static void Con_ShowConnectedUsrsWithARoleBelongingToCurrentLocationOnMainZone (Rol_Role_t Role);
static void Con_ShowConnectedUsrsWithARoleBelongingToCurrentCrsOnRightColumn (Rol_Role_t Role);
static unsigned Con_GetConnectedGuestsTotal (void);
static unsigned Con_GetConnectedStdsTotal (void);
static unsigned Con_GetConnectedTchsTotal (void);
static unsigned Con_GetConnectedUsrsTotal (Rol_Role_t Role);
static void Con_GetNumConnectedUsrsWithARoleBelongingCurrentLocation (Rol_Role_t Role,struct ConnectedUsrs *Usrs);
static void Con_ComputeConnectedUsrsWithARoleCurrentCrsOneByOne (Rol_Role_t Role);
static void Con_ShowConnectedUsrsCurrentCrsOneByOneOnRightColumn (Rol_Role_t Role);
@ -347,12 +348,10 @@ void Con_ShowGlobalConnectedUsrs (void)
extern const char *Txt_sessions;
extern const char *Txt_user[Usr_NUM_SEXS];
extern const char *Txt_users[Usr_NUM_SEXS];
extern const char *Txt_ROLES_SINGUL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
unsigned StdsTotal = Con_GetConnectedStdsTotal ();
unsigned TchsTotal = Con_GetConnectedTchsTotal ();
unsigned WithoutCoursesTotal = Con_GetConnectedGuestsTotal ();
unsigned UsrsTotal = StdsTotal + TchsTotal + WithoutCoursesTotal;
unsigned StdsTotal = Con_GetConnectedUsrsTotal (Rol_STUDENT);
unsigned TchsTotal = Con_GetConnectedUsrsTotal (Rol_TEACHER);
unsigned GstsTotal = Con_GetConnectedUsrsTotal (Rol__GUEST_);
unsigned UsrsTotal = StdsTotal + TchsTotal + GstsTotal;
/***** Container start *****/
fprintf (Gbl.F.Out,"<div class=\"CONNECTED LEFT_RIGHT_CONTENT_WIDTH\">");
@ -384,28 +383,13 @@ void Con_ShowGlobalConnectedUsrs (void)
Txt_users[Usr_SEX_UNKNOWN]);
/***** Write total number of students *****/
if (StdsTotal)
fprintf (Gbl.F.Out,"<br />"
"%u %s",
StdsTotal,
(StdsTotal == 1) ? Txt_ROLES_SINGUL_abc[Rol_STUDENT][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_STUDENT][Usr_SEX_UNKNOWN]);
Con_ShowGlobalConnectedUsrsRole (Rol_STUDENT,StdsTotal);
/***** Write total number of teachers *****/
if (TchsTotal)
fprintf (Gbl.F.Out,"<br />"
"%u %s",
TchsTotal,
(TchsTotal == 1) ? Txt_ROLES_SINGUL_abc[Rol_TEACHER][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_TEACHER][Usr_SEX_UNKNOWN]);
Con_ShowGlobalConnectedUsrsRole (Rol_TEACHER,TchsTotal);
/***** Write total number of users who do not belong to any course *****/
if (WithoutCoursesTotal)
fprintf (Gbl.F.Out,"<br />"
"%u %s",
WithoutCoursesTotal,
(WithoutCoursesTotal == 1) ? Txt_ROLES_SINGUL_abc[Rol__GUEST_][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol__GUEST_][Usr_SEX_UNKNOWN]);
Con_ShowGlobalConnectedUsrsRole (Rol__GUEST_,GstsTotal);
fprintf (Gbl.F.Out,"</div>");
}
@ -414,6 +398,19 @@ void Con_ShowGlobalConnectedUsrs (void)
fprintf (Gbl.F.Out,"</div>");
}
static void Con_ShowGlobalConnectedUsrsRole (Rol_Role_t Role,unsigned UsrsTotal)
{
extern const char *Txt_ROLES_SINGUL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
if (UsrsTotal)
fprintf (Gbl.F.Out,"<br />"
"%u %s",
UsrsTotal,
(UsrsTotal == 1) ? Txt_ROLES_SINGUL_abc[Role][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Role][Usr_SEX_UNKNOWN]);
}
/*****************************************************************************/
/*********** Compute connected users who belong to current course ************/
/*****************************************************************************/
@ -718,12 +715,15 @@ void Con_UpdateMeInConnectedList (void)
/***** Which role will be stored in connected table? *****/
MyRoleInConnected = (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT ||
Gbl.Usrs.Me.LoggedRole == Rol_TEACHER) ? Gbl.Usrs.Me.LoggedRole :
Gbl.Usrs.Me.MaxRole;
Gbl.Usrs.Me.MaxRole;
/***** Update my entry in connected list. The role which is stored is the role of the last click *****/
sprintf (Query,"REPLACE INTO connected (UsrCod,RoleInLastCrs,LastCrsCod,LastTime)"
sprintf (Query,"REPLACE INTO connected"
" (UsrCod,RoleInLastCrs,LastCrsCod,LastTime)"
" VALUES ('%ld','%u','%ld',NOW())",
Gbl.Usrs.Me.UsrDat.UsrCod,(unsigned) MyRoleInConnected,Gbl.CurrentCrs.Crs.CrsCod);
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) MyRoleInConnected,
Gbl.CurrentCrs.Crs.CrsCod);
DB_QueryREPLACE (Query,"can not update list of connected users");
}
@ -742,55 +742,20 @@ void Con_RemoveOldConnected (void)
}
/*****************************************************************************/
/*************************** Get connected guests ***************************/
/********************* Get connected users with a role ***********************/
/*****************************************************************************/
static unsigned Con_GetConnectedGuestsTotal (void)
static unsigned Con_GetConnectedUsrsTotal (Rol_Role_t Role)
{
char Query[128];
if (!Gbl.DB.DatabaseIsOpen)
return 0;
/***** Get number of connected users not belonging to any course *****/
sprintf (Query,"SELECT COUNT(*) FROM connected"
" WHERE RoleInLastCrs='%u'",
(unsigned) Rol__GUEST_);
return (unsigned) DB_QueryCOUNT (Query,"can not get number of connected users who not belong to any course");
}
/*****************************************************************************/
/*************************** Get connected students **************************/
/*****************************************************************************/
static unsigned Con_GetConnectedStdsTotal (void)
{
char Query[128];
if (!Gbl.DB.DatabaseIsOpen)
return 0;
/***** Get number of connected students from database *****/
/***** Get number of connected users with a role from database *****/
sprintf (Query,"SELECT COUNT(*) FROM connected WHERE RoleInLastCrs='%u'",
(unsigned) Rol_STUDENT);
return (unsigned) DB_QueryCOUNT (Query,"can not get number of connected students");
}
/*****************************************************************************/
/*************************** Get connected teachers **************************/
/*****************************************************************************/
static unsigned Con_GetConnectedTchsTotal (void)
{
char Query[256];
if (!Gbl.DB.DatabaseIsOpen)
return 0;
/***** Get number of connected teachers from database *****/
sprintf (Query,"SELECT COUNT(*) FROM connected WHERE RoleInLastCrs='%u'",
(unsigned) Rol_TEACHER);
return (unsigned) DB_QueryCOUNT (Query,"can not get number of connected teachers");
(unsigned) Role);
return (unsigned) DB_QueryCOUNT (Query,"can not get number of connected users");
}
/*****************************************************************************/