mirror of https://github.com/acanas/swad-core.git
Version19.68.2
This commit is contained in:
parent
56b52e34be
commit
e91801139f
|
@ -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},
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
212
swad_user.c
212
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 ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue