diff --git a/sql/cambios.sql b/sql/cambios.sql index 4f2d80be8..6c8944b7a 100644 --- a/sql/cambios.sql +++ b/sql/cambios.sql @@ -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); \ No newline at end of file +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); diff --git a/sql/swad.sql b/sql/swad.sql index b7470f444..afcd67151 100644 --- a/sql/swad.sql +++ b/sql/swad.sql @@ -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 diff --git a/swad_changelog.h b/swad_changelog.h index 02e8cd245..5469a65ac 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -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); diff --git a/swad_database.c b/swad_database.c index 9b86c622f..39fd1b785 100644 --- a/swad_database.c +++ b/swad_database.c @@ -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 *****/ /* diff --git a/swad_file_browser.c b/swad_file_browser.c index 75f75b85a..88e5ee615 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -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); diff --git a/swad_file_browser.h b/swad_file_browser.h index f0e7ac87e..9501b5654 100644 --- a/swad_file_browser.h +++ b/swad_file_browser.h @@ -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;