From e91801139f35c2a34c8780900a2575fdc4ac6406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Thu, 14 Nov 2019 17:53:50 +0100 Subject: [PATCH] Version19.68.2 --- swad_action.c | 10 +-- swad_attendance.c | 135 ++++++++++++++--------------- swad_attendance.h | 10 +-- swad_changelog.h | 3 +- swad_project.c | 6 +- swad_user.c | 212 +++++++++++++++++++++++----------------------- 6 files changed, 189 insertions(+), 187 deletions(-) diff --git a/swad_action.c b/swad_action.c index b688cea2..c36064d2 100644 --- a/swad_action.c +++ b/swad_action.c @@ -2789,11 +2789,11 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActReqEnrSevNET */{1642,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Enr_ReqAdminNonEditingTchs ,NULL}, /* ActReqEnrSevTch */{1427,-1,TabUnk,ActLstTch ,0x3C0,0x3C0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Enr_ReqAdminTchs ,NULL}, - /* ActReqLstUsrAtt */{1073,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Usr_ReqListStdsAttendanceCrs ,NULL}, - /* ActSeeLstMyAtt */{1473,-1,TabUnk,ActSeeAtt ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Usr_ListMyAttendanceCrs ,NULL}, - /* ActPrnLstMyAtt */{1474,-1,TabUnk,ActSeeAtt ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Usr_PrintMyAttendanceCrs ,NULL}, - /* ActSeeLstUsrAtt */{1074,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Usr_ListUsrsAttendanceCrs ,NULL}, - /* ActPrnLstUsrAtt */{1075,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Usr_PrintUsrsAttendanceCrs ,NULL}, + /* ActReqLstUsrAtt */{1073,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_ReqListUsrsAttendanceCrs ,NULL}, + /* ActSeeLstMyAtt */{1473,-1,TabUnk,ActSeeAtt ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_ListMyAttendanceCrs ,NULL}, + /* ActPrnLstMyAtt */{1474,-1,TabUnk,ActSeeAtt ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Att_PrintMyAttendanceCrs ,NULL}, + /* ActSeeLstUsrAtt */{1074,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_ListUsrsAttendanceCrs ,NULL}, + /* ActPrnLstUsrAtt */{1075,-1,TabUnk,ActSeeAtt ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Att_PrintUsrsAttendanceCrs ,NULL}, /* ActFrmNewAtt */{1063,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_RequestCreatOrEditAttEvent ,NULL}, /* ActEdiOneAtt */{1064,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_RequestCreatOrEditAttEvent ,NULL}, /* ActNewAtt */{1065,-1,TabUnk,ActSeeAtt ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Att_RecFormAttEvent ,NULL}, diff --git a/swad_attendance.c b/swad_attendance.c index 8aada605..d92ec65f 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -66,15 +66,18 @@ extern struct Globals Gbl; typedef enum { - Att_NORMAL_VIEW_ONLY_ME, - Att_NORMAL_VIEW_STUDENTS, - Att_PRINT_VIEW, + Att_VIEW_ONLY_ME, // View only me + Att_VIEW_SEL_USR, // View selected users + Att_PRNT_ONLY_ME, // Print only me + Att_PRNT_SEL_USR, // Print selected users } Att_TypeOfView_t; /*****************************************************************************/ /****************************** Private variables ****************************/ /*****************************************************************************/ +Att_TypeOfView_t Att_TypeOfView; + /*****************************************************************************/ /****************************** Private prototypes ***************************/ /*****************************************************************************/ @@ -131,8 +134,9 @@ static void Att_RegUsrInAttEventChangingComments (long AttCod,long UsrCod,bool P const char *CommentStd,const char *CommentTch); static void Att_RemoveUsrFromAttEvent (long AttCod,long UsrCod); -static void Usr_ListOrPrintMyAttendanceCrs (Att_TypeOfView_t TypeOfView); -static void Usr_ListOrPrintUsrsAttendanceCrs (Att_TypeOfView_t TypeOfView); +static void Att_ListOrPrintMyAttendanceCrs (void); +static void Att_GetUsrsAndListOrPrintAttendanceCrs (void); +static void Att_ListOrPrintUsrsAttendanceCrs (void); static void Att_GetListSelectedAttCods (char **StrAttCodsSelected); @@ -142,11 +146,10 @@ static void Att_PutIconsStdsAttList (void); static void Att_PutParamsToPrintStdsList (void); static void Att_PutButtonToShowDetails (void); -static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView); +static void Att_ListEventsToSelect (void); static void Att_PutIconToEditAttEvents (void); static void Att_PutIconToViewAttEvents (void); -static void Att_ListUsrsAttendanceTable (Att_TypeOfView_t TypeOfView, - unsigned NumUsrsInList, +static void Att_ListUsrsAttendanceTable (unsigned NumUsrsInList, long *LstSelectedUsrCods); static void Att_WriteTableHeadSeveralAttEvents (void); static void Att_WriteRowUsrSeveralAttEvents (unsigned NumUsr,struct UsrData *UsrDat); @@ -2644,7 +2647,7 @@ void Att_RemoveUsrsAbsentWithoutCommentsFromAttEvent (long AttCod) /********** Request listing attendance of users to several events ************/ /*****************************************************************************/ -void Usr_ReqListStdsAttendanceCrs (void) +void Att_ReqListUsrsAttendanceCrs (void) { extern const char *Hlp_USERS_Attendance_attendance_list; extern const char *Txt_Attendance_list; @@ -2667,17 +2670,19 @@ void Usr_ReqListStdsAttendanceCrs (void) /********** List my attendance (I am a student) to several events ************/ /*****************************************************************************/ -void Usr_ListMyAttendanceCrs (void) +void Att_ListMyAttendanceCrs (void) { - Usr_ListOrPrintMyAttendanceCrs (Att_NORMAL_VIEW_ONLY_ME); + Att_TypeOfView = Att_VIEW_ONLY_ME; + Att_ListOrPrintMyAttendanceCrs (); } -void Usr_PrintMyAttendanceCrs (void) +void Att_PrintMyAttendanceCrs (void) { - Usr_ListOrPrintMyAttendanceCrs (Att_PRINT_VIEW); + Att_TypeOfView = Att_PRNT_ONLY_ME; + Att_ListOrPrintMyAttendanceCrs (); } -static void Usr_ListOrPrintMyAttendanceCrs (Att_TypeOfView_t TypeOfView) +static void Att_ListOrPrintMyAttendanceCrs (void) { extern const char *Hlp_USERS_Attendance_attendance_list; extern const char *Txt_Attendance; @@ -2706,20 +2711,20 @@ static void Usr_ListOrPrintMyAttendanceCrs (Att_TypeOfView_t TypeOfView) /***** Begin box *****/ Box_BoxBegin (NULL,Txt_Attendance, - TypeOfView == Att_NORMAL_VIEW_ONLY_ME ? Att_PutIconsMyAttList : - NULL, - TypeOfView == Att_NORMAL_VIEW_ONLY_ME ? Hlp_USERS_Attendance_attendance_list : - NULL, + Att_TypeOfView == Att_VIEW_ONLY_ME ? Att_PutIconsMyAttList : + NULL, + Att_TypeOfView == Att_VIEW_ONLY_ME ? Hlp_USERS_Attendance_attendance_list : + NULL, Box_NOT_CLOSABLE); /***** List events to select *****/ - Att_ListEventsToSelect (TypeOfView); + Att_ListEventsToSelect (); /***** Get my preference about photos in users' list for current course *****/ Usr_GetMyPrefAboutListWithPhotosFromDB (); /***** Show table with attendances for every student in list *****/ - Att_ListUsrsAttendanceTable (TypeOfView,1,&Gbl.Usrs.Me.UsrDat.UsrCod); + Att_ListUsrsAttendanceTable (1,&Gbl.Usrs.Me.UsrDat.UsrCod); /***** Show details or put button to show details *****/ if (Gbl.AttEvents.ShowDetails) @@ -2742,44 +2747,50 @@ static void Usr_ListOrPrintMyAttendanceCrs (Att_TypeOfView_t TypeOfView) /*************** List attendance of users to several events ******************/ /*****************************************************************************/ -void Usr_ListUsrsAttendanceCrs (void) +void Att_ListUsrsAttendanceCrs (void) { - Usr_ListOrPrintUsrsAttendanceCrs (Att_NORMAL_VIEW_STUDENTS); + Att_TypeOfView = Att_VIEW_SEL_USR; + Att_GetUsrsAndListOrPrintAttendanceCrs (); } -void Usr_PrintUsrsAttendanceCrs (void) +void Att_PrintUsrsAttendanceCrs (void) { - Usr_ListOrPrintUsrsAttendanceCrs (Att_PRINT_VIEW); + Att_TypeOfView = Att_PRNT_SEL_USR; + Att_GetUsrsAndListOrPrintAttendanceCrs (); } -static void Usr_ListOrPrintUsrsAttendanceCrs (Att_TypeOfView_t TypeOfView) +static void Att_GetUsrsAndListOrPrintAttendanceCrs (void) + { + Usr_GetSelectedUsrsAndGoToAct (Att_ListOrPrintUsrsAttendanceCrs, + Att_ReqListUsrsAttendanceCrs); + } + +static void Att_ListOrPrintUsrsAttendanceCrs (void) { extern const char *Hlp_USERS_Attendance_attendance_list; extern const char *Txt_Attendance_list; - extern const char *Txt_You_must_select_one_ore_more_users; unsigned NumUsrsInList; long *LstSelectedUsrCods; unsigned NumAttEvent; - /***** Get list of attendance events *****/ - Att_GetListAttEvents (Att_OLDEST_FIRST); + /***** Get parameters *****/ + /* Get boolean parameter that indicates if details must be shown */ + Gbl.AttEvents.ShowDetails = Par_GetParToBool ("ShowDetails"); - /***** Get list of selected students if not already got *****/ - Usr_GetListsSelectedUsrsCods (); + /* Get list of groups selected */ + Grp_GetParCodsSeveralGrpsToShowUsrs (); + + /***** Count number of valid users in list of encrypted user codes *****/ NumUsrsInList = Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods (); - /***** Get list of users selected to show their attendance *****/ if (NumUsrsInList) { - /***** Get boolean parameter that indicates if details must be shown *****/ - Gbl.AttEvents.ShowDetails = Par_GetParToBool ("ShowDetails"); - - /***** Get list of groups selected ******/ - Grp_GetParCodsSeveralGrpsToShowUsrs (); - /***** Get list of students selected to show their attendances *****/ Usr_GetListSelectedUsrCods (NumUsrsInList,&LstSelectedUsrCods); + /***** Get list of attendance events *****/ + Att_GetListAttEvents (Att_OLDEST_FIRST); + /***** Get number of students in each event *****/ for (NumAttEvent = 0; NumAttEvent < Gbl.AttEvents.Num; @@ -2794,20 +2805,20 @@ static void Usr_ListOrPrintUsrsAttendanceCrs (Att_TypeOfView_t TypeOfView) /***** Begin box *****/ Box_BoxBegin (NULL,Txt_Attendance_list, - TypeOfView == Att_NORMAL_VIEW_STUDENTS ? Att_PutIconsStdsAttList : - NULL, - TypeOfView == Att_NORMAL_VIEW_STUDENTS ? Hlp_USERS_Attendance_attendance_list : - NULL, + Att_TypeOfView == Att_VIEW_SEL_USR ? Att_PutIconsStdsAttList : + NULL, + Att_TypeOfView == Att_VIEW_SEL_USR ? Hlp_USERS_Attendance_attendance_list : + NULL, Box_NOT_CLOSABLE); /***** List events to select *****/ - Att_ListEventsToSelect (TypeOfView); + Att_ListEventsToSelect (); /***** Get my preference about photos in users' list for current course *****/ Usr_GetMyPrefAboutListWithPhotosFromDB (); /***** Show table with attendances for every student in list *****/ - Att_ListUsrsAttendanceTable (TypeOfView,NumUsrsInList,LstSelectedUsrCods); + Att_ListUsrsAttendanceTable (NumUsrsInList,LstSelectedUsrCods); /***** Show details or put button to show details *****/ if (Gbl.AttEvents.ShowDetails) @@ -2819,23 +2830,15 @@ static void Usr_ListOrPrintUsrsAttendanceCrs (Att_TypeOfView_t TypeOfView) /***** Free memory for list of attendance events selected *****/ free (Gbl.AttEvents.StrAttCodsSelected); + /***** Free list of attendance events *****/ + Att_FreeListAttEvents (); + /***** Free list of user codes *****/ Usr_FreeListSelectedUsrCods (LstSelectedUsrCods); - - /***** Free list of groups selected *****/ - Grp_FreeListCodSelectedGrps (); - } - else // No students selected - { - Ale_ShowAlert (Ale_WARNING,Txt_You_must_select_one_ore_more_users); - Usr_ReqListStdsAttendanceCrs (); // ...show again the form } - /***** Free memory used by list of selected users' codes *****/ - Usr_FreeListsSelectedEncryptedUsrsCods (); - - /***** Free list of attendance events *****/ - Att_FreeListAttEvents (); + /***** Free list of groups selected *****/ + Grp_FreeListCodSelectedGrps (); } /*****************************************************************************/ @@ -3017,7 +3020,7 @@ static void Att_PutButtonToShowDetails (void) /********** Write list of those attendance events that have students *********/ /*****************************************************************************/ -static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView) +static void Att_ListEventsToSelect (void) { extern const char *The_ClassFormInBoxBold[The_NUM_THEMES]; extern const char *Txt_Events; @@ -3027,14 +3030,14 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView) unsigned UniqueId; char *Id; unsigned NumAttEvent; - bool NormalView = (TypeOfView == Att_NORMAL_VIEW_ONLY_ME || - TypeOfView == Att_NORMAL_VIEW_STUDENTS); + bool NormalView = (Att_TypeOfView == Att_VIEW_ONLY_ME || + Att_TypeOfView == Att_VIEW_SEL_USR); /***** Begin box *****/ Box_BoxBegin (NULL,Txt_Events, - TypeOfView == Att_NORMAL_VIEW_ONLY_ME ? Att_PutIconToViewAttEvents : - (TypeOfView == Att_NORMAL_VIEW_STUDENTS ? Att_PutIconToEditAttEvents : - NULL), + Att_TypeOfView == Att_VIEW_ONLY_ME ? Att_PutIconToViewAttEvents : + (Att_TypeOfView == Att_VIEW_SEL_USR ? Att_PutIconToEditAttEvents : + NULL), NULL, Box_NOT_CLOSABLE); @@ -3156,8 +3159,7 @@ static void Att_PutIconToViewAttEvents (void) /************ Show table with attendances for every user in list *************/ /*****************************************************************************/ -static void Att_ListUsrsAttendanceTable (Att_TypeOfView_t TypeOfView, - unsigned NumUsrsInList, +static void Att_ListUsrsAttendanceTable (unsigned NumUsrsInList, long *LstSelectedUsrCods) { extern const char *Txt_Number_of_users; @@ -3165,8 +3167,9 @@ static void Att_ListUsrsAttendanceTable (Att_TypeOfView_t TypeOfView, unsigned NumUsr; unsigned NumAttEvent; unsigned Total; - bool PutButtonShowDetails = (TypeOfView != Att_PRINT_VIEW && - !Gbl.AttEvents.ShowDetails); + bool PutButtonShowDetails = (Att_TypeOfView == Att_VIEW_ONLY_ME || + Att_TypeOfView == Att_VIEW_SEL_USR) && + !Gbl.AttEvents.ShowDetails; /***** Initialize structure with user's data *****/ Usr_UsrDataConstructor (&UsrDat); diff --git a/swad_attendance.h b/swad_attendance.h index 3ed01b77..a3a60c65 100644 --- a/swad_attendance.h +++ b/swad_attendance.h @@ -117,10 +117,10 @@ void Att_RegisterStudentsInAttEvent (void); void Att_RegUsrInAttEventNotChangingComments (long AttCod,long UsrCod); void Att_RemoveUsrsAbsentWithoutCommentsFromAttEvent (long AttCod); -void Usr_ReqListStdsAttendanceCrs (void); -void Usr_ListMyAttendanceCrs (void); -void Usr_PrintMyAttendanceCrs (void); -void Usr_ListUsrsAttendanceCrs (void); -void Usr_PrintUsrsAttendanceCrs (void); +void Att_ReqListUsrsAttendanceCrs (void); +void Att_ListMyAttendanceCrs (void); +void Att_PrintMyAttendanceCrs (void); +void Att_ListUsrsAttendanceCrs (void); +void Att_PrintUsrsAttendanceCrs (void); #endif diff --git a/swad_changelog.h b/swad_changelog.h index b6d97a12..d951ef66 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.68.1 (2019-11-14)" +#define Log_PLATFORM_VERSION "SWAD 19.68.2 (2019-11-14)" #define CSS_FILE "swad19.47.css" #define JS_FILE "swad19.65.js" /* @@ -495,6 +495,7 @@ ps2pdf source.ps destination.pdf // TODO: Impedir la creación y edición de proyectos si no son editables. // TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area + Version 19.68.2: Nov 14, 2019 Code refactoring in users and attendance. (246625 lines) Version 19.68.1: Nov 14, 2019 Code refactoring in match results. Code refactoring in test results. (246623 lines) Version 19.68: Nov 14, 2019 Code refactoring in projects. (246642 lines) diff --git a/swad_project.c b/swad_project.c index 91d8d12a..b3b584d1 100644 --- a/swad_project.c +++ b/swad_project.c @@ -2774,8 +2774,7 @@ static void Prj_GetListProjects (void) } break; case Usr_WHO_SELECTED: - /* Get list of selected users' codes if not already got */ - // Usr_GetListsSelectedUsrsCods (); + /* Count number of valid users in list of encrypted user codes */ NumUsrsInList = Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods (); if (NumUsrsInList) @@ -2833,9 +2832,6 @@ static void Prj_GetListProjects (void) } else NumRows = 0; - - /* Free memory used by list of selected users' codes */ - // Usr_FreeListsSelectedEncryptedUsrsCods (); break; case Usr_WHO_ALL: /* Get list of projects */ diff --git a/swad_user.c b/swad_user.c index 68220041..d9e428ff 100644 --- a/swad_user.c +++ b/swad_user.c @@ -8473,113 +8473,112 @@ void Usr_DoActionOnSeveralUsrs1 (void) Usr_GetListsSelectedUsrsCods (); /* Check if there are selected users */ - if (!Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods ())// If no users selected... - { // ...write warning notice - Ale_CreateAlert (Ale_WARNING,NULL, - Txt_You_must_select_one_ore_more_users); - return; - } - - /* Get the action to do */ - Gbl.Usrs.Selected.Option = Usr_GetListUsrsOption (Usr_OPTION_UNKNOWN); - - /***** Change action depending on my selection *****/ - Gbl.Action.Original = Gbl.Action.Act; // To check if action changes - - switch (Gbl.Usrs.Selected.Option) + if (Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods ()) { - case Usr_OPTION_RECORDS: - switch (Gbl.Action.Act) - { - case ActDoActOnSevGst: - Gbl.Action.Act = ActSeeRecSevGst; - break; - case ActDoActOnSevStd: - Gbl.Action.Act = ActSeeRecSevStd; - break; - case ActDoActOnSevTch: - Gbl.Action.Act = ActSeeRecSevTch; - break; - default: - break; - } - break; - case Usr_OPTION_HOMEWORK: - switch (Gbl.Action.Act) - { - case ActDoActOnSevStd: - case ActDoActOnSevTch: - Gbl.Action.Act = ActAdmAsgWrkCrs; - break; - default: - break; - } - break; - case Usr_OPTION_ATTENDANCE: - switch (Gbl.Action.Act) - { - case ActDoActOnSevStd: - Gbl.Action.Act = ActSeeLstUsrAtt; - break; - default: - break; - } - break; - case Usr_OPTION_MESSAGE: - switch (Gbl.Action.Act) - { - case ActDoActOnSevStd: - case ActDoActOnSevTch: - Gbl.Action.Act = ActReqMsgUsr; - break; - default: - break; - } - break; - case Usr_OPTION_EMAIL: - switch (Gbl.Action.Act) - { - case ActDoActOnSevStd: - Gbl.Action.Act = ActMaiUsr; - break; - default: - break; - } - break; - case Usr_OPTION_FOLLOW: - switch (Gbl.Action.Act) - { - case ActDoActOnSevStd: - Gbl.Action.Act = ActReqFolSevStd; - break; - case ActDoActOnSevTch: - Gbl.Action.Act = ActReqFolSevTch; - break; - default: - break; - } - break; - case Usr_OPTION_UNFOLLOW: - switch (Gbl.Action.Act) - { - case ActDoActOnSevStd: - Gbl.Action.Act = ActReqUnfSevStd; - break; - case ActDoActOnSevTch: - Gbl.Action.Act = ActReqUnfSevTch; - break; - default: - break; - } - break; - default: - break; - } + /* Get the action to do */ + Gbl.Usrs.Selected.Option = Usr_GetListUsrsOption (Usr_OPTION_UNKNOWN); - if (Gbl.Action.Act == Gbl.Action.Original) // Fail, no change in action - Ale_CreateAlert (Ale_ERROR,NULL,"Wrong action."); - else // Success, action has changed - Tab_SetCurrentTab (); + /***** Change action depending on my selection *****/ + Gbl.Action.Original = Gbl.Action.Act; // To check if action changes + + switch (Gbl.Usrs.Selected.Option) + { + case Usr_OPTION_RECORDS: + switch (Gbl.Action.Act) + { + case ActDoActOnSevGst: + Gbl.Action.Act = ActSeeRecSevGst; + break; + case ActDoActOnSevStd: + Gbl.Action.Act = ActSeeRecSevStd; + break; + case ActDoActOnSevTch: + Gbl.Action.Act = ActSeeRecSevTch; + break; + default: + break; + } + break; + case Usr_OPTION_HOMEWORK: + switch (Gbl.Action.Act) + { + case ActDoActOnSevStd: + case ActDoActOnSevTch: + Gbl.Action.Act = ActAdmAsgWrkCrs; + break; + default: + break; + } + break; + case Usr_OPTION_ATTENDANCE: + switch (Gbl.Action.Act) + { + case ActDoActOnSevStd: + Gbl.Action.Act = ActSeeLstUsrAtt; + break; + default: + break; + } + break; + case Usr_OPTION_MESSAGE: + switch (Gbl.Action.Act) + { + case ActDoActOnSevStd: + case ActDoActOnSevTch: + Gbl.Action.Act = ActReqMsgUsr; + break; + default: + break; + } + break; + case Usr_OPTION_EMAIL: + switch (Gbl.Action.Act) + { + case ActDoActOnSevStd: + Gbl.Action.Act = ActMaiUsr; + break; + default: + break; + } + break; + case Usr_OPTION_FOLLOW: + switch (Gbl.Action.Act) + { + case ActDoActOnSevStd: + Gbl.Action.Act = ActReqFolSevStd; + break; + case ActDoActOnSevTch: + Gbl.Action.Act = ActReqFolSevTch; + break; + default: + break; + } + break; + case Usr_OPTION_UNFOLLOW: + switch (Gbl.Action.Act) + { + case ActDoActOnSevStd: + Gbl.Action.Act = ActReqUnfSevStd; + break; + case ActDoActOnSevTch: + Gbl.Action.Act = ActReqUnfSevTch; + break; + default: + break; + } + break; + default: + break; + } + + if (Gbl.Action.Act == Gbl.Action.Original) // Fail, no change in action + Ale_CreateAlert (Ale_ERROR,NULL,"Wrong action."); + else // Success, action has changed + Tab_SetCurrentTab (); + } + else // If no users selected... + Ale_CreateAlert (Ale_WARNING,NULL, // ...write warning notice + Txt_You_must_select_one_ore_more_users); } void Usr_DoActionOnSeveralUsrs2 (void) @@ -8604,6 +8603,9 @@ void Usr_DoActionOnSeveralUsrs2 (void) default: break; } + + /***** Free memory used by list of selected users' codes *****/ + Usr_FreeListsSelectedEncryptedUsrsCods (); } /*****************************************************************************/