Version 22.15: Sep 21, 2022 Links to assignments in program.

This commit is contained in:
acanas 2022-09-21 02:33:40 +02:00
parent 36bf68b87d
commit a7608da596
9 changed files with 453 additions and 282 deletions

View File

@ -602,6 +602,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActRemAsg ] = { 806,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RemoveAssignment ,NULL}, [ActRemAsg ] = { 806,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_RemoveAssignment ,NULL},
[ActHidAsg ] = { 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL}, [ActHidAsg ] = { 964,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_HideAssignment ,NULL},
[ActUnhAsg ] = { 965,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_UnhideAssignment ,NULL}, [ActUnhAsg ] = { 965,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_UnhideAssignment ,NULL},
[ActReqLnkAsg ] = {1943,-1,TabUnk,ActSeeAsg ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Asg_GetLinkToAssignment ,NULL},
[ActReqUsrPrj ] = {1805,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ListUsrsToSelect ,NULL}, [ActReqUsrPrj ] = {1805,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ListUsrsToSelect ,NULL},
[ActSeeTblAllPrj ] = {1696,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_ShowTableSelectedPrjs ,NULL}, [ActSeeTblAllPrj ] = {1696,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_ShowTableSelectedPrjs ,NULL},
@ -3796,6 +3797,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActReqLnkAdmMrkCrs, // #1940 ActReqLnkAdmMrkCrs, // #1940
ActReqLnkForCrsUsr, // #1941 ActReqLnkForCrsUsr, // #1941
ActSeeOneAsg, // #1942 ActSeeOneAsg, // #1942
ActReqLnkAsg, // #1943
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -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 typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_MAX_ACTION_COD 1942 #define Act_MAX_ACTION_COD 1943
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -561,244 +561,245 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActRemAsg (ActChgCrsTT1stDay + 28) #define ActRemAsg (ActChgCrsTT1stDay + 28)
#define ActHidAsg (ActChgCrsTT1stDay + 29) #define ActHidAsg (ActChgCrsTT1stDay + 29)
#define ActUnhAsg (ActChgCrsTT1stDay + 30) #define ActUnhAsg (ActChgCrsTT1stDay + 30)
#define ActReqLnkAsg (ActChgCrsTT1stDay + 31)
#define ActReqUsrPrj (ActChgCrsTT1stDay + 31) #define ActReqUsrPrj (ActChgCrsTT1stDay + 32)
#define ActSeeTblAllPrj (ActChgCrsTT1stDay + 32) #define ActSeeTblAllPrj (ActChgCrsTT1stDay + 33)
#define ActCfgPrj (ActChgCrsTT1stDay + 33) #define ActCfgPrj (ActChgCrsTT1stDay + 34)
#define ActRcvCfgPrj (ActChgCrsTT1stDay + 34) #define ActRcvCfgPrj (ActChgCrsTT1stDay + 35)
#define ActReqLckAllPrj (ActChgCrsTT1stDay + 35) #define ActReqLckAllPrj (ActChgCrsTT1stDay + 36)
#define ActReqUnlAllPrj (ActChgCrsTT1stDay + 36) #define ActReqUnlAllPrj (ActChgCrsTT1stDay + 37)
#define ActLckAllPrj (ActChgCrsTT1stDay + 37) #define ActLckAllPrj (ActChgCrsTT1stDay + 38)
#define ActUnlAllPrj (ActChgCrsTT1stDay + 38) #define ActUnlAllPrj (ActChgCrsTT1stDay + 39)
#define ActFrmNewPrj (ActChgCrsTT1stDay + 39) #define ActFrmNewPrj (ActChgCrsTT1stDay + 40)
#define ActEdiOnePrj (ActChgCrsTT1stDay + 40) #define ActEdiOnePrj (ActChgCrsTT1stDay + 41)
#define ActPrnOnePrj (ActChgCrsTT1stDay + 41) #define ActPrnOnePrj (ActChgCrsTT1stDay + 42)
#define ActNewPrj (ActChgCrsTT1stDay + 42) #define ActNewPrj (ActChgCrsTT1stDay + 43)
#define ActChgPrj (ActChgCrsTT1stDay + 43) #define ActChgPrj (ActChgCrsTT1stDay + 44)
#define ActReqRemPrj (ActChgCrsTT1stDay + 44) #define ActReqRemPrj (ActChgCrsTT1stDay + 45)
#define ActRemPrj (ActChgCrsTT1stDay + 45) #define ActRemPrj (ActChgCrsTT1stDay + 46)
#define ActHidPrj (ActChgCrsTT1stDay + 46) #define ActHidPrj (ActChgCrsTT1stDay + 47)
#define ActUnhPrj (ActChgCrsTT1stDay + 47) #define ActUnhPrj (ActChgCrsTT1stDay + 48)
#define ActLckPrj (ActChgCrsTT1stDay + 48) #define ActLckPrj (ActChgCrsTT1stDay + 49)
#define ActUnlPrj (ActChgCrsTT1stDay + 49) #define ActUnlPrj (ActChgCrsTT1stDay + 50)
#define ActReqAddStdPrj (ActChgCrsTT1stDay + 50) #define ActReqAddStdPrj (ActChgCrsTT1stDay + 51)
#define ActReqAddTutPrj (ActChgCrsTT1stDay + 51) #define ActReqAddTutPrj (ActChgCrsTT1stDay + 52)
#define ActReqAddEvlPrj (ActChgCrsTT1stDay + 52) #define ActReqAddEvlPrj (ActChgCrsTT1stDay + 53)
#define ActAddStdPrj (ActChgCrsTT1stDay + 53) #define ActAddStdPrj (ActChgCrsTT1stDay + 54)
#define ActAddTutPrj (ActChgCrsTT1stDay + 54) #define ActAddTutPrj (ActChgCrsTT1stDay + 55)
#define ActAddEvlPrj (ActChgCrsTT1stDay + 55) #define ActAddEvlPrj (ActChgCrsTT1stDay + 56)
#define ActReqRemStdPrj (ActChgCrsTT1stDay + 56) #define ActReqRemStdPrj (ActChgCrsTT1stDay + 57)
#define ActReqRemTutPrj (ActChgCrsTT1stDay + 57) #define ActReqRemTutPrj (ActChgCrsTT1stDay + 58)
#define ActReqRemEvlPrj (ActChgCrsTT1stDay + 58) #define ActReqRemEvlPrj (ActChgCrsTT1stDay + 59)
#define ActRemStdPrj (ActChgCrsTT1stDay + 59) #define ActRemStdPrj (ActChgCrsTT1stDay + 60)
#define ActRemTutPrj (ActChgCrsTT1stDay + 60) #define ActRemTutPrj (ActChgCrsTT1stDay + 61)
#define ActRemEvlPrj (ActChgCrsTT1stDay + 61) #define ActRemEvlPrj (ActChgCrsTT1stDay + 62)
#define ActAdmDocPrj (ActChgCrsTT1stDay + 62) #define ActAdmDocPrj (ActChgCrsTT1stDay + 63)
#define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 63) #define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 64)
#define ActRemFilDocPrj (ActChgCrsTT1stDay + 64) #define ActRemFilDocPrj (ActChgCrsTT1stDay + 65)
#define ActRemFolDocPrj (ActChgCrsTT1stDay + 65) #define ActRemFolDocPrj (ActChgCrsTT1stDay + 66)
#define ActCopDocPrj (ActChgCrsTT1stDay + 66) #define ActCopDocPrj (ActChgCrsTT1stDay + 67)
#define ActPasDocPrj (ActChgCrsTT1stDay + 67) #define ActPasDocPrj (ActChgCrsTT1stDay + 68)
#define ActRemTreDocPrj (ActChgCrsTT1stDay + 68) #define ActRemTreDocPrj (ActChgCrsTT1stDay + 69)
#define ActFrmCreDocPrj (ActChgCrsTT1stDay + 69) #define ActFrmCreDocPrj (ActChgCrsTT1stDay + 70)
#define ActCreFolDocPrj (ActChgCrsTT1stDay + 70) #define ActCreFolDocPrj (ActChgCrsTT1stDay + 71)
#define ActCreLnkDocPrj (ActChgCrsTT1stDay + 71) #define ActCreLnkDocPrj (ActChgCrsTT1stDay + 72)
#define ActRenFolDocPrj (ActChgCrsTT1stDay + 72) #define ActRenFolDocPrj (ActChgCrsTT1stDay + 73)
#define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 73) #define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 74)
#define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 74) #define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 75)
#define ActExpDocPrj (ActChgCrsTT1stDay + 75) #define ActExpDocPrj (ActChgCrsTT1stDay + 76)
#define ActConDocPrj (ActChgCrsTT1stDay + 76) #define ActConDocPrj (ActChgCrsTT1stDay + 77)
#define ActZIPDocPrj (ActChgCrsTT1stDay + 77) #define ActZIPDocPrj (ActChgCrsTT1stDay + 78)
#define ActReqDatDocPrj (ActChgCrsTT1stDay + 78) #define ActReqDatDocPrj (ActChgCrsTT1stDay + 79)
#define ActChgDatDocPrj (ActChgCrsTT1stDay + 79) #define ActChgDatDocPrj (ActChgCrsTT1stDay + 80)
#define ActDowDocPrj (ActChgCrsTT1stDay + 80) #define ActDowDocPrj (ActChgCrsTT1stDay + 81)
#define ActAdmAssPrj (ActChgCrsTT1stDay + 81) #define ActAdmAssPrj (ActChgCrsTT1stDay + 82)
#define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 82) #define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 83)
#define ActRemFilAssPrj (ActChgCrsTT1stDay + 83) #define ActRemFilAssPrj (ActChgCrsTT1stDay + 84)
#define ActRemFolAssPrj (ActChgCrsTT1stDay + 84) #define ActRemFolAssPrj (ActChgCrsTT1stDay + 85)
#define ActCopAssPrj (ActChgCrsTT1stDay + 85) #define ActCopAssPrj (ActChgCrsTT1stDay + 86)
#define ActPasAssPrj (ActChgCrsTT1stDay + 86) #define ActPasAssPrj (ActChgCrsTT1stDay + 87)
#define ActRemTreAssPrj (ActChgCrsTT1stDay + 87) #define ActRemTreAssPrj (ActChgCrsTT1stDay + 88)
#define ActFrmCreAssPrj (ActChgCrsTT1stDay + 88) #define ActFrmCreAssPrj (ActChgCrsTT1stDay + 89)
#define ActCreFolAssPrj (ActChgCrsTT1stDay + 89) #define ActCreFolAssPrj (ActChgCrsTT1stDay + 90)
#define ActCreLnkAssPrj (ActChgCrsTT1stDay + 90) #define ActCreLnkAssPrj (ActChgCrsTT1stDay + 91)
#define ActRenFolAssPrj (ActChgCrsTT1stDay + 91) #define ActRenFolAssPrj (ActChgCrsTT1stDay + 92)
#define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 92) #define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 93)
#define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 93) #define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 94)
#define ActExpAssPrj (ActChgCrsTT1stDay + 94) #define ActExpAssPrj (ActChgCrsTT1stDay + 95)
#define ActConAssPrj (ActChgCrsTT1stDay + 95) #define ActConAssPrj (ActChgCrsTT1stDay + 96)
#define ActZIPAssPrj (ActChgCrsTT1stDay + 96) #define ActZIPAssPrj (ActChgCrsTT1stDay + 97)
#define ActReqDatAssPrj (ActChgCrsTT1stDay + 97) #define ActReqDatAssPrj (ActChgCrsTT1stDay + 98)
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 98) #define ActChgDatAssPrj (ActChgCrsTT1stDay + 99)
#define ActDowAssPrj (ActChgCrsTT1stDay + 99) #define ActDowAssPrj (ActChgCrsTT1stDay + 100)
#define ActSeeOneCfe (ActChgCrsTT1stDay + 100) #define ActSeeOneCfe (ActChgCrsTT1stDay + 101)
#define ActSeeDatCfe (ActChgCrsTT1stDay + 101) #define ActSeeDatCfe (ActChgCrsTT1stDay + 102)
#define ActEdiCfe (ActChgCrsTT1stDay + 102) #define ActEdiCfe (ActChgCrsTT1stDay + 103)
#define ActRcvCfe (ActChgCrsTT1stDay + 103) #define ActRcvCfe (ActChgCrsTT1stDay + 104)
#define ActPrnCfe (ActChgCrsTT1stDay + 104) #define ActPrnCfe (ActChgCrsTT1stDay + 105)
#define ActReqRemCfe (ActChgCrsTT1stDay + 105) #define ActReqRemCfe (ActChgCrsTT1stDay + 106)
#define ActRemCfe (ActChgCrsTT1stDay + 106) #define ActRemCfe (ActChgCrsTT1stDay + 107)
#define ActHidCfe (ActChgCrsTT1stDay + 107) #define ActHidCfe (ActChgCrsTT1stDay + 108)
#define ActUnhCfe (ActChgCrsTT1stDay + 108) #define ActUnhCfe (ActChgCrsTT1stDay + 109)
#define ActReqLnkCfe (ActChgCrsTT1stDay + 109) #define ActReqLnkCfe (ActChgCrsTT1stDay + 110)
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 110) #define ActEdiOneTstQst (ActChgCrsTT1stDay + 111)
#define ActReqImpTstQst (ActChgCrsTT1stDay + 111) #define ActReqImpTstQst (ActChgCrsTT1stDay + 112)
#define ActImpTstQst (ActChgCrsTT1stDay + 112) #define ActImpTstQst (ActChgCrsTT1stDay + 113)
#define ActLstTstQst (ActChgCrsTT1stDay + 113) #define ActLstTstQst (ActChgCrsTT1stDay + 114)
#define ActRcvTstQst (ActChgCrsTT1stDay + 114) #define ActRcvTstQst (ActChgCrsTT1stDay + 115)
#define ActReqRemSevTstQst (ActChgCrsTT1stDay + 115) #define ActReqRemSevTstQst (ActChgCrsTT1stDay + 116)
#define ActRemSevTstQst (ActChgCrsTT1stDay + 116) #define ActRemSevTstQst (ActChgCrsTT1stDay + 117)
#define ActReqRemOneTstQst (ActChgCrsTT1stDay + 117) #define ActReqRemOneTstQst (ActChgCrsTT1stDay + 118)
#define ActRemOneTstQst (ActChgCrsTT1stDay + 118) #define ActRemOneTstQst (ActChgCrsTT1stDay + 119)
#define ActChgShfTstQst (ActChgCrsTT1stDay + 119) #define ActChgShfTstQst (ActChgCrsTT1stDay + 120)
#define ActEdiTag (ActChgCrsTT1stDay + 120) #define ActEdiTag (ActChgCrsTT1stDay + 121)
#define ActEnaTag (ActChgCrsTT1stDay + 121) #define ActEnaTag (ActChgCrsTT1stDay + 122)
#define ActDisTag (ActChgCrsTT1stDay + 122) #define ActDisTag (ActChgCrsTT1stDay + 123)
#define ActRenTag (ActChgCrsTT1stDay + 123) #define ActRenTag (ActChgCrsTT1stDay + 124)
#define ActSeeTst (ActChgCrsTT1stDay + 124) #define ActSeeTst (ActChgCrsTT1stDay + 125)
#define ActReqAssTst (ActChgCrsTT1stDay + 125) #define ActReqAssTst (ActChgCrsTT1stDay + 126)
#define ActAssTst (ActChgCrsTT1stDay + 126) #define ActAssTst (ActChgCrsTT1stDay + 127)
#define ActCfgTst (ActChgCrsTT1stDay + 127) #define ActCfgTst (ActChgCrsTT1stDay + 128)
#define ActRcvCfgTst (ActChgCrsTT1stDay + 128) #define ActRcvCfgTst (ActChgCrsTT1stDay + 129)
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 129) #define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 130)
#define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 130) #define ActSeeMyTstResCrs (ActChgCrsTT1stDay + 131)
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 131) #define ActSeeOneTstResMe (ActChgCrsTT1stDay + 132)
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 132) #define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 133)
#define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 133) #define ActSeeUsrTstResCrs (ActChgCrsTT1stDay + 134)
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 134) #define ActSeeOneTstResOth (ActChgCrsTT1stDay + 135)
#define ActSeeExa (ActChgCrsTT1stDay + 135) #define ActSeeExa (ActChgCrsTT1stDay + 136)
#define ActFrmNewExa (ActChgCrsTT1stDay + 136) #define ActFrmNewExa (ActChgCrsTT1stDay + 137)
#define ActEdiOneExa (ActChgCrsTT1stDay + 137) #define ActEdiOneExa (ActChgCrsTT1stDay + 138)
#define ActNewExa (ActChgCrsTT1stDay + 138) #define ActNewExa (ActChgCrsTT1stDay + 139)
#define ActChgExa (ActChgCrsTT1stDay + 139) #define ActChgExa (ActChgCrsTT1stDay + 140)
#define ActReqRemExa (ActChgCrsTT1stDay + 140) #define ActReqRemExa (ActChgCrsTT1stDay + 141)
#define ActRemExa (ActChgCrsTT1stDay + 141) #define ActRemExa (ActChgCrsTT1stDay + 142)
#define ActHidExa (ActChgCrsTT1stDay + 142) #define ActHidExa (ActChgCrsTT1stDay + 143)
#define ActUnhExa (ActChgCrsTT1stDay + 143) #define ActUnhExa (ActChgCrsTT1stDay + 144)
#define ActReqLnkExa (ActChgCrsTT1stDay + 144) #define ActReqLnkExa (ActChgCrsTT1stDay + 145)
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 145) #define ActFrmNewExaSet (ActChgCrsTT1stDay + 146)
#define ActNewExaSet (ActChgCrsTT1stDay + 146) #define ActNewExaSet (ActChgCrsTT1stDay + 147)
#define ActReqRemExaSet (ActChgCrsTT1stDay + 147) #define ActReqRemExaSet (ActChgCrsTT1stDay + 148)
#define ActRemExaSet (ActChgCrsTT1stDay + 148) #define ActRemExaSet (ActChgCrsTT1stDay + 149)
#define ActUp_ExaSet (ActChgCrsTT1stDay + 149) #define ActUp_ExaSet (ActChgCrsTT1stDay + 150)
#define ActDwnExaSet (ActChgCrsTT1stDay + 150) #define ActDwnExaSet (ActChgCrsTT1stDay + 151)
#define ActChgTitExaSet (ActChgCrsTT1stDay + 151) #define ActChgTitExaSet (ActChgCrsTT1stDay + 152)
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 152) #define ActChgNumQstExaSet (ActChgCrsTT1stDay + 153)
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 153) #define ActReqAddQstExaSet (ActChgCrsTT1stDay + 154)
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 154) #define ActLstTstQstForSet (ActChgCrsTT1stDay + 155)
#define ActAddQstToExa (ActChgCrsTT1stDay + 155) #define ActAddQstToExa (ActChgCrsTT1stDay + 156)
#define ActReqRemSetQst (ActChgCrsTT1stDay + 156) #define ActReqRemSetQst (ActChgCrsTT1stDay + 157)
#define ActRemExaQst (ActChgCrsTT1stDay + 157) #define ActRemExaQst (ActChgCrsTT1stDay + 158)
#define ActValSetQst (ActChgCrsTT1stDay + 158) #define ActValSetQst (ActChgCrsTT1stDay + 159)
#define ActInvSetQst (ActChgCrsTT1stDay + 159) #define ActInvSetQst (ActChgCrsTT1stDay + 160)
#define ActReqNewExaSes (ActChgCrsTT1stDay + 160) #define ActReqNewExaSes (ActChgCrsTT1stDay + 161)
#define ActEdiOneExaSes (ActChgCrsTT1stDay + 161) #define ActEdiOneExaSes (ActChgCrsTT1stDay + 162)
#define ActNewExaSes (ActChgCrsTT1stDay + 162) #define ActNewExaSes (ActChgCrsTT1stDay + 163)
#define ActChgExaSes (ActChgCrsTT1stDay + 163) #define ActChgExaSes (ActChgCrsTT1stDay + 164)
#define ActReqRemExaSes (ActChgCrsTT1stDay + 164) #define ActReqRemExaSes (ActChgCrsTT1stDay + 165)
#define ActRemExaSes (ActChgCrsTT1stDay + 165) #define ActRemExaSes (ActChgCrsTT1stDay + 166)
#define ActHidExaSes (ActChgCrsTT1stDay + 166) #define ActHidExaSes (ActChgCrsTT1stDay + 167)
#define ActUnhExaSes (ActChgCrsTT1stDay + 167) #define ActUnhExaSes (ActChgCrsTT1stDay + 168)
#define ActSeeExaPrn (ActChgCrsTT1stDay + 168) #define ActSeeExaPrn (ActChgCrsTT1stDay + 169)
#define ActAnsExaPrn (ActChgCrsTT1stDay + 169) #define ActAnsExaPrn (ActChgCrsTT1stDay + 170)
#define ActEndExaPrn (ActChgCrsTT1stDay + 170) #define ActEndExaPrn (ActChgCrsTT1stDay + 171)
#define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 171) #define ActSeeMyExaResCrs (ActChgCrsTT1stDay + 172)
#define ActSeeMyExaResExa (ActChgCrsTT1stDay + 172) #define ActSeeMyExaResExa (ActChgCrsTT1stDay + 173)
#define ActSeeMyExaResSes (ActChgCrsTT1stDay + 173) #define ActSeeMyExaResSes (ActChgCrsTT1stDay + 174)
#define ActSeeOneExaResMe (ActChgCrsTT1stDay + 174) #define ActSeeOneExaResMe (ActChgCrsTT1stDay + 175)
#define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 175) #define ActReqSeeUsrExaRes (ActChgCrsTT1stDay + 176)
#define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 176) #define ActSeeUsrExaResCrs (ActChgCrsTT1stDay + 177)
#define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 177) #define ActSeeUsrExaResExa (ActChgCrsTT1stDay + 178)
#define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 178) #define ActSeeUsrExaResSes (ActChgCrsTT1stDay + 179)
#define ActSeeOneExaResOth (ActChgCrsTT1stDay + 179) #define ActSeeOneExaResOth (ActChgCrsTT1stDay + 180)
#define ActChgVisExaRes (ActChgCrsTT1stDay + 180) #define ActChgVisExaRes (ActChgCrsTT1stDay + 181)
#define ActSeeGam (ActChgCrsTT1stDay + 181) #define ActSeeGam (ActChgCrsTT1stDay + 182)
#define ActReqRemMch (ActChgCrsTT1stDay + 182) #define ActReqRemMch (ActChgCrsTT1stDay + 183)
#define ActRemMch (ActChgCrsTT1stDay + 183) #define ActRemMch (ActChgCrsTT1stDay + 184)
#define ActEdiMch (ActChgCrsTT1stDay + 184) #define ActEdiMch (ActChgCrsTT1stDay + 185)
#define ActChgMch (ActChgCrsTT1stDay + 185) #define ActChgMch (ActChgCrsTT1stDay + 186)
#define ActReqNewMch (ActChgCrsTT1stDay + 186) #define ActReqNewMch (ActChgCrsTT1stDay + 187)
#define ActNewMch (ActChgCrsTT1stDay + 187) #define ActNewMch (ActChgCrsTT1stDay + 188)
#define ActResMch (ActChgCrsTT1stDay + 188) #define ActResMch (ActChgCrsTT1stDay + 189)
#define ActBckMch (ActChgCrsTT1stDay + 189) #define ActBckMch (ActChgCrsTT1stDay + 190)
#define ActPlyPauMch (ActChgCrsTT1stDay + 190) #define ActPlyPauMch (ActChgCrsTT1stDay + 191)
#define ActFwdMch (ActChgCrsTT1stDay + 191) #define ActFwdMch (ActChgCrsTT1stDay + 192)
#define ActChgNumColMch (ActChgCrsTT1stDay + 192) #define ActChgNumColMch (ActChgCrsTT1stDay + 193)
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 193) #define ActChgVisResMchQst (ActChgCrsTT1stDay + 194)
#define ActMchCntDwn (ActChgCrsTT1stDay + 194) #define ActMchCntDwn (ActChgCrsTT1stDay + 195)
#define ActRefMchTch (ActChgCrsTT1stDay + 195) #define ActRefMchTch (ActChgCrsTT1stDay + 196)
#define ActJoiMch (ActChgCrsTT1stDay + 196) #define ActJoiMch (ActChgCrsTT1stDay + 197)
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 197) #define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 198)
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 198) #define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 199)
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 199) #define ActAnsMchQstStd (ActChgCrsTT1stDay + 200)
#define ActRefMchStd (ActChgCrsTT1stDay + 200) #define ActRefMchStd (ActChgCrsTT1stDay + 201)
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 201) #define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 202)
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 202) #define ActSeeMyMchResGam (ActChgCrsTT1stDay + 203)
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 203) #define ActSeeMyMchResMch (ActChgCrsTT1stDay + 204)
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 204) #define ActSeeOneMchResMe (ActChgCrsTT1stDay + 205)
#define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 205) #define ActReqSeeUsrMchRes (ActChgCrsTT1stDay + 206)
#define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 206) #define ActSeeUsrMchResCrs (ActChgCrsTT1stDay + 207)
#define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 207) #define ActSeeUsrMchResGam (ActChgCrsTT1stDay + 208)
#define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 208) #define ActSeeUsrMchResMch (ActChgCrsTT1stDay + 209)
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 209) #define ActSeeOneMchResOth (ActChgCrsTT1stDay + 210)
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 210) #define ActChgVisResMchUsr (ActChgCrsTT1stDay + 211)
#define ActLstOneGam (ActChgCrsTT1stDay + 211) #define ActLstOneGam (ActChgCrsTT1stDay + 212)
#define ActFrmNewGam (ActChgCrsTT1stDay + 212) #define ActFrmNewGam (ActChgCrsTT1stDay + 213)
#define ActEdiOneGam (ActChgCrsTT1stDay + 213) #define ActEdiOneGam (ActChgCrsTT1stDay + 214)
#define ActNewGam (ActChgCrsTT1stDay + 214) #define ActNewGam (ActChgCrsTT1stDay + 215)
#define ActChgGam (ActChgCrsTT1stDay + 215) #define ActChgGam (ActChgCrsTT1stDay + 216)
#define ActReqRemGam (ActChgCrsTT1stDay + 216) #define ActReqRemGam (ActChgCrsTT1stDay + 217)
#define ActRemGam (ActChgCrsTT1stDay + 217) #define ActRemGam (ActChgCrsTT1stDay + 218)
#define ActHidGam (ActChgCrsTT1stDay + 218) #define ActHidGam (ActChgCrsTT1stDay + 219)
#define ActUnhGam (ActChgCrsTT1stDay + 219) #define ActUnhGam (ActChgCrsTT1stDay + 220)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 220) #define ActAddOneGamQst (ActChgCrsTT1stDay + 221)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 221) #define ActGamLstTstQst (ActChgCrsTT1stDay + 222)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 222) #define ActAddTstQstToGam (ActChgCrsTT1stDay + 223)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 223) #define ActReqRemGamQst (ActChgCrsTT1stDay + 224)
#define ActRemGamQst (ActChgCrsTT1stDay + 224) #define ActRemGamQst (ActChgCrsTT1stDay + 225)
#define ActUp_GamQst (ActChgCrsTT1stDay + 225) #define ActUp_GamQst (ActChgCrsTT1stDay + 226)
#define ActDwnGamQst (ActChgCrsTT1stDay + 226) #define ActDwnGamQst (ActChgCrsTT1stDay + 227)
#define ActReqLnkGam (ActChgCrsTT1stDay + 227) #define ActReqLnkGam (ActChgCrsTT1stDay + 228)
#define ActSeeSvy (ActChgCrsTT1stDay + 228) #define ActSeeSvy (ActChgCrsTT1stDay + 229)
#define ActAnsSvy (ActChgCrsTT1stDay + 229) #define ActAnsSvy (ActChgCrsTT1stDay + 230)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 230) #define ActFrmNewSvy (ActChgCrsTT1stDay + 231)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 231) #define ActEdiOneSvy (ActChgCrsTT1stDay + 232)
#define ActNewSvy (ActChgCrsTT1stDay + 232) #define ActNewSvy (ActChgCrsTT1stDay + 233)
#define ActChgSvy (ActChgCrsTT1stDay + 233) #define ActChgSvy (ActChgCrsTT1stDay + 234)
#define ActReqRemSvy (ActChgCrsTT1stDay + 234) #define ActReqRemSvy (ActChgCrsTT1stDay + 235)
#define ActRemSvy (ActChgCrsTT1stDay + 235) #define ActRemSvy (ActChgCrsTT1stDay + 236)
#define ActReqRstSvy (ActChgCrsTT1stDay + 236) #define ActReqRstSvy (ActChgCrsTT1stDay + 237)
#define ActRstSvy (ActChgCrsTT1stDay + 237) #define ActRstSvy (ActChgCrsTT1stDay + 238)
#define ActHidSvy (ActChgCrsTT1stDay + 238) #define ActHidSvy (ActChgCrsTT1stDay + 239)
#define ActUnhSvy (ActChgCrsTT1stDay + 239) #define ActUnhSvy (ActChgCrsTT1stDay + 240)
#define ActReqLnkSvy (ActChgCrsTT1stDay + 240) #define ActReqLnkSvy (ActChgCrsTT1stDay + 241)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 241) #define ActEdiOneSvyQst (ActChgCrsTT1stDay + 242)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 242) #define ActRcvSvyQst (ActChgCrsTT1stDay + 243)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 243) #define ActReqRemSvyQst (ActChgCrsTT1stDay + 244)
#define ActRemSvyQst (ActChgCrsTT1stDay + 244) #define ActRemSvyQst (ActChgCrsTT1stDay + 245)
/*****************************************************************************/ /*****************************************************************************/
/******************************** Files tab **********************************/ /******************************** Files tab **********************************/

View File

@ -49,6 +49,7 @@
#include "swad_pagination.h" #include "swad_pagination.h"
#include "swad_parameter.h" #include "swad_parameter.h"
#include "swad_photo.h" #include "swad_photo.h"
#include "swad_program_database.h"
#include "swad_role.h" #include "swad_role.h"
#include "swad_setting.h" #include "swad_setting.h"
#include "swad_string.h" #include "swad_string.h"
@ -73,6 +74,8 @@ static void Asg_PutIconsListAssignments (void *Assignments);
static void Asg_PutIconToCreateNewAsg (void *Assignments); static void Asg_PutIconToCreateNewAsg (void *Assignments);
static void Asg_PutButtonToCreateNewAsg (void *Assignments); static void Asg_PutButtonToCreateNewAsg (void *Assignments);
static void Asg_ParamsWhichGroupsToShow (void *Assignments); static void Asg_ParamsWhichGroupsToShow (void *Assignments);
static void Asg_ShowOneAssignmentInBox (struct Asg_Assignments *Assignments);
static void Asg_PutIconsOneAsg (void *Assignments);
static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments, static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
long AsgCod,bool PrintView); long AsgCod,bool PrintView);
static void Asg_WriteAsgAuthor (struct Asg_Assignment *Asg); static void Asg_WriteAsgAuthor (struct Asg_Assignment *Asg);
@ -107,7 +110,7 @@ static void Asg_ResetAssignments (struct Asg_Assignments *Assignments)
Assignments->Num = 0; Assignments->Num = 0;
Assignments->LstAsgCods = NULL; Assignments->LstAsgCods = NULL;
Assignments->SelectedOrder = Asg_ORDER_DEFAULT; Assignments->SelectedOrder = Asg_ORDER_DEFAULT;
Assignments->AsgCodToEdit = -1L; // Used as parameter in contextual links Assignments->AsgCod = -1L; // Used as parameter in contextual links
Assignments->CurrentPage = 0; Assignments->CurrentPage = 0;
} }
@ -157,48 +160,48 @@ static void Asg_ShowAllAssignments (struct Asg_Assignments *Assignments)
Asg_PutIconsListAssignments,Assignments, Asg_PutIconsListAssignments,Assignments,
Hlp_ASSESSMENT_Assignments,Box_NOT_CLOSABLE); Hlp_ASSESSMENT_Assignments,Box_NOT_CLOSABLE);
/***** Select whether show only my groups or all groups *****/ /***** Select whether show only my groups or all groups *****/
if (Gbl.Crs.Grps.NumGrps) if (Gbl.Crs.Grps.NumGrps)
{ {
Set_BeginSettingsHead (); Set_BeginSettingsHead ();
Grp_ShowFormToSelWhichGrps (ActSeeAsg, Grp_ShowFormToSelWhichGrps (ActSeeAsg,
Asg_ParamsWhichGroupsToShow,Assignments); Asg_ParamsWhichGroupsToShow,Assignments);
Set_EndSettingsHead (); Set_EndSettingsHead ();
} }
/***** Write links to pages *****/ /***** Write links to pages *****/
Pag_WriteLinksToPagesCentered (Pag_ASSIGNMENTS,&Pagination, Pag_WriteLinksToPagesCentered (Pag_ASSIGNMENTS,&Pagination,
Assignments,-1L); Assignments,-1L);
if (Assignments->Num) if (Assignments->Num)
{ {
/***** Begin table *****/ /***** Begin table *****/
HTM_TABLE_BeginWideMarginPadding (2); HTM_TABLE_BeginWideMarginPadding (2);
/***** Table head *****/ /***** Table head *****/
Asg_PutHeadForSeeing (Assignments,false); // Not print view Asg_PutHeadForSeeing (Assignments,false); // Not print view
/***** Write all assignments *****/ /***** Write all assignments *****/
for (NumAsg = Pagination.FirstItemVisible, The_ResetRowColor (); for (NumAsg = Pagination.FirstItemVisible, The_ResetRowColor ();
NumAsg <= Pagination.LastItemVisible; NumAsg <= Pagination.LastItemVisible;
NumAsg++, The_ChangeRowColor ()) NumAsg++, The_ChangeRowColor ())
Asg_ShowOneAssignment (Assignments, Asg_ShowOneAssignment (Assignments,
Assignments->LstAsgCods[NumAsg - 1], Assignments->LstAsgCods[NumAsg - 1],
false); // Not print view false); // Not print view
/***** End table *****/ /***** End table *****/
HTM_TABLE_End (); HTM_TABLE_End ();
} }
else // No assignments created else // No assignments created
Ale_ShowAlert (Ale_INFO,Txt_No_assignments); Ale_ShowAlert (Ale_INFO,Txt_No_assignments);
/***** Write again links to pages *****/ /***** Write again links to pages *****/
Pag_WriteLinksToPagesCentered (Pag_ASSIGNMENTS,&Pagination, Pag_WriteLinksToPagesCentered (Pag_ASSIGNMENTS,&Pagination,
Assignments,-1L); Assignments,-1L);
/***** Button to create a new assignment *****/ /***** Button to create a new assignment *****/
if (Asg_CheckIfICanCreateAssignments ()) if (Asg_CheckIfICanCreateAssignments ())
Asg_PutButtonToCreateNewAsg (Assignments); Asg_PutButtonToCreateNewAsg (Assignments);
/***** End box *****/ /***** End box *****/
Box_BoxEnd (); Box_BoxEnd ();
@ -303,7 +306,7 @@ static void Asg_PutIconToCreateNewAsg (void *Assignments)
{ {
if (Assignments) if (Assignments)
{ {
((struct Asg_Assignments *) Assignments)->AsgCodToEdit = -1L; ((struct Asg_Assignments *) Assignments)->AsgCod = -1L;
Ico_PutContextualIconToAdd (ActFrmNewAsg,NULL,Asg_PutParams,Assignments); Ico_PutContextualIconToAdd (ActFrmNewAsg,NULL,Asg_PutParams,Assignments);
} }
} }
@ -320,7 +323,7 @@ static void Asg_PutButtonToCreateNewAsg (void *Assignments)
{ {
/* Begin form */ /* Begin form */
Frm_BeginForm (ActFrmNewAsg); Frm_BeginForm (ActFrmNewAsg);
((struct Asg_Assignments *) Assignments)->AsgCodToEdit = -1L; ((struct Asg_Assignments *) Assignments)->AsgCod = -1L;
Asg_PutParams (Assignments); Asg_PutParams (Assignments);
/* Button to create new assignment */ /* Button to create new assignment */
@ -352,9 +355,7 @@ static void Asg_ParamsWhichGroupsToShow (void *Assignments)
void Asg_SeeOneAssignment (void) void Asg_SeeOneAssignment (void)
{ {
extern const char *Hlp_ASSESSMENT_Assignments; extern const char *Hlp_ASSESSMENT_Assignments;
extern const char *Txt_Assignment;
struct Asg_Assignments Assignments; struct Asg_Assignments Assignments;
long AsgCod;
/***** Reset assignments *****/ /***** Reset assignments *****/
Asg_ResetAssignments (&Assignments); Asg_ResetAssignments (&Assignments);
@ -365,24 +366,10 @@ void Asg_SeeOneAssignment (void)
Assignments.CurrentPage = Pag_GetParamPagNum (Pag_ASSIGNMENTS); Assignments.CurrentPage = Pag_GetParamPagNum (Pag_ASSIGNMENTS);
/***** Get the code of the assignment *****/ /***** Get the code of the assignment *****/
AsgCod = Asg_GetParamAsgCod (); Assignments.AsgCod = Asg_GetParamAsgCod ();
/***** Begin box and table *****/ /***** Show selected assignment in a box *****/
Box_BoxTableBegin (NULL,Txt_Assignment, Asg_ShowOneAssignmentInBox (&Assignments);
NULL,NULL,
Hlp_ASSESSMENT_Assignments,Box_NOT_CLOSABLE,2);
/***** Table head *****/
Asg_PutHeadForSeeing (&Assignments,
false); // Not print view
/***** Write assignment *****/
Asg_ShowOneAssignment (&Assignments,
AsgCod,
false); // Not print view
/***** End table and end box *****/
Box_BoxTableEnd ();
/***** Show current assignments, if any *****/ /***** Show current assignments, if any *****/
Asg_ShowAllAssignments (&Assignments); Asg_ShowAllAssignments (&Assignments);
@ -425,6 +412,45 @@ void Asg_PrintOneAssignment (void)
HTM_TABLE_End (); HTM_TABLE_End ();
} }
/*****************************************************************************/
/************************* Show an assignment in a box ***********************/
/*****************************************************************************/
static void Asg_ShowOneAssignmentInBox (struct Asg_Assignments *Assignments)
{
extern const char *Hlp_ASSESSMENT_Assignments;
extern const char *Txt_Assignment;
/***** Begin box and table *****/
Box_BoxTableBegin (NULL,Txt_Assignment,
Asg_PutIconsOneAsg,Assignments,
Hlp_ASSESSMENT_Assignments,Box_NOT_CLOSABLE,2);
/***** Table head *****/
Asg_PutHeadForSeeing (Assignments,
false); // Not print view
/***** Write assignment *****/
Asg_ShowOneAssignment (Assignments,
Assignments->AsgCod,
false); // Not print view
/***** End table and end box *****/
Box_BoxTableEnd ();
}
/*****************************************************************************/
/****************** Put contextual icons in an assignment ********************/
/*****************************************************************************/
static void Asg_PutIconsOneAsg (void *Assignments)
{
/***** Put icon to get resource link *****/
if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) // Only if I am superuser // TODO: Include teachers
Ico_PutContextualIconToGetLink (ActReqLnkAsg,NULL,
Asg_PutParams,Assignments);
}
/*****************************************************************************/ /*****************************************************************************/
/*************************** Show one assignment *****************************/ /*************************** Show one assignment *****************************/
/*****************************************************************************/ /*****************************************************************************/
@ -684,7 +710,7 @@ static void Asg_PutFormsToRemEditOneAsg (struct Asg_Assignments *Assignments,
/***** Set assigment to edit /***** Set assigment to edit
(used as parameter in contextual links) *****/ (used as parameter in contextual links) *****/
Assignments->AsgCodToEdit = Asg->AsgCod; Assignments->AsgCod = Asg->AsgCod;
switch (Gbl.Usrs.Me.Role.Logged) switch (Gbl.Usrs.Me.Role.Logged)
{ {
@ -725,8 +751,8 @@ static void Asg_PutParams (void *Assignments)
if (Assignments) if (Assignments)
{ {
if (((struct Asg_Assignments *) Assignments)->AsgCodToEdit > 0) if (((struct Asg_Assignments *) Assignments)->AsgCod > 0)
Asg_PutParamAsgCod (((struct Asg_Assignments *) Assignments)->AsgCodToEdit); Asg_PutParamAsgCod (((struct Asg_Assignments *) Assignments)->AsgCod);
Dat_PutHiddenParamOrder (((struct Asg_Assignments *) Assignments)->SelectedOrder); Dat_PutHiddenParamOrder (((struct Asg_Assignments *) Assignments)->SelectedOrder);
WhichGroups = Grp_GetParamWhichGroups (); WhichGroups = Grp_GetParamWhichGroups ();
Grp_PutParamWhichGroups (&WhichGroups); Grp_PutParamWhichGroups (&WhichGroups);
@ -1001,7 +1027,7 @@ void Asg_ReqRemAssignment (void)
Asg_GetDataOfAssignmentByCod (&Asg); Asg_GetDataOfAssignmentByCod (&Asg);
/***** Show question and button to remove the assignment *****/ /***** Show question and button to remove the assignment *****/
Assignments.AsgCodToEdit = Asg.AsgCod; Assignments.AsgCod = Asg.AsgCod;
Ale_ShowAlertAndButton (ActRemAsg,NULL,NULL, Ale_ShowAlertAndButton (ActRemAsg,NULL,NULL,
Asg_PutParams,&Assignments, Asg_PutParams,&Assignments,
Btn_REMOVE_BUTTON,Txt_Remove_assignment, Btn_REMOVE_BUTTON,Txt_Remove_assignment,
@ -1188,12 +1214,12 @@ void Asg_RequestCreatOrEditAsg (void)
if (ItsANewAssignment) if (ItsANewAssignment)
{ {
Frm_BeginForm (ActNewAsg); Frm_BeginForm (ActNewAsg);
Assignments.AsgCodToEdit = -1L; Assignments.AsgCod = -1L;
} }
else else
{ {
Frm_BeginForm (ActChgAsg); Frm_BeginForm (ActChgAsg);
Assignments.AsgCodToEdit = Asg.AsgCod; Assignments.AsgCod = Asg.AsgCod;
} }
Asg_PutParams (&Assignments); Asg_PutParams (&Assignments);
@ -1745,3 +1771,99 @@ void Asg_GetAndShowAssignmentsStats (void)
/***** End table and box *****/ /***** End table and box *****/
Box_BoxTableEnd (); Box_BoxTableEnd ();
} }
/*****************************************************************************/
/***************************** Get link to assignment ******************************/
/*****************************************************************************/
void Asg_GetLinkToAssignment (void)
{
extern const char *Txt_Link_to_resource_X_copied_into_clipboard;
struct Asg_Assignments Assignments;
char Title[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1];
/***** Reset assignments *****/
Asg_ResetAssignments (&Assignments);
/***** Get parameters *****/
Assignments.SelectedOrder = Asg_GetParamAsgOrder ();
Grp_GetParamWhichGroups ();
Assignments.CurrentPage = Pag_GetParamPagNum (Pag_ASSIGNMENTS);
/***** Get assignment code *****/
if ((Assignments.AsgCod = Asg_GetParamAsgCod ()) <= 0)
Err_WrongAssignmentExit ();
/***** Get assignment title *****/
Asg_DB_GetAssignmentTitleByCod (Assignments.AsgCod,Title);
/***** Copy link to assignment into resource clipboard *****/
Prg_DB_CopyToClipboard (PrgRsc_ASSIGNMENT,Assignments.AsgCod);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,
Title);
/***** Show selected assignment in a box *****/
Asg_ShowOneAssignmentInBox (&Assignments);
/***** Show current assignments, if any *****/
Asg_ShowAllAssignments (&Assignments);
}
/*****************************************************************************/
/*********************** Write assignment in course program ************************/
/*****************************************************************************/
void Asg_WriteAssignmentInCrsProgram (long AsgCod,bool PutFormToGo,
const char *Icon,const char *IconTitle)
{
extern const char *Txt_Actions[Act_NUM_ACTIONS];
char Title[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1];
/***** Get assignment title *****/
Asg_DB_GetAssignmentTitleByCod (AsgCod,Title);
/***** Begin form to go to assignment *****/
if (PutFormToGo)
{
Frm_BeginForm (ActSeeOneAsg);
Asg_PutParamAsgCod (AsgCod);
// TODO: In the listing of assignments, the page is always the first.
// The page should be that corresponding to the selected assignment.
HTM_BUTTON_Submit_Begin (Txt_Actions[ActSeeOneAsg],
"class=\"LM BT_LINK PRG_RSC_%s\"",
The_GetSuffix ());
}
/***** Icon depending on type ******/
if (PutFormToGo)
Ico_PutIconLink (Icon,Ico_BLACK,ActSeeGam);
else
Ico_PutIconOn (Icon,Ico_BLACK,IconTitle);
/***** Write assignment title of exam *****/
HTM_Txt (Title);
/***** End form to download file *****/
if (PutFormToGo)
{
/* End form */
HTM_BUTTON_End ();
Frm_EndForm ();
}
}
/*****************************************************************************/
/**************** Get assignment title from assignment code ******************/
/*****************************************************************************/
void Asg_GetTitleFromAsgCod (long AsgCod,char *Title,size_t TitleSize)
{
char TitleFromDB[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1];
/***** Get assignment title *****/
Asg_DB_GetAssignmentTitleByCod (AsgCod,TitleFromDB);
Str_Copy (Title,TitleFromDB,TitleSize);
}

View File

@ -53,7 +53,7 @@ struct Asg_Assignments
unsigned Num; // Number of assignments unsigned Num; // Number of assignments
long *LstAsgCods; // List of assigment codes long *LstAsgCods; // List of assigment codes
Dat_StartEndTime_t SelectedOrder; Dat_StartEndTime_t SelectedOrder;
long AsgCodToEdit; // Used as parameter in contextual links long AsgCod; // Used as parameter in contextual links
unsigned CurrentPage; unsigned CurrentPage;
}; };
@ -104,4 +104,10 @@ unsigned Asg_GetNumAssignments (HieLvl_Level_t Scope,unsigned *NumNotif);
//-------------------------------- Figures ------------------------------------ //-------------------------------- Figures ------------------------------------
void Asg_GetAndShowAssignmentsStats (void); void Asg_GetAndShowAssignmentsStats (void);
//--------------------------- Program resources -------------------------------
void Asg_GetLinkToAssignment (void);
void Asg_WriteAssignmentInCrsProgram (long AsgCod,bool PutFormToGo,
const char *Icon,const char *IconTitle);
void Asg_GetTitleFromAsgCod (long AsgCod,char *Title,size_t TitleSize);
#endif #endif

View File

@ -194,6 +194,21 @@ unsigned Asg_DB_GetAssignmentTitleAndTxtByCod (MYSQL_RES **mysql_res,long AsgCod
AsgCod); AsgCod);
} }
/*****************************************************************************/
/******************** Get assignment title from database *********************/
/*****************************************************************************/
void Asg_DB_GetAssignmentTitleByCod (long AsgCod,char Title[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1])
{
DB_QuerySELECTString (Title,Asg_MAX_BYTES_ASSIGNMENT_TITLE,"can not get assignment title",
"SELECT Title"
" FROM asg_assignments"
" WHERE AsgCod=%ld"
" AND CrsCod=%ld", // Extra check
AsgCod,
Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/ /*****************************************************************************/
/******************** Get assignment text from database **********************/ /******************** Get assignment text from database **********************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -46,6 +46,7 @@ unsigned Asg_DB_GetDataOfAssignmentByCod (MYSQL_RES **mysql_res,long AsgCod);
unsigned Asg_DB_GetDataOfAssignmentByFolder (MYSQL_RES **mysql_res, unsigned Asg_DB_GetDataOfAssignmentByFolder (MYSQL_RES **mysql_res,
const char Folder[Brw_MAX_BYTES_FOLDER + 1]); const char Folder[Brw_MAX_BYTES_FOLDER + 1]);
unsigned Asg_DB_GetAssignmentTitleAndTxtByCod (MYSQL_RES **mysql_res,long AsgCod); unsigned Asg_DB_GetAssignmentTitleAndTxtByCod (MYSQL_RES **mysql_res,long AsgCod);
void Asg_DB_GetAssignmentTitleByCod (long AsgCod,char Title[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1]);
void Asg_DB_GetAssignmentTxtByCod (long AsgCod,char Txt[Cns_MAX_BYTES_TEXT + 1]); void Asg_DB_GetAssignmentTxtByCod (long AsgCod,char Txt[Cns_MAX_BYTES_TEXT + 1]);
bool Asg_DB_CheckIfSimilarAssignmentExists (const char *Field,const char *Value, bool Asg_DB_CheckIfSimilarAssignmentExists (const char *Field,const char *Value,

View File

@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia. TODO: Attach pdf files in multimedia.
*/ */
#define Log_PLATFORM_VERSION "SWAD 22.14 (2022-09-21)" #define Log_PLATFORM_VERSION "SWAD 22.15 (2022-09-21)"
#define CSS_FILE "swad22.7.css" #define CSS_FILE "swad22.7.css"
#define JS_FILE "swad21.100.js" #define JS_FILE "swad21.100.js"
/* /*
Version 22.15: Sep 21, 2022 Links to assignments in program. (331442 lines)
Version 22.14: Sep 21, 2022 An assignment is shown when clicking on its title. (331300 lines) Version 22.14: Sep 21, 2022 An assignment is shown when clicking on its title. (331300 lines)
Version 22.13: Sep 20, 2022 Links to course forum threads in program. (331234 lines) Version 22.13: Sep 20, 2022 Links to course forum threads in program. (331234 lines)
Version 22.12.3: Sep 20, 2022 Fixed bug in JavaScript related to dates. (331098 lines) Version 22.12.3: Sep 20, 2022 Fixed bug in JavaScript related to dates. (331098 lines)

View File

@ -1010,7 +1010,7 @@ static void PrgRsc_WriteLinkName (const struct Prg_Link *Link,bool PutFormToGo,
const char *IconTitle) = const char *IconTitle) =
{ {
[PrgRsc_NONE ] = PrgRsc_WriteEmptyLinkInCrsProgram, [PrgRsc_NONE ] = PrgRsc_WriteEmptyLinkInCrsProgram,
[PrgRsc_ASSIGNMENT ] = NULL, [PrgRsc_ASSIGNMENT ] = Asg_WriteAssignmentInCrsProgram,
[PrgRsc_CALL_FOR_EXAM ] = Cfe_WriteCallForExamInCrsProgram, [PrgRsc_CALL_FOR_EXAM ] = Cfe_WriteCallForExamInCrsProgram,
[PrgRsc_EXAM ] = Exa_WriteExamInCrsProgram, [PrgRsc_EXAM ] = Exa_WriteExamInCrsProgram,
[PrgRsc_GAME ] = Gam_WriteGameInCrsProgram, [PrgRsc_GAME ] = Gam_WriteGameInCrsProgram,
@ -1056,7 +1056,7 @@ static void PrgRsc_GetResourceTitleFromLink (struct Prg_Item *Item)
static void (*GetTitle[PrgRsc_NUM_TYPES]) (long Cod,char *Title,size_t TitleSize) = static void (*GetTitle[PrgRsc_NUM_TYPES]) (long Cod,char *Title,size_t TitleSize) =
{ {
[PrgRsc_NONE ] = NULL, [PrgRsc_NONE ] = NULL,
[PrgRsc_ASSIGNMENT ] = NULL, [PrgRsc_ASSIGNMENT ] = Asg_GetTitleFromAsgCod,
[PrgRsc_CALL_FOR_EXAM ] = Cfe_GetTitleFromExaCod, [PrgRsc_CALL_FOR_EXAM ] = Cfe_GetTitleFromExaCod,
[PrgRsc_EXAM ] = Exa_GetTitleFromExaCod, [PrgRsc_EXAM ] = Exa_GetTitleFromExaCod,
[PrgRsc_GAME ] = Gam_GetTitleFromGamCod, [PrgRsc_GAME ] = Gam_GetTitleFromGamCod,

View File

@ -9214,6 +9214,29 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"Unhide assignment" // Precisa de tradução "Unhide assignment" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Unhide assignment" // Çeviri lazim! "Unhide assignment" // Çeviri lazim!
#endif
,
[ActReqLnkAsg] =
#if L==1 // ca
"Copy link to assignment" // Necessita traducció
#elif L==2 // de
"Copy link to assignment" // Need Übersetzung
#elif L==3 // en
"Copy link to assignment"
#elif L==4 // es
"Copiar enlace a actividad"
#elif L==5 // fr
"Copy link to assignment" // Besoin de traduction
#elif L==6 // gn
"Copiar enlace a actividad" // Okoteve traducción
#elif L==7 // it
"Copy link to assignment" // Bisogno di traduzione
#elif L==8 // pl
"Copy link to assignment" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Copy link to assignment" // Precisa de tradução
#elif L==10 // tr
"Copy link to assignment" // Çeviri lazim!
#endif #endif
, ,
[ActReqUsrPrj] = [ActReqUsrPrj] =