diff --git a/swad_assignment.c b/swad_assignment.c
index 0ed899094..0e7f8abc5 100644
--- a/swad_assignment.c
+++ b/swad_assignment.c
@@ -487,7 +487,10 @@ static void Asg_WriteAssignmentFolder (struct Assignment *Asg)
{
/* Form to create a new file or folder */
Act_FormStart (ActFrmCreAsgUsr);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,Asg->Folder);
+ Brw_PutParamsFileBrowser (ActUnk,
+ Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,
+ Asg->Folder,
+ Brw_IS_FOLDER,-1L);
sprintf (Gbl.Title,Txt_Upload_file_or_create_folder_in_FOLDER,
Asg->Folder);
fprintf (Gbl.F.Out,"CrsCod <= 0)
- {
- Crs->CrsCod = -1L;
- Crs->DegCod = -1L;
- Crs->Year = 0;
- Crs->Status = (Crs_Status_t) 0;
- Crs->RequesterUsrCod = -1L;
- Crs->ShrtName[0] = '\0';
- Crs->FullName[0] = '\0';
- Crs->NumStds = 0;
- Crs->NumTchs = 0;
- Crs->NumUsrs = 0;
- return false;
- }
+ /***** Reset course data *****/
+ Crs->DegCod = -1L;
+ Crs->Year = 0;
+ Crs->Status = (Crs_Status_t) 0;
+ Crs->RequesterUsrCod = -1L;
+ Crs->ShrtName[0] = '\0';
+ Crs->FullName[0] = '\0';
+ Crs->NumStds = 0;
+ Crs->NumTchs = 0;
+ Crs->NumUsrs = 0;
- /***** Get data of a course from database *****/
- sprintf (Query,"SELECT CrsCod,DegCod,Year,InsCrsCod,Status,RequesterUsrCod,ShortName,FullName"
- " FROM courses WHERE CrsCod='%ld'",
- Crs->CrsCod);
- NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get data of a course");
-
- if (NumRows == 1) // Course found
+ if (Crs->CrsCod > 0)
{
- /***** Get data of the course *****/
- row = mysql_fetch_row (mysql_res);
- Crs_GetDataOfCourseFromRow (Crs,row);
+ /***** Get data of a course from database *****/
+ sprintf (Query,"SELECT CrsCod,DegCod,Year,InsCrsCod,Status,RequesterUsrCod,ShortName,FullName"
+ " FROM courses WHERE CrsCod='%ld'",
+ Crs->CrsCod);
+ NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get data of a course");
- CrsFound = true;
+ if (NumRows == 1) // Course found
+ {
+ /***** Get data of the course *****/
+ row = mysql_fetch_row (mysql_res);
+ Crs_GetDataOfCourseFromRow (Crs,row);
+
+ CrsFound = true;
+ }
}
- else if (NumRows == 0) // Course not found
- {
- Crs->CrsCod = -1L;
- Crs->DegCod = -1L;
- Crs->Year = 0;
- Crs->Status = (Crs_Status_t) 0;
- Crs->RequesterUsrCod = -1L;
- Crs->ShrtName[0] = '\0';
- Crs->FullName[0] = '\0';
- Crs->NumStds = 0;
- Crs->NumTchs = 0;
- Crs->NumUsrs = 0;
- }
- else if (NumRows > 1) // Course duplicated
- Lay_ShowErrorAndExit ("Course is repeated in database.");
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
diff --git a/swad_file_browser.c b/swad_file_browser.c
index 6c5336880..8fdd7a1a6 100644
--- a/swad_file_browser.c
+++ b/swad_file_browser.c
@@ -1471,8 +1471,6 @@ static void Brw_InitHiddenLevels (void);
static void Brw_ShowAndStoreSizeOfFileTree (void);
static void Brw_StoreSizeOfFileTreeInDB (void);
-static void Brw_PutParamsContextualLink (void);
-
static void Brw_PutCheckboxFullTree (void);
static void Brw_PutParamsFullTree (void);
static bool Brw_GetFullTreeFromForm (void);
@@ -2407,14 +2405,37 @@ long Brw_GetParamFilCod (void)
}
/*****************************************************************************/
-/** Put hidden params. with the path in the tree and the name of file/folder */
+/**************** Write parameters related with file browser *****************/
/*****************************************************************************/
-void Brw_PutParamsPathAndFile (Brw_FileType_t FileType,
- const char *PathInTree,const char *FileFolderName)
+void Brw_PutParamsFileBrowser (Act_Action_t NextAction,
+ const char *PathInTree,const char *FileFolderName,
+ Brw_FileType_t FileType,long FilCod)
{
- Par_PutHiddenParamString ("Path",PathInTree);
- Par_PutHiddenParamString (Brw_FileTypeParamName[FileType],FileFolderName);
+ if (Brw_GetIfGroupFileBrowser ())
+ /***** Group code *****/
+ Grp_PutParamGrpCod (Gbl.CurrentCrs.Grps.GrpCod);
+ else
+ if (NextAction != ActUnk)
+ {
+ if (Brw_GetIfCrsAssigWorksFileBrowser ())
+ {
+ /***** Users selected *****/
+ Usr_PutHiddenParUsrCodAll (NextAction,Gbl.Usrs.Select.All);
+ Usr_PutParamOtherUsrCodEncrypted ();
+ }
+ }
+
+ /***** If full tree selected? *****/
+ Brw_PutHiddenParamFullTreeIfSelected ();
+
+ /***** Path and file *****/
+ if (PathInTree)
+ Par_PutHiddenParamString ("Path",PathInTree);
+ if (FileFolderName)
+ Par_PutHiddenParamString (Brw_FileTypeParamName[FileType],FileFolderName);
+ if (FilCod > 0)
+ Brw_PutHiddenParamFilCod (FilCod);
}
/*****************************************************************************/
@@ -3647,14 +3668,14 @@ static void Brw_PutIconsFileBrowser (void)
break;
case Brw_ICON_VIEW:
Lay_PutContextualLink (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type],
- Brw_PutParamsContextualLink,
+ Brw_PutHiddenParamFullTreeIfSelected,
"eye-on64x64.png",
Txt_View,NULL,
NULL);
break;
case Brw_ICON_EDIT:
Lay_PutContextualLink (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type],
- Brw_PutParamsContextualLink,
+ Brw_PutHiddenParamFullTreeIfSelected,
"edit64x64.png",
Txt_Edit,NULL,
NULL);
@@ -3690,7 +3711,7 @@ static void Brw_PutButtonToShowEdit (void)
if (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type] != ActUnk)
{
Act_FormStart (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type]);
- Brw_PutParamsContextualLink ();
+ Brw_PutHiddenParamFullTreeIfSelected ();
Lay_PutConfirmButton (Txt_View);
Act_FormEnd ();
}
@@ -3699,7 +3720,7 @@ static void Brw_PutButtonToShowEdit (void)
if (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type] != ActUnk)
{
Act_FormStart (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type]);
- Brw_PutParamsContextualLink ();
+ Brw_PutHiddenParamFullTreeIfSelected ();
Lay_PutConfirmButton (Txt_Edit);
Act_FormEnd ();
}
@@ -4629,17 +4650,6 @@ void Brw_RemoveUsrFilesFromDB (long UsrCod)
DB_QueryDELETE (Query,"can not remove files in user's file zones");
}
-/*****************************************************************************/
-/************** Put parameters necessary in a contextual link ****************/
-/*****************************************************************************/
-
-static void Brw_PutParamsContextualLink (void)
- {
- Brw_PutHiddenParamFullTreeIfSelected ();
- // It's not necessary to put a parameter with the group code...
- // ...because it is stored in database
- }
-
/*****************************************************************************/
/************** Write a form to select whether show full tree ****************/
/*****************************************************************************/
@@ -5422,8 +5432,9 @@ static void Brw_PutIconRemoveFile (const char *PathInTree,const char *FileName,c
{
/***** Form to remove a file *****/
Act_FormStart (Brw_ActAskRemoveFile[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActAskRemoveFile[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Gbl.FileBrowser.FileType,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (Brw_ActAskRemoveFile[Gbl.FileBrowser.Type],
+ PathInTree,FileName,
+ Gbl.FileBrowser.FileType,-1L);
sprintf (Gbl.Title,Txt_Remove_FILE_OR_LINK_X,FileNameToShow);
fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd);
Act_FormStart (Brw_ActShow[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (ActUnk);
- Brw_PutParamsPathAndFile (Gbl.FileBrowser.FileType,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (ActUnk,
+ PathInTree,FileName,
+ Gbl.FileBrowser.FileType,-1L);
sprintf (Gbl.Title,Txt_Show_FOLDER_FILE_OR_LINK_X,FileNameToShow);
fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd);
Act_FormStart (Brw_ActHide[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (ActUnk);
- Brw_PutParamsPathAndFile (Gbl.FileBrowser.FileType,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (ActUnk,
+ PathInTree,FileName,
+ Gbl.FileBrowser.FileType,-1L);
sprintf (Gbl.Title,Txt_Hide_FOLDER_FILE_OR_LINK_X,FileNameToShow);
fprintf (Gbl.F.Out,"FilCod);
+ Brw_PutParamsFileBrowser (Brw_ActReqDatFile[Gbl.FileBrowser.Type],
+ NULL,NULL,
+ Brw_IS_UNKNOWN, // Not used
+ FileMetadata->FilCod);
/***** Name and link of the file or folder *****/
sprintf (Gbl.Title,Txt_View_data_of_FILE_OR_LINK_X,
@@ -5858,8 +5872,9 @@ static void Brw_WriteFileName (unsigned Level,bool IsPublic,
if (Gbl.FileBrowser.ICanEditFileOrFolder) // Can I rename this folder?
{
Act_FormStart (Brw_ActRenameFolder[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActRenameFolder[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (Brw_ActRenameFolder[Gbl.FileBrowser.Type],
+ PathInTree,FileName,
+ Brw_IS_FOLDER,-1L);
}
/***** Write name of the folder *****/
@@ -5902,8 +5917,9 @@ static void Brw_WriteFileName (unsigned Level,bool IsPublic,
fprintf (Gbl.F.Out,"\" style=\"width:99%%;\"> ");
Act_FormStart (Brw_ActDowFile[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActDowFile[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Gbl.FileBrowser.FileType,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (Brw_ActDowFile[Gbl.FileBrowser.Type],
+ PathInTree,FileName,
+ Gbl.FileBrowser.FileType,-1L);
/* Link to the form and to the file */
sprintf (Gbl.Title,(Gbl.FileBrowser.Type == Brw_SHOW_MARKS_CRS ||
@@ -6145,8 +6161,10 @@ void Brw_AskRemFileFromTree (void)
{
/***** Form to ask for confirmation to remove a file *****/
Act_FormStart (Brw_ActRemoveFile[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActRemoveFile[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Gbl.FileBrowser.FileType,Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,Gbl.FileBrowser.FilFolLnkName);
+ Brw_PutParamsFileBrowser (Brw_ActRemoveFile[Gbl.FileBrowser.Type],
+ Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
+ Gbl.FileBrowser.FilFolLnkName,
+ Gbl.FileBrowser.FileType,-1L);
/* Show question */
Brw_GetFileNameToShow (Gbl.FileBrowser.FileType,Gbl.FileBrowser.Level,
@@ -6284,10 +6302,10 @@ static void Brw_AskConfirmRemoveFolderNotEmpty (void)
/***** Form to remove a not empty folder *****/
Act_FormStart (Brw_ActRemoveFolderNotEmpty[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActRemoveFolderNotEmpty[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,
+ Brw_PutParamsFileBrowser (Brw_ActRemoveFolderNotEmpty[Gbl.FileBrowser.Type],
Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
- Gbl.FileBrowser.FilFolLnkName);
+ Gbl.FileBrowser.FilFolLnkName,
+ Brw_IS_FOLDER,-1L);
sprintf (Gbl.Message,Txt_Do_you_really_want_to_remove_the_folder_X,
Gbl.FileBrowser.FilFolLnkName);
Lay_ShowAlert (Lay_WARNING,Gbl.Message);
@@ -7866,8 +7884,10 @@ static void Brw_PutFormToCreateAFolder (const char *FileNameToShow)
/***** Start form *****/
Act_FormStart (Brw_ActCreateFolder[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActCreateFolder[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,Gbl.FileBrowser.FilFolLnkName);
+ Brw_PutParamsFileBrowser (Brw_ActCreateFolder[Gbl.FileBrowser.Type],
+ Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
+ Gbl.FileBrowser.FilFolLnkName,
+ Brw_IS_FOLDER,-1L);
/***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_Create_folder,NULL,NULL);
@@ -7927,10 +7947,10 @@ static void Brw_PutFormToUploadFilesUsingDropzone (const char *FileNameToShow)
Gbl.Prefs.IconsURL);
Par_PutHiddenParamLong ("act",Act_Actions[Brw_ActUploadFileDropzone[Gbl.FileBrowser.Type]].ActCod);
Par_PutHiddenParamString ("ses",Gbl.Session.Id);
- Brw_PutParamsFileBrowser (Brw_ActUploadFileDropzone[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,
+ Brw_PutParamsFileBrowser (Brw_ActUploadFileDropzone[Gbl.FileBrowser.Type],
Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
- Gbl.FileBrowser.FilFolLnkName);
+ Gbl.FileBrowser.FilFolLnkName,
+ Brw_IS_FOLDER,-1L);
fprintf (Gbl.F.Out,"
"
"
%s"
@@ -7940,14 +7960,10 @@ static void Brw_PutFormToUploadFilesUsingDropzone (const char *FileNameToShow)
/***** Put button to refresh file browser after upload *****/
Act_FormStart (Brw_ActRefreshAfterUploadFiles[Gbl.FileBrowser.Type]);
- if (Brw_GetIfGroupFileBrowser ())
- Grp_PutParamGrpCod (Gbl.CurrentCrs.Grps.GrpCod);
- else if (Brw_GetIfCrsAssigWorksFileBrowser ())
- {
- Usr_PutHiddenParUsrCodAll (Brw_ActRefreshAfterUploadFiles[Gbl.FileBrowser.Type],Gbl.Usrs.Select.All);
- Usr_PutParamOtherUsrCodEncrypted ();
- }
- Brw_PutHiddenParamFullTreeIfSelected ();
+ Brw_PutParamsFileBrowser (Brw_ActRefreshAfterUploadFiles[Gbl.FileBrowser.Type],
+ NULL,NULL,
+ Brw_IS_UNKNOWN, // Not used
+ -1L);
/***** Button to send *****/
Lay_PutConfirmButton (Txt_Done);
@@ -7980,8 +7996,10 @@ static void Brw_PutFormToUploadOneFileClassic (const char *FileNameToShow)
/***** Form to upload one files using the classic way *****/
Act_FormStart (Brw_ActUploadFileClassic[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActUploadFileClassic[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,Gbl.FileBrowser.FilFolLnkName);
+ Brw_PutParamsFileBrowser (Brw_ActUploadFileClassic[Gbl.FileBrowser.Type],
+ Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
+ Gbl.FileBrowser.FilFolLnkName,
+ Brw_IS_FOLDER,-1L);
fprintf (Gbl.F.Out,"
",
Fil_NAME_OF_PARAM_FILENAME_ORG);
@@ -8005,8 +8023,10 @@ static void Brw_PutFormToPasteAFileOrFolder (const char *FileNameToShow)
/***** Start form *****/
Act_FormStart (Brw_ActPaste[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActPaste[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,Gbl.FileBrowser.FilFolLnkName);
+ Brw_PutParamsFileBrowser (Brw_ActPaste[Gbl.FileBrowser.Type],
+ Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
+ Gbl.FileBrowser.FilFolLnkName,
+ Brw_IS_FOLDER,-1L);
/***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_Paste,NULL,NULL);
@@ -8038,8 +8058,10 @@ static void Brw_PutFormToCreateALink (const char *FileNameToShow)
/***** Start form *****/
Act_FormStart (Brw_ActCreateLink[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (Brw_ActCreateLink[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,Gbl.FileBrowser.FilFolLnkName);
+ Brw_PutParamsFileBrowser (Brw_ActCreateLink[Gbl.FileBrowser.Type],
+ Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
+ Gbl.FileBrowser.FilFolLnkName,
+ Brw_IS_FOLDER,-1L);
/***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_Create_link,NULL,NULL);
@@ -9017,8 +9039,6 @@ void Brw_ShowFileMetadata (void)
/***** Start form to update the metadata of a file *****/
if (ICanEdit) // I can edit file properties
{
- Act_FormStart (Brw_ActRecDatFile[Gbl.FileBrowser.Type]);
-
/* Can the file be public? */
switch (Gbl.FileBrowser.Type)
{
@@ -9037,11 +9057,11 @@ void Brw_ShowFileMetadata (void)
break;
}
- /* Put extra parameters */
- Brw_PutParamsFileBrowser (Brw_ActRecDatFile[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (FileMetadata.FileType,
- FileMetadata.PathInTreeUntilFilFolLnk,
- FileMetadata.FilFolLnkName);
+ Act_FormStart (Brw_ActRecDatFile[Gbl.FileBrowser.Type]);
+ Brw_PutParamsFileBrowser (Brw_ActRecDatFile[Gbl.FileBrowser.Type],
+ FileMetadata.PathInTreeUntilFilFolLnk,
+ FileMetadata.FilFolLnkName,
+ FileMetadata.FileType,-1L);
}
/***** Start frame *****/
@@ -9054,13 +9074,13 @@ void Brw_ShowFileMetadata (void)
Lay_PutContextualLink (Brw_ActReqDatFile[Gbl.FileBrowser.Type],
- Brw_PutParamsContextualLink,
+ Brw_PutHiddenParamFullTreeIfSelected,
"eye-on64x64.png",
Txt_View,NULL,
NULL);
Lay_PutContextualLink (Brw_ActReqDatFile[Gbl.FileBrowser.Type],
- Brw_PutParamsContextualLink,
+ Brw_PutHiddenParamFullTreeIfSelected,
"edit64x64.png",
Txt_Edit,NULL,
NULL);
@@ -9583,10 +9603,10 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
/* Form to see marks */
Act_FormStart (Gbl.FileBrowser.Type == Brw_SHOW_MARKS_CRS ? ActSeeMyMrkCrs :
ActSeeMyMrkGrp);
- Brw_PutParamsFileBrowser (ActUnk);
- Brw_PutParamsPathAndFile (FileMetadata->FileType,
+ Brw_PutParamsFileBrowser (ActUnk,
FileMetadata->PathInTreeUntilFilFolLnk,
- FileMetadata->FilFolLnkName);
+ FileMetadata->FilFolLnkName,
+ FileMetadata->FileType,-1L);
/* Link begin */
sprintf (Gbl.Title,Txt_Check_marks_in_file_X,FileNameToShow);
@@ -9639,10 +9659,10 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL,Brw_FileType_t Fil
/* Form to see marks */
Act_FormStart (Gbl.FileBrowser.Type == Brw_SHOW_MARKS_CRS ? ActSeeMyMrkCrs :
ActSeeMyMrkGrp);
- Brw_PutParamsFileBrowser (ActUnk);
- Brw_PutParamsPathAndFile (FileType,
+ Brw_PutParamsFileBrowser (ActUnk,
Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
- Gbl.FileBrowser.FilFolLnkName);
+ Gbl.FileBrowser.FilFolLnkName,
+ FileType,-1L);
/* Link begin */
sprintf (Gbl.Title,Txt_Check_marks_in_file_X,FileNameToShow);
@@ -11499,14 +11519,14 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
Grp_PutParamGrpCod (GrpCod);
/* Parameters to go to file / folder */
- if (FileMetadata.FileType == Brw_IS_FOLDER)
- /* Params path and folder */
- Brw_PutParamsPathAndFile (FileMetadata.FileType,
- FileMetadata.PathInTreeUntilFilFolLnk,
- FileMetadata.FilFolLnkName);
- else
- /* Param with file code */
- Brw_PutHiddenParamFilCod (FileMetadata.FilCod);
+ Brw_PutParamsFileBrowser (ActUnk,
+ FileMetadata.FileType == Brw_IS_FOLDER ? FileMetadata.PathInTreeUntilFilFolLnk :
+ NULL,
+ FileMetadata.FileType == Brw_IS_FOLDER ? FileMetadata.FilFolLnkName :
+ NULL,
+ FileMetadata.FileType,
+ FileMetadata.FileType == Brw_IS_FOLDER ? -1L :
+ FileMetadata.FilCod);
/* File or folder icon */
Act_LinkFormSubmit (FileNameToShow,"DAT_N",NULL);
@@ -11542,7 +11562,7 @@ static void Brw_PutLinkToAskRemOldFiles (void)
{
extern const char *Txt_Remove_old_files;
- Lay_PutContextualLink (ActReqRemOldBrf,Brw_PutParamsContextualLink,
+ Lay_PutContextualLink (ActReqRemOldBrf,Brw_PutHiddenParamFullTreeIfSelected,
"remove-on64x64.png",
Txt_Remove_old_files,Txt_Remove_old_files,
NULL);
@@ -11566,7 +11586,7 @@ void Brw_AskRemoveOldFiles (void)
/***** Start form *****/
Act_FormStart (ActRemOldBrf);
- Brw_PutParamsContextualLink ();
+ Brw_PutHiddenParamFullTreeIfSelected ();
/***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_Remove_old_files,NULL,NULL);
diff --git a/swad_file_browser.h b/swad_file_browser.h
index a93ef7136..85e51a9f5 100644
--- a/swad_file_browser.h
+++ b/swad_file_browser.h
@@ -234,8 +234,9 @@ void Brw_SetFullPathInTree (const char *PathInTreeUntilFileOrFolder,const char *
void Brw_CreateTmpPublicLinkToPrivateFile (const char *FullPathIncludingFile,
const char *FileName);
-void Brw_PutParamsPathAndFile (Brw_FileType_t FileType,
- const char *PathInTree,const char *FileFolderName);
+void Brw_PutParamsFileBrowser (Act_Action_t NextAction,
+ const char *PathInTree,const char *FileFolderName,
+ Brw_FileType_t FileType,long FilCod);
void Brw_RemoveZonesOfGroupsOfType (long GrpTypCod);
void Brw_RemoveGrpZonesVerbose (struct GroupData *GrpDat);
diff --git a/swad_group.c b/swad_group.c
index 56bfa400d..6e7156ddc 100644
--- a/swad_group.c
+++ b/swad_group.c
@@ -2664,51 +2664,65 @@ void Grp_GetDataOfGroupByCod (struct GroupData *GrpDat)
MYSQL_ROW row;
unsigned long NumRows;
- /***** Get data of a group from database *****/
- sprintf (Query,"SELECT crs_grp_types.GrpTypCod,crs_grp_types.CrsCod,"
- "crs_grp_types.GrpTypName,crs_grp_types.Multiple,"
- "crs_grp.GrpName,crs_grp.MaxStudents,"
- "crs_grp.Open,crs_grp.FileZones"
- " FROM crs_grp,crs_grp_types"
- " WHERE crs_grp.GrpCod='%ld'"
- " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod",
- GrpDat->GrpCod);
- NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get data of a group");
+ /***** Reset values *****/
+ GrpDat->GrpTypCod = -1L;
+ GrpDat->CrsCod = -1L;
+ GrpDat->GrpTypName[0] = '\0';
+ GrpDat->GrpName[0] = '\0';
+ GrpDat->MaxStudents = 0;
+ GrpDat->Vacant = 0;
+ GrpDat->Open = false;
+ GrpDat->FileZones = false;
+ GrpDat->MultipleEnrollment = false;
- if (NumRows != 1)
- Lay_ShowErrorAndExit ("Error when getting group.");
+ if (GrpDat->GrpCod > 0)
+ {
+ /***** Get data of a group from database *****/
+ sprintf (Query,"SELECT crs_grp_types.GrpTypCod,crs_grp_types.CrsCod,"
+ "crs_grp_types.GrpTypName,crs_grp_types.Multiple,"
+ "crs_grp.GrpName,crs_grp.MaxStudents,"
+ "crs_grp.Open,crs_grp.FileZones"
+ " FROM crs_grp,crs_grp_types"
+ " WHERE crs_grp.GrpCod='%ld'"
+ " AND crs_grp.GrpTypCod=crs_grp_types.GrpTypCod",
+ GrpDat->GrpCod);
+ NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get data of a group");
- /***** Get data of group *****/
- row = mysql_fetch_row (mysql_res);
+ if (NumRows == 1)
+ {
+ /***** Get data of group *****/
+ row = mysql_fetch_row (mysql_res);
- /* Get the code of the group type (row[0]) */
- if ((GrpDat->GrpTypCod = Str_ConvertStrCodToLongCod (row[0])) <= 0)
- Lay_ShowErrorAndExit ("Wrong code of type of group.");
+ /* Get the code of the group type (row[0]) */
+ if ((GrpDat->GrpTypCod = Str_ConvertStrCodToLongCod (row[0])) <= 0)
+ Lay_ShowErrorAndExit ("Wrong code of type of group.");
- /* Get the code of the course (row[1]) */
- if ((GrpDat->CrsCod = Str_ConvertStrCodToLongCod (row[1])) <= 0)
- Lay_ShowErrorAndExit ("Wrong code of course.");
+ /* Get the code of the course (row[1]) */
+ if ((GrpDat->CrsCod = Str_ConvertStrCodToLongCod (row[1])) <= 0)
+ Lay_ShowErrorAndExit ("Wrong code of course.");
- /* Get the name of the group type (row[2]) */
- strcpy (GrpDat->GrpTypName,row[2]);
+ /* Get the name of the group type (row[2]) */
+ strcpy (GrpDat->GrpTypName,row[2]);
- /* Get whether a student may be in one or multiple groups (row[3]) */
- GrpDat->MultipleEnrollment = (row[3][0] == 'Y');
+ /* Get whether a student may be in one or multiple groups (row[3]) */
+ GrpDat->MultipleEnrollment = (row[3][0] == 'Y');
- /* Get the name of the group (row[4]) */
- strcpy (GrpDat->GrpName,row[4]);
+ /* Get the name of the group (row[4]) */
+ strcpy (GrpDat->GrpName,row[4]);
- /* Get maximum number of students (row[5]) */
- GrpDat->MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[5]);
+ /* Get maximum number of students (row[5]) */
+ GrpDat->MaxStudents = Grp_ConvertToNumMaxStdsGrp (row[5]);
- /* Get whether group is open or closed (row[6]) */
- GrpDat->Open = (row[6][0] == 'Y');
+ /* Get whether group is open or closed (row[6]) */
+ GrpDat->Open = (row[6][0] == 'Y');
- /* Get whether group has file zones (row[7]) */
- GrpDat->FileZones = (row[7][0] == 'Y');
+ /* Get whether group has file zones (row[7]) */
+ GrpDat->FileZones = (row[7][0] == 'Y');
+ }
- /***** Free structure that stores the query result *****/
- DB_FreeMySQLResult (&mysql_res);
+ /***** Free structure that stores the query result *****/
+ DB_FreeMySQLResult (&mysql_res);
+ }
}
/*****************************************************************************/
diff --git a/swad_mark.c b/swad_mark.c
index d1676b715..dda856f99 100644
--- a/swad_mark.c
+++ b/swad_mark.c
@@ -143,8 +143,9 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (Brw_FileType_t FileType,
Gbl.FileBrowser.InputStyle,
Gbl.RowEvenOdd,
Gbl.Form.Id);
- Brw_PutHiddenParamFullTreeIfSelected ();
- Brw_PutParamsPathAndFile (FileType,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (ActUnk,
+ PathInTree,FileName,
+ FileType,-1L);
Act_FormEnd ();
fprintf (Gbl.F.Out,"");
@@ -170,8 +171,9 @@ void Mrk_GetAndWriteNumRowsHeaderAndFooter (Brw_FileType_t FileType,
Gbl.FileBrowser.InputStyle,
Gbl.RowEvenOdd,
Gbl.Form.Id);
- Brw_PutHiddenParamFullTreeIfSelected ();
- Brw_PutParamsPathAndFile (FileType,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (ActUnk,
+ PathInTree,FileName,
+ FileType,-1L);
Act_FormEnd ();
fprintf (Gbl.F.Out,"");
}
diff --git a/swad_user.c b/swad_user.c
index 2203d17d5..0ef0f2964 100644
--- a/swad_user.c
+++ b/swad_user.c
@@ -4915,25 +4915,6 @@ static void Usr_ShowWarningListIsTooBig (unsigned NumUsrs)
Lay_ShowAlert (Lay_WARNING,Gbl.Message);
}
-/*****************************************************************************/
-/**************** Write parameters related with file browser *****************/
-/*****************************************************************************/
-
-void Brw_PutParamsFileBrowser (Act_Action_t NextAction)
- {
- if (Brw_GetIfGroupFileBrowser ())
- Grp_PutParamGrpCod (Gbl.CurrentCrs.Grps.GrpCod);
- else if (NextAction != ActUnk)
- {
- if (Brw_GetIfCrsAssigWorksFileBrowser ())
- {
- Usr_PutHiddenParUsrCodAll (NextAction,Gbl.Usrs.Select.All);
- Usr_PutParamOtherUsrCodEncrypted ();
- }
- }
- Brw_PutHiddenParamFullTreeIfSelected ();
- }
-
/*****************************************************************************/
/************* Write parameter with the list of users selected ***************/
/*****************************************************************************/
diff --git a/swad_user.h b/swad_user.h
index 2da9ea2ae..08075029a 100644
--- a/swad_user.h
+++ b/swad_user.h
@@ -341,7 +341,6 @@ void Usr_FreeUsrsList (Rol_Role_t Role);
bool Usr_GetIfShowBigList (unsigned NumUsrs,const char *OnSubmit);
-void Brw_PutParamsFileBrowser (Act_Action_t NextAction);
void Usr_PutHiddenParUsrCodAll (Act_Action_t NextAction,const char *ListUsrCods);
void Usr_GetListsSelectedUsrsCods (void);
bool Usr_GetListMsgRecipientsWrittenExplicitelyBySender (bool WriteErrorMsgs);
diff --git a/swad_zip.c b/swad_zip.c
index 502b3d5db..8305efb13 100644
--- a/swad_zip.c
+++ b/swad_zip.c
@@ -355,8 +355,9 @@ void ZIP_PutButtonToDownloadZIPOfAFolder (const char *PathInTree,const char *Fil
extern const char *Txt_Create_ZIP_file;
Act_FormStart (ZIP_ActZIPFolder[Gbl.FileBrowser.Type]);
- Brw_PutParamsFileBrowser (ZIP_ActZIPFolder[Gbl.FileBrowser.Type]);
- Brw_PutParamsPathAndFile (Brw_IS_FOLDER,PathInTree,FileName);
+ Brw_PutParamsFileBrowser (ZIP_ActZIPFolder[Gbl.FileBrowser.Type],
+ PathInTree,FileName,
+ Brw_IS_FOLDER,-1L);
Act_LinkFormSubmit (Txt_Create_ZIP_file,The_ClassForm[Gbl.Prefs.Theme],NULL);
fprintf (Gbl.F.Out,"