diff --git a/swad_action.c b/swad_action.c index 4e5220cbf..963a9d42f 100644 --- a/swad_action.c +++ b/swad_action.c @@ -457,6 +457,7 @@ Course: 316. ActPrnCrsInf Print information on the course 317. ActChgCrsDegCfg Request change of degree in course configuration + NEW. ActRenCrsFulCfg Request change of full name of a course in course configuration 318. ActChgInsCrsCodCfg Change institutional code in course configuration 319. ActChgCrsYeaCfg Change year/semester in course configuration 320. ActEdiCrsInf Edit general information about the course @@ -1816,6 +1817,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActPrnCrsInf */{1028,-1,TabUnk,ActSeeCrsInf ,0x1FF,0x1FF,0x000,Act_CONT_NORM,Act_BLNK_WINDOW,NULL ,Crs_PrintConfiguration ,NULL}, /* ActChgCrsDegCfg */{1587,-1,TabUnk,ActSeeCrsInf ,0x1C0,0x1C0,0x1C0,Act_CONT_NORM,Act_THIS_WINDOW,Crs_ChangeCrsDegInConfig ,Crs_ContEditAfterChgCrsInConfig,NULL}, + /* ActRenCrsFulCfg */{1600,-1,TabUnk,ActSeeCrsInf ,0x1E0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,Crs_RenameCourseFullInConfig ,Crs_ContEditAfterChgCrsInConfig,NULL}, /* ActChgInsCrsCodCfg*/{1024,-1,TabUnk,ActSeeCrsInf ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,Crs_ChangeInsCrsCodInConfig ,Crs_ContEditAfterChgCrsInConfig,NULL}, /* ActChgCrsYeaCfg */{1573,-1,TabUnk,ActSeeCrsInf ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,Crs_ChangeCrsYearInConfig ,Crs_ContEditAfterChgCrsInConfig,NULL}, /* ActEdiCrsInf */{ 848,-1,TabUnk,ActSeeCrsInf ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Inf_FormsToSelSendInfo ,NULL}, @@ -4467,6 +4469,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq ActRenDegFulCfg, // #1597 ActRenDegShoCfg, // #1598 ActChgDegWWWCfg, // #1599 + ActRenCrsFulCfg, // #1600 }; /*****************************************************************************/ diff --git a/swad_action.h b/swad_action.h index a3bc95294..36eda56ea 100644 --- a/swad_action.h +++ b/swad_action.h @@ -55,9 +55,9 @@ typedef enum typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action -#define Act_NUM_ACTIONS (1+9+51+14+93+73+70+247+186+155+172+36+30+86) +#define Act_NUM_ACTIONS (1+9+51+14+93+73+70+248+186+155+172+36+30+86) -#define Act_MAX_ACTION_COD 1599 +#define Act_MAX_ACTION_COD 1600 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 11 @@ -453,253 +453,254 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica #define ActCrsSch (ActDowShaDeg+ 12) #define ActPrnCrsInf (ActDowShaDeg+ 13) #define ActChgCrsDegCfg (ActDowShaDeg+ 14) -#define ActChgInsCrsCodCfg (ActDowShaDeg+ 15) -#define ActChgCrsYeaCfg (ActDowShaDeg+ 16) -#define ActEdiCrsInf (ActDowShaDeg+ 17) -#define ActEdiTchGui (ActDowShaDeg+ 18) -#define ActPrnCrsTT (ActDowShaDeg+ 19) -#define ActEdiCrsTT (ActDowShaDeg+ 20) -#define ActChgCrsTT (ActDowShaDeg+ 21) -#define ActChgCrsTT1stDay (ActDowShaDeg+ 22) -#define ActSeeSylLec (ActDowShaDeg+ 23) -#define ActSeeSylPra (ActDowShaDeg+ 24) -#define ActEdiSylLec (ActDowShaDeg+ 25) -#define ActEdiSylPra (ActDowShaDeg+ 26) -#define ActDelItmSylLec (ActDowShaDeg+ 27) -#define ActDelItmSylPra (ActDowShaDeg+ 28) -#define ActUp_IteSylLec (ActDowShaDeg+ 29) -#define ActUp_IteSylPra (ActDowShaDeg+ 30) -#define ActDwnIteSylLec (ActDowShaDeg+ 31) -#define ActDwnIteSylPra (ActDowShaDeg+ 32) -#define ActRgtIteSylLec (ActDowShaDeg+ 33) -#define ActRgtIteSylPra (ActDowShaDeg+ 34) -#define ActLftIteSylLec (ActDowShaDeg+ 35) -#define ActLftIteSylPra (ActDowShaDeg+ 36) -#define ActInsIteSylLec (ActDowShaDeg+ 37) -#define ActInsIteSylPra (ActDowShaDeg+ 38) -#define ActModIteSylLec (ActDowShaDeg+ 39) -#define ActModIteSylPra (ActDowShaDeg+ 40) +#define ActRenCrsFulCfg (ActDowShaDeg+ 15) +#define ActChgInsCrsCodCfg (ActDowShaDeg+ 16) +#define ActChgCrsYeaCfg (ActDowShaDeg+ 17) +#define ActEdiCrsInf (ActDowShaDeg+ 18) +#define ActEdiTchGui (ActDowShaDeg+ 19) +#define ActPrnCrsTT (ActDowShaDeg+ 20) +#define ActEdiCrsTT (ActDowShaDeg+ 21) +#define ActChgCrsTT (ActDowShaDeg+ 22) +#define ActChgCrsTT1stDay (ActDowShaDeg+ 23) +#define ActSeeSylLec (ActDowShaDeg+ 24) +#define ActSeeSylPra (ActDowShaDeg+ 25) +#define ActEdiSylLec (ActDowShaDeg+ 26) +#define ActEdiSylPra (ActDowShaDeg+ 27) +#define ActDelItmSylLec (ActDowShaDeg+ 28) +#define ActDelItmSylPra (ActDowShaDeg+ 29) +#define ActUp_IteSylLec (ActDowShaDeg+ 30) +#define ActUp_IteSylPra (ActDowShaDeg+ 31) +#define ActDwnIteSylLec (ActDowShaDeg+ 32) +#define ActDwnIteSylPra (ActDowShaDeg+ 33) +#define ActRgtIteSylLec (ActDowShaDeg+ 34) +#define ActRgtIteSylPra (ActDowShaDeg+ 35) +#define ActLftIteSylLec (ActDowShaDeg+ 36) +#define ActLftIteSylPra (ActDowShaDeg+ 37) +#define ActInsIteSylLec (ActDowShaDeg+ 38) +#define ActInsIteSylPra (ActDowShaDeg+ 39) +#define ActModIteSylLec (ActDowShaDeg+ 40) +#define ActModIteSylPra (ActDowShaDeg+ 41) -#define ActChgToSeeDocCrs (ActDowShaDeg+ 41) -#define ActSeeDocCrs (ActDowShaDeg+ 42) -#define ActExpSeeDocCrs (ActDowShaDeg+ 43) -#define ActConSeeDocCrs (ActDowShaDeg+ 44) -#define ActZIPSeeDocCrs (ActDowShaDeg+ 45) -#define ActReqDatSeeDocCrs (ActDowShaDeg+ 46) -#define ActDowSeeDocCrs (ActDowShaDeg+ 47) +#define ActChgToSeeDocCrs (ActDowShaDeg+ 42) +#define ActSeeDocCrs (ActDowShaDeg+ 43) +#define ActExpSeeDocCrs (ActDowShaDeg+ 44) +#define ActConSeeDocCrs (ActDowShaDeg+ 45) +#define ActZIPSeeDocCrs (ActDowShaDeg+ 46) +#define ActReqDatSeeDocCrs (ActDowShaDeg+ 47) +#define ActDowSeeDocCrs (ActDowShaDeg+ 48) -#define ActSeeDocGrp (ActDowShaDeg+ 48) -#define ActExpSeeDocGrp (ActDowShaDeg+ 49) -#define ActConSeeDocGrp (ActDowShaDeg+ 50) -#define ActZIPSeeDocGrp (ActDowShaDeg+ 51) -#define ActReqDatSeeDocGrp (ActDowShaDeg+ 52) -#define ActDowSeeDocGrp (ActDowShaDeg+ 53) +#define ActSeeDocGrp (ActDowShaDeg+ 49) +#define ActExpSeeDocGrp (ActDowShaDeg+ 50) +#define ActConSeeDocGrp (ActDowShaDeg+ 51) +#define ActZIPSeeDocGrp (ActDowShaDeg+ 52) +#define ActReqDatSeeDocGrp (ActDowShaDeg+ 53) +#define ActDowSeeDocGrp (ActDowShaDeg+ 54) -#define ActChgToAdmDocCrs (ActDowShaDeg+ 54) -#define ActAdmDocCrs (ActDowShaDeg+ 55) -#define ActReqRemFilDocCrs (ActDowShaDeg+ 56) -#define ActRemFilDocCrs (ActDowShaDeg+ 57) -#define ActRemFolDocCrs (ActDowShaDeg+ 58) -#define ActCopDocCrs (ActDowShaDeg+ 59) -#define ActPasDocCrs (ActDowShaDeg+ 60) -#define ActRemTreDocCrs (ActDowShaDeg+ 61) -#define ActFrmCreDocCrs (ActDowShaDeg+ 62) -#define ActCreFolDocCrs (ActDowShaDeg+ 63) -#define ActCreLnkDocCrs (ActDowShaDeg+ 64) -#define ActRenFolDocCrs (ActDowShaDeg+ 65) -#define ActRcvFilDocCrsDZ (ActDowShaDeg+ 66) -#define ActRcvFilDocCrsCla (ActDowShaDeg+ 67) -#define ActExpAdmDocCrs (ActDowShaDeg+ 68) -#define ActConAdmDocCrs (ActDowShaDeg+ 69) -#define ActZIPAdmDocCrs (ActDowShaDeg+ 70) -#define ActShoDocCrs (ActDowShaDeg+ 71) -#define ActHidDocCrs (ActDowShaDeg+ 72) -#define ActReqDatAdmDocCrs (ActDowShaDeg+ 73) -#define ActChgDatAdmDocCrs (ActDowShaDeg+ 74) -#define ActDowAdmDocCrs (ActDowShaDeg+ 75) +#define ActChgToAdmDocCrs (ActDowShaDeg+ 55) +#define ActAdmDocCrs (ActDowShaDeg+ 56) +#define ActReqRemFilDocCrs (ActDowShaDeg+ 57) +#define ActRemFilDocCrs (ActDowShaDeg+ 58) +#define ActRemFolDocCrs (ActDowShaDeg+ 59) +#define ActCopDocCrs (ActDowShaDeg+ 60) +#define ActPasDocCrs (ActDowShaDeg+ 61) +#define ActRemTreDocCrs (ActDowShaDeg+ 62) +#define ActFrmCreDocCrs (ActDowShaDeg+ 63) +#define ActCreFolDocCrs (ActDowShaDeg+ 64) +#define ActCreLnkDocCrs (ActDowShaDeg+ 65) +#define ActRenFolDocCrs (ActDowShaDeg+ 66) +#define ActRcvFilDocCrsDZ (ActDowShaDeg+ 67) +#define ActRcvFilDocCrsCla (ActDowShaDeg+ 68) +#define ActExpAdmDocCrs (ActDowShaDeg+ 69) +#define ActConAdmDocCrs (ActDowShaDeg+ 70) +#define ActZIPAdmDocCrs (ActDowShaDeg+ 71) +#define ActShoDocCrs (ActDowShaDeg+ 72) +#define ActHidDocCrs (ActDowShaDeg+ 73) +#define ActReqDatAdmDocCrs (ActDowShaDeg+ 74) +#define ActChgDatAdmDocCrs (ActDowShaDeg+ 75) +#define ActDowAdmDocCrs (ActDowShaDeg+ 76) -#define ActAdmDocGrp (ActDowShaDeg+ 76) -#define ActReqRemFilDocGrp (ActDowShaDeg+ 77) -#define ActRemFilDocGrp (ActDowShaDeg+ 78) -#define ActRemFolDocGrp (ActDowShaDeg+ 79) -#define ActCopDocGrp (ActDowShaDeg+ 80) -#define ActPasDocGrp (ActDowShaDeg+ 81) -#define ActRemTreDocGrp (ActDowShaDeg+ 82) -#define ActFrmCreDocGrp (ActDowShaDeg+ 83) -#define ActCreFolDocGrp (ActDowShaDeg+ 84) -#define ActCreLnkDocGrp (ActDowShaDeg+ 85) -#define ActRenFolDocGrp (ActDowShaDeg+ 86) -#define ActRcvFilDocGrpDZ (ActDowShaDeg+ 87) -#define ActRcvFilDocGrpCla (ActDowShaDeg+ 88) -#define ActExpAdmDocGrp (ActDowShaDeg+ 89) -#define ActConAdmDocGrp (ActDowShaDeg+ 90) -#define ActZIPAdmDocGrp (ActDowShaDeg+ 91) -#define ActShoDocGrp (ActDowShaDeg+ 92) -#define ActHidDocGrp (ActDowShaDeg+ 93) -#define ActReqDatAdmDocGrp (ActDowShaDeg+ 94) -#define ActChgDatAdmDocGrp (ActDowShaDeg+ 95) -#define ActDowAdmDocGrp (ActDowShaDeg+ 96) +#define ActAdmDocGrp (ActDowShaDeg+ 77) +#define ActReqRemFilDocGrp (ActDowShaDeg+ 78) +#define ActRemFilDocGrp (ActDowShaDeg+ 79) +#define ActRemFolDocGrp (ActDowShaDeg+ 80) +#define ActCopDocGrp (ActDowShaDeg+ 81) +#define ActPasDocGrp (ActDowShaDeg+ 82) +#define ActRemTreDocGrp (ActDowShaDeg+ 83) +#define ActFrmCreDocGrp (ActDowShaDeg+ 84) +#define ActCreFolDocGrp (ActDowShaDeg+ 85) +#define ActCreLnkDocGrp (ActDowShaDeg+ 86) +#define ActRenFolDocGrp (ActDowShaDeg+ 87) +#define ActRcvFilDocGrpDZ (ActDowShaDeg+ 88) +#define ActRcvFilDocGrpCla (ActDowShaDeg+ 89) +#define ActExpAdmDocGrp (ActDowShaDeg+ 90) +#define ActConAdmDocGrp (ActDowShaDeg+ 91) +#define ActZIPAdmDocGrp (ActDowShaDeg+ 92) +#define ActShoDocGrp (ActDowShaDeg+ 93) +#define ActHidDocGrp (ActDowShaDeg+ 94) +#define ActReqDatAdmDocGrp (ActDowShaDeg+ 95) +#define ActChgDatAdmDocGrp (ActDowShaDeg+ 96) +#define ActDowAdmDocGrp (ActDowShaDeg+ 97) -#define ActChgToAdmTch (ActDowShaDeg+ 97) +#define ActChgToAdmTch (ActDowShaDeg+ 98) -#define ActAdmTchCrs (ActDowShaDeg+ 98) -#define ActReqRemFilTchCrs (ActDowShaDeg+ 99) -#define ActRemFilTchCrs (ActDowShaDeg+100) -#define ActRemFolTchCrs (ActDowShaDeg+101) -#define ActCopTchCrs (ActDowShaDeg+102) -#define ActPasTchCrs (ActDowShaDeg+103) -#define ActRemTreTchCrs (ActDowShaDeg+104) -#define ActFrmCreTchCrs (ActDowShaDeg+105) -#define ActCreFolTchCrs (ActDowShaDeg+106) -#define ActCreLnkTchCrs (ActDowShaDeg+107) -#define ActRenFolTchCrs (ActDowShaDeg+108) -#define ActRcvFilTchCrsDZ (ActDowShaDeg+109) -#define ActRcvFilTchCrsCla (ActDowShaDeg+110) -#define ActExpTchCrs (ActDowShaDeg+111) -#define ActConTchCrs (ActDowShaDeg+112) -#define ActZIPTchCrs (ActDowShaDeg+113) -#define ActReqDatTchCrs (ActDowShaDeg+114) -#define ActChgDatTchCrs (ActDowShaDeg+115) -#define ActDowTchCrs (ActDowShaDeg+116) +#define ActAdmTchCrs (ActDowShaDeg+ 99) +#define ActReqRemFilTchCrs (ActDowShaDeg+100) +#define ActRemFilTchCrs (ActDowShaDeg+101) +#define ActRemFolTchCrs (ActDowShaDeg+102) +#define ActCopTchCrs (ActDowShaDeg+103) +#define ActPasTchCrs (ActDowShaDeg+104) +#define ActRemTreTchCrs (ActDowShaDeg+105) +#define ActFrmCreTchCrs (ActDowShaDeg+106) +#define ActCreFolTchCrs (ActDowShaDeg+107) +#define ActCreLnkTchCrs (ActDowShaDeg+108) +#define ActRenFolTchCrs (ActDowShaDeg+109) +#define ActRcvFilTchCrsDZ (ActDowShaDeg+110) +#define ActRcvFilTchCrsCla (ActDowShaDeg+111) +#define ActExpTchCrs (ActDowShaDeg+112) +#define ActConTchCrs (ActDowShaDeg+113) +#define ActZIPTchCrs (ActDowShaDeg+114) +#define ActReqDatTchCrs (ActDowShaDeg+115) +#define ActChgDatTchCrs (ActDowShaDeg+116) +#define ActDowTchCrs (ActDowShaDeg+117) -#define ActAdmTchGrp (ActDowShaDeg+117) -#define ActReqRemFilTchGrp (ActDowShaDeg+118) -#define ActRemFilTchGrp (ActDowShaDeg+119) -#define ActRemFolTchGrp (ActDowShaDeg+120) -#define ActCopTchGrp (ActDowShaDeg+121) -#define ActPasTchGrp (ActDowShaDeg+122) -#define ActRemTreTchGrp (ActDowShaDeg+123) -#define ActFrmCreTchGrp (ActDowShaDeg+124) -#define ActCreFolTchGrp (ActDowShaDeg+125) -#define ActCreLnkTchGrp (ActDowShaDeg+126) -#define ActRenFolTchGrp (ActDowShaDeg+127) -#define ActRcvFilTchGrpDZ (ActDowShaDeg+128) -#define ActRcvFilTchGrpCla (ActDowShaDeg+129) -#define ActExpTchGrp (ActDowShaDeg+130) -#define ActConTchGrp (ActDowShaDeg+131) -#define ActZIPTchGrp (ActDowShaDeg+132) -#define ActReqDatTchGrp (ActDowShaDeg+133) -#define ActChgDatTchGrp (ActDowShaDeg+134) -#define ActDowTchGrp (ActDowShaDeg+135) +#define ActAdmTchGrp (ActDowShaDeg+118) +#define ActReqRemFilTchGrp (ActDowShaDeg+119) +#define ActRemFilTchGrp (ActDowShaDeg+120) +#define ActRemFolTchGrp (ActDowShaDeg+121) +#define ActCopTchGrp (ActDowShaDeg+122) +#define ActPasTchGrp (ActDowShaDeg+123) +#define ActRemTreTchGrp (ActDowShaDeg+124) +#define ActFrmCreTchGrp (ActDowShaDeg+125) +#define ActCreFolTchGrp (ActDowShaDeg+126) +#define ActCreLnkTchGrp (ActDowShaDeg+127) +#define ActRenFolTchGrp (ActDowShaDeg+128) +#define ActRcvFilTchGrpDZ (ActDowShaDeg+129) +#define ActRcvFilTchGrpCla (ActDowShaDeg+130) +#define ActExpTchGrp (ActDowShaDeg+131) +#define ActConTchGrp (ActDowShaDeg+132) +#define ActZIPTchGrp (ActDowShaDeg+133) +#define ActReqDatTchGrp (ActDowShaDeg+134) +#define ActChgDatTchGrp (ActDowShaDeg+135) +#define ActDowTchGrp (ActDowShaDeg+136) -#define ActChgToAdmSha (ActDowShaDeg+136) +#define ActChgToAdmSha (ActDowShaDeg+137) -#define ActAdmShaCrs (ActDowShaDeg+137) -#define ActReqRemFilShaCrs (ActDowShaDeg+138) -#define ActRemFilShaCrs (ActDowShaDeg+139) -#define ActRemFolShaCrs (ActDowShaDeg+140) -#define ActCopShaCrs (ActDowShaDeg+141) -#define ActPasShaCrs (ActDowShaDeg+142) -#define ActRemTreShaCrs (ActDowShaDeg+143) -#define ActFrmCreShaCrs (ActDowShaDeg+144) -#define ActCreFolShaCrs (ActDowShaDeg+145) -#define ActCreLnkShaCrs (ActDowShaDeg+146) -#define ActRenFolShaCrs (ActDowShaDeg+147) -#define ActRcvFilShaCrsDZ (ActDowShaDeg+148) -#define ActRcvFilShaCrsCla (ActDowShaDeg+149) -#define ActExpShaCrs (ActDowShaDeg+150) -#define ActConShaCrs (ActDowShaDeg+151) -#define ActZIPShaCrs (ActDowShaDeg+152) -#define ActReqDatShaCrs (ActDowShaDeg+153) -#define ActChgDatShaCrs (ActDowShaDeg+154) -#define ActDowShaCrs (ActDowShaDeg+155) +#define ActAdmShaCrs (ActDowShaDeg+138) +#define ActReqRemFilShaCrs (ActDowShaDeg+139) +#define ActRemFilShaCrs (ActDowShaDeg+140) +#define ActRemFolShaCrs (ActDowShaDeg+141) +#define ActCopShaCrs (ActDowShaDeg+142) +#define ActPasShaCrs (ActDowShaDeg+143) +#define ActRemTreShaCrs (ActDowShaDeg+144) +#define ActFrmCreShaCrs (ActDowShaDeg+145) +#define ActCreFolShaCrs (ActDowShaDeg+146) +#define ActCreLnkShaCrs (ActDowShaDeg+147) +#define ActRenFolShaCrs (ActDowShaDeg+148) +#define ActRcvFilShaCrsDZ (ActDowShaDeg+149) +#define ActRcvFilShaCrsCla (ActDowShaDeg+150) +#define ActExpShaCrs (ActDowShaDeg+151) +#define ActConShaCrs (ActDowShaDeg+152) +#define ActZIPShaCrs (ActDowShaDeg+153) +#define ActReqDatShaCrs (ActDowShaDeg+154) +#define ActChgDatShaCrs (ActDowShaDeg+155) +#define ActDowShaCrs (ActDowShaDeg+156) -#define ActAdmShaGrp (ActDowShaDeg+156) -#define ActReqRemFilShaGrp (ActDowShaDeg+157) -#define ActRemFilShaGrp (ActDowShaDeg+158) -#define ActRemFolShaGrp (ActDowShaDeg+159) -#define ActCopShaGrp (ActDowShaDeg+160) -#define ActPasShaGrp (ActDowShaDeg+161) -#define ActRemTreShaGrp (ActDowShaDeg+162) -#define ActFrmCreShaGrp (ActDowShaDeg+163) -#define ActCreFolShaGrp (ActDowShaDeg+164) -#define ActCreLnkShaGrp (ActDowShaDeg+165) -#define ActRenFolShaGrp (ActDowShaDeg+166) -#define ActRcvFilShaGrpDZ (ActDowShaDeg+167) -#define ActRcvFilShaGrpCla (ActDowShaDeg+168) -#define ActExpShaGrp (ActDowShaDeg+169) -#define ActConShaGrp (ActDowShaDeg+170) -#define ActZIPShaGrp (ActDowShaDeg+171) -#define ActReqDatShaGrp (ActDowShaDeg+172) -#define ActChgDatShaGrp (ActDowShaDeg+173) -#define ActDowShaGrp (ActDowShaDeg+174) +#define ActAdmShaGrp (ActDowShaDeg+157) +#define ActReqRemFilShaGrp (ActDowShaDeg+158) +#define ActRemFilShaGrp (ActDowShaDeg+159) +#define ActRemFolShaGrp (ActDowShaDeg+160) +#define ActCopShaGrp (ActDowShaDeg+161) +#define ActPasShaGrp (ActDowShaDeg+162) +#define ActRemTreShaGrp (ActDowShaDeg+163) +#define ActFrmCreShaGrp (ActDowShaDeg+164) +#define ActCreFolShaGrp (ActDowShaDeg+165) +#define ActCreLnkShaGrp (ActDowShaDeg+166) +#define ActRenFolShaGrp (ActDowShaDeg+167) +#define ActRcvFilShaGrpDZ (ActDowShaDeg+168) +#define ActRcvFilShaGrpCla (ActDowShaDeg+169) +#define ActExpShaGrp (ActDowShaDeg+170) +#define ActConShaGrp (ActDowShaDeg+171) +#define ActZIPShaGrp (ActDowShaDeg+172) +#define ActReqDatShaGrp (ActDowShaDeg+173) +#define ActChgDatShaGrp (ActDowShaDeg+174) +#define ActDowShaGrp (ActDowShaDeg+175) -#define ActEdiBib (ActDowShaDeg+175) -#define ActEdiFAQ (ActDowShaDeg+176) -#define ActEdiCrsLnk (ActDowShaDeg+177) +#define ActEdiBib (ActDowShaDeg+176) +#define ActEdiFAQ (ActDowShaDeg+177) +#define ActEdiCrsLnk (ActDowShaDeg+178) -#define ActChgFrcReaCrsInf (ActDowShaDeg+178) -#define ActChgFrcReaTchGui (ActDowShaDeg+179) -#define ActChgFrcReaSylLec (ActDowShaDeg+180) -#define ActChgFrcReaSylPra (ActDowShaDeg+181) -#define ActChgFrcReaBib (ActDowShaDeg+182) -#define ActChgFrcReaFAQ (ActDowShaDeg+183) -#define ActChgFrcReaCrsLnk (ActDowShaDeg+184) +#define ActChgFrcReaCrsInf (ActDowShaDeg+179) +#define ActChgFrcReaTchGui (ActDowShaDeg+180) +#define ActChgFrcReaSylLec (ActDowShaDeg+181) +#define ActChgFrcReaSylPra (ActDowShaDeg+182) +#define ActChgFrcReaBib (ActDowShaDeg+183) +#define ActChgFrcReaFAQ (ActDowShaDeg+184) +#define ActChgFrcReaCrsLnk (ActDowShaDeg+185) -#define ActChgHavReaCrsInf (ActDowShaDeg+185) -#define ActChgHavReaTchGui (ActDowShaDeg+186) -#define ActChgHavReaSylLec (ActDowShaDeg+187) -#define ActChgHavReaSylPra (ActDowShaDeg+188) -#define ActChgHavReaBib (ActDowShaDeg+189) -#define ActChgHavReaFAQ (ActDowShaDeg+190) -#define ActChgHavReaCrsLnk (ActDowShaDeg+191) +#define ActChgHavReaCrsInf (ActDowShaDeg+186) +#define ActChgHavReaTchGui (ActDowShaDeg+187) +#define ActChgHavReaSylLec (ActDowShaDeg+188) +#define ActChgHavReaSylPra (ActDowShaDeg+189) +#define ActChgHavReaBib (ActDowShaDeg+190) +#define ActChgHavReaFAQ (ActDowShaDeg+191) +#define ActChgHavReaCrsLnk (ActDowShaDeg+192) -#define ActSelInfSrcCrsInf (ActDowShaDeg+192) -#define ActSelInfSrcTchGui (ActDowShaDeg+193) -#define ActSelInfSrcSylLec (ActDowShaDeg+194) -#define ActSelInfSrcSylPra (ActDowShaDeg+195) -#define ActSelInfSrcBib (ActDowShaDeg+196) -#define ActSelInfSrcFAQ (ActDowShaDeg+197) -#define ActSelInfSrcCrsLnk (ActDowShaDeg+198) -#define ActRcvURLCrsInf (ActDowShaDeg+199) -#define ActRcvURLTchGui (ActDowShaDeg+200) -#define ActRcvURLSylLec (ActDowShaDeg+201) -#define ActRcvURLSylPra (ActDowShaDeg+202) -#define ActRcvURLBib (ActDowShaDeg+203) -#define ActRcvURLFAQ (ActDowShaDeg+204) -#define ActRcvURLCrsLnk (ActDowShaDeg+205) -#define ActRcvPagCrsInf (ActDowShaDeg+206) -#define ActRcvPagTchGui (ActDowShaDeg+207) -#define ActRcvPagSylLec (ActDowShaDeg+208) -#define ActRcvPagSylPra (ActDowShaDeg+209) -#define ActRcvPagBib (ActDowShaDeg+210) -#define ActRcvPagFAQ (ActDowShaDeg+211) -#define ActRcvPagCrsLnk (ActDowShaDeg+212) -#define ActEditorCrsInf (ActDowShaDeg+213) -#define ActEditorTchGui (ActDowShaDeg+214) -#define ActEditorSylLec (ActDowShaDeg+215) -#define ActEditorSylPra (ActDowShaDeg+216) -#define ActEditorBib (ActDowShaDeg+217) -#define ActEditorFAQ (ActDowShaDeg+218) -#define ActEditorCrsLnk (ActDowShaDeg+219) -#define ActPlaTxtEdiCrsInf (ActDowShaDeg+220) -#define ActPlaTxtEdiTchGui (ActDowShaDeg+221) -#define ActPlaTxtEdiSylLec (ActDowShaDeg+222) -#define ActPlaTxtEdiSylPra (ActDowShaDeg+223) -#define ActPlaTxtEdiBib (ActDowShaDeg+224) -#define ActPlaTxtEdiFAQ (ActDowShaDeg+225) -#define ActPlaTxtEdiCrsLnk (ActDowShaDeg+226) -#define ActRchTxtEdiCrsInf (ActDowShaDeg+227) -#define ActRchTxtEdiTchGui (ActDowShaDeg+228) -#define ActRchTxtEdiSylLec (ActDowShaDeg+229) -#define ActRchTxtEdiSylPra (ActDowShaDeg+230) -#define ActRchTxtEdiBib (ActDowShaDeg+231) -#define ActRchTxtEdiFAQ (ActDowShaDeg+232) -#define ActRchTxtEdiCrsLnk (ActDowShaDeg+233) -#define ActRcvPlaTxtCrsInf (ActDowShaDeg+234) -#define ActRcvPlaTxtTchGui (ActDowShaDeg+235) -#define ActRcvPlaTxtSylLec (ActDowShaDeg+236) -#define ActRcvPlaTxtSylPra (ActDowShaDeg+237) -#define ActRcvPlaTxtBib (ActDowShaDeg+238) -#define ActRcvPlaTxtFAQ (ActDowShaDeg+239) -#define ActRcvPlaTxtCrsLnk (ActDowShaDeg+240) -#define ActRcvRchTxtCrsInf (ActDowShaDeg+241) -#define ActRcvRchTxtTchGui (ActDowShaDeg+242) -#define ActRcvRchTxtSylLec (ActDowShaDeg+243) -#define ActRcvRchTxtSylPra (ActDowShaDeg+244) -#define ActRcvRchTxtBib (ActDowShaDeg+245) -#define ActRcvRchTxtFAQ (ActDowShaDeg+246) -#define ActRcvRchTxtCrsLnk (ActDowShaDeg+247) +#define ActSelInfSrcCrsInf (ActDowShaDeg+193) +#define ActSelInfSrcTchGui (ActDowShaDeg+194) +#define ActSelInfSrcSylLec (ActDowShaDeg+195) +#define ActSelInfSrcSylPra (ActDowShaDeg+196) +#define ActSelInfSrcBib (ActDowShaDeg+197) +#define ActSelInfSrcFAQ (ActDowShaDeg+198) +#define ActSelInfSrcCrsLnk (ActDowShaDeg+199) +#define ActRcvURLCrsInf (ActDowShaDeg+200) +#define ActRcvURLTchGui (ActDowShaDeg+201) +#define ActRcvURLSylLec (ActDowShaDeg+202) +#define ActRcvURLSylPra (ActDowShaDeg+203) +#define ActRcvURLBib (ActDowShaDeg+204) +#define ActRcvURLFAQ (ActDowShaDeg+205) +#define ActRcvURLCrsLnk (ActDowShaDeg+206) +#define ActRcvPagCrsInf (ActDowShaDeg+207) +#define ActRcvPagTchGui (ActDowShaDeg+208) +#define ActRcvPagSylLec (ActDowShaDeg+209) +#define ActRcvPagSylPra (ActDowShaDeg+210) +#define ActRcvPagBib (ActDowShaDeg+211) +#define ActRcvPagFAQ (ActDowShaDeg+212) +#define ActRcvPagCrsLnk (ActDowShaDeg+213) +#define ActEditorCrsInf (ActDowShaDeg+214) +#define ActEditorTchGui (ActDowShaDeg+215) +#define ActEditorSylLec (ActDowShaDeg+216) +#define ActEditorSylPra (ActDowShaDeg+217) +#define ActEditorBib (ActDowShaDeg+218) +#define ActEditorFAQ (ActDowShaDeg+219) +#define ActEditorCrsLnk (ActDowShaDeg+220) +#define ActPlaTxtEdiCrsInf (ActDowShaDeg+221) +#define ActPlaTxtEdiTchGui (ActDowShaDeg+222) +#define ActPlaTxtEdiSylLec (ActDowShaDeg+223) +#define ActPlaTxtEdiSylPra (ActDowShaDeg+224) +#define ActPlaTxtEdiBib (ActDowShaDeg+225) +#define ActPlaTxtEdiFAQ (ActDowShaDeg+226) +#define ActPlaTxtEdiCrsLnk (ActDowShaDeg+227) +#define ActRchTxtEdiCrsInf (ActDowShaDeg+228) +#define ActRchTxtEdiTchGui (ActDowShaDeg+229) +#define ActRchTxtEdiSylLec (ActDowShaDeg+230) +#define ActRchTxtEdiSylPra (ActDowShaDeg+231) +#define ActRchTxtEdiBib (ActDowShaDeg+232) +#define ActRchTxtEdiFAQ (ActDowShaDeg+233) +#define ActRchTxtEdiCrsLnk (ActDowShaDeg+234) +#define ActRcvPlaTxtCrsInf (ActDowShaDeg+235) +#define ActRcvPlaTxtTchGui (ActDowShaDeg+236) +#define ActRcvPlaTxtSylLec (ActDowShaDeg+237) +#define ActRcvPlaTxtSylPra (ActDowShaDeg+238) +#define ActRcvPlaTxtBib (ActDowShaDeg+239) +#define ActRcvPlaTxtFAQ (ActDowShaDeg+240) +#define ActRcvPlaTxtCrsLnk (ActDowShaDeg+241) +#define ActRcvRchTxtCrsInf (ActDowShaDeg+242) +#define ActRcvRchTxtTchGui (ActDowShaDeg+243) +#define ActRcvRchTxtSylLec (ActDowShaDeg+244) +#define ActRcvRchTxtSylPra (ActDowShaDeg+245) +#define ActRcvRchTxtBib (ActDowShaDeg+246) +#define ActRcvRchTxtFAQ (ActDowShaDeg+247) +#define ActRcvRchTxtCrsLnk (ActDowShaDeg+248) /*****************************************************************************/ /***************************** Assessment tab ********************************/ diff --git a/swad_changelog.h b/swad_changelog.h index ca98a0b61..d1eb2b7b4 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -150,13 +150,17 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.39 (2016-10-23)" +#define Log_PLATFORM_VERSION "SWAD 16.40 (2016-10-23)" #define CSS_FILE "swad16.32.1.css" #define JS_FILE "swad15.238.1.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1 /* + Version 16.40: Oct 23, 2016 New form in degree configuration to change full name. (205427 lines) + 1 change necessary in database: +INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1600','es','N','Cambiar nombre completo asig.'); + Version 16.39: Oct 23, 2016 New form in degree configuration to change WWW. (205404 lines) 2 changes necessary in database: UPDATE actions SET Txt='Cambiar web de titulación' WHERE ActCod='554' AND Language='es'; diff --git a/swad_course.c b/swad_course.c index 1b1b31c69..898c26ab3 100644 --- a/swad_course.c +++ b/swad_course.c @@ -103,7 +103,9 @@ static void Crs_UpdateCrsDegDB (long CrsCod,long DegCod); static void Crs_UpdateCrsYear (struct Course *Crs,unsigned NewYear); static void Crs_EmptyCourseCompletely (long CrsCod); -static bool Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFullName); + +static void Crs_GetCrsCodFromForm (void); +static void Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFullName); static void Crs_PutButtonToGoToCrs (struct Course *Crs); static void Crs_PutButtonToRegisterInCrs (struct Course *Crs); @@ -250,16 +252,31 @@ static void Crs_Configuration (bool PrintView) /***** Course full name *****/ fprintf (Gbl.F.Out,"" - "" - "%s:" - "" - "" - "%s" - "" - "", - The_ClassForm[Gbl.Prefs.Theme], - Txt_Course, - Gbl.CurrentCrs.Crs.FullName); + "" + "%s:" + "" + "", + The_ClassForm[Gbl.Prefs.Theme], + Txt_Course); + if (!PrintView && + Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM) + // Only degree admins, centre admins, institution admins and system admins can edit course full name + { + /* Form to change course full name */ + Act_FormStart (ActRenCrsFulCfg); + fprintf (Gbl.F.Out,"", + Crs_MAX_LENGTH_COURSE_FULL_NAME, + Gbl.CurrentCrs.Crs.FullName, + Gbl.Form.Id); + Act_FormEnd (); + } + else // I can not edit course full name + fprintf (Gbl.F.Out,"%s",Gbl.CurrentCrs.Crs.FullName); + fprintf (Gbl.F.Out,"" + ""); /***** Course short name *****/ fprintf (Gbl.F.Out,"" @@ -2622,13 +2639,8 @@ void Crs_UpdateInstitutionalCrsCod (struct Course *Crs,const char *NewInstitutio void Crs_RenameCourseShort (void) { - struct Course *Crs; - - Crs = &Gbl.Degs.EditingCrs; - - if (Crs_RenameCourse (Crs,Cns_SHORT_NAME)) - if (Crs->CrsCod == Gbl.CurrentCrs.Crs.CrsCod) // If renaming current course... - strcpy (Gbl.CurrentCrs.Crs.ShortName,Crs->ShortName); // Overwrite current course name in order to show correctly in page title and heading + Crs_GetCrsCodFromForm (); + Crs_RenameCourse (&Gbl.Degs.EditingCrs,Cns_SHORT_NAME); } /*****************************************************************************/ @@ -2637,22 +2649,31 @@ void Crs_RenameCourseShort (void) void Crs_RenameCourseFull (void) { - struct Course *Crs; + Crs_GetCrsCodFromForm (); + Crs_RenameCourse (&Gbl.Degs.EditingCrs,Cns_FULL_NAME); + } - Crs = &Gbl.Degs.EditingCrs; +void Crs_RenameCourseFullInConfig (void) + { + Crs_RenameCourse (&Gbl.CurrentCrs.Crs,Cns_FULL_NAME); + } - if (Crs_RenameCourse (Crs,Cns_FULL_NAME)) - if (Crs->CrsCod == Gbl.CurrentCrs.Crs.CrsCod) // If renaming current course... - strcpy (Gbl.CurrentCrs.Crs.FullName,Crs->FullName); // Overwrite current course name in order to show correctly in page title and heading +/*****************************************************************************/ +/************************ Get the code of the course *************************/ +/*****************************************************************************/ + +static void Crs_GetCrsCodFromForm (void) + { + /***** Get the code of the course *****/ + if ((Gbl.Degs.EditingCrs.CrsCod = Crs_GetParamOtherCrsCod ()) < 0) + Lay_ShowErrorAndExit ("Code of course is missing."); } /*****************************************************************************/ /************************ Change the name of a course ************************/ /*****************************************************************************/ -// Returns true if the course is renamed -// Returns false if the course is not renamed -static bool Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFullName) +static void Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFullName) { extern const char *Txt_You_can_not_leave_the_name_of_the_course_X_empty; extern const char *Txt_The_course_X_already_exists; @@ -2665,7 +2686,6 @@ static bool Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFu unsigned MaxLength = 0; // Initialized to avoid warning char *CurrentCrsName = NULL; // Initialized to avoid warning char NewCrsName[Crs_MAX_LENGTH_COURSE_FULL_NAME+1]; - bool CourseHasBeenRenamed = false; switch (ShortOrFullName) { @@ -2684,10 +2704,6 @@ static bool Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFu } /***** Get parameters from form *****/ - /* Get the code of the course */ - if ((Crs->CrsCod = Crs_GetParamOtherCrsCod ()) == -1L) - Lay_ShowErrorAndExit ("Code of course is missing."); - /* Get the new name for the course */ Par_GetParToText (ParamName,NewCrsName,MaxLength); @@ -2730,8 +2746,6 @@ static bool Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFu /* Change current course name in order to display it properly */ strncpy (CurrentCrsName,NewCrsName,MaxLength); CurrentCrsName[MaxLength] = '\0'; - - CourseHasBeenRenamed = true; } } else // The same name @@ -2744,8 +2758,6 @@ static bool Crs_RenameCourse (struct Course *Crs,Cns_ShortOrFullName_t ShortOrFu Gbl.Error = true; strcpy (Gbl.Message,Txt_You_dont_have_permission_to_edit_this_course); } - - return CourseHasBeenRenamed; } /*****************************************************************************/ diff --git a/swad_course.h b/swad_course.h index 7f7735b48..06a9b106d 100644 --- a/swad_course.h +++ b/swad_course.h @@ -125,6 +125,7 @@ void Crs_ChangeCrsYear (void); void Crs_UpdateInstitutionalCrsCod (struct Course *Crs,const char *NewInstitutionalCrsCod); void Crs_RenameCourseShort (void); void Crs_RenameCourseFull (void); +void Crs_RenameCourseFullInConfig (void); void Crs_ChangeCrsStatus (void); void Crs_ContEditAfterChgCrs (void);