From ae3e85a28277ad4a814f75857f3f73cfc1d0c9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Wed, 28 Dec 2016 02:40:15 +0100 Subject: [PATCH] Version 16.111.2 --- swad_assignment.c | 5 +- swad_changelog.h | 5 +- swad_course.c | 64 +++++-------- swad_file_browser.c | 224 ++++++++++++++++++++++++-------------------- swad_file_browser.h | 5 +- swad_group.c | 82 +++++++++------- swad_mark.c | 10 +- swad_user.c | 19 ---- swad_user.h | 1 - swad_zip.c | 5 +- 10 files changed, 214 insertions(+), 206 deletions(-) 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,"