Version 14.70

This commit is contained in:
Antonio Cañas Vargas 2015-01-26 22:12:49 +01:00
parent b1414273de
commit e506e736f4
4 changed files with 577 additions and 259 deletions

View File

@ -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)

View File

@ -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

View File

@ -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"
"</th>"
"<th class=\"TIT_TBL\" style=\"text-align:right;\">"
"%s"
"</th>"
"<th class=\"TIT_TBL\" style=\"text-align:right;\">"
"%s/<br />%s"
"</th>"
"<th class=\"TIT_TBL\" style=\"text-align:right;\">"
@ -4555,17 +4562,18 @@ static void Sta_WriteStatsExpTreesTableHead (void)
"</th>"
"</tr>",
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"
"</td>"
"<td class=\"%s\" style=\"text-align:right; %s\">"
"%s"
"</td>"
"<td class=\"%s\" style=\"text-align:right; %s\">"
"%u"
"</td>"
"<td class=\"%s\" style=\"text-align:right; %s\">"
@ -4647,6 +4665,7 @@ static void Sta_WriteRowStatsExpTrees (Brw_FileBrowser_t FileZone,const char *Na
"<td class=\"%s\" style=\"text-align:right; %s\">",
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 */

View File

@ -22770,27 +22770,6 @@ const char *Txt_No_of_files_in_DOCUM_zones =
"N&ordm; 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&ordm; de carpetas";
#elif L==4
"Nombre de r&eacute;pertoires";
#elif L==5
"N&ordm; de carpetas"; // Okoteve traducción
#elif L==6
"Numero di cartelle";
#elif L==7
"Liczba folder&oacute;w";
#elif L==8
"N&ordm; de diret&oacute;rios";
#endif
const char *Txt_No_of_forums =
#if L==0
"N&ordm; de foros"; // Necessita traduccio
@ -24558,27 +24537,6 @@ const char *Txt_Number_of_BR_assignments =
"N&ordm; de<br />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&ordm; de asignat.";
#elif L==4
"Nombre de mati&egrave;res";
#elif L==5
"N&ordm; de asignat."; // Okoteve traducción
#elif L==6
"Numero di corsi";
#elif L==7
"Liczba kurs&oacute;w";
#elif L==8
"N&ordm; de disciplinas";
#endif
const char *Txt_Number_of_BR_courses_with_BR_assignments =
#if L==0
"Nombre<br />d'assignatures<br />amb activitats";