From 9ef7ef738e9ce746f5ebf7c48ff28ac8e2dda30d Mon Sep 17 00:00:00 2001 From: acanas Date: Tue, 20 Sep 2022 01:30:49 +0200 Subject: [PATCH] Version 22.12: Sep 20, 2022 Links to marks file in program. --- swad_action.c | 4 ++ swad_action.h | 146 ++++++++++++++++++++-------------------- swad_attendance.c | 3 +- swad_browser.c | 32 +++++++-- swad_changelog.h | 6 +- swad_program_resource.c | 12 ++-- swad_text_action.c | 46 +++++++++++++ 7 files changed, 164 insertions(+), 85 deletions(-) diff --git a/swad_action.c b/swad_action.c index 1a1aeb672..c1763bc25 100644 --- a/swad_action.c +++ b/swad_action.c @@ -1248,6 +1248,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActExpSeeMrkCrs ] = { 528,-1,TabUnk,ActSeeAdmMrk ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_204_NO_CONT,Brw_ExpandFileTree ,NULL ,NULL}, [ActConSeeMrkCrs ] = { 527,-1,TabUnk,ActSeeAdmMrk ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_204_NO_CONT,Brw_ContractFileTree ,NULL ,NULL}, [ActReqDatSeeMrkCrs ] = {1086,-1,TabUnk,ActSeeAdmMrk ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileMetadata ,NULL}, + [ActReqLnkSeeMrkCrs ] = {1939,-1,TabUnk,ActSeeAdmMrk ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_GetLinkToFile ,NULL}, [ActSeeMyMrkCrs ] = { 523,-1,TabUnk,ActSeeAdmMrk ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,Mrk_ShowMyMarks ,NULL ,NULL}, [ActSeeMrkGrp ] = {1204,-1,TabUnk,ActSeeAdmMrk ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileBrowserOrWorks ,NULL}, @@ -1277,6 +1278,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActHidMrkCrs ] = {1192,-1,TabUnk,ActSeeAdmMrk ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_SetDocumentAsHidden ,NULL}, [ActReqDatAdmMrkCrs ] = {1035,-1,TabUnk,ActSeeAdmMrk ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileMetadata ,NULL}, [ActChgDatAdmMrkCrs ] = {1036,-1,TabUnk,ActSeeAdmMrk ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ChgFileMetadata ,NULL}, + [ActReqLnkAdmMrkCrs ] = {1940,-1,TabUnk,ActSeeAdmMrk ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_GetLinkToFile ,NULL}, [ActDowAdmMrkCrs ] = {1121,-1,TabUnk,ActSeeAdmMrk ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, [ActChgNumRowHeaCrs ] = { 503,-1,TabUnk,ActSeeAdmMrk ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mrk_ChangeNumRowsHeader ,NULL}, [ActChgNumRowFooCrs ] = { 504,-1,TabUnk,ActSeeAdmMrk ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mrk_ChangeNumRowsFooter ,NULL}, @@ -3787,6 +3789,8 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActReqLnkExa, // #1936 ActReqLnkSvy, // #1937 ActReqLnkAtt, // #1938 + ActReqLnkSeeMrkCrs, // #1939 + ActReqLnkAdmMrkCrs, // #1940 }; /*****************************************************************************/ diff --git a/swad_action.h b/swad_action.h index 639198557..1d527540d 100644 --- a/swad_action.h +++ b/swad_action.h @@ -65,7 +65,7 @@ typedef enum typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action -#define Act_MAX_ACTION_COD 1938 +#define Act_MAX_ACTION_COD 1940 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 @@ -1194,82 +1194,84 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to #define ActExpSeeMrkCrs (ActRemSvyQst + 366) #define ActConSeeMrkCrs (ActRemSvyQst + 367) #define ActReqDatSeeMrkCrs (ActRemSvyQst + 368) -#define ActSeeMyMrkCrs (ActRemSvyQst + 369) +#define ActReqLnkSeeMrkCrs (ActRemSvyQst + 369) +#define ActSeeMyMrkCrs (ActRemSvyQst + 370) -#define ActSeeMrkGrp (ActRemSvyQst + 370) -#define ActExpSeeMrkGrp (ActRemSvyQst + 371) -#define ActConSeeMrkGrp (ActRemSvyQst + 372) -#define ActReqDatSeeMrkGrp (ActRemSvyQst + 373) -#define ActSeeMyMrkGrp (ActRemSvyQst + 374) +#define ActSeeMrkGrp (ActRemSvyQst + 371) +#define ActExpSeeMrkGrp (ActRemSvyQst + 372) +#define ActConSeeMrkGrp (ActRemSvyQst + 373) +#define ActReqDatSeeMrkGrp (ActRemSvyQst + 374) +#define ActSeeMyMrkGrp (ActRemSvyQst + 375) -#define ActChgToAdmMrk (ActRemSvyQst + 375) +#define ActChgToAdmMrk (ActRemSvyQst + 376) -#define ActAdmMrkCrs (ActRemSvyQst + 376) -#define ActReqRemFilMrkCrs (ActRemSvyQst + 377) -#define ActRemFilMrkCrs (ActRemSvyQst + 378) -#define ActRemFolMrkCrs (ActRemSvyQst + 379) -#define ActCopMrkCrs (ActRemSvyQst + 380) -#define ActPasMrkCrs (ActRemSvyQst + 381) -#define ActRemTreMrkCrs (ActRemSvyQst + 382) -#define ActFrmCreMrkCrs (ActRemSvyQst + 383) -#define ActCreFolMrkCrs (ActRemSvyQst + 384) -#define ActRenFolMrkCrs (ActRemSvyQst + 385) -#define ActRcvFilMrkCrsDZ (ActRemSvyQst + 386) -#define ActRcvFilMrkCrsCla (ActRemSvyQst + 387) -#define ActExpAdmMrkCrs (ActRemSvyQst + 388) -#define ActConAdmMrkCrs (ActRemSvyQst + 389) -#define ActZIPAdmMrkCrs (ActRemSvyQst + 390) -#define ActUnhMrkCrs (ActRemSvyQst + 391) -#define ActHidMrkCrs (ActRemSvyQst + 392) -#define ActReqDatAdmMrkCrs (ActRemSvyQst + 393) -#define ActChgDatAdmMrkCrs (ActRemSvyQst + 394) -#define ActDowAdmMrkCrs (ActRemSvyQst + 395) -#define ActChgNumRowHeaCrs (ActRemSvyQst + 396) -#define ActChgNumRowFooCrs (ActRemSvyQst + 397) +#define ActAdmMrkCrs (ActRemSvyQst + 377) +#define ActReqRemFilMrkCrs (ActRemSvyQst + 378) +#define ActRemFilMrkCrs (ActRemSvyQst + 379) +#define ActRemFolMrkCrs (ActRemSvyQst + 380) +#define ActCopMrkCrs (ActRemSvyQst + 381) +#define ActPasMrkCrs (ActRemSvyQst + 382) +#define ActRemTreMrkCrs (ActRemSvyQst + 383) +#define ActFrmCreMrkCrs (ActRemSvyQst + 384) +#define ActCreFolMrkCrs (ActRemSvyQst + 385) +#define ActRenFolMrkCrs (ActRemSvyQst + 386) +#define ActRcvFilMrkCrsDZ (ActRemSvyQst + 387) +#define ActRcvFilMrkCrsCla (ActRemSvyQst + 388) +#define ActExpAdmMrkCrs (ActRemSvyQst + 389) +#define ActConAdmMrkCrs (ActRemSvyQst + 390) +#define ActZIPAdmMrkCrs (ActRemSvyQst + 391) +#define ActUnhMrkCrs (ActRemSvyQst + 392) +#define ActHidMrkCrs (ActRemSvyQst + 393) +#define ActReqDatAdmMrkCrs (ActRemSvyQst + 394) +#define ActChgDatAdmMrkCrs (ActRemSvyQst + 395) +#define ActReqLnkAdmMrkCrs (ActRemSvyQst + 396) +#define ActDowAdmMrkCrs (ActRemSvyQst + 397) +#define ActChgNumRowHeaCrs (ActRemSvyQst + 398) +#define ActChgNumRowFooCrs (ActRemSvyQst + 399) -#define ActAdmMrkGrp (ActRemSvyQst + 398) -#define ActReqRemFilMrkGrp (ActRemSvyQst + 399) -#define ActRemFilMrkGrp (ActRemSvyQst + 400) -#define ActRemFolMrkGrp (ActRemSvyQst + 401) -#define ActCopMrkGrp (ActRemSvyQst + 402) -#define ActPasMrkGrp (ActRemSvyQst + 403) -#define ActRemTreMrkGrp (ActRemSvyQst + 404) -#define ActFrmCreMrkGrp (ActRemSvyQst + 405) -#define ActCreFolMrkGrp (ActRemSvyQst + 406) -#define ActRenFolMrkGrp (ActRemSvyQst + 407) -#define ActRcvFilMrkGrpDZ (ActRemSvyQst + 408) -#define ActRcvFilMrkGrpCla (ActRemSvyQst + 409) -#define ActExpAdmMrkGrp (ActRemSvyQst + 410) -#define ActConAdmMrkGrp (ActRemSvyQst + 411) -#define ActZIPAdmMrkGrp (ActRemSvyQst + 412) -#define ActUnhMrkGrp (ActRemSvyQst + 413) -#define ActHidMrkGrp (ActRemSvyQst + 414) -#define ActReqDatAdmMrkGrp (ActRemSvyQst + 415) -#define ActChgDatAdmMrkGrp (ActRemSvyQst + 416) -#define ActDowAdmMrkGrp (ActRemSvyQst + 417) -#define ActChgNumRowHeaGrp (ActRemSvyQst + 418) -#define ActChgNumRowFooGrp (ActRemSvyQst + 419) +#define ActAdmMrkGrp (ActRemSvyQst + 400) +#define ActReqRemFilMrkGrp (ActRemSvyQst + 401) +#define ActRemFilMrkGrp (ActRemSvyQst + 402) +#define ActRemFolMrkGrp (ActRemSvyQst + 403) +#define ActCopMrkGrp (ActRemSvyQst + 404) +#define ActPasMrkGrp (ActRemSvyQst + 405) +#define ActRemTreMrkGrp (ActRemSvyQst + 406) +#define ActFrmCreMrkGrp (ActRemSvyQst + 407) +#define ActCreFolMrkGrp (ActRemSvyQst + 408) +#define ActRenFolMrkGrp (ActRemSvyQst + 409) +#define ActRcvFilMrkGrpDZ (ActRemSvyQst + 410) +#define ActRcvFilMrkGrpCla (ActRemSvyQst + 411) +#define ActExpAdmMrkGrp (ActRemSvyQst + 412) +#define ActConAdmMrkGrp (ActRemSvyQst + 413) +#define ActZIPAdmMrkGrp (ActRemSvyQst + 414) +#define ActUnhMrkGrp (ActRemSvyQst + 415) +#define ActHidMrkGrp (ActRemSvyQst + 416) +#define ActReqDatAdmMrkGrp (ActRemSvyQst + 417) +#define ActChgDatAdmMrkGrp (ActRemSvyQst + 418) +#define ActDowAdmMrkGrp (ActRemSvyQst + 419) +#define ActChgNumRowHeaGrp (ActRemSvyQst + 420) +#define ActChgNumRowFooGrp (ActRemSvyQst + 421) -#define ActReqRemFilBrf (ActRemSvyQst + 420) -#define ActRemFilBrf (ActRemSvyQst + 421) -#define ActRemFolBrf (ActRemSvyQst + 422) -#define ActCopBrf (ActRemSvyQst + 423) -#define ActPasBrf (ActRemSvyQst + 424) -#define ActRemTreBrf (ActRemSvyQst + 425) -#define ActFrmCreBrf (ActRemSvyQst + 426) -#define ActCreFolBrf (ActRemSvyQst + 427) -#define ActCreLnkBrf (ActRemSvyQst + 428) -#define ActRenFolBrf (ActRemSvyQst + 429) -#define ActRcvFilBrfDZ (ActRemSvyQst + 430) -#define ActRcvFilBrfCla (ActRemSvyQst + 431) -#define ActExpBrf (ActRemSvyQst + 432) -#define ActConBrf (ActRemSvyQst + 433) -#define ActZIPBrf (ActRemSvyQst + 434) -#define ActReqDatBrf (ActRemSvyQst + 435) -#define ActChgDatBrf (ActRemSvyQst + 436) -#define ActDowBrf (ActRemSvyQst + 437) -#define ActReqRemOldBrf (ActRemSvyQst + 438) -#define ActRemOldBrf (ActRemSvyQst + 439) +#define ActReqRemFilBrf (ActRemSvyQst + 422) +#define ActRemFilBrf (ActRemSvyQst + 423) +#define ActRemFolBrf (ActRemSvyQst + 424) +#define ActCopBrf (ActRemSvyQst + 425) +#define ActPasBrf (ActRemSvyQst + 426) +#define ActRemTreBrf (ActRemSvyQst + 427) +#define ActFrmCreBrf (ActRemSvyQst + 428) +#define ActCreFolBrf (ActRemSvyQst + 429) +#define ActCreLnkBrf (ActRemSvyQst + 430) +#define ActRenFolBrf (ActRemSvyQst + 431) +#define ActRcvFilBrfDZ (ActRemSvyQst + 432) +#define ActRcvFilBrfCla (ActRemSvyQst + 433) +#define ActExpBrf (ActRemSvyQst + 434) +#define ActConBrf (ActRemSvyQst + 435) +#define ActZIPBrf (ActRemSvyQst + 436) +#define ActReqDatBrf (ActRemSvyQst + 437) +#define ActChgDatBrf (ActRemSvyQst + 438) +#define ActDowBrf (ActRemSvyQst + 439) +#define ActReqRemOldBrf (ActRemSvyQst + 440) +#define ActRemOldBrf (ActRemSvyQst + 441) /*****************************************************************************/ /******************************* Users tab ***********************************/ diff --git a/swad_attendance.c b/swad_attendance.c index b48b5763d..b08574c42 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -3339,7 +3339,8 @@ void Att_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo) if (PutFormToGo) { Frm_BeginForm (ActSeeOneAtt); - Att_PutParamAttCod (AttCod); + Att_PutParamAttCod (AttCod); + Att_PutParamsCodGrps (AttCod); HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeOneAtt], "class=\"LM BT_LINK PRG_RSC_%s\"", The_GetSuffix ()); diff --git a/swad_browser.c b/swad_browser.c index b96c3b930..e8ee11285 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -454,13 +454,13 @@ static const Act_Action_t Brw_ActReqLnk[Brw_NUM_TYPES_FILE_BROWSER] = { [Brw_UNKNOWN ] = ActUnk, [Brw_SHOW_DOC_CRS] = ActReqLnkSeeDocCrs, - [Brw_SHOW_MRK_CRS] = ActUnk, // ActReqLnkSeeMrkCrs, + [Brw_SHOW_MRK_CRS] = ActReqLnkSeeMrkCrs, [Brw_ADMI_DOC_CRS] = ActReqLnkAdmDocCrs, [Brw_ADMI_SHR_CRS] = ActUnk, [Brw_ADMI_SHR_GRP] = ActUnk, [Brw_ADMI_WRK_USR] = ActUnk, [Brw_ADMI_WRK_CRS] = ActUnk, - [Brw_ADMI_MRK_CRS] = ActUnk, // ActReqLnkAdmMrkCrs, + [Brw_ADMI_MRK_CRS] = ActReqLnkAdmMrkCrs, [Brw_ADMI_BRF_USR] = ActUnk, [Brw_SHOW_DOC_GRP] = ActUnk, [Brw_ADMI_DOC_GRP] = ActUnk, @@ -1890,6 +1890,7 @@ void Brw_GetParAndInitFileBrowser (void) case ActExpSeeMrkCrs: case ActConSeeMrkCrs: case ActReqDatSeeMrkCrs: + case ActReqLnkSeeMrkCrs: case ActSeeMyMrkCrs: Gbl.FileBrowser.Type = Brw_SHOW_MRK_CRS; break; @@ -1924,6 +1925,7 @@ void Brw_GetParAndInitFileBrowser (void) case ActHidMrkCrs: case ActReqDatAdmMrkCrs: case ActChgDatAdmMrkCrs: + case ActReqLnkAdmMrkCrs: case ActDowAdmMrkCrs: case ActChgNumRowHeaCrs: case ActChgNumRowFooCrs: @@ -5327,6 +5329,7 @@ void Brw_GetLinkToFile (void) extern const char *Txt_Link_to_resource_X_copied_into_clipboard; struct FileMetadata FileMetadata; bool Found; + PrgRsc_Type_t Type; /***** Get parameters related to file browser *****/ Brw_GetParAndInitFileBrowser (); @@ -5339,7 +5342,22 @@ void Brw_GetLinkToFile (void) if (Found) { /***** Copy link to file into resource clipboard *****/ - Prg_DB_CopyToClipboard (PrgRsc_DOCUMENT,FileMetadata.FilCod); + switch (Gbl.Action.Act) + { + case ActReqLnkSeeDocCrs: + case ActReqLnkAdmDocCrs: + Type = PrgRsc_DOCUMENT; + break; + case ActReqLnkSeeMrkCrs: + case ActReqLnkAdmMrkCrs: + Type = PrgRsc_MARKS; + break; + default: + Type = PrgRsc_NONE; // Initialized to avoid warning + Err_WrongTypeExit (); + break; + } + Prg_DB_CopyToClipboard (Type,FileMetadata.FilCod); /***** Write sucess message *****/ Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard, @@ -5366,7 +5384,9 @@ void Brw_WriteFileNameInCrsProgram (long FilCod,bool PutFormToDownload) /***** Begin form to download file *****/ if (PutFormToDownload) { - Frm_BeginForm (Brw_ActDowFile[Brw_SHOW_DOC_CRS]); + // 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 + Frm_BeginForm (Brw_ActDowFile[FileMetadata.FileBrowser]); Brw_PutImplicitParamsFileBrowser (&FileMetadata.FilFolLnk); HTM_BUTTON_Submit_Begin (Txt_Download, "class=\"LM BT_LINK PRG_RSC_%s\"", @@ -8064,7 +8084,9 @@ void Brw_ShowFileMetadata (void) Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM); */ PutIconToGetLink = (Gbl.FileBrowser.Type == Brw_SHOW_DOC_CRS || // Only document zone - Gbl.FileBrowser.Type == Brw_ADMI_DOC_CRS) && + Gbl.FileBrowser.Type == Brw_ADMI_DOC_CRS || + Gbl.FileBrowser.Type == Brw_SHOW_MRK_CRS || + Gbl.FileBrowser.Type == Brw_ADMI_MRK_CRS) && (FileMetadata.FilFolLnk.Type == Brw_IS_FILE || // Only files or links FileMetadata.FilFolLnk.Type == Brw_IS_LINK) && (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM); // Only if I am superuser // TODO: Include teachers diff --git a/swad_changelog.h b/swad_changelog.h index d7b9cb7a9..5b5c5c262 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -606,10 +606,14 @@ 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.11 (2022-09-20)" +#define Log_PLATFORM_VERSION "SWAD 22.12 (2022-09-20)" #define CSS_FILE "swad22.7.css" #define JS_FILE "swad21.100.js" /* + 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/ + Version 22.11: Sep 20, 2022 Links to attendance events in program. (330907 lines) Version 22.10.1: Sep 19, 2022 Code refactoring in program. (330789 lines) Version 22.10: Sep 19, 2022 Links to surveys in program. (330822 lines) diff --git a/swad_program_resource.c b/swad_program_resource.c index 17350a3fc..58e9620f9 100644 --- a/swad_program_resource.c +++ b/swad_program_resource.c @@ -44,7 +44,7 @@ /**************************** Private constants ******************************/ /*****************************************************************************/ -const char *Prg_ResourceTypesLogos[PrgRsc_NUM_TYPES] = +const char *Prg_ResourceTypesIcons[PrgRsc_NUM_TYPES] = { [PrgRsc_NONE ] = "link-slash.svg", // gui TEACHING_GUIDE // Link to teaching guide @@ -444,7 +444,7 @@ static void PrgRsc_WriteRowViewResource (unsigned NumRsc, The_GetSuffix (),The_GetColorRows1 (1)); HTM_Txt (Item->Resource.Title); HTM_BR (); - Ico_PutIconOn (Prg_ResourceTypesLogos[Item->Resource.Link.Type],Ico_BLACK, + 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 @@ -499,7 +499,7 @@ static void PrgRsc_WriteRowEditResource (unsigned NumRsc,unsigned NumResources, else { /* Show current link */ - Ico_PutIconOn (Prg_ResourceTypesLogos[Item->Resource.Link.Type],Ico_BLACK, + 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 @@ -990,7 +990,7 @@ static void PrgRsc_WriteRowClipboard (bool SubmitOnClick,const struct Prg_Link * " checked=\"checked\""); /***** Type *****/ - Ico_PutIconOn (Prg_ResourceTypesLogos[Link->Type],Ico_BLACK, + Ico_PutIconOn (Prg_ResourceTypesIcons[Link->Type],Ico_BLACK, Txt_RESOURCE_TYPES[Link->Type]); /***** Name *****/ @@ -1016,7 +1016,7 @@ static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutForm) [PrgRsc_GAME ] = Gam_WriteGameInCrsProgram, [PrgRsc_SURVEY ] = Svy_WriteSurveyInCrsProgram, [PrgRsc_DOCUMENT ] = Brw_WriteFileNameInCrsProgram, - [PrgRsc_MARKS ] = NULL, + [PrgRsc_MARKS ] = Brw_WriteFileNameInCrsProgram, [PrgRsc_ATTENDANCE_EVENT] = Att_WriteAttEventInCrsProgram, [PrgRsc_FORUM_THREAD ] = NULL, }; @@ -1047,7 +1047,7 @@ static void PrgRsc_GetResourceTitleFromLink (struct Prg_Item *Item) [PrgRsc_GAME ] = Gam_GetTitleFromGamCod, [PrgRsc_SURVEY ] = Svy_GetTitleFromSvyCod, [PrgRsc_DOCUMENT ] = Brw_GetFileNameFromFilCod, - [PrgRsc_MARKS ] = NULL, + [PrgRsc_MARKS ] = Brw_GetFileNameFromFilCod, [PrgRsc_ATTENDANCE_EVENT] = Att_GetTitleFromAttCod, [PrgRsc_FORUM_THREAD ] = NULL, }; diff --git a/swad_text_action.c b/swad_text_action.c index 9de606f52..97b54142c 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -22485,6 +22485,29 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "See file metadata in marks zone of course" // Precisa de tradução #elif L==10 // tr "See file metadata in marks zone of course" // Çeviri lazim! +#endif + , + [ActReqLnkSeeMrkCrs] = +#if L==1 // ca + "Copy link to file when showing course marks area" // Necessita traducció +#elif L==2 // de + "Copy link to file when showing course marks area" // Need Übersetzung +#elif L==3 // en + "Copy link to file when showing course marks area" +#elif L==4 // es + "Copiar enlace a archivo viendo zona de calificaciones de asignatura" +#elif L==5 // fr + "Copy link to file when showing course marks area" // Besoin de traduction +#elif L==6 // gn + "Copiar enlace a archivo viendo zona de calificaciones de asignatura" // Okoteve traducción +#elif L==7 // it + "Copy link to file when showing course marks area" // Bisogno di traduzione +#elif L==8 // pl + "Copy link to file when showing course marks area" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Copy link to file when showing course marks area" // Precisa de tradução +#elif L==10 // tr + "Copy link to file when showing course marks area" // Çeviri lazim! #endif , [ActSeeMyMrkCrs] = @@ -23083,6 +23106,29 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "Change file metadata in marks management zone of course" // Precisa de tradução #elif L==10 // tr "Change file metadata in marks management zone of course" // Çeviri lazim! +#endif + , + [ActReqLnkAdmMrkCrs] = +#if L==1 // ca + "Copy link to file when managing course marks area" // Necessita traducció +#elif L==2 // de + "Copy link to file when managing course marks area" // Need Übersetzung +#elif L==3 // en + "Copy link to file when managing course marks area" +#elif L==4 // es + "Copiar enlace a archivo administrando zona de calificaciones de asignatura" +#elif L==5 // fr + "Copy link to file when managing course marks area" // Besoin de traduction +#elif L==6 // gn + "Copiar enlace a archivo administrando zona de calificaciones de asignatura" // Okoteve traducción +#elif L==7 // it + "Copy link to file when managing course marks area" // Bisogno di traduzione +#elif L==8 // pl + "Copy link to file when managing course marks area" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "Copy link to file when managing course marks area" // Precisa de tradução +#elif L==10 // tr + "Copy link to file when managing course marks area" // Çeviri lazim! #endif , [ActDowAdmMrkCrs] =