mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-16 13:44:06 +02:00
Version18.120.1
This commit is contained in:
parent
c5c50eed37
commit
30ea0bec54
|
@ -448,10 +448,11 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 18.120 (2019-04-25)"
|
#define Log_PLATFORM_VERSION "SWAD 18.120.1 (2019-04-25)"
|
||||||
#define CSS_FILE "swad18.112.1.css"
|
#define CSS_FILE "swad18.112.1.css"
|
||||||
#define JS_FILE "swad18.116.5.js"
|
#define JS_FILE "swad18.116.5.js"
|
||||||
/*
|
/*
|
||||||
|
Version 18.120.1: Apr 25, 2019 Code refactoring related to file browser. (242461 lines)
|
||||||
Version 18.120: Apr 25, 2019 Code refactoring related to file browser. (242466 lines)
|
Version 18.120: Apr 25, 2019 Code refactoring related to file browser. (242466 lines)
|
||||||
Version 18.119: Apr 25, 2019 Code refactoring related to selected users. (242536 lines)
|
Version 18.119: Apr 25, 2019 Code refactoring related to selected users. (242536 lines)
|
||||||
Version 18.118.5: Apr 23, 2019 Code refactoring in file browser. (242497 lines)
|
Version 18.118.5: Apr 23, 2019 Code refactoring in file browser. (242497 lines)
|
||||||
|
|
|
@ -5497,7 +5497,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
Brw_GetFileTypeSizeAndDate (&FileMetadata);
|
Brw_GetFileTypeSizeAndDate (&FileMetadata);
|
||||||
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
|
||||||
/* Add 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.FilFolLnk.Type,
|
||||||
Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT);
|
Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT);
|
||||||
|
|
||||||
/***** Is this row public or private? *****/
|
/***** Is this row public or private? *****/
|
||||||
|
@ -5569,7 +5569,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
Level != 0) // Never copy root folder
|
Level != 0) // Never copy root folder
|
||||||
// If path in the clipboard is equal to complete path in tree...
|
// If path in the clipboard is equal to complete path in tree...
|
||||||
// ...or is the start of complete path in tree...
|
// ...or is the start of complete path in tree...
|
||||||
if (Str_Path1BeginsByPath2 (Gbl.FileBrowser.FilFolLnk.Full,Gbl.FileBrowser.Clipboard.Path))
|
if (Str_Path1BeginsByPath2 (Gbl.FileBrowser.FilFolLnk.Full,Gbl.FileBrowser.Clipboard.FilFolLnk.Full))
|
||||||
Gbl.FileBrowser.Clipboard.IsThisFile = true;
|
Gbl.FileBrowser.Clipboard.IsThisFile = true;
|
||||||
|
|
||||||
/* Check if I can modify (remove, rename, etc.) this file or folder */
|
/* Check if I can modify (remove, rename, etc.) this file or folder */
|
||||||
|
@ -5696,7 +5696,7 @@ void Brw_SetFullPathInTree (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******* Check if the clipboard can be pasted into the current folder ********/
|
/******* Check if the clipboard can be pasted into the current folder ********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
// Return true if Gbl.FileBrowser.Clipboard.Path can be pasted into Gbl.FileBrowser.FilFolLnk.Full
|
// Return true if Gbl.FileBrowser.Clipboard.FilFolLnk.Full can be pasted into Gbl.FileBrowser.FilFolLnk.Full
|
||||||
|
|
||||||
static bool Brw_CheckIfCanPasteIn (unsigned Level)
|
static bool Brw_CheckIfCanPasteIn (unsigned Level)
|
||||||
{
|
{
|
||||||
|
@ -5711,7 +5711,7 @@ static bool Brw_CheckIfCanPasteIn (unsigned Level)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
/***** Do not paste a link in marks... *****/
|
/***** Do not paste a link in marks... *****/
|
||||||
if (Gbl.FileBrowser.Clipboard.FileType == Brw_IS_LINK &&
|
if (Gbl.FileBrowser.Clipboard.FilFolLnk.Type == Brw_IS_LINK &&
|
||||||
(Gbl.FileBrowser.Type == Brw_ADMI_MRK_CRS ||
|
(Gbl.FileBrowser.Type == Brw_ADMI_MRK_CRS ||
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_MRK_GRP))
|
Gbl.FileBrowser.Type == Brw_ADMI_MRK_GRP))
|
||||||
return false;
|
return false;
|
||||||
|
@ -5727,10 +5727,10 @@ static bool Brw_CheckIfCanPasteIn (unsigned Level)
|
||||||
snprintf (PathDstWithFile,sizeof (PathDstWithFile),
|
snprintf (PathDstWithFile,sizeof (PathDstWithFile),
|
||||||
"%s/%s",
|
"%s/%s",
|
||||||
Gbl.FileBrowser.FilFolLnk.Full,
|
Gbl.FileBrowser.FilFolLnk.Full,
|
||||||
Gbl.FileBrowser.Clipboard.FileName);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Name);
|
||||||
|
|
||||||
return !Str_Path1BeginsByPath2 (PathDstWithFile,
|
return !Str_Path1BeginsByPath2 (PathDstWithFile,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true; // I can paste
|
return true; // I can paste
|
||||||
|
@ -6154,7 +6154,7 @@ static void Brw_PutIconFileWithLinkToViewMetadata (unsigned Size,
|
||||||
Frm_LinkFormSubmit (Txt_View_data,Gbl.FileBrowser.TxtStyle,NULL);
|
Frm_LinkFormSubmit (Txt_View_data,Gbl.FileBrowser.TxtStyle,NULL);
|
||||||
|
|
||||||
/***** Icon depending on the file extension *****/
|
/***** Icon depending on the file extension *****/
|
||||||
Brw_PutIconFile (Size,FileMetadata->FileType,FileMetadata->FilFolLnkName);
|
Brw_PutIconFile (Size,FileMetadata->FilFolLnk.Type,FileMetadata->FilFolLnk.Name);
|
||||||
|
|
||||||
/***** End link and form *****/
|
/***** End link and form *****/
|
||||||
fprintf (Gbl.F.Out,"</a>");
|
fprintf (Gbl.F.Out,"</a>");
|
||||||
|
@ -7014,13 +7014,13 @@ static void Brw_WriteCurrentClipboard (void)
|
||||||
// Not the root folder
|
// Not the root folder
|
||||||
Brw_GetFileNameToShowDependingOnLevel (Gbl.FileBrowser.Clipboard.FileBrowser,
|
Brw_GetFileNameToShowDependingOnLevel (Gbl.FileBrowser.Clipboard.FileBrowser,
|
||||||
Gbl.FileBrowser.Clipboard.Level,
|
Gbl.FileBrowser.Clipboard.Level,
|
||||||
Gbl.FileBrowser.Clipboard.FileType,
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Type,
|
||||||
Gbl.FileBrowser.Clipboard.FileName,
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Name,
|
||||||
FileNameToShow);
|
FileNameToShow);
|
||||||
|
|
||||||
Ale_ShowAlert (Ale_CLIPBOARD,"%s: %s, %s <strong>%s</strong>.",
|
Ale_ShowAlert (Ale_CLIPBOARD,"%s: %s, %s <strong>%s</strong>.",
|
||||||
Txt_Copy_source,TxtClipboardZone,
|
Txt_Copy_source,TxtClipboardZone,
|
||||||
TxtFileType[Gbl.FileBrowser.Clipboard.FileType],
|
TxtFileType[Gbl.FileBrowser.Clipboard.FilFolLnk.Type],
|
||||||
FileNameToShow);
|
FileNameToShow);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -7040,7 +7040,6 @@ static bool Brw_GetMyClipboard (void)
|
||||||
{
|
{
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
char PathUntilFileName[PATH_MAX + 1];
|
|
||||||
unsigned NumRows;
|
unsigned NumRows;
|
||||||
unsigned UnsignedNum;
|
unsigned UnsignedNum;
|
||||||
|
|
||||||
|
@ -7048,9 +7047,9 @@ static bool Brw_GetMyClipboard (void)
|
||||||
Gbl.FileBrowser.Clipboard.FileBrowser = Brw_UNKNOWN;
|
Gbl.FileBrowser.Clipboard.FileBrowser = Brw_UNKNOWN;
|
||||||
Gbl.FileBrowser.Clipboard.Cod = -1L;
|
Gbl.FileBrowser.Clipboard.Cod = -1L;
|
||||||
Gbl.FileBrowser.Clipboard.WorksUsrCod = -1L;
|
Gbl.FileBrowser.Clipboard.WorksUsrCod = -1L;
|
||||||
Gbl.FileBrowser.Clipboard.FileType = Brw_IS_UNKNOWN;
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Type = Brw_IS_UNKNOWN;
|
||||||
Gbl.FileBrowser.Clipboard.Path[0] = '\0';
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full[0] = '\0';
|
||||||
Gbl.FileBrowser.Clipboard.FileName[0] = '\0';
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Name[0] = '\0';
|
||||||
Gbl.FileBrowser.Clipboard.Level = 0;
|
Gbl.FileBrowser.Clipboard.Level = 0;
|
||||||
|
|
||||||
/***** Get my current clipboard from database *****/
|
/***** Get my current clipboard from database *****/
|
||||||
|
@ -7078,21 +7077,21 @@ static bool Brw_GetMyClipboard (void)
|
||||||
Gbl.FileBrowser.Clipboard.WorksUsrCod = Str_ConvertStrCodToLongCod (row[2]);
|
Gbl.FileBrowser.Clipboard.WorksUsrCod = Str_ConvertStrCodToLongCod (row[2]);
|
||||||
|
|
||||||
/* Get file type (row[3]) */
|
/* Get file type (row[3]) */
|
||||||
Gbl.FileBrowser.Clipboard.FileType = Brw_IS_UNKNOWN; // default
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Type = Brw_IS_UNKNOWN; // default
|
||||||
if (sscanf (row[3],"%u",&UnsignedNum) == 1)
|
if (sscanf (row[3],"%u",&UnsignedNum) == 1)
|
||||||
if (UnsignedNum < Brw_NUM_FILE_TYPES)
|
if (UnsignedNum < Brw_NUM_FILE_TYPES)
|
||||||
Gbl.FileBrowser.Clipboard.FileType = (Brw_FileType_t) UnsignedNum;
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Type = (Brw_FileType_t) UnsignedNum;
|
||||||
|
|
||||||
/* Get file path (row[4]) */
|
/* Get file path (row[4]) */
|
||||||
Str_Copy (Gbl.FileBrowser.Clipboard.Path,row[4],
|
Str_Copy (Gbl.FileBrowser.Clipboard.FilFolLnk.Full,row[4],
|
||||||
PATH_MAX);
|
PATH_MAX);
|
||||||
Str_SplitFullPathIntoPathAndFileName (Gbl.FileBrowser.Clipboard.Path,
|
Str_SplitFullPathIntoPathAndFileName (Gbl.FileBrowser.Clipboard.FilFolLnk.Full,
|
||||||
PathUntilFileName,
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Path,
|
||||||
Gbl.FileBrowser.Clipboard.FileName);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Name);
|
||||||
|
|
||||||
/* Set clipboard level
|
/* Set clipboard level
|
||||||
(number of slashes in full path, including file or folder) */
|
(number of slashes in full path, including file or folder) */
|
||||||
Gbl.FileBrowser.Clipboard.Level = Brw_NumLevelsInPath (Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.Level = Brw_NumLevelsInPath (Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7791,7 +7790,7 @@ void Brw_PasteIntoFileBrowser (void)
|
||||||
// Possible degree: Gbl.FileBrowser.Clipboard.DegCod
|
// Possible degree: Gbl.FileBrowser.Clipboard.DegCod
|
||||||
// Possible course: Gbl.FileBrowser.Clipboard.CrsCod
|
// Possible course: Gbl.FileBrowser.Clipboard.CrsCod
|
||||||
// Possible student in works: Gbl.FileBrowser.Clipboard.WorksUsrCod
|
// Possible student in works: Gbl.FileBrowser.Clipboard.WorksUsrCod
|
||||||
// Path (file or folder): Gbl.FileBrowser.Clipboard.Path
|
// Path (file or folder): Gbl.FileBrowser.Clipboard.FilFolLnk.Full
|
||||||
// Destination:
|
// Destination:
|
||||||
// Type of file browser: Gbl.FileBrowser.Type
|
// Type of file browser: Gbl.FileBrowser.Type
|
||||||
// Possible institution: Gbl.Hierarchy.Ins.InsCod
|
// Possible institution: Gbl.Hierarchy.Ins.InsCod
|
||||||
|
@ -7840,7 +7839,7 @@ static void Brw_PasteClipboard (void)
|
||||||
Cfg_PATH_INS_PRIVATE,
|
Cfg_PATH_INS_PRIVATE,
|
||||||
(unsigned) (Ins.InsCod % 100),
|
(unsigned) (Ins.InsCod % 100),
|
||||||
(unsigned) Ins.InsCod,
|
(unsigned) Ins.InsCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
|
@ -7853,7 +7852,7 @@ static void Brw_PasteClipboard (void)
|
||||||
Cfg_PATH_CTR_PRIVATE,
|
Cfg_PATH_CTR_PRIVATE,
|
||||||
(unsigned) (Ctr.CtrCod % 100),
|
(unsigned) (Ctr.CtrCod % 100),
|
||||||
(unsigned) Ctr.CtrCod,
|
(unsigned) Ctr.CtrCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
|
@ -7866,7 +7865,7 @@ static void Brw_PasteClipboard (void)
|
||||||
Cfg_PATH_DEG_PRIVATE,
|
Cfg_PATH_DEG_PRIVATE,
|
||||||
(unsigned) (Deg.DegCod % 100),
|
(unsigned) (Deg.DegCod % 100),
|
||||||
(unsigned) Deg.DegCod,
|
(unsigned) Deg.DegCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
|
@ -7879,7 +7878,7 @@ static void Brw_PasteClipboard (void)
|
||||||
snprintf (PathOrg,sizeof (PathOrg),
|
snprintf (PathOrg,sizeof (PathOrg),
|
||||||
"%s/%ld/%s",
|
"%s/%ld/%s",
|
||||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,
|
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
|
@ -7895,7 +7894,7 @@ static void Brw_PasteClipboard (void)
|
||||||
"%s/%ld/%s/%ld/%s",
|
"%s/%ld/%s/%ld/%s",
|
||||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_GRP,
|
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_GRP,
|
||||||
GrpDat.GrpCod,
|
GrpDat.GrpCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
|
@ -7912,7 +7911,7 @@ static void Brw_PasteClipboard (void)
|
||||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_USR,
|
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_USR,
|
||||||
(unsigned) (Gbl.FileBrowser.Clipboard.WorksUsrCod % 100),
|
(unsigned) (Gbl.FileBrowser.Clipboard.WorksUsrCod % 100),
|
||||||
Gbl.FileBrowser.Clipboard.WorksUsrCod,
|
Gbl.FileBrowser.Clipboard.WorksUsrCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
Usr_UsrDataDestructor (&UsrDat);
|
Usr_UsrDataDestructor (&UsrDat);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -7927,7 +7926,7 @@ static void Brw_PasteClipboard (void)
|
||||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_USR,
|
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_USR,
|
||||||
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
|
@ -7941,7 +7940,7 @@ static void Brw_PasteClipboard (void)
|
||||||
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_PRJ,
|
Cfg_PATH_CRS_PRIVATE,Crs.CrsCod,Cfg_FOLDER_PRJ,
|
||||||
(unsigned) (PrjCod % 100),
|
(unsigned) (PrjCod % 100),
|
||||||
PrjCod,
|
PrjCod,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
else
|
else
|
||||||
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
Lay_ShowErrorAndExit ("The copy source does not exist.");
|
||||||
break;
|
break;
|
||||||
|
@ -7949,7 +7948,7 @@ static void Brw_PasteClipboard (void)
|
||||||
snprintf (PathOrg,sizeof (PathOrg),
|
snprintf (PathOrg,sizeof (PathOrg),
|
||||||
"%s/%s",
|
"%s/%s",
|
||||||
Gbl.Usrs.Me.PathDir,
|
Gbl.Usrs.Me.PathDir,
|
||||||
Gbl.FileBrowser.Clipboard.Path);
|
Gbl.FileBrowser.Clipboard.FilFolLnk.Full);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Lay_ShowErrorAndExit ("Wrong file browser.");
|
Lay_ShowErrorAndExit ("Wrong file browser.");
|
||||||
|
@ -8940,7 +8939,7 @@ static bool Brw_RcvFileInFileBrw (Brw_UploadType_t UploadType)
|
||||||
Gbl.FileBrowser.Level,
|
Gbl.FileBrowser.Level,
|
||||||
Brw_IS_FOLDER,
|
Brw_IS_FOLDER,
|
||||||
Gbl.FileBrowser.FilFolLnk.Name,
|
Gbl.FileBrowser.FilFolLnk.Name,
|
||||||
FileNameToShow);
|
FileNameToShow); // Folder name
|
||||||
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
Ale_CreateAlert (Ale_SUCCESS,NULL,
|
||||||
Txt_The_file_X_has_been_placed_inside_the_folder_Y,
|
Txt_The_file_X_has_been_placed_inside_the_folder_Y,
|
||||||
Gbl.FileBrowser.NewFilFolLnkName,
|
Gbl.FileBrowser.NewFilFolLnkName,
|
||||||
|
@ -9125,7 +9124,7 @@ void Brw_RecLinkFileBrowser (void)
|
||||||
Gbl.FileBrowser.Level,
|
Gbl.FileBrowser.Level,
|
||||||
Brw_IS_FOLDER,
|
Brw_IS_FOLDER,
|
||||||
Gbl.FileBrowser.FilFolLnk.Name,
|
Gbl.FileBrowser.FilFolLnk.Name,
|
||||||
FileNameToShow);
|
FileNameToShow); // Folder name
|
||||||
Ale_ShowAlert (Ale_SUCCESS,Txt_The_link_X_has_been_placed_inside_the_folder_Y,
|
Ale_ShowAlert (Ale_SUCCESS,Txt_The_link_X_has_been_placed_inside_the_folder_Y,
|
||||||
FileName,FileNameToShow);
|
FileName,FileNameToShow);
|
||||||
|
|
||||||
|
@ -9340,8 +9339,8 @@ bool Brw_CheckIfFileOrFolderIsHidden (struct FileMetadata *FileMetadata)
|
||||||
FileMetadata->FileBrowser,
|
FileMetadata->FileBrowser,
|
||||||
FileMetadata->Cod,
|
FileMetadata->Cod,
|
||||||
FileMetadata->ZoneUsrCod,
|
FileMetadata->ZoneUsrCod,
|
||||||
FileMetadata->FullPathInTree,
|
FileMetadata->FilFolLnk.Full,
|
||||||
FileMetadata->FullPathInTree) != 0);
|
FileMetadata->FilFolLnk.Full) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -9396,8 +9395,8 @@ 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
|
||||||
/* Add 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.FilFolLnk.Type,
|
||||||
FileMetadata.FullPathInTree,
|
FileMetadata.FilFolLnk.Full,
|
||||||
false,Brw_LICENSE_DEFAULT);
|
false,Brw_LICENSE_DEFAULT);
|
||||||
|
|
||||||
/***** Check if I can view this file.
|
/***** Check if I can view this file.
|
||||||
|
@ -9429,8 +9428,8 @@ void Brw_ShowFileMetadata (void)
|
||||||
|
|
||||||
if (ICanView)
|
if (ICanView)
|
||||||
{
|
{
|
||||||
if (FileMetadata.FileType == Brw_IS_FILE ||
|
if (FileMetadata.FilFolLnk.Type == Brw_IS_FILE ||
|
||||||
FileMetadata.FileType == Brw_IS_LINK)
|
FileMetadata.FilFolLnk.Type == Brw_IS_LINK)
|
||||||
{
|
{
|
||||||
/***** Update number of views *****/
|
/***** Update number of views *****/
|
||||||
Brw_GetAndUpdateFileViews (&FileMetadata);
|
Brw_GetAndUpdateFileViews (&FileMetadata);
|
||||||
|
@ -9452,8 +9451,8 @@ void Brw_ShowFileMetadata (void)
|
||||||
Gbl.FileBrowser.Type == Brw_SHOW_MRK_GRP)
|
Gbl.FileBrowser.Type == Brw_SHOW_MRK_GRP)
|
||||||
URL[0] = '\0';
|
URL[0] = '\0';
|
||||||
else
|
else
|
||||||
Brw_GetLinkToDownloadFile (FileMetadata.PathInTreeUntilFilFolLnk,
|
Brw_GetLinkToDownloadFile (FileMetadata.FilFolLnk.Path,
|
||||||
FileMetadata.FilFolLnkName,
|
FileMetadata.FilFolLnk.Name,
|
||||||
URL);
|
URL);
|
||||||
|
|
||||||
/***** Can I edit the properties of the file? *****/
|
/***** Can I edit the properties of the file? *****/
|
||||||
|
@ -9461,8 +9460,8 @@ void Brw_ShowFileMetadata (void)
|
||||||
ICanEdit = Brw_CheckIfICanEditFileMetadata (IAmTheOwner);
|
ICanEdit = Brw_CheckIfICanEditFileMetadata (IAmTheOwner);
|
||||||
|
|
||||||
/***** Name of the file/link to be shown *****/
|
/***** Name of the file/link to be shown *****/
|
||||||
Brw_GetFileNameToShow (FileMetadata.FileType,
|
Brw_GetFileNameToShow (FileMetadata.FilFolLnk.Type,
|
||||||
FileMetadata.FilFolLnkName,
|
FileMetadata.FilFolLnk.Name,
|
||||||
FileNameToShow);
|
FileNameToShow);
|
||||||
|
|
||||||
/***** Start form to update the metadata of a file *****/
|
/***** Start form to update the metadata of a file *****/
|
||||||
|
@ -9786,7 +9785,7 @@ void Brw_DownloadFile (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
|
||||||
/* Add 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.FilFolLnk.Type,
|
||||||
Gbl.FileBrowser.FilFolLnk.Full,
|
Gbl.FileBrowser.FilFolLnk.Full,
|
||||||
false,Brw_LICENSE_DEFAULT);
|
false,Brw_LICENSE_DEFAULT);
|
||||||
|
|
||||||
|
@ -9819,8 +9818,8 @@ void Brw_DownloadFile (void)
|
||||||
|
|
||||||
if (ICanView)
|
if (ICanView)
|
||||||
{
|
{
|
||||||
if (FileMetadata.FileType == Brw_IS_FILE ||
|
if (FileMetadata.FilFolLnk.Type == Brw_IS_FILE ||
|
||||||
FileMetadata.FileType == Brw_IS_LINK)
|
FileMetadata.FilFolLnk.Type == Brw_IS_LINK)
|
||||||
{
|
{
|
||||||
/***** Update number of views *****/
|
/***** Update number of views *****/
|
||||||
Brw_GetAndUpdateFileViews (&FileMetadata);
|
Brw_GetAndUpdateFileViews (&FileMetadata);
|
||||||
|
@ -10003,16 +10002,16 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
|
||||||
/* Form to see marks */
|
/* Form to see marks */
|
||||||
Frm_StartForm (Gbl.FileBrowser.Type == Brw_SHOW_MRK_CRS ? ActSeeMyMrkCrs :
|
Frm_StartForm (Gbl.FileBrowser.Type == Brw_SHOW_MRK_CRS ? ActSeeMyMrkCrs :
|
||||||
ActSeeMyMrkGrp);
|
ActSeeMyMrkGrp);
|
||||||
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata->PathInTreeUntilFilFolLnk,
|
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata->FilFolLnk.Path,
|
||||||
PATH_MAX);
|
PATH_MAX);
|
||||||
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,FileMetadata->FilFolLnkName,
|
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,FileMetadata->FilFolLnk.Name,
|
||||||
NAME_MAX);
|
NAME_MAX);
|
||||||
Gbl.FileBrowser.FilFolLnk.Type = FileMetadata->FileType;
|
Gbl.FileBrowser.FilFolLnk.Type = FileMetadata->FilFolLnk.Type;
|
||||||
Brw_PutImplicitParamsFileBrowser ();
|
Brw_PutImplicitParamsFileBrowser ();
|
||||||
|
|
||||||
/* Link begin */
|
/* Link begin */
|
||||||
Frm_LinkFormSubmit (Txt_Check_marks_in_the_file,"FILENAME_TXT",NULL);
|
Frm_LinkFormSubmit (Txt_Check_marks_in_the_file,"FILENAME_TXT",NULL);
|
||||||
Brw_PutIconFile (32,FileMetadata->FileType,FileMetadata->FilFolLnkName);
|
Brw_PutIconFile (32,FileMetadata->FilFolLnk.Type,FileMetadata->FilFolLnk.Name);
|
||||||
|
|
||||||
/* Name of the file of marks, link end and form end */
|
/* Name of the file of marks, link end and form end */
|
||||||
fprintf (Gbl.F.Out," %s "
|
fprintf (Gbl.F.Out," %s "
|
||||||
|
@ -10026,14 +10025,14 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Title = (FileMetadata->FileType == Brw_IS_LINK) ? URL : // If it's a link, show full URL in title
|
Title = (FileMetadata->FilFolLnk.Type == Brw_IS_LINK) ? URL : // If it's a link, show full URL in title
|
||||||
Txt_Download;
|
Txt_Download;
|
||||||
|
|
||||||
/* Put anchor and filename */
|
/* Put anchor and filename */
|
||||||
fprintf (Gbl.F.Out,"<a href=\"%s\" class=\"FILENAME_TXT\""
|
fprintf (Gbl.F.Out,"<a href=\"%s\" class=\"FILENAME_TXT\""
|
||||||
" title=\"%s\" target=\"_blank\">",
|
" title=\"%s\" target=\"_blank\">",
|
||||||
URL,Title);
|
URL,Title);
|
||||||
Brw_PutIconFile (32,FileMetadata->FileType,FileMetadata->FilFolLnkName);
|
Brw_PutIconFile (32,FileMetadata->FilFolLnk.Type,FileMetadata->FilFolLnk.Name);
|
||||||
fprintf (Gbl.F.Out," %s "
|
fprintf (Gbl.F.Out," %s "
|
||||||
"<img src=\"%s/download.svg\""
|
"<img src=\"%s/download.svg\""
|
||||||
" alt=\"%s\" title=\"%s\""
|
" alt=\"%s\" title=\"%s\""
|
||||||
|
@ -10062,11 +10061,11 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL,
|
||||||
/* Form to see marks */
|
/* Form to see marks */
|
||||||
Frm_StartForm (Gbl.FileBrowser.Type == Brw_SHOW_MRK_CRS ? ActSeeMyMrkCrs :
|
Frm_StartForm (Gbl.FileBrowser.Type == Brw_SHOW_MRK_CRS ? ActSeeMyMrkCrs :
|
||||||
ActSeeMyMrkGrp);
|
ActSeeMyMrkGrp);
|
||||||
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata->PathInTreeUntilFilFolLnk,
|
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata->FilFolLnk.Path,
|
||||||
PATH_MAX);
|
PATH_MAX);
|
||||||
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,FileMetadata->FilFolLnkName,
|
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,FileMetadata->FilFolLnk.Name,
|
||||||
NAME_MAX);
|
NAME_MAX);
|
||||||
Gbl.FileBrowser.FilFolLnk.Type = FileMetadata->FileType;
|
Gbl.FileBrowser.FilFolLnk.Type = FileMetadata->FilFolLnk.Type;
|
||||||
Brw_PutImplicitParamsFileBrowser ();
|
Brw_PutImplicitParamsFileBrowser ();
|
||||||
|
|
||||||
/* Link begin */
|
/* Link begin */
|
||||||
|
@ -10197,7 +10196,7 @@ void Brw_ChgFileMetadata (void)
|
||||||
Gbl.FileBrowser.FilFolLnk.Full,
|
Gbl.FileBrowser.FilFolLnk.Full,
|
||||||
PublicFileAfterEdition,License);
|
PublicFileAfterEdition,License);
|
||||||
else // No entry in database
|
else // No entry in database
|
||||||
FileMetadata.FilCod = Brw_AddPathToDB (Gbl.Usrs.Me.UsrDat.UsrCod,FileMetadata.FileType,
|
FileMetadata.FilCod = Brw_AddPathToDB (Gbl.Usrs.Me.UsrDat.UsrCod,FileMetadata.FilFolLnk.Type,
|
||||||
Gbl.FileBrowser.FilFolLnk.Full,
|
Gbl.FileBrowser.FilFolLnk.Full,
|
||||||
PublicFileAfterEdition,License);
|
PublicFileAfterEdition,License);
|
||||||
|
|
||||||
|
@ -10360,17 +10359,17 @@ void Brw_GetFileMetadataByPath (struct FileMetadata *FileMetadata)
|
||||||
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[4]);
|
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[4]);
|
||||||
|
|
||||||
/* Get file type (row[5]) */
|
/* Get file type (row[5]) */
|
||||||
FileMetadata->FileType = Brw_IS_UNKNOWN; // default
|
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN; // default
|
||||||
if (sscanf (row[5],"%u",&UnsignedNum) == 1)
|
if (sscanf (row[5],"%u",&UnsignedNum) == 1)
|
||||||
if (UnsignedNum < Brw_NUM_FILE_TYPES)
|
if (UnsignedNum < Brw_NUM_FILE_TYPES)
|
||||||
FileMetadata->FileType = (Brw_FileType_t) UnsignedNum;
|
FileMetadata->FilFolLnk.Type = (Brw_FileType_t) UnsignedNum;
|
||||||
|
|
||||||
/* Get path (row[6]) */
|
/* Get path (row[6]) */
|
||||||
Str_Copy (FileMetadata->FullPathInTree,row[6],
|
Str_Copy (FileMetadata->FilFolLnk.Full,row[6],
|
||||||
PATH_MAX);
|
PATH_MAX);
|
||||||
Str_SplitFullPathIntoPathAndFileName (FileMetadata->FullPathInTree,
|
Str_SplitFullPathIntoPathAndFileName (FileMetadata->FilFolLnk.Full,
|
||||||
FileMetadata->PathInTreeUntilFilFolLnk,
|
FileMetadata->FilFolLnk.Path,
|
||||||
FileMetadata->FilFolLnkName);
|
FileMetadata->FilFolLnk.Name);
|
||||||
|
|
||||||
/* File is hidden? (row[7]) */
|
/* File is hidden? (row[7]) */
|
||||||
switch (Gbl.FileBrowser.Type)
|
switch (Gbl.FileBrowser.Type)
|
||||||
|
@ -10425,10 +10424,10 @@ void Brw_GetFileMetadataByPath (struct FileMetadata *FileMetadata)
|
||||||
FileMetadata->Cod = -1L;
|
FileMetadata->Cod = -1L;
|
||||||
FileMetadata->ZoneUsrCod = -1L;
|
FileMetadata->ZoneUsrCod = -1L;
|
||||||
FileMetadata->PublisherUsrCod = -1L;
|
FileMetadata->PublisherUsrCod = -1L;
|
||||||
FileMetadata->FileType = Brw_IS_UNKNOWN;
|
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN;
|
||||||
FileMetadata->FullPathInTree[0] = '\0';
|
FileMetadata->FilFolLnk.Full[0] = '\0';
|
||||||
FileMetadata->PathInTreeUntilFilFolLnk[0] = '\0';
|
FileMetadata->FilFolLnk.Path[0] = '\0';
|
||||||
FileMetadata->FilFolLnkName[0] = '\0';
|
FileMetadata->FilFolLnk.Name[0] = '\0';
|
||||||
FileMetadata->IsHidden = false;
|
FileMetadata->IsHidden = false;
|
||||||
FileMetadata->IsPublic = false;
|
FileMetadata->IsPublic = false;
|
||||||
FileMetadata->License = Brw_LICENSE_DEFAULT;
|
FileMetadata->License = Brw_LICENSE_DEFAULT;
|
||||||
|
@ -10489,17 +10488,17 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata)
|
||||||
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[4]);
|
FileMetadata->PublisherUsrCod = Str_ConvertStrCodToLongCod (row[4]);
|
||||||
|
|
||||||
/* Get file type (row[5]) */
|
/* Get file type (row[5]) */
|
||||||
FileMetadata->FileType = Brw_IS_UNKNOWN; // default
|
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN; // default
|
||||||
if (sscanf (row[5],"%u",&UnsignedNum) == 1)
|
if (sscanf (row[5],"%u",&UnsignedNum) == 1)
|
||||||
if (UnsignedNum < Brw_NUM_FILE_TYPES)
|
if (UnsignedNum < Brw_NUM_FILE_TYPES)
|
||||||
FileMetadata->FileType = (Brw_FileType_t) UnsignedNum;
|
FileMetadata->FilFolLnk.Type = (Brw_FileType_t) UnsignedNum;
|
||||||
|
|
||||||
/* Get path (row[6]) */
|
/* Get path (row[6]) */
|
||||||
Str_Copy (FileMetadata->FullPathInTree,row[6],
|
Str_Copy (FileMetadata->FilFolLnk.Full,row[6],
|
||||||
PATH_MAX);
|
PATH_MAX);
|
||||||
Str_SplitFullPathIntoPathAndFileName (FileMetadata->FullPathInTree,
|
Str_SplitFullPathIntoPathAndFileName (FileMetadata->FilFolLnk.Full,
|
||||||
FileMetadata->PathInTreeUntilFilFolLnk,
|
FileMetadata->FilFolLnk.Path,
|
||||||
FileMetadata->FilFolLnkName);
|
FileMetadata->FilFolLnk.Name);
|
||||||
|
|
||||||
/* Is a hidden file? (row[7]) */
|
/* Is a hidden file? (row[7]) */
|
||||||
switch (Gbl.FileBrowser.Type)
|
switch (Gbl.FileBrowser.Type)
|
||||||
|
@ -10554,10 +10553,10 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata)
|
||||||
FileMetadata->Cod = -1L;
|
FileMetadata->Cod = -1L;
|
||||||
FileMetadata->ZoneUsrCod = -1L;
|
FileMetadata->ZoneUsrCod = -1L;
|
||||||
FileMetadata->PublisherUsrCod = -1L;
|
FileMetadata->PublisherUsrCod = -1L;
|
||||||
FileMetadata->FileType = Brw_IS_UNKNOWN;
|
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN;
|
||||||
FileMetadata->FullPathInTree[0] = '\0';
|
FileMetadata->FilFolLnk.Full[0] = '\0';
|
||||||
FileMetadata->PathInTreeUntilFilFolLnk[0] = '\0';
|
FileMetadata->FilFolLnk.Path[0] = '\0';
|
||||||
FileMetadata->FilFolLnkName[0] = '\0';
|
FileMetadata->FilFolLnk.Name[0] = '\0';
|
||||||
FileMetadata->IsHidden = false;
|
FileMetadata->IsHidden = false;
|
||||||
FileMetadata->IsPublic = false;
|
FileMetadata->IsPublic = false;
|
||||||
FileMetadata->License = Brw_LICENSE_DEFAULT;
|
FileMetadata->License = Brw_LICENSE_DEFAULT;
|
||||||
|
@ -10588,11 +10587,11 @@ bool Brw_GetFileTypeSizeAndDate (struct FileMetadata *FileMetadata)
|
||||||
snprintf (Path,sizeof (Path),
|
snprintf (Path,sizeof (Path),
|
||||||
"%s/%s",
|
"%s/%s",
|
||||||
Gbl.FileBrowser.Priv.PathAboveRootFolder,
|
Gbl.FileBrowser.Priv.PathAboveRootFolder,
|
||||||
FileMetadata->FullPathInTree);
|
FileMetadata->FilFolLnk.Full);
|
||||||
if (lstat (Path,&FileStatus)) // On success ==> 0 is returned
|
if (lstat (Path,&FileStatus)) // On success ==> 0 is returned
|
||||||
{
|
{
|
||||||
// Error on lstat
|
// Error on lstat
|
||||||
FileMetadata->FileType = Brw_IS_UNKNOWN;
|
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN;
|
||||||
FileMetadata->Size = (off_t) 0;
|
FileMetadata->Size = (off_t) 0;
|
||||||
FileMetadata->Time = (time_t) 0;
|
FileMetadata->Time = (time_t) 0;
|
||||||
return false;
|
return false;
|
||||||
|
@ -10600,12 +10599,12 @@ bool Brw_GetFileTypeSizeAndDate (struct FileMetadata *FileMetadata)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (S_ISDIR (FileStatus.st_mode))
|
if (S_ISDIR (FileStatus.st_mode))
|
||||||
FileMetadata->FileType = Brw_IS_FOLDER;
|
FileMetadata->FilFolLnk.Type = Brw_IS_FOLDER;
|
||||||
else if (S_ISREG (FileStatus.st_mode))
|
else if (S_ISREG (FileStatus.st_mode))
|
||||||
FileMetadata->FileType = Str_FileIs (FileMetadata->FullPathInTree,"url") ? Brw_IS_LINK :
|
FileMetadata->FilFolLnk.Type = Str_FileIs (FileMetadata->FilFolLnk.Full,"url") ? Brw_IS_LINK :
|
||||||
Brw_IS_FILE;
|
Brw_IS_FILE;
|
||||||
else
|
else
|
||||||
FileMetadata->FileType = Brw_IS_UNKNOWN;
|
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN;
|
||||||
FileMetadata->Size = FileStatus.st_size;
|
FileMetadata->Size = FileStatus.st_size;
|
||||||
FileMetadata->Time = FileStatus.st_mtime;
|
FileMetadata->Time = FileStatus.st_mtime;
|
||||||
return true;
|
return true;
|
||||||
|
@ -11714,7 +11713,7 @@ void Brw_GetSummaryAndContentOfFile (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
Brw_GetFileMetadataByCod (&FileMetadata);
|
Brw_GetFileMetadataByCod (&FileMetadata);
|
||||||
|
|
||||||
/***** Copy file name into summary string *****/
|
/***** Copy file name into summary string *****/
|
||||||
Str_Copy (SummaryStr,FileMetadata.FilFolLnkName,
|
Str_Copy (SummaryStr,FileMetadata.FilFolLnk.Name,
|
||||||
Ntf_MAX_BYTES_SUMMARY);
|
Ntf_MAX_BYTES_SUMMARY);
|
||||||
|
|
||||||
/***** Copy some file metadata into content string *****/
|
/***** Copy some file metadata into content string *****/
|
||||||
|
@ -11735,8 +11734,8 @@ void Brw_GetSummaryAndContentOfFile (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
if (asprintf (ContentStr,"%s: %s<br />" // File name
|
if (asprintf (ContentStr,"%s: %s<br />" // File name
|
||||||
"%s: %s<br />" // File path
|
"%s: %s<br />" // File path
|
||||||
"%s: %s", // Publisher
|
"%s: %s", // Publisher
|
||||||
Txt_Filename,FileMetadata.FilFolLnkName,
|
Txt_Filename,FileMetadata.FilFolLnk.Name,
|
||||||
Txt_Folder,FileMetadata.PathInTreeUntilFilFolLnk, // TODO: Fix bug: do not write internal name (for example "comun")
|
Txt_Folder,FileMetadata.FilFolLnk.Path, // TODO: Fix bug: do not write internal name (for example "comun")
|
||||||
Txt_Uploaded_by,
|
Txt_Uploaded_by,
|
||||||
FileHasPublisher ? PublisherUsrDat.FullName :
|
FileHasPublisher ? PublisherUsrDat.FullName :
|
||||||
Txt_ROLES_SINGUL_Abc[Rol_UNK][Usr_SEX_UNKNOWN]) < 0)
|
Txt_ROLES_SINGUL_Abc[Rol_UNK][Usr_SEX_UNKNOWN]) < 0)
|
||||||
|
@ -12041,8 +12040,8 @@ static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row)
|
||||||
BgColor,Title);
|
BgColor,Title);
|
||||||
|
|
||||||
/***** Get the name of the file to show *****/
|
/***** Get the name of the file to show *****/
|
||||||
Brw_GetFileNameToShow (FileMetadata.FileType,
|
Brw_GetFileNameToShow (FileMetadata.FilFolLnk.Type,
|
||||||
FileMetadata.FilFolLnkName,
|
FileMetadata.FilFolLnk.Name,
|
||||||
FileNameToShow);
|
FileNameToShow);
|
||||||
|
|
||||||
/***** Write file name using path (row[1]) *****/
|
/***** Write file name using path (row[1]) *****/
|
||||||
|
@ -12078,7 +12077,7 @@ static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row)
|
||||||
Frm_StartForm (Action);
|
Frm_StartForm (Action);
|
||||||
|
|
||||||
/* Parameters to go to file / folder */
|
/* Parameters to go to file / folder */
|
||||||
if (FileMetadata.FileType == Brw_IS_FOLDER)
|
if (FileMetadata.FilFolLnk.Type == Brw_IS_FOLDER)
|
||||||
Brw_PutImplicitParamsFileBrowser ();
|
Brw_PutImplicitParamsFileBrowser ();
|
||||||
else
|
else
|
||||||
Brw_PutParamsFileBrowser (NULL, // Not used
|
Brw_PutParamsFileBrowser (NULL, // Not used
|
||||||
|
@ -12088,7 +12087,7 @@ static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row)
|
||||||
|
|
||||||
/* File or folder icon */
|
/* File or folder icon */
|
||||||
Frm_LinkFormSubmit (FileNameToShow,"DAT_N",NULL);
|
Frm_LinkFormSubmit (FileNameToShow,"DAT_N",NULL);
|
||||||
if (FileMetadata.FileType == Brw_IS_FOLDER)
|
if (FileMetadata.FilFolLnk.Type == Brw_IS_FOLDER)
|
||||||
/* Icon with folder */
|
/* Icon with folder */
|
||||||
fprintf (Gbl.F.Out,"<img src=\"%s/folder-yellow.png\""
|
fprintf (Gbl.F.Out,"<img src=\"%s/folder-yellow.png\""
|
||||||
" alt=\"%s\" title=\"%s\""
|
" alt=\"%s\" title=\"%s\""
|
||||||
|
@ -12097,7 +12096,7 @@ static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row)
|
||||||
Txt_Folder,Txt_Folder);
|
Txt_Folder,Txt_Folder);
|
||||||
else
|
else
|
||||||
/* Icon with file type or link */
|
/* Icon with file type or link */
|
||||||
Brw_PutIconFile (16,FileMetadata.FileType,FileMetadata.FilFolLnkName);
|
Brw_PutIconFile (16,FileMetadata.FilFolLnk.Type,FileMetadata.FilFolLnk.Name);
|
||||||
fprintf (Gbl.F.Out," %s"
|
fprintf (Gbl.F.Out," %s"
|
||||||
"</a>",
|
"</a>",
|
||||||
FileNameToShow);
|
FileNameToShow);
|
||||||
|
|
|
@ -113,6 +113,14 @@ typedef enum
|
||||||
Brw_ICON_EDIT = 2
|
Brw_ICON_EDIT = 2
|
||||||
} Brw_IconViewEdit_t;
|
} Brw_IconViewEdit_t;
|
||||||
|
|
||||||
|
struct FilFolLnk
|
||||||
|
{
|
||||||
|
char Full[PATH_MAX + 1]; // Full path = Path/Name
|
||||||
|
char Path[PATH_MAX + 1]; // Path in tree, without ending '/', until file, folder or link name
|
||||||
|
char Name[NAME_MAX + 1]; // File, folder or link name
|
||||||
|
Brw_FileType_t Type;
|
||||||
|
};
|
||||||
|
|
||||||
struct FileMetadata
|
struct FileMetadata
|
||||||
{
|
{
|
||||||
long FilCod;
|
long FilCod;
|
||||||
|
@ -120,14 +128,10 @@ struct FileMetadata
|
||||||
long Cod; // Code of institution, centre, degree, course or group
|
long Cod; // Code of institution, centre, degree, course or group
|
||||||
long ZoneUsrCod;
|
long ZoneUsrCod;
|
||||||
long PublisherUsrCod;
|
long PublisherUsrCod;
|
||||||
char FullPathInTree[PATH_MAX + 1];
|
struct FilFolLnk FilFolLnk;
|
||||||
// FullPathInTree is splitted as PathInTreeUntilFilFolLnk/FilFolLnkName
|
|
||||||
char PathInTreeUntilFilFolLnk[PATH_MAX + 1]; // Path in tree, without ending '/', until file, folder or link name
|
|
||||||
char FilFolLnkName[NAME_MAX + 1]; // File, folder or link name
|
|
||||||
bool IsHidden;
|
bool IsHidden;
|
||||||
bool IsPublic;
|
bool IsPublic;
|
||||||
Brw_License_t License;
|
Brw_License_t License;
|
||||||
Brw_FileType_t FileType;
|
|
||||||
off_t Size;
|
off_t Size;
|
||||||
time_t Time;
|
time_t Time;
|
||||||
unsigned NumMyViews;
|
unsigned NumMyViews;
|
||||||
|
|
|
@ -509,13 +509,7 @@ struct Globals
|
||||||
char PathRootFolder[PATH_MAX + 1];
|
char PathRootFolder[PATH_MAX + 1];
|
||||||
} Priv;
|
} Priv;
|
||||||
char NewFilFolLnkName[NAME_MAX + 1];
|
char NewFilFolLnkName[NAME_MAX + 1];
|
||||||
struct
|
struct FilFolLnk FilFolLnk;
|
||||||
{
|
|
||||||
char Full[PATH_MAX + 1]; // Full path in tree, including filename
|
|
||||||
char Path[PATH_MAX + 1]; // Path in tree above filename
|
|
||||||
char Name[NAME_MAX + 1]; // Filename
|
|
||||||
Brw_FileType_t Type;
|
|
||||||
} FilFolLnk;
|
|
||||||
unsigned Level;
|
unsigned Level;
|
||||||
bool ICanEditFileOrFolder; // Can I modify (remove, rename, create inside, etc.) a file or folder?
|
bool ICanEditFileOrFolder; // Can I modify (remove, rename, create inside, etc.) a file or folder?
|
||||||
Brw_IconViewEdit_t IconViewEdit;
|
Brw_IconViewEdit_t IconViewEdit;
|
||||||
|
@ -524,10 +518,8 @@ struct Globals
|
||||||
Brw_FileBrowser_t FileBrowser; // Type of the file browser
|
Brw_FileBrowser_t FileBrowser; // Type of the file browser
|
||||||
long Cod; // Code of the institution/centre/degree/course/group related to the file browser with the clipboard
|
long Cod; // Code of the institution/centre/degree/course/group related to the file browser with the clipboard
|
||||||
long WorksUsrCod; // User code of the user related to the works file browser with the clipboard
|
long WorksUsrCod; // User code of the user related to the works file browser with the clipboard
|
||||||
char Path[PATH_MAX + 1]; // Complete path in the file browser
|
|
||||||
char FileName[NAME_MAX + 1]; // File name, last part of complete path in the file browser
|
|
||||||
unsigned Level;
|
unsigned Level;
|
||||||
Brw_FileType_t FileType; // Folder, file or link
|
struct FilFolLnk FilFolLnk;
|
||||||
bool IsThisTree; // When showing a file browser, is it that corresponding to the clipboard?
|
bool IsThisTree; // When showing a file browser, is it that corresponding to the clipboard?
|
||||||
bool IsThisFile; // When showing a row of a file browser, are we in the path of the clipboard?
|
bool IsThisFile; // When showing a row of a file browser, are we in the path of the clipboard?
|
||||||
} Clipboard;
|
} Clipboard;
|
||||||
|
|
|
@ -4570,7 +4570,7 @@ static bool Svc_WriteRowFileBrowser (unsigned Level,Brw_FileType_t FileType,cons
|
||||||
|
|
||||||
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
|
||||||
/* Add 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.FilFolLnk.Type,
|
||||||
Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT);
|
Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT);
|
||||||
|
|
||||||
Gbl.Usrs.Other.UsrDat.UsrCod = FileMetadata.PublisherUsrCod;
|
Gbl.Usrs.Other.UsrDat.UsrCod = FileMetadata.PublisherUsrCod;
|
||||||
|
@ -4726,9 +4726,9 @@ int swad__getFile (struct soap *soap,
|
||||||
/***** Set paths *****/
|
/***** Set paths *****/
|
||||||
Hie_InitHierarchy ();
|
Hie_InitHierarchy ();
|
||||||
Brw_InitializeFileBrowser ();
|
Brw_InitializeFileBrowser ();
|
||||||
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata.PathInTreeUntilFilFolLnk,
|
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata.FilFolLnk.Path,
|
||||||
PATH_MAX);
|
PATH_MAX);
|
||||||
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,FileMetadata.FilFolLnkName,
|
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,FileMetadata.FilFolLnk.Name,
|
||||||
NAME_MAX);
|
NAME_MAX);
|
||||||
Brw_SetFullPathInTree ();
|
Brw_SetFullPathInTree ();
|
||||||
|
|
||||||
|
@ -4739,12 +4739,12 @@ int swad__getFile (struct soap *soap,
|
||||||
Brw_GetAndUpdateFileViews (&FileMetadata);
|
Brw_GetAndUpdateFileViews (&FileMetadata);
|
||||||
|
|
||||||
/***** Create and get link to download the file *****/
|
/***** Create and get link to download the file *****/
|
||||||
Brw_GetLinkToDownloadFile (FileMetadata.PathInTreeUntilFilFolLnk,
|
Brw_GetLinkToDownloadFile (FileMetadata.FilFolLnk.Path,
|
||||||
FileMetadata.FilFolLnkName,
|
FileMetadata.FilFolLnk.Name,
|
||||||
URL);
|
URL);
|
||||||
|
|
||||||
/***** Copy data into output structure *****/
|
/***** Copy data into output structure *****/
|
||||||
Str_Copy (getFileOut->fileName,FileMetadata.FilFolLnkName,
|
Str_Copy (getFileOut->fileName,FileMetadata.FilFolLnk.Name,
|
||||||
NAME_MAX);
|
NAME_MAX);
|
||||||
|
|
||||||
Str_Copy (getFileOut->URL,URL,
|
Str_Copy (getFileOut->URL,URL,
|
||||||
|
@ -4804,7 +4804,7 @@ int swad__getMarks (struct soap *soap,
|
||||||
FileMetadata.FilCod = (long) fileCode;
|
FileMetadata.FilCod = (long) fileCode;
|
||||||
Brw_GetFileMetadataByCod (&FileMetadata);
|
Brw_GetFileMetadataByCod (&FileMetadata);
|
||||||
|
|
||||||
if (FileMetadata.FileType != Brw_IS_FILE ||
|
if (FileMetadata.FilFolLnk.Type != Brw_IS_FILE ||
|
||||||
FileMetadata.IsHidden ||
|
FileMetadata.IsHidden ||
|
||||||
(FileMetadata.FileBrowser != Brw_ADMI_MRK_CRS &&
|
(FileMetadata.FileBrowser != Brw_ADMI_MRK_CRS &&
|
||||||
FileMetadata.FileBrowser != Brw_ADMI_MRK_GRP))
|
FileMetadata.FileBrowser != Brw_ADMI_MRK_GRP))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user