mirror of https://github.com/acanas/swad-core.git
Version19.108.2
This commit is contained in:
parent
0bb8245fdc
commit
fef1cb17ae
|
@ -420,11 +420,10 @@ void Acc_ShowFormGoToRequestNewAccount (void)
|
|||
extern const char *Txt_Create_account;
|
||||
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_New_on_PLATFORM_Sign_up,
|
||||
Cfg_PLATFORM_SHORT_NAME);
|
||||
Box_BoxBegin (NULL,Gbl.Title,NULL,
|
||||
Box_BoxBegin (NULL,Str_BuildStrMsg (Txt_New_on_PLATFORM_Sign_up,
|
||||
Cfg_PLATFORM_SHORT_NAME),NULL,
|
||||
Hlp_PROFILE_SignUp,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
/***** Button to go to request the creation of a new account *****/
|
||||
Frm_StartForm (ActFrmMyAcc);
|
||||
|
|
|
@ -356,14 +356,13 @@ void Agd_ShowUsrAgenda (void)
|
|||
Error = false;
|
||||
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Public_agenda_USER,
|
||||
Gbl.Usrs.Other.UsrDat.FullName);
|
||||
ItsMe = Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||
Box_BoxBegin ("100%",Gbl.Title,
|
||||
Box_BoxBegin ("100%",Str_BuildStrMsg (Txt_Public_agenda_USER,
|
||||
Gbl.Usrs.Other.UsrDat.FullName),
|
||||
ItsMe ? Agd_PutIconsMyPublicAgenda :
|
||||
Agd_PutIconsOtherPublicAgenda,
|
||||
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
/***** Show the current events in the user's agenda *****/
|
||||
Agd_ShowEventsToday (Agd_ANOTHER_AGENDA_TODAY);
|
||||
|
@ -400,14 +399,13 @@ void Agd_ShowOtherAgendaAfterLogIn (void)
|
|||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat,Usr_DONT_GET_PREFS)) // Existing user
|
||||
{
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Public_agenda_USER,
|
||||
Gbl.Usrs.Other.UsrDat.FullName);
|
||||
ItsMe = Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||
Box_BoxBegin ("100%",Gbl.Title,
|
||||
Box_BoxBegin ("100%",Str_BuildStrMsg (Txt_Public_agenda_USER,
|
||||
Gbl.Usrs.Other.UsrDat.FullName),
|
||||
ItsMe ? Agd_PutIconToViewEditMyFullAgenda :
|
||||
Agd_PutIconsOtherPublicAgenda,
|
||||
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
/***** Show the current events in the user's agenda *****/
|
||||
Agd_ShowEventsToday (Agd_ANOTHER_AGENDA_TODAY);
|
||||
|
@ -1902,11 +1900,10 @@ void Agd_PrintAgdQRCode (void)
|
|||
extern const char *Txt_Where_s_USER;
|
||||
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Where_s_USER,
|
||||
Gbl.Usrs.Me.UsrDat.FullName);
|
||||
Box_BoxBegin (NULL,Gbl.Title,NULL,
|
||||
Box_BoxBegin (NULL,Str_BuildStrMsg (Txt_Where_s_USER,
|
||||
Gbl.Usrs.Me.UsrDat.FullName),NULL,
|
||||
NULL,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
/***** Print QR code ****/
|
||||
QR_PrintQRCode ();
|
||||
|
|
|
@ -264,11 +264,11 @@ static void Ctr_ListCentres (void)
|
|||
unsigned NumCtr;
|
||||
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Centres_of_INSTITUTION_X,
|
||||
Gbl.Hierarchy.Ins.FullName);
|
||||
Box_BoxBegin (NULL,Gbl.Title,Ctr_PutIconsListingCentres,
|
||||
Box_BoxBegin (NULL,Str_BuildStrMsg (Txt_Centres_of_INSTITUTION_X,
|
||||
Gbl.Hierarchy.Ins.FullName),
|
||||
Ctr_PutIconsListingCentres,
|
||||
Hlp_INSTITUTION_Centres,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
if (Gbl.Hierarchy.Ins.Ctrs.Num) // There are centres in the current institution
|
||||
{
|
||||
|
@ -476,11 +476,11 @@ static void Ctr_EditCentresInternal (void)
|
|||
Hie_WriteMenuHierarchy ();
|
||||
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Centres_of_INSTITUTION_X,
|
||||
Gbl.Hierarchy.Ins.FullName);
|
||||
Box_BoxBegin (NULL,Gbl.Title,Ctr_PutIconsEditingCentres,
|
||||
Box_BoxBegin (NULL,Str_BuildStrMsg (Txt_Centres_of_INSTITUTION_X,
|
||||
Gbl.Hierarchy.Ins.FullName),
|
||||
Ctr_PutIconsEditingCentres,
|
||||
Hlp_INSTITUTION_Centres,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
/***** Put a form to create a new centre *****/
|
||||
Ctr_PutFormToCreateCentre ();
|
||||
|
|
|
@ -797,10 +797,10 @@ static void CtrCfg_NumDegs (void)
|
|||
HTM_TD_Begin ("class=\"LB\"");
|
||||
Frm_StartFormGoTo (ActSeeDeg);
|
||||
Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod);
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Degrees_of_CENTRE_X,
|
||||
Gbl.Hierarchy.Ctr.ShrtName);
|
||||
HTM_BUTTON_SUBMIT_Begin (Gbl.Title,"BT_LINK DAT",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStrMsg (Txt_Degrees_of_CENTRE_X,
|
||||
Gbl.Hierarchy.Ctr.ShrtName),
|
||||
"BT_LINK DAT",NULL);
|
||||
Str_FreeStrMsg ();
|
||||
HTM_Unsigned (Deg_GetNumDegsInCtr (Gbl.Hierarchy.Ctr.CtrCod));
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
|
|
@ -492,7 +492,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.108 (2019-12-30)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.108.2 (2019-12-30)"
|
||||
#define CSS_FILE "swad19.101.5.css"
|
||||
#define JS_FILE "swad19.91.1.js"
|
||||
/*
|
||||
|
@ -502,6 +502,8 @@ ps2pdf source.ps destination.pdf
|
|||
|
||||
Version 19.10x: Dec 30, 2019 Map in country information. (? lines)
|
||||
Version 19.10x: Dec 30, 2019 Map in institution information. (? lines)
|
||||
Version 19.108.2: Dec 30, 2019 Code refactoring related to printing messages. (249739 lines)
|
||||
Version 19.108.1: Dec 30, 2019 Code refactoring related to printing messages. (249746 lines)
|
||||
Version 19.108: Dec 30, 2019 Code refactoring related to hierarchy. (249730 lines)
|
||||
Version 19.107: Dec 29, 2019 New module swad_hierarchy_config for common hierarchy configuration functions. (249760 lines)
|
||||
Version 19.106: Dec 29, 2019 New module swad_country_config for country configuration. (249683 lines)
|
||||
|
|
|
@ -343,10 +343,10 @@ static void CtyCfg_NumInss (void)
|
|||
HTM_TD_Begin ("class=\"LB\"");
|
||||
Frm_StartFormGoTo (ActSeeIns);
|
||||
Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod);
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Institutions_of_COUNTRY_X,
|
||||
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]);
|
||||
HTM_BUTTON_SUBMIT_Begin (Gbl.Title,"BT_LINK DAT",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStrMsg (Txt_Institutions_of_COUNTRY_X,
|
||||
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
|
||||
"BT_LINK DAT",NULL);
|
||||
Str_FreeStrMsg ();
|
||||
HTM_Unsigned (Ins_GetNumInssInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
|
|
@ -743,11 +743,11 @@ static void Crs_ListCourses (void)
|
|||
unsigned Year;
|
||||
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Courses_of_DEGREE_X,
|
||||
Gbl.Hierarchy.Deg.ShrtName);
|
||||
Box_BoxBegin (NULL,Gbl.Title,Crs_PutIconsListCourses,
|
||||
Box_BoxBegin (NULL,Str_BuildStrMsg (Txt_Courses_of_DEGREE_X,
|
||||
Gbl.Hierarchy.Deg.ShrtName),
|
||||
Crs_PutIconsListCourses,
|
||||
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
if (Gbl.Hierarchy.Deg.Crss.Num) // There are courses in the current degree
|
||||
{
|
||||
|
@ -947,11 +947,11 @@ static void Crs_EditCoursesInternal (void)
|
|||
Hie_WriteMenuHierarchy ();
|
||||
|
||||
/***** Begin box *****/
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Courses_of_DEGREE_X,
|
||||
Gbl.Hierarchy.Deg.ShrtName);
|
||||
Box_BoxBegin (NULL,Gbl.Title,Crs_PutIconsEditingCourses,
|
||||
Box_BoxBegin (NULL,Str_BuildStrMsg (Txt_Courses_of_DEGREE_X,
|
||||
Gbl.Hierarchy.Deg.ShrtName),
|
||||
Crs_PutIconsEditingCourses,
|
||||
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
/***** Put a form to create or request a new course *****/
|
||||
Crs_PutFormToCreateCourse ();
|
||||
|
@ -2269,10 +2269,9 @@ static void Crs_PutButtonToRegisterInCrs (void)
|
|||
// If the course being edited is different to the current one...
|
||||
if (Crs_EditingCrs->CrsCod != Gbl.Hierarchy.Crs.CrsCod)
|
||||
Crs_PutParamCrsCod (Crs_EditingCrs->CrsCod);
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_Register_me_in_X,
|
||||
Crs_EditingCrs->ShrtName);
|
||||
Btn_PutCreateButton (Gbl.Title);
|
||||
Btn_PutCreateButton (Str_BuildStrMsg (Txt_Register_me_in_X,
|
||||
Crs_EditingCrs->ShrtName));
|
||||
Str_FreeStrMsg ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
||||
|
@ -2443,15 +2442,13 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
|
|||
NULL,Box_NOT_CLOSABLE,2);
|
||||
|
||||
/* Heading row */
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_USER_in_COURSE,
|
||||
Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role
|
||||
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TH_Begin (1,7,"LM");
|
||||
HTM_TxtF ("%s:",Gbl.Title);
|
||||
HTM_TxtF ("%s:",Str_BuildStrMsg (Txt_USER_in_COURSE,
|
||||
Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role
|
||||
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]));
|
||||
Str_FreeStrMsg ();
|
||||
HTM_TH_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
|
|
@ -48,12 +48,6 @@ extern struct Globals Gbl;
|
|||
/***************************** Private types *********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************************** Private variables *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
char *Hie_GoToMsg = NULL;
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************************** Private constants *******************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -794,15 +788,10 @@ char *Hie_BuildGoToMsg (const char *Where)
|
|||
{
|
||||
extern const char *Txt_Go_to_X;
|
||||
|
||||
Hie_FreeGoToMsg ();
|
||||
if (asprintf (&Hie_GoToMsg,Txt_Go_to_X,Where) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
return Hie_GoToMsg;
|
||||
return Str_BuildStrMsg (Txt_Go_to_X,Where);
|
||||
}
|
||||
|
||||
void Hie_FreeGoToMsg (void)
|
||||
{
|
||||
if (Hie_GoToMsg != NULL)
|
||||
free (Hie_GoToMsg);
|
||||
Str_FreeStrMsg ();
|
||||
}
|
||||
|
|
|
@ -998,14 +998,14 @@ static void Rep_GetAndWriteMyCurrentCrss (Rol_Role_t Role,
|
|||
long CrsCod;
|
||||
|
||||
NumCrss = Usr_GetNumCrssOfUsrWithARole (Gbl.Usrs.Me.UsrDat.UsrCod,Role);
|
||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||
Txt_USER_in_COURSE,
|
||||
Txt_ROLES_SINGUL_Abc[Role][Gbl.Usrs.Me.UsrDat.Sex]);
|
||||
fprintf (Gbl.F.Rep,"<li>%s %u %s",
|
||||
Gbl.Title,
|
||||
Str_BuildStrMsg (Txt_USER_in_COURSE,
|
||||
Txt_ROLES_SINGUL_Abc[Role][Gbl.Usrs.Me.UsrDat.Sex]),
|
||||
NumCrss,
|
||||
NumCrss == 1 ? Txt_course :
|
||||
Txt_courses);
|
||||
Str_FreeStrMsg ();
|
||||
|
||||
if (NumCrss)
|
||||
{
|
||||
fprintf (Gbl.F.Rep," (%u %s / %u %s):",
|
||||
|
|
|
@ -2922,3 +2922,29 @@ void Str_Concat (char *Dst,const char *Src,size_t DstSize)
|
|||
/***** Concatenate ******/
|
||||
strcat (Dst,Src);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************************** Build a string message ***************************/
|
||||
/*****************************************************************************/
|
||||
// FormatMsg must be a string including "%s"
|
||||
// Str_FreeStrMsg() must be called after calling this function
|
||||
|
||||
static char *Str_StrMsg = NULL;
|
||||
|
||||
char *Str_BuildStrMsg (const char *FormatMsg,const char *Str)
|
||||
{
|
||||
Str_FreeStrMsg ();
|
||||
if (asprintf (&Str_StrMsg,FormatMsg,Str) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
return Str_StrMsg;
|
||||
}
|
||||
|
||||
void Str_FreeStrMsg (void)
|
||||
{
|
||||
if (Str_StrMsg != NULL)
|
||||
{
|
||||
free (Str_StrMsg);
|
||||
Str_StrMsg = NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,4 +136,7 @@ void Str_CreateRandomAlphanumStr (char *Str,size_t Length);
|
|||
void Str_Copy (char *Dst,const char *Src,size_t DstSize);
|
||||
void Str_Concat (char *Dst,const char *Src,size_t DstSize);
|
||||
|
||||
char *Str_BuildStrMsg (const char *FormatMsg,const char *Str);
|
||||
void Str_FreeStrMsg (void);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue