mirror of
https://github.com/acanas/swad-core.git
synced 2024-05-31 22:05:23 +02:00
Version 14.61
This commit is contained in:
parent
af750fb581
commit
9ddb2ebd06
|
@ -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);
|
||||||
|
|
11
sql/swad.sql
11
sql/swad.sql
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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 *****/
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user