Version 14.69

This commit is contained in:
Antonio Cañas Vargas 2015-01-26 01:58:40 +01:00
parent 391395edc8
commit 7c214165c6
3 changed files with 241 additions and 62 deletions

View File

@ -39,13 +39,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.68.2 (2015/01/25)"
#define Log_PLATFORM_VERSION "SWAD 14.69 (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
/*
Comprobar que se pueden buscar documentos abiertos en titulaciones, centros e instituciones
Version 14.69: Jan 26, 2015 Changes in search of documents. (175818 lines)
Version 14.68.2: Jan 25, 2015 Fixed bugs in search of documents.
Search of user's documents now extended to institution, centre and degree. (175644 lines)
Version 14.68.1: Jan 25, 2015 Changes in codes stores in expanded_folders table. (175618 lines)

View File

@ -10413,6 +10413,8 @@ unsigned Brw_ListDocsFound (const char *Query,const char *Title)
{
extern const char *Txt_document;
extern const char *Txt_documents;
extern const char *Txt_Institution;
extern const char *Txt_Centre;
extern const char *Txt_Degree;
extern const char *Txt_Course;
extern const char *Txt_File_zone;
@ -10435,7 +10437,7 @@ unsigned Brw_ListDocsFound (const char *Query,const char *Title)
/* Write header with number of documents found */
fprintf (Gbl.F.Out,"<tr>"
"<td colspan=\"5\" class=\"TIT_TBL\""
"<td colspan=\"7\" class=\"TIT_TBL\""
" style=\"text-align:center;\">");
if (NumDocs == 1)
fprintf (Gbl.F.Out,"1 %s",Txt_document);
@ -10453,6 +10455,12 @@ unsigned Brw_ListDocsFound (const char *Query,const char *Title)
"<th class=\"TIT_TBL\" style=\"text-align:left;\">"
"%s"
"</th>"
"<th class=\"TIT_TBL\" style=\"text-align:left;\">"
"%s"
"</th>"
"<th class=\"TIT_TBL\" style=\"text-align:left;\">"
"%s"
"</th>"
"<th class=\"TIT_TBL\" style=\"text-align:left;\">"
"%s"
"</th>"
@ -10460,6 +10468,8 @@ unsigned Brw_ListDocsFound (const char *Query,const char *Title)
"%s"
"</th>"
"</tr>",
Txt_Institution,
Txt_Centre,
Txt_Degree,
Txt_Course,
Txt_File_zone,
@ -10480,7 +10490,7 @@ unsigned Brw_ListDocsFound (const char *Query,const char *Title)
/***** Write footer *****/
/* Number of documents not hidden found */
fprintf (Gbl.F.Out,"<tr>"
"<td colspan=\"5\" class=\"TIT_TBL\""
"<td colspan=\"7\" class=\"TIT_TBL\""
" style=\"text-align:center;\">"
"(");
NumDocsHidden = NumDocs - NumDocsNotHidden;
@ -10516,29 +10526,63 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
extern const char *Txt_Private_storage_zone;
extern const char *Txt_Go_to_X;
struct FileMetadata FileMetadata;
long InsCod;
long CtrCod;
long DegCod;
long CrsCod;
long GrpCod;
const char *InsShortName;
const char *CtrShortName;
const char *DegShortName;
const char *CrsShortName;
const char *BgColor;
const char *Title;
char PathUntilFileName[PATH_MAX+1];
char FileName[NAME_MAX+1];
char FileNameToShow[NAME_MAX+1];
/*
row[ 0] = FilCod
row[ 1] = PathFromRoot
row[ 2] = InsCod
row[ 3] = InsShortName
row[ 4] = CtrCod
row[ 5] = CtrShortName
row[ 6] = DegCod
row[ 7] = DegShortName
row[ 8] = CrsCod
row[ 9] = CrsShortName
row[10] = GrpCod
*/
/***** Get file code (row[0]) and metadata *****/
FileMetadata.FilCod = Str_ConvertStrCodToLongCod (row[0]);
Brw_GetFileMetadataByCod (&FileMetadata);
if (!Brw_CheckIfFileOrFolderIsHidden (&FileMetadata))
{
/***** Get institution code (row[2]) *****/
InsCod = Str_ConvertStrCodToLongCod (row[2]);
InsShortName = row[3];
/***** Get centre code (row[4]) *****/
CtrCod = Str_ConvertStrCodToLongCod (row[4]);
CtrShortName = row[5];
/***** Get degree code (row[6]) *****/
DegCod = Str_ConvertStrCodToLongCod (row[6]);
DegShortName = row[7];
/***** Get course code (row[8]) *****/
CrsCod = Str_ConvertStrCodToLongCod (row[8]);
CrsShortName = row[9];
/***** Get group code (row[8]) *****/
GrpCod = Str_ConvertStrCodToLongCod (row[10]);
/***** Set row color *****/
BgColor = Gbl.ColorRows[Gbl.RowEvenOdd];
Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod,&CrsCod,&GrpCod);
if (CrsCod > 0 && CrsCod == Gbl.CurrentCrs.Crs.CrsCod)
BgColor = VERY_LIGHT_BLUE;
/***** Get degree code (row[2]) *****/
DegCod = Str_ConvertStrCodToLongCod (row[2]);
/***** Write number of document in this search *****/
fprintf (Gbl.F.Out,"<tr>"
"<td class=\"DAT\" style=\"text-align:right;"
@ -10547,7 +10591,43 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
"</td>",
BgColor,++(*NumDocsNotHidden));
/***** Write degree logo, degree short name (row[3]) and centre short name (row[4]) *****/
/***** Write institution logo, institution short name *****/
fprintf (Gbl.F.Out,"<td class=\"DAT\" style=\"text-align:left;"
" vertical-align:top; background-color:%s;\">",
BgColor);
if (InsCod > 0)
{
Act_FormGoToStart (ActSeeInsInf);
Deg_PutParamDegCod (InsCod);
sprintf (Gbl.Title,Txt_Go_to_X,InsShortName);
Act_LinkFormSubmit (Gbl.Title,"DAT");
Log_DrawLogo (Sco_SCOPE_INSTITUTION,InsCod,InsShortName,
16,"vertical-align:top;",true);
fprintf (Gbl.F.Out,"&nbsp;%s</a>"
"</form>",
InsShortName);
}
fprintf (Gbl.F.Out,"</td>");
/***** Write centre logo, centre short name *****/
fprintf (Gbl.F.Out,"<td class=\"DAT\" style=\"text-align:left;"
" vertical-align:top; background-color:%s;\">",
BgColor);
if (CtrCod > 0)
{
Act_FormGoToStart (ActSeeCtrInf);
Deg_PutParamDegCod (CtrCod);
sprintf (Gbl.Title,Txt_Go_to_X,CtrShortName);
Act_LinkFormSubmit (Gbl.Title,"DAT");
Log_DrawLogo (Sco_SCOPE_CENTRE,CtrCod,CtrShortName,
16,"vertical-align:top;",true);
fprintf (Gbl.F.Out,"&nbsp;%s</a>"
"</form>",
CtrShortName);
}
fprintf (Gbl.F.Out,"</td>");
/***** Write degree logo, degree short name *****/
fprintf (Gbl.F.Out,"<td class=\"DAT\" style=\"text-align:left;"
" vertical-align:top; background-color:%s;\">",
BgColor);
@ -10555,17 +10635,17 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
{
Act_FormGoToStart (ActSeeDegInf);
Deg_PutParamDegCod (DegCod);
sprintf (Gbl.Title,Txt_Go_to_X,row[5]);
sprintf (Gbl.Title,Txt_Go_to_X,DegShortName);
Act_LinkFormSubmit (Gbl.Title,"DAT");
Log_DrawLogo (Sco_SCOPE_DEGREE,DegCod,row[4],
Log_DrawLogo (Sco_SCOPE_DEGREE,DegCod,DegShortName,
16,"vertical-align:top;",true);
fprintf (Gbl.F.Out,"&nbsp;%s (%s)</a>"
fprintf (Gbl.F.Out,"&nbsp;%s</a>"
"</form>",
row[3],row[4]);
DegShortName);
}
fprintf (Gbl.F.Out,"</td>");
/***** Write course short name (row[5]) *****/
/***** Write course short name *****/
fprintf (Gbl.F.Out,"<td class=\"DAT\" style=\"text-align:left;"
" vertical-align:top; background-color:%s;\">",
BgColor);
@ -10573,11 +10653,11 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
{
Act_FormGoToStart (ActSeeCrsInf);
Crs_PutParamCrsCod (CrsCod);
sprintf (Gbl.Title,Txt_Go_to_X,row[5]);
sprintf (Gbl.Title,Txt_Go_to_X,CrsShortName);
Act_LinkFormSubmit (Gbl.Title,"DAT");
fprintf (Gbl.F.Out,"%s</a>"
"</form>",
row[5]);
CrsShortName);
}
fprintf (Gbl.F.Out,"</td>");

View File

@ -749,7 +749,7 @@ static unsigned Sch_SearchOpenDocumentsInDB (const char *RangeQuery)
{
extern const char *Txt_Open_documents;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY+1];
char Query[1024+Sch_MAX_LENGTH_SEARCH_QUERY*2];
char Query[(512+Sch_MAX_LENGTH_SEARCH_QUERY)*4];
/***** Check user's permission *****/
if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_OPEN_DOCUMENTS))
@ -758,10 +758,60 @@ static unsigned Sch_SearchOpenDocumentsInDB (const char *RangeQuery)
"_latin1 "," COLLATE latin1_general_ci"))
{
/***** Build the query *****/
sprintf (Query,"SELECT files.FilCod,"
sprintf (Query,"SELECT * FROM "
"("
"SELECT files.FilCod," // Institution
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"degrees.DegCod,degrees.ShortName,"
"centres.ShortName,courses.ShortName"
"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,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser='%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,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser='%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,degrees,centres,institutions,countries"
" WHERE files.Public='Y' AND %s"
" AND files.FileBrowser='%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')"
@ -771,8 +821,18 @@ static unsigned Sch_SearchOpenDocumentsInDB (const char *RangeQuery)
" AND centres.InsCod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" HAVING PathFromRoot<>''"
" ORDER BY degrees.ShortName,courses.ShortName,PathFromRoot",
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_INS,
RangeQuery,
SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR,
RangeQuery,
SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG,
RangeQuery,
SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS,
(unsigned) Brw_FILE_BRW_COMMON_CRS,
@ -795,7 +855,7 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
{
extern const char *Txt_Documents_in_my_courses;
char SearchQuery[Sch_MAX_LENGTH_SEARCH_QUERY+1];
char Query[1024+Sch_MAX_LENGTH_SEARCH_QUERY*2];
char Query[(512+Sch_MAX_LENGTH_SEARCH_QUERY)*2];
unsigned NumDocs;
/***** Check user's permission *****/
@ -806,20 +866,22 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
{
/***** Create temporary table with codes of files in documents and shared areas accessible by me.
It is necessary to speed up the second query *****/
sprintf (Query,"CREATE TEMPORARY TABLE my_files (FilCod INT NOT NULL,UNIQUE INDEX(FilCod)) ENGINE=MEMORY"
sprintf (Query,"CREATE TEMPORARY TABLE my_files_crs (FilCod INT NOT NULL,UNIQUE INDEX(FilCod)) ENGINE=MEMORY"
" SELECT files.FilCod FROM crs_usr,files"
" WHERE crs_usr.UsrCod='%ld'"
" AND crs_usr.CrsCod=files.Cod"
" AND files.FileBrowser IN ('%u','%u','%u')"
" UNION"
" SELECT files.FilCod FROM crs_grp_usr,files"
" WHERE crs_grp_usr.UsrCod='%ld'"
" AND crs_grp_usr.GrpCod=files.Cod"
" AND files.FileBrowser IN ('%u','%u','%u')",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS,
(unsigned) Brw_FILE_BRW_COMMON_CRS,
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_CRS,
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_CRS);
if (mysql_query (&Gbl.mysql,Query))
DB_ExitOnMySQLError ("can not create temporary table");
sprintf (Query,"CREATE TEMPORARY TABLE my_files_grp (FilCod INT NOT NULL,UNIQUE INDEX(FilCod)) ENGINE=MEMORY"
" SELECT files.FilCod FROM crs_grp_usr,files"
" WHERE crs_grp_usr.UsrCod='%ld'"
" AND crs_grp_usr.GrpCod=files.Cod"
" AND files.FileBrowser IN ('%u','%u','%u')",
Gbl.Usrs.Me.UsrDat.UsrCod,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP,
(unsigned) Brw_FILE_BRW_COMMON_GRP,
@ -830,33 +892,52 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
DB_ExitOnMySQLError ("can not create temporary table");
/***** Build the query *****/
sprintf (Query,"SELECT files.FilCod,"
sprintf (Query,"SELECT * FROM "
"("
"SELECT files.FilCod,"
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"degrees.DegCod,degrees.ShortName,"
"centres.ShortName,courses.ShortName"
" FROM files,crs_grp,crs_grp_types,courses,degrees,centres,institutions,countries"
" WHERE files.FilCod IN (SELECT FilCod FROM my_files) AND %s"
" AND "
"("
"(files.FileBrowser IN ('%u','%u','%u')"
" AND files.Cod=courses.CrsCod)"
" OR "
"(files.FileBrowser IN ('%u','%u','%u')"
" AND files.Cod=crs_grp.GrpCod"
" AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod"
" AND crs_grp_types.CrsCod=courses.CrsCod)"
")"
"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')"
" 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"
" HAVING PathFromRoot<>''"
" ORDER BY degrees.ShortName,courses.ShortName,PathFromRoot",
" 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')"
" 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_FILE_BRW_ADMIN_DOCUMENTS_CRS,
(unsigned) Brw_FILE_BRW_COMMON_CRS,
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_CRS,
RangeQuery,
SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP,
(unsigned) Brw_FILE_BRW_COMMON_GRP,
(unsigned) Brw_FILE_BRW_ADMIN_MARKS_GRP,
@ -868,7 +949,7 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery)
NumDocs = Brw_ListDocsFound (Query,Txt_Documents_in_my_courses);
/***** Drop temporary table *****/
sprintf (Query,"DROP TABLE IF EXISTS my_files");
sprintf (Query,"DROP TEMPORARY TABLE IF EXISTS my_files_crs,my_files_grp");
if (mysql_query (&Gbl.mysql,Query))
DB_ExitOnMySQLError ("can not remove temporary table");
@ -899,33 +980,40 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
"("
"SELECT files.FilCod," // Institution
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"'-1','' AS DegShortName,'','' AS CrsShortName"
"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,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod='%ld' AND %s"
" AND files.FileBrowser='%u'"
" AND files.Cod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" AND centres.InsCod=institutions.InsCod"
" AND files.Cod=institutions.InsCod"
" AND institutions.CtyCod=countries.CtyCod"
"%s"
" UNION "
"SELECT files.FilCod," // Centre
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"'-1','' AS DegShortName,"
"centres.ShortName,'' AS CrsShortName"
"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,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod='%ld' AND %s"
" AND files.FileBrowser='%u'"
" AND files.Cod=degrees.DegCod"
" AND degrees.CtrCod=centres.CtrCod"
" 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,"
"centres.ShortName,'' AS CrsShortName"
"'-1' AS CrsCod,'' AS CrsShortName,"
"'-1' AS GrpCod"
" FROM files,degrees,centres,institutions,countries"
" WHERE files.PublisherUsrCod='%ld' AND %s"
" AND files.FileBrowser='%u'"
@ -937,8 +1025,11 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
" 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,"
"centres.ShortName,courses.ShortName AS CrsShortName"
"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')"
@ -951,8 +1042,11 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
" 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,"
"centres.ShortName,courses.ShortName AS CrsShortName"
"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')"
@ -967,13 +1061,17 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery)
" UNION "
"SELECT files.FilCod," // Briefcase
"SUBSTRING(files.Path,LOCATE('/',files.Path)) AS PathFromRoot,"
"'-1','' AS DegShortName,'','' AS CrsShortName"
"'-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 my_files"
") AS selected_files"
" WHERE PathFromRoot<>''"
" ORDER BY DegShortName,CrsShortName,PathFromRoot",
" ORDER BY InsShortName,CtrShortName,DegShortName,CrsShortName,PathFromRoot",
Gbl.Usrs.Me.UsrDat.UsrCod,SearchQuery,
(unsigned) Brw_FILE_BRW_ADMIN_DOCUMENTS_INS,
RangeQuery,