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

View File

@ -39,12 +39,21 @@
/****************************** Public constants *****************************/ /****************************** 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: // 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 // 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) Version 14.60: Jan 20, 2015 See/admin documents of degree, centre and institution (not finished). (175079 lines)
3 changes necessary in database: 3 changes necessary in database:
ALTER TABLE clipboard ADD COLUMN InsCod INT NOT NULL DEFAULT -1 AFTER FileBrowser, ADD INDEX (InsCod); 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 | | Field | Type | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+----------------+ +-----------------+---------------+------+-----+---------+----------------+
| FilCod | int(11) | NO | PRI | NULL | auto_increment | | 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 | | | GrpCod | int(11) | NO | | -1 | |
| ZoneUsrCod | int(11) | NO | | -1 | | | ZoneUsrCod | int(11) | NO | | -1 | |
| FileBrowser | tinyint(4) | NO | | NULL | | | FileBrowser | tinyint(4) | NO | | NULL | |
@ -1056,10 +1059,13 @@ mysql> DESCRIBE files;
| Public | enum('N','Y') | NO | | N | | | Public | enum('N','Y') | NO | | N | |
| License | tinyint(4) | NO | | 0 | | | 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 (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS files ("
"FilCod INT NOT NULL AUTO_INCREMENT," "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," "CrsCod INT NOT NULL DEFAULT -1,"
"GrpCod INT NOT NULL DEFAULT -1," "GrpCod INT NOT NULL DEFAULT -1,"
"ZoneUsrCod 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'," "Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',"
"Public ENUM('N','Y') NOT NULL DEFAULT 'N'," "Public ENUM('N','Y') NOT NULL DEFAULT 'N',"
"License TINYINT NOT NULL DEFAULT 0," "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 *****/ /***** 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, static void Brw_ChangeFilePublicInDB (long PublisherUsrCod,const char *Path,
bool IsPublic,Brw_License_t License); 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_GetCrsCod (void);
static long Brw_GetGrpCod (void); static long Brw_GetGrpCod (void);
static long Brw_GetZoneUsrCod (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 2) the argument Path begins by 'x/', where x is a path stored in database
*/ */
sprintf (Query,"SELECT COUNT(*) FROM files" 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 FileBrowser='%u' AND Hidden='Y'"
" AND (Path='%s' OR LOCATE(CONCAT(Path,'/'),'%s')=1)", " AND (Path='%s' OR LOCATE(CONCAT(Path,'/'),'%s')=1)",
FileMetadata->InsCod,
FileMetadata->CtrCod,
FileMetadata->DegCod,
FileMetadata->CrsCod, FileMetadata->CrsCod,
FileMetadata->GrpCod, FileMetadata->GrpCod,
FileMetadata->ZoneUsrCod, FileMetadata->ZoneUsrCod,
@ -8046,7 +8053,7 @@ void Brw_ShowFileMetadata (void)
{ {
if (FileMetadata.FilCod <= 0) // No entry for this file in database table of files 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, FileMetadata.FilCod = Brw_AddPathToDB (-1L,FileMetadata.FileType,
Gbl.FileBrowser.Priv.FullPathInTree,false,Brw_LICENSE_DEFAULT); Gbl.FileBrowser.Priv.FullPathInTree,false,Brw_LICENSE_DEFAULT);
Brw_GetFileMetadataByCod (&FileMetadata); Brw_GetFileMetadataByCod (&FileMetadata);
@ -8912,11 +8919,15 @@ void Brw_GetFileMetadataByPath (struct FileMetadata *FileMetadata)
unsigned UnsignedNum; unsigned UnsignedNum;
/***** Get metadata of a file from database *****/ /***** Get metadata of a file from database *****/
sprintf (Query,"SELECT FilCod,CrsCod,GrpCod,ZoneUsrCod,FileBrowser," sprintf (Query,"SELECT FilCod,InsCod,CtrCod,DegCod,CrsCod,GrpCod,ZoneUsrCod,"
"PublisherUsrCod,FileType,Path,Hidden,Public,License" "FileBrowser,PublisherUsrCod,FileType,Path,Hidden,Public,License"
" FROM files" " 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'", " AND FileBrowser='%u' AND Path='%s'",
Brw_GetInsCod (),
Brw_GetCtrCod (),
Brw_GetDegCod (),
Brw_GetCrsCod (), Brw_GetCrsCod (),
Brw_GetGrpCod (), Brw_GetGrpCod (),
Brw_GetZoneUsrCod (), Brw_GetZoneUsrCod (),
@ -8930,68 +8941,80 @@ void Brw_GetFileMetadataByPath (struct FileMetadata *FileMetadata)
/* Get file code (row[0]) */ /* Get file code (row[0]) */
FileMetadata->FilCod = Str_ConvertStrCodToLongCod (row[0]); FileMetadata->FilCod = Str_ConvertStrCodToLongCod (row[0]);
/* Get course code (row[1]) */ /* Get institution code (row[1]) */
FileMetadata->CrsCod = Str_ConvertStrCodToLongCod (row[1]); FileMetadata->InsCod = Str_ConvertStrCodToLongCod (row[1]);
/* Get group code (row[2]) */ /* Get centre code (row[2]) */
FileMetadata->GrpCod = Str_ConvertStrCodToLongCod (row[2]); FileMetadata->CtrCod = Str_ConvertStrCodToLongCod (row[2]);
/* Get the user's code of the owner of a zone of files (row[3]) */ /* Get degree code (row[3]) */
FileMetadata->ZoneUsrCod = Str_ConvertStrCodToLongCod (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; 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) if (UnsignedNum < Brw_NUM_TYPES_FILE_BROWSER)
FileMetadata->FileBrowser = (Brw_FileBrowser_t) UnsignedNum; FileMetadata->FileBrowser = (Brw_FileBrowser_t) UnsignedNum;
/* Get publisher's code (row[5]) */ /* Get publisher's code (row[8]) */
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[5]); FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[8]);
/* Get file type (row[6]) */ /* Get file type (row[9]) */
FileMetadata->FileType = Brw_IS_UNKNOWN; // default 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) if (UnsignedNum < Brw_NUM_FILE_TYPES)
FileMetadata->FileType = (Brw_FileType_t) UnsignedNum; FileMetadata->FileType = (Brw_FileType_t) UnsignedNum;
/* Get path (row[7]) */ /* Get path (row[10]) */
strncpy (FileMetadata->Path,row[7],PATH_MAX); strncpy (FileMetadata->Path,row[10],PATH_MAX);
FileMetadata->Path[PATH_MAX] = '\0'; FileMetadata->Path[PATH_MAX] = '\0';
/* File is hidden? (row[8]) */ /* File is hidden? (row[11]) */
switch (Gbl.FileBrowser.Type) switch (Gbl.FileBrowser.Type)
{ {
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS: case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_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; break;
default: default:
FileMetadata->IsHidden = false; FileMetadata->IsHidden = false;
break; break;
} }
/* Is a public file? (row[9]) */ /* Is a public file? (row[12]) */
switch (Gbl.FileBrowser.Type) switch (Gbl.FileBrowser.Type)
{ {
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS: case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS: case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
case Brw_FILE_BRW_COMMON_CRS: case Brw_FILE_BRW_COMMON_CRS:
FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[9][0]) == 'Y'); FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[12][0]) == 'Y');
break; break;
default: default:
FileMetadata->IsPublic = false; FileMetadata->IsPublic = false;
break; break;
} }
/* Get license (row[10]) */ /* Get license (row[13]) */
FileMetadata->License = Brw_LICENSE_UNKNOWN; FileMetadata->License = Brw_LICENSE_UNKNOWN;
if (sscanf (row[10],"%u",&UnsignedNum) == 1) if (sscanf (row[13],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_LICENSES) if (UnsignedNum < Brw_NUM_LICENSES)
FileMetadata->License = (Brw_License_t) UnsignedNum; FileMetadata->License = (Brw_License_t) UnsignedNum;
} }
else else
{ {
FileMetadata->FilCod = -1L; FileMetadata->FilCod = -1L;
FileMetadata->InsCod = -1L;
FileMetadata->CtrCod = -1L;
FileMetadata->DegCod = -1L;
FileMetadata->CrsCod = -1L; FileMetadata->CrsCod = -1L;
FileMetadata->GrpCod = -1L; FileMetadata->GrpCod = -1L;
FileMetadata->ZoneUsrCod = -1L; FileMetadata->ZoneUsrCod = -1L;
@ -9031,8 +9054,8 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata)
unsigned UnsignedNum; unsigned UnsignedNum;
/***** Get metadata of a file from database *****/ /***** Get metadata of a file from database *****/
sprintf (Query,"SELECT FilCod,CrsCod,GrpCod,ZoneUsrCod,FileBrowser," sprintf (Query,"SELECT FilCod,InsCod,CtrCod,DegCod,CrsCod,GrpCod,ZoneUsrCod,"
"PublisherUsrCod,FileType,Path,Hidden,Public,License" "FileBrowser,PublisherUsrCod,FileType,Path,Hidden,Public,License"
" FROM files" " FROM files"
" WHERE FilCod='%ld'", " WHERE FilCod='%ld'",
FileMetadata->FilCod); FileMetadata->FilCod);
@ -9044,68 +9067,80 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata)
/* Get file code (row[0]) */ /* Get file code (row[0]) */
FileMetadata->FilCod = Str_ConvertStrCodToLongCod (row[0]); FileMetadata->FilCod = Str_ConvertStrCodToLongCod (row[0]);
/* Get course code (row[1]) */ /* Get institution code (row[1]) */
FileMetadata->CrsCod = Str_ConvertStrCodToLongCod (row[1]); FileMetadata->InsCod = Str_ConvertStrCodToLongCod (row[1]);
/* Get group code (row[2]) */ /* Get centre code (row[2]) */
FileMetadata->GrpCod = Str_ConvertStrCodToLongCod (row[2]); FileMetadata->CtrCod = Str_ConvertStrCodToLongCod (row[2]);
/* Get the user's code of the owner of a zone of files (row[3]) */ /* Get degree code (row[3]) */
FileMetadata->ZoneUsrCod = Str_ConvertStrCodToLongCod (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; 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) if (UnsignedNum < Brw_NUM_TYPES_FILE_BROWSER)
FileMetadata->FileBrowser = (Brw_FileBrowser_t) UnsignedNum; FileMetadata->FileBrowser = (Brw_FileBrowser_t) UnsignedNum;
/* Get publisher's code (row[5]) */ /* Get publisher's code (row[8]) */
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[5]); FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[8]);
/* Get file type (row[6]) */ /* Get file type (row[9]) */
FileMetadata->FileType = Brw_IS_UNKNOWN; // default 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) if (UnsignedNum < Brw_NUM_FILE_TYPES)
FileMetadata->FileType = (Brw_FileType_t) UnsignedNum; FileMetadata->FileType = (Brw_FileType_t) UnsignedNum;
/* Get path (row[7]) */ /* Get path (row[10]) */
strncpy (FileMetadata->Path,row[7],PATH_MAX); strncpy (FileMetadata->Path,row[10],PATH_MAX);
FileMetadata->Path[PATH_MAX] = '\0'; FileMetadata->Path[PATH_MAX] = '\0';
/* Is a hidden file? (row[8]) */ /* Is a hidden file? (row[11]) */
switch (Gbl.FileBrowser.Type) switch (Gbl.FileBrowser.Type)
{ {
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS: case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_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; break;
default: default:
FileMetadata->IsHidden = false; FileMetadata->IsHidden = false;
break; break;
} }
/* Is a public file? (row[9]) */ /* Is a public file? (row[12]) */
switch (Gbl.FileBrowser.Type) switch (Gbl.FileBrowser.Type)
{ {
case Brw_FILE_BRW_SEE_DOCUMENTS_CRS: case Brw_FILE_BRW_SEE_DOCUMENTS_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS: case Brw_FILE_BRW_ADMIN_DOCUMENTS_CRS:
case Brw_FILE_BRW_COMMON_CRS: case Brw_FILE_BRW_COMMON_CRS:
FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[9][0]) == 'Y'); FileMetadata->IsPublic = (Str_ConvertToUpperLetter (row[12][0]) == 'Y');
break; break;
default: default:
FileMetadata->IsPublic = false; FileMetadata->IsPublic = false;
break; break;
} }
/* Get license (row[10]) */ /* Get license (row[13]) */
FileMetadata->License = Brw_LICENSE_UNKNOWN; FileMetadata->License = Brw_LICENSE_UNKNOWN;
if (sscanf (row[10],"%u",&UnsignedNum) == 1) if (sscanf (row[13],"%u",&UnsignedNum) == 1)
if (UnsignedNum < Brw_NUM_LICENSES) if (UnsignedNum < Brw_NUM_LICENSES)
FileMetadata->License = (Brw_License_t) UnsignedNum; FileMetadata->License = (Brw_License_t) UnsignedNum;
} }
else else
{ {
FileMetadata->FilCod = -1L; FileMetadata->FilCod = -1L;
FileMetadata->InsCod = -1L;
FileMetadata->CtrCod = -1L;
FileMetadata->DegCod = -1L;
FileMetadata->CrsCod = -1L; FileMetadata->CrsCod = -1L;
FileMetadata->GrpCod = -1L; FileMetadata->GrpCod = -1L;
FileMetadata->ZoneUsrCod = -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"); 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 *******************/ /****************** Get the course code of a zone of files *******************/
/*****************************************************************************/ /*****************************************************************************/
static long Brw_GetCrsCod (void) static long Brw_GetCrsCod (void)
{ {
switch (Gbl.FileBrowser.Type) return (Gbl.FileBrowser.Type == Brw_FILE_BRW_BRIEFCASE_USR) ? -1L :
{ Gbl.CurrentCrs.Crs.CrsCod;
case Brw_FILE_BRW_BRIEFCASE_USR:
return -1L;
default:
return Gbl.CurrentCrs.Crs.CrsCod;
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -9507,13 +9570,8 @@ static long Brw_GetCrsCod (void)
static long Brw_GetGrpCod (void) static long Brw_GetGrpCod (void)
{ {
switch (Gbl.FileBrowser.Type) return (Gbl.FileBrowser.Type == Brw_FILE_BRW_BRIEFCASE_USR) ? -1L :
{ Gbl.CurrentCrs.Grps.GrpCod;
case Brw_FILE_BRW_BRIEFCASE_USR:
return -1L;
default:
return Gbl.CurrentCrs.Grps.GrpCod;
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -10135,7 +10193,6 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
long DegCod; long DegCod;
const char *BgColor; const char *BgColor;
const char *Title; const char *Title;
Act_Action_t Action = ActUnk; // Initialized to avoid warning
char PathUntilFileName[PATH_MAX+1]; char PathUntilFileName[PATH_MAX+1];
char FileName[NAME_MAX+1]; char FileName[NAME_MAX+1];
char FileNameToShow[NAME_MAX+1]; char FileNameToShow[NAME_MAX+1];
@ -10198,6 +10255,9 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
/***** Write file zone *****/ /***** Write file zone *****/
switch (FileMetadata.FileBrowser) 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_CRS:
case Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP: case Brw_FILE_BRW_ADMIN_DOCUMENTS_GRP:
Title = Txt_Documents_zone; Title = Txt_Documents_zone;
@ -10241,46 +10301,14 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
BgColor); BgColor);
/* Form start */ /* 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 && if (FileMetadata.CrsCod > 0 &&
FileMetadata.CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course 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); Crs_PutParamCrsCod (FileMetadata.CrsCod);
} }
else else
Act_FormStart (Action); Act_FormStart (Brw_ActReqDatFile[FileMetadata.FileBrowser]);
if (FileMetadata.GrpCod > 0) if (FileMetadata.GrpCod > 0)
Grp_PutParamGrpCod (FileMetadata.GrpCod); Grp_PutParamGrpCod (FileMetadata.GrpCod);
Brw_PutParamsPathAndFile (FileMetadata.FileType,PathUntilFileName,FileName); 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 struct FileMetadata
{ {
long FilCod; long FilCod;
long InsCod;
long CtrCod;
long DegCod;
long CrsCod; long CrsCod;
long GrpCod; long GrpCod;
long ZoneUsrCod; long ZoneUsrCod;