diff --git a/swad_attendance.c b/swad_attendance.c index b08574c42..1fba3fe70 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -3327,7 +3327,8 @@ void Att_GetLinkToEvent (void) /**************** Write attendance event in course program *******************/ /*****************************************************************************/ -void Att_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo) +void Att_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo, + const char *Icon,const char *IconTitle) { extern const char *Txt_Actions[Act_NUM_ACTIONS]; char Title[Att_MAX_BYTES_ATTENDANCE_EVENT_TITLE + 1]; @@ -3346,6 +3347,9 @@ void Att_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo) The_GetSuffix ()); } + /***** Icon depending on type ******/ + Ico_PutIconOn (Icon,Ico_BLACK,IconTitle); + /***** Write attendance event title *****/ HTM_Txt (Title); diff --git a/swad_attendance.h b/swad_attendance.h index d42408145..6d2607dd5 100644 --- a/swad_attendance.h +++ b/swad_attendance.h @@ -111,7 +111,8 @@ void Att_PrintUsrsAttendanceCrs (void); //--------------------------- Program resources ------------------------------- void Att_GetLinkToEvent (void); -void Att_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo); +void Att_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo, + const char *Icon,const char *IconTitle); void Att_GetTitleFromAttCod (long AttCod,char *Title,size_t TitleSize); #endif diff --git a/swad_browser.c b/swad_browser.c index e8ee11285..83cd0d7e7 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -5372,7 +5372,8 @@ void Brw_GetLinkToFile (void) /******************** Write file name in course program **********************/ /*****************************************************************************/ -void Brw_WriteFileNameInCrsProgram (long FilCod,bool PutFormToDownload) +void Brw_WriteFileNameInCrsProgram (long FilCod,bool PutFormToGo, + const char *Icon,const char *IconTitle) { extern const char *Txt_Download; struct FileMetadata FileMetadata; @@ -5381,23 +5382,30 @@ void Brw_WriteFileNameInCrsProgram (long FilCod,bool PutFormToDownload) FileMetadata.FilCod = FilCod; Brw_GetFileMetadataByCod (&FileMetadata); - /***** Begin form to download file *****/ - if (PutFormToDownload) + /***** Begin form to go to file data *****/ + if (PutFormToGo) { - // TODO: Download directly or go to the file data? - // TODO: File browser in marks file is always "admin", but student shouldn't have access to view all marks + /* To download the file: Frm_BeginForm (Brw_ActDowFile[FileMetadata.FileBrowser]); - Brw_PutImplicitParamsFileBrowser (&FileMetadata.FilFolLnk); + Brw_PutImplicitParamsFileBrowser (&FileMetadata.FilFolLnk); */ + Frm_BeginForm (Brw_ActReqDatFile[FileMetadata.FileBrowser]); + Brw_PutParamsFileBrowser (NULL, // Not used + NULL, // Not used + Brw_IS_UNKNOWN, // Not used + FileMetadata.FilCod); HTM_BUTTON_Submit_Begin (Txt_Download, "class=\"LM BT_LINK PRG_RSC_%s\"", The_GetSuffix ()); } + /***** Icon depending on type ******/ + Ico_PutIconOn (Icon,Ico_BLACK,IconTitle); + /***** Write filename *****/ HTM_Txt (FileMetadata.FilFolLnk.Name); /***** End form to download file *****/ - if (PutFormToDownload) + if (PutFormToGo) { HTM_BUTTON_End (); diff --git a/swad_browser.h b/swad_browser.h index 373beee06..d7d730f89 100644 --- a/swad_browser.h +++ b/swad_browser.h @@ -257,7 +257,8 @@ void Brw_SetFullPathInTree (void); //--------------------------- Program resources ------------------------------- void Brw_GetLinkToFile (void); -void Brw_WriteFileNameInCrsProgram (long FilCod,bool PutFormToDownload); +void Brw_WriteFileNameInCrsProgram (long FilCod,bool PutFormToGo, + const char *Icon,const char *IconTitle); void Brw_GetFileNameFromFilCod (long FilCod,char *FileName,size_t FileNameSize); //----------------------------------------------------------------------------- diff --git a/swad_call_for_exam.c b/swad_call_for_exam.c index 83105aa13..6434d10d9 100644 --- a/swad_call_for_exam.c +++ b/swad_call_for_exam.c @@ -1733,7 +1733,8 @@ void Cfe_GetLinkToCallForExam (void) /******************* Write call for exam in course program *******************/ /*****************************************************************************/ -void Cfe_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo) +void Cfe_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo, + const char *Icon,const char *IconTitle) { extern const char *Txt_Actions[Act_NUM_ACTIONS]; struct Cfe_CallsForExams CallsForExams; @@ -1764,6 +1765,9 @@ void Cfe_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo) Frm_FreeAnchorStr (Anchor); } + /***** Icon depending on type ******/ + Ico_PutIconOn (Icon,Ico_BLACK,IconTitle); + /***** Write Name of the course and date of exam *****/ HTM_Txt (SessionAndDate); diff --git a/swad_call_for_exam.h b/swad_call_for_exam.h index 0bfeedc37..d868c4f63 100644 --- a/swad_call_for_exam.h +++ b/swad_call_for_exam.h @@ -128,7 +128,8 @@ void Cfe_GetSummaryAndContentCallForExam (char SummaryStr[Ntf_MAX_BYTES_SUMMARY //--------------------------- Program resources ------------------------------- void Cfe_GetLinkToCallForExam (void); -void Cfe_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo); +void Cfe_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo, + const char *Icon,const char *IconTitle); void Cfe_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize); #endif diff --git a/swad_changelog.h b/swad_changelog.h index 5b5c5c262..703075ae1 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate TODO: Attach pdf files in multimedia. */ -#define Log_PLATFORM_VERSION "SWAD 22.12 (2022-09-20)" +#define Log_PLATFORM_VERSION "SWAD 22.12.1 (2022-09-20)" #define CSS_FILE "swad22.7.css" #define JS_FILE "swad21.100.js" /* + Version 22.12.1: Sep 20, 2022 Changes in behaviour of program items. (331015 lines) Version 22.12: Sep 20, 2022 Links to marks file in program. (330985 lines) Copy the following icon to icon public directory: sudo cp icon/list-alt.svg /var/www/html/swad/icon/ diff --git a/swad_exam.c b/swad_exam.c index c2ed133e4..989bff235 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -1677,7 +1677,8 @@ void Exa_GetLinkToExam (void) /*********************** Write exam in course program ************************/ /*****************************************************************************/ -void Exa_WriteExamInCrsProgram (long ExaCod,bool PutFormToGo) +void Exa_WriteExamInCrsProgram (long ExaCod,bool PutFormToGo, + const char *Icon,const char *IconTitle) { extern const char *Txt_Actions[Act_NUM_ACTIONS]; char Title[Gam_MAX_BYTES_TITLE + 1]; @@ -1695,6 +1696,9 @@ void Exa_WriteExamInCrsProgram (long ExaCod,bool PutFormToGo) The_GetSuffix ()); } + /***** Icon depending on type ******/ + Ico_PutIconOn (Icon,Ico_BLACK,IconTitle); + /***** Write Name of the course and date of exam *****/ HTM_Txt (Title); diff --git a/swad_exam.h b/swad_exam.h index ddd1a8445..6e97d1021 100644 --- a/swad_exam.h +++ b/swad_exam.h @@ -89,7 +89,8 @@ void Exa_GetAndShowExamsStats (void); //--------------------------- Program resources ------------------------------- void Exa_GetLinkToExam (void); -void Exa_WriteExamInCrsProgram (long ExaCod,bool PutFormToGo); +void Exa_WriteExamInCrsProgram (long ExaCod,bool PutFormToGo, + const char *Icon,const char *IconTitle); void Exa_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize); #endif diff --git a/swad_game.c b/swad_game.c index 15564a8f1..ac7496aa3 100644 --- a/swad_game.c +++ b/swad_game.c @@ -2387,7 +2387,8 @@ void Gam_GetLinkToGame (void) /*********************** Write game in course program ************************/ /*****************************************************************************/ -void Gam_WriteGameInCrsProgram (long GamCod,bool PutFormToGo) +void Gam_WriteGameInCrsProgram (long GamCod,bool PutFormToGo, + const char *Icon,const char *IconTitle) { extern const char *Txt_Actions[Act_NUM_ACTIONS]; char Title[Gam_MAX_BYTES_TITLE + 1]; @@ -2405,6 +2406,9 @@ void Gam_WriteGameInCrsProgram (long GamCod,bool PutFormToGo) The_GetSuffix ()); } + /***** Icon depending on type ******/ + Ico_PutIconOn (Icon,Ico_BLACK,IconTitle); + /***** Write game title of exam *****/ HTM_Txt (Title); diff --git a/swad_game.h b/swad_game.h index 4b8b0a50a..90cd17852 100644 --- a/swad_game.h +++ b/swad_game.h @@ -169,7 +169,8 @@ void Gam_GetAndShowGamesStats (void); //--------------------------- Program resources ------------------------------- void Gam_GetLinkToGame (void); -void Gam_WriteGameInCrsProgram (long GamCod,bool PutFormToGo); +void Gam_WriteGameInCrsProgram (long GamCod,bool PutFormToGo, + const char *Icon,const char *IconTitle); void Gam_GetTitleFromGamCod (long GamCod,char *Title,size_t TitleSize); #endif diff --git a/swad_program_resource.c b/swad_program_resource.c index 58e9620f9..ce7f55305 100644 --- a/swad_program_resource.c +++ b/swad_program_resource.c @@ -117,7 +117,8 @@ static bool PrgRsc_ExchangeResources (const struct Prg_ResourceHierarchy *Rsc1, static void PrgRsc_ShowClipboard (struct Prg_Item *Item); static void PrgRsc_WriteRowClipboard (bool SubmitOnClick,const struct Prg_Link *Link); -static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutForm); +static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutFormToGo, + const char *Icon,const char *IconTitle); static void PrgRsc_GetDataOfLinkFromClipboard (struct Prg_Link *Link, MYSQL_RES **mysql_res); @@ -444,10 +445,10 @@ static void PrgRsc_WriteRowViewResource (unsigned NumRsc, The_GetSuffix (),The_GetColorRows1 (1)); HTM_Txt (Item->Resource.Title); HTM_BR (); - Ico_PutIconOn (Prg_ResourceTypesIcons[Item->Resource.Link.Type],Ico_BLACK, - Txt_RESOURCE_TYPES[Item->Resource.Link.Type]); PrgRsc_WriteLinkName (&Item->Resource.Link, - true); // Put form + true, // Put form + Prg_ResourceTypesIcons[Item->Resource.Link.Type], + Txt_RESOURCE_TYPES[Item->Resource.Link.Type]); HTM_TD_End (); /***** End row *****/ @@ -497,13 +498,11 @@ static void PrgRsc_WriteRowEditResource (unsigned NumRsc,unsigned NumResources, /* Show clipboard to change resource link */ PrgRsc_ShowClipboard (Item); else - { /* Show current link */ - Ico_PutIconOn (Prg_ResourceTypesIcons[Item->Resource.Link.Type],Ico_BLACK, - Txt_RESOURCE_TYPES[Item->Resource.Link.Type]); PrgRsc_WriteLinkName (&Item->Resource.Link, - true); // Put form - } + true, // Put form + Prg_ResourceTypesIcons[Item->Resource.Link.Type], + Txt_RESOURCE_TYPES[Item->Resource.Link.Type]); HTM_TD_End (); @@ -989,13 +988,11 @@ static void PrgRsc_WriteRowClipboard (bool SubmitOnClick,const struct Prg_Link * SubmitOnClick ? "" : " checked=\"checked\""); - /***** Type *****/ - Ico_PutIconOn (Prg_ResourceTypesIcons[Link->Type],Ico_BLACK, - Txt_RESOURCE_TYPES[Link->Type]); - /***** Name *****/ PrgRsc_WriteLinkName (Link, - false); // Don't put form + false, // Don't put form + Prg_ResourceTypesIcons[Link->Type], + Txt_RESOURCE_TYPES[Link->Type]); HTM_LABEL_End (); HTM_LI_End (); @@ -1005,9 +1002,12 @@ static void PrgRsc_WriteRowClipboard (bool SubmitOnClick,const struct Prg_Link * /************* Write link name (filename, assignment title...) ***************/ /*****************************************************************************/ -static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutForm) +static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutFormToGo, + const char *Icon,const char *IconTitle) { - static void (*WriteLinkName[PrgRsc_NUM_TYPES]) (long Cod,bool PutFormToGo) = + static void (*WriteLinkName[PrgRsc_NUM_TYPES]) (long Cod,bool PutFormToGo, + const char *Icon, + const char *IconTitle) = { [PrgRsc_NONE ] = NULL, [PrgRsc_ASSIGNMENT ] = NULL, @@ -1027,7 +1027,7 @@ static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutForm) /***** Write link name *****/ if (WriteLinkName[Link->Type]) - WriteLinkName[Link->Type] (Link->Cod,PutForm); + WriteLinkName[Link->Type] (Link->Cod,PutFormToGo,Icon,IconTitle); else Ale_ShowAlert (Ale_ERROR,"Not implemented!"); } diff --git a/swad_survey.c b/swad_survey.c index 9c789cabe..9c7f4a84f 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -3489,7 +3489,8 @@ void Svy_GetLinkToSurvey (void) /********************** Write survey in course program ***********************/ /*****************************************************************************/ -void Svy_WriteSurveyInCrsProgram (long SvyCod,bool PutFormToGo) +void Svy_WriteSurveyInCrsProgram (long SvyCod,bool PutFormToGo, + const char *Icon,const char *IconTitle) { extern const char *Txt_Actions[Act_NUM_ACTIONS]; char Title[Svy_MAX_BYTES_SURVEY_TITLE + 1]; @@ -3507,6 +3508,9 @@ void Svy_WriteSurveyInCrsProgram (long SvyCod,bool PutFormToGo) The_GetSuffix ()); } + /***** Icon depending on type ******/ + Ico_PutIconOn (Icon,Ico_BLACK,IconTitle); + /***** Write Name of the course and date of exam *****/ HTM_Txt (Title); diff --git a/swad_survey.h b/swad_survey.h index 4e8a7e7ee..8b8fee636 100644 --- a/swad_survey.h +++ b/swad_survey.h @@ -119,6 +119,7 @@ void Svy_GetAndShowSurveysStats (void); //--------------------------- Program resources ------------------------------- void Svy_GetLinkToSurvey (void); -void Svy_WriteSurveyInCrsProgram (long SvyCod,bool PutFormToGo); +void Svy_WriteSurveyInCrsProgram (long SvyCod,bool PutFormToGo, + const char *Icon,const char *IconTitle); void Svy_GetTitleFromSvyCod (long SvyCod,char *Title,size_t TitleSize); #endif