diff --git a/swad_action.c b/swad_action.c index cdb99728a..3c66b7208 100644 --- a/swad_action.c +++ b/swad_action.c @@ -660,15 +660,17 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActRemOneTstQst ] = { 133,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_RemoveOneQst ,NULL}, [ActChgShfTstQst ] = { 455,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ChangeShuffleQst ,NULL}, + [ActEdiTag ] = {1907,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tag_ShowFormEditTags ,NULL}, + [ActEnaTag ] = { 453,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tag_EnableTag ,NULL}, + [ActDisTag ] = { 452,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tag_DisableTag ,NULL}, + [ActRenTag ] = { 143,-1,TabUnk,ActEdiTstQst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tag_RenameTag ,NULL}, + [ActSeeTst ] = { 29,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowNewTest ,NULL}, [ActReqAssTst ] = {1837,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ReceiveTestDraft ,NULL}, [ActAssTst ] = { 98,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_AssessTest ,NULL}, [ActCfgTst ] = { 451,-1,TabUnk,ActReqTst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowFormConfig ,NULL}, - [ActEnableTag ] = { 453,-1,TabUnk,ActReqTst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_EnableTag ,NULL}, - [ActDisableTag ] = { 452,-1,TabUnk,ActReqTst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_DisableTag ,NULL}, - [ActRenTag ] = { 143,-1,TabUnk,ActReqTst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_RenameTag ,NULL}, - [ActRcvCfgTst ] = { 454,-1,TabUnk,ActReqTst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TstCfg_ReceiveConfigTst ,NULL}, + [ActRcvCfgTst ] = { 454,-1,TabUnk,ActReqTst ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TstCfg_ReceiveConfigTst ,NULL}, [ActReqSeeMyTstRes ] = {1083,-1,TabUnk,ActReqTst ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,Dat_SetIniEndDates ,TstPrn_SelDatesToSeeMyExams ,NULL}, [ActSeeMyTstRes ] = {1084,-1,TabUnk,ActReqTst ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TstPrn_ShowMyExams ,NULL}, @@ -679,8 +681,8 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActSeeExa ] = {1849,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Exa_SeeOneExam ,NULL}, - [ActReqNewExaEvt ] = {1852,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_RequestCreatOrEditSession ,NULL}, - [ActEdiOneExaEvt ] = {1902,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_RequestCreatOrEditSession ,NULL}, + [ActReqNewExaEvt ] = {1852,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_RequestCreatOrEditSession,NULL}, + [ActEdiOneExaEvt ] = {1902,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_RequestCreatOrEditSession,NULL}, [ActNewExaEvt ] = {1853,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_ReceiveFormSession ,NULL}, [ActChgExaEvt ] = {1903,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_ReceiveFormSession ,NULL}, [ActReqRemExaEvt ] = {1850,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaSes_RequestRemoveSession ,NULL}, @@ -2258,8 +2260,8 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un -1, // #449 (obsolete action) -1, // #450 (obsolete action) ActCfgTst, // #451 - ActDisableTag, // #452 - ActEnableTag, // #453 + ActDisTag, // #452 + ActEnaTag, // #453 ActRcvCfgTst, // #454 ActChgShfTstQst, // #455 -1, // #456 (obsolete action) @@ -3713,6 +3715,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un ActSeeExaPrn, // #1904 ActEndExaPrn, // #1905 ActAnsExaPrn, // #1906 + ActEdiTag, // #1907 }; /*****************************************************************************/ diff --git a/swad_action.h b/swad_action.h index 772e9aeac..577f4cdf0 100644 --- a/swad_action.h +++ b/swad_action.h @@ -64,7 +64,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 1906 +#define Act_MAX_ACTION_COD 1907 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 @@ -628,148 +628,150 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to #define ActRemOneTstQst (ActChgCrsTT1stDay + 107) #define ActChgShfTstQst (ActChgCrsTT1stDay + 108) -#define ActSeeTst (ActChgCrsTT1stDay + 109) -#define ActReqAssTst (ActChgCrsTT1stDay + 110) -#define ActAssTst (ActChgCrsTT1stDay + 111) -#define ActCfgTst (ActChgCrsTT1stDay + 112) -#define ActEnableTag (ActChgCrsTT1stDay + 113) -#define ActDisableTag (ActChgCrsTT1stDay + 114) -#define ActRenTag (ActChgCrsTT1stDay + 115) -#define ActRcvCfgTst (ActChgCrsTT1stDay + 116) +#define ActEdiTag (ActChgCrsTT1stDay + 109) +#define ActEnaTag (ActChgCrsTT1stDay + 110) +#define ActDisTag (ActChgCrsTT1stDay + 111) +#define ActRenTag (ActChgCrsTT1stDay + 112) -#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 117) -#define ActSeeMyTstRes (ActChgCrsTT1stDay + 118) -#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 119) -#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 120) -#define ActSeeUsrTstRes (ActChgCrsTT1stDay + 121) -#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 122) +#define ActSeeTst (ActChgCrsTT1stDay + 113) +#define ActReqAssTst (ActChgCrsTT1stDay + 114) +#define ActAssTst (ActChgCrsTT1stDay + 115) +#define ActCfgTst (ActChgCrsTT1stDay + 116) +#define ActRcvCfgTst (ActChgCrsTT1stDay + 117) -#define ActSeeExa (ActChgCrsTT1stDay + 123) +#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 118) +#define ActSeeMyTstRes (ActChgCrsTT1stDay + 119) +#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 120) +#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 121) +#define ActSeeUsrTstRes (ActChgCrsTT1stDay + 122) +#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 123) -#define ActReqNewExaEvt (ActChgCrsTT1stDay + 124) -#define ActEdiOneExaEvt (ActChgCrsTT1stDay + 125) -#define ActNewExaEvt (ActChgCrsTT1stDay + 126) -#define ActChgExaEvt (ActChgCrsTT1stDay + 127) -#define ActReqRemExaEvt (ActChgCrsTT1stDay + 128) -#define ActRemExaEvt (ActChgCrsTT1stDay + 129) -#define ActHidExaEvt (ActChgCrsTT1stDay + 130) -#define ActShoExaEvt (ActChgCrsTT1stDay + 131) +#define ActSeeExa (ActChgCrsTT1stDay + 124) -#define ActSeeMyExaEvtResCrs (ActChgCrsTT1stDay + 132) -#define ActSeeMyExaEvtResExa (ActChgCrsTT1stDay + 133) -#define ActSeeMyExaEvtResEvt (ActChgCrsTT1stDay + 134) -#define ActSeeOneExaEvtResMe (ActChgCrsTT1stDay + 135) +#define ActReqNewExaEvt (ActChgCrsTT1stDay + 125) +#define ActEdiOneExaEvt (ActChgCrsTT1stDay + 126) +#define ActNewExaEvt (ActChgCrsTT1stDay + 127) +#define ActChgExaEvt (ActChgCrsTT1stDay + 128) +#define ActReqRemExaEvt (ActChgCrsTT1stDay + 129) +#define ActRemExaEvt (ActChgCrsTT1stDay + 130) +#define ActHidExaEvt (ActChgCrsTT1stDay + 131) +#define ActShoExaEvt (ActChgCrsTT1stDay + 132) -#define ActReqSeeAllExaEvtRes (ActChgCrsTT1stDay + 136) -#define ActSeeAllExaEvtResCrs (ActChgCrsTT1stDay + 137) -#define ActSeeAllExaEvtResExa (ActChgCrsTT1stDay + 138) -#define ActSeeAllExaEvtResEvt (ActChgCrsTT1stDay + 139) -#define ActSeeOneExaEvtResOth (ActChgCrsTT1stDay + 140) +#define ActSeeMyExaEvtResCrs (ActChgCrsTT1stDay + 133) +#define ActSeeMyExaEvtResExa (ActChgCrsTT1stDay + 134) +#define ActSeeMyExaEvtResEvt (ActChgCrsTT1stDay + 135) +#define ActSeeOneExaEvtResMe (ActChgCrsTT1stDay + 136) -#define ActChgVisResExaEvtUsr (ActChgCrsTT1stDay + 141) +#define ActReqSeeAllExaEvtRes (ActChgCrsTT1stDay + 137) +#define ActSeeAllExaEvtResCrs (ActChgCrsTT1stDay + 138) +#define ActSeeAllExaEvtResExa (ActChgCrsTT1stDay + 139) +#define ActSeeAllExaEvtResEvt (ActChgCrsTT1stDay + 140) +#define ActSeeOneExaEvtResOth (ActChgCrsTT1stDay + 141) -#define ActFrmNewExa (ActChgCrsTT1stDay + 142) -#define ActEdiOneExa (ActChgCrsTT1stDay + 143) -#define ActNewExa (ActChgCrsTT1stDay + 144) -#define ActChgExa (ActChgCrsTT1stDay + 145) -#define ActReqRemExa (ActChgCrsTT1stDay + 146) -#define ActRemExa (ActChgCrsTT1stDay + 147) -#define ActHidExa (ActChgCrsTT1stDay + 148) -#define ActShoExa (ActChgCrsTT1stDay + 149) -#define ActFrmNewExaSet (ActChgCrsTT1stDay + 150) -#define ActNewExaSet (ActChgCrsTT1stDay + 151) -#define ActReqRemExaSet (ActChgCrsTT1stDay + 152) -#define ActRemExaSet (ActChgCrsTT1stDay + 153) -#define ActUp_ExaSet (ActChgCrsTT1stDay + 154) -#define ActDwnExaSet (ActChgCrsTT1stDay + 155) -#define ActChgTitExaSet (ActChgCrsTT1stDay + 156) -#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 157) +#define ActChgVisResExaEvtUsr (ActChgCrsTT1stDay + 142) -#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 158) -#define ActLstTstQstForSet (ActChgCrsTT1stDay + 159) -#define ActAddQstToExa (ActChgCrsTT1stDay + 160) -#define ActReqRemSetQst (ActChgCrsTT1stDay + 161) -#define ActRemExaQst (ActChgCrsTT1stDay + 162) +#define ActFrmNewExa (ActChgCrsTT1stDay + 143) +#define ActEdiOneExa (ActChgCrsTT1stDay + 144) +#define ActNewExa (ActChgCrsTT1stDay + 145) +#define ActChgExa (ActChgCrsTT1stDay + 146) +#define ActReqRemExa (ActChgCrsTT1stDay + 147) +#define ActRemExa (ActChgCrsTT1stDay + 148) +#define ActHidExa (ActChgCrsTT1stDay + 149) +#define ActShoExa (ActChgCrsTT1stDay + 150) +#define ActFrmNewExaSet (ActChgCrsTT1stDay + 151) +#define ActNewExaSet (ActChgCrsTT1stDay + 152) +#define ActReqRemExaSet (ActChgCrsTT1stDay + 153) +#define ActRemExaSet (ActChgCrsTT1stDay + 154) +#define ActUp_ExaSet (ActChgCrsTT1stDay + 155) +#define ActDwnExaSet (ActChgCrsTT1stDay + 156) +#define ActChgTitExaSet (ActChgCrsTT1stDay + 157) +#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 158) -#define ActSeeExaPrn (ActChgCrsTT1stDay + 163) -#define ActAnsExaPrn (ActChgCrsTT1stDay + 164) -#define ActEndExaPrn (ActChgCrsTT1stDay + 165) +#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 159) +#define ActLstTstQstForSet (ActChgCrsTT1stDay + 160) +#define ActAddQstToExa (ActChgCrsTT1stDay + 161) +#define ActReqRemSetQst (ActChgCrsTT1stDay + 162) +#define ActRemExaQst (ActChgCrsTT1stDay + 163) -#define ActSeeGam (ActChgCrsTT1stDay + 166) -#define ActReqRemMch (ActChgCrsTT1stDay + 167) -#define ActRemMch (ActChgCrsTT1stDay + 168) -#define ActReqNewMch (ActChgCrsTT1stDay + 169) -#define ActNewMch (ActChgCrsTT1stDay + 170) -#define ActResMch (ActChgCrsTT1stDay + 171) -#define ActBckMch (ActChgCrsTT1stDay + 172) -#define ActPlyPauMch (ActChgCrsTT1stDay + 173) -#define ActFwdMch (ActChgCrsTT1stDay + 174) -#define ActChgNumColMch (ActChgCrsTT1stDay + 175) -#define ActChgVisResMchQst (ActChgCrsTT1stDay + 176) -#define ActMchCntDwn (ActChgCrsTT1stDay + 177) -#define ActRefMchTch (ActChgCrsTT1stDay + 178) +#define ActSeeExaPrn (ActChgCrsTT1stDay + 164) +#define ActAnsExaPrn (ActChgCrsTT1stDay + 165) +#define ActEndExaPrn (ActChgCrsTT1stDay + 166) -#define ActJoiMch (ActChgCrsTT1stDay + 179) -#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 180) -#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 181) -#define ActAnsMchQstStd (ActChgCrsTT1stDay + 182) -#define ActRefMchStd (ActChgCrsTT1stDay + 183) +#define ActSeeGam (ActChgCrsTT1stDay + 167) +#define ActReqRemMch (ActChgCrsTT1stDay + 168) +#define ActRemMch (ActChgCrsTT1stDay + 169) +#define ActReqNewMch (ActChgCrsTT1stDay + 170) +#define ActNewMch (ActChgCrsTT1stDay + 171) +#define ActResMch (ActChgCrsTT1stDay + 172) +#define ActBckMch (ActChgCrsTT1stDay + 173) +#define ActPlyPauMch (ActChgCrsTT1stDay + 174) +#define ActFwdMch (ActChgCrsTT1stDay + 175) +#define ActChgNumColMch (ActChgCrsTT1stDay + 176) +#define ActChgVisResMchQst (ActChgCrsTT1stDay + 177) +#define ActMchCntDwn (ActChgCrsTT1stDay + 178) +#define ActRefMchTch (ActChgCrsTT1stDay + 179) -#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 184) -#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 185) -#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 186) -#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 187) +#define ActJoiMch (ActChgCrsTT1stDay + 180) +#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 181) +#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 182) +#define ActAnsMchQstStd (ActChgCrsTT1stDay + 183) +#define ActRefMchStd (ActChgCrsTT1stDay + 184) -#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 188) -#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 189) -#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 190) -#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 191) -#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 192) +#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 185) +#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 186) +#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 187) +#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 188) -#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 193) +#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 189) +#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 190) +#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 191) +#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 192) +#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 193) -#define ActFrmNewGam (ActChgCrsTT1stDay + 194) -#define ActEdiOneGam (ActChgCrsTT1stDay + 195) -#define ActNewGam (ActChgCrsTT1stDay + 196) -#define ActChgGam (ActChgCrsTT1stDay + 197) -#define ActReqRemGam (ActChgCrsTT1stDay + 198) -#define ActRemGam (ActChgCrsTT1stDay + 199) -#define ActHidGam (ActChgCrsTT1stDay + 200) -#define ActShoGam (ActChgCrsTT1stDay + 201) -#define ActAddOneGamQst (ActChgCrsTT1stDay + 202) -#define ActGamLstTstQst (ActChgCrsTT1stDay + 203) -#define ActAddTstQstToGam (ActChgCrsTT1stDay + 204) -#define ActReqRemGamQst (ActChgCrsTT1stDay + 205) -#define ActRemGamQst (ActChgCrsTT1stDay + 206) -#define ActUp_GamQst (ActChgCrsTT1stDay + 207) -#define ActDwnGamQst (ActChgCrsTT1stDay + 208) +#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 194) -#define ActSeeSvy (ActChgCrsTT1stDay + 209) -#define ActAnsSvy (ActChgCrsTT1stDay + 210) -#define ActFrmNewSvy (ActChgCrsTT1stDay + 211) -#define ActEdiOneSvy (ActChgCrsTT1stDay + 212) -#define ActNewSvy (ActChgCrsTT1stDay + 213) -#define ActChgSvy (ActChgCrsTT1stDay + 214) -#define ActReqRemSvy (ActChgCrsTT1stDay + 215) -#define ActRemSvy (ActChgCrsTT1stDay + 216) -#define ActReqRstSvy (ActChgCrsTT1stDay + 217) -#define ActRstSvy (ActChgCrsTT1stDay + 218) -#define ActHidSvy (ActChgCrsTT1stDay + 219) -#define ActShoSvy (ActChgCrsTT1stDay + 220) -#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 221) -#define ActRcvSvyQst (ActChgCrsTT1stDay + 222) -#define ActReqRemSvyQst (ActChgCrsTT1stDay + 223) -#define ActRemSvyQst (ActChgCrsTT1stDay + 224) +#define ActFrmNewGam (ActChgCrsTT1stDay + 195) +#define ActEdiOneGam (ActChgCrsTT1stDay + 196) +#define ActNewGam (ActChgCrsTT1stDay + 197) +#define ActChgGam (ActChgCrsTT1stDay + 198) +#define ActReqRemGam (ActChgCrsTT1stDay + 199) +#define ActRemGam (ActChgCrsTT1stDay + 200) +#define ActHidGam (ActChgCrsTT1stDay + 201) +#define ActShoGam (ActChgCrsTT1stDay + 202) +#define ActAddOneGamQst (ActChgCrsTT1stDay + 203) +#define ActGamLstTstQst (ActChgCrsTT1stDay + 204) +#define ActAddTstQstToGam (ActChgCrsTT1stDay + 205) +#define ActReqRemGamQst (ActChgCrsTT1stDay + 206) +#define ActRemGamQst (ActChgCrsTT1stDay + 207) +#define ActUp_GamQst (ActChgCrsTT1stDay + 208) +#define ActDwnGamQst (ActChgCrsTT1stDay + 209) -#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 225) -#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 226) -#define ActEdiExaAnn (ActChgCrsTT1stDay + 227) -#define ActRcvExaAnn (ActChgCrsTT1stDay + 228) -#define ActPrnExaAnn (ActChgCrsTT1stDay + 229) -#define ActReqRemExaAnn (ActChgCrsTT1stDay + 230) -#define ActRemExaAnn (ActChgCrsTT1stDay + 231) -#define ActHidExaAnn (ActChgCrsTT1stDay + 232) -#define ActShoExaAnn (ActChgCrsTT1stDay + 233) +#define ActSeeSvy (ActChgCrsTT1stDay + 210) +#define ActAnsSvy (ActChgCrsTT1stDay + 211) +#define ActFrmNewSvy (ActChgCrsTT1stDay + 212) +#define ActEdiOneSvy (ActChgCrsTT1stDay + 213) +#define ActNewSvy (ActChgCrsTT1stDay + 214) +#define ActChgSvy (ActChgCrsTT1stDay + 215) +#define ActReqRemSvy (ActChgCrsTT1stDay + 216) +#define ActRemSvy (ActChgCrsTT1stDay + 217) +#define ActReqRstSvy (ActChgCrsTT1stDay + 218) +#define ActRstSvy (ActChgCrsTT1stDay + 219) +#define ActHidSvy (ActChgCrsTT1stDay + 220) +#define ActShoSvy (ActChgCrsTT1stDay + 221) +#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 222) +#define ActRcvSvyQst (ActChgCrsTT1stDay + 223) +#define ActReqRemSvyQst (ActChgCrsTT1stDay + 224) +#define ActRemSvyQst (ActChgCrsTT1stDay + 225) + +#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 226) +#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 227) +#define ActEdiExaAnn (ActChgCrsTT1stDay + 228) +#define ActRcvExaAnn (ActChgCrsTT1stDay + 229) +#define ActPrnExaAnn (ActChgCrsTT1stDay + 230) +#define ActReqRemExaAnn (ActChgCrsTT1stDay + 231) +#define ActRemExaAnn (ActChgCrsTT1stDay + 232) +#define ActHidExaAnn (ActChgCrsTT1stDay + 233) +#define ActShoExaAnn (ActChgCrsTT1stDay + 234) /*****************************************************************************/ /******************************** Files tab **********************************/ diff --git a/swad_changelog.h b/swad_changelog.h index 340310903..62c5e981d 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -557,12 +557,19 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.233 (2020-05-17)" +#define Log_PLATFORM_VERSION "SWAD 19.234 (2020-05-17)" #define CSS_FILE "swad19.230.1.css" #define JS_FILE "swad19.230.3.js" /* TODO: Comprobar si el directorio público que devuelve Ses_GetPublicDirFromCache sigue existiendo. // Si no existe, hay que crear un nuevo directorio y meterlo en cache +TODO: ¿Mover importar y exportar a icono en la esquina? + + Version 19.234: May 17, 2020 Option to edit tags in bank of questions. (301061 lines) + Copy the following 3 icons to icon public directory: +sudo cp icon/tag.svg /var/www/html/swad/icon/ +sudo cp icon/tags.svg /var/www/html/swad/icon/ +sudo cp icon/hashtag.svg /var/www/html/swad/icon/ Version 19.233: May 17, 2020 Exam event is renamed as exam session. (301028 lines) 7 changes necessary in database: diff --git a/swad_test.c b/swad_test.c index 8af68f443..7817cc31a 100644 --- a/swad_test.c +++ b/swad_test.c @@ -158,16 +158,17 @@ static void Tst_PutIconsBankQsts (void *Test); static void Tst_PutIconsTests (__attribute__((unused)) void *Args); static void Tst_PutButtonToAddQuestion (void); -static long Tst_GetParamTagCode (void); +static long Tag_GetParamTagCode (void); static bool Tst_CheckIfCurrentCrsHasTestTags (void); static unsigned Tst_GetAllTagsFromCurrentCrs (MYSQL_RES **mysql_res); static unsigned Tst_GetEnabledTagsFromThisCrs (MYSQL_RES **mysql_res); -static void Tst_ShowFormSelTags (const struct Tst_Tags *Tags, + +static void Tag_ShowFormSelTags (const struct Tst_Tags *Tags, MYSQL_RES *mysql_res, bool ShowOnlyEnabledTags); -static void Tst_ShowFormEditTags (void); -static void Tst_PutIconEnable (long TagCod,const char *TagTxt); -static void Tst_PutIconDisable (long TagCod,const char *TagTxt); +static void Tag_PutIconEnable (long TagCod,const char *TagTxt); +static void Tag_PutIconDisable (long TagCod,const char *TagTxt); + static void Tst_ShowFormConfigTst (void); static void Tst_PutInputFieldNumQst (const char *Field,const char *Label, @@ -385,7 +386,7 @@ static void Tst_ShowFormRequestTest (struct Tst_Test *Test) HTM_TABLE_BeginPadding (2); /***** Selection of tags *****/ - Tst_ShowFormSelTags (&Test->Tags,mysql_res,true); + Tag_ShowFormSelTags (&Test->Tags,mysql_res,true); /***** Selection of types of answers *****/ Tst_ShowFormAnswerTypes (&Test->AnswerTypes); @@ -1242,7 +1243,7 @@ static void Tst_ShowFormRequestEditTests (struct Tst_Test *Test) HTM_TABLE_BeginPadding (2); /***** Selection of tags *****/ - Tst_ShowFormSelTags (&Test->Tags,mysql_res,false); + Tag_ShowFormSelTags (&Test->Tags,mysql_res,false); /***** Selection of types of answers *****/ Tst_ShowFormAnswerTypes (&Test->AnswerTypes); @@ -1340,7 +1341,7 @@ static void Tst_ShowFormRequestSelectTestsForSet (struct Exa_Exams *Exams, HTM_TABLE_BeginPadding (2); /***** Selection of tags *****/ - Tst_ShowFormSelTags (&Test->Tags,mysql_res,false); + Tag_ShowFormSelTags (&Test->Tags,mysql_res,false); /***** Selection of types of answers *****/ Tst_ShowFormAnswerTypes (&Test->AnswerTypes); @@ -1402,7 +1403,7 @@ static void Tst_ShowFormRequestSelectTestsForGame (struct Gam_Games *Games, HTM_TABLE_BeginPadding (2); /***** Selection of tags *****/ - Tst_ShowFormSelTags (&Test->Tags,mysql_res,false); + Tag_ShowFormSelTags (&Test->Tags,mysql_res,false); /***** Starting and ending dates in the search *****/ Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (SetHMS); @@ -1468,11 +1469,16 @@ static void Tst_PutIconsBankQsts (void *Test) NULL,NULL, Txt_New_question); + /***** Put form to edit tags *****/ + Lay_PutContextualLinkOnlyIcon (ActEdiTag,NULL, + NULL,NULL, + "tag.svg", + "Editar descriptores"); // TODO: Need translation!!! + /***** Put icon to show a figure *****/ Fig_PutIconToShowFigure (Fig_TESTS); } - /*****************************************************************************/ /********************* Put contextual icons in tests *************************/ /*****************************************************************************/ @@ -1533,46 +1539,43 @@ void Tst_ShowFormConfig (void) /***** Form to configure test *****/ Tst_ShowFormConfigTst (); - - /***** Form to edit tags *****/ - Tst_ShowFormEditTags (); } /*****************************************************************************/ /******************************* Enable a test tag ***************************/ /*****************************************************************************/ -void Tst_EnableTag (void) +void Tag_EnableTag (void) { - long TagCod = Tst_GetParamTagCode (); + long TagCod = Tag_GetParamTagCode (); /***** Change tag status to enabled *****/ Tst_EnableOrDisableTag (TagCod,false); - /***** Show again the form to configure test *****/ - Tst_ShowFormConfig (); + /***** Show again the form to edit tags *****/ + Tag_ShowFormEditTags (); } /*****************************************************************************/ /****************************** Disable a test tag ***************************/ /*****************************************************************************/ -void Tst_DisableTag (void) +void Tag_DisableTag (void) { - long TagCod = Tst_GetParamTagCode (); + long TagCod = Tag_GetParamTagCode (); /***** Change tag status to disabled *****/ Tst_EnableOrDisableTag (TagCod,true); - /***** Show again the form to configure test *****/ - Tst_ShowFormConfig (); + /***** Show again the form to edit tags *****/ + Tag_ShowFormEditTags (); } /*****************************************************************************/ /************************* Get parameter with tag code ***********************/ /*****************************************************************************/ -static long Tst_GetParamTagCode (void) +static long Tag_GetParamTagCode (void) { long TagCod; @@ -1587,7 +1590,7 @@ static long Tst_GetParamTagCode (void) /************************ Rename a tag of test questions *********************/ /*****************************************************************************/ -void Tst_RenameTag (void) +void Tag_RenameTag (void) { extern const char *Txt_The_tag_X_has_been_renamed_as_Y; extern const char *Txt_The_tag_X_has_not_changed; @@ -1696,8 +1699,8 @@ void Tst_RenameTag (void) else // New tag empty Ale_ShowAlertYouCanNotLeaveFieldEmpty (); - /***** Show again the form to configure test *****/ - Tst_ShowFormConfig (); + /***** Show again the form to edit tags *****/ + Tag_ShowFormEditTags (); } /*****************************************************************************/ @@ -1802,7 +1805,7 @@ static unsigned Tst_GetEnabledTagsFromThisCrs (MYSQL_RES **mysql_res) /********************* Show a form to select test tags ***********************/ /*****************************************************************************/ -static void Tst_ShowFormSelTags (const struct Tst_Tags *Tags, +static void Tag_ShowFormSelTags (const struct Tst_Tags *Tags, MYSQL_RES *mysql_res, bool ShowOnlyEnabledTags) { @@ -1906,7 +1909,7 @@ static void Tst_ShowFormSelTags (const struct Tst_Tags *Tags, /************* Show a form to enable/disable and rename test tags ************/ /*****************************************************************************/ -static void Tst_ShowFormEditTags (void) +void Tag_ShowFormEditTags (void) { extern const char *Hlp_ASSESSMENT_Tests_configuring_tests; extern const char *Txt_No_test_questions; @@ -1943,9 +1946,9 @@ static void Tst_ShowFormEditTags (void) /* Form to enable / disable this tag */ if (row[2][0] == 'Y') // Tag disabled - Tst_PutIconEnable (TagCod,row[1]); + Tag_PutIconEnable (TagCod,row[1]); else - Tst_PutIconDisable (TagCod,row[1]); + Tag_PutIconDisable (TagCod,row[1]); /* Form to rename this tag */ HTM_TD_Begin ("class=\"LM\""); @@ -1974,12 +1977,12 @@ static void Tst_ShowFormEditTags (void) /******************* Put a link and an icon to enable a tag ******************/ /*****************************************************************************/ -static void Tst_PutIconEnable (long TagCod,const char *TagTxt) +static void Tag_PutIconEnable (long TagCod,const char *TagTxt) { extern const char *Txt_Tag_X_not_allowed_Click_to_allow_it; HTM_TD_Begin ("class=\"BM\""); - Frm_StartForm (ActEnableTag); + Frm_StartForm (ActEnaTag); Par_PutHiddenParamLong (NULL,"TagCod",TagCod); Ico_PutIconLink ("eye-slash-red.svg", Str_BuildStringStr (Txt_Tag_X_not_allowed_Click_to_allow_it, @@ -1993,12 +1996,12 @@ static void Tst_PutIconEnable (long TagCod,const char *TagTxt) /****************** Put a link and an icon to disable a tag ******************/ /*****************************************************************************/ -static void Tst_PutIconDisable (long TagCod,const char *TagTxt) +static void Tag_PutIconDisable (long TagCod,const char *TagTxt) { extern const char *Txt_Tag_X_allowed_Click_to_disable_it; HTM_TD_Begin ("class=\"BM\""); - Frm_StartForm (ActDisableTag); + Frm_StartForm (ActDisTag); Par_PutHiddenParamLong (NULL,"TagCod",TagCod); Ico_PutIconLink ("eye-green.svg", Str_BuildStringStr (Txt_Tag_X_allowed_Click_to_disable_it, diff --git a/swad_test.h b/swad_test.h index 71da86472..d8d4adc6c 100644 --- a/swad_test.h +++ b/swad_test.h @@ -143,12 +143,14 @@ unsigned long Tst_GetTagsQst (long QstCod,MYSQL_RES **mysql_res); void Tst_GetAndWriteTagsQst (long QstCod); void Tst_ShowFormConfig (void); -void Tst_EnableTag (void); -void Tst_DisableTag (void); -void Tst_RenameTag (void); +void Tag_EnableTag (void); +void Tag_DisableTag (void); +void Tag_RenameTag (void); bool Tst_CheckIfCourseHaveTestsAndPluggableIsUnknown (void); +void Tag_ShowFormEditTags (void); + unsigned Tst_CountNumQuestionsInList (const char *ListQuestions); void Tst_ShowFormEditOneQst (void); diff --git a/swad_text_action.c b/swad_text_action.c index 12f8057ba..bd6bafbc0 100644 --- a/swad_text_action.c +++ b/swad_text_action.c @@ -9762,6 +9762,90 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução +#endif + , + [ActEdiTag] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Edit tags in the question bank" +#elif L==4 // es + "Editar descriptores del banco de preguntas" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActEnaTag] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Enable a tag in the question bank" +#elif L==4 // es + "Habilitar un descriptor del banco de preguntas" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActDisTag] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Disable a tag in the question bank" +#elif L==4 // es + "Inhabilitar un descriptor del banco de preguntas" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução +#endif + , + [ActRenTag] = +#if L==1 // ca + "" // Necessita traducció +#elif L==2 // de + "" // Need Übersetzung +#elif L==3 // en + "Rename a tag in the question bank" +#elif L==4 // es + "Renombrar un descriptor del banco de preguntas" +#elif L==5 // fr + "" // Besoin de traduction +#elif L==6 // gn + "" // Okoteve traducción +#elif L==7 // it + "" // Bisogno di traduzione +#elif L==8 // pl + "" // Potrzebujesz tlumaczenie +#elif L==9 // pt + "" // Precisa de tradução #endif , [ActSeeTst] = @@ -9846,69 +9930,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] = "" // Potrzebujesz tlumaczenie #elif L==9 // pt "" // Precisa de tradução -#endif - , - [ActEnableTag] = -#if L==1 // ca - "" // Necessita traducció -#elif L==2 // de - "" // Need Übersetzung -#elif L==3 // en - "Enable a test tag" -#elif L==4 // es - "Habilitar un descriptor de test" -#elif L==5 // fr - "" // Besoin de traduction -#elif L==6 // gn - "" // Okoteve traducción -#elif L==7 // it - "" // Bisogno di traduzione -#elif L==8 // pl - "" // Potrzebujesz tlumaczenie -#elif L==9 // pt - "" // Precisa de tradução -#endif - , - [ActDisableTag] = -#if L==1 // ca - "" // Necessita traducció -#elif L==2 // de - "" // Need Übersetzung -#elif L==3 // en - "Disable a test tag" -#elif L==4 // es - "Inhabilitar un descriptor de test" -#elif L==5 // fr - "" // Besoin de traduction -#elif L==6 // gn - "" // Okoteve traducción -#elif L==7 // it - "" // Bisogno di traduzione -#elif L==8 // pl - "" // Potrzebujesz tlumaczenie -#elif L==9 // pt - "" // Precisa de tradução -#endif - , - [ActRenTag] = -#if L==1 // ca - "" // Necessita traducció -#elif L==2 // de - "" // Need Übersetzung -#elif L==3 // en - "Rename a test tag" -#elif L==4 // es - "Renombrar un descriptor de test" -#elif L==5 // fr - "" // Besoin de traduction -#elif L==6 // gn - "" // Okoteve traducción -#elif L==7 // it - "" // Bisogno di traduzione -#elif L==8 // pl - "" // Potrzebujesz tlumaczenie -#elif L==9 // pt - "" // Precisa de tradução #endif , [ActRcvCfgTst] =