mirror of https://github.com/acanas/swad-core.git
Version19.67
This commit is contained in:
parent
21f7aec522
commit
8298f13fb6
|
@ -2440,14 +2440,14 @@ static unsigned Att_GetNumUsrsFromAListWhoAreInAttEvent (long AttCod,
|
|||
long LstSelectedUsrCods[],
|
||||
unsigned NumUsrsInList)
|
||||
{
|
||||
char *SubQueryAllUsrs;
|
||||
char *SubQueryUsrs;
|
||||
unsigned NumUsrsInAttEvent;
|
||||
|
||||
if (NumUsrsInList)
|
||||
{
|
||||
/***** Create subquery string *****/
|
||||
Usr_CreateSubqueryUsrCods (LstSelectedUsrCods,NumUsrsInList,
|
||||
&SubQueryAllUsrs);
|
||||
&SubQueryUsrs);
|
||||
|
||||
/***** Get number of users in attendance event from database ****/
|
||||
NumUsrsInAttEvent =
|
||||
|
@ -2456,10 +2456,10 @@ static unsigned Att_GetNumUsrsFromAListWhoAreInAttEvent (long AttCod,
|
|||
"SELECT COUNT(*) FROM att_usr"
|
||||
" WHERE AttCod=%ld"
|
||||
" AND UsrCod IN (%s) AND Present='Y'",
|
||||
AttCod,SubQueryAllUsrs);
|
||||
AttCod,SubQueryUsrs);
|
||||
|
||||
/***** Free memory for subquery string *****/
|
||||
Usr_FreeSubqueryUsrCods (SubQueryAllUsrs);
|
||||
Usr_FreeSubqueryUsrCods (SubQueryUsrs);
|
||||
}
|
||||
else
|
||||
NumUsrsInAttEvent = 0;
|
||||
|
|
|
@ -487,16 +487,15 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.66.5 (2019-11-13)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.67 (2019-11-13)"
|
||||
#define CSS_FILE "swad19.47.css"
|
||||
#define JS_FILE "swad19.65.js"
|
||||
/*
|
||||
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
|
||||
// TODO: Impedir la creación y edición de proyectos si no son editables.
|
||||
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
|
||||
// TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area
|
||||
|
||||
Version 19.66.6: Nov 13, 2019 Filter projects by selected users. (? lines)
|
||||
Version 19.67: Nov 13, 2019 Filter projects by selected users. (246729 lines)
|
||||
Version 19.66.5: Nov 13, 2019 Code refactoring in list of users in attendance event. (246704 lines)
|
||||
Version 19.66.4: Nov 13, 2019 Code refactoring in list of users in attendance event. (246729 lines)
|
||||
Version 19.66.3: Nov 13, 2019 Filter projects by selected users. Not finished. (246656 lines)
|
||||
|
|
|
@ -274,7 +274,7 @@ void McR_ShowUsrsMchResults (void)
|
|||
Dat_GetIniEndDatesFromForm ();
|
||||
|
||||
/***** Check the number of users whose matches results will be shown *****/
|
||||
if (Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods ()) // If some users are selected...
|
||||
if (Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods ()) // If some users are selected...
|
||||
{
|
||||
/***** Begin box and table *****/
|
||||
Box_StartBoxTable (NULL,Txt_Results,NULL,
|
||||
|
|
139
swad_project.c
139
swad_project.c
|
@ -124,6 +124,7 @@ struct Prj_Faults
|
|||
/***************************** Private prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prj_GetSelectedUsrsAndShowPrjs (void);
|
||||
static void Prj_ReqListUsrsToSelect (void);
|
||||
|
||||
static void Prj_ShowProjectsInCurrentPage (void);
|
||||
|
@ -251,15 +252,25 @@ void Prj_SeeProjects (void)
|
|||
if (Gbl.Prjs.Filter.ReqUsrs) // Request the selection of users
|
||||
/* List users to select some of them */
|
||||
Prj_ReqListUsrsToSelect ();
|
||||
if (Gbl.Prjs.Filter.SelUsrs) // Some users should have been selected
|
||||
else
|
||||
/* Show projects of selected users */
|
||||
Prj_ShowProjectsInCurrentPage ();
|
||||
Prj_GetSelectedUsrsAndShowPrjs ();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/****** Get and check list of selected users, and show users' projects *******/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Prj_GetSelectedUsrsAndShowPrjs (void)
|
||||
{
|
||||
Usr_GetSelectedUsrsAndGoToAct (Prj_ShowProjectsInCurrentPage,// when user(s) selected
|
||||
Prj_ReqListUsrsToSelect); // when no user selected
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**************************** List users to select ***************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -686,6 +697,10 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
|||
/***** Put another user's code *****/
|
||||
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
||||
Usr_PutParamOtherUsrCodEncrypted ();
|
||||
|
||||
/***** Put selected users' codes *****/
|
||||
if (Filter->Who == Usr_WHO_SELECTED)
|
||||
Usr_PutHiddenParSelectedUsrsCods ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -801,15 +816,9 @@ static void Prj_GetParamWho (void)
|
|||
|
||||
/***** Request users? / Some users should have been selected? *****/
|
||||
if (Gbl.Prjs.Filter.Who == Usr_WHO_SELECTED)
|
||||
{
|
||||
Gbl.Prjs.Filter.ReqUsrs = Usr_GetHiddenParamRequestUsrs ();
|
||||
Gbl.Prjs.Filter.SelUsrs = Usr_GetHiddenParamSelectedUsrs ();
|
||||
}
|
||||
else
|
||||
{
|
||||
Gbl.Prjs.Filter.ReqUsrs = false;
|
||||
Gbl.Prjs.Filter.SelUsrs = false;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -2645,10 +2654,11 @@ static void Prj_GetListProjects (void)
|
|||
"projects.ModifTime DESC,"
|
||||
"projects.Title",
|
||||
};
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_RES *mysql_res = NULL; // Initialized to avoid freeing when not assigned
|
||||
MYSQL_ROW row;
|
||||
unsigned NumUsrsInList;
|
||||
long *LstSelectedUsrCods;
|
||||
char *SubQueryUsrs;
|
||||
unsigned long NumRows = 0; // Initialized to avoid warning
|
||||
unsigned NumPrjsFromDB;
|
||||
unsigned NumPrjsAfterFilter = 0;
|
||||
|
@ -2656,14 +2666,6 @@ static void Prj_GetListProjects (void)
|
|||
struct Prj_Faults Faults;
|
||||
long PrjCod;
|
||||
|
||||
/***** Get list of selected users' codes if not already got *****/
|
||||
Usr_GetListsSelectedUsrsCods ();
|
||||
NumUsrsInList = Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods ();
|
||||
|
||||
/***** Get list of users selected to show their projects *****/
|
||||
if (NumUsrsInList)
|
||||
Usr_GetListSelectedUsrCods (NumUsrsInList,&LstSelectedUsrCods);
|
||||
|
||||
/***** Get list of projects from database *****/
|
||||
if (Gbl.Prjs.LstIsRead)
|
||||
Prj_FreeListProjects ();
|
||||
|
@ -2737,6 +2739,7 @@ static void Prj_GetListProjects (void)
|
|||
switch (Gbl.Prjs.Filter.Who)
|
||||
{
|
||||
case Usr_WHO_ME:
|
||||
/* Get list of projects */
|
||||
switch (Gbl.Prjs.SelectedOrder)
|
||||
{
|
||||
case Prj_ORDER_START_TIME:
|
||||
|
@ -2749,6 +2752,7 @@ static void Prj_GetListProjects (void)
|
|||
"%s%s%s"
|
||||
" AND projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod=%ld"
|
||||
" GROUP BY projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
PreNonSubQuery,HidVisSubQuery,DptCodSubQuery,
|
||||
|
@ -2764,6 +2768,7 @@ static void Prj_GetListProjects (void)
|
|||
"%s%s%s"
|
||||
" AND projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod=%ld"
|
||||
" GROUP BY projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
PreNonSubQuery,HidVisSubQuery,DptCodSubQuery,
|
||||
|
@ -2773,42 +2778,71 @@ static void Prj_GetListProjects (void)
|
|||
}
|
||||
break;
|
||||
case Usr_WHO_SELECTED:
|
||||
switch (Gbl.Prjs.SelectedOrder)
|
||||
/* Get list of selected users' codes if not already got */
|
||||
// Usr_GetListsSelectedUsrsCods ();
|
||||
NumUsrsInList = Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods ();
|
||||
|
||||
if (NumUsrsInList)
|
||||
{
|
||||
case Prj_ORDER_START_TIME:
|
||||
case Prj_ORDER_END_TIME:
|
||||
case Prj_ORDER_TITLE:
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT projects.PrjCod"
|
||||
" FROM projects,prj_usr"
|
||||
" WHERE projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod=%ld"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
PreNonSubQuery,HidVisSubQuery,DptCodSubQuery,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
OrderBySubQuery[Gbl.Prjs.SelectedOrder]);
|
||||
break;
|
||||
case Prj_ORDER_DEPARTMENT:
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT projects.PrjCod"
|
||||
" FROM prj_usr,projects LEFT JOIN departments"
|
||||
" ON projects.DptCod=departments.DptCod"
|
||||
" WHERE projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod=%ld"
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
PreNonSubQuery,HidVisSubQuery,DptCodSubQuery,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
OrderBySubQuery[Gbl.Prjs.SelectedOrder]);
|
||||
break;
|
||||
/* Get list of users selected to show their projects */
|
||||
Usr_GetListSelectedUsrCods (NumUsrsInList,&LstSelectedUsrCods);
|
||||
|
||||
/* Create subquery string */
|
||||
Usr_CreateSubqueryUsrCods (LstSelectedUsrCods,NumUsrsInList,
|
||||
&SubQueryUsrs);
|
||||
|
||||
/* Get list of projects */
|
||||
switch (Gbl.Prjs.SelectedOrder)
|
||||
{
|
||||
case Prj_ORDER_START_TIME:
|
||||
case Prj_ORDER_END_TIME:
|
||||
case Prj_ORDER_TITLE:
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT projects.PrjCod"
|
||||
" FROM projects,prj_usr"
|
||||
" WHERE projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod IN (%s)"
|
||||
" GROUP BY projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
PreNonSubQuery,HidVisSubQuery,DptCodSubQuery,
|
||||
SubQueryUsrs,
|
||||
OrderBySubQuery[Gbl.Prjs.SelectedOrder]);
|
||||
break;
|
||||
case Prj_ORDER_DEPARTMENT:
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get projects",
|
||||
"SELECT projects.PrjCod"
|
||||
" FROM prj_usr,projects LEFT JOIN departments"
|
||||
" ON projects.DptCod=departments.DptCod"
|
||||
" WHERE projects.CrsCod=%ld"
|
||||
"%s%s%s"
|
||||
" AND projects.PrjCod=prj_usr.PrjCod"
|
||||
" AND prj_usr.UsrCod IN (%s)"
|
||||
" GROUP BY projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||
" ORDER BY %s",
|
||||
Gbl.Hierarchy.Crs.CrsCod,
|
||||
PreNonSubQuery,HidVisSubQuery,DptCodSubQuery,
|
||||
SubQueryUsrs,
|
||||
OrderBySubQuery[Gbl.Prjs.SelectedOrder]);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Free memory for subquery string */
|
||||
Usr_FreeSubqueryUsrCods (SubQueryUsrs);
|
||||
|
||||
/* Free list of user codes */
|
||||
Usr_FreeListSelectedUsrCods (LstSelectedUsrCods);
|
||||
}
|
||||
else
|
||||
NumRows = 0;
|
||||
|
||||
/* Free memory used by list of selected users' codes */
|
||||
// Usr_FreeListsSelectedEncryptedUsrsCods ();
|
||||
break;
|
||||
case Usr_WHO_ALL:
|
||||
/* Get list of projects */
|
||||
switch (Gbl.Prjs.SelectedOrder)
|
||||
{
|
||||
case Prj_ORDER_START_TIME:
|
||||
|
@ -2891,13 +2925,6 @@ static void Prj_GetListProjects (void)
|
|||
|
||||
Gbl.Prjs.Num = NumPrjsAfterFilter;
|
||||
Gbl.Prjs.LstIsRead = true;
|
||||
|
||||
/***** Free list of user codes *****/
|
||||
if (NumUsrsInList)
|
||||
Usr_FreeListSelectedUsrCods (LstSelectedUsrCods);
|
||||
|
||||
/***** Free memory used by list of selected users' codes *****/
|
||||
Usr_FreeListsSelectedEncryptedUsrsCods ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -91,7 +91,6 @@ struct Prj_Filter
|
|||
{
|
||||
Usr_Who_t Who; // Show my / selected users' / all projects
|
||||
bool ReqUsrs; // Request selection of users to view their projects?
|
||||
bool SelUsrs; // Are there selected users to view their projects?
|
||||
unsigned Assign; // Show assigned / non assigned projects
|
||||
unsigned Hidden; // Show hidden / visible projects
|
||||
unsigned Faulti; // Show faulty / faultless projects
|
||||
|
|
|
@ -916,7 +916,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
|
|||
HTM_SECTION_Begin (Sta_STAT_RESULTS_SECTION_ID);
|
||||
|
||||
/***** Check selection *****/
|
||||
if (!Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods ()) // Error: there are no users selected
|
||||
if (!Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods ()) // Error: there are no users selected
|
||||
{
|
||||
/* Write warning message, clean and abort */
|
||||
Ale_ShowAlert (Ale_WARNING,Txt_You_must_select_one_ore_more_users);
|
||||
|
|
|
@ -7646,7 +7646,7 @@ void Tst_ShowUsrsTstResults (void)
|
|||
Dat_GetIniEndDatesFromForm ();
|
||||
|
||||
/***** Check the number of users whose tests results will be shown *****/
|
||||
if (Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods ()) // If some users are selected...
|
||||
if (Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods ()) // If some users are selected...
|
||||
{
|
||||
/***** Begin box and table *****/
|
||||
Box_StartBoxTable (NULL,Txt_Results,NULL,
|
||||
|
|
100
swad_user.c
100
swad_user.c
|
@ -5971,7 +5971,30 @@ bool Usr_FindEncryptedUsrCodsInListOfSelectedEncryptedUsrCods (const char *Encry
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************ Count number of valid users' IDs in encrypted list *************/
|
||||
/******* Check if there are valid users in list of encrypted user codes ******/
|
||||
/*****************************************************************************/
|
||||
|
||||
bool Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods (void)
|
||||
{
|
||||
const char *Ptr;
|
||||
struct UsrData UsrDat;
|
||||
|
||||
/***** Loop over the list Gbl.Usrs.Selected.List[Rol_UNK]
|
||||
to check if there are valid users *****/
|
||||
Ptr = Gbl.Usrs.Selected.List[Rol_UNK];
|
||||
while (*Ptr)
|
||||
{
|
||||
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
|
||||
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
|
||||
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
|
||||
if (UsrDat.UsrCod > 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******** Count number of valid users in list of encrypted user codes ********/
|
||||
/*****************************************************************************/
|
||||
|
||||
unsigned Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods (void)
|
||||
|
@ -5980,7 +6003,8 @@ unsigned Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods (void)
|
|||
unsigned NumUsrs = 0;
|
||||
struct UsrData UsrDat;
|
||||
|
||||
/***** Loop over the list Gbl.Usrs.Selected.List[Rol_UNK] to count the number of users *****/
|
||||
/***** Loop over the list Gbl.Usrs.Selected.List[Rol_UNK]
|
||||
to count the number of users *****/
|
||||
Ptr = Gbl.Usrs.Selected.List[Rol_UNK];
|
||||
while (*Ptr)
|
||||
{
|
||||
|
@ -6081,42 +6105,39 @@ void Usr_FreeListSelectedUsrCods (long *LstSelectedUsrCods)
|
|||
|
||||
void Usr_CreateSubqueryUsrCods (long LstSelectedUsrCods[],
|
||||
unsigned NumUsrsInList,
|
||||
char **SubQueryAllUsrs)
|
||||
char **SubQueryUsrs)
|
||||
{
|
||||
char SubQueryOneUsr[1 + Cns_MAX_DECIMAL_DIGITS_LONG + 1];
|
||||
unsigned NumUsr;
|
||||
size_t MaxLength;
|
||||
|
||||
if (NumUsrsInList)
|
||||
{
|
||||
/***** Allocate space for subquery *****/
|
||||
MaxLength = NumUsrsInList * (1 + Cns_MAX_DECIMAL_DIGITS_LONG);
|
||||
if ((*SubQueryAllUsrs = (char *) malloc (MaxLength + 1)) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
(*SubQueryAllUsrs)[0] = '\0';
|
||||
/***** Allocate space for subquery *****/
|
||||
MaxLength = NumUsrsInList * (1 + Cns_MAX_DECIMAL_DIGITS_LONG);
|
||||
if ((*SubQueryUsrs = (char *) malloc (MaxLength + 1)) == NULL)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
(*SubQueryUsrs)[0] = '\0';
|
||||
|
||||
/***** Count number of students registered in an event in database *****/
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrsInList;
|
||||
NumUsr++)
|
||||
if (NumUsr)
|
||||
{
|
||||
snprintf (SubQueryOneUsr,sizeof (SubQueryOneUsr),
|
||||
",%ld",
|
||||
LstSelectedUsrCods[NumUsr]);
|
||||
Str_Concat (*SubQueryAllUsrs,SubQueryOneUsr,
|
||||
MaxLength);
|
||||
}
|
||||
else
|
||||
snprintf (*SubQueryAllUsrs,sizeof (SubQueryOneUsr),
|
||||
"%ld",
|
||||
LstSelectedUsrCods[NumUsr]);
|
||||
}
|
||||
/***** Build subquery *****/
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrsInList;
|
||||
NumUsr++)
|
||||
if (NumUsr)
|
||||
{
|
||||
snprintf (SubQueryOneUsr,sizeof (SubQueryOneUsr),
|
||||
",%ld",
|
||||
LstSelectedUsrCods[NumUsr]);
|
||||
Str_Concat (*SubQueryUsrs,SubQueryOneUsr,
|
||||
MaxLength);
|
||||
}
|
||||
else
|
||||
snprintf (*SubQueryUsrs,sizeof (SubQueryOneUsr),
|
||||
"%ld",
|
||||
LstSelectedUsrCods[NumUsr]);
|
||||
}
|
||||
|
||||
void Usr_FreeSubqueryUsrCods (char *SubQueryAllUsrs)
|
||||
void Usr_FreeSubqueryUsrCods (char *SubQueryUsrs)
|
||||
{
|
||||
free (SubQueryAllUsrs);
|
||||
free (SubQueryUsrs);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -6283,7 +6304,6 @@ void Usr_PutFormToSelectUsrsToGoToAct (Act_Action_t NextAction,void (*FuncParams
|
|||
|
||||
/* Hidden parameters */
|
||||
Grp_PutParamsCodGrps ();
|
||||
Usr_PutHiddenParamSelectedUsrs ();
|
||||
if (NextAction == ActAdmAsgWrkCrs)
|
||||
{
|
||||
Gbl.FileBrowser.FullTree = true; // By default, show all files
|
||||
|
@ -6337,7 +6357,7 @@ void Usr_GetSelectedUsrsAndGoToAct (void (*FuncWhenUsrsSelected) (),
|
|||
Usr_GetListsSelectedUsrsCods ();
|
||||
|
||||
/***** Check number of users *****/
|
||||
if (Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods ()) // If some users are selected...
|
||||
if (Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods ()) // If some users are selected...
|
||||
FuncWhenUsrsSelected ();
|
||||
else // If no users are selected...
|
||||
{
|
||||
|
@ -8453,8 +8473,8 @@ void Usr_DoActionOnSeveralUsrs1 (void)
|
|||
/* Get list of selected users */
|
||||
Usr_GetListsSelectedUsrsCods ();
|
||||
|
||||
/* Check the number of users */
|
||||
if (!Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods ())// If no users selected...
|
||||
/* 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);
|
||||
|
@ -9889,17 +9909,3 @@ bool Usr_GetHiddenParamRequestUsrs (void)
|
|||
{
|
||||
return Par_GetParToBool ("RequestUsrs");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**** Hidden param to indicate that some users should have been selected *****/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Usr_PutHiddenParamSelectedUsrs (void)
|
||||
{
|
||||
Par_PutHiddenParamChar ("SelectedUsrs",'Y');
|
||||
}
|
||||
|
||||
bool Usr_GetHiddenParamSelectedUsrs (void)
|
||||
{
|
||||
return Par_GetParToBool ("SelectedUsrs");
|
||||
}
|
||||
|
|
|
@ -434,6 +434,7 @@ void Usr_GetListsSelectedUsrsCods (void);
|
|||
bool Usr_GetListMsgRecipientsWrittenExplicitelyBySender (bool WriteErrorMsgs);
|
||||
|
||||
bool Usr_FindEncryptedUsrCodsInListOfSelectedEncryptedUsrCods (const char *EncryptedUsrCodToFind);
|
||||
bool Usr_CheckIfThereAreUsrsInListOfSelectedEncryptedUsrCods (void);
|
||||
unsigned Usr_CountNumUsrsInListOfSelectedEncryptedUsrCods (void);
|
||||
void Usr_FreeListsSelectedEncryptedUsrsCods (void);
|
||||
|
||||
|
@ -442,8 +443,8 @@ void Usr_FreeListSelectedUsrCods (long *LstSelectedUsrCods);
|
|||
|
||||
void Usr_CreateSubqueryUsrCods (long LstSelectedUsrCods[],
|
||||
unsigned NumUsrsInList,
|
||||
char **SubQueryAllUsrs);
|
||||
void Usr_FreeSubqueryUsrCods (char *SubQueryAllUsrs);
|
||||
char **SubQueryUsrs);
|
||||
void Usr_FreeSubqueryUsrCods (char *SubQueryUsrs);
|
||||
|
||||
void Usr_FreeListOtherRecipients (void);
|
||||
|
||||
|
@ -513,7 +514,5 @@ void Usr_PutHiddenParamWho (Usr_Who_t Who);
|
|||
Usr_Who_t Usr_GetHiddenParamWho (void);
|
||||
void Usr_PutHiddenParamRequestUsrs (void);
|
||||
bool Usr_GetHiddenParamRequestUsrs (void);
|
||||
void Usr_PutHiddenParamSelectedUsrs (void);
|
||||
bool Usr_GetHiddenParamSelectedUsrs (void);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue