Version 14.61

This commit is contained in:
Antonio Cañas Vargas 2015-01-20 15:03:02 +01:00
parent af750fb581
commit 9ddb2ebd06
6 changed files with 168 additions and 104 deletions

View File

@ -10458,8 +10458,17 @@ ALTER TABLE usr_data DROP COLUMN WWW,DROP COLUMN Twitter,DROP COLUMN Skype;
SELECT DegCod,CtrCod,DegTypCod,Status,RequesterUsrCod,ShortName,FullName,FirstYear,LastYear,OptYear,WWW FROM degrees;
----- 2015-01-20, swad14.59.4
----- 2015-01-20, swad14.60
ALTER TABLE clipboard ADD COLUMN InsCod INT NOT NULL DEFAULT -1 AFTER FileBrowser, ADD INDEX (InsCod);
ALTER TABLE clipboard ADD COLUMN CtrCod INT NOT NULL DEFAULT -1 AFTER InsCod, ADD INDEX (CtrCod);
ALTER TABLE clipboard ADD COLUMN DegCod INT NOT NULL DEFAULT -1 AFTER CtrCod, ADD INDEX (DegCod);
ALTER TABLE clipboard ADD COLUMN DegCod INT NOT NULL DEFAULT -1 AFTER CtrCod, ADD INDEX (DegCod);
----- 2015-01-20, swad14.61
ALTER TABLE files ADD COLUMN InsCod INT NOT NULL DEFAULT -1 AFTER FilCod;
ALTER TABLE files ADD COLUMN CtrCod INT NOT NULL DEFAULT -1 AFTER InsCod;
ALTER TABLE files ADD COLUMN DegCod INT NOT NULL DEFAULT -1 AFTER CtrCod;
DROP INDEX CrsCod ON files;
DROP INDEX CrsCod_GrpCod_FileBrowser ON files;
CREATE INDEX Location ON files (InsCod,CtrCod,DegCod,CrsCod,GrpCod,FileBrowser);

View File

@ -172,6 +172,9 @@ CREATE TABLE IF NOT EXISTS clicks_without_photo (
CREATE TABLE IF NOT EXISTS clipboard (
UsrCod INT NOT NULL,
FileBrowser TINYINT NOT NULL,
InsCod INT NOT NULL DEFAULT -1,
CtrCod INT NOT NULL DEFAULT -1,
DegCod INT NOT NULL DEFAULT -1,
CrsCod INT NOT NULL DEFAULT -1,
GrpCod INT NOT NULL,
WorksUsrCod INT NOT NULL,
@ -180,6 +183,9 @@ CREATE TABLE IF NOT EXISTS clipboard (
CopyTime TIMESTAMP,
UNIQUE INDEX(UsrCod),
INDEX(FileBrowser),
INDEX(InsCod),
INDEX(CtrCod),
INDEX(DegCod),
INDEX(CrsCod));
--
-- Table connected: users currently connected to the platform
@ -489,6 +495,9 @@ CREATE TABLE IF NOT EXISTS file_view (
--
CREATE TABLE IF NOT EXISTS files (
FilCod INT NOT NULL AUTO_INCREMENT,
InsCod INT NOT NULL DEFAULT -1,
CtrCod INT NOT NULL DEFAULT -1,
DegCod INT NOT NULL DEFAULT -1,
CrsCod INT NOT NULL DEFAULT -1,
GrpCod INT NOT NULL DEFAULT -1,
ZoneUsrCod INT NOT NULL DEFAULT -1,
@ -500,7 +509,7 @@ CREATE TABLE IF NOT EXISTS files (
Public ENUM('N','Y') NOT NULL DEFAULT 'N',
License TINYINT NOT NULL DEFAULT 0,
UNIQUE INDEX(FilCod),
INDEX(CrsCod,GrpCod,ZoneUsrCod,FileBrowser),
INDEX(InsCod,CtrCod,DegCod,CrsCod,GrpCod,ZoneUsrCod,FileBrowser),
INDEX(PublisherUsrCod));
--
-- Table forum_disabled_post: stores the forum post that have been disabled

View File

@ -39,12 +39,21 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.60 (2015/01/20)"
#define Log_PLATFORM_VERSION "SWAD 14.61 (2015/01/20)"
// 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: adapt tables files and file_view !!!!!
TODO: adapt table file_view !!!!!
Version 14.61: Jan 20, 2015 See/admin documents of degree, centre and institution (not finished). (175112 lines)
6 changes necessary in database:
ALTER TABLE files ADD COLUMN InsCod INT NOT NULL DEFAULT -1 AFTER FilCod;
ALTER TABLE files ADD COLUMN CtrCod INT NOT NULL DEFAULT -1 AFTER InsCod;
ALTER TABLE files ADD COLUMN DegCod INT NOT NULL DEFAULT -1 AFTER CtrCod;
DROP INDEX CrsCod ON files;
DROP INDEX CrsCod_GrpCod_FileBrowser ON files;
CREATE INDEX Location ON files (InsCod,CtrCod,DegCod,CrsCod,GrpCod,FileBrowser);
Version 14.60: Jan 20, 2015 See/admin documents of degree, centre and institution (not finished). (175079 lines)
3 changes necessary in database:
ALTER TABLE clipboard ADD COLUMN InsCod INT NOT NULL DEFAULT -1 AFTER FileBrowser, ADD INDEX (InsCod);

View File

@ -1045,7 +1045,10 @@ mysql> DESCRIBE files;
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+----------------+
| FilCod | int(11) | NO | PRI | NULL | auto_increment |
| CrsCod | int(11) | NO | MUL | -1 | |
| InsCod | int(11) | NO | MUL | -1 | |
| CtrCod | int(11) | NO | | -1 | |
| DegCod | int(11) | NO | | -1 | |
| CrsCod | int(11) | NO | | -1 | |
| GrpCod | int(11) | NO | | -1 | |
| ZoneUsrCod | int(11) | NO | | -1 | |
| FileBrowser | tinyint(4) | NO | | NULL | |
@ -1056,10 +1059,13 @@ mysql> DESCRIBE files;
| Public | enum('N','Y') | NO | | N | |
| License | tinyint(4) | NO | | 0 | |
+-----------------+---------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)
14 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS files ("
"FilCod INT NOT NULL AUTO_INCREMENT,"
"InsCod INT NOT NULL DEFAULT -1,"
"CtrCod INT NOT NULL DEFAULT -1,"
"DegCod INT NOT NULL DEFAULT -1,"
"CrsCod INT NOT NULL DEFAULT -1,"
"GrpCod INT NOT NULL DEFAULT -1,"
"ZoneUsrCod INT NOT NULL DEFAULT -1,"
@ -1070,7 +1076,7 @@ mysql> DESCRIBE files;
"Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',"
"Public ENUM('N','Y') NOT NULL DEFAULT 'N',"
"License TINYINT NOT NULL DEFAULT 0,"
"UNIQUE INDEX(FilCod),INDEX(CrsCod,GrpCod,ZoneUsrCod,FileBrowser),INDEX(PublisherUsrCod))");
"UNIQUE INDEX(FilCod),INDEX(InsCod,CtrCod,DegCod,CrsCod,GrpCod,ZoneUsrCod,FileBrowser),INDEX(PublisherUsrCod))");
/***** Table forum_disabled_post *****/
/*

View File

@ -1273,6 +1273,9 @@ static void Brw_ChangeFileOrFolderHiddenInDB (const char *Path,bool IsHidden);
static void Brw_ChangeFilePublicInDB (long PublisherUsrCod,const char *Path,
bool IsPublic,Brw_License_t License);
static long Brw_GetInsCod (void);
static long Brw_GetCtrCod (void);
static long Brw_GetDegCod (void);
static long Brw_GetCrsCod (void);
static long Brw_GetGrpCod (void);
static long Brw_GetZoneUsrCod (void);
@ -7983,9 +7986,13 @@ bool Brw_CheckIfFileOrFolderIsHidden (struct FileMetadata *FileMetadata)
2) the argument Path begins by 'x/', where x is a path stored in database
*/
sprintf (Query,"SELECT COUNT(*) FROM files"
" WHERE CrsCod='%ld' AND GrpCod='%ld' AND ZoneUsrCod='%ld'"
" WHERE InsCod='%ld' AND CtrCod='%ld' AND DegCod='%ld' AND CrsCod='%ld'"
" AND GrpCod='%ld' AND ZoneUsrCod='%ld'"
" AND FileBrowser='%u' AND Hidden='Y'"
" AND (Path='%s' OR LOCATE(CONCAT(Path,'/'),'%s')=1)",
FileMetadata->InsCod,
FileMetadata->CtrCod,
FileMetadata->DegCod,
FileMetadata->CrsCod,
FileMetadata->GrpCod,
FileMetadata->ZoneUsrCod,
@ -8046,7 +8053,7 @@ void Brw_ShowFileMetadata (void)
{
if (FileMetadata.FilCod <= 0) // No entry for this file in database table of files
{
/* entry to the table of files/folders */
/* Add entry to the table of files/folders */
FileMetadata.FilCod = Brw_AddPathToDB (-1L,FileMetadata.FileType,
Gbl.FileBrowser.Priv.FullPathInTree,false,Brw_LICENSE_DEFAULT);
Brw_GetFileMetadataByCod (&FileMetadata);
@ -8912,11 +8919,15 @@ void Brw_GetFileMetadataByPath (struct FileMetadata *FileMetadata)
unsigned UnsignedNum;
/***** Get metadata of a file from database *****/
sprintf (Query,"SELECT FilCod,CrsCod,GrpCod,ZoneUsrCod,FileBrowser,"
"PublisherUsrCod,FileType,Path,Hidden,Public,License"
sprintf (Query,"SELECT FilCod,InsCod,CtrCod,DegCod,CrsCod,GrpCod,ZoneUsrCod,"
"FileBrowser,PublisherUsrCod,FileType,Path,Hidden,Public,License"
" FROM files"
" WHERE CrsCod='%ld' AND GrpCod='%ld' AND ZoneUsrCod='%ld'"
" WHERE InsCod='%ld' AND CtrCod='%ld' AND DegCod='%ld'"
" AND CrsCod='%ld' AND GrpCod='%ld' AND ZoneUsrCod='%ld'"
" AND FileBrowser='%u' AND Path='%s'",
Brw_GetInsCod (),
Brw_GetCtrCod (),
Brw_GetDegCod (),
Brw_GetCrsCod (),
Brw_GetGrpCod (),
Brw_GetZoneUsrCod (),
@ -8930,68 +8941,80 @@ void Brw_GetFileMetadataByPath (struct FileMetadata *FileMetadata)
/* Get file code (row[0]) */
FileMetadata->FilCod = Str_ConvertStrCodToLongCod (row[0]);
/* Get course code (row[1]) */
FileMetadata->CrsCod = Str_ConvertStrCodToLongCod (row[1]);
/* Get institution code (row[1]) */
FileMetadata->InsCod = Str_ConvertStrCodToLongCod (row[1]);
/* Get group code (row[2]) */
FileMetadata->GrpCod = Str_ConvertStrCodToLongCod (row[2]);
/* Get centre code (row[2]) */
FileMetadata->CtrCod = Str_ConvertStrCodToLongCod (row[2]);
/* Get the user's code of the owner of a zone of files (row[3]) */
FileMetadata->ZoneUsrCod = Str_ConvertStrCodToLongCod (row[3]);
/* Get degree code (row[3]) */
FileMetadata->DegCod = Str_ConvertStrCodToLongCod (row[3]);
/* Get file browser type in database (row[4]) */
/* Get course code (row[4]) */
FileMetadata->CrsCod = Str_ConvertStrCodToLongCod (row[4]);
/* Get group code (row[5]) */
FileMetadata->GrpCod = Str_ConvertStrCodToLongCod (row[5]);
/* Get the user's code of the owner of a zone of files (row[6]) */
FileMetadata->ZoneUsrCod = Str_ConvertStrCodToLongCod (row[6]);
/* Get file browser type in database (row[7]) */
FileMetadata->FileBrowser = Brw_FILE_BRW_UNKNOWN;
if (sscanf (row[4],"%u",&UnsignedNum) == 1)
if (sscanf (row[7],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_TYPES_FILE_BROWSER)
FileMetadata->FileBrowser = (Brw_FileBrowser_t) UnsignedNum;
/* Get publisher's code (row[5]) */
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[5]);
/* Get publisher's code (row[8]) */
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[8]);
/* Get file type (row[6]) */
/* Get file type (row[9]) */
FileMetadata->FileType = Brw_IS_UNKNOWN; // default
if (sscanf (row[6],"%u",&UnsignedNum) == 1)
if (sscanf (row[9],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_FILE_TYPES)
FileMetadata->FileType = (Brw_FileType_t) UnsignedNum;
/* Get path (row[7]) */
strncpy (FileMetadata->Path,row[7],PATH_MAX);
/* Get path (row[10]) */
strncpy (FileMetadata->Path,row[10],PATH_MAX);
FileMetadata->Path[PATH_MAX] = '\0';
/* File is hidden? (row[8]) */
/* File is hidden? (row[11]) */
switch (Gbl.FileBrowser.Type)
{
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
FileMetadata->IsHidden = (Str_ConvertToUpperLetter (row[8][0]) == 'Y');
FileMetadata->IsHidden = (Str_ConvertToUpperLetter (row[11][0]) == 'Y');
break;
default:
FileMetadata->IsHidden = false;
break;
}
/* Is a public file? (row[9]) */
/* Is a public file? (row[12]) */
switch (Gbl.FileBrowser.Type)
{
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
case Brw_FILE_BRW_COMMON_CRS:
FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[9][0]) == 'Y');
FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[12][0]) == 'Y');
break;
default:
FileMetadata->IsPublic = false;
break;
}
/* Get license (row[10]) */
/* Get license (row[13]) */
FileMetadata->License = Brw_LICENSE_UNKNOWN;
if (sscanf (row[10],"%u",&UnsignedNum) == 1)
if (sscanf (row[13],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_LICENSES)
FileMetadata->License = (Brw_License_t) UnsignedNum;
}
else
{
FileMetadata->FilCod = -1L;
FileMetadata->InsCod = -1L;
FileMetadata->CtrCod = -1L;
FileMetadata->DegCod = -1L;
FileMetadata->CrsCod = -1L;
FileMetadata->GrpCod = -1L;
FileMetadata->ZoneUsrCod = -1L;
@ -9031,8 +9054,8 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata)
unsigned UnsignedNum;
/***** Get metadata of a file from database *****/
sprintf (Query,"SELECT FilCod,CrsCod,GrpCod,ZoneUsrCod,FileBrowser,"
"PublisherUsrCod,FileType,Path,Hidden,Public,License"
sprintf (Query,"SELECT FilCod,InsCod,CtrCod,DegCod,CrsCod,GrpCod,ZoneUsrCod,"
"FileBrowser,PublisherUsrCod,FileType,Path,Hidden,Public,License"
" FROM files"
" WHERE FilCod='%ld'",
FileMetadata->FilCod);
@ -9044,68 +9067,80 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata)
/* Get file code (row[0]) */
FileMetadata->FilCod = Str_ConvertStrCodToLongCod (row[0]);
/* Get course code (row[1]) */
FileMetadata->CrsCod = Str_ConvertStrCodToLongCod (row[1]);
/* Get institution code (row[1]) */
FileMetadata->InsCod = Str_ConvertStrCodToLongCod (row[1]);
/* Get group code (row[2]) */
FileMetadata->GrpCod = Str_ConvertStrCodToLongCod (row[2]);
/* Get centre code (row[2]) */
FileMetadata->CtrCod = Str_ConvertStrCodToLongCod (row[2]);
/* Get the user's code of the owner of a zone of files (row[3]) */
FileMetadata->ZoneUsrCod = Str_ConvertStrCodToLongCod (row[3]);
/* Get degree code (row[3]) */
FileMetadata->DegCod = Str_ConvertStrCodToLongCod (row[3]);
/* Get file browser type in database (row[4]) */
/* Get course code (row[4]) */
FileMetadata->CrsCod = Str_ConvertStrCodToLongCod (row[4]);
/* Get group code (row[5]) */
FileMetadata->GrpCod = Str_ConvertStrCodToLongCod (row[5]);
/* Get the user's code of the owner of a zone of files (row[6]) */
FileMetadata->ZoneUsrCod = Str_ConvertStrCodToLongCod (row[6]);
/* Get file browser type in database (row[7]) */
FileMetadata->FileBrowser = Brw_FILE_BRW_UNKNOWN;
if (sscanf (row[4],"%u",&UnsignedNum) == 1)
if (sscanf (row[7],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_TYPES_FILE_BROWSER)
FileMetadata->FileBrowser = (Brw_FileBrowser_t) UnsignedNum;
/* Get publisher's code (row[5]) */
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[5]);
/* Get publisher's code (row[8]) */
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[8]);
/* Get file type (row[6]) */
/* Get file type (row[9]) */
FileMetadata->FileType = Brw_IS_UNKNOWN; // default
if (sscanf (row[6],"%u",&UnsignedNum) == 1)
if (sscanf (row[9],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_FILE_TYPES)
FileMetadata->FileType = (Brw_FileType_t) UnsignedNum;
/* Get path (row[7]) */
strncpy (FileMetadata->Path,row[7],PATH_MAX);
/* Get path (row[10]) */
strncpy (FileMetadata->Path,row[10],PATH_MAX);
FileMetadata->Path[PATH_MAX] = '\0';
/* Is a hidden file? (row[8]) */
/* Is a hidden file? (row[11]) */
switch (Gbl.FileBrowser.Type)
{
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
FileMetadata->IsHidden = (Str_ConvertToUpperLetter (row[8][0]) == 'Y');
FileMetadata->IsHidden = (Str_ConvertToUpperLetter (row[11][0]) == 'Y');
break;
default:
FileMetadata->IsHidden = false;
break;
}
/* Is a public file? (row[9]) */
/* Is a public file? (row[12]) */
switch (Gbl.FileBrowser.Type)
{
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
case Brw_FILE_BRW_COMMON_CRS:
FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[9][0]) == 'Y');
FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[12][0]) == 'Y');
break;
default:
FileMetadata->IsPublic = false;
break;
}
/* Get license (row[10]) */
/* Get license (row[13]) */
FileMetadata->License = Brw_LICENSE_UNKNOWN;
if (sscanf (row[10],"%u",&UnsignedNum) == 1)
if (sscanf (row[13],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_LICENSES)
FileMetadata->License = (Brw_License_t) UnsignedNum;
}
else
{
FileMetadata->FilCod = -1L;
FileMetadata->InsCod = -1L;
FileMetadata->CtrCod = -1L;
FileMetadata->DegCod = -1L;
FileMetadata->CrsCod = -1L;
FileMetadata->GrpCod = -1L;
FileMetadata->ZoneUsrCod = -1L;
@ -9486,19 +9521,47 @@ static void Brw_ChangeFilePublicInDB (long PublisherUsrCod,const char *Path,
DB_QueryUPDATE (Query,"can not change metadata of a file in database");
}
/*****************************************************************************/
/**************** Get the institution code of a zone of files ****************/
/*****************************************************************************/
static long Brw_GetInsCod (void)
{
return (Gbl.FileBrowser.Type == Brw_FILE_BRW_BRIEFCASE_USR ||
Gbl.CurrentCtr.Ctr.CtrCod > 0) ? -1L :
Gbl.CurrentIns.Ins.InsCod;
}
/*****************************************************************************/
/****************** Get the centre code of a zone of files *******************/
/*****************************************************************************/
static long Brw_GetCtrCod (void)
{
return (Gbl.FileBrowser.Type == Brw_FILE_BRW_BRIEFCASE_USR ||
Gbl.CurrentDeg.Deg.DegCod > 0) ? -1L :
Gbl.CurrentCtr.Ctr.CtrCod;
}
/*****************************************************************************/
/****************** Get the degree code of a zone of files *******************/
/*****************************************************************************/
static long Brw_GetDegCod (void)
{
return (Gbl.FileBrowser.Type == Brw_FILE_BRW_BRIEFCASE_USR ||
Gbl.CurrentCrs.Crs.CrsCod > 0) ? -1L :
Gbl.CurrentDeg.Deg.DegCod;
}
/*****************************************************************************/
/****************** Get the course code of a zone of files *******************/
/*****************************************************************************/
static long Brw_GetCrsCod (void)
{
switch (Gbl.FileBrowser.Type)
{
case Brw_FILE_BRW_BRIEFCASE_USR:
return -1L;
default:
return Gbl.CurrentCrs.Crs.CrsCod;
}
return (Gbl.FileBrowser.Type == Brw_FILE_BRW_BRIEFCASE_USR) ? -1L :
Gbl.CurrentCrs.Crs.CrsCod;
}
/*****************************************************************************/
@ -9507,13 +9570,8 @@ static long Brw_GetCrsCod (void)
static long Brw_GetGrpCod (void)
{
switch (Gbl.FileBrowser.Type)
{
case Brw_FILE_BRW_BRIEFCASE_USR:
return -1L;
default:
return Gbl.CurrentCrs.Grps.GrpCod;
}
return (Gbl.FileBrowser.Type == Brw_FILE_BRW_BRIEFCASE_USR) ? -1L :
Gbl.CurrentCrs.Grps.GrpCod;
}
/*****************************************************************************/
@ -10135,7 +10193,6 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
long DegCod;
const char *BgColor;
const char *Title;
Act_Action_t Action = ActUnk; // Initialized to avoid warning
char PathUntilFileName[PATH_MAX+1];
char FileName[NAME_MAX+1];
char FileNameToShow[NAME_MAX+1];
@ -10198,6 +10255,9 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
/***** Write file zone *****/
switch (FileMetadata.FileBrowser)
{
case Brw_FILE_BRW_ADMIN_DOCUMENTS_INS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CTR:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_DEG:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP:
Title = Txt_Documents_zone;
@ -10241,46 +10301,14 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
BgColor);
/* Form start */
switch (FileMetadata.FileBrowser)
{
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
Action = ActReqDatSeeDocCrs;
break;
case Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP:
Action = ActReqDatSeeDocGrp;
break;
case Brw_FILE_BRW_COMMON_CRS:
Action = ActReqDatComCrs;
break;
case Brw_FILE_BRW_COMMON_GRP:
Action = ActReqDatComGrp;
break;
case Brw_FILE_BRW_WORKS_USR:
Action = ActReqDatWrkUsr;
break;
case Brw_FILE_BRW_ASSIGNMENTS_USR:
Action = ActReqDatAsgUsr;
break;
case Brw_FILE_BRW_ADMIN_MARKS_CRS:
Action = ActReqDatAdmMrkCrs;
break;
case Brw_FILE_BRW_ADMIN_MARKS_GRP:
Action = ActReqDatAdmMrkGrp;
break;
case Brw_FILE_BRW_BRIEFCASE_USR:
Action = ActReqDatBrf;
break;
default:
break;
}
if (FileMetadata.CrsCod > 0 &&
FileMetadata.CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course
{
Act_FormGoToStart (Action); // Go to another course
Act_FormGoToStart (Brw_ActReqDatFile[FileMetadata.FileBrowser]); // Go to another course
Crs_PutParamCrsCod (FileMetadata.CrsCod);
}
else
Act_FormStart (Action);
Act_FormStart (Brw_ActReqDatFile[FileMetadata.FileBrowser]);
if (FileMetadata.GrpCod > 0)
Grp_PutParamGrpCod (FileMetadata.GrpCod);
Brw_PutParamsPathAndFile (FileMetadata.FileType,PathUntilFileName,FileName);

View File

@ -97,6 +97,9 @@ typedef enum // Don't change these values! They are stored in database as number
struct FileMetadata
{
long FilCod;
long InsCod;
long CtrCod;
long DegCod;
long CrsCod;
long GrpCod;
long ZoneUsrCod;