mirror of https://github.com/acanas/swad-core.git
Fixed bug in selection of groups related to attendance. Reported by Antonio Manuel Fernández Pérez.
This commit is contained in:
parent
a8556b8f4d
commit
f2792370ad
|
@ -5,7 +5,7 @@
|
|||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser" keep-relative-paths="false" name="CDT GCC Build Output Parser" parameter="(g?cc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/>
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-823415816682434587" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="1458321346374226041" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
|
|
@ -3274,7 +3274,7 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
|
|||
width:276px;
|
||||
}
|
||||
}
|
||||
@media only screen and (min-width:600px)
|
||||
@media only screen and (min-width:600px) and (max-width:1024px)
|
||||
{ /* For desktop */
|
||||
.Frm_C1
|
||||
{
|
||||
|
@ -3296,7 +3296,6 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
|
|||
width:382px;
|
||||
}
|
||||
}
|
||||
/*
|
||||
@media only screen and (min-width:1024px)
|
||||
{ * For desktop *
|
||||
.Frm_C1
|
||||
|
@ -3319,7 +3318,7 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
|
|||
width:700px;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/******************************** Class photo ********************************/
|
||||
.CLASSPHOTO_TITLE
|
||||
{
|
|
@ -331,9 +331,10 @@ static void Asg_ParsWhichGroupsToShow (void *Assignments)
|
|||
{
|
||||
if (Assignments)
|
||||
{
|
||||
Par_PutParOrder ((unsigned) ((struct Asg_Assignments *) Assignments)->SelectedOrder);
|
||||
Par_PutParOrder ((unsigned)
|
||||
((struct Asg_Assignments *) Assignments)->SelectedOrder);
|
||||
Pag_PutParPagNum (Pag_ASSIGNMENTS,
|
||||
((struct Asg_Assignments *) Assignments)->CurrentPage);
|
||||
((struct Asg_Assignments *) Assignments)->CurrentPage);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1429,6 +1429,7 @@ static void Att_ShowEvent (struct Att_Events *Events)
|
|||
Att_ShowOneEventRow (Events,
|
||||
true); // Show only this event
|
||||
Box_BoxTableEnd ();
|
||||
HTM_BR ();
|
||||
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
|
@ -1553,7 +1554,7 @@ static void Att_ListEventStudents (struct Att_Events *Events)
|
|||
Hlp_USERS_Attendance,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Form to select groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (Att_PutParAttCod,Events,Grp_MY_GROUPS);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActSeeOneAtt,Att_PutParAttCod,Events,NULL);
|
||||
|
||||
/***** Begin section with user list *****/
|
||||
HTM_SECTION_Begin (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -2705,7 +2706,7 @@ static void Att_ListEventsToSelect (struct Att_Events *Events,
|
|||
|
||||
/***** Put button to refresh *****/
|
||||
if (NormalView)
|
||||
Lay_WriteLinkToUpdate (Txt_Update_attendance);
|
||||
Lay_WriteLinkToUpdate (Txt_Update_attendance,NULL);
|
||||
|
||||
/***** End form *****/
|
||||
if (NormalView)
|
||||
|
|
|
@ -633,10 +633,12 @@ Me sale este error, no s
|
|||
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
||||
*/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 23.66.1 (2024-02-10)"
|
||||
#define CSS_FILE "swad23.66.1.css"
|
||||
#define Log_PLATFORM_VERSION "SWAD 23.67 (2024-03-08)"
|
||||
#define CSS_FILE "swad23.67.css"
|
||||
#define JS_FILE "swad23.53.6.js"
|
||||
/*
|
||||
Version 23.67: Mar 08, 2024 Fixed bug in selection of groups related to attendance. Reported by Antonio Manuel Fernández Pérez.
|
||||
Fixed bugs in messages. (335308 lines)
|
||||
Version 23.66.1: Feb 27, 2024 Changes in layout. (335288 lines)
|
||||
Version 23.66: Feb 11, 2024 Responsive design in hierarchy configurations. (335306 lines)
|
||||
Version 23.65: Feb 09, 2024 Responsive design in last clicks. (335502 lines)
|
||||
|
|
|
@ -625,7 +625,7 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
|
|||
HTM_TABLE_End ();
|
||||
|
||||
/***** Put link to refresh *****/
|
||||
Lay_WriteLinkToUpdate (Txt_Update_results);
|
||||
Lay_WriteLinkToUpdate (Txt_Update_results,NULL);
|
||||
|
||||
/***** End form *****/
|
||||
Frm_EndForm ();
|
||||
|
|
32
swad_group.c
32
swad_group.c
|
@ -102,7 +102,7 @@ static void Grp_EditGroupTypes (void);
|
|||
static void Grp_EditGroups (const struct Roo_Rooms *Rooms);
|
||||
static void Grp_PutIconsEditingGroups (__attribute__((unused)) void *Args);
|
||||
|
||||
static void Grp_PutCheckboxAllGrps (Grp_WhichGroups_t GroupsSelectableByStdsOrNETs);
|
||||
static void Grp_PutCheckboxAllGrps (void);
|
||||
|
||||
static void Grp_ConstructorListGrpAlreadySelec (struct ListGrpsAlreadySelec **AlreadyExistsGroupOfType);
|
||||
static void Grp_DestructorListGrpAlreadySelec (struct ListGrpsAlreadySelec **AlreadyExistsGroupOfType);
|
||||
|
@ -122,8 +122,7 @@ static void Grp_ShowWarningToStdsToChangeGrps (void);
|
|||
static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp,
|
||||
unsigned *NumGrpsThisTypeIBelong);
|
||||
static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod);
|
||||
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs);
|
||||
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp);
|
||||
static void Grp_WriteGrpHead (struct GroupType *GrpTyp);
|
||||
static void Grp_WriteRowGrp (struct Group *Grp,Lay_Highlight_t Highlight);
|
||||
static void Grp_PutFormToCreateGroupType (void);
|
||||
|
@ -337,8 +336,9 @@ static void Grp_PutIconsEditingGroups (__attribute__((unused)) void *Args)
|
|||
/*************** Show form to select one or several groups *******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Grp_ShowFormToSelectSeveralGroups (void (*FuncPars) (void *Args),void *Args,
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs)
|
||||
void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit)
|
||||
{
|
||||
extern const char *Hlp_USERS_Groups;
|
||||
extern const char *Txt_Groups;
|
||||
|
@ -361,14 +361,13 @@ void Grp_ShowFormToSelectSeveralGroups (void (*FuncPars) (void *Args),void *Args
|
|||
|
||||
/***** Begin form to update the students listed
|
||||
depending on the groups selected *****/
|
||||
Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action
|
||||
Usr_USER_LIST_SECTION_ID);
|
||||
Frm_BeginFormAnchorOnSubmit (NextAction,Usr_USER_LIST_SECTION_ID,OnSubmit);
|
||||
Set_PutParsPrefsAboutUsrList ();
|
||||
if (FuncPars)
|
||||
FuncPars (Args);
|
||||
|
||||
/***** Select all groups *****/
|
||||
Grp_PutCheckboxAllGrps (GroupsSelectableByStdsOrNETs);
|
||||
Grp_PutCheckboxAllGrps ();
|
||||
|
||||
/***** Get list of groups types and groups in this course *****/
|
||||
Grp_GetListGrpTypesAndGrpsInThisCrs (Grp_ONLY_GROUP_TYPES_WITH_GROUPS);
|
||||
|
@ -379,15 +378,14 @@ void Grp_ShowFormToSelectSeveralGroups (void (*FuncPars) (void *Args),void *Args
|
|||
NumGrpTyp < Gbl.Crs.Grps.GrpTypes.NumGrpTypes;
|
||||
NumGrpTyp++)
|
||||
if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps)
|
||||
Grp_ListGrpsForMultipleSelection (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||
GroupsSelectableByStdsOrNETs);
|
||||
Grp_ListGrpsForMultipleSelection (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp]);
|
||||
HTM_TABLE_End ();
|
||||
|
||||
/***** Free list of groups types and groups in this course *****/
|
||||
Grp_FreeListGrpTypesAndGrps ();
|
||||
|
||||
/***** Submit button *****/
|
||||
Lay_WriteLinkToUpdate (Txt_Update_users);
|
||||
Lay_WriteLinkToUpdate (Txt_Update_users,NULL);
|
||||
|
||||
/***** End form *****/
|
||||
Frm_EndForm ();
|
||||
|
@ -400,17 +398,13 @@ void Grp_ShowFormToSelectSeveralGroups (void (*FuncPars) (void *Args),void *Args
|
|||
/******************* Put checkbox to select all groups ***********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Grp_PutCheckboxAllGrps (Grp_WhichGroups_t GroupsSelectableByStdsOrNETs)
|
||||
static void Grp_PutCheckboxAllGrps (void)
|
||||
{
|
||||
extern const char *Txt_All_groups;
|
||||
bool ICanSelUnselGroup;
|
||||
|
||||
switch (Gbl.Usrs.Me.Role.Logged)
|
||||
{
|
||||
case Rol_STD:
|
||||
case Rol_NET:
|
||||
ICanSelUnselGroup = (GroupsSelectableByStdsOrNETs == Grp_ALL_GROUPS);
|
||||
break;
|
||||
case Rol_TCH:
|
||||
case Rol_DEG_ADM:
|
||||
case Rol_CTR_ADM:
|
||||
|
@ -2094,8 +2088,7 @@ static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod)
|
|||
/******* Write a list of groups as checkbox form for unique selection ********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs)
|
||||
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp)
|
||||
{
|
||||
extern const char *Txt_users_with_no_group;
|
||||
unsigned NumGrpThisType;
|
||||
|
@ -2133,8 +2126,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
|||
{
|
||||
case Rol_STD:
|
||||
case Rol_NET:
|
||||
ICanSelUnselGroup = (GroupsSelectableByStdsOrNETs == Grp_ALL_GROUPS) ||
|
||||
IBelongToThisGroup;
|
||||
ICanSelUnselGroup = IBelongToThisGroup;
|
||||
break;
|
||||
case Rol_TCH:
|
||||
case Rol_DEG_ADM:
|
||||
|
|
|
@ -166,8 +166,9 @@ struct Grp_Groups
|
|||
void Grp_WriteNamesOfSelectedGrps (void);
|
||||
void Grp_ReqEditGroups (void);
|
||||
|
||||
void Grp_ShowFormToSelectSeveralGroups (void (*FuncPars) (void *Args),void *Args,
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs);
|
||||
void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit);
|
||||
void Grp_PutParsCodGrps (void);
|
||||
void Grp_GetParCodsSeveralGrpsToShowUsrs (void);
|
||||
void Grp_GetParCodsSeveralGrps (void);
|
||||
|
|
|
@ -1652,7 +1652,7 @@ void Ins_GetAndShowInstitutionsStats (void)
|
|||
Set_GetAndUpdatePrefsAboutUsrList ();
|
||||
Figures.Level = Gbl.Scope.Current;
|
||||
Figures.FigureType = Fig_INSTITS;
|
||||
Usr_ShowFormsToSelectUsrListType (Fig_PutParsFigures,&Figures);
|
||||
Usr_ShowFormsToSelectUsrListType (ActSeeUseGbl,Fig_PutParsFigures,&Figures,NULL);
|
||||
|
||||
/***** Institutions ordered by number of centers *****/
|
||||
Ins_GetAndShowInssOrderedByNumCtrs ();
|
||||
|
|
|
@ -1245,7 +1245,7 @@ void Lay_PutContextualLinkIconText (Act_Action_t NextAction,const char *Anchor,
|
|||
/***** Put icon and text with link *****/
|
||||
if (OnSubmit)
|
||||
HTM_BUTTON_Submit_Begin (Text,
|
||||
"class=\"BT_LINK FORM_OUT_%s BOLD\" onsubmit=\"%s;\"",
|
||||
"class=\"BT_LINK FORM_OUT_%s BOLD\" onsubmit=\"%s\"",
|
||||
The_GetSuffix (),OnSubmit);
|
||||
else
|
||||
HTM_BUTTON_Submit_Begin (Text,
|
||||
|
@ -1725,15 +1725,18 @@ void Lay_WriteIndex (unsigned Index,const char *Class)
|
|||
/*************************** Write a link to update **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Lay_WriteLinkToUpdate (const char *Txt)
|
||||
void Lay_WriteLinkToUpdate (const char *Txt,const char *OnSubmit)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"UPD\"");
|
||||
HTM_BUTTON_Submit_Begin (Txt,
|
||||
"class=\"BT_LINK FORM_IN_%s BOLD\"%s",
|
||||
The_GetSuffix (),
|
||||
Gbl.Action.Act == ActReqMsgUsr ? " onsubmit=\"CopyMessageToHiddenFields();\"" :
|
||||
"");
|
||||
Ico_PutIconTextUpdate (Txt);
|
||||
if (OnSubmit)
|
||||
HTM_BUTTON_Submit_Begin (Txt,
|
||||
"class=\"BT_LINK FORM_IN_%s BOLD\" onsubmit=\"%s\"",
|
||||
The_GetSuffix (),OnSubmit);
|
||||
else
|
||||
HTM_BUTTON_Submit_Begin (Txt,
|
||||
"class=\"BT_LINK FORM_IN_%s BOLD\"",
|
||||
The_GetSuffix ());
|
||||
Ico_PutIconTextUpdate (Txt);
|
||||
HTM_BUTTON_End ();
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
|
|
@ -103,7 +103,7 @@ void Lay_HelpRichEditor (void);
|
|||
void Lay_BeginHTMLFile (FILE *File,const char *Title);
|
||||
|
||||
void Lay_WriteIndex (unsigned Index,const char *Class);
|
||||
void Lay_WriteLinkToUpdate (const char *Txt);
|
||||
void Lay_WriteLinkToUpdate (const char *Txt,const char *OnSubmit);
|
||||
|
||||
//-------------------------------- Figures ------------------------------------
|
||||
void Lay_GetAndShowNumUsrsPerSideColumns (void);
|
||||
|
|
|
@ -589,7 +589,7 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
|
|||
HTM_TABLE_End ();
|
||||
|
||||
/***** Put button to refresh *****/
|
||||
Lay_WriteLinkToUpdate (Txt_Update_results);
|
||||
Lay_WriteLinkToUpdate (Txt_Update_results,NULL);
|
||||
|
||||
/***** End form *****/
|
||||
Frm_EndForm ();
|
||||
|
|
|
@ -97,7 +97,8 @@ static const Pag_WhatPaginate_t Msg_WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
|
|||
|
||||
static void Msg_ResetMessages (struct Msg_Messages *Messages);
|
||||
|
||||
static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
|
||||
static void Msg_PutFormMsgUsrs (Act_Action_t NextAction,
|
||||
struct Msg_Messages *Messages,
|
||||
char Content[Cns_MAX_BYTES_LONG_TEXT + 1]);
|
||||
|
||||
static void Msg_ShowSntOrRcvMessages (struct Msg_Messages *Messages);
|
||||
|
@ -208,14 +209,15 @@ void Msg_FormMsgUsrs (void)
|
|||
Str_TO_TEXT,Str_DONT_REMOVE_SPACES);
|
||||
|
||||
/***** Show a form to compose a message to users *****/
|
||||
Msg_PutFormMsgUsrs (&Messages,Content);
|
||||
Msg_PutFormMsgUsrs (ActReqMsgUsr,&Messages,Content);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************** Put a form to write a new message to users ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
|
||||
static void Msg_PutFormMsgUsrs (Act_Action_t NextAction,
|
||||
struct Msg_Messages *Messages,
|
||||
char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
|
||||
{
|
||||
extern const char *Hlp_COMMUNICATION_Messages_write;
|
||||
|
@ -280,8 +282,8 @@ static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
|
|||
if (GetUsrsInCrs)
|
||||
{
|
||||
/***** Form to select groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (Msg_PutParsWriteMsg,Messages,
|
||||
Grp_MY_GROUPS);
|
||||
Grp_ShowFormToSelectSeveralGroups (NextAction,Msg_PutParsWriteMsg,Messages,
|
||||
"CopyMessageToHiddenFields();");
|
||||
|
||||
/***** Begin section with user list *****/
|
||||
HTM_SECTION_Begin (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -289,14 +291,15 @@ static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
|
|||
if (NumUsrsInCrs)
|
||||
{
|
||||
/***** Form to select type of list used for select several users *****/
|
||||
Usr_ShowFormsToSelectUsrListType (Msg_PutParsWriteMsg,Messages);
|
||||
Usr_ShowFormsToSelectUsrListType (NextAction,Msg_PutParsWriteMsg,Messages,
|
||||
"CopyMessageToHiddenFields();");
|
||||
|
||||
/***** Put link to register students *****/
|
||||
Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs ();
|
||||
|
||||
/***** Check if it's a big list *****/
|
||||
ShowUsrsInCrs = Usr_GetIfShowBigList (NumUsrsInCrs,
|
||||
Msg_PutParsWriteMsg,Messages,
|
||||
NextAction,Msg_PutParsWriteMsg,Messages,
|
||||
"CopyMessageToHiddenFields();");
|
||||
|
||||
if (ShowUsrsInCrs)
|
||||
|
@ -361,8 +364,7 @@ static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
|
|||
Lay_HelpPlainEditor ();
|
||||
|
||||
/***** Attached image (optional) *****/
|
||||
if (asprintf (&ClassInput,"MSG_MED_INPUT INPUT_%s",
|
||||
The_GetSuffix ()) < 0)
|
||||
if (asprintf (&ClassInput,"MSG_MED_INPUT INPUT_%s",The_GetSuffix ()) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Med_PutMediaUploader (-1,ClassInput);
|
||||
free (ClassInput);
|
||||
|
@ -408,7 +410,7 @@ static void Msg_PutLinkToShowMorePotentialRecipients (struct Msg_Messages *Messa
|
|||
Msg_PutParsShowMorePotentialRecipients,Messages,
|
||||
"users.svg",Ico_BLACK,
|
||||
Txt_Show_more_recipients,
|
||||
"CopyMessageToHiddenFields();"); // Show more potential recipients
|
||||
"CopyMessageToHiddenFields();");
|
||||
Mnu_ContextMenuEnd ();
|
||||
}
|
||||
|
||||
|
@ -788,7 +790,7 @@ void Msg_RecMsgFromUsr (void)
|
|||
/* Show the form again, with the subject and the message filled */
|
||||
Str_ChangeFormat (Str_FROM_FORM,Str_TO_TEXT,
|
||||
Content,Cns_MAX_BYTES_LONG_TEXT,Str_REMOVE_SPACES);
|
||||
Msg_PutFormMsgUsrs (&Messages,Content);
|
||||
Msg_PutFormMsgUsrs (ActRcvMsgUsr,&Messages,Content);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1504,7 +1506,7 @@ static void Msg_ShowSntOrRcvMessages (struct Msg_Messages *Messages)
|
|||
Msg_ShowFormToFilterMsgs (Messages);
|
||||
|
||||
/***** Put button to refresh *****/
|
||||
Lay_WriteLinkToUpdate (Txt_Update_messages);
|
||||
Lay_WriteLinkToUpdate (Txt_Update_messages,"CopyMessageToHiddenFields();");
|
||||
|
||||
Frm_EndForm ();
|
||||
|
||||
|
|
12
swad_photo.c
12
swad_photo.c
|
@ -256,6 +256,7 @@ void Pho_ReqMyPhoto (void)
|
|||
{
|
||||
/***** Show the form for sending the photo *****/
|
||||
Pho_ReqPhoto (&Gbl.Usrs.Me.UsrDat);
|
||||
HTM_BR ();
|
||||
|
||||
/***** Show my record and other data *****/
|
||||
Rec_ShowMySharedRecordAndMore ();
|
||||
|
@ -269,6 +270,7 @@ static void Pho_ReqOtherUsrPhoto (void)
|
|||
{
|
||||
/***** Show the form to send another user's photo *****/
|
||||
Pho_ReqPhoto (&Gbl.Usrs.Other.UsrDat);
|
||||
HTM_BR ();
|
||||
|
||||
/***** Show another user's record card *****/
|
||||
Rec_ShowPublicSharedRecordOtherUsr ();
|
||||
|
@ -380,7 +382,10 @@ void Pho_RecMyPhotoDetFaces (void)
|
|||
{
|
||||
/***** Receive my photo and detect faces on it *****/
|
||||
if (!Pho_ReceivePhotoAndDetectFaces (Usr_ME,&Gbl.Usrs.Me.UsrDat))
|
||||
{
|
||||
Pho_ReqPhoto (&Gbl.Usrs.Me.UsrDat); // Request my photograph again
|
||||
HTM_BR ();
|
||||
}
|
||||
|
||||
/***** Show my record and other data *****/
|
||||
Rec_ShowMySharedRecordAndMore ();
|
||||
|
@ -402,7 +407,10 @@ void Pho_RecOtherUsrPhotoDetFaces (void)
|
|||
{
|
||||
/***** Receive photo *****/
|
||||
if (!Pho_ReceivePhotoAndDetectFaces (Usr_OTHER,&Gbl.Usrs.Other.UsrDat))
|
||||
{
|
||||
Pho_ReqPhoto (&Gbl.Usrs.Other.UsrDat); // Request user's photograph again
|
||||
HTM_BR ();
|
||||
}
|
||||
|
||||
/***** Show another user's record card *****/
|
||||
Rec_ShowPublicSharedRecordOtherUsr ();
|
||||
|
@ -2136,7 +2144,7 @@ static void Pho_ShowOrPrintClassPhotoDegrees (struct Pho_DegPhotos *DegPhotos,
|
|||
{
|
||||
/***** Form to select type of list used to display degree photos *****/
|
||||
if (SeeOrPrint == Pho_DEGREES_SEE)
|
||||
Usr_ShowFormsToSelectUsrListType (Pho_PutParsDegPhoto,DegPhotos);
|
||||
Usr_ShowFormsToSelectUsrListType (ActSeePhoDeg,Pho_PutParsDegPhoto,DegPhotos,NULL);
|
||||
|
||||
HTM_TABLE_BeginCenter ();
|
||||
|
||||
|
@ -2219,7 +2227,7 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
|
|||
/***** Class photo start *****/
|
||||
if (SeeOrPrint == Pho_DEGREES_SEE)
|
||||
/***** Form to select type of list used to display degree photos *****/
|
||||
Usr_ShowFormsToSelectUsrListType (Pho_PutParsDegPhoto,DegPhotos);
|
||||
Usr_ShowFormsToSelectUsrListType (ActSeePhoDeg,Pho_PutParsDegPhoto,DegPhotos,NULL);
|
||||
|
||||
/***** Write heading *****/
|
||||
HTM_TABLE_BeginCenterPadding (2);
|
||||
|
|
|
@ -272,8 +272,7 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
|
|||
free (Title);
|
||||
|
||||
/***** Show form to select the groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (NULL,NULL,
|
||||
Grp_MY_GROUPS);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActSeeAccCrs,NULL,NULL,NULL);
|
||||
|
||||
/***** Begin section with user list *****/
|
||||
HTM_SECTION_Begin (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -281,11 +280,10 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
|
|||
if (NumTotalUsrs)
|
||||
{
|
||||
if (Usr_GetIfShowBigList (NumTotalUsrs,
|
||||
NULL,NULL,
|
||||
NULL))
|
||||
ActReqAccCrs,NULL,NULL,NULL))
|
||||
{
|
||||
/***** Form to select type of list used for select several users *****/
|
||||
Usr_ShowFormsToSelectUsrListType (NULL,NULL);
|
||||
Usr_ShowFormsToSelectUsrListType (ActReqAccCrs,NULL,NULL,NULL);
|
||||
|
||||
/***** Put link to register students *****/
|
||||
Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs ();
|
||||
|
|
38
swad_text.c
38
swad_text.c
|
@ -2862,7 +2862,7 @@ const char *Txt_Attendance = // Number of times a students has attended to face-
|
|||
#elif L==5 // fr
|
||||
"Présence";
|
||||
#elif L==6 // gn
|
||||
"Asistencia"; // Okoteve traducción
|
||||
"Asistencia";
|
||||
#elif L==7 // it
|
||||
"Presenza";
|
||||
#elif L==8 // pl
|
||||
|
@ -12756,7 +12756,7 @@ const char *Txt_File_with_the_photo =
|
|||
#elif L==5 // fr
|
||||
"Fichier avec la photo";
|
||||
#elif L==6 // gn
|
||||
"Archivo con la foto"; // Okoteve traducción
|
||||
"Archivo orekóva ta'anga";
|
||||
#elif L==7 // it
|
||||
"File con la foto";
|
||||
#elif L==8 // pl
|
||||
|
@ -12764,7 +12764,7 @@ const char *Txt_File_with_the_photo =
|
|||
#elif L==9 // pt
|
||||
"Arquivo com a foto";
|
||||
#elif L==10 // tr
|
||||
"File with the photo"; // Çeviri lazim!
|
||||
"Fotoğraflı dosya";
|
||||
#endif
|
||||
|
||||
const char *Txt_File_zone =
|
||||
|
@ -52076,48 +52076,48 @@ const char *Txt_There_have_been_X_errors_in_sending_the_message = // Warning: it
|
|||
|
||||
const char *Txt_There_is_already_a_file_named_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"Ya existe un archivo con el nombre <strong>%s</strong>."; // Necessita traducció
|
||||
"Ja hi ha un arxiu amb el nom <strong>%s</strong>.";
|
||||
#elif L==2 // de
|
||||
"There is already a file named <strong>%s</strong>."; // Übersetzung notwendig
|
||||
"Es gibt bereits eine Datei mit dem Namen <strong>%s</strong>.";
|
||||
#elif L==3 // en
|
||||
"There is already a file named <strong>%s</strong>.";
|
||||
#elif L==4 // es
|
||||
"Ya existe un archivo con el nombre <strong>%s</strong>.";
|
||||
#elif L==5 // fr
|
||||
"There is already a file named <strong>%s</strong>."; // Besoin de traduction
|
||||
"Il existe déjà un fichier nommé <strong>%s</strong>.";
|
||||
#elif L==6 // gn
|
||||
"Ya existe un archivo con el nombre <strong>%s</strong>."; // Okoteve traducción
|
||||
"Oĩma peteĩ vore hérava <strong>%s</strong>.";
|
||||
#elif L==7 // it
|
||||
"C'è già un file chiamato <strong>%s</strong>.";
|
||||
#elif L==8 // pl
|
||||
"There is already a file named <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||
"Istnieje już plik o nazwie <strong>%s</strong>.";
|
||||
#elif L==9 // pt
|
||||
"Já existe um arquivo chamado <strong>%s</strong>.";
|
||||
#elif L==10 // tr
|
||||
"There is already a file named <strong>%s</strong>."; // Çeviri lazim!
|
||||
"Zaten <strong>%s</strong> adında bir dosya var.";
|
||||
#endif
|
||||
|
||||
const char *Txt_There_is_already_a_non_empty_folder_named_X = // Warning: it is very important to include %s in the following sentences
|
||||
#if L==1 // ca
|
||||
"Ya existe una carpeta no vacía con el nombre <strong>%s</strong>."; // Necessita traducció
|
||||
"Ja hi ha una carpeta no buida amb el nom <strong>%s</strong>.";
|
||||
#elif L==2 // de
|
||||
"There is already a non-empty folder named <strong>%s</strong>."; // Übersetzung notwendig
|
||||
"Es gibt bereits einen nicht leeren Ordner mit dem Namen <strong>%s</strong>.";
|
||||
#elif L==3 // en
|
||||
"There is already a non-empty folder named <strong>%s</strong>.";
|
||||
#elif L==4 // es
|
||||
"Ya existe una carpeta no vacía con el nombre <strong>%s</strong>.";
|
||||
#elif L==5 // fr
|
||||
"There is already a non-empty folder named <strong>%s</strong>."; // Besoin de traduction
|
||||
"Il existe déjà un dossier non vide nommé <strong>%s</strong>.";
|
||||
#elif L==6 // gn
|
||||
"Ya existe una carpeta no vacía con el nombre <strong>%s</strong>."; // Okoteve traducción
|
||||
"Oĩma peteĩ kundaha nandi'&ytilde;va hérava <strong>%s</strong>.";
|
||||
#elif L==7 // it
|
||||
"C'è già una cartella non vuota chiamata <strong>%s</strong>.";
|
||||
#elif L==8 // pl
|
||||
"There is already a non-empty folder named <strong>%s</strong>."; // Potrzebujesz tlumaczenie
|
||||
"Istnieje już niepusty folder o nazwie <strong>%s</strong>.";
|
||||
#elif L==9 // pt
|
||||
"Já existe uma pasta não vazia chamada strong>%s</strong>.";
|
||||
#elif L==10 // tr
|
||||
"There is already a non-empty folder named <strong>%s</strong>."; // Çeviri lazim!
|
||||
"<strong>%s</strong> adında boş olmayan bir klasör zaten var.";
|
||||
#endif
|
||||
|
||||
const char *Txt_There_is_no_empty_account_associated_with_your_ID_X = // Warning: it is very important to include %s in the following sentences
|
||||
|
@ -52698,7 +52698,7 @@ const char *Txt_time =
|
|||
#elif L==5 // fr
|
||||
"temps";
|
||||
#elif L==6 // gn
|
||||
"tiempo"; // Okoteve traducción
|
||||
"aravo";
|
||||
#elif L==7 // it
|
||||
"tempo";
|
||||
#elif L==8 // pl
|
||||
|
@ -52706,7 +52706,7 @@ const char *Txt_time =
|
|||
#elif L==9 // pt
|
||||
"tempo";
|
||||
#elif L==10 // tr
|
||||
"time"; // Çeviri lazim!
|
||||
"zaman";
|
||||
#endif
|
||||
|
||||
const char *Txt_Time_zone_used_in_the_calculation_of_these_statistics =
|
||||
|
@ -52744,7 +52744,7 @@ const char *Txt_Timeline =
|
|||
#elif L==5 // fr
|
||||
"Chronologie";
|
||||
#elif L==6 // gn
|
||||
"Timeline"; // Okoteve traducción
|
||||
"Timeline";
|
||||
#elif L==7 // it
|
||||
"Timeline";
|
||||
#elif L==8 // pl
|
||||
|
@ -52752,7 +52752,7 @@ const char *Txt_Timeline =
|
|||
#elif L==9 // pt
|
||||
"Timeline";
|
||||
#elif L==10 // tr
|
||||
"Timeline"; // Çeviri lazim!
|
||||
"Zaman çizelgesi";
|
||||
#endif
|
||||
|
||||
const char *Txt_Timeline_OF_A_USER = // Warning: it is very important to include %s in the following sentences
|
||||
|
|
|
@ -476,48 +476,48 @@ const char *Txt_Actions[ActLst_NUM_ACTIONS] =
|
|||
,
|
||||
[ActRefNewPubGblTL] =
|
||||
#if L==1 // ca
|
||||
"Refresh global timeline (new publications)" // Necessita traducció
|
||||
"Actualitzar timeline global (noves publicacions)"
|
||||
#elif L==2 // de
|
||||
"Refresh global timeline (new publications)" // Need Übersetzung
|
||||
"Globale Zeitleiste aktualisieren (Neuveröffentlichungen)"
|
||||
#elif L==3 // en
|
||||
"Refresh global timeline (new publications)"
|
||||
#elif L==4 // es
|
||||
"Refrescar timeline global (nuevas publicaciones)"
|
||||
"Actualizar timeline global (nuevas publicaciones)"
|
||||
#elif L==5 // fr
|
||||
"Refresh global timeline (new publications)" // Besoin de traduction
|
||||
"Actualiser la chronologie globale (nouvelles publications)"
|
||||
#elif L==6 // gn
|
||||
"Refrescar timeline global (nuevas publicaciones)" // Okoteve traducción
|
||||
"Ombopyahu línea de tiempo global (post pyahu)"
|
||||
#elif L==7 // it
|
||||
"Refresh global timeline (new publications)" // Bisogno di traduzione
|
||||
"Aggiorna la sequenza temporale globale (nuove pubblicazioni)"
|
||||
#elif L==8 // pl
|
||||
"Refresh global timeline (new publications)" // Potrzebujesz tlumaczenie
|
||||
"Odśwież globalną oś czasu (nowe publikacje)"
|
||||
#elif L==9 // pt
|
||||
"Refresh global timeline (new publications)" // Precisa de tradução
|
||||
"Atualizar linha do tempo global (novas publicações)"
|
||||
#elif L==10 // tr
|
||||
"Refresh global timeline (new publications)" // Çeviri lazim!
|
||||
"Küresel zaman çizelgesini yenile (yeni yayınlar)"
|
||||
#endif
|
||||
,
|
||||
[ActRefOldPubGblTL] =
|
||||
#if L==1 // ca
|
||||
"Show previous publications in global timeline" // Necessita traducció
|
||||
"Mostrar publicacions anteriors a timeline global"
|
||||
#elif L==2 // de
|
||||
"Show previous publications in global timeline" // Need Übersetzung
|
||||
"Frühere Veröffentlichungen in der globalen Zeitleiste anzeigen"
|
||||
#elif L==3 // en
|
||||
"Show previous publications in global timeline"
|
||||
#elif L==4 // es
|
||||
"Mostrar publicaciones anteriores en timeline global"
|
||||
#elif L==5 // fr
|
||||
"Show previous publications in global timeline" // Besoin de traduction
|
||||
"Afficher les publications précédentes dans la chronologie globale"
|
||||
#elif L==6 // gn
|
||||
"Mostrar publicaciones anteriores en timeline global" // Okoteve traducción
|
||||
"Ehechauka umi kuatiañe'&etilde; yma guare línea de tiempo global-pe"
|
||||
#elif L==7 // it
|
||||
"Show previous publications in global timeline" // Bisogno di traduzione
|
||||
"Mostra le pubblicazioni precedenti nella sequenza temporale globale"
|
||||
#elif L==8 // pl
|
||||
"Show previous publications in global timeline" // Potrzebujesz tlumaczenie
|
||||
"Pokaż poprzednie publikacje na globalnej osi czasu"
|
||||
#elif L==9 // pt
|
||||
"Show previous publications in global timeline" // Precisa de tradução
|
||||
"Mostrar publicações anteriores na linha do tempo global"
|
||||
#elif L==10 // tr
|
||||
"Show previous publications in global timeline" // Çeviri lazim!
|
||||
"Önceki yayınları küresel zaman çizelgesinde göster"
|
||||
#endif
|
||||
,
|
||||
[ActRcvPstGblTL] =
|
||||
|
|
85
swad_user.c
85
swad_user.c
|
@ -192,6 +192,7 @@ static void Usr_GetGstsLst (Hie_Level_t Level);
|
|||
static void Usr_AllocateUsrsList (Rol_Role_t Role);
|
||||
|
||||
static void Usr_PutButtonToConfirmIWantToSeeBigList (unsigned NumUsrs,
|
||||
Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit);
|
||||
static void Usr_PutParsConfirmIWantToSeeBigList (void *Args);
|
||||
|
@ -204,8 +205,10 @@ static void Usr_AllocateListSelectedEncryptedUsrCods (struct Usr_SelectedUsrs *S
|
|||
Rol_Role_t Role);
|
||||
static void Usr_AllocateListOtherRecipients (void);
|
||||
|
||||
static void Set_FormToSelectUsrListType (void (*FuncPars) (void *Args),void *Args,
|
||||
Set_ShowUsrsType_t ListType);
|
||||
static void Set_FormToSelectUsrListType (Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit,
|
||||
Set_ShowUsrsType_t ListType);
|
||||
static void Usr_ListUsersByRoleToSelect (struct Usr_SelectedUsrs *SelectedUsrs,
|
||||
Rol_Role_t Role);
|
||||
static void Usr_ListUsrsForSelection (struct Usr_SelectedUsrs *SelectedUsrs,
|
||||
|
@ -3006,6 +3009,7 @@ void Usr_FreeUsrsList (Rol_Role_t Role)
|
|||
/*****************************************************************************/
|
||||
|
||||
bool Usr_GetIfShowBigList (unsigned NumUsrs,
|
||||
Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit)
|
||||
{
|
||||
|
@ -3018,7 +3022,7 @@ bool Usr_GetIfShowBigList (unsigned NumUsrs,
|
|||
to see a big list of users *****/
|
||||
if (!(ShowBigList = Par_GetParBool ("ShowBigList")))
|
||||
Usr_PutButtonToConfirmIWantToSeeBigList (NumUsrs,
|
||||
FuncPars,Args,
|
||||
NextAction,FuncPars,Args,
|
||||
OnSubmit);
|
||||
|
||||
return ShowBigList;
|
||||
|
@ -3032,6 +3036,7 @@ bool Usr_GetIfShowBigList (unsigned NumUsrs,
|
|||
/*****************************************************************************/
|
||||
|
||||
static void Usr_PutButtonToConfirmIWantToSeeBigList (unsigned NumUsrs,
|
||||
Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit)
|
||||
{
|
||||
|
@ -3040,7 +3045,7 @@ static void Usr_PutButtonToConfirmIWantToSeeBigList (unsigned NumUsrs,
|
|||
|
||||
/***** Show alert and button to confirm that I want to see the big list *****/
|
||||
Usr_FuncParsBigList = FuncPars; // Used to pass pointer to function
|
||||
Ale_ShowAlertAndButton (Gbl.Action.Act,Usr_USER_LIST_SECTION_ID,OnSubmit,
|
||||
Ale_ShowAlertAndButton (NextAction,Usr_USER_LIST_SECTION_ID,OnSubmit,
|
||||
Usr_PutParsConfirmIWantToSeeBigList,Args,
|
||||
Btn_CONFIRM_BUTTON,Txt_Show_anyway,
|
||||
Ale_WARNING,Txt_The_list_of_X_users_is_too_large_to_be_displayed,
|
||||
|
@ -3600,7 +3605,9 @@ void Usr_FreeListOtherRecipients (void)
|
|||
/*************************** Selection of list type **************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Usr_ShowFormsToSelectUsrListType (void (*FuncPars) (void *Args),void *Args)
|
||||
void Usr_ShowFormsToSelectUsrListType (Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit)
|
||||
{
|
||||
Set_BeginSettingsHead ();
|
||||
Set_BeginOneSettingSelector ();
|
||||
|
@ -3608,12 +3615,11 @@ void Usr_ShowFormsToSelectUsrListType (void (*FuncPars) (void *Args),void *Args)
|
|||
/***** Select Set_USR_LIST_AS_CLASS_PHOTO *****/
|
||||
Set_BeginPref (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO);
|
||||
|
||||
Set_FormToSelectUsrListType (FuncPars,Args,
|
||||
Set_FormToSelectUsrListType (NextAction,FuncPars,Args,OnSubmit,
|
||||
Set_USR_LIST_AS_CLASS_PHOTO);
|
||||
|
||||
/* Number of columns in the class photo */
|
||||
Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action
|
||||
Usr_USER_LIST_SECTION_ID);
|
||||
Frm_BeginFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID);
|
||||
Grp_PutParsCodGrps ();
|
||||
Set_PutParUsrListType (Set_USR_LIST_AS_CLASS_PHOTO);
|
||||
Set_PutParListWithPhotos ();
|
||||
|
@ -3627,12 +3633,11 @@ void Usr_ShowFormsToSelectUsrListType (void (*FuncPars) (void *Args),void *Args)
|
|||
/***** Select Usr_LIST_AS_LISTING *****/
|
||||
Set_BeginPref (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_LISTING);
|
||||
|
||||
Set_FormToSelectUsrListType (FuncPars,Args,
|
||||
Set_FormToSelectUsrListType (NextAction,FuncPars,Args,OnSubmit,
|
||||
Set_USR_LIST_AS_LISTING);
|
||||
|
||||
/* See the photos in list? */
|
||||
Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action
|
||||
Usr_USER_LIST_SECTION_ID);
|
||||
Frm_BeginFormAnchor (NextAction,Usr_USER_LIST_SECTION_ID);
|
||||
Grp_PutParsCodGrps ();
|
||||
Set_PutParUsrListType (Set_USR_LIST_AS_LISTING);
|
||||
if (FuncPars)
|
||||
|
@ -3650,14 +3655,15 @@ void Usr_ShowFormsToSelectUsrListType (void (*FuncPars) (void *Args),void *Args)
|
|||
/************* Put a radio element to select a users' list type **************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Set_FormToSelectUsrListType (void (*FuncPars) (void *Args),void *Args,
|
||||
Set_ShowUsrsType_t ListType)
|
||||
static void Set_FormToSelectUsrListType (Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit,
|
||||
Set_ShowUsrsType_t ListType)
|
||||
{
|
||||
extern const char *Txt_USR_LIST_TYPES[Set_NUM_USR_LIST_TYPES];
|
||||
|
||||
/***** Begin form *****/
|
||||
Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action
|
||||
Usr_USER_LIST_SECTION_ID);
|
||||
Frm_BeginFormAnchorOnSubmit (NextAction,Usr_USER_LIST_SECTION_ID,OnSubmit);
|
||||
Grp_PutParsCodGrps ();
|
||||
Set_PutParUsrListType (ListType);
|
||||
Set_PutParListWithPhotos ();
|
||||
|
@ -3665,14 +3671,17 @@ static void Set_FormToSelectUsrListType (void (*FuncPars) (void *Args),void *Arg
|
|||
FuncPars (Args);
|
||||
|
||||
/***** Link and image *****/
|
||||
HTM_BUTTON_Submit_Begin (Txt_USR_LIST_TYPES[ListType],
|
||||
"class=\"BT_LINK FORM_IN_%s NOWRAP\"%s",
|
||||
The_GetSuffix (),
|
||||
Gbl.Action.Act == ActReqMsgUsr ? " onsubmit=\"CopyMessageToHiddenFields();\"" :
|
||||
"");
|
||||
Ico_PutIcon (Usr_IconsClassPhotoOrList[ListType],Ico_BLACK,
|
||||
Txt_USR_LIST_TYPES[ListType],"ICO20x20");
|
||||
HTM_NBSPTxt (Txt_USR_LIST_TYPES[ListType]);
|
||||
if (OnSubmit)
|
||||
HTM_BUTTON_Submit_Begin (Txt_USR_LIST_TYPES[ListType],
|
||||
"class=\"BT_LINK FORM_IN_%s NOWRAP\" onsubmit=\"%s\"",
|
||||
The_GetSuffix (),OnSubmit);
|
||||
else
|
||||
HTM_BUTTON_Submit_Begin (Txt_USR_LIST_TYPES[ListType],
|
||||
"class=\"BT_LINK FORM_IN_%s NOWRAP\"",
|
||||
The_GetSuffix ());
|
||||
Ico_PutIcon (Usr_IconsClassPhotoOrList[ListType],Ico_BLACK,
|
||||
Txt_USR_LIST_TYPES[ListType],"ICO20x20");
|
||||
HTM_NBSPTxt (Txt_USR_LIST_TYPES[ListType]);
|
||||
HTM_BUTTON_End ();
|
||||
|
||||
/***** End form *****/
|
||||
|
@ -3719,8 +3728,7 @@ void Usr_PutFormToSelectUsrsToGoToAct (struct Usr_SelectedUsrs *SelectedUsrs,
|
|||
Gbl.Usrs.LstUsrs[Rol_TCH].NumUsrs;
|
||||
|
||||
/***** Show form to select the groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (FuncPars,Args,
|
||||
Grp_MY_GROUPS);
|
||||
Grp_ShowFormToSelectSeveralGroups (NextAction,FuncPars,Args,NULL);
|
||||
|
||||
/***** Begin section with user list *****/
|
||||
HTM_SECTION_Begin (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -3728,11 +3736,11 @@ void Usr_PutFormToSelectUsrsToGoToAct (struct Usr_SelectedUsrs *SelectedUsrs,
|
|||
if (NumTotalUsrs)
|
||||
{
|
||||
if (Usr_GetIfShowBigList (NumTotalUsrs,
|
||||
FuncPars,Args,
|
||||
NextAction,FuncPars,Args,
|
||||
NULL))
|
||||
{
|
||||
/***** Form to select type of list used for select several users *****/
|
||||
Usr_ShowFormsToSelectUsrListType (FuncPars,Args);
|
||||
Usr_ShowFormsToSelectUsrListType (NextAction,FuncPars,Args,NULL);
|
||||
|
||||
/***** Link to register students *****/
|
||||
Enr_CheckStdsAndPutButtonToRegisterStdsInCurrentCrs ();
|
||||
|
@ -5080,11 +5088,12 @@ void Usr_SeeGuests (void)
|
|||
if (Gbl.Usrs.LstUsrs[Rol_GST].NumUsrs)
|
||||
{
|
||||
if (Usr_GetIfShowBigList (Gbl.Usrs.LstUsrs[Rol_GST].NumUsrs,
|
||||
Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
ActLstGst,Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
NULL))
|
||||
{
|
||||
/***** Form to select type of list of users *****/
|
||||
Usr_ShowFormsToSelectUsrListType (Sco_PutParCurrentScope,&Gbl.Scope.Current);
|
||||
Usr_ShowFormsToSelectUsrListType (ActLstGst,Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
NULL);
|
||||
|
||||
/***** Draw a class photo with guests *****/
|
||||
if (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO)
|
||||
|
@ -5222,8 +5231,8 @@ void Usr_SeeStudents (void)
|
|||
|
||||
/***** Form to select groups *****/
|
||||
if (Gbl.Scope.Current == Hie_CRS)
|
||||
Grp_ShowFormToSelectSeveralGroups (Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
Grp_MY_GROUPS);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActLstStd,Sco_PutParCurrentScope,
|
||||
&Gbl.Scope.Current,NULL);
|
||||
|
||||
/***** Begin section with user list *****/
|
||||
HTM_SECTION_Begin (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -5231,11 +5240,12 @@ void Usr_SeeStudents (void)
|
|||
if (Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs)
|
||||
{
|
||||
if (Usr_GetIfShowBigList (Gbl.Usrs.LstUsrs[Rol_STD].NumUsrs,
|
||||
Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
ActLstStd,Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
NULL))
|
||||
{
|
||||
/***** Form to select type of list of users *****/
|
||||
Usr_ShowFormsToSelectUsrListType (Sco_PutParCurrentScope,&Gbl.Scope.Current);
|
||||
Usr_ShowFormsToSelectUsrListType (ActLstStd,Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
NULL);
|
||||
|
||||
/***** Draw a class photo with students of the course *****/
|
||||
if (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO)
|
||||
|
@ -5389,8 +5399,8 @@ void Usr_SeeTeachers (void)
|
|||
|
||||
/***** Form to select groups *****/
|
||||
if (Gbl.Scope.Current == Hie_CRS)
|
||||
Grp_ShowFormToSelectSeveralGroups (Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
Grp_MY_GROUPS);
|
||||
Grp_ShowFormToSelectSeveralGroups (ActLstTch,Sco_PutParCurrentScope,
|
||||
&Gbl.Scope.Current,NULL);
|
||||
|
||||
/***** Begin section with user list *****/
|
||||
HTM_SECTION_Begin (Usr_USER_LIST_SECTION_ID);
|
||||
|
@ -5398,11 +5408,12 @@ void Usr_SeeTeachers (void)
|
|||
if (NumUsrs)
|
||||
{
|
||||
if (Usr_GetIfShowBigList (NumUsrs,
|
||||
Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
ActLstTch,Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
NULL))
|
||||
{
|
||||
/***** Form to select type of list of users *****/
|
||||
Usr_ShowFormsToSelectUsrListType (Sco_PutParCurrentScope,&Gbl.Scope.Current);
|
||||
Usr_ShowFormsToSelectUsrListType (ActLstTch,Sco_PutParCurrentScope,&Gbl.Scope.Current,
|
||||
NULL);
|
||||
|
||||
/***** Draw a class photo with teachers of the course *****/
|
||||
if (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO)
|
||||
|
|
|
@ -365,6 +365,7 @@ void Usr_CopyBasicUsrDataFromList (struct Usr_Data *UsrDat,
|
|||
void Usr_FreeUsrsList (Rol_Role_t Role);
|
||||
|
||||
bool Usr_GetIfShowBigList (unsigned NumUsrs,
|
||||
Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit);
|
||||
|
||||
|
@ -392,7 +393,9 @@ void Usr_FreeSubqueryUsrCods (char *SubQueryUsrs);
|
|||
|
||||
void Usr_FreeListOtherRecipients (void);
|
||||
|
||||
void Usr_ShowFormsToSelectUsrListType (void (*FuncPars) (void *Args),void *Args);
|
||||
void Usr_ShowFormsToSelectUsrListType (Act_Action_t NextAction,
|
||||
void (*FuncPars) (void *Args),void *Args,
|
||||
const char *OnSubmit);
|
||||
unsigned Usr_GetColumnsForSelectUsrs (void);
|
||||
void Usr_SetUsrDatMainFieldNames (void);
|
||||
void Usr_WriteHeaderFieldsUsrDat (bool PutCheckBoxToSelectUsr);
|
||||
|
|
Loading…
Reference in New Issue