Version 23.43: Nov 06, 2023 Code refactoring in forms.

This commit is contained in:
acanas 2023-11-06 00:32:41 +01:00
parent ea3ec4837a
commit 91152dcf24
35 changed files with 805 additions and 702 deletions

View File

@ -4689,7 +4689,7 @@ static void Brw_PutIconFileWithLinkToViewMetadata (const struct Brw_FileMetadata
if (FileMetadata->FilFolLnk.Type == Brw_IS_FILE)
Brw_PutIconFile (FileMetadata->FilFolLnk.Name,
"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16",
Frm_PUT_FORM_TO_GO); // Put link to view metadata
Frm_PUT_FORM); // Put link to view metadata
else
Ico_PutIconLink ("up-right-from-square.svg",Ico_BLACK,
Brw_ActReqDatFile[Gbl.FileBrowser.Type]);
@ -4707,7 +4707,7 @@ static void Brw_PutIconFileWithLinkToViewMetadata (const struct Brw_FileMetadata
/*****************************************************************************/
void Brw_PutIconFile (const char *FileName,
const char *Class,Frm_PutFormToGo_t PutFormToGo)
const char *Class,Frm_PutForm_t PutFormToGo)
{
extern const unsigned Ext_NUM_FILE_EXT_ALLOWED;
extern const char *Ext_FileExtensionsAllowed[];
@ -4744,10 +4744,10 @@ void Brw_PutIconFile (const char *FileName,
switch (PutFormToGo)
{
case Frm_DONT_PUT_FORM_TO_GO:
case Frm_DONT_PUT_FORM:
HTM_IMG (URL,Icon,Title,"class=\"%s\"",Class);
break;
case Frm_PUT_FORM_TO_GO:
case Frm_PUT_FORM:
HTM_INPUT_IMAGE (URL,Icon,Title,"class=\"%s\"",Class);
break;
}
@ -8073,7 +8073,7 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
if (FileMetadata->FilFolLnk.Type == Brw_IS_FILE)
Brw_PutIconFile (FileMetadata->FilFolLnk.Name,
"ICO40x40",
Frm_DONT_PUT_FORM_TO_GO); // Don't put link to view metadata
Frm_DONT_PUT_FORM); // Don't put link to view metadata
else
Ico_PutIcon ("up-right-from-square.svg",Ico_BLACK,Txt_Link,"ICO40x40");
@ -8098,7 +8098,7 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
if (FileMetadata->FilFolLnk.Type == Brw_IS_FILE)
Brw_PutIconFile (FileMetadata->FilFolLnk.Name,
"ICO40x40",
Frm_DONT_PUT_FORM_TO_GO); // Don't put link to view metadata
Frm_DONT_PUT_FORM); // Don't put link to view metadata
else
Ico_PutIcon ("up-right-from-square.svg",Ico_BLACK,Txt_Link,"ICO40x40");
HTM_TxtF (" %s ",FileNameToShow);
@ -9506,7 +9506,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
case Brw_IS_FILE:
Brw_PutIconFile (FileMetadata.FilFolLnk.Name,
"CONTEXT_ICO16x16",
Frm_DONT_PUT_FORM_TO_GO); // Don't put link to view metadata
Frm_DONT_PUT_FORM); // Don't put link to view metadata
break;
case Brw_IS_FOLDER:
Ico_PutIcon ("folder-yellow.png",Ico_UNCHANGED,

View File

@ -244,7 +244,7 @@ void Brw_DB_RemoveExpiredExpandedFolders (void);
void Brw_SetFullPathInTree (void);
void Brw_PutIconFile (const char *FileName,
const char *Class,Frm_PutFormToGo_t PutFormToGo);
const char *Class,Frm_PutForm_t PutFormToGo);
//-----------------------------------------------------------------------------
void Brw_CreateTmpPublicLinkToPrivateFile (const char *FullPathIncludingFile,

View File

@ -82,15 +82,15 @@ static void CtrCfg_Map (const struct Map_Coordinates *Coord);
static void CtrCfg_Latitude (double Latitude);
static void CtrCfg_Longitude (double Longitude);
static void CtrCfg_Altitude (double Altitude);
static void CtrCfg_Photo (Vie_ViewType_t ViewType,bool PutForm,bool PutLink,
static void CtrCfg_Photo (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm,bool PutLink,
const char PathPhoto[PATH_MAX + 1]);
static void CtrCfg_GetPhotoAttr (long CtrCod,char **PhotoAttribution);
static void CtrCfg_FreePhotoAttr (char **PhotoAttribution);
static void CtrCfg_Institution (Vie_ViewType_t ViewType,bool PutForm);
static void CtrCfg_FullName (bool PutForm);
static void CtrCfg_ShrtName (bool PutForm);
static void CtrCfg_Place (bool PutForm);
static void CtrCfg_WWW (Vie_ViewType_t ViewType,bool PutForm);
static void CtrCfg_Institution (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm);
static void CtrCfg_FullName (Frm_PutForm_t PutForm);
static void CtrCfg_ShrtName (Frm_PutForm_t PutForm);
static void CtrCfg_Place (Frm_PutForm_t PutForm);
static void CtrCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm);
static void CtrCfg_Shortcut (Vie_ViewType_t ViewType);
static void CtrCfg_QR (void);
static void CtrCfg_NumUsrs (void);
@ -127,12 +127,12 @@ static void CtrCfg_Configuration (Vie_ViewType_t ViewType)
extern const char *Hlp_CENTER_Information;
struct Map_Coordinates Coord;
bool PutLink;
bool PutFormIns;
bool PutFormName;
bool PutFormPlc;
bool PutFormCoor;
bool PutFormWWW;
bool PutFormPhoto;
Frm_PutForm_t PutFormIns;
Frm_PutForm_t PutFormName;
Frm_PutForm_t PutFormPlc;
Frm_PutForm_t PutFormCoor;
Frm_PutForm_t PutFormWWW;
Frm_PutForm_t PutFormPhoto;
bool MapIsAvailable;
char PathPhoto[PATH_MAX + 1];
bool PhotoExists;
@ -146,12 +146,18 @@ static void CtrCfg_Configuration (Vie_ViewType_t ViewType)
/***** Initializations *****/
PutLink = ViewType == Vie_VIEW && Gbl.Hierarchy.Node[Hie_CTR].WWW[0];
PutFormIns = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
PutFormName = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM;
PutFormIns = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
PutFormName = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
PutFormPlc =
PutFormCoor =
PutFormWWW =
PutFormPhoto = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM;
PutFormPhoto = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/***** Begin box *****/
Box_BoxBegin (NULL,NULL,
@ -180,7 +186,7 @@ static void CtrCfg_Configuration (Vie_ViewType_t ViewType)
CtrCfg_Place (PutFormPlc);
/***** Coordinates *****/
if (PutFormCoor)
if (PutFormCoor == Frm_PUT_FORM)
{
CtrCfg_Latitude (Coord.Latitude );
CtrCfg_Longitude (Coord.Longitude);
@ -421,7 +427,7 @@ static void CtrCfg_Altitude (double Altitude)
/***************************** Draw center photo *****************************/
/*****************************************************************************/
static void CtrCfg_Photo (Vie_ViewType_t ViewType,bool PutForm,bool PutLink,
static void CtrCfg_Photo (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm,bool PutLink,
const char PathPhoto[PATH_MAX + 1])
{
char *PhotoAttribution = NULL;
@ -460,23 +466,27 @@ static void CtrCfg_Photo (Vie_ViewType_t ViewType,bool PutForm,bool PutLink,
HTM_DIV_End ();
/****** Photo attribution ******/
if (PutForm)
switch (PutForm)
{
HTM_DIV_Begin ("class=\"CM\"");
Frm_BeginForm (ActChgCtrPhoAtt);
HTM_TEXTAREA_Begin ("id=\"AttributionArea\" name=\"Attribution\" rows=\"3\""
" onchange=\"this.form.submit();return false;\"");
if (PhotoAttribution)
HTM_Txt (PhotoAttribution);
HTM_TEXTAREA_End ();
Frm_EndForm ();
HTM_DIV_End ();
}
else if (PhotoAttribution)
{
HTM_DIV_Begin ("class=\"ATTRIBUTION\"");
HTM_Txt (PhotoAttribution);
HTM_DIV_End ();
case Frm_DONT_PUT_FORM:
if (PhotoAttribution)
{
HTM_DIV_Begin ("class=\"ATTRIBUTION\"");
HTM_Txt (PhotoAttribution);
HTM_DIV_End ();
}
break;
case Frm_PUT_FORM:
HTM_DIV_Begin ("class=\"CM\"");
Frm_BeginForm (ActChgCtrPhoAtt);
HTM_TEXTAREA_Begin ("id=\"AttributionArea\" name=\"Attribution\" rows=\"3\""
" onchange=\"this.form.submit();return false;\"");
if (PhotoAttribution)
HTM_Txt (PhotoAttribution);
HTM_TEXTAREA_End ();
Frm_EndForm ();
HTM_DIV_End ();
break;
}
/****** Free memory used for photo attribution ******/
@ -534,75 +544,79 @@ static void CtrCfg_FreePhotoAttr (char **PhotoAttribution)
/***************** Show institution in center configuration ******************/
/*****************************************************************************/
static void CtrCfg_Institution (Vie_ViewType_t ViewType,bool PutForm)
static void CtrCfg_Institution (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm)
{
extern const char *Par_CodeStr[];
extern const char *Txt_Institution;
unsigned NumIns;
const struct Hie_Node *Ins;
const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = Par_CodeStr[ParCod_OthIns],
};
/***** Institution *****/
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? Par_CodeStr[ParCod_OthIns] :
NULL,
Txt_Institution);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Institution);
/* Data */
HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
/* Get list of institutions of the current country */
Ins_GetBasicListOfInstitutions (Gbl.Hierarchy.Node[Hie_CTY].HieCod);
switch (PutForm)
{
case Frm_DONT_PUT_FORM:
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeInsInf);
ParCod_PutPar (ParCod_Ins,Gbl.Hierarchy.Node[Hie_INS].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_INS].ShrtName),
"class=\"LT BT_LINK\"");
Str_FreeGoToTitle ();
}
/* Put form to select institution */
Frm_BeginForm (ActChgCtrInsCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthInsCod\" name=\"OthInsCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumIns = 0;
NumIns < Gbl.Hierarchy.List[Hie_CTY].Num;
NumIns++)
{
Ins = &Gbl.Hierarchy.List[Hie_CTY].Lst[NumIns];
HTM_OPTION (HTM_Type_LONG,&Ins->HieCod,
Ins->HieCod == Gbl.Hierarchy.Node[Hie_INS].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Ins->ShrtName);
}
HTM_SELECT_End ();
Frm_EndForm ();
Lgo_DrawLogo (Hie_INS,
Gbl.Hierarchy.Node[Hie_INS].HieCod,
Gbl.Hierarchy.Node[Hie_INS].ShrtName,
20,"LM");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_INS].FullName);
/* Free list of institutions */
Hie_FreeList (Hie_CTY);
}
else // I can not move center to another institution
{
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeInsInf);
ParCod_PutPar (ParCod_Ins,Gbl.Hierarchy.Node[Hie_INS].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_INS].ShrtName),
"class=\"LT BT_LINK\"");
Str_FreeGoToTitle ();
}
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
Frm_EndForm ();
}
break;
case Frm_PUT_FORM:
/* Get list of institutions of the current country */
Ins_GetBasicListOfInstitutions (Gbl.Hierarchy.Node[Hie_CTY].HieCod);
Lgo_DrawLogo (Hie_INS,
Gbl.Hierarchy.Node[Hie_INS].HieCod,
Gbl.Hierarchy.Node[Hie_INS].ShrtName,
20,"LM");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_INS].FullName);
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
/* Put form to select institution */
Frm_BeginForm (ActChgCtrInsCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthInsCod\" name=\"OthInsCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumIns = 0;
NumIns < Gbl.Hierarchy.List[Hie_CTY].Num;
NumIns++)
{
Ins = &Gbl.Hierarchy.List[Hie_CTY].Lst[NumIns];
HTM_OPTION (HTM_Type_LONG,&Ins->HieCod,
Ins->HieCod == Gbl.Hierarchy.Node[Hie_INS].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Ins->ShrtName);
}
HTM_SELECT_End ();
Frm_EndForm ();
}
}
/* Free list of institutions */
Hie_FreeList (Hie_CTY);
break;
}
HTM_TD_End ();
HTM_TR_End ();
@ -612,7 +626,7 @@ static void CtrCfg_Institution (Vie_ViewType_t ViewType,bool PutForm)
/************** Show center full name in center configuration ****************/
/*****************************************************************************/
static void CtrCfg_FullName (bool PutForm)
static void CtrCfg_FullName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_CTR,Nam_FULL_NAME);
}
@ -621,7 +635,7 @@ static void CtrCfg_FullName (bool PutForm)
/************** Show center short name in center configuration ***************/
/*****************************************************************************/
static void CtrCfg_ShrtName (bool PutForm)
static void CtrCfg_ShrtName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_CTR,Nam_SHRT_NAME);
}
@ -630,7 +644,7 @@ static void CtrCfg_ShrtName (bool PutForm)
/**************** Show center place in center configuration ******************/
/*****************************************************************************/
static void CtrCfg_Place (bool PutForm)
static void CtrCfg_Place (Frm_PutForm_t PutForm)
{
extern const char *Par_CodeStr[];
extern const char *Txt_Place;
@ -638,6 +652,11 @@ static void CtrCfg_Place (bool PutForm)
struct Plc_Places Places;
struct Plc_Place Plc;
unsigned NumPlc;
const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = Par_CodeStr[ParCod_Plc],
};
/***** Reset places context *****/
Plc_ResetPlaces (&Places);
@ -646,51 +665,50 @@ static void CtrCfg_Place (bool PutForm)
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? Par_CodeStr[ParCod_Plc] :
NULL,
Txt_Place);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Place);
/* Data */
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
/* Get list of places of the current institution */
Places.SelectedOrder = Plc_ORDER_BY_PLACE;
Plc_GetListPlaces (&Places);
switch (PutForm)
{
case Frm_DONT_PUT_FORM: // I can not change center place
/* Text with the place name */
Plc.PlcCod = Gbl.Hierarchy.Node[Hie_CTR].Specific.PlcCod;
Plc_GetPlaceDataByCod (&Plc);
HTM_Txt (Plc.FullName);
break;
case Frm_PUT_FORM:
/* Get list of places of the current institution */
Places.SelectedOrder = Plc_ORDER_BY_PLACE;
Plc_GetListPlaces (&Places);
/* Put form to select place */
Frm_BeginForm (ActChgCtrPlcCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"PlcCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"0",
Gbl.Hierarchy.Node[Hie_CTR].Specific.PlcCod == 0 ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Txt_Another_place);
for (NumPlc = 0;
NumPlc < Places.Num;
NumPlc++)
HTM_OPTION (HTM_Type_LONG,&Places.Lst[NumPlc].PlcCod,
Places.Lst[NumPlc].PlcCod == Gbl.Hierarchy.Node[Hie_CTR].Specific.PlcCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
/* Put form to select place */
Frm_BeginForm (ActChgCtrPlcCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"PlcCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"0",
Gbl.Hierarchy.Node[Hie_CTR].Specific.PlcCod == 0 ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Places.Lst[NumPlc].ShrtName);
HTM_SELECT_End ();
Frm_EndForm ();
"%s",Txt_Another_place);
for (NumPlc = 0;
NumPlc < Places.Num;
NumPlc++)
HTM_OPTION (HTM_Type_LONG,&Places.Lst[NumPlc].PlcCod,
Places.Lst[NumPlc].PlcCod == Gbl.Hierarchy.Node[Hie_CTR].Specific.PlcCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Places.Lst[NumPlc].ShrtName);
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of places */
Plc_FreeListPlaces (&Places);
}
else // I can not change center place
{
/* Text with the place name */
Plc.PlcCod = Gbl.Hierarchy.Node[Hie_CTR].Specific.PlcCod;
Plc_GetPlaceDataByCod (&Plc);
HTM_Txt (Plc.FullName);
}
/* Free list of places */
Plc_FreeListPlaces (&Places);
break;
}
HTM_TD_End ();
@ -701,7 +719,7 @@ static void CtrCfg_Place (bool PutForm)
/***************** Show center WWW in center configuration *******************/
/*****************************************************************************/
static void CtrCfg_WWW (Vie_ViewType_t ViewType,bool PutForm)
static void CtrCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm)
{
HieCfg_WWW (ViewType,PutForm,ActChgCtrWWWCfg,Gbl.Hierarchy.Node[Hie_CTR].WWW);
}

View File

@ -867,26 +867,30 @@ void Cty_WriteSelectorOfCountry (void)
void Cty_WriteCountryName (long CtyCod)
{
char CtyName[Cty_MAX_BYTES_NAME + 1];
bool PutForm = !Frm_CheckIfInside () && // Only if not inside another form
Act_GetBrowserTab (Gbl.Action.Act) == Act_BRW_1ST_TAB; // Only in main browser tab
Frm_PutForm_t PutForm = (!Frm_CheckIfInside () && // Only if not inside another form
Act_GetBrowserTab (Gbl.Action.Act) == Act_BRW_1ST_TAB) ? Frm_PUT_FORM : // Only in main browser tab
Frm_DONT_PUT_FORM;
/***** Get country name *****/
Cty_GetCountryNameInLanguage (CtyCod,Gbl.Prefs.Language,CtyName);
if (PutForm)
switch (PutForm)
{
/***** Write country name with link to country information *****/
Frm_BeginForm (ActSeeCtyInf);
ParCod_PutPar (ParCod_Cty,CtyCod);
HTM_BUTTON_Submit_Begin (Act_GetActionText (ActSeeCtyInf),
"class=\"BT_LINK\"");
HTM_Txt (CtyName);
HTM_BUTTON_End ();
Frm_EndForm ();
case Frm_DONT_PUT_FORM:
/***** Write country name without link *****/
HTM_Txt (CtyName);
break;
case Frm_PUT_FORM:
/***** Write country name with link to country information *****/
Frm_BeginForm (ActSeeCtyInf);
ParCod_PutPar (ParCod_Cty,CtyCod);
HTM_BUTTON_Submit_Begin (Act_GetActionText (ActSeeCtyInf),
"class=\"BT_LINK\"");
HTM_Txt (CtyName);
HTM_BUTTON_End ();
Frm_EndForm ();
break;
}
else
/***** Write country name without link *****/
HTM_Txt (CtyName);
}
/*****************************************************************************/

View File

@ -60,11 +60,11 @@ extern struct Globals Gbl;
/*****************************************************************************/
static void CrsCfg_PutIconToPrint (__attribute__((unused)) void *Args);
static void CrsCfg_Degree (Vie_ViewType_t ViewType,bool PutForm);
static void CrsCfg_FullName (bool PutForm);
static void CrsCfg_ShrtName (bool PutForm);
static void CrsCfg_Year (bool PutForm);
static void CrsCfg_InstitutionalCode (bool PutForm);
static void CrsCfg_Degree (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm);
static void CrsCfg_FullName (Frm_PutForm_t PutForm);
static void CrsCfg_ShrtName (Frm_PutForm_t PutForm);
static void CrsCfg_Year (Frm_PutForm_t PutForm);
static void CrsCfg_InstitutionalCode (Frm_PutForm_t PutForm);
static void CrsCfg_InternalCode (void);
static void CrsCfg_Shortcut (Vie_ViewType_t ViewType);
static void CrsCfg_QR (void);
@ -78,10 +78,10 @@ void CrsCfg_Configuration (Vie_ViewType_t ViewType)
{
extern const char *Hlp_COURSE_Information;
bool PutLink;
bool PutFormDeg;
bool PutFormName;
bool PutFormYear;
bool PutFormInsCod;
Frm_PutForm_t PutFormDeg;
Frm_PutForm_t PutFormName;
Frm_PutForm_t PutFormYear;
Frm_PutForm_t PutFormInsCod;
/***** Trivial check *****/
if (Gbl.Hierarchy.Node[Hie_CRS].HieCod <= 0) // No course selected
@ -89,10 +89,16 @@ void CrsCfg_Configuration (Vie_ViewType_t ViewType)
/***** Initializations *****/
PutLink = ViewType == Vie_VIEW && Gbl.Hierarchy.Node[Hie_DEG].WWW[0];
PutFormDeg = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM;
PutFormName = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM;
PutFormDeg = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
PutFormName = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
PutFormYear =
PutFormInsCod = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_TCH;
PutFormInsCod = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_TCH) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/***** Contextual menu *****/
if (ViewType == Vie_VIEW &&
@ -196,73 +202,77 @@ void CrsCfg_PrintConfiguration (void)
/******************** Show degree in course configuration ********************/
/*****************************************************************************/
static void CrsCfg_Degree (Vie_ViewType_t ViewType,bool PutForm)
static void CrsCfg_Degree (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm)
{
extern const char *Par_CodeStr[];
extern const char *Txt_Degree;
unsigned NumDeg;
const struct Hie_Node *Deg;
const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = Par_CodeStr[ParCod_OthDeg],
};
/***** Degree *****/
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? Par_CodeStr[ParCod_OthDeg] :
NULL,
Txt_Degree);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Degree);
/* Data */
HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
/* Get list of degrees of the current center */
Deg_GetListDegsInCurrentCtr ();
switch (PutForm)
{
case Frm_DONT_PUT_FORM: // I can not move course to another degree
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeDegInf);
ParCod_PutPar (ParCod_Deg,Gbl.Hierarchy.Node[Hie_DEG].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_DEG].ShrtName),
"class=\"LT BT_LINK\"");
Str_FreeGoToTitle ();
}
Lgo_DrawLogo (Hie_DEG,
Gbl.Hierarchy.Node[Hie_DEG].HieCod,
Gbl.Hierarchy.Node[Hie_DEG].ShrtName,
20,"LM");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_DEG].FullName);
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
Frm_EndForm ();
}
break;
case Frm_PUT_FORM:
/* Get list of degrees of the current center */
Deg_GetListDegsInCurrentCtr ();
/* Put form to select degree */
Frm_BeginForm (ActChgCrsDegCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthDegCod\" name=\"OthDegCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumDeg = 0;
NumDeg < Gbl.Hierarchy.List[Hie_CTR].Num;
NumDeg++)
{
Deg = &Gbl.Hierarchy.List[Hie_CTR].Lst[NumDeg];
HTM_OPTION (HTM_Type_LONG,&Deg->HieCod,
Deg->HieCod == Gbl.Hierarchy.Node[Hie_DEG].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Deg->ShrtName);
}
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of degrees of the current center */
Hie_FreeList (Hie_CTR);
}
else // I can not move course to another degree
{
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeDegInf);
ParCod_PutPar (ParCod_Deg,Gbl.Hierarchy.Node[Hie_DEG].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_DEG].ShrtName),
"class=\"LT BT_LINK\"");
Str_FreeGoToTitle ();
}
Lgo_DrawLogo (Hie_DEG,
Gbl.Hierarchy.Node[Hie_DEG].HieCod,
Gbl.Hierarchy.Node[Hie_DEG].ShrtName,
20,"LM");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_DEG].FullName);
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
/* Put form to select degree */
Frm_BeginForm (ActChgCrsDegCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthDegCod\" name=\"OthDegCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumDeg = 0;
NumDeg < Gbl.Hierarchy.List[Hie_CTR].Num;
NumDeg++)
{
Deg = &Gbl.Hierarchy.List[Hie_CTR].Lst[NumDeg];
HTM_OPTION (HTM_Type_LONG,&Deg->HieCod,
Deg->HieCod == Gbl.Hierarchy.Node[Hie_DEG].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Deg->ShrtName);
}
HTM_SELECT_End ();
Frm_EndForm ();
}
}
/* Free list of degrees of the current center */
Hie_FreeList (Hie_CTR);
break;
}
HTM_TD_End ();
HTM_TR_End ();
@ -272,7 +282,7 @@ static void CrsCfg_Degree (Vie_ViewType_t ViewType,bool PutForm)
/************** Show course full name in course configuration ****************/
/*****************************************************************************/
static void CrsCfg_FullName (bool PutForm)
static void CrsCfg_FullName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_CRS,Nam_FULL_NAME);
}
@ -281,7 +291,7 @@ static void CrsCfg_FullName (bool PutForm)
/************** Show course short name in course configuration ***************/
/*****************************************************************************/
static void CrsCfg_ShrtName (bool PutForm)
static void CrsCfg_ShrtName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_CRS,Nam_SHRT_NAME);
}
@ -290,44 +300,50 @@ static void CrsCfg_ShrtName (bool PutForm)
/***************** Show course year in course configuration ******************/
/*****************************************************************************/
static void CrsCfg_Year (bool PutForm)
static void CrsCfg_Year (Frm_PutForm_t PutForm)
{
extern const char *Txt_Year_OF_A_DEGREE;
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
extern const char *Txt_Not_applicable;
unsigned Year;
static const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = "OthCrsYear",
};
/***** Academic year *****/
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? "OthCrsYear" :
NULL,
Txt_Year_OF_A_DEGREE);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Year_OF_A_DEGREE);
/* Data */
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
Frm_BeginForm (ActChgCrsYeaCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCrsYear\" name=\"OthCrsYear\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Year = 0;
Year <= Deg_MAX_YEARS_PER_DEGREE;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,
Year == Gbl.Hierarchy.Node[Hie_CRS].Specific.Year ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Txt_YEAR_OF_DEGREE[Year]);
HTM_SELECT_End ();
Frm_EndForm ();
}
else
HTM_Txt (Gbl.Hierarchy.Node[Hie_CRS].Specific.Year ? Txt_YEAR_OF_DEGREE[Gbl.Hierarchy.Node[Hie_CRS].Specific.Year] :
switch (PutForm)
{
case Frm_DONT_PUT_FORM:
HTM_Txt (Gbl.Hierarchy.Node[Hie_CRS].Specific.Year ? Txt_YEAR_OF_DEGREE[Gbl.Hierarchy.Node[Hie_CRS].Specific.Year] :
Txt_Not_applicable);
break;
case Frm_PUT_FORM:
Frm_BeginForm (ActChgCrsYeaCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCrsYear\" name=\"OthCrsYear\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Year = 0;
Year <= Deg_MAX_YEARS_PER_DEGREE;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,
Year == Gbl.Hierarchy.Node[Hie_CRS].Specific.Year ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Txt_YEAR_OF_DEGREE[Year]);
HTM_SELECT_End ();
Frm_EndForm ();
break;
}
HTM_TD_End ();
HTM_TR_End ();
@ -337,34 +353,40 @@ static void CrsCfg_Year (bool PutForm)
/************* Show institutional code in course configuration ***************/
/*****************************************************************************/
static void CrsCfg_InstitutionalCode (bool PutForm)
static void CrsCfg_InstitutionalCode (Frm_PutForm_t PutForm)
{
extern const char *Txt_Institutional_code;
static const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = "InsCrsCod",
};
/***** Institutional course code *****/
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? "InsCrsCod" :
NULL,
Txt_Institutional_code);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Institutional_code);
/* Data */
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
Frm_BeginForm (ActChgInsCrsCodCfg);
HTM_INPUT_TEXT ("InsCrsCod",Hie_MAX_CHARS_INSTITUTIONAL_COD,
Gbl.Hierarchy.Node[Hie_CRS].InstitutionalCod,
HTM_SUBMIT_ON_CHANGE,
"id=\"InsCrsCod\" size=\"%u\""
" class=\"INPUT_INS_CODE INPUT_%s\"",
Hie_MAX_CHARS_INSTITUTIONAL_COD,
The_GetSuffix ());
Frm_EndForm ();
}
else
HTM_Txt (Gbl.Hierarchy.Node[Hie_CRS].InstitutionalCod);
switch (PutForm)
{
case Frm_DONT_PUT_FORM:
HTM_Txt (Gbl.Hierarchy.Node[Hie_CRS].InstitutionalCod);
break;
case Frm_PUT_FORM:
Frm_BeginForm (ActChgInsCrsCodCfg);
HTM_INPUT_TEXT ("InsCrsCod",Hie_MAX_CHARS_INSTITUTIONAL_COD,
Gbl.Hierarchy.Node[Hie_CRS].InstitutionalCod,
HTM_SUBMIT_ON_CHANGE,
"id=\"InsCrsCod\" size=\"%u\""
" class=\"INPUT_INS_CODE INPUT_%s\"",
Hie_MAX_CHARS_INSTITUTIONAL_COD,
The_GetSuffix ());
Frm_EndForm ();
break;
}
HTM_TD_End ();
HTM_TR_End ();

View File

@ -59,10 +59,10 @@ extern struct Globals Gbl;
static void DegCfg_Configuration (Vie_ViewType_t ViewType);
static void DegCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args);
static void DegCfg_Center (Vie_ViewType_t ViewType,bool PutForm);
static void DegCfg_FullName (bool PutForm);
static void DegCfg_ShrtName (bool PutForm);
static void DegCfg_WWW (Vie_ViewType_t ViewType,bool PutForm);
static void DegCfg_Center (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm);
static void DegCfg_FullName (Frm_PutForm_t PutForm);
static void DegCfg_ShrtName (Frm_PutForm_t PutForm);
static void DegCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm);
static void DegCfg_Shortcut (Vie_ViewType_t ViewType);
static void DegCfg_QR (void);
static void DegCfg_NumCrss (void);
@ -96,9 +96,9 @@ static void DegCfg_Configuration (Vie_ViewType_t ViewType)
{
extern const char *Hlp_DEGREE_Information;
bool PutLink;
bool PutFormCtr;
bool PutFormName;
bool PutFormWWW;
Frm_PutForm_t PutFormCtr;
Frm_PutForm_t PutFormName;
Frm_PutForm_t PutFormWWW;
/***** Trivial check *****/
if (Gbl.Hierarchy.Node[Hie_DEG].HieCod <= 0) // No degree selected
@ -106,9 +106,15 @@ static void DegCfg_Configuration (Vie_ViewType_t ViewType)
/***** Initializations *****/
PutLink = ViewType == Vie_VIEW && Gbl.Hierarchy.Node[Hie_DEG].WWW[0];
PutFormCtr = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM;
PutFormName = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM;
PutFormWWW = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM;
PutFormCtr = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
PutFormName = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
PutFormWWW = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/***** Begin box *****/
Box_BoxBegin (NULL,NULL,
@ -190,73 +196,77 @@ static void DegCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args)
/******************** Show center in degree configuration ********************/
/*****************************************************************************/
static void DegCfg_Center (Vie_ViewType_t ViewType,bool PutForm)
static void DegCfg_Center (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm)
{
extern const char *Par_CodeStr[];
extern const char *Txt_Center;
unsigned NumCtr;
const struct Hie_Node *Ctr;
const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = Par_CodeStr[ParCod_OthCtr],
};
/***** Center *****/
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? Par_CodeStr[ParCod_OthCtr] :
NULL,
Txt_Center);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Center);
/* Data */
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
/* Get list of centers of the current institution */
Ctr_GetBasicListOfCenters (Gbl.Hierarchy.Node[Hie_INS].HieCod);
switch (PutForm)
{
case Frm_DONT_PUT_FORM: // I can not move degree to another center
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeCtrInf);
ParCod_PutPar (ParCod_Ctr,Gbl.Hierarchy.Node[Hie_CTR].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_CTR].ShrtName),
"class=\"LB BT_LINK\"");
Str_FreeGoToTitle ();
}
Lgo_DrawLogo (Hie_CTR,
Gbl.Hierarchy.Node[Hie_CTR].HieCod,
Gbl.Hierarchy.Node[Hie_CTR].ShrtName,
20,"LM");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_CTR].FullName);
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
Frm_EndForm ();
}
break;
case Frm_PUT_FORM:
/* Get list of centers of the current institution */
Ctr_GetBasicListOfCenters (Gbl.Hierarchy.Node[Hie_INS].HieCod);
/* Put form to select center */
Frm_BeginForm (ActChgDegCtrCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtrCod\" name=\"OthCtrCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumCtr = 0;
NumCtr < Gbl.Hierarchy.List[Hie_INS].Num;
NumCtr++)
{
Ctr = &Gbl.Hierarchy.List[Hie_INS].Lst[NumCtr];
HTM_OPTION (HTM_Type_LONG,&Ctr->HieCod,
Ctr->HieCod == Gbl.Hierarchy.Node[Hie_CTR].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Ctr->ShrtName);
}
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of centers */
Hie_FreeList (Hie_INS);
}
else // I can not move degree to another center
{
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeCtrInf);
ParCod_PutPar (ParCod_Ctr,Gbl.Hierarchy.Node[Hie_CTR].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_CTR].ShrtName),
"class=\"LB BT_LINK\"");
Str_FreeGoToTitle ();
}
Lgo_DrawLogo (Hie_CTR,
Gbl.Hierarchy.Node[Hie_CTR].HieCod,
Gbl.Hierarchy.Node[Hie_CTR].ShrtName,
20,"LM");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_CTR].FullName);
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
/* Put form to select center */
Frm_BeginForm (ActChgDegCtrCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtrCod\" name=\"OthCtrCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumCtr = 0;
NumCtr < Gbl.Hierarchy.List[Hie_INS].Num;
NumCtr++)
{
Ctr = &Gbl.Hierarchy.List[Hie_INS].Lst[NumCtr];
HTM_OPTION (HTM_Type_LONG,&Ctr->HieCod,
Ctr->HieCod == Gbl.Hierarchy.Node[Hie_CTR].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Ctr->ShrtName);
}
HTM_SELECT_End ();
Frm_EndForm ();
}
}
/* Free list of centers */
Hie_FreeList (Hie_INS);
break;
}
HTM_TD_End ();
HTM_TR_End ();
@ -266,7 +276,7 @@ static void DegCfg_Center (Vie_ViewType_t ViewType,bool PutForm)
/************** Show degree full name in degree configuration ****************/
/*****************************************************************************/
static void DegCfg_FullName (bool PutForm)
static void DegCfg_FullName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_DEG,Nam_FULL_NAME);
}
@ -275,7 +285,7 @@ static void DegCfg_FullName (bool PutForm)
/************** Show degree short name in degree configuration ***************/
/*****************************************************************************/
static void DegCfg_ShrtName (bool PutForm)
static void DegCfg_ShrtName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_DEG,Nam_SHRT_NAME);
}
@ -284,7 +294,7 @@ static void DegCfg_ShrtName (bool PutForm)
/***************** Show degree WWW in degree configuration *******************/
/*****************************************************************************/
static void DegCfg_WWW (Vie_ViewType_t ViewType,bool PutForm)
static void DegCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm)
{
HieCfg_WWW (ViewType,PutForm,ActChgDegWWWCfg,Gbl.Hierarchy.Node[Hie_DEG].WWW);
}

View File

@ -406,8 +406,7 @@ void Exa_SeeOneExam (void)
Exa_GetExamDataByCod (&Exams.Exam);
/***** Show exam *****/
Exa_ShowOnlyOneExam (&Exams,&Session,
false); // Do not put form for session
Exa_ShowOnlyOneExam (&Exams,&Session,Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -416,7 +415,7 @@ void Exa_SeeOneExam (void)
void Exa_ShowOnlyOneExam (struct Exa_Exams *Exams,
struct ExaSes_Session *Session,
bool PutFormSession)
Frm_PutForm_t PutFormSession)
{
Exa_ShowOnlyOneExamBegin (Exams,Session,PutFormSession);
Exa_ShowOnlyOneExamEnd ();
@ -424,7 +423,7 @@ void Exa_ShowOnlyOneExam (struct Exa_Exams *Exams,
void Exa_ShowOnlyOneExamBegin (struct Exa_Exams *Exams,
struct ExaSes_Session *Session,
bool PutFormSession)
Frm_PutForm_t PutFormSession)
{
extern const char *Hlp_ASSESSMENT_Exams;
extern const char *Txt_Exam;

View File

@ -44,10 +44,10 @@ bool Exa_CheckIfICanEditExams (void);
void Exa_SeeOneExam (void);
void Exa_ShowOnlyOneExam (struct Exa_Exams *Exams,
struct ExaSes_Session *Session,
bool PutFormSession);
Frm_PutForm_t PutFormSession);
void Exa_ShowOnlyOneExamBegin (struct Exa_Exams *Exams,
struct ExaSes_Session *Session,
bool PutFormSession);
Frm_PutForm_t PutFormSession);
void Exa_ShowOnlyOneExamEnd (void);
void Exa_SetCurrentExaCod (long ExaCod);

View File

@ -201,16 +201,15 @@ void ExaRes_ShowMyResultsInExa (void)
Exa_GetExamDataByCod (&Exams.Exam);
/***** Exam begin *****/
Exa_ShowOnlyOneExamBegin (&Exams,&Session,
false); // Do not put form to start new session
Exa_ShowOnlyOneExamBegin (&Exams,&Session,Frm_DONT_PUT_FORM);
/***** List my sessions results in exam *****/
if (asprintf (&Title,Txt_Results_of_exam_X,Exams.Exam.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListMyResultsInExa (&Exams);
ExaRes_ShowResultsEnd ();
/***** List my sessions results in exam *****/
if (asprintf (&Title,Txt_Results_of_exam_X,Exams.Exam.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListMyResultsInExa (&Exams);
ExaRes_ShowResultsEnd ();
/***** Exam end *****/
Exa_ShowOnlyOneExamEnd ();
@ -249,16 +248,15 @@ void ExaRes_ShowMyResultsInSes (void)
ExaSes_GetSessionDataByCod (&Session);
/***** Exam begin *****/
Exa_ShowOnlyOneExamBegin (&Exams,&Session,
false); // Do not put form to start new session
Exa_ShowOnlyOneExamBegin (&Exams,&Session,Frm_DONT_PUT_FORM);
/***** List my sessions results in session *****/
if (asprintf (&Title,Txt_Results_of_session_X,Session.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListMyResultsInSes (&Exams,Session.SesCod);
ExaRes_ShowResultsEnd ();
/***** List my sessions results in session *****/
if (asprintf (&Title,Txt_Results_of_session_X,Session.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListMyResultsInSes (&Exams,Session.SesCod);
ExaRes_ShowResultsEnd ();
/***** Exam end *****/
Exa_ShowOnlyOneExamEnd ();
@ -393,16 +391,15 @@ void ExaRes_ShowAllResultsInExa (void)
Exa_GetExamDataByCod (&Exams.Exam);
/***** Exam begin *****/
Exa_ShowOnlyOneExamBegin (&Exams,&Session,
false); // Do not put form to start new session
Exa_ShowOnlyOneExamBegin (&Exams,&Session,Frm_DONT_PUT_FORM);
/***** List sessions results in exam *****/
if (asprintf (&Title,Txt_Results_of_exam_X,Exams.Exam.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListAllResultsInExa (&Exams);
ExaRes_ShowResultsEnd ();
/***** List sessions results in exam *****/
if (asprintf (&Title,Txt_Results_of_exam_X,Exams.Exam.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListAllResultsInExa (&Exams);
ExaRes_ShowResultsEnd ();
/***** Exam end *****/
Exa_ShowOnlyOneExamEnd ();
@ -465,16 +462,15 @@ void ExaRes_ShowAllResultsInSes (void)
ExaSes_GetSessionDataByCod (&Session);
/***** Exam begin *****/
Exa_ShowOnlyOneExamBegin (&Exams,&Session,
false); // Do not put form to start new session
Exa_ShowOnlyOneExamBegin (&Exams,&Session,Frm_DONT_PUT_FORM);
/***** List sessions results in session *****/
if (asprintf (&Title,Txt_Results_of_session_X,Session.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListAllResultsInSes (&Exams,Session.SesCod);
ExaRes_ShowResultsEnd ();
/***** List sessions results in session *****/
if (asprintf (&Title,Txt_Results_of_session_X,Session.Title) < 0)
Err_NotEnoughMemoryExit ();
ExaRes_ShowResultsBegin (&Exams,Title,false); // Do not list exams to select
free (Title);
ExaRes_ListAllResultsInSes (&Exams,Session.SesCod);
ExaRes_ShowResultsEnd ();
/***** Exam end *****/
Exa_ShowOnlyOneExamEnd ();

View File

@ -137,7 +137,7 @@ void ExaSes_ResetSession (struct ExaSes_Session *Session)
void ExaSes_ListSessions (struct Exa_Exams *Exams,
struct ExaSes_Session *Session,
bool PutFormSession)
Frm_PutForm_t PutFormSession)
{
extern const char *Hlp_ASSESSMENT_Exams_sessions;
extern const char *Txt_Sessions;
@ -183,7 +183,7 @@ void ExaSes_ListSessions (struct Exa_Exams *Exams,
case Rol_NET:
case Rol_TCH:
case Rol_SYS_ADM:
if (PutFormSession && Session->SesCod <= 0)
if (PutFormSession == Frm_PUT_FORM && Session->SesCod <= 0)
{
/* Reset session */
ExaSes_ResetSession (Session);
@ -720,8 +720,7 @@ void ExaSes_ToggleVisResultsSesUsr (void)
Exa_DB_ToggleVisResultsSesUsr (&Session);
/***** Show current exam *****/
Exa_ShowOnlyOneExam (&Exams,&Session,
false); // Do not put form for session
Exa_ShowOnlyOneExam (&Exams,&Session,Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -809,8 +808,7 @@ void ExaSes_ReqRemSession (void)
Session.Title);
/***** Show current exam *****/
Exa_ShowOnlyOneExam (&Exams,&Session,
false); // Do not put form for session
Exa_ShowOnlyOneExam (&Exams,&Session,Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -855,8 +853,7 @@ void ExaSes_RemoveSession (void)
Exa_GetExamDataByCod (&Exams.Exam);
/***** Show current exam *****/
Exa_ShowOnlyOneExam (&Exams,&Session,
false); // Do not put form for session
Exa_ShowOnlyOneExam (&Exams,&Session,Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -894,8 +891,7 @@ static void ExaSes_HideUnhideSession (HidVis_HiddenOrVisible_t HiddenOrVisible)
Exa_DB_HideUnhideSession (&Session,HiddenOrVisible);
/***** Show current exam *****/
Exa_ShowOnlyOneExam (&Exams,&Session,
false); // Do not put form for session
Exa_ShowOnlyOneExam (&Exams,&Session,Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -1098,8 +1094,7 @@ void ExaSes_ReqCreatOrEditSes (void)
}
/***** Show exam *****/
Exa_ShowOnlyOneExam (&Exams,&Session,
true); // Put form for session
Exa_ShowOnlyOneExam (&Exams,&Session,Frm_PUT_FORM); // Put form for session
}
/*****************************************************************************/
@ -1181,8 +1176,7 @@ void ExaSes_ReceiveFormSession (void)
Exa_GetExamDataByCod (&Exams.Exam);
/***** Show current exam *****/
Exa_ShowOnlyOneExam (&Exams,&Session,
false); // Do not put form for session
Exa_ShowOnlyOneExam (&Exams,&Session,Frm_DONT_PUT_FORM);
}
/*****************************************************************************/

View File

@ -52,7 +52,7 @@ void ExaSes_ResetSession (struct ExaSes_Session *Session);
void ExaSes_ListSessions (struct Exa_Exams *Exams,
struct ExaSes_Session *Session,
bool PutFormSession);
Frm_PutForm_t PutFormSession);
void ExaSes_GetSessionDataByCod (struct ExaSes_Session *Session);
void ExaSes_ToggleVisResultsSesUsr (void);

View File

@ -44,11 +44,12 @@
#define Frm_MAX_BYTES_PARAM_LOCATION 256
#define Frm_MAX_BYTES_PARAMS_STR (Frm_MAX_BYTES_PARAM_ACTION + Frm_MAX_BYTES_PARAM_SESSION + Frm_MAX_BYTES_PARAM_LOCATION)
#define Frm_NUM_PUT_FORM 2
typedef enum
{
Frm_DONT_PUT_FORM_TO_GO,
Frm_PUT_FORM_TO_GO,
} Frm_PutFormToGo_t;
Frm_DONT_PUT_FORM,
Frm_PUT_FORM,
} Frm_PutForm_t;
/*****************************************************************************/
/***************************** Public prototypes *****************************/

View File

@ -453,7 +453,7 @@ void Gam_SeeOneGame (void)
void Gam_ShowOnlyOneGame (struct Gam_Games *Games,
bool ListGameQuestions,
bool PutFormNewMatch)
Frm_PutForm_t PutFormNewMatch)
{
Gam_ShowOnlyOneGameBegin (Games,ListGameQuestions,PutFormNewMatch);
Gam_ShowOnlyOneGameEnd ();
@ -461,7 +461,7 @@ void Gam_ShowOnlyOneGame (struct Gam_Games *Games,
void Gam_ShowOnlyOneGameBegin (struct Gam_Games *Games,
bool ListGameQuestions,
bool PutFormNewMatch)
Frm_PutForm_t PutFormNewMatch)
{
extern const char *Hlp_ASSESSMENT_Games;
extern const char *Txt_Game;
@ -2169,7 +2169,7 @@ void Gam_ReqNewMatch (void)
/***** Show game *****/
Gam_ShowOnlyOneGame (&Games,
false, // Do not list game questions
true); // Put form to start new match
Frm_PUT_FORM);
}
/*****************************************************************************/

View File

@ -117,10 +117,10 @@ void Gam_ListAllGames (struct Gam_Games *Games);
void Gam_SeeOneGame (void);
void Gam_ShowOnlyOneGame (struct Gam_Games *Games,
bool ListGameQuestions,
bool PutFormNewMatch);
Frm_PutForm_t PutFormNewMatch);
void Gam_ShowOnlyOneGameBegin (struct Gam_Games *Games,
bool ListGameQuestions,
bool PutFormNewMatch);
Frm_PutForm_t PutFormNewMatch);
void Gam_ShowOnlyOneGameEnd (void);
void Gam_SetCurrentGamCod (long GamCod);

View File

@ -1704,7 +1704,8 @@ void Grp_ShowLstGrpsToChgMyGrps (void)
unsigned NumGrpTyp;
unsigned NumGrpsThisTypeIBelong;
unsigned NumGrpsIBelong = 0;
bool PutFormToChangeGrps = !Frm_CheckIfInside (); // Not inside another form (record card)
Frm_PutForm_t PutFormToChangeGrps = Frm_CheckIfInside () ? Frm_DONT_PUT_FORM : // Inside another form (record card)?
Frm_PUT_FORM;
bool ICanEdit = !Frm_CheckIfInside () &&
(Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);

View File

@ -85,7 +85,8 @@ void HieCfg_Title (bool PutLink,Hie_Level_t Level)
/******************* Show short/full name in configuration *******************/
/*****************************************************************************/
void HieCfg_Name (bool PutForm,Hie_Level_t Level,Nam_ShrtOrFullName_t ShrtOrFull)
void HieCfg_Name (Frm_PutForm_t PutForm,Hie_Level_t Level,
Nam_ShrtOrFullName_t ShrtOrFull)
{
extern const char *Nam_Params[Nam_NUM_SHRT_FULL_NAMES];
extern unsigned Nam_MaxChars[Nam_NUM_SHRT_FULL_NAMES];
@ -103,7 +104,12 @@ void HieCfg_Name (bool PutForm,Hie_Level_t Level,Nam_ShrtOrFullName_t ShrtOrFull
[Hie_CRS][Nam_SHRT_NAME] = ActRenCrsShoCfg,
[Hie_CRS][Nam_FULL_NAME] = ActRenCrsFulCfg,
};
char *Name[Nam_NUM_SHRT_FULL_NAMES] =
const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = Nam_Params[ShrtOrFull],
};
const char *Name[Nam_NUM_SHRT_FULL_NAMES] =
{
[Nam_SHRT_NAME] = Gbl.Hierarchy.Node[Level].ShrtName,
[Nam_FULL_NAME] = Gbl.Hierarchy.Node[Level].FullName,
@ -113,31 +119,33 @@ void HieCfg_Name (bool PutForm,Hie_Level_t Level,Nam_ShrtOrFullName_t ShrtOrFull
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? Nam_Params[ShrtOrFull] :
NULL,
Frm_LabelColumn ("RT",Id[PutForm],
ShrtOrFull == Nam_SHRT_NAME ? Txt_Short_name :
*Hie_TxtLevel[Level]);
*Hie_TxtLevel[Level]);
/* Data */
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",The_GetSuffix ());
if (PutForm)
{
/* Form to change full name */
Frm_BeginForm (Action[Level][ShrtOrFull]);
HTM_INPUT_TEXT (Nam_Params[ShrtOrFull],
Nam_MaxChars[ShrtOrFull],
Name[ShrtOrFull],
HTM_SUBMIT_ON_CHANGE,
"id=\"%s\""
" class=\"%s INPUT_%s\""
" required=\"required\"",
Nam_Params[ShrtOrFull],
Nam_Classes[ShrtOrFull],
The_GetSuffix ());
Frm_EndForm ();
}
else // I can not edit full name
HTM_Txt (Name[ShrtOrFull]);
switch (PutForm)
{
case Frm_DONT_PUT_FORM: // I can not edit full name
HTM_Txt (Name[ShrtOrFull]);
break;
case Frm_PUT_FORM:
/* Form to change full name */
Frm_BeginForm (Action[Level][ShrtOrFull]);
HTM_INPUT_TEXT (Nam_Params[ShrtOrFull],
Nam_MaxChars[ShrtOrFull],
Name[ShrtOrFull],
HTM_SUBMIT_ON_CHANGE,
"id=\"%s\""
" class=\"%s INPUT_%s\""
" required=\"required\"",
Nam_Params[ShrtOrFull],
Nam_Classes[ShrtOrFull],
The_GetSuffix ());
Frm_EndForm ();
break;
}
HTM_TD_End ();
HTM_TR_End ();
@ -147,43 +155,47 @@ void HieCfg_Name (bool PutForm,Hie_Level_t Level,Nam_ShrtOrFullName_t ShrtOrFull
/************************* Show web in configuration *************************/
/*****************************************************************************/
void HieCfg_WWW (Vie_ViewType_t ViewType,bool PutForm,Act_Action_t NextAction,
const char WWW[Cns_MAX_BYTES_WWW + 1])
void HieCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm,
Act_Action_t NextAction,const char WWW[Cns_MAX_BYTES_WWW + 1])
{
extern const char *Txt_Web;
static const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = "WWW",
};
/***** Web *****/
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? "WWW" :
NULL,
Txt_Web);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Web);
/* Data */
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
/* Form to change web */
Frm_BeginForm (NextAction);
HTM_INPUT_URL ("WWW",WWW,HTM_SUBMIT_ON_CHANGE,
"id=\"WWW\" class=\"INPUT_WWW_WIDE INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
Frm_EndForm ();
}
else // I can not change web
{
HTM_DIV_Begin ("class=\"EXTERNAL_WWW_FULL\"");
if (ViewType == Vie_VIEW)
HTM_A_Begin ("href=\"%s\" target=\"_blank\""
" class=\"DAT_%s\"",
WWW,The_GetSuffix ());
HTM_Txt (WWW);
if (ViewType == Vie_VIEW)
HTM_A_End ();
HTM_DIV_End ();
}
switch (PutForm)
{
case Frm_DONT_PUT_FORM: // I can not change web
HTM_DIV_Begin ("class=\"EXTERNAL_WWW_FULL\"");
if (ViewType == Vie_VIEW)
HTM_A_Begin ("href=\"%s\" target=\"_blank\""
" class=\"DAT_%s\"",
WWW,The_GetSuffix ());
HTM_Txt (WWW);
if (ViewType == Vie_VIEW)
HTM_A_End ();
HTM_DIV_End ();
break;
case Frm_PUT_FORM:
/* Form to change web */
Frm_BeginForm (NextAction);
HTM_INPUT_URL ("WWW",WWW,HTM_SUBMIT_ON_CHANGE,
"id=\"WWW\" class=\"INPUT_WWW_WIDE INPUT_%s\""
" required=\"required\"",
The_GetSuffix ());
Frm_EndForm ();
break;
}
HTM_TD_End ();
HTM_TR_End ();
@ -237,7 +249,7 @@ void HieCfg_Shortcut (Vie_ViewType_t ViewType,ParCod_Param_t ParCode,long HieCod
/************************** Show number of centers ***************************/
/*****************************************************************************/
void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm)
void HieCfg_NumCtrs (unsigned NumCtrs,Frm_PutForm_t PutForm)
{
extern const char *Txt_Centers;
extern const char *Txt_Centers_of_INSTITUTION_X;
@ -251,7 +263,7 @@ void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm)
/* Data */
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
Frm_BeginFormGoTo (ActSeeCtr);
ParCod_PutPar (ParCod_Ins,Gbl.Hierarchy.Node[Hie_INS].HieCod);
@ -262,7 +274,7 @@ void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm)
free (Title);
}
HTM_Unsigned (NumCtrs);
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
HTM_BUTTON_End ();
Frm_EndForm ();

View File

@ -34,11 +34,12 @@
/*****************************************************************************/
void HieCfg_Title (bool PutLink,Hie_Level_t LogoScope);
void HieCfg_Name (bool PutForm,Hie_Level_t Level,Nam_ShrtOrFullName_t ShrtOrFull);
void HieCfg_WWW (Vie_ViewType_t ViewType,bool PutForm,Act_Action_t NextAction,
const char WWW[Cns_MAX_BYTES_WWW + 1]);
void HieCfg_Name (Frm_PutForm_t PutForm,Hie_Level_t Level,
Nam_ShrtOrFullName_t ShrtOrFull);
void HieCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm,
Act_Action_t NextAction,const char WWW[Cns_MAX_BYTES_WWW + 1]);
void HieCfg_Shortcut (Vie_ViewType_t ViewType,ParCod_Param_t ParCode,long HieCod);
void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm);
void HieCfg_NumCtrs (unsigned NumCtrs,Frm_PutForm_t PutForm);
void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap);
void HieCfg_QR (ParCod_Param_t ParCode,long HieCod);
void HieCfg_NumUsrsInCrss (Hie_Level_t Level,long Cod,Rol_Role_t Role);

View File

@ -85,7 +85,8 @@ static void Ind_GetNumCoursesWithIndicators (unsigned NumCrssWithIndicatorYes[1
unsigned NumCrss,MYSQL_RES *mysql_res);
static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indicators,
unsigned NumCrssWithIndicatorYes[1 + Ind_NUM_INDICATORS],
unsigned NumCrss,bool PutForm);
unsigned NumCrss,
Frm_PutForm_t PutForm);
static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *Indicators,
Ind_IndicatorsLayout_t IndicatorsLayout,
unsigned NumCrss,MYSQL_RES *mysql_res);
@ -434,7 +435,8 @@ static void Ind_GetNumCoursesWithIndicators (unsigned NumCrssWithIndicatorYes[1
static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indicators,
unsigned NumCrssWithIndicatorYes[1 + Ind_NUM_INDICATORS],
unsigned NumCrss,bool PutForm)
unsigned NumCrss,
Frm_PutForm_t PutForm)
{
extern const char *Txt_Indicators;
extern const char *Txt_Courses;
@ -455,7 +457,7 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
/* Header */
HTM_TR_Begin (NULL);
if (PutForm)
if (PutForm == Frm_PUT_FORM)
HTM_TH_Empty (1);
HTM_TH (Txt_Indicators,HTM_HEAD_RIGHT);
HTM_TH_Span (Txt_Courses ,HTM_HEAD_RIGHT,1,2,NULL);
@ -469,7 +471,7 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
ClassNormal;
HTM_TR_Begin (NULL);
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
HTM_TD_Begin ("class=\"%s\"",Class);
HTM_INPUT_CHECKBOX ("Indicators",HTM_SUBMIT_ON_CHANGE,
@ -503,7 +505,7 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
/***** Write total of courses *****/
HTM_TR_Begin (NULL);
if (PutForm)
if (PutForm == Frm_PUT_FORM)
HTM_TD_Empty (1);
HTM_TD_LINE_TOP_Txt (Txt_Total);

View File

@ -65,10 +65,10 @@ extern struct Globals Gbl;
static void InsCfg_Configuration (Vie_ViewType_t ViewType);
static void InsCfg_PutIconsToPrintAndUpload (__attribute__((unused)) void *Args);
static void InsCfg_Map (void);
static void InsCfg_Country (Vie_ViewType_t ViewType,bool PutForm);
static void InsCfg_FullName (bool PutForm);
static void InsCfg_ShrtName (bool PutForm);
static void InsCfg_WWW (Vie_ViewType_t ViewType,bool PutForm);
static void InsCfg_Country (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm);
static void InsCfg_FullName (Frm_PutForm_t PutForm);
static void InsCfg_ShrtName (Frm_PutForm_t PutForm);
static void InsCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm);
static void InsCfg_Shortcut (Vie_ViewType_t ViewType);
static void InsCfg_QR (void);
static void InsCfg_NumUsrs (void);
@ -105,9 +105,9 @@ static void InsCfg_Configuration (Vie_ViewType_t ViewType)
{
extern const char *Hlp_INSTITUTION_Information;
bool PutLink;
bool PutFormCty;
bool PutFormName;
bool PutFormWWW;
Frm_PutForm_t PutFormCty;
Frm_PutForm_t PutFormName;
Frm_PutForm_t PutFormWWW;
unsigned NumCtrs;
unsigned NumCtrsWithMap;
@ -118,8 +118,12 @@ static void InsCfg_Configuration (Vie_ViewType_t ViewType)
/***** Initializations *****/
PutLink = ViewType == Vie_VIEW && Gbl.Hierarchy.Node[Hie_INS].WWW[0];
PutFormCty =
PutFormName = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
PutFormWWW = ViewType == Vie_VIEW && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM;
PutFormName = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
PutFormWWW = (ViewType == Vie_VIEW &&
Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/***** Begin box *****/
Box_BoxBegin (NULL,NULL,
@ -297,12 +301,17 @@ static void InsCfg_Map (void)
/***************** Show country in institution configuration *****************/
/*****************************************************************************/
static void InsCfg_Country (Vie_ViewType_t ViewType,bool PutForm)
static void InsCfg_Country (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm)
{
extern const char *Par_CodeStr[];
extern const char *Txt_Country;
unsigned NumCty;
const struct Hie_Node *Cty;
const char *Id[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = Par_CodeStr[ParCod_OthCty],
};
/***** Get list of countries *****/
Cty_GetBasicListOfCountries ();
@ -311,53 +320,52 @@ static void InsCfg_Country (Vie_ViewType_t ViewType,bool PutForm)
HTM_TR_Begin (NULL);
/* Label */
Frm_LabelColumn ("RT",PutForm ? Par_CodeStr[ParCod_OthCty] :
NULL,
Txt_Country);
Frm_LabelColumn ("RT",Id[PutForm],Txt_Country);
/* Data */
HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
/* Put form to select country */
Frm_BeginForm (ActChgInsCtyCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtyCod\" name=\"OthCtyCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumCty = 0;
NumCty < Gbl.Hierarchy.List[Hie_SYS].Num;
NumCty++)
{
Cty = &Gbl.Hierarchy.List[Hie_SYS].Lst[NumCty];
HTM_OPTION (HTM_Type_LONG,&Cty->HieCod,
Cty->HieCod == Gbl.Hierarchy.Node[Hie_CTY].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Cty->FullName);
}
HTM_SELECT_End ();
Frm_EndForm ();
}
else // I can not move institution to another country
{
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeCtyInf);
ParCod_PutPar (ParCod_Cty,Gbl.Hierarchy.Node[Hie_CTY].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_CTY].FullName),
"class=\"BT_LINK\"");
Str_FreeGoToTitle ();
}
Cty_DrawCountryMap (&Gbl.Hierarchy.Node[Hie_CTY],"COUNTRY_MAP_TINY");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_CTY].FullName);
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
switch (PutForm)
{
case Frm_DONT_PUT_FORM: // I can not move institution to another country
if (ViewType == Vie_VIEW)
{
Frm_BeginFormGoTo (ActSeeCtyInf);
ParCod_PutPar (ParCod_Cty,Gbl.Hierarchy.Node[Hie_CTY].HieCod);
HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Gbl.Hierarchy.Node[Hie_CTY].FullName),
"class=\"BT_LINK\"");
Str_FreeGoToTitle ();
}
Cty_DrawCountryMap (&Gbl.Hierarchy.Node[Hie_CTY],"COUNTRY_MAP_TINY");
HTM_NBSP ();
HTM_Txt (Gbl.Hierarchy.Node[Hie_CTY].FullName);
if (ViewType == Vie_VIEW)
{
HTM_BUTTON_End ();
Frm_EndForm ();
}
break;
case Frm_PUT_FORM:
/* Put form to select country */
Frm_BeginForm (ActChgInsCtyCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtyCod\" name=\"OthCtyCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
for (NumCty = 0;
NumCty < Gbl.Hierarchy.List[Hie_SYS].Num;
NumCty++)
{
Cty = &Gbl.Hierarchy.List[Hie_SYS].Lst[NumCty];
HTM_OPTION (HTM_Type_LONG,&Cty->HieCod,
Cty->HieCod == Gbl.Hierarchy.Node[Hie_CTY].HieCod ? HTM_OPTION_SELECTED :
HTM_OPTION_UNSELECTED,
HTM_OPTION_ENABLED,
"%s",Cty->FullName);
}
HTM_SELECT_End ();
Frm_EndForm ();
}
}
break;
}
HTM_TD_End ();
HTM_TR_End ();
@ -369,7 +377,7 @@ static void InsCfg_Country (Vie_ViewType_t ViewType,bool PutForm)
/********* Show institution full name in institution configuration ***********/
/*****************************************************************************/
static void InsCfg_FullName (bool PutForm)
static void InsCfg_FullName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_INS,Nam_FULL_NAME);
}
@ -378,7 +386,7 @@ static void InsCfg_FullName (bool PutForm)
/********* Show institution short name in institution configuration **********/
/*****************************************************************************/
static void InsCfg_ShrtName (bool PutForm)
static void InsCfg_ShrtName (Frm_PutForm_t PutForm)
{
HieCfg_Name (PutForm,Hie_INS,Nam_SHRT_NAME);
}
@ -387,7 +395,7 @@ static void InsCfg_ShrtName (bool PutForm)
/************ Show institution WWW in institution configuration **************/
/*****************************************************************************/
static void InsCfg_WWW (Vie_ViewType_t ViewType,bool PutForm)
static void InsCfg_WWW (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm)
{
HieCfg_WWW (ViewType,PutForm,ActChgInsWWWCfg,Gbl.Hierarchy.Node[Hie_INS].WWW);
}

View File

@ -269,8 +269,7 @@ void Mch_ResetMatch (struct Mch_Match *Match)
/************************* List the matches of a game ************************/
/*****************************************************************************/
void Mch_ListMatches (struct Gam_Games *Games,
bool PutFormNewMatch)
void Mch_ListMatches (struct Gam_Games *Games,Frm_PutForm_t PutFormNewMatch)
{
extern const char *Hlp_ASSESSMENT_Games_matches;
extern const char *Txt_Matches;
@ -315,7 +314,7 @@ void Mch_ListMatches (struct Gam_Games *Games,
case Rol_NET:
case Rol_TCH:
case Rol_SYS_ADM:
if (PutFormNewMatch)
if (PutFormNewMatch == Frm_PUT_FORM)
Mch_PutFormNewMatch (&Games->Game); // Form to fill in data and start playing a new match
break;
default:
@ -904,7 +903,7 @@ void Mch_ToggleVisResultsMchUsr (void)
/***** Show current game *****/
Gam_ShowOnlyOneGame (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -1020,7 +1019,7 @@ void Mch_ReqRemMatch (void)
/***** Show current game *****/
Gam_ShowOnlyOneGame (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -1055,7 +1054,7 @@ void Mch_RemoveMatch (void)
/***** Show current game *****/
Gam_ShowOnlyOneGame (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -1144,7 +1143,7 @@ void Mch_EditMatch (void)
/***** Show current game *****/
Gam_ShowOnlyOneGame (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -1431,7 +1430,7 @@ void Mch_ChangeMatch (void)
/***** Show current game *****/
Gam_ShowOnlyOneGame (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
}
/*****************************************************************************/
@ -2332,10 +2331,21 @@ static void Mch_PutFormsCountdown (struct Mch_Match *Match)
static void Mch_PutFormCountdown (struct Mch_Match *Match,long Seconds,const char *Color)
{
extern const char *Txt_Countdown;
static const char *fmt[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = "class=\"BT_LINK_OFF MCH_BUTTON_HIDDEN\"",
[Frm_PUT_FORM ] = "class=\"BT_LINK MCH_BUTTON_ON\"",
};
char *OnSubmit;
bool PutForm = Match->Status.Showing != Mch_END;
Frm_PutForm_t PutForm = (Match->Status.Showing != Mch_END) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
const char *Title[Frm_NUM_PUT_FORM] =
{
[Frm_DONT_PUT_FORM] = NULL,
[Frm_PUT_FORM ] = Txt_Countdown,
};
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
/***** Begin form *****/
if (asprintf (&OnSubmit,"updateMatchTch('match_left',"
@ -2350,10 +2360,7 @@ static void Mch_PutFormCountdown (struct Mch_Match *Match,long Seconds,const cha
/***** Put icon *****/
HTM_DIV_Begin ("class=\"MCH_SMALLBUTTON_CONT %s\"",Color);
HTM_BUTTON_Submit_Begin (PutForm ? Txt_Countdown :
NULL,
PutForm ? "class=\"BT_LINK MCH_BUTTON_ON\"" :
"class=\"BT_LINK_OFF MCH_BUTTON_HIDDEN\"");
HTM_BUTTON_Submit_Begin (Title[PutForm],fmt[PutForm]);
HTM_NBSP ();
if (Seconds >= 0)
@ -2369,7 +2376,7 @@ static void Mch_PutFormCountdown (struct Mch_Match *Match,long Seconds,const cha
HTM_DIV_End ();
/***** End form *****/
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
Frm_EndForm ();
free (OnSubmit);

View File

@ -94,8 +94,7 @@ long Mch_GetMchCodBeingPlayed (void);
void Mch_ResetMatch (struct Mch_Match *Match);
void Mch_ListMatches (struct Gam_Games *Games,
bool PutFormNewMatch);
void Mch_ListMatches (struct Gam_Games *Games,Frm_PutForm_t PutFormNewMatch);
void Mch_GetMatchDataByCod (struct Mch_Match *Match);
void Mch_ToggleVisResultsMchUsr (void);

View File

@ -167,7 +167,7 @@ void MchRes_ShowMyMchResultsInGam (void)
/***** Game begin *****/
Gam_ShowOnlyOneGameBegin (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
/***** List my matches results in game *****/
if (asprintf (&Title,Txt_Results_of_game_X,Games.Game.Title) < 0)
@ -217,7 +217,7 @@ void MchRes_ShowMyMchResultsInMch (void)
/***** Game begin *****/
Gam_ShowOnlyOneGameBegin (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
/***** List my matches results in match *****/
if (asprintf (&Title,Txt_Results_of_match_X,Match.Title) < 0)
@ -360,7 +360,7 @@ void MchRes_ShowAllMchResultsInGam (void)
/***** Game begin *****/
Gam_ShowOnlyOneGameBegin (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
/***** List matches results in game *****/
if (asprintf (&Title,Txt_Results_of_game_X,Games.Game.Title) < 0)
@ -432,7 +432,7 @@ void MchRes_ShowAllMchResultsInMch (void)
/***** Game begin *****/
Gam_ShowOnlyOneGameBegin (&Games,
false, // Do not list game questions
false); // Do not put form to start new match
Frm_DONT_PUT_FORM);
/***** List matches results in match *****/
if (asprintf (&Title,Txt_Results_of_match_X,Match.Title) < 0)

View File

@ -106,7 +106,7 @@ void Nam_NewShortAndFullNames (const char *Names[Nam_NUM_SHRT_FULL_NAMES])
void Nam_ExistingShortAndFullNames (const Act_Action_t ActionRename[Nam_NUM_SHRT_FULL_NAMES],
ParCod_Param_t ParCod,long Cod,
const char *Names[Nam_NUM_SHRT_FULL_NAMES],
bool PutForm)
Frm_PutForm_t PutForm)
{
Nam_ShrtOrFullName_t ShrtOrFull;
@ -115,19 +115,22 @@ void Nam_ExistingShortAndFullNames (const Act_Action_t ActionRename[Nam_NUM_SHRT
ShrtOrFull++)
{
HTM_TD_Begin ("class=\"LM DAT_%s\"",The_GetSuffix ());
if (PutForm)
{
Frm_BeginForm (ActionRename[ShrtOrFull]);
ParCod_PutPar (ParCod,Cod);
HTM_INPUT_TEXT (Nam_Params[ShrtOrFull],Nam_MaxChars[ShrtOrFull],
Names[ShrtOrFull],
HTM_SUBMIT_ON_CHANGE,
"class=\"%s INPUT_%s\" required=\"required\"",
Nam_Classes[ShrtOrFull],The_GetSuffix ());
Frm_EndForm ();
}
else
HTM_Txt (Names[ShrtOrFull]);
switch (PutForm)
{
case Frm_DONT_PUT_FORM:
HTM_Txt (Names[ShrtOrFull]);
break;
case Frm_PUT_FORM:
Frm_BeginForm (ActionRename[ShrtOrFull]);
ParCod_PutPar (ParCod,Cod);
HTM_INPUT_TEXT (Nam_Params[ShrtOrFull],Nam_MaxChars[ShrtOrFull],
Names[ShrtOrFull],
HTM_SUBMIT_ON_CHANGE,
"class=\"%s INPUT_%s\" required=\"required\"",
Nam_Classes[ShrtOrFull],The_GetSuffix ());
Frm_EndForm ();
break;
}
HTM_TD_End ();
}
}

View File

@ -28,6 +28,7 @@
/*****************************************************************************/
#include "swad_action.h"
#include "swad_form.h"
#include "swad_parameter_code.h"
#include "swad_string.h"
@ -64,7 +65,7 @@ void Nam_NewShortAndFullNames (const char *Names[Nam_NUM_SHRT_FULL_NAMES]);
void Nam_ExistingShortAndFullNames (const Act_Action_t ActionRename[Nam_NUM_SHRT_FULL_NAMES],
ParCod_Param_t ParCod,long Cod,
const char *Names[Nam_NUM_SHRT_FULL_NAMES],
bool PutForm);
Frm_PutForm_t PutForm);
bool Nam_CheckIfNameExists (bool (*FuncToCheck) (const char *FldName,const char *Name,
long Cod,long PrtCod,unsigned Year),

View File

@ -109,8 +109,6 @@ typedef enum
Ntf_STATUS_EMAIL_SENT = 3, // --11 (Status & Ntf_STATUS_BIT_EMAIL) && (Status & Ntf_STATUS_BIT_SENT)
} Ntf_StatusTxt_t;
#define Ntf_NUM_GET_CONTENT 2
typedef enum
{
Ntf_DONT_GET_CONTENT = 0,

View File

@ -407,7 +407,7 @@ static void PrgRsc_WriteRowViewResource (unsigned NumRsc,
The_GetSuffix (),The_GetColorRows1 (1));
HTM_Txt (Item->Resource.Title);
HTM_BR ();
Rsc_WriteLinkName (&Item->Resource.Link,Frm_PUT_FORM_TO_GO);
Rsc_WriteLinkName (&Item->Resource.Link,Frm_PUT_FORM);
HTM_TD_End ();
/***** End row *****/
@ -456,7 +456,7 @@ static void PrgRsc_WriteRowEditResource (unsigned NumRsc,unsigned NumResources,
{
case Vie_VIEW:
/* Show current link */
Rsc_WriteLinkName (&Item->Resource.Link,Frm_PUT_FORM_TO_GO);
Rsc_WriteLinkName (&Item->Resource.Link,Frm_PUT_FORM);
break;
case Vie_EDIT:
/* Show clipboard to change resource link */

View File

@ -1692,7 +1692,7 @@ static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS];
extern const char *Txt_Comments;
extern const char *Txt_Save_changes;
bool PutForm;
Frm_PutForm_t PutForm;
static unsigned UniqueId = 0;
char *Id;
@ -1700,10 +1700,11 @@ static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
switch (Projects->View)
{
case Prj_PRINT_ONE_PROJECT:
PutForm = false;
PutForm = Frm_DONT_PUT_FORM;
break;
default:
PutForm = Prj_CheckIfICanReviewProjects ();
PutForm = Prj_CheckIfICanReviewProjects () ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
break;
}
@ -1735,17 +1736,20 @@ static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
break;
}
if (PutForm)
switch (PutForm)
{
/***** Begin form to change review status and text *****/
Frm_BeginFormAnchor (ActChgPrjRev,Anchor);
Prj_PutCurrentPars (Projects);
case Frm_DONT_PUT_FORM:
HTM_Txt (Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.Review.Status]);
break;
case Frm_PUT_FORM:
/***** Begin form to change review status and text *****/
Frm_BeginFormAnchor (ActChgPrjRev,Anchor);
Prj_PutCurrentPars (Projects);
/***** Selector to change review status *****/
Prj_PutSelectorReviewStatus (Projects);
/***** Selector to change review status *****/
Prj_PutSelectorReviewStatus (Projects);
break;
}
else
HTM_Txt (Txt_PROJECT_REVIEW_SINGUL[Projects->Prj.Review.Status]);
HTM_NBSP ();
Ico_PutIconOff (ReviewIcon[Projects->Prj.Review.Status].Icon,
@ -1776,47 +1780,51 @@ static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
Prj_PutWarningIcon ();
/***** Revision text *****/
if (PutForm)
switch (PutForm)
{
/* Show text form */
HTM_BR ();
HTM_TEXTAREA_Begin ("name=\"ReviewTxt\" rows=\"1\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\""
" placeholder=\"%s&hellip;\""
" onchange=\"unhideElement('prj_rev_%ld');return false;\"",
The_GetSuffix (),Txt_Comments,
Projects->Prj.PrjCod);
case Frm_DONT_PUT_FORM:
if (Projects->Prj.Review.Txt[0])
{
/* Change text format */
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Projects->Prj.Review.Txt,Cns_MAX_BYTES_TEXT,
Str_DONT_REMOVE_SPACES);
switch (Projects->View)
{
case Prj_PRINT_ONE_PROJECT:
break;
default:
ALn_InsertLinks (Projects->Prj.Review.Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
break;
}
/* Show text */
HTM_BR ();
HTM_Txt (Projects->Prj.Review.Txt);
HTM_TEXTAREA_End ();
}
break;
case Frm_PUT_FORM:
/* Show text form */
HTM_BR ();
HTM_TEXTAREA_Begin ("name=\"ReviewTxt\" rows=\"1\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\""
" placeholder=\"%s&hellip;\""
" onchange=\"unhideElement('prj_rev_%ld');return false;\"",
The_GetSuffix (),Txt_Comments,
Projects->Prj.PrjCod);
HTM_Txt (Projects->Prj.Review.Txt);
HTM_TEXTAREA_End ();
/* Button to save changes.
Initially hidden, is shown when clicking on selector or text */
HTM_DIV_Begin ("id=\"prj_rev_%ld\" style=\"display:none;\"",
Projects->Prj.PrjCod);
Btn_PutConfirmButtonInline (Txt_Save_changes);
HTM_DIV_End ();
/* Button to save changes.
Initially hidden, is shown when clicking on selector or text */
HTM_DIV_Begin ("id=\"prj_rev_%ld\" style=\"display:none;\"",
Projects->Prj.PrjCod);
Btn_PutConfirmButtonInline (Txt_Save_changes);
HTM_DIV_End ();
/* End form */
Frm_EndForm ();
}
else if (Projects->Prj.Review.Txt[0])
{
/* Change text format */
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Projects->Prj.Review.Txt,Cns_MAX_BYTES_TEXT,
Str_DONT_REMOVE_SPACES);
switch (Projects->View)
{
case Prj_PRINT_ONE_PROJECT:
break;
default:
ALn_InsertLinks (Projects->Prj.Review.Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
break;
}
/* Show text */
HTM_BR ();
HTM_Txt (Projects->Prj.Review.Txt);
/* End form */
Frm_EndForm ();
break;
}
HTM_TD_End ();

View File

@ -1773,7 +1773,7 @@ void Qst_ShowFormEditOneQst (void)
{
extern const char *Txt_Question_removed;
struct Qst_Question Question;
bool PutFormToEditQuestion;
Frm_PutForm_t PutFormToEditQuestion;
/***** Create test question *****/
Qst_QstConstructor (&Question);
@ -1781,15 +1781,21 @@ void Qst_ShowFormEditOneQst (void)
/***** Get question data *****/
Question.QstCod = ParCod_GetPar (ParCod_Qst);
if (Question.QstCod <= 0) // New question
PutFormToEditQuestion = true;
PutFormToEditQuestion = Frm_PUT_FORM;
else
PutFormToEditQuestion = Qst_GetQstDataByCod (&Question);
PutFormToEditQuestion = Qst_GetQstDataByCod (&Question) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/***** Put form to edit question *****/
if (PutFormToEditQuestion)
Qst_PutFormEditOneQst (&Question);
else
Ale_ShowAlert (Ale_WARNING,Txt_Question_removed);
switch (PutFormToEditQuestion)
{
case Frm_DONT_PUT_FORM:
Ale_ShowAlert (Ale_WARNING,Txt_Question_removed);
break;
case Frm_PUT_FORM:
Qst_PutFormEditOneQst (&Question);
break;
}
/***** Destroy test question *****/
Qst_QstDestructor (&Question);

View File

@ -136,10 +136,12 @@ static void Rec_PutParsStdResults (__attribute__((unused)) void *Args);
static void Rec_PutParsWorks (__attribute__((unused)) void *Args);
static void Rec_PutParsStudent (__attribute__((unused)) void *Args);
static void Rec_PutParsMsgUsr (__attribute__((unused)) void *Args);
static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins,bool PutFormLinks);
static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins,
Frm_PutForm_t PutFormLinks);
static void Rec_ShowPhoto (struct Usr_Data *UsrDat);
static void Rec_ShowFullName (struct Usr_Data *UsrDat);
static void Rec_ShowNickname (struct Usr_Data *UsrDat,bool PutFormLinks);
static void Rec_ShowNickname (struct Usr_Data *UsrDat,
Frm_PutForm_t PutFormLinks);
static void Rec_ShowCountryInHead (struct Usr_Data *UsrDat,bool ShowData);
static void Rec_ShowWebsAndSocialNets (struct Usr_Data *UsrDat,
Rec_SharedRecordViewType_t TypeOfView);
@ -2031,7 +2033,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
bool IAmLoggedAsTeacherOrSysAdm;
bool CountryForm;
Vie_ViewType_t ViewType;
bool PutFormLinks; // Put links (forms) inside record card
Frm_PutForm_t PutFormLinks; // Put links (forms) inside record card
bool ShowData;
bool ShowIDRows;
bool ShowAddressRows;
@ -2084,8 +2086,9 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
Rec_RecordHelp[Rec_SHA_RECORD_LIST] = Rec_RecordListHelp[UsrDat->Roles.InCurrentCrs];
PutFormLinks = !Frm_CheckIfInside () && // Only if not inside another form
Act_GetBrowserTab (Gbl.Action.Act) == Act_BRW_1ST_TAB; // Only in main browser tab
PutFormLinks = (!Frm_CheckIfInside () && // Only if not inside another form
Act_GetBrowserTab (Gbl.Action.Act) == Act_BRW_1ST_TAB) ? Frm_PUT_FORM : // Only in main browser tab
Frm_DONT_PUT_FORM;
Ins.HieCod = UsrDat->InsCod;
if (Ins.HieCod > 0)
@ -2523,14 +2526,15 @@ static void Rec_PutParsMsgUsr (__attribute__((unused)) void *Args)
/*********************** Show institution in record card *********************/
/*****************************************************************************/
static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins,bool PutFormLinks)
static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins,
Frm_PutForm_t PutFormLinks)
{
/***** Institution logo *****/
HTM_TD_Begin ("rowspan=\"4\" class=\"REC_C1_TOP CM\"");
if (Ins->HieCod > 0)
{
/* Form to go to the institution */
if (PutFormLinks)
if (PutFormLinks == Frm_PUT_FORM)
{
Frm_BeginFormGoTo (ActSeeInsInf);
ParCod_PutPar (ParCod_Ins,Ins->HieCod);
@ -2540,7 +2544,7 @@ static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins,bool PutFormLinks)
Ins->HieCod,
Ins->ShrtName,
Rec_INSTITUTION_LOGO_SIZE,NULL);
if (PutFormLinks)
if (PutFormLinks == Frm_PUT_FORM)
{
HTM_BUTTON_End ();
Frm_EndForm ();
@ -2553,14 +2557,14 @@ static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins,bool PutFormLinks)
if (Ins->HieCod > 0)
{
/* Form to go to the institution */
if (PutFormLinks)
if (PutFormLinks == Frm_PUT_FORM)
{
Frm_BeginFormGoTo (ActSeeInsInf);
ParCod_PutPar (ParCod_Ins,Ins->HieCod);
HTM_BUTTON_Submit_Begin (Ins->FullName,"class=\"BT_LINK\"");
}
HTM_Txt (Ins->FullName);
if (PutFormLinks)
if (PutFormLinks == Frm_PUT_FORM)
{
HTM_BUTTON_End ();
Frm_EndForm ();
@ -2618,7 +2622,8 @@ static void Rec_ShowFullName (struct Usr_Data *UsrDat)
/*************************** Show user's nickname ****************************/
/*****************************************************************************/
static void Rec_ShowNickname (struct Usr_Data *UsrDat,bool PutFormLinks)
static void Rec_ShowNickname (struct Usr_Data *UsrDat,
Frm_PutForm_t PutFormLinks)
{
extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
@ -2632,7 +2637,7 @@ static void Rec_ShowNickname (struct Usr_Data *UsrDat,bool PutFormLinks)
HTM_DIV_Begin ("class=\"REC_NICK\"");
if (UsrDat->Nickname[0])
{
if (PutFormLinks)
if (PutFormLinks == Frm_PUT_FORM)
{
/* Put form to go to public profile */
Frm_BeginForm (ActSeeOthPubPrf);
@ -2641,7 +2646,7 @@ static void Rec_ShowNickname (struct Usr_Data *UsrDat,bool PutFormLinks)
"class=\"BT_LINK\"");
}
HTM_TxtF ("@%s",UsrDat->Nickname);
if (PutFormLinks)
if (PutFormLinks == Frm_PUT_FORM)
{
HTM_BUTTON_End ();
Frm_EndForm ();

View File

@ -129,7 +129,7 @@ void Rsc_ShowClipboard (void)
{
Rsc_GetLinkDataFromRow (mysql_res,&Link);
HTM_LI_Begin ("class=\"PRG_RSC_%s\"",The_GetSuffix ());
Rsc_WriteLinkName (&Link,Frm_PUT_FORM_TO_GO);
Rsc_WriteLinkName (&Link,Frm_PUT_FORM);
HTM_LI_End ();
}
DB_FreeMySQLResult (&mysql_res);
@ -213,7 +213,7 @@ void Rsc_WriteRowClipboard (const struct Rsc_Link *Link,
"");
/***** Name *****/
Rsc_WriteLinkName (Link,Frm_DONT_PUT_FORM_TO_GO);
Rsc_WriteLinkName (Link,Frm_DONT_PUT_FORM);
HTM_LABEL_End ();
@ -225,7 +225,7 @@ void Rsc_WriteRowClipboard (const struct Rsc_Link *Link,
/************* Write link name (filename, assignment title...) ***************/
/*****************************************************************************/
void Rsc_WriteLinkName (const struct Rsc_Link *Link,Frm_PutFormToGo_t PutFormToGo)
void Rsc_WriteLinkName (const struct Rsc_Link *Link,Frm_PutForm_t PutFormToGo)
{
extern const char *Txt_Actions[ActLst_NUM_ACTIONS];
extern const char *Rsc_ResourceTypesIcons[Rsc_NUM_TYPES];
@ -293,13 +293,13 @@ void Rsc_WriteLinkName (const struct Rsc_Link *Link,Frm_PutFormToGo_t PutFormToG
/***** Put icon and title of resource *****/
switch (PutFormToGo)
{
case Frm_DONT_PUT_FORM_TO_GO:
case Frm_DONT_PUT_FORM:
/* Icon and title of resource */
Ico_PutIconOn (Rsc_ResourceTypesIcons[Link->Type],Ico_BLACK,
Txt_RESOURCE_TYPES[Link->Type]);
HTM_Txt (Title);
break;
case Frm_PUT_FORM_TO_GO:
case Frm_PUT_FORM:
/* Begin form to go to resource */
NextAction = (Link->Cod > 0) ? NextActions[Link->Type].IfCod : // Resource specified
NextActions[Link->Type].IfNotCod; // All resources of this type

View File

@ -78,7 +78,7 @@ void Rsc_ShowClipboard (void);
void Rsc_ShowClipboardToChangeLink (const struct Rsc_Link *CurrentLink);
void Rsc_WriteRowClipboard (const struct Rsc_Link *Link,
HTM_SubmitOnClick_t SubmitOnClick,bool Checked);
void Rsc_WriteLinkName (const struct Rsc_Link *Link,Frm_PutFormToGo_t PutFormToGo);
void Rsc_WriteLinkName (const struct Rsc_Link *Link,Frm_PutForm_t PutFormToGo);
void Rsc_GetResourceTitleFromLink (const struct Rsc_Link *Link,
char Title[Rsc_MAX_BYTES_RESOURCE_TITLE + 1]);

View File

@ -963,7 +963,7 @@ static void RubCri_WriteTitle (const struct RubCri_Criterion *Criterion)
static void RubCri_WriteLink (const struct RubCri_Criterion *Criterion)
{
HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),The_GetColorRows ());
Rsc_WriteLinkName (&Criterion->Link,Frm_DONT_PUT_FORM_TO_GO);
Rsc_WriteLinkName (&Criterion->Link,Frm_DONT_PUT_FORM);
HTM_TD_End ();
}

View File

@ -123,10 +123,10 @@ static void Svy_PutIconToAddNewQuestion (void *Surveys);
static void Svy_WriteQstStem (const char *Stem);
static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy,
struct Svy_Question *SvyQst,
bool PutFormAnswerSurvey);
Frm_PutForm_t PutFormAnswerSurvey);
static void Svy_WriteCommentsOfAQst (struct Svy_Survey *Svy,
struct Svy_Question *SvyQst,
bool PutFormAnswerSurvey);
Frm_PutForm_t PutFormAnswerSurvey);
static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs);
static void Svy_PutIconToRemoveOneQst (void *Surveys);
@ -2604,7 +2604,9 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys)
Gbl.Action.Act == ActEdiOneSvyQst ||
Gbl.Action.Act == ActNewSvyQst ||
Gbl.Action.Act == ActChgSvyQst);
bool PutFormAnswerSurvey = Surveys->Svy.Status.ICanAnswer && !Editing;
Frm_PutForm_t PutFormAnswerSurvey = (Surveys->Svy.Status.ICanAnswer &&
!Editing) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/***** Begin box *****/
if (Surveys->Svy.Status.ICanEdit)
@ -2619,7 +2621,7 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys)
/***** Get data of questions from database *****/
if ((NumQsts = Svy_DB_GetSurveyQsts (&mysql_res,Surveys->Svy.SvyCod)))
{
if (PutFormAnswerSurvey)
if (PutFormAnswerSurvey == Frm_PUT_FORM)
{
/***** Begin form to send answers to survey *****/
Frm_BeginForm (ActAnsSvy);
@ -2687,9 +2689,11 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys)
The_GetSuffix (),
The_GetColorRows ());
Svy_WriteQstStem (Stem);
Svy_WriteAnswersOfAQst (&Surveys->Svy,&SvyQst,PutFormAnswerSurvey);
Svy_WriteAnswersOfAQst (&Surveys->Svy,&SvyQst,
PutFormAnswerSurvey);
if (SvyQst.CommentsAllowed)
Svy_WriteCommentsOfAQst (&Surveys->Svy,&SvyQst,PutFormAnswerSurvey);
Svy_WriteCommentsOfAQst (&Surveys->Svy,&SvyQst,
PutFormAnswerSurvey);
HTM_TD_End ();
@ -2698,7 +2702,7 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys)
HTM_TABLE_End ();
if (PutFormAnswerSurvey)
if (PutFormAnswerSurvey == Frm_PUT_FORM)
{
/***** Button to create/modify survey *****/
Btn_PutConfirmButton (Txt_Done);
@ -2799,7 +2803,7 @@ static void Svy_WriteQstStem (const char *Stem)
static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy,
struct Svy_Question *SvyQst,
bool PutFormAnswerSurvey)
Frm_PutForm_t PutFormAnswerSurvey)
{
unsigned NumAnswers;
unsigned NumAns;
@ -2844,7 +2848,7 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy,
/* Selectors and label with the letter of the answer */
HTM_TR_Begin (NULL);
if (PutFormAnswerSurvey)
if (PutFormAnswerSurvey == Frm_PUT_FORM)
{
/* Write selector to choice this answer */
HTM_TD_Begin ("class=\"LT\"");
@ -2913,7 +2917,7 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy,
static void Svy_WriteCommentsOfAQst (struct Svy_Survey *Svy,
struct Svy_Question *SvyQst,
bool PutFormAnswerSurvey)
Frm_PutForm_t PutFormAnswerSurvey)
{
extern const char *Txt_Comments;
unsigned NumComments;
@ -2921,56 +2925,60 @@ static void Svy_WriteCommentsOfAQst (struct Svy_Survey *Svy,
MYSQL_RES *mysql_res;
MYSQL_ROW row;
if (PutFormAnswerSurvey)
switch (PutFormAnswerSurvey)
{
HTM_TEXTAREA_Begin ("name=\"Com%010u\""
" cols=\"60\" rows=\"4\""
" class=\"INPUT_%s\""
" placeholder=\"%s&hellip;\"",
(unsigned) SvyQst->QstCod,
The_GetSuffix (),
Txt_Comments);
HTM_TEXTAREA_End ();
}
else if (Svy->Status.ICanViewComments)
{
HTM_DL_Begin ();
case Frm_DONT_PUT_FORM:
if (Svy->Status.ICanViewComments)
{
HTM_DL_Begin ();
HTM_DT_Begin ();
HTM_TxtColon (Txt_Comments);
HTM_DT_End ();
HTM_DT_Begin ();
HTM_TxtColon (Txt_Comments);
HTM_DT_End ();
HTM_DD_Begin ();
HTM_DD_Begin ();
/***** Get comments of this question *****/
NumComments = Svy_DB_GetCommentsQst (&mysql_res,SvyQst->QstCod);
/***** Get comments of this question *****/
NumComments = Svy_DB_GetCommentsQst (&mysql_res,SvyQst->QstCod);
/***** Write the answers *****/
if (NumComments)
{
HTM_OL_Begin ();
/* Write one row for each user who has commented */
for (NumCom = 0;
NumCom < NumComments;
NumCom++)
/***** Write the answers *****/
if (NumComments)
{
row = mysql_fetch_row (mysql_res);
HTM_OL_Begin ();
HTM_LI_Begin (NULL);
HTM_Txt (row[0]);
HTM_LI_End ();
/* Write one row for each user who has commented */
for (NumCom = 0;
NumCom < NumComments;
NumCom++)
{
row = mysql_fetch_row (mysql_res);
HTM_LI_Begin (NULL);
HTM_Txt (row[0]);
HTM_LI_End ();
}
HTM_OL_End ();
}
HTM_OL_End ();
}
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
HTM_DD_End ();
HTM_DD_End ();
HTM_DL_End ();
HTM_DL_End ();
}
break;
case Frm_PUT_FORM:
HTM_TEXTAREA_Begin ("name=\"Com%010u\""
" cols=\"60\" rows=\"4\""
" class=\"INPUT_%s\""
" placeholder=\"%s&hellip;\"",
(unsigned) SvyQst->QstCod,
The_GetSuffix (),
Txt_Comments);
HTM_TEXTAREA_End ();
break;
}
}

View File

@ -228,8 +228,8 @@ static void Usr_ListRowsAllDataTchs (Rol_Role_t Role,
static void Usr_PutLinkToSeeAdmins (void);
static void Usr_PutLinkToSeeGuests (void);
static bool Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]);
static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]);
static void Usr_PutOptionsListUsrs (const bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]);
static void Usr_ShowOneListUsrsOption (Usr_ListUsrsOption_t ListUsrsAction,
const char *Label);
@ -1613,12 +1613,12 @@ void Usr_ChkUsrAndGetUsrData (void)
extern const char *Txt_The_session_has_expired;
struct
{
bool PutForm;
Frm_PutForm_t PutForm;
Act_Action_t Action;
void (*FuncPars) (void);
} FormLogin =
{
false,
Frm_DONT_PUT_FORM,
ActLogIn,
NULL
};
@ -1631,7 +1631,7 @@ void Usr_ChkUsrAndGetUsrData (void)
Gbl.Action.Act = ActLogOut;
Tab_SetCurrentTab ();
Ale_ShowAlert (Ale_WARNING,Txt_The_session_has_expired);
FormLogin.PutForm = true;
FormLogin.PutForm = Frm_PUT_FORM;
}
}
else // !Gbl.Session.HasBeenDisconnected
@ -1677,7 +1677,7 @@ void Usr_ChkUsrAndGetUsrData (void)
}
}
else
FormLogin.PutForm = true;
FormLogin.PutForm = Frm_PUT_FORM;
}
else if (Gbl.Action.Act == ActLogIn ||
Gbl.Action.Act == ActLogInUsrAgd) // Login using @nickname, email or ID from form
@ -1694,7 +1694,7 @@ void Usr_ChkUsrAndGetUsrData (void)
}
else
{
FormLogin.PutForm = true;
FormLogin.PutForm = Frm_PUT_FORM;
if (Gbl.Action.Act == ActLogInUsrAgd)
{
FormLogin.Action = ActLogInUsrAgd;
@ -1721,13 +1721,13 @@ void Usr_ChkUsrAndGetUsrData (void)
Set_SetSettingsFromIP (); // Set settings from current IP
}
else
FormLogin.PutForm = true;
FormLogin.PutForm = Frm_PUT_FORM;
}
}
}
/***** If session disconnected or error in login, show form to login *****/
if (FormLogin.PutForm)
if (FormLogin.PutForm == Frm_PUT_FORM)
{
Usr_WriteFormLogin (FormLogin.Action,FormLogin.FuncPars);
Err_ShowErrorAndExit (NULL);
@ -3683,7 +3683,7 @@ void Usr_PutFormToSelectUsrsToGoToAct (struct Usr_SelectedUsrs *SelectedUsrs,
const char *Title,
const char *HelpLink,
const char *TxtButton,
bool PutFormDateRange)
Frm_PutForm_t PutFormDateRange)
{
extern const char *Txt_Select_users;
extern const char *Txt_Users;
@ -3769,7 +3769,7 @@ void Usr_PutFormToSelectUsrsToGoToAct (struct Usr_SelectedUsrs *SelectedUsrs,
HTM_TR_End ();
/* Starting and ending dates in the search */
if (PutFormDateRange)
if (PutFormDateRange == Frm_PUT_FORM)
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (SetHMS);
HTM_TABLE_End ();
@ -5026,7 +5026,7 @@ void Usr_SeeGuests (void)
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_Scope;
bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS];
bool PutForm;
Frm_PutForm_t PutForm;
/***** Contextual menu *****/
Mnu_ContextMenuBegin ();
@ -5085,10 +5085,11 @@ void Usr_SeeGuests (void)
Lay_WriteHeaderClassPhoto (Vie_VIEW);
/* Set options allowed */
PutForm = Usr_SetOptionsListUsrsAllowed (Rol_GST,ICanChooseOption);
PutForm = Usr_SetOptionsListUsrsAllowed (Rol_GST,ICanChooseOption) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/* Begin form */
if (PutForm)
if (PutForm == Frm_PUT_FORM)
Frm_BeginForm (ActDoActOnSevGst);
/* Begin table */
@ -5113,7 +5114,7 @@ void Usr_SeeGuests (void)
HTM_TABLE_End ();
/***** Which action, show records, follow...? *****/
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
Usr_PutOptionsListUsrs (ICanChooseOption);
Frm_EndForm ();
@ -5144,7 +5145,7 @@ void Usr_SeeStudents (void)
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_Scope;
bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS];
bool PutForm;
Frm_PutForm_t PutForm;
/***** Put contextual links *****/
switch (Gbl.Usrs.Me.Role.Logged)
@ -5235,10 +5236,11 @@ void Usr_SeeStudents (void)
Lay_WriteHeaderClassPhoto (Vie_VIEW);
/* Set options allowed */
PutForm = Usr_SetOptionsListUsrsAllowed (Rol_STD,ICanChooseOption);
PutForm = Usr_SetOptionsListUsrsAllowed (Rol_STD,ICanChooseOption) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/* Begin form */
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
Frm_BeginForm (ActDoActOnSevStd);
Grp_PutParsCodGrps ();
@ -5266,7 +5268,7 @@ void Usr_SeeStudents (void)
HTM_TABLE_End ();
/***** Which action, show records, follow...? *****/
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
Usr_PutOptionsListUsrs (ICanChooseOption);
Frm_EndForm ();
@ -5301,7 +5303,7 @@ void Usr_SeeTeachers (void)
extern const char *Txt_Scope;
unsigned NumUsrs;
bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS];
bool PutForm;
Frm_PutForm_t PutForm;
/***** Put contextual links *****/
switch (Gbl.Usrs.Me.Role.Logged)
@ -5401,10 +5403,11 @@ void Usr_SeeTeachers (void)
Lay_WriteHeaderClassPhoto (Vie_VIEW);
/* Set options allowed */
PutForm = Usr_SetOptionsListUsrsAllowed (Rol_TCH,ICanChooseOption);
PutForm = Usr_SetOptionsListUsrsAllowed (Rol_TCH,ICanChooseOption) ? Frm_PUT_FORM :
Frm_DONT_PUT_FORM;
/* Begin form */
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
Frm_BeginForm (ActDoActOnSevTch);
Grp_PutParsCodGrps ();
@ -5443,7 +5446,7 @@ void Usr_SeeTeachers (void)
HTM_TABLE_End ();
/***** Which action, show records, follow...? *****/
if (PutForm)
if (PutForm == Frm_PUT_FORM)
{
Usr_PutOptionsListUsrs (ICanChooseOption);
Frm_EndForm ();
@ -5473,11 +5476,10 @@ void Usr_SeeTeachers (void)
/*****************************************************************************/
// Returns true if any option is allowed
static bool Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS])
static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
bool ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS])
{
Usr_ListUsrsOption_t Opt;
bool OptionsAllowed;
/***** Check which options I can choose *****/
/* Set default (I can not choose options) */
@ -5525,19 +5527,17 @@ static bool Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole,
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM));
break;
default:
return false;
return Frm_DONT_PUT_FORM;
}
/***** Count allowed options *****/
OptionsAllowed = false;
for (Opt = (Usr_ListUsrsOption_t) 1; // Skip unknown option
!OptionsAllowed &&
Opt <= (Usr_ListUsrsOption_t) (Usr_LIST_USRS_NUM_OPTIONS - 1);
Opt++)
if (ICanChooseOption[Opt])
OptionsAllowed = true;
return Frm_PUT_FORM;
return OptionsAllowed;
return Frm_DONT_PUT_FORM;
}
/*****************************************************************************/

View File

@ -403,7 +403,7 @@ void Usr_PutFormToSelectUsrsToGoToAct (struct Usr_SelectedUsrs *SelectedUsrs,
const char *Title,
const char *HelpLink,
const char *TxtButton,
bool PutFormDateRange);
Frm_PutForm_t PutFormDateRange);
void Usr_GetSelectedUsrsAndGoToAct (struct Usr_SelectedUsrs *SelectedUsrs,
void (*FuncWhenUsrsSelected) (void *ArgsSelected),void *ArgsSelected,
void (*FuncWhenNoUsrsSelected) (void *ArgsNoSelected),void *ArgsNoSelected);