Version 18.11.5

This commit is contained in:
Antonio Cañas Vargas 2018-10-31 00:53:39 +01:00
parent 0c3829667c
commit b1fbfa2f5f
4 changed files with 300 additions and 290 deletions

View File

@ -355,11 +355,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.11.5 (2018-10-30)"
#define Log_PLATFORM_VERSION "SWAD 18.11.5 (2018-10-31)"
#define CSS_FILE "swad18.4.css"
#define JS_FILE "swad17.17.1.js"
/*
Version 18.11.5: Oct 30, 2018 Joining building and performing query into one function. (? lines)
Version 18.11.5: Oct 31, 2018 Joining building and performing query into one function. (235619 lines)
Version 18.11.4: Oct 30, 2018 Joining building and performing query into one function. (235593 lines)
Version 18.11.3: Oct 30, 2018 Joining building and performing query into one function. (235553 lines)
Version 18.11.2: Oct 30, 2018 Joining building and performing query into one function. (235531 lines)

View File

@ -1718,7 +1718,7 @@ static bool Brw_CheckIfICanModifyPrjDocFileOrFolder (void);
static bool Brw_CheckIfICanModifyPrjAssFileOrFolder (void);
static long Brw_GetPublisherOfSubtree (void);
static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row);
static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row);
static void Brw_PutLinkToAskRemOldFiles (void);
static void Brw_RemoveOldFilesInBrowser (unsigned Months,struct Brw_NumObjects *Removed);
@ -12493,9 +12493,9 @@ void Brw_GetSummaryAndContentOfFile (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
/*****************************************************************************/
/**************************** List documents found ***************************/
/*****************************************************************************/
// Returns the number of documents found
unsigned Brw_ListDocsFound (const char *TitleSingular,const char *TitlePlural)
void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned long NumDocs,
const char *TitleSingular,const char *TitlePlural)
{
extern const char *Txt_Institution;
extern const char *Txt_Centre;
@ -12505,20 +12505,18 @@ unsigned Brw_ListDocsFound (const char *TitleSingular,const char *TitlePlural)
extern const char *Txt_Document;
extern const char *Txt_hidden_document;
extern const char *Txt_hidden_documents;
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned NumDocs;
unsigned NumDoc;
unsigned NumDocsNotHidden = 0;
unsigned NumDocsHidden;
unsigned long NumDoc;
unsigned long NumDocsNotHidden = 0;
unsigned long NumDocsHidden;
/***** Query database *****/
if ((NumDocs = (unsigned) DB_QuerySELECT_new (&mysql_res,"can not get files")))
if (NumDocs)
{
/***** Start box and table *****/
/* Number of documents found */
snprintf (Gbl.Title,sizeof (Gbl.Title),
"%u %s",
"%lu %s",
NumDocs,(NumDocs == 1) ? TitleSingular :
TitlePlural);
Box_StartBoxTable (NULL,Gbl.Title,NULL,
@ -12559,7 +12557,7 @@ unsigned Brw_ListDocsFound (const char *TitleSingular,const char *TitlePlural)
NumDoc++)
{
/* Get next course */
row = mysql_fetch_row (mysql_res);
row = mysql_fetch_row (*mysql_res);
/* Write data of this course */
Brw_WriteRowDocData (&NumDocsNotHidden,row);
@ -12574,7 +12572,7 @@ unsigned Brw_ListDocsFound (const char *TitleSingular,const char *TitlePlural)
if (NumDocsHidden == 1)
fprintf (Gbl.F.Out,"1 %s",Txt_hidden_document);
else
fprintf (Gbl.F.Out,"%u %s",NumDocsHidden,Txt_hidden_documents);
fprintf (Gbl.F.Out,"%lu %s",NumDocsHidden,Txt_hidden_documents);
fprintf (Gbl.F.Out,")"
"</th>"
"</tr>");
@ -12584,16 +12582,14 @@ unsigned Brw_ListDocsFound (const char *TitleSingular,const char *TitlePlural)
}
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
return NumDocs;
DB_FreeMySQLResult (mysql_res);
}
/*****************************************************************************/
/************ Write the data of a document (result of a query) ***************/
/*****************************************************************************/
static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row)
{
extern const char *Txt_Documents_area;
extern const char *Txt_Teachers_files_area;
@ -12666,7 +12662,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
/***** Write number of document in this search *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"DAT RIGHT_TOP %s\">"
"%u"
"%lu"
"</td>",
BgColor,++(*NumDocsNotHidden));

View File

@ -259,7 +259,8 @@ void Brw_GetSummaryAndContentOfFile (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
char **ContentStr,
long FilCod,bool GetContent);
unsigned Brw_ListDocsFound (const char *TitleSingular,const char *TitlePlural);
void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned long NumDocs,
const char *TitleSingular,const char *TitlePlural);
void Brw_AskRemoveOldFiles (void);
void Brw_RemoveOldFilesBriefcase (void);

View File

@ -830,6 +830,8 @@ static unsigned Sch_SearchOpenDocumentsInDB (const char *RangeQuery)
extern const char *Txt_open_document;
extern const char *Txt_open_documents;
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
MYSQL_RES *mysql_res;
unsigned long NumDocs;
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_OPEN_DOCUMENTS))
@ -837,95 +839,97 @@ static unsigned Sch_SearchOpenDocumentsInDB (const char *RangeQuery)
if (Sch_BuildSearchQuery (SearchQuery,"SUBSTRING_INDEX(files.Path,'/',-1)",
"_latin1 "," COLLATE latin1_general_ci"))
{
/***** Build the query *****/
DB_BuildQuery ("SELECT * FROM "
"("
"SELECT files.FilCod," // Institution
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"-1 AS CtrCod,'' AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Centre
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Degree
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"-1,'' AS CrsShortName,"
"-1"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Course
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"-1"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
SearchQuery,
(unsigned) Brw_ADMI_DOC_INS,
(unsigned) Brw_ADMI_SHR_INS,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_CTR,
(unsigned) Brw_ADMI_SHR_CTR,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_DEG,
(unsigned) Brw_ADMI_SHR_DEG,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
RangeQuery);
/***** Query database *****/
NumDocs = DB_QuerySELECT (&mysql_res,"can not get files",
"SELECT * FROM "
"("
"SELECT files.FilCod," // Institution
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"-1 AS CtrCod,'' AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Centre
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Degree
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"-1,'' AS CrsShortName,"
"-1"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Course
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"-1"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
SearchQuery,
(unsigned) Brw_ADMI_DOC_INS,
(unsigned) Brw_ADMI_SHR_INS,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_CTR,
(unsigned) Brw_ADMI_SHR_CTR,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_DEG,
(unsigned) Brw_ADMI_SHR_DEG,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
RangeQuery);
/***** Query database and list documents found *****/
/* if (Gbl.Usrs.Me.Roles.LoggedRole == Rol_SYS_ADM)
Lay_ShowAlert (Lay_INFO,Query); */
return Brw_ListDocsFound (Txt_open_document,
Txt_open_documents);
/***** List documents found *****/
Brw_ListDocsFound (&mysql_res,NumDocs,
Txt_open_document,
Txt_open_documents);
return (unsigned) NumDocs;
}
return 0;
@ -940,7 +944,8 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
extern const char *Txt_document_in_my_courses;
extern const char *Txt_documents_in_my_courses;
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
unsigned NumDocs;
MYSQL_RES *mysql_res;
unsigned long NumDocs;
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_DOCUM_IN_MY_COURSES))
@ -984,68 +989,70 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
DB_Query_new ("can not create temporary table");
/***** Build the query *****/
DB_BuildQuery ("SELECT * FROM "
"("
"SELECT files.FilCod,"
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.FilCod IN (SELECT FilCod FROM my_files_crs) AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod,"
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"crs_grp.GrpCod"
" FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries"
" WHERE files.FilCod IN (SELECT FilCod FROM my_files_grp) AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=crs_grp.GrpCod"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
SearchQuery,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_MRK_CRS,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP,
RangeQuery);
NumDocs = DB_QuerySELECT (&mysql_res,"can not get files",
"SELECT * FROM "
"("
"SELECT files.FilCod,"
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.FilCod IN (SELECT FilCod FROM my_files_crs) AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod,"
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"crs_grp.GrpCod"
" FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries"
" WHERE files.FilCod IN (SELECT FilCod FROM my_files_grp) AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=crs_grp.GrpCod"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
SearchQuery,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_MRK_CRS,
RangeQuery,
SearchQuery,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP,
RangeQuery);
/***** Query database and list documents found *****/
NumDocs = Brw_ListDocsFound (Txt_document_in_my_courses,
Txt_documents_in_my_courses);
/***** List documents found *****/
Brw_ListDocsFound (&mysql_res,NumDocs,
Txt_document_in_my_courses,
Txt_documents_in_my_courses);
/***** Drop temporary table *****/
DB_BuildQuery ("DROP TEMPORARY TABLE IF EXISTS my_files_crs,my_files_grp");
DB_Query_new ("can not remove temporary table");
return NumDocs;
return (unsigned) NumDocs;
}
return 0;
@ -1060,6 +1067,8 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
extern const char *Txt_document_from_me;
extern const char *Txt_documents_from_me;
char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1];
MYSQL_RES *mysql_res;
unsigned long NumDocs;
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_MY_DOCUMENTS))
@ -1068,132 +1077,136 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
"_latin1 "," COLLATE latin1_general_ci"))
{
/***** Build the query *****/
DB_BuildQuery ("SELECT * FROM "
"("
"SELECT files.FilCod," // Institution
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"-1 AS CtrCod,'' AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Centre
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Degree
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Course
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Group
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"crs_grp.GrpCod"
" FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=crs_grp.GrpCod"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Briefcase
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"-1 AS InsCod,'' AS InsShortName,"
"-1 AS CtrCod,'' AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser=%u"
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_INS,
(unsigned) Brw_ADMI_SHR_INS,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_CTR,
(unsigned) Brw_ADMI_SHR_CTR,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_DEG,
(unsigned) Brw_ADMI_SHR_DEG,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_MRK_CRS,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_BRF_USR);
NumDocs = DB_QuerySELECT (&mysql_res,"can not get files",
"SELECT * FROM "
"("
"SELECT files.FilCod," // Institution
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"-1 AS CtrCod,'' AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Centre
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Degree
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u)"
" AND files.Cod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Course
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"-1 AS GrpCod"
" FROM files,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Group
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"institutions.InsCod,institutions.ShortName AS InsShortName,"
"centres.CtrCod,centres.ShortName AS CtrShortName,"
"degrees.DegCod,degrees.ShortName AS DegShortName,"
"courses.CrsCod,courses.ShortName AS CrsShortName,"
"crs_grp.GrpCod"
" FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser IN (%u,%u,%u,%u)"
" AND files.Cod=crs_grp.GrpCod"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=courses.CrsCod"
" AND courses.DegCod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Briefcase
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"-1 AS InsCod,'' AS InsShortName,"
"-1 AS CtrCod,'' AS CtrShortName,"
"-1 AS DegCod,'' AS DegShortName,"
"-1 AS CrsCod,'' AS CrsShortName,"
"-1 AS GrpCod"
" FROM files"
" WHERE files.PublisherUsrCod=%ld AND %s"
" AND files.FileBrowser=%u"
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_INS,
(unsigned) Brw_ADMI_SHR_INS,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_CTR,
(unsigned) Brw_ADMI_SHR_CTR,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_DEG,
(unsigned) Brw_ADMI_SHR_DEG,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_CRS,
(unsigned) Brw_ADMI_TCH_CRS,
(unsigned) Brw_ADMI_SHR_CRS,
(unsigned) Brw_ADMI_MRK_CRS,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_DOC_GRP,
(unsigned) Brw_ADMI_TCH_GRP,
(unsigned) Brw_ADMI_SHR_GRP,
(unsigned) Brw_ADMI_MRK_GRP,
RangeQuery,
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_ADMI_BRF_USR);
/***** Query database and list documents found *****/
return Brw_ListDocsFound (Txt_document_from_me,
Txt_documents_from_me);
/***** List documents found *****/
Brw_ListDocsFound (&mysql_res,NumDocs,
Txt_document_from_me,
Txt_documents_from_me);
return (unsigned) NumDocs;
}
return 0;