diff --git a/swad_ID.c b/swad_ID.c index 9c1e9b5b3..0fb4a9356 100644 --- a/swad_ID.c +++ b/swad_ID.c @@ -403,8 +403,7 @@ void ID_ShowFormOthIDs (void) /***** Form to change IDs *****/ /* Show user's record */ - fprintf (Gbl.F.Out,"
" - "" + fprintf (Gbl.F.Out,"
" "" "
"); Rec_ShowCommonRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); @@ -415,8 +414,7 @@ void ID_ShowFormOthIDs (void) ID_ShowFormChangeUsrID (&Gbl.Usrs.Other.UsrDat, (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod)); // It's me? - fprintf (Gbl.F.Out,"
" - "
"); + fprintf (Gbl.F.Out,""); } else Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); diff --git a/swad_action.c b/swad_action.c index cae17551e..c866fbd9e 100644 --- a/swad_action.c +++ b/swad_action.c @@ -672,7 +672,6 @@ Users: 544. ActLstAdm List main data of degree administrators 545. ActReqSignUp Apply for my enrollment 546. ActSeeSignUpReq Show pending requests for inscription in the current course - 547. ActReqMdfOneUsr Request the enrollment/removing of a user 548. ActReqMdfSevUsr Request the enrollment/removing of several students to / from current course 549. ActLstCon List connected users @@ -738,8 +737,9 @@ Users: 605. ActSignUp Apply for my enrollment 606. ActReqRejSignUp Ask if reject the enrollment of a user in a course 607. ActRejSignUp Reject the enrollment of a user in a course - 608. ActReqMdfUsr Register a user in this course + 547. ActReqMdfOneUsr Request the enrollment/removing of a user + 608. ActReqMdfUsr Register a user in this course 609. ActReqUsrPho Show form to send the photo of another user 610. ActDetUsrPho Receive other user's photo and detect faces on it 611. ActUpdUsrPho Update other user's photo @@ -1144,7 +1144,6 @@ const struct Act_Menu Act_Menu[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = {ActReqSignUp ,false}, {ActSeeSignUpReq ,false}, - {ActReqMdfOneUsr ,false}, {ActReqMdfSevUsr ,true }, {ActLstCon ,true }, @@ -1846,9 +1845,8 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActLstAdm */{ 587, 5,TabUsr,ActLstAdm ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ListDataAdms ,"listtch" }, /* ActReqSignUp */{1054, 6,TabUsr,ActReqSignUp ,0x000,0x006,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqSignUpInCrs ,"enrollmentrequest" }, /* ActSeeSignUpReq */{1057, 7,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ShowEnrollmentRequests ,"enrollmentrequest" }, - /* ActReqMdfOneUsr */{ 177, 8,TabUsr,ActReqMdfOneUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRegRemUsr ,"config" }, - /* ActReqMdfSevUsr */{ 797, 9,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ShowFormRegRemSeveralUsrs ,"configs" }, - /* ActLstCon */{ 995,10,TabUsr,ActLstCon ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowConnectedUsrs ,"userplugged" }, + /* ActReqMdfSevUsr */{ 797, 8,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAdminUsrs ,"configs" }, + /* ActLstCon */{ 995, 9,TabUsr,ActLstCon ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowConnectedUsrs ,"userplugged" }, // Actions not in menu: /* ActChgGrp */{ 118,-1,TabUsr,ActReqSelGrp ,0x118,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Grp_ChangeMyGrpsAndShowChanges ,NULL}, @@ -1919,33 +1917,34 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActReqRejSignUp */{1058,-1,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRejectSignUp ,NULL}, /* ActRejSignUp */{1059,-1,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RejectSignUp ,NULL}, - /* ActReqMdfUsr */{ 161,-1,TabUsr,ActReqMdfOneUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherUsr ,NULL}, + /* ActReqMdfOneUsr */{ 177,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRegRemUsr ,NULL}, + /* ActReqMdfUsr */{ 161,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherUsr ,NULL}, - /* ActReqUsrPho */{ 375,-1,TabUsr,ActReqMdfOneUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_SendPhotoUsr ,NULL}, - /* ActDetUsrPho */{ 695,-1,TabUsr,ActReqMdfOneUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecUsrPhotoDetFaces ,NULL}, - /* ActUpdUsrPho */{ 374,-1,TabUsr,ActReqMdfOneUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateUsrPhoto1 ,Pho_UpdateUsrPhoto2 ,NULL}, - /* ActRemUsrPho */{ 429,-1,TabUsr,ActReqMdfOneUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL}, + /* ActReqUsrPho */{ 375,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_SendPhotoUsr ,NULL}, + /* ActDetUsrPho */{ 695,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecUsrPhotoDetFaces ,NULL}, + /* ActUpdUsrPho */{ 374,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateUsrPhoto1 ,Pho_UpdateUsrPhoto2 ,NULL}, + /* ActRemUsrPho */{ 429,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL}, - /* ActCreOthUsrDat */{ 440,-1,TabUsr,ActReqMdfOneUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_CreatAndShowNewUsrRecordAndRegInCrs,NULL}, - /* ActUpdOthUsrDat */{ 439,-1,TabUsr,ActReqMdfOneUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifAndShowUsrCardAndRegInCrsAndGrps,NULL}, + /* ActCreOthUsrDat */{ 440,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_CreatAndShowNewUsrRecordAndRegInCrs,NULL}, + /* ActUpdOthUsrDat */{ 439,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifAndShowUsrCardAndRegInCrsAndGrps,NULL}, - /* ActReqAccEnrCrs */{ 592,-1,TabUsr,ActReqMdfOneUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL}, - /* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfOneUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL}, - /* ActRemMeCrs */{ 559,-1,TabUsr,ActReqMdfOneUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL}, + /* ActReqAccEnrCrs */{ 592,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL}, + /* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL}, + /* ActRemMeCrs */{ 559,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRemMeFromCrs ,NULL}, - /* ActNewAdm */{ 586,-1,TabUsr,ActReqMdfOneUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL}, - /* ActRemAdm */{ 584,-1,TabUsr,ActReqMdfOneUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdm ,NULL}, + /* ActNewAdm */{ 586,-1,TabUsr,ActReqMdfSevUsr ,0x100,0x100,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AddAdmToDeg ,NULL}, + /* ActRemAdm */{ 584,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAdm ,NULL}, /* ActRcvFrmMdfUsrCrs*/{ 799,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x100,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReceiveFormUsrsCrs ,NULL}, - /* ActFrmIDsOthUsr */{1239,-1,TabUsr,ActReqMdfOneUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_ShowFormOthIDs ,NULL}, - /* ActRemIDOth */{1240,-1,TabUsr,ActReqMdfOneUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_RemoveOtherUsrID ,NULL}, - /* ActNewIDOth */{1241,-1,TabUsr,ActReqMdfOneUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_NewOtherUsrID ,NULL}, - /* ActFrmPwdOthUsr */{ 598,-1,TabUsr,ActReqMdfOneUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pwd_ShowFormOthPwd ,NULL}, - /* ActChgPwdOthUsr */{ 82,-1,TabUsr,ActReqMdfOneUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pwd_UpdateOtherPwd1 ,Pwd_UpdateOtherPwd2 ,NULL}, + /* ActFrmIDsOthUsr */{1239,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_ShowFormOthIDs ,NULL}, + /* ActRemIDOth */{1240,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_RemoveOtherUsrID ,NULL}, + /* ActNewIDOth */{1241,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ID_NewOtherUsrID ,NULL}, + /* ActFrmPwdOthUsr */{ 598,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pwd_ShowFormOthPwd ,NULL}, + /* ActChgPwdOthUsr */{ 82,-1,TabUsr,ActReqMdfSevUsr ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pwd_UpdateOtherPwd1 ,Pwd_UpdateOtherPwd2 ,NULL}, - /* ActRemUsrCrs */{ 58,-1,TabUsr,ActReqMdfOneUsr ,0x1F8,0x1E0,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemUsrFromCrs ,NULL}, - /* ActRemUsrGbl */{ 62,-1,TabUsr,ActReqMdfOneUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_RemUsrGbl ,NULL}, + /* ActRemUsrCrs */{ 58,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x1E0,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemUsrFromCrs ,NULL}, + /* ActRemUsrGbl */{ 62,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Acc_RemUsrGbl ,NULL}, /* ActReqRemAllStdCrs*/{ 88,-1,TabUsr,ActReqMdfSevUsr ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskRemAllStdsThisCrs ,NULL}, /* ActRemAllStdCrs */{ 87,-1,TabUsr,ActReqMdfSevUsr ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RemAllStdsThisCrs ,NULL}, diff --git a/swad_action.h b/swad_action.h index 4b691b50c..e93cc6645 100644 --- a/swad_action.h +++ b/swad_action.h @@ -719,73 +719,74 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica #define ActLstAdm (ActChgNumRowFooGrp+ 6) #define ActReqSignUp (ActChgNumRowFooGrp+ 7) #define ActSeeSignUpReq (ActChgNumRowFooGrp+ 8) -#define ActReqMdfOneUsr (ActChgNumRowFooGrp+ 9) -#define ActReqMdfSevUsr (ActChgNumRowFooGrp+10) -#define ActLstCon (ActChgNumRowFooGrp+11) +#define ActReqMdfSevUsr (ActChgNumRowFooGrp+ 9) +#define ActLstCon (ActChgNumRowFooGrp+10) // Secondary actions -#define ActChgGrp (ActChgNumRowFooGrp+12) -#define ActReqEdiGrp (ActChgNumRowFooGrp+13) -#define ActNewGrpTyp (ActChgNumRowFooGrp+14) -#define ActReqRemGrpTyp (ActChgNumRowFooGrp+15) -#define ActRemGrpTyp (ActChgNumRowFooGrp+16) -#define ActRenGrpTyp (ActChgNumRowFooGrp+17) -#define ActChgMdtGrpTyp (ActChgNumRowFooGrp+18) -#define ActChgMulGrpTyp (ActChgNumRowFooGrp+19) -#define ActChgTimGrpTyp (ActChgNumRowFooGrp+20) -#define ActNewGrp (ActChgNumRowFooGrp+21) -#define ActReqRemGrp (ActChgNumRowFooGrp+22) -#define ActRemGrp (ActChgNumRowFooGrp+23) -#define ActOpeGrp (ActChgNumRowFooGrp+24) -#define ActCloGrp (ActChgNumRowFooGrp+25) -#define ActEnaFilZonGrp (ActChgNumRowFooGrp+26) -#define ActDisFilZonGrp (ActChgNumRowFooGrp+27) -#define ActChgGrpTyp (ActChgNumRowFooGrp+28) -#define ActRenGrp (ActChgNumRowFooGrp+29) -#define ActChgMaxStdGrp (ActChgNumRowFooGrp+30) +#define ActChgGrp (ActChgNumRowFooGrp+11) +#define ActReqEdiGrp (ActChgNumRowFooGrp+12) +#define ActNewGrpTyp (ActChgNumRowFooGrp+13) +#define ActReqRemGrpTyp (ActChgNumRowFooGrp+14) +#define ActRemGrpTyp (ActChgNumRowFooGrp+15) +#define ActRenGrpTyp (ActChgNumRowFooGrp+16) +#define ActChgMdtGrpTyp (ActChgNumRowFooGrp+17) +#define ActChgMulGrpTyp (ActChgNumRowFooGrp+18) +#define ActChgTimGrpTyp (ActChgNumRowFooGrp+19) +#define ActNewGrp (ActChgNumRowFooGrp+20) +#define ActReqRemGrp (ActChgNumRowFooGrp+21) +#define ActRemGrp (ActChgNumRowFooGrp+22) +#define ActOpeGrp (ActChgNumRowFooGrp+23) +#define ActCloGrp (ActChgNumRowFooGrp+24) +#define ActEnaFilZonGrp (ActChgNumRowFooGrp+25) +#define ActDisFilZonGrp (ActChgNumRowFooGrp+26) +#define ActChgGrpTyp (ActChgNumRowFooGrp+27) +#define ActRenGrp (ActChgNumRowFooGrp+28) +#define ActChgMaxStdGrp (ActChgNumRowFooGrp+29) -#define ActGetExtLstStd (ActChgNumRowFooGrp+31) -#define ActPrnInvPho (ActChgNumRowFooGrp+32) -#define ActPrnStdPho (ActChgNumRowFooGrp+33) -#define ActPrnTchPho (ActChgNumRowFooGrp+34) -#define ActLstInvAll (ActChgNumRowFooGrp+35) -#define ActLstStdAll (ActChgNumRowFooGrp+36) -#define ActLstTchAll (ActChgNumRowFooGrp+37) -#define ActSeeRecOneStd (ActChgNumRowFooGrp+38) -#define ActSeeRecOneTch (ActChgNumRowFooGrp+39) -#define ActSeeRecSevInv (ActChgNumRowFooGrp+40) -#define ActSeeRecSevStd (ActChgNumRowFooGrp+41) -#define ActSeeRecSevTch (ActChgNumRowFooGrp+42) -#define ActPrnRecSevInv (ActChgNumRowFooGrp+43) -#define ActPrnRecSevStd (ActChgNumRowFooGrp+44) -#define ActPrnRecSevTch (ActChgNumRowFooGrp+45) -#define ActRcvRecOthUsr (ActChgNumRowFooGrp+46) -#define ActEdiRecFie (ActChgNumRowFooGrp+47) -#define ActNewFie (ActChgNumRowFooGrp+48) -#define ActReqRemFie (ActChgNumRowFooGrp+49) -#define ActRemFie (ActChgNumRowFooGrp+50) -#define ActRenFie (ActChgNumRowFooGrp+51) -#define ActChgRowFie (ActChgNumRowFooGrp+52) -#define ActChgVisFie (ActChgNumRowFooGrp+53) +#define ActGetExtLstStd (ActChgNumRowFooGrp+30) +#define ActPrnInvPho (ActChgNumRowFooGrp+31) +#define ActPrnStdPho (ActChgNumRowFooGrp+32) +#define ActPrnTchPho (ActChgNumRowFooGrp+33) +#define ActLstInvAll (ActChgNumRowFooGrp+34) +#define ActLstStdAll (ActChgNumRowFooGrp+35) +#define ActLstTchAll (ActChgNumRowFooGrp+36) +#define ActSeeRecOneStd (ActChgNumRowFooGrp+37) +#define ActSeeRecOneTch (ActChgNumRowFooGrp+38) +#define ActSeeRecSevInv (ActChgNumRowFooGrp+39) +#define ActSeeRecSevStd (ActChgNumRowFooGrp+40) +#define ActSeeRecSevTch (ActChgNumRowFooGrp+41) +#define ActPrnRecSevInv (ActChgNumRowFooGrp+42) +#define ActPrnRecSevStd (ActChgNumRowFooGrp+43) +#define ActPrnRecSevTch (ActChgNumRowFooGrp+44) +#define ActRcvRecOthUsr (ActChgNumRowFooGrp+45) +#define ActEdiRecFie (ActChgNumRowFooGrp+46) +#define ActNewFie (ActChgNumRowFooGrp+47) +#define ActReqRemFie (ActChgNumRowFooGrp+48) +#define ActRemFie (ActChgNumRowFooGrp+49) +#define ActRenFie (ActChgNumRowFooGrp+50) +#define ActChgRowFie (ActChgNumRowFooGrp+51) +#define ActChgVisFie (ActChgNumRowFooGrp+52) -#define ActReqLstAttStd (ActChgNumRowFooGrp+54) -#define ActSeeLstAttStd (ActChgNumRowFooGrp+55) -#define ActPrnLstAttStd (ActChgNumRowFooGrp+56) -#define ActFrmNewAtt (ActChgNumRowFooGrp+57) -#define ActEdiOneAtt (ActChgNumRowFooGrp+58) -#define ActNewAtt (ActChgNumRowFooGrp+59) -#define ActChgAtt (ActChgNumRowFooGrp+60) -#define ActReqRemAtt (ActChgNumRowFooGrp+61) -#define ActRemAtt (ActChgNumRowFooGrp+62) -#define ActHidAtt (ActChgNumRowFooGrp+63) -#define ActShoAtt (ActChgNumRowFooGrp+64) -#define ActSeeOneAtt (ActChgNumRowFooGrp+65) -#define ActRecAttStd (ActChgNumRowFooGrp+66) -#define ActRecAttMe (ActChgNumRowFooGrp+67) +#define ActReqLstAttStd (ActChgNumRowFooGrp+53) +#define ActSeeLstAttStd (ActChgNumRowFooGrp+54) +#define ActPrnLstAttStd (ActChgNumRowFooGrp+55) +#define ActFrmNewAtt (ActChgNumRowFooGrp+56) +#define ActEdiOneAtt (ActChgNumRowFooGrp+57) +#define ActNewAtt (ActChgNumRowFooGrp+58) +#define ActChgAtt (ActChgNumRowFooGrp+59) +#define ActReqRemAtt (ActChgNumRowFooGrp+60) +#define ActRemAtt (ActChgNumRowFooGrp+61) +#define ActHidAtt (ActChgNumRowFooGrp+62) +#define ActShoAtt (ActChgNumRowFooGrp+63) +#define ActSeeOneAtt (ActChgNumRowFooGrp+64) +#define ActRecAttStd (ActChgNumRowFooGrp+65) +#define ActRecAttMe (ActChgNumRowFooGrp+66) -#define ActSignUp (ActChgNumRowFooGrp+68) -#define ActReqRejSignUp (ActChgNumRowFooGrp+69) -#define ActRejSignUp (ActChgNumRowFooGrp+70) +#define ActSignUp (ActChgNumRowFooGrp+67) +#define ActReqRejSignUp (ActChgNumRowFooGrp+68) +#define ActRejSignUp (ActChgNumRowFooGrp+69) + +#define ActReqMdfOneUsr (ActChgNumRowFooGrp+70) #define ActReqMdfUsr (ActChgNumRowFooGrp+71) #define ActReqUsrPho (ActChgNumRowFooGrp+72) diff --git a/swad_centre.c b/swad_centre.c index 186497444..27f72b77f 100644 --- a/swad_centre.c +++ b/swad_centre.c @@ -1796,8 +1796,6 @@ void Ctr_ReqPhoto (void) extern const char *Txt_File_with_the_photo; extern const char *Txt_Upload_photo; - fprintf (Gbl.F.Out,"
"); - /***** Write help message *****/ sprintf (Gbl.Message,Txt_You_can_send_a_file_with_an_image_in_jpg_format_and_size_X_Y, Ctr_PHOTO_REAL_WIDTH, @@ -1806,7 +1804,7 @@ void Ctr_ReqPhoto (void) /***** Write a form to send photo *****/ Act_FormStart (ActRecCtrPho); - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"
" "" "
" "%s:" @@ -1826,8 +1824,6 @@ void Ctr_ReqPhoto (void) Txt_File_with_the_photo, Fil_NAME_OF_PARAM_FILENAME_ORG, Txt_Upload_photo); - - fprintf (Gbl.F.Out,""); } /*****************************************************************************/ diff --git a/swad_changelog.h b/swad_changelog.h index df4ee6836..6ae03c279 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -35,11 +35,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.48.7 (2014/12/31)" +#define Log_PLATFORM_VERSION "SWAD 14.49 (2014/12/31)" // 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 | tail -1 /* + Version 14.49 :Dec 31, 2014 Option to admin one user removed from main menu. + Fixed bugs in layout. + Fixed bugs in admin of one user. (174419 lines) Version 14.48.7 :Dec 31, 2014 New link to admin one user in option to admin several users. (174440 lines) Version 14.48.6 :Dec 31, 2014 Option to see accesses to the current course removed from main menu. The text of some menu items has been reduced to a single word. (174404 lines) diff --git a/swad_enrollment.c b/swad_enrollment.c index 054ae8d4e..5196693af 100644 --- a/swad_enrollment.c +++ b/swad_enrollment.c @@ -86,6 +86,8 @@ extern struct Globals Gbl; /***************************** Private prototypes ****************************/ /*****************************************************************************/ +static void Enr_ShowFormRegRemSeveralUsrs (void); + static void Enr_PutFormToRemOldUsrs (void); static void Enr_PutAreaToEnterUsrsIDs (void); static bool Enr_PutActionsRegRemOneUsr (bool ItsMe); @@ -423,11 +425,62 @@ void Enr_UpdateInstitutionCentreDepartment (void) DB_QueryUPDATE (Query,"can not update institution, centre and department"); } +/*****************************************************************************/ +/************** Form to request the user's ID of another user ****************/ +/*****************************************************************************/ + +void Enr_ReqAdminUsrs (void) + { + extern const char *Txt_You_dont_have_permission_to_perform_this_action; + + switch (Gbl.Usrs.Me.LoggedRole) + { + case Rol_ROLE_GUEST: + case Rol_ROLE_VISITOR: + case Rol_ROLE_STUDENT: + Enr_AskIfRegRemMe (); + break; + case Rol_ROLE_TEACHER: + if (Gbl.CurrentCrs.Crs.CrsCod > 0) + Enr_ShowFormRegRemSeveralUsrs (); + else + Enr_AskIfRegRemMe (); + break; + case Rol_ROLE_DEG_ADMIN: + if (Gbl.CurrentDeg.Deg.DegCod > 0) + Enr_ReqAnotherUsrIDToRegisterRemove (); + else + Enr_AskIfRegRemMe (); + break; + case Rol_ROLE_CTR_ADMIN: + if (Gbl.CurrentCtr.Ctr.CtrCod > 0) + Enr_ReqAnotherUsrIDToRegisterRemove (); + else + Enr_AskIfRegRemMe (); + break; + case Rol_ROLE_INS_ADMIN: + if (Gbl.CurrentIns.Ins.InsCod > 0) + Enr_ReqAnotherUsrIDToRegisterRemove (); + else + Enr_AskIfRegRemMe (); + break; + case Rol_ROLE_SUPERUSER: + if (Gbl.CurrentCrs.Crs.CrsCod > 0) + Enr_ShowFormRegRemSeveralUsrs (); + else + Enr_ReqAnotherUsrIDToRegisterRemove (); + break; + default: + Lay_ShowAlert (Lay_ERROR,Txt_You_dont_have_permission_to_perform_this_action); + break; + } + } + /*****************************************************************************/ /***** Register/remove users (taken from a list) in/from current course ******/ /*****************************************************************************/ -void Enr_ShowFormRegRemSeveralUsrs (void) +static void Enr_ShowFormRegRemSeveralUsrs (void) { extern const char *The_ClassTitle[The_NUM_THEMES]; extern const char *Txt_Step_1_Provide_a_list_of_users; @@ -750,7 +803,10 @@ static bool Enr_PutActionsRegRemOneUsr (bool ItsMe) The_ClassFormul[Gbl.Prefs.Theme]); /***** Register user in course / Modify user's data *****/ - if (Gbl.CurrentCrs.Crs.CrsCod > 0) + if (Gbl.CurrentCrs.Crs.CrsCod > 0 && + (Gbl.Usrs.Me.LoggedRole == Rol_ROLE_TEACHER || + Gbl.Usrs.Me.LoggedRole == Rol_ROLE_DEG_ADMIN || + Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SUPERUSER)) { sprintf (Gbl.Message,UsrBelongsToCrs ? (ItsMe ? Txt_Modify_me_in_the_course_X : Txt_Modify_user_in_the_course_X) : diff --git a/swad_enrollment.h b/swad_enrollment.h index 655e6b8a4..9f70a9b35 100644 --- a/swad_enrollment.h +++ b/swad_enrollment.h @@ -79,7 +79,8 @@ void Enr_GetNotifEnrollment (char *SummaryStr, void Enr_UpdateUsrData (struct UsrData *UsrDat); void Enr_FilterUsrDat (struct UsrData *UsrDat); void Enr_UpdateInstitutionCentreDepartment (void); -void Enr_ShowFormRegRemSeveralUsrs (void); + +void Enr_ReqAdminUsrs (void); void Enr_AskRemoveOldUsrs (void); void Enr_RemoveOldUsrs (void); diff --git a/swad_password.c b/swad_password.c index 154825760..ac2a829db 100644 --- a/swad_password.c +++ b/swad_password.c @@ -742,28 +742,26 @@ void Pwd_ShowFormOthPwd (void) /***** Information message *****/ Lay_ShowAlert (Lay_INFO,Txt_Changing_the_password_for_the_following_user); - /***** Form to change password *****/ - /* Start form */ - fprintf (Gbl.F.Out,"
"); - Act_FormStart (ActChgPwdOthUsr); - Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod); - - /* Show user's record */ - fprintf (Gbl.F.Out,"" + /***** Show user's record *****/ + fprintf (Gbl.F.Out,"
" "" "" ""); + /***** Form to change password *****/ + /* Start form */ + Act_FormStart (ActChgPwdOthUsr); + Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod); + /* New password */ Pwd_PutFormToGetNewPasswordTwice (); fprintf (Gbl.F.Out,"
"); Rec_ShowCommonRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat); fprintf (Gbl.F.Out,"
"); /* End form */ Lay_PutSendButton (Txt_Save); - fprintf (Gbl.F.Out,"" - "
"); + fprintf (Gbl.F.Out,""); } else Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_); diff --git a/swad_photo.c b/swad_photo.c index c45820d15..32268a68a 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -251,7 +251,7 @@ void Pho_ReqPhoto (const struct UsrData *UsrDat,bool PhotoExists,const char *Pho Act_FormStart (ActDetUsrPho); Usr_PutParamOtherUsrCodEncrypted (UsrDat->EncryptedUsrCod); } - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"
" "" "
" "%s:" diff --git a/swad_text.c b/swad_text.c index d9f2f6850..d4fbc7011 100644 --- a/swad_text.c +++ b/swad_text.c @@ -15701,7 +15701,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==4 "Liens" #elif L==5 - "Ambuére
joaju" + "Ambuére" #elif L==6 "Links" #elif L==7 @@ -16245,9 +16245,9 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #if L==0 "Documents" #elif L==1 - "Dokumente-Bereich" + "Dokumente" #elif L==2 - "Documents
area" + "Documents" #elif L==3 "Documentos" #elif L==4 @@ -16257,7 +16257,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==6 "Documenti" #elif L==7 - "Dokumenty
obszar" + "Dokumenty" #elif L==8 "Documentos" #endif @@ -16297,7 +16297,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==5 "Arapapaha" #elif L==6 - "Calendario
del corso" + "Calendario" #elif L==7 "Kalendarz" #elif L==8 @@ -16320,7 +16320,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==6 "Orario" #elif L==7 - "Plan
lekcji" + "Plan" #elif L==8 "Horário" #endif @@ -16337,7 +16337,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==4 "Bibliographie" #elif L==5 - "Aranduka-
purupyre" + "Aranduka" #elif L==6 "Bibliografia" #elif L==7 @@ -16379,7 +16379,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==4 "Liens" #elif L==5 - "Ambuére
joaju" + "Ambuére" #elif L==6 "Link" #elif L==7 @@ -16710,23 +16710,23 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = , // ActReqSignUp #if L==0 - "Sol·licitar
inscripció" + "Inscriure" #elif L==1 - "Registrierung
beantragen" + "Anmeldung" #elif L==2 "Sign up" #elif L==3 - "Solicitar
inscripción" + "Inscribirme" #elif L==4 - "Demander
inscription" + "Signer" #elif L==5 - "Solicitar
inscripción" // Okoteve traducción + "Inscribirme" // Okoteve traducción #elif L==6 - "Richiedere
iscrizione" + "Iscrivi" #elif L==7 - "Wniosku
rejestrację" + "Zapisać" #elif L==8 - "Solicitar
inscrição" + "Inscrever" #endif , // ActSeeSignUpReq @@ -16748,48 +16748,27 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Upraszanie" #elif L==8 "Solicitações" -#endif - , - // ActReqMdfOneUsr -#if L==0 - "Administrar
un usuari" -#elif L==1 - "Verwalten
eines Benutzer" -#elif L==2 - "Administer
a user" -#elif L==3 - "Administrar
un usuario" -#elif L==4 - "Gérer un
utilisateur" -#elif L==5 - "Administrar
un usuario" // Okoteve traducción -#elif L==6 - "Gestire
un utente" -#elif L==7 - "Zarządzaj
użytkownika" -#elif L==8 - "Gerenciar um
utilizador" #endif , // ActReqMdfSevUsr #if L==0 - "Administrar
usuaris" + "Administrar" #elif L==1 - "Verwalten
Benutzern" + "Verwalten" #elif L==2 - "Administer
users" + "Administer" #elif L==3 - "Administrar
usuarios" + "Administrar" #elif L==4 - "Gérer
utilisateurs" + "Gérer" #elif L==5 - "Administrar
usuarios" // Okoteve traducción + "Administrar" // Okoteve traducción #elif L==6 - "Gestire
utenti" + "Gestire" #elif L==7 - "Zarządzaj
uzytkowników" + "Zarządzaj" #elif L==8 - "Gerenciar
utilizadores" + "Gerenciar" #endif , // ActLstCon @@ -16822,6 +16801,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = NULL, NULL, NULL, + NULL, }, { // TabMsg ***************************************************** @@ -17229,7 +17209,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==6 "Orario" #elif L==7 - "Plan
lekcji" + "Plan" #elif L==8 "Horário" #endif @@ -17261,7 +17241,7 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==1 "Profil" #elif L==2 - "Record
card" + "Record" #elif L==3 "Ficha" #elif L==4 @@ -17303,17 +17283,17 @@ const char *Txt_MENU_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==1 "Aktentasche" #elif L==2 - "Virtual
pendrive" + "Virtual pendrive" #elif L==3 "Maletín" #elif L==4 - "Porte-
documents" + "Portedocuments" #elif L==5 "Maletín" // Okoteve traducción #elif L==6 "Penna USB" #elif L==7 - "Pendrive
wirtualne" + "Pendrive" #elif L==8 "Pasta" #endif @@ -17535,7 +17515,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==4 "Liens" #elif L==5 - "Ambuére joaju" + "Ambuére" #elif L==6 "Link" #elif L==7 @@ -18091,7 +18071,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==6 "Documenti" #elif L==7 - "Obszar Dokumentów" + "Dokumentów" #elif L==8 "Documentos" #endif @@ -18131,7 +18111,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==5 "Arapapaha" #elif L==6 - "Calendario del corso" + "Calendario" #elif L==7 "Kalendarz" #elif L==8 @@ -18154,7 +18134,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==6 "Orario" #elif L==7 - "Plan lekcji" + "Plan" #elif L==8 "Horário" #endif @@ -18213,7 +18193,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==4 "Liens" #elif L==5 - "Ambuére joaju" + "Ambuére" #elif L==6 "Link" #elif L==7 @@ -18544,23 +18524,23 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = , // ActReqSignUp #if L==0 - "Sol·licitar inscripció" + "Inscriure" #elif L==1 - "Registrierung beantragen" + "Anmeldung" #elif L==2 "Sign up" #elif L==3 - "Solicitar inscripción" + "Inscribirme" #elif L==4 - "Demander inscription" + "Signer" #elif L==5 - "Solicitar inscripción" // Okoteve traducción + "Inscribirme" // Okoteve traducción #elif L==6 - "Richiedere iscrizione" + "Iscrivi" #elif L==7 - "Wniosku rejestrację" + "Zapisać" #elif L==8 - "Solicitar inscrição" + "Inscrever" #endif , // ActSeeSignUpReq @@ -18582,48 +18562,27 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Upraszanie" #elif L==8 "Solicitações" -#endif - , - // ActReqMdfOneUsr -#if L==0 - "Administrar un usuari" -#elif L==1 - "Verwalten eines Benutzer" -#elif L==2 - "Admin one user" -#elif L==3 - "Administrar un usuario" -#elif L==4 - "Gérer un utilisateur" -#elif L==5 - "Administrar un usuario" // Okoteve traducción -#elif L==6 - "Gestire un utente" -#elif L==7 - "Zarządzaj użytkownika" -#elif L==8 - "Gerenciar um utilizador" #endif , // ActReqMdfSevUsr #if L==0 - "Administrar diversos usuaris" + "Administrar" #elif L==1 - "Verwalten mehreren Benutzern" + "Verwalten" #elif L==2 - "Administer multiple users" + "Administer" #elif L==3 - "Administrar varios usuarios" + "Administrar" #elif L==4 - "Gérer utilisateurs" + "Gérer" #elif L==5 - "Administrar varios usuarios" // Okoteve traducción + "Administrar" // Okoteve traducción #elif L==6 - "Gestire multipli utenti" + "Gestire" #elif L==7 - "Zarządzaj uzytkowników" + "Zarządzaj" #elif L==8 - "Gerenciar vários utilizadores" + "Gerenciar" #endif , // ActLstCon @@ -18656,6 +18615,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = NULL, NULL, NULL, + NULL, }, { // TabMsg ***************************************************** @@ -19063,7 +19023,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==6 "Orario" #elif L==7 - "Plan lekcji" + "Plan" #elif L==8 "Horário" #endif @@ -19095,7 +19055,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==1 "Profil" #elif L==2 - "Record card" + "Record" #elif L==3 "Ficha" #elif L==4 @@ -19147,7 +19107,7 @@ const char *Txt_MENU_NO_BR[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = #elif L==6 "Penna USB" #elif L==7 - "Pendrive wirtualne" + "Pendrive" #elif L==8 "Pasta" #endif @@ -20446,57 +20406,27 @@ const char *Txt_MENU_SUBTITLE[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Żądania rejestrowania" #elif L==8 "Solicitações de inscrição" -#endif - , - // ActReqMdfOneUsr -#if L==0 - "Inscripció / o modificació /" - " eliminación d'un usuari" -#elif L==1 - "Anmeldung / Änderung /" - " Entfernen eines Benutzers" -#elif L==2 - "Enrollment / modification /" - " removing of a user" -#elif L==3 - "Inscripción / modificación /" - " eliminación de un usuario" -#elif L==4 - "Inscription / modification /" - " suppression d'un utilisateur" -#elif L==5 - "Inscripción / modificación /" - " eliminación de un usuario"// Okoteve traducción -#elif L==6 - "Iscrizione / modifica /" - " rimozione di un utente" -#elif L==7 - "Rekrutacja / modyfikacja /" - " usunięcie użytkownika" -#elif L==8 - "Inscrição / alteração /" - " remoção de um utilizador" #endif , // ActReqMdfSevUsr #if L==0 - "Inscripció / eliminación de diversos usuaris" + "Inscripció / eliminación de usuaris" #elif L==1 - "Anmeldung / Entfernen von mehreren Benutzern" + "Anmeldung / Entfernen von Benutzern" #elif L==2 - "Enrollment / removing of multiple users" + "Enrollment / removing of users" #elif L==3 - "Inscripción / eliminación de varios usuarios" + "Inscripción / eliminación de usuarios" #elif L==4 - "Inscription / suppression de plusieurs utilisateurs" + "Inscription / suppression de utilisateurs" #elif L==5 - "Inscripción / eliminación de varios usuario"// Okoteve traducción + "Inscripción / eliminación de usuario"// Okoteve traducción #elif L==6 - "Iscrizione / rimozione di utenti multipli" + "Iscrizione / rimozione di utenti" #elif L==7 "Rekrutacja / usunięcie użytkowników" #elif L==8 - "Inscrição / remoção de vários utilizadores" + "Inscrição / remoção de utilizadores" #endif , // ActLstCon @@ -20529,6 +20459,7 @@ const char *Txt_MENU_SUBTITLE[Act_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = NULL, NULL, NULL, + NULL, }, { // TabMsg *****************************************************