diff --git a/swad_action.c b/swad_action.c index 0acef4033..3919468f6 100644 --- a/swad_action.c +++ b/swad_action.c @@ -2436,9 +2436,9 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActRemStdPho */{1442,-1,TabUnk,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL}, /* ActRemTchPho */{1443,-1,TabUnk,ActLstTch ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL}, - /* ActCreOth */{1444,-1,TabUnk,ActLstOth ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_CreateNewUsr ,NULL}, - /* ActCreStd */{1445,-1,TabUnk,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_CreateNewUsr ,NULL}, - /* ActCreTch */{1446,-1,TabUnk,ActLstTch ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_CreateNewUsr ,NULL}, + /* ActCreOth */{1444,-1,TabUnk,ActLstOth ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,Enr_CreateNewUsr1 ,Enr_CreateNewUsr2 ,NULL}, + /* ActCreStd */{1445,-1,TabUnk,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,Enr_CreateNewUsr1 ,Enr_CreateNewUsr2 ,NULL}, + /* ActCreTch */{1446,-1,TabUnk,ActLstTch ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,Enr_CreateNewUsr1 ,Enr_CreateNewUsr2 ,NULL}, /* ActUpdOth */{1422,-1,TabUnk,ActLstOth ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ModifyUsr ,NULL}, /* ActUpdStd */{1423,-1,TabUnk,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ModifyUsr ,NULL}, diff --git a/swad_changelog.h b/swad_changelog.h index 385d1c39a..4f28f5ce5 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -190,13 +190,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.103.3 (2016-12-17)" +#define Log_PLATFORM_VERSION "SWAD 16.103.4 (2016-12-17)" #define CSS_FILE "swad16.103.1.css" #define JS_FILE "swad16.101.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.103.4: Dec 17, 2016 Code refactoring in user enrollment. (211170 lines) Version 16.103.3: Dec 17, 2016 Code refactoring in user enrollment. (211149 lines) Version 16.103.2: Dec 17, 2016 Code refactoring in user enrollment. (211133 lines) Version 16.103.1: Dec 16, 2016 Changes in layout of tabs. (211123 lines) diff --git a/swad_enrollment.c b/swad_enrollment.c index 16bb32e32..c1be44479 100644 --- a/swad_enrollment.c +++ b/swad_enrollment.c @@ -3448,7 +3448,7 @@ void Enr_AcceptRegisterMeInCrs (void) /******************* Create and show data from other user ********************/ /*****************************************************************************/ -void Enr_CreateNewUsr (void) +void Enr_CreateNewUsr1 (void) { extern const char *Txt_The_role_of_THE_USER_X_in_the_course_Y_has_changed_from_A_to_B; extern const char *Txt_ROLES_SINGUL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; @@ -3460,6 +3460,10 @@ void Enr_CreateNewUsr (void) /***** Get user's ID from form *****/ ID_GetParamOtherUsrIDPlain (); // User's ID was already modified and passed as a hidden parameter + /***** Initialize error and message *****/ + Gbl.Error = false; + Gbl.Message[0] = '\0'; + if (ID_CheckIfUsrIDIsValid (Gbl.Usrs.Other.UsrDat.IDs.List[0].ID)) // User's ID valid { Gbl.Usrs.Other.UsrDat.UsrCod = -1L; @@ -3491,12 +3495,11 @@ void Enr_CreateNewUsr (void) /* Modify role */ Enr_ModifyRoleInCurrentCrs (&Gbl.Usrs.Other.UsrDat,NewRole); - /* Show success message */ + /* Success message */ sprintf (Gbl.Message,Txt_The_role_of_THE_USER_X_in_the_course_Y_has_changed_from_A_to_B, Gbl.Usrs.Other.UsrDat.FullName,Gbl.CurrentCrs.Crs.FullName, Txt_ROLES_SINGUL_abc[OldRole][Gbl.Usrs.Other.UsrDat.Sex], Txt_ROLES_SINGUL_abc[NewRole][Gbl.Usrs.Other.UsrDat.Sex]); - Lay_ShowAlert (Lay_SUCCESS,Gbl.Message); } } else @@ -3505,27 +3508,47 @@ void Enr_CreateNewUsr (void) Enr_RegisterUsrInCurrentCrs (&Gbl.Usrs.Other.UsrDat,NewRole, Enr_SET_ACCEPTED_TO_FALSE); - /* Show success message */ + /* Success message */ sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_in_the_course_Y, Gbl.Usrs.Other.UsrDat.FullName,Gbl.CurrentCrs.Crs.FullName); - Lay_ShowAlert (Lay_SUCCESS,Gbl.Message); } + } + + /***** Change current action *****/ + Gbl.Action.Act = (NewRole == Rol_STUDENT) ? ActCreStd : + ((NewRole == Rol_TEACHER) ? ActCreTch : + ActCreOth); + Tab_SetCurrentTab (); + } + else // User's ID not valid + { + Gbl.Error = true; + + /***** Error message *****/ + sprintf (Gbl.Message,Txt_The_ID_X_is_not_valid, + Gbl.Usrs.Other.UsrDat.IDs.List[0].ID); + } + } + +void Enr_CreateNewUsr2 (void) + { + if (Gbl.Error) // User's ID not valid + Lay_ShowAlert (Lay_ERROR,Gbl.Message); + else // User's ID valid + { + if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected + { + /***** Show success message *****/ + Lay_ShowAlert (Lay_SUCCESS,Gbl.Message); /***** Change user's groups *****/ - if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups? + if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups? Grp_ChangeOtherUsrGrps (); } /***** Show user's record *****/ Rec_ShowSharedRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); } - else // User's ID not valid - { - /***** Write message *****/ - sprintf (Gbl.Message,Txt_The_ID_X_is_not_valid, - Gbl.Usrs.Other.UsrDat.IDs.List[0].ID); - Lay_ShowAlert (Lay_ERROR,Gbl.Message); - } } /*****************************************************************************/ diff --git a/swad_enrollment.h b/swad_enrollment.h index 6bb0af380..d48559427 100644 --- a/swad_enrollment.h +++ b/swad_enrollment.h @@ -131,7 +131,8 @@ void Enr_RemAdmCtr (void); void Enr_RemAdmDeg (void); void Enr_AcceptRegisterMeInCrs (void); -void Enr_CreateNewUsr (void); +void Enr_CreateNewUsr1 (void); +void Enr_CreateNewUsr2 (void); void Enr_ModifyUsr (void); void Enr_AcceptUsrInCrs (long UsrCod);