diff --git a/swad_changelog.h b/swad_changelog.h
index d1fc94b94..045622ba7 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -39,12 +39,15 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
-#define Log_PLATFORM_VERSION "SWAD 14.69.2 (2015/01/26)"
+#define Log_PLATFORM_VERSION "SWAD 14.70 (2015/01/26)"
// 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 | tail -1
/*
TODO: Change the way of computing total sizes of file browsers.
+ Version 14.70: Jan 26, 2015 Fixed bugs in statistics about sizes of file browsers.
+ Statistics about sizes of group zones.
+ New scope (country) in statistics about sizes of file browsers. (176181 lines)
Version 14.69.2: Jan 26, 2015 Fixed bugs in statistics about sizes of file browsers. (175864 lines)
Version 14.69.1: Jan 26, 2015 Code refactoring related to file browsers. (175822 lines)
Version 14.69: Jan 26, 2015 Changes in search of documents. (175818 lines)
diff --git a/swad_config.h b/swad_config.h
index 026614fa1..4702408af 100644
--- a/swad_config.h
+++ b/swad_config.h
@@ -28,8 +28,8 @@
/** Uncomment one of the following installations of SWAD or create your own **/
/*****************************************************************************/
-#define LOCALHOST_UBUNTU // Comment this line if not applicable
-//#define OPENSWAD_ORG // Comment this line if not applicable
+//#define LOCALHOST_UBUNTU // Comment this line if not applicable
+#define OPENSWAD_ORG // Comment this line if not applicable
//#define SWAD_UGR_ES // Comment this line if not applicable
//#define WWW_CEVUNA_UNA_PY // Comment this line if not applicable
diff --git a/swad_statistic.c b/swad_statistic.c
index d1820efee..c5b73f601 100644
--- a/swad_statistic.c
+++ b/swad_statistic.c
@@ -70,6 +70,7 @@ extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
struct Sta_SizeOfFileZones
{
int NumCrss; // -1 stands for not aplicable
+ int NumGrps; // -1 stands for not aplicable
int NumUsrs; // -1 stands for not aplicable
unsigned MaxLevels;
unsigned long NumFolders;
@@ -134,8 +135,10 @@ static void Sta_GetAndShowUsersStats (void);
static void Sta_GetAndShowFileBrowsersStats (void);
static void Sta_WriteStatsExpTreesTableHead (void);
-static void Sta_WriteRowStatsExpTrees (Brw_FileBrowser_t FileZone,const char *NameOfFileZones);
-static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,Brw_FileBrowser_t FileBrowser,struct Sta_SizeOfFileZones *SizeOfFileZones);
+static void Sta_WriteRowStatsFileBrowsers (Brw_FileBrowser_t FileZone,const char *NameOfFileZones);
+static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
+ Brw_FileBrowser_t FileBrowser,
+ struct Sta_SizeOfFileZones *SizeOfFileZones);
static void Sta_GetAndShowOERsStats (void);
static void Sta_GetNumberOfOERsFromDB (Sco_Scope_t Scope,Brw_License_t License,unsigned long NumFiles[2]);
@@ -4484,13 +4487,13 @@ static void Sta_GetAndShowFileBrowsersStats (void)
for (NumStat = 0;
NumStat < Sta_NUM_STAT_CRS_FILE_ZONES;
NumStat++)
- Sta_WriteRowStatsExpTrees (StatCrsFileZones[NumStat],Txt_STAT_COURSE_FILE_ZONES[NumStat]);
+ Sta_WriteRowStatsFileBrowsers (StatCrsFileZones[NumStat],Txt_STAT_COURSE_FILE_ZONES[NumStat]);
/***** Write table heading *****/
Sta_WriteStatsExpTreesTableHead ();
/***** Write size of briefcases *****/
- Sta_WriteRowStatsExpTrees (Brw_ADMI_BRIEF_USR,Txt_Virtual_pendrives);
+ Sta_WriteRowStatsFileBrowsers (Brw_ADMI_BRIEF_USR,Txt_Virtual_pendrives);
/***** End table *****/
Lay_EndRoundFrameTable10 ();
@@ -4503,11 +4506,12 @@ static void Sta_GetAndShowFileBrowsersStats (void)
static void Sta_WriteStatsExpTreesTableHead (void)
{
extern const char *Txt_File_zones;
- extern const char *Txt_Number_of_courses;
- extern const char *Txt_No_of_users;
+ extern const char *Txt_Courses;
+ extern const char *Txt_Groups;
+ extern const char *Txt_Users;
extern const char *Txt_Max_levels;
- extern const char *Txt_No_of_folders;
- extern const char *Txt_No_of_files;
+ extern const char *Txt_Folders;
+ extern const char *Txt_Files;
extern const char *Txt_Size;
extern const char *Txt_STAT_COURSE_FILE_ZONES[];
extern const char *Txt_crs;
@@ -4536,6 +4540,9 @@ static void Sta_WriteStatsExpTreesTableHead (void)
"%s"
""
"
"
+ "%s"
+ " | "
+ ""
"%s/ %s"
" | "
""
@@ -4555,17 +4562,18 @@ static void Sta_WriteStatsExpTreesTableHead (void)
" | "
"",
Txt_File_zones,
- Txt_Number_of_courses,
- Txt_No_of_users,
+ Txt_Courses,
+ Txt_Groups,
+ Txt_Users,
Txt_Max_levels,
- Txt_No_of_folders,
- Txt_No_of_files,
+ Txt_Folders,
+ Txt_Files,
Txt_Size,
- Txt_No_of_folders,Txt_crs,
- Txt_No_of_files,Txt_crs,
+ Txt_Folders,Txt_crs,
+ Txt_Files,Txt_crs,
Txt_Size,Txt_crs,
- Txt_No_of_folders,Txt_usr,
- Txt_No_of_files,Txt_usr,
+ Txt_Folders,Txt_usr,
+ Txt_Files,Txt_usr,
Txt_Size,Txt_usr);
}
@@ -4573,9 +4581,10 @@ static void Sta_WriteStatsExpTreesTableHead (void)
/*************** Write a row of stats of exploration trees *******************/
/*****************************************************************************/
-static void Sta_WriteRowStatsExpTrees (Brw_FileBrowser_t FileZone,const char *NameOfFileZones)
+static void Sta_WriteRowStatsFileBrowsers (Brw_FileBrowser_t FileZone,const char *NameOfFileZones)
{
char StrNumCrss[10+1];
+ char StrNumGrps[10+1];
char StrNumUsrs[10+1];
char StrNumFoldersPerCrs[10+1];
char StrNumFoldersPerUsr[10+1];
@@ -4607,6 +4616,12 @@ static void Sta_WriteRowStatsExpTrees (Brw_FileBrowser_t FileZone,const char *Na
(double) SizeOfFileZones.NumCrss :
0.0);
}
+
+ if (SizeOfFileZones.NumGrps == -1)
+ strcpy (StrNumGrps,"-");
+ else
+ sprintf (StrNumGrps,"%d",SizeOfFileZones.NumGrps);
+
if (SizeOfFileZones.NumUsrs == -1)
{
strcpy (StrNumUsrs ,"-");
@@ -4636,6 +4651,9 @@ static void Sta_WriteRowStatsExpTrees (Brw_FileBrowser_t FileZone,const char *Na
"%s"
""
""
+ "%s"
+ " | "
+ ""
"%u"
" | "
""
@@ -4647,6 +4665,7 @@ static void Sta_WriteRowStatsExpTrees (Brw_FileBrowser_t FileZone,const char *Na
" | ",
ClassData,StyleTableCell,NameOfFileZones,
ClassData,StyleTableCell,StrNumCrss,
+ ClassData,StyleTableCell,StrNumGrps,
ClassData,StyleTableCell,StrNumUsrs,
ClassData,StyleTableCell,SizeOfFileZones.MaxLevels,
ClassData,StyleTableCell,SizeOfFileZones.NumFolders,
@@ -4695,7 +4714,9 @@ static void Sta_WriteRowStatsExpTrees (Brw_FileBrowser_t FileZone,const char *Na
/**************** Get the size of a file zone from database ******************/
/*****************************************************************************/
-static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,Brw_FileBrowser_t FileBrowser,struct Sta_SizeOfFileZones *SizeOfFileZones)
+static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,
+ Brw_FileBrowser_t FileBrowser,
+ struct Sta_SizeOfFileZones *SizeOfFileZones)
{
char Query[2048];
MYSQL_RES *mysql_res;
@@ -4704,197 +4725,528 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,Brw_FileBrowser_t Fil
/***** Get the size of a file browser *****/
switch (Scope)
{
+ /* Scope = the whole platform */
case Sco_SCOPE_PLATFORM:
- if (FileBrowser == Brw_UNKNOWN)
- sprintf (Query,"SELECT COUNT(DISTINCT Cod),'-1',MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
- " FROM file_browser_size"
- " WHERE FileBrowser IN ('%u','%u','%u','%u','%u','%u','%u')",
- (unsigned) Brw_ADMI_DOCUM_CRS,
- (unsigned) Brw_ADMI_SHARE_CRS,
- (unsigned) Brw_ADMI_ASSIG_USR,
- (unsigned) Brw_ADMI_ASSIG_CRS,
- (unsigned) Brw_ADMI_WORKS_USR,
- (unsigned) Brw_ADMI_WORKS_CRS,
- (unsigned) Brw_ADMI_MARKS_CRS);
- else if (FileBrowser == Brw_ADMI_BRIEF_USR)
- sprintf (Query,"SELECT '-1',COUNT(DISTINCT ZoneUsrCod),MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
- " FROM file_browser_size"
- " WHERE FileBrowser='%u'",
- (unsigned) FileBrowser);
- else if (FileBrowser == Brw_ADMI_ASSIG_USR ||
- FileBrowser == Brw_ADMI_WORKS_USR)
- sprintf (Query,"SELECT COUNT(DISTINCT Cod),COUNT(DISTINCT ZoneUsrCod),MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
- " FROM file_browser_size"
- " WHERE FileBrowser='%u'",
- (unsigned) FileBrowser);
- else
- sprintf (Query,"SELECT COUNT(DISTINCT Cod),'-1',MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
- " FROM file_browser_size"
- " WHERE FileBrowser='%u'",
- (unsigned) FileBrowser);
+ switch (FileBrowser)
+ {
+ case Brw_UNKNOWN:
+ sprintf (Query,"SELECT COUNT(DISTINCT CrsCod),COUNT(DISTINCT GrpCod)-1,'-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM "
+ "("
+ "SELECT Cod AS CrsCod,'-1' AS GrpCod,"
+ "NumLevels,NumFolders,NumFiles,TotalSize"
+ " FROM file_browser_size"
+ " WHERE FileBrowser IN ('%u','%u','%u','%u','%u')"
+ " UNION "
+ "SELECT crs_grp_types.CrsCod,file_browser_size.Cod AS GrpCod,"
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM crs_grp_types,crs_grp,file_browser_size"
+ " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u')"
+ ") AS sizes",
+ (unsigned) Brw_ADMI_DOCUM_CRS,
+ (unsigned) Brw_ADMI_SHARE_CRS,
+ (unsigned) Brw_ADMI_ASSIG_USR,
+ (unsigned) Brw_ADMI_WORKS_USR,
+ (unsigned) Brw_ADMI_MARKS_CRS,
+ (unsigned) Brw_ADMI_DOCUM_GRP,
+ (unsigned) Brw_ADMI_SHARE_GRP,
+ (unsigned) Brw_ADMI_MARKS_GRP);
+ break;
+ case Brw_ADMI_DOCUM_CRS:
+ case Brw_ADMI_SHARE_CRS:
+ case Brw_ADMI_MARKS_CRS:
+ sprintf (Query,"SELECT COUNT(DISTINCT Cod),'-1','-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM file_browser_size"
+ " WHERE FileBrowser='%u'",
+ (unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_DOCUM_GRP:
+ case Brw_ADMI_SHARE_GRP:
+ case Brw_ADMI_MARKS_GRP:
+ sprintf (Query,"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),COUNT(DISTINCT file_browser_size.Cod),'-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM crs_grp_types,crs_grp,file_browser_size"
+ " WHERE crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ (unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_ASSIG_USR:
+ case Brw_ADMI_WORKS_USR:
+ sprintf (Query,"SELECT COUNT(DISTINCT Cod),'-1',COUNT(DISTINCT ZoneUsrCod),"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM file_browser_size"
+ " WHERE FileBrowser='%u'",
+ (unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_BRIEF_USR:
+ sprintf (Query,"SELECT '-1','-1',COUNT(DISTINCT ZoneUsrCod),"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM file_browser_size"
+ " WHERE FileBrowser='%u'",
+ (unsigned) FileBrowser);
+ break;
+ default:
+ Lay_ShowErrorAndExit ("Wrong file browser.");
+ break;
+ }
break;
+ /* Scope = the current country */
+ case Sco_SCOPE_COUNTRY:
+ switch (FileBrowser)
+ {
+ case Brw_UNKNOWN:
+ sprintf (Query,"SELECT COUNT(DISTINCT CrsCod),COUNT(DISTINCT GrpCod)-1,'-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM "
+ "("
+ "SELECT file_browser_size.Cod AS CrsCod,'-1' AS GrpCod," // Course zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM institutions,centres,degrees,courses,file_browser_size"
+ " WHERE institutions.CtyCod='%ld'"
+ " AND institutions.InsCod=centres.InsCod"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u')"
+ " UNION "
+ "SELECT crs_grp_types.CrsCod,file_browser_size.Cod AS GrpCod," // Group zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM institutions,centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE institutions.CtyCod='%ld'"
+ " AND institutions.InsCod=centres.InsCod"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u')"
+ ") AS sizes",
+ Gbl.CurrentCty.Cty.CtyCod,
+ (unsigned) Brw_ADMI_DOCUM_CRS,
+ (unsigned) Brw_ADMI_SHARE_CRS,
+ (unsigned) Brw_ADMI_ASSIG_USR,
+ (unsigned) Brw_ADMI_WORKS_USR,
+ (unsigned) Brw_ADMI_MARKS_CRS,
+ Gbl.CurrentCty.Cty.CtyCod,
+ (unsigned) Brw_ADMI_DOCUM_GRP,
+ (unsigned) Brw_ADMI_SHARE_GRP,
+ (unsigned) Brw_ADMI_MARKS_GRP);
+ break;
+ case Brw_ADMI_DOCUM_CRS:
+ case Brw_ADMI_SHARE_CRS:
+ case Brw_ADMI_MARKS_CRS:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1','-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM institutions,centres,degrees,courses,file_browser_size"
+ " WHERE institutions.CtyCod='%ld'"
+ " AND institutions.InsCod=centres.InsCod"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " and file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_DOCUM_GRP:
+ case Brw_ADMI_SHARE_GRP:
+ case Brw_ADMI_MARKS_GRP:
+ sprintf (Query,"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),COUNT(DISTINCT file_browser_size.Cod),'-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM institutions,centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE institutions.CtyCod='%ld'"
+ " AND institutions.InsCod=centres.InsCod"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_ASSIG_USR:
+ case Brw_ADMI_WORKS_USR:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM institutions,centres,degrees,courses,file_browser_size"
+ " WHERE institutions.CtyCod='%ld'"
+ " AND institutions.InsCod=centres.InsCod"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_BRIEF_USR:
+ sprintf (Query,"SELECT '-1','-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM institutions,centres,degrees,courses,crs_usr,file_browser_size"
+ " WHERE institutions.CtyCod='%ld'"
+ " AND institutions.InsCod=centres.InsCod"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_usr.CrsCod"
+ " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCty.Cty.CtyCod,(unsigned) FileBrowser);
+ break;
+ default:
+ Lay_ShowErrorAndExit ("Wrong file browser.");
+ break;
+ }
+ break;
+ /* Scope = the current institution */
case Sco_SCOPE_INSTITUTION:
- if (FileBrowser == Brw_UNKNOWN)
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM centres,degrees,courses,file_browser_size"
- " WHERE centres.InsCod='%ld'"
- " AND centres.CtrCod=degrees.CtrCod"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=file_browser_size.Cod"
- " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u','%u','%u')",
- Gbl.CurrentIns.Ins.InsCod,
- (unsigned) Brw_ADMI_DOCUM_CRS,
- (unsigned) Brw_ADMI_SHARE_CRS,
- (unsigned) Brw_ADMI_ASSIG_USR,
- (unsigned) Brw_ADMI_ASSIG_CRS,
- (unsigned) Brw_ADMI_WORKS_USR,
- (unsigned) Brw_ADMI_WORKS_CRS,
- (unsigned) Brw_ADMI_MARKS_CRS);
- else if (FileBrowser == Brw_ADMI_BRIEF_USR)
- sprintf (Query,"SELECT '-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,centres,degrees,courses,crs_usr"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND centres.InsCod='%ld'"
- " AND centres.CtrCod=degrees.CtrCod"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=crs_usr.CrsCod"
- " AND file_browser_size.ZoneUsrCod=crs_usr.UsrCod",
- (unsigned) FileBrowser,Gbl.CurrentIns.Ins.InsCod);
- else if (FileBrowser == Brw_ADMI_ASSIG_USR ||
- FileBrowser == Brw_ADMI_WORKS_USR)
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),COUNT(DISTINCT file_browser_size.ZoneUsrCod),MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,centres,degrees,courses"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND centres.InsCod='%ld'"
- " AND centres.CtrCod=degrees.CtrCod"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=file_browser_size.Cod",
- (unsigned) FileBrowser,Gbl.CurrentIns.Ins.InsCod);
- else
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,centres,degrees,courses"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND centres.InsCod='%ld'"
- " AND centres.CtrCod=degrees.CtrCod"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=file_browser_size.Cod",
- (unsigned) FileBrowser,Gbl.CurrentIns.Ins.InsCod);
+ switch (FileBrowser)
+ {
+ case Brw_UNKNOWN:
+ sprintf (Query,"SELECT COUNT(DISTINCT CrsCod),COUNT(DISTINCT GrpCod)-1,'-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM "
+ "("
+ "SELECT file_browser_size.Cod AS CrsCod,'-1' AS GrpCod," // Course zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM centres,degrees,courses,file_browser_size"
+ " WHERE centres.InsCod='%ld'"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u')"
+ " UNION "
+ "SELECT crs_grp_types.CrsCod,file_browser_size.Cod AS GrpCod," // Group zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE centres.InsCod='%ld'"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u')"
+ ") AS sizes",
+ Gbl.CurrentIns.Ins.InsCod,
+ (unsigned) Brw_ADMI_DOCUM_CRS,
+ (unsigned) Brw_ADMI_SHARE_CRS,
+ (unsigned) Brw_ADMI_ASSIG_USR,
+ (unsigned) Brw_ADMI_WORKS_USR,
+ (unsigned) Brw_ADMI_MARKS_CRS,
+ Gbl.CurrentIns.Ins.InsCod,
+ (unsigned) Brw_ADMI_DOCUM_GRP,
+ (unsigned) Brw_ADMI_SHARE_GRP,
+ (unsigned) Brw_ADMI_MARKS_GRP);
+ break;
+ case Brw_ADMI_DOCUM_CRS:
+ case Brw_ADMI_SHARE_CRS:
+ case Brw_ADMI_MARKS_CRS:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1','-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM centres,degrees,courses,file_browser_size"
+ " WHERE centres.InsCod='%ld'"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " and file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_DOCUM_GRP:
+ case Brw_ADMI_SHARE_GRP:
+ case Brw_ADMI_MARKS_GRP:
+ sprintf (Query,"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),COUNT(DISTINCT file_browser_size.Cod),'-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM centres,degrees,courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE centres.InsCod='%ld'"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_ASSIG_USR:
+ case Brw_ADMI_WORKS_USR:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM centres,degrees,courses,file_browser_size"
+ " WHERE centres.InsCod='%ld'"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_BRIEF_USR:
+ sprintf (Query,"SELECT '-1','-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM centres,degrees,courses,crs_usr,file_browser_size"
+ " WHERE centres.InsCod='%ld'"
+ " AND centres.CtrCod=degrees.CtrCod"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_usr.CrsCod"
+ " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentIns.Ins.InsCod,(unsigned) FileBrowser);
+ break;
+ default:
+ Lay_ShowErrorAndExit ("Wrong file browser.");
+ break;
+ }
break;
+ /* Scope = the current centre */
case Sco_SCOPE_CENTRE:
- if (FileBrowser == Brw_UNKNOWN)
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM degrees,courses,file_browser_size"
- " WHERE degrees.CtrCod='%ld'"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=file_browser_size.Cod"
- " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u','%u','%u')",
- Gbl.CurrentCtr.Ctr.CtrCod,
- (unsigned) Brw_ADMI_DOCUM_CRS,
- (unsigned) Brw_ADMI_SHARE_CRS,
- (unsigned) Brw_ADMI_ASSIG_USR,
- (unsigned) Brw_ADMI_ASSIG_CRS,
- (unsigned) Brw_ADMI_WORKS_USR,
- (unsigned) Brw_ADMI_WORKS_CRS,
- (unsigned) Brw_ADMI_MARKS_CRS);
- else if (FileBrowser == Brw_ADMI_BRIEF_USR)
- sprintf (Query,"SELECT '-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,degrees,courses,crs_usr"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND degrees.CtrCod='%ld'"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=crs_usr.CrsCod"
- " AND file_browser_size.ZoneUsrCod=crs_usr.UsrCod",
- (unsigned) FileBrowser,Gbl.CurrentCtr.Ctr.CtrCod);
- else if (FileBrowser == Brw_ADMI_ASSIG_USR ||
- FileBrowser == Brw_ADMI_WORKS_USR)
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),COUNT(DISTINCT file_browser_size.ZoneUsrCod),MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,degrees,courses"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND degrees.CtrCod='%ld'"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=file_browser_size.Cod",
- (unsigned) FileBrowser,Gbl.CurrentCtr.Ctr.CtrCod);
- else
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,degrees,courses"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND degrees.CtrCod='%ld'"
- " AND degrees.DegCod=courses.DegCod"
- " AND courses.CrsCod=file_browser_size.Cod",
- (unsigned) FileBrowser,Gbl.CurrentCtr.Ctr.CtrCod);
+ switch (FileBrowser)
+ {
+ case Brw_UNKNOWN:
+ sprintf (Query,"SELECT COUNT(DISTINCT CrsCod),COUNT(DISTINCT GrpCod)-1,'-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM "
+ "("
+ "SELECT file_browser_size.Cod AS CrsCod,'-1' AS GrpCod," // Course zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM degrees,courses,file_browser_size"
+ " WHERE degrees.CtrCod='%ld'"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u')"
+ " UNION "
+ "SELECT crs_grp_types.CrsCod,file_browser_size.Cod AS GrpCod," // Group zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM degrees,courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE degrees.CtrCod='%ld'"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u')"
+ ") AS sizes",
+ Gbl.CurrentCtr.Ctr.CtrCod,
+ (unsigned) Brw_ADMI_DOCUM_CRS,
+ (unsigned) Brw_ADMI_SHARE_CRS,
+ (unsigned) Brw_ADMI_ASSIG_USR,
+ (unsigned) Brw_ADMI_WORKS_USR,
+ (unsigned) Brw_ADMI_MARKS_CRS,
+ Gbl.CurrentCtr.Ctr.CtrCod,
+ (unsigned) Brw_ADMI_DOCUM_GRP,
+ (unsigned) Brw_ADMI_SHARE_GRP,
+ (unsigned) Brw_ADMI_MARKS_GRP);
+ break;
+ case Brw_ADMI_DOCUM_CRS:
+ case Brw_ADMI_SHARE_CRS:
+ case Brw_ADMI_MARKS_CRS:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1','-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM degrees,courses,file_browser_size"
+ " WHERE degrees.CtrCod='%ld'"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_DOCUM_GRP:
+ case Brw_ADMI_SHARE_GRP:
+ case Brw_ADMI_MARKS_GRP:
+ sprintf (Query,"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),COUNT(DISTINCT file_browser_size.Cod),'-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM degrees,courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE degrees.CtrCod='%ld'"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_ASSIG_USR:
+ case Brw_ADMI_WORKS_USR:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM degrees,courses,file_browser_size"
+ " WHERE degrees.CtrCod='%ld'"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_BRIEF_USR:
+ sprintf (Query,"SELECT '-1','-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM degrees,courses,crs_usr,file_browser_size"
+ " WHERE degrees.CtrCod='%ld'"
+ " AND degrees.DegCod=courses.DegCod"
+ " AND courses.CrsCod=crs_usr.CrsCod"
+ " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCtr.Ctr.CtrCod,(unsigned) FileBrowser);
+ break;
+ default:
+ Lay_ShowErrorAndExit ("Wrong file browser.");
+ break;
+ }
break;
+ /* Scope = the current degree */
case Sco_SCOPE_DEGREE:
- if (FileBrowser == Brw_UNKNOWN)
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,courses"
- " WHERE courses.DegCod='%ld' AND courses.CrsCod=file_browser_size.Cod"
- " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u','%u','%u')",
- Gbl.CurrentDeg.Deg.DegCod,
- (unsigned) Brw_ADMI_DOCUM_CRS,
- (unsigned) Brw_ADMI_SHARE_CRS,
- (unsigned) Brw_ADMI_ASSIG_USR,
- (unsigned) Brw_ADMI_ASSIG_CRS,
- (unsigned) Brw_ADMI_WORKS_USR,
- (unsigned) Brw_ADMI_WORKS_CRS,
- (unsigned) Brw_ADMI_MARKS_CRS);
- else if (FileBrowser == Brw_ADMI_BRIEF_USR)
- sprintf (Query,"SELECT '-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,courses,crs_usr"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND courses.DegCod='%ld'"
- " AND courses.CrsCod=crs_usr.CrsCod"
- " AND file_browser_size.ZoneUsrCod=crs_usr.UsrCod",
- (unsigned) FileBrowser,Gbl.CurrentDeg.Deg.DegCod);
- else if (FileBrowser == Brw_ADMI_ASSIG_USR ||
- FileBrowser == Brw_ADMI_WORKS_USR)
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),COUNT(DISTINCT file_browser_size.ZoneUsrCod),MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,courses"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND courses.DegCod='%ld'"
- " AND courses.CrsCod=file_browser_size.Cod",
- (unsigned) FileBrowser,Gbl.CurrentDeg.Deg.DegCod);
- else
- sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,courses"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND courses.DegCod='%ld'"
- " AND courses.CrsCod=file_browser_size.Cod",
- (unsigned) FileBrowser,Gbl.CurrentDeg.Deg.DegCod);
+ switch (FileBrowser)
+ {
+ case Brw_UNKNOWN:
+ sprintf (Query,"SELECT COUNT(DISTINCT CrsCod),COUNT(DISTINCT GrpCod)-1,'-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM "
+ "("
+ "SELECT file_browser_size.Cod AS CrsCod,'-1' AS GrpCod," // Course zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM courses,file_browser_size"
+ " WHERE courses.DegCod='%ld'"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u')"
+ " UNION "
+ "SELECT crs_grp_types.CrsCod,file_browser_size.Cod AS GrpCod," // Group zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE courses.DegCod='%ld'"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u')"
+ ") AS sizes",
+ Gbl.CurrentDeg.Deg.DegCod,
+ (unsigned) Brw_ADMI_DOCUM_CRS,
+ (unsigned) Brw_ADMI_SHARE_CRS,
+ (unsigned) Brw_ADMI_ASSIG_USR,
+ (unsigned) Brw_ADMI_WORKS_USR,
+ (unsigned) Brw_ADMI_MARKS_CRS,
+ Gbl.CurrentDeg.Deg.DegCod,
+ (unsigned) Brw_ADMI_DOCUM_GRP,
+ (unsigned) Brw_ADMI_SHARE_GRP,
+ (unsigned) Brw_ADMI_MARKS_GRP);
+ break;
+ case Brw_ADMI_DOCUM_CRS:
+ case Brw_ADMI_SHARE_CRS:
+ case Brw_ADMI_MARKS_CRS:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1','-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM courses,file_browser_size"
+ " WHERE courses.DegCod='%ld'"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_DOCUM_GRP:
+ case Brw_ADMI_SHARE_GRP:
+ case Brw_ADMI_MARKS_GRP:
+ sprintf (Query,"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),COUNT(DISTINCT file_browser_size.Cod),'-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM courses,crs_grp_types,crs_grp,file_browser_size"
+ " WHERE courses.DegCod='%ld'"
+ " AND courses.CrsCod=crs_grp_types.CrsCod"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_ASSIG_USR:
+ case Brw_ADMI_WORKS_USR:
+ sprintf (Query,"SELECT COUNT(DISTINCT file_browser_size.Cod),'-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM courses,file_browser_size"
+ " WHERE courses.DegCod='%ld'"
+ " AND courses.CrsCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_BRIEF_USR:
+ sprintf (Query,"SELECT '-1','-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM courses,crs_usr,file_browser_size"
+ " WHERE courses.DegCod='%ld'"
+ " AND courses.CrsCod=crs_usr.CrsCod"
+ " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentDeg.Deg.DegCod,(unsigned) FileBrowser);
+ break;
+ default:
+ Lay_ShowErrorAndExit ("Wrong file browser.");
+ break;
+ }
break;
+ /* Scope = the current course */
case Sco_SCOPE_COURSE:
- if (FileBrowser == Brw_UNKNOWN)
- sprintf (Query,"SELECT '1','-1',MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
- " FROM file_browser_size"
- " WHERE Cod='%ld'"
- " AND file_browser_size.FileBrowser IN ('%u','%u','%u','%u','%u','%u','%u')",
- Gbl.CurrentCrs.Crs.CrsCod,
- (unsigned) Brw_ADMI_DOCUM_CRS,
- (unsigned) Brw_ADMI_SHARE_CRS,
- (unsigned) Brw_ADMI_ASSIG_USR,
- (unsigned) Brw_ADMI_ASSIG_CRS,
- (unsigned) Brw_ADMI_WORKS_USR,
- (unsigned) Brw_ADMI_WORKS_CRS,
- (unsigned) Brw_ADMI_MARKS_CRS);
- else if (FileBrowser == Brw_ADMI_BRIEF_USR)
- sprintf (Query,"SELECT '-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
- " FROM file_browser_size,crs_usr"
- " WHERE file_browser_size.FileBrowser='%u'"
- " AND crs_usr.CrsCod='%ld'"
- " AND file_browser_size.ZoneUsrCod=crs_usr.UsrCod",
- (unsigned) FileBrowser,Gbl.CurrentCrs.Crs.CrsCod);
- else if (FileBrowser == Brw_ADMI_ASSIG_USR ||
- FileBrowser == Brw_ADMI_WORKS_USR)
- sprintf (Query,"SELECT '1',COUNT(DISTINCT ZoneUsrCod),MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
- " FROM file_browser_size"
- " WHERE FileBrowser='%u'"
- " AND Cod='%ld'",
- (unsigned) FileBrowser,Gbl.CurrentCrs.Crs.CrsCod);
- else
- sprintf (Query,"SELECT '1','-1',MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
- " FROM file_browser_size"
- " WHERE FileBrowser='%u'"
- " AND Cod='%ld'",
- (unsigned) FileBrowser,Gbl.CurrentCrs.Crs.CrsCod);
+ switch (FileBrowser)
+ {
+ case Brw_UNKNOWN:
+ sprintf (Query,"SELECT COUNT(DISTINCT CrsCod),COUNT(DISTINCT GrpCod)-1,'-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM "
+ "("
+ "SELECT Cod AS CrsCod,'-1' AS GrpCod," // Course zones
+ "NumLevels,NumFolders,NumFiles,TotalSize"
+ " FROM file_browser_size"
+ " WHERE Cod='%ld'"
+ " AND FileBrowser IN ('%u','%u','%u','%u','%u')"
+ " UNION "
+ "SELECT crs_grp_types.CrsCod,file_browser_size.Cod AS GrpCod," // Group zones
+ "file_browser_size.NumLevels,file_browser_size.NumFolders,file_browser_size.NumFiles,file_browser_size.TotalSize"
+ " FROM crs_grp_types,crs_grp,file_browser_size"
+ " WHERE crs_grp_types.CrsCod='%ld'"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser IN ('%u','%u','%u')"
+ ") AS sizes",
+ Gbl.CurrentCrs.Crs.CrsCod,
+ (unsigned) Brw_ADMI_DOCUM_CRS,
+ (unsigned) Brw_ADMI_SHARE_CRS,
+ (unsigned) Brw_ADMI_ASSIG_USR,
+ (unsigned) Brw_ADMI_WORKS_USR,
+ (unsigned) Brw_ADMI_MARKS_CRS,
+ Gbl.CurrentCrs.Crs.CrsCod,
+ (unsigned) Brw_ADMI_DOCUM_GRP,
+ (unsigned) Brw_ADMI_SHARE_GRP,
+ (unsigned) Brw_ADMI_MARKS_GRP);
+ break;
+ case Brw_ADMI_DOCUM_CRS:
+ case Brw_ADMI_SHARE_CRS:
+ case Brw_ADMI_MARKS_CRS:
+ sprintf (Query,"SELECT '1','-1','-1',"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM file_browser_size"
+ " WHERE Cod='%ld' AND FileBrowser='%u'",
+ Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_DOCUM_GRP:
+ case Brw_ADMI_SHARE_GRP:
+ case Brw_ADMI_MARKS_GRP:
+ sprintf (Query,"SELECT COUNT(DISTINCT crs_grp_types.CrsCod),COUNT(DISTINCT file_browser_size.Cod),'-1',"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM crs_grp_types,crs_grp,file_browser_size"
+ " WHERE crs_grp_types.CrsCod='%ld'"
+ " AND crs_grp_types.GrpTypCod=crs_grp.GrpTypCod"
+ " AND crs_grp.GrpCod=file_browser_size.Cod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_ASSIG_USR:
+ case Brw_ADMI_WORKS_USR:
+ sprintf (Query,"SELECT '1','-1',COUNT(DISTINCT ZoneUsrCod),"
+ "MAX(NumLevels),SUM(NumFolders),SUM(NumFiles),SUM(TotalSize)"
+ " FROM file_browser_size"
+ " WHERE Cod='%ld' AND FileBrowser='%u'",
+ Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser);
+ break;
+ case Brw_ADMI_BRIEF_USR:
+ sprintf (Query,"SELECT '-1','-1',COUNT(DISTINCT file_browser_size.ZoneUsrCod),"
+ "MAX(file_browser_size.NumLevels),SUM(file_browser_size.NumFolders),SUM(file_browser_size.NumFiles),SUM(file_browser_size.TotalSize)"
+ " FROM crs_usr,file_browser_size"
+ " WHERE crs_usr.CrsCod='%ld'"
+ " AND crs_usr.UsrCod=file_browser_size.ZoneUsrCod"
+ " AND file_browser_size.FileBrowser='%u'",
+ Gbl.CurrentCrs.Crs.CrsCod,(unsigned) FileBrowser);
+ break;
+ default:
+ Lay_ShowErrorAndExit ("Wrong file browser.");
+ break;
+ }
break;
default:
Lay_ShowErrorAndExit ("Wrong scope.");
@@ -4916,29 +5268,34 @@ static void Sta_GetSizeOfFileZoneFromDB (Sco_Scope_t Scope,Brw_FileBrowser_t Fil
if (sscanf (row[0],"%u",&(SizeOfFileZones->NumCrss)) != 1)
Lay_ShowErrorAndExit ("Error when getting number of courses.");
- /* Get number of users (row[1]) */
+ /* Get number of groups (row[1]) */
if (row[1])
- if (sscanf (row[1],"%u",&(SizeOfFileZones->NumUsrs)) != 1)
+ if (sscanf (row[1],"%u",&(SizeOfFileZones->NumGrps)) != 1)
+ Lay_ShowErrorAndExit ("Error when getting number of groups.");
+
+ /* Get number of users (row[2]) */
+ if (row[2])
+ if (sscanf (row[2],"%u",&(SizeOfFileZones->NumUsrs)) != 1)
Lay_ShowErrorAndExit ("Error when getting number of users.");
- /* Get maximum number of levels (row[2]) */
- if (row[2])
- if (sscanf (row[2],"%u",&(SizeOfFileZones->MaxLevels)) != 1)
+ /* Get maximum number of levels (row[3]) */
+ if (row[3])
+ if (sscanf (row[3],"%u",&(SizeOfFileZones->MaxLevels)) != 1)
Lay_ShowErrorAndExit ("Error when getting maximum number of levels.");
- /* Get number of folders (row[3]) */
- if (row[3])
- if (sscanf (row[3],"%lu",&(SizeOfFileZones->NumFolders)) != 1)
+ /* Get number of folders (row[4]) */
+ if (row[4])
+ if (sscanf (row[4],"%lu",&(SizeOfFileZones->NumFolders)) != 1)
Lay_ShowErrorAndExit ("Error when getting number of folders.");
- /* Get number of files (row[4]) */
- if (row[4])
- if (sscanf (row[4],"%lu",&(SizeOfFileZones->NumFiles)) != 1)
+ /* Get number of files (row[5]) */
+ if (row[5])
+ if (sscanf (row[5],"%lu",&(SizeOfFileZones->NumFiles)) != 1)
Lay_ShowErrorAndExit ("Error when getting number of files.");
- /* Get total size (row[5]) */
- if (row[5])
- if (sscanf (row[5],"%llu",&(SizeOfFileZones->Size)) != 1)
+ /* Get total size (row[6]) */
+ if (row[6])
+ if (sscanf (row[6],"%llu",&(SizeOfFileZones->Size)) != 1)
Lay_ShowErrorAndExit ("Error when getting toal size.");
/* Free structure that stores the query result */
diff --git a/swad_text.c b/swad_text.c
index 504a0005c..d6a3a0d86 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -22770,27 +22770,6 @@ const char *Txt_No_of_files_in_DOCUM_zones =
"Nº de arquivos em zonas de documentos";
#endif
-const char *Txt_No_of_folders =
-#if L==0
- "Nombre de carpetes";
-#elif L==1
- "Anzahl der Verzeichnisse";
-#elif L==2
- "No. of folders";
-#elif L==3
- "Nº de carpetas";
-#elif L==4
- "Nombre de répertoires";
-#elif L==5
- "Nº de carpetas"; // Okoteve traducción
-#elif L==6
- "Numero di cartelle";
-#elif L==7
- "Liczba folderów";
-#elif L==8
- "Nº de diretórios";
-#endif
-
const char *Txt_No_of_forums =
#if L==0
"Nº de foros"; // Necessita traduccio
@@ -24558,27 +24537,6 @@ const char *Txt_Number_of_BR_assignments =
"Nº de atividades";
#endif
-const char *Txt_Number_of_courses =
-#if L==0
- "Nombre d'assignat.";
-#elif L==1
- "Anzahl der Kursen";
-#elif L==2
- "Number of courses";
-#elif L==3
- "Nº de asignat.";
-#elif L==4
- "Nombre de matières";
-#elif L==5
- "Nº de asignat."; // Okoteve traducción
-#elif L==6
- "Numero di corsi";
-#elif L==7
- "Liczba kursów";
-#elif L==8
- "Nº de disciplinas";
-#endif
-
const char *Txt_Number_of_BR_courses_with_BR_assignments =
#if L==0
"Nombre d'assignatures amb activitats";
|