Version 14.49

This commit is contained in:
Antonio Cañas Vargas 2014-12-31 02:46:20 +01:00
parent e078a618cc
commit e981d4623e
10 changed files with 229 additions and 246 deletions

View File

@ -403,8 +403,7 @@ void ID_ShowFormOthIDs (void)
/***** Form to change IDs *****/
/* Show user's record */
fprintf (Gbl.F.Out,"<div style=\"text-align:center;\">"
"<table>"
fprintf (Gbl.F.Out,"<table style=\"margin:0 auto;\">"
"<tr>"
"<td colspan=\"2\" style=\"text-align:center;\">");
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,"</table>"
"</div>");
fprintf (Gbl.F.Out,"</table>");
}
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);

View File

@ -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},

View File

@ -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)

View File

@ -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,"<div style=\"text-align:center;\">");
/***** 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,"<table>"
fprintf (Gbl.F.Out,"<table style=\"margin:0 auto;\">"
"<tr>"
"<td class=\"%s\" style=\"text-align:right;\">"
"%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,"</div>");
}
/*****************************************************************************/

View File

@ -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)

View File

@ -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) :

View File

@ -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);

View File

@ -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,"<div style=\"text-align:center;\">");
Act_FormStart (ActChgPwdOthUsr);
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
/* Show user's record */
fprintf (Gbl.F.Out,"<table>"
/***** Show user's record *****/
fprintf (Gbl.F.Out,"<table style=\"margin:0 auto;\">"
"<tr>"
"<td colspan=\"2\" style=\"text-align:center;\">");
Rec_ShowCommonRecord (Rec_RECORD_LIST,&Gbl.Usrs.Other.UsrDat);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
/***** Form to change password *****/
/* Start form */
Act_FormStart (ActChgPwdOthUsr);
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
/* New password */
Pwd_PutFormToGetNewPasswordTwice ();
fprintf (Gbl.F.Out,"</table>");
/* End form */
Lay_PutSendButton (Txt_Save);
fprintf (Gbl.F.Out,"</form>"
"</div>");
fprintf (Gbl.F.Out,"</form>");
}
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);

View File

@ -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,"<table>"
fprintf (Gbl.F.Out,"<table style=\"margin:0 auto;\">"
"<tr>"
"<td class=\"%s\" style=\"text-align:right;\">"
"%s:"

View File

@ -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&eacute;re<br />joaju"
"Ambu&eacute;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<br />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<br />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<br />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<br />lekcji"
"Plan"
#elif L==8
"Hor&aacute;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-<br />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&eacute;re<br />joaju"
"Ambu&eacute;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<br />inscripci&oacute;"
"Inscriure"
#elif L==1
"Registrierung<br />beantragen"
"Anmeldung"
#elif L==2
"Sign up"
#elif L==3
"Solicitar<br />inscripci&oacute;n"
"Inscribirme"
#elif L==4
"Demander<br />inscription"
"Signer"
#elif L==5
"Solicitar<br />inscripci&oacute;n" // Okoteve traducción
"Inscribirme" // Okoteve traducción
#elif L==6
"Richiedere<br />iscrizione"
"Iscrivi"
#elif L==7
"Wniosku<br />rejestracj&eogon;"
"Zapisa&cacute;"
#elif L==8
"Solicitar<br />inscri&ccedil;&atilde;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&ccedil;&otilde;es"
#endif
,
// ActReqMdfOneUsr
#if L==0
"Administrar<br />un usuari"
#elif L==1
"Verwalten<br />eines Benutzer"
#elif L==2
"Administer<br />a user"
#elif L==3
"Administrar<br />un usuario"
#elif L==4
"G&eacute;rer un<br />utilisateur"
#elif L==5
"Administrar<br />un usuario" // Okoteve traducción
#elif L==6
"Gestire<br />un utente"
#elif L==7
"Zarz&aogon;dzaj<br />u&zdot;ytkownika"
#elif L==8
"Gerenciar um<br />utilizador"
#endif
,
// ActReqMdfSevUsr
#if L==0
"Administrar<br />usuaris"
"Administrar"
#elif L==1
"Verwalten<br />Benutzern"
"Verwalten"
#elif L==2
"Administer<br />users"
"Administer"
#elif L==3
"Administrar<br />usuarios"
"Administrar"
#elif L==4
"G&eacute;rer<br />utilisateurs"
"G&eacute;rer"
#elif L==5
"Administrar<br />usuarios" // Okoteve traducción
"Administrar" // Okoteve traducción
#elif L==6
"Gestire<br />utenti"
"Gestire"
#elif L==7
"Zarz&aogon;dzaj<br />uzytkownik&oacute;w"
"Zarz&aogon;dzaj"
#elif L==8
"Gerenciar<br />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<br />lekcji"
"Plan"
#elif L==8
"Hor&aacute;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<br />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<br />pendrive"
"Virtual pendrive"
#elif L==3
"Malet&iacute;n"
#elif L==4
"Porte-<br />documents"
"Portedocuments"
#elif L==5
"Malet&iacute;n" // Okoteve traducción
#elif L==6
"Penna USB"
#elif L==7
"Pendrive<br />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&eacute;re joaju"
"Ambu&eacute;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&oacute;w"
"Dokument&oacute;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&aacute;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&eacute;re joaju"
"Ambu&eacute;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&oacute;"
"Inscriure"
#elif L==1
"Registrierung beantragen"
"Anmeldung"
#elif L==2
"Sign up"
#elif L==3
"Solicitar inscripci&oacute;n"
"Inscribirme"
#elif L==4
"Demander inscription"
"Signer"
#elif L==5
"Solicitar inscripci&oacute;n" // Okoteve traducción
"Inscribirme" // Okoteve traducción
#elif L==6
"Richiedere iscrizione"
"Iscrivi"
#elif L==7
"Wniosku rejestracj&eogon;"
"Zapisa&cacute;"
#elif L==8
"Solicitar inscri&ccedil;&atilde;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&ccedil;&otilde;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&eacute;rer un utilisateur"
#elif L==5
"Administrar un usuario" // Okoteve traducción
#elif L==6
"Gestire un utente"
#elif L==7
"Zarz&aogon;dzaj u&zdot;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&eacute;rer utilisateurs"
"G&eacute;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&aogon;dzaj uzytkownik&oacute;w"
"Zarz&aogon;dzaj"
#elif L==8
"Gerenciar v&aacute;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&aacute;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] =
"&Zdot;&aogon;dania rejestrowania"
#elif L==8
"Solicita&ccedil;&otilde;es de inscri&ccedil;&atilde;o"
#endif
,
// ActReqMdfOneUsr
#if L==0
"Inscripci&oacute; / o modificaci&oacute; /"
" eliminaci&oacute;n d'un usuari"
#elif L==1
"Anmeldung / &Auml;nderung /"
" Entfernen eines Benutzers"
#elif L==2
"Enrollment / modification /"
" removing of a user"
#elif L==3
"Inscripci&oacute;n / modificaci&oacute;n /"
" eliminaci&oacute;n de un usuario"
#elif L==4
"Inscription / modification /"
" suppression d'un utilisateur"
#elif L==5
"Inscripci&oacute;n / modificaci&oacute;n /"
" eliminaci&oacute;n de un usuario"// Okoteve traducción
#elif L==6
"Iscrizione / modifica /"
" rimozione di un utente"
#elif L==7
"Rekrutacja / modyfikacja /"
" usuni&eogon;cie u&zdot;ytkownika"
#elif L==8
"Inscri&ccedil;&atilde;o / altera&ccedil;&atilde;o /"
" remo&ccedil;&atilde;o de um utilizador"
#endif
,
// ActReqMdfSevUsr
#if L==0
"Inscripci&oacute; / eliminaci&oacute;n de diversos usuaris"
"Inscripci&oacute; / eliminaci&oacute;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&oacute;n / eliminaci&oacute;n de varios usuarios"
"Inscripci&oacute;n / eliminaci&oacute;n de usuarios"
#elif L==4
"Inscription / suppression de plusieurs utilisateurs"
"Inscription / suppression de utilisateurs"
#elif L==5
"Inscripci&oacute;n / eliminaci&oacute;n de varios usuario"// Okoteve traducción
"Inscripci&oacute;n / eliminaci&oacute;n de usuario"// Okoteve traducción
#elif L==6
"Iscrizione / rimozione di utenti multipli"
"Iscrizione / rimozione di utenti"
#elif L==7
"Rekrutacja / usuni&eogon;cie u&zdot;ytkownik&oacute;w"
#elif L==8
"Inscri&ccedil;&atilde;o / remo&ccedil;&atilde;o de v&aacute;rios utilizadores"
"Inscri&ccedil;&atilde;o / remo&ccedil;&atilde;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 *****************************************************