Version19.52

This commit is contained in:
Antonio Cañas Vargas 2019-11-05 08:46:38 +01:00
parent 528dd41315
commit f22eebe314
30 changed files with 177 additions and 114 deletions

View File

@ -66,6 +66,7 @@ static unsigned HTM_A_NestingLevel = 0;
static unsigned HTM_SCRIPT_NestingLevel = 0;
static unsigned HTM_LABEL_NestingLevel = 0;
static unsigned HTM_TEXTAREA_NestingLevel = 0;
// static unsigned HTM_SELECT_NestingLevel = 0;
/*****************************************************************************/
/***************************** Private prototypes ****************************/
@ -91,6 +92,8 @@ static void HTM_LABEL_BeginWithoutAttr (void);
static void HTM_TEXTAREA_BeginWithoutAttr (void);
static void HTM_SELECT_BeginWithoutAttr (void);
/*****************************************************************************/
/******************************* Start/end table *****************************/
/*****************************************************************************/
@ -1151,6 +1154,58 @@ void HTM_TEXTAREA_End (void)
HTM_TEXTAREA_NestingLevel--;
}
/*****************************************************************************/
/********************************** Selectors ********************************/
/*****************************************************************************/
void HTM_SELECT_Begin (const char *fmt,...)
{
va_list ap;
int NumBytesPrinted;
char *Attr;
if (fmt)
{
if (fmt[0])
{
va_start (ap,fmt);
NumBytesPrinted = vasprintf (&Attr,fmt,ap);
va_end (ap);
if (NumBytesPrinted < 0) // If memory allocation wasn't possible,
// or some other error occurs,
// vasprintf will return -1
Lay_NotEnoughMemoryExit ();
/***** Print HTML *****/
fprintf (Gbl.F.Out,"<select %s>",Attr);
free ((void *) Attr);
}
else
HTM_SELECT_BeginWithoutAttr ();
}
else
HTM_SELECT_BeginWithoutAttr ();
// HTM_SELECT_NestingLevel++;
}
static void HTM_SELECT_BeginWithoutAttr (void)
{
fprintf (Gbl.F.Out,"<select>");
}
void HTM_SELECT_End (void)
{
// if (HTM_SELECT_NestingLevel == 0) // No SELECT open
// Ale_ShowAlert (Ale_ERROR,"Trying to close unopened SELECT.");
fprintf (Gbl.F.Out,"</select>");
// HTM_SELECT_NestingLevel--;
}
/*****************************************************************************/
/********************************** Images ***********************************/
/*****************************************************************************/

View File

@ -113,6 +113,9 @@ void HTM_INPUT_CHECKBOX (const char *Name,bool SubmitOnChange,
void HTM_TEXTAREA_Begin (const char *fmt,...);
void HTM_TEXTAREA_End (void);
void HTM_SELECT_Begin (const char *fmt,...);
void HTM_SELECT_End (void);
void HTM_IMG (const char *URL,const char *Icon,const char *Title,
const char *fmt,...);

View File

@ -1143,7 +1143,7 @@ void Att_RequestCreatOrEditAttEvent (void)
fprintf (Gbl.F.Out,">%s</option>",
Txt_Visible_MALE_PLURAL);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();

View File

@ -440,7 +440,7 @@ static void Ctr_Configuration (bool PrintView)
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Gbl.Hierarchy.Ins.InsCod ? " selected=\"selected\"" :
"",
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of institutions */
@ -540,7 +540,7 @@ static void Ctr_Configuration (bool PrintView)
(Gbl.Plcs.Lst[NumPlc].PlcCod == Gbl.Hierarchy.Ctr.PlcCod) ? " selected=\"selected\"" :
"",
Gbl.Plcs.Lst[NumPlc].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of places */
@ -1447,7 +1447,7 @@ void Ctr_WriteSelectorOfCentre (void)
}
/***** End form *****/
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
@ -1531,7 +1531,7 @@ static void Ctr_ListCentresForEdition (void)
(Gbl.Plcs.Lst[NumPlc].PlcCod == Ctr->PlcCod) ? " selected=\"selected\"" :
"",
Gbl.Plcs.Lst[NumPlc].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
else
@ -1626,13 +1626,13 @@ static void Ctr_ListCentresForEdition (void)
fprintf (Gbl.F.Out,"<select name=\"Status\" class=\"INPUT_STATUS\""
" onchange=\"document.getElementById('%s').submit();return false;\">"
"<option value=\"%u\" selected=\"selected\">%s</option>"
"<option value=\"%u\">%s</option>"
"</select>",
"<option value=\"%u\">%s</option>",
Gbl.Form.Id,
(unsigned) Ctr_GetStatusBitsFromStatusTxt (Ctr_STATUS_PENDING),
Txt_CENTRE_STATUS[Ctr_STATUS_PENDING],
(unsigned) Ctr_GetStatusBitsFromStatusTxt (Ctr_STATUS_ACTIVE),
Txt_CENTRE_STATUS[Ctr_STATUS_ACTIVE]);
HTM_SELECT_End ();
Frm_EndForm ();
}
else if (StatusTxt != Ctr_STATUS_ACTIVE) // If active ==> do not show anything
@ -2515,7 +2515,7 @@ static void Ctr_PutFormToCreateCentre (void)
(Gbl.Plcs.Lst[NumPlc].PlcCod == Ctr_EditingCtr->PlcCod) ? " selected=\"selected\"" :
"",
Gbl.Plcs.Lst[NumPlc].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Centre short name *****/

View File

@ -490,7 +490,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.51.25 (2019-11-05)"
#define Log_PLATFORM_VERSION "SWAD 19.52 (2019-11-05)"
#define CSS_FILE "swad19.47.css"
#define JS_FILE "swad19.39.js"
/*
@ -498,6 +498,7 @@ ps2pdf source.ps destination.pdf
// TODO: Impedir la creación y edición de proyectos si no son editables.
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
Version 19.52: Nov 05, 2019 Code refactoring in HTML selects. (245959 lines)
Version 19.51.25: Nov 05, 2019 Fixed bug in file browser. (245909 lines)
Version 19.51.24: Nov 05, 2019 Fixed bug in tests. (245908 lines)
Version 19.51.23: Nov 04, 2019 Fixed bug in forms. (245907 lines)

View File

@ -1272,7 +1272,7 @@ void Cty_WriteSelectorOfCountry (void)
DB_FreeMySQLResult (&mysql_res);
/***** End form *****/
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}

View File

@ -265,7 +265,7 @@ static void Crs_Configuration (bool PrintView)
Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].DegCod == Gbl.Hierarchy.Deg.DegCod ? " selected=\"selected\"" :
"",
Gbl.Hierarchy.Ctr.Degs.Lst[NumDeg].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of degrees of the current centre */
@ -355,7 +355,7 @@ static void Crs_Configuration (bool PrintView)
Year == Gbl.Hierarchy.Crs.Year ? " selected=\"selected\"" :
"",
Txt_YEAR_OF_DEGREE[Year]);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
else
@ -934,7 +934,7 @@ void Crs_WriteSelectorOfCourse (void)
}
/***** End form *****/
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
@ -1114,7 +1114,7 @@ void Crs_WriteSelectorMyCoursesInBreadcrumb (void)
Gbl.Hierarchy.Crs.ShrtName);
/***** End form *****/
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
@ -1494,7 +1494,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
YearAux == Crs->Year ? " selected=\"selected\"" :
"",
Txt_YEAR_OF_DEGREE[YearAux]);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
else
@ -1558,13 +1558,13 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
fprintf (Gbl.F.Out,"<select name=\"Status\" class=\"INPUT_STATUS\""
" onchange=\"document.getElementById('%s').submit();return false;\">"
"<option value=\"%u\" selected=\"selected\">%s</option>"
"<option value=\"%u\">%s</option>"
"</select>",
"<option value=\"%u\">%s</option>",
Gbl.Form.Id,
(unsigned) Crs_GetStatusBitsFromStatusTxt (Crs_STATUS_PENDING),
Txt_COURSE_STATUS[Crs_STATUS_PENDING],
(unsigned) Crs_GetStatusBitsFromStatusTxt (Crs_STATUS_ACTIVE),
Txt_COURSE_STATUS[Crs_STATUS_ACTIVE]);
HTM_SELECT_End ();
Frm_EndForm ();
}
else if (StatusTxt != Crs_STATUS_ACTIVE) // If active ==> do not show anything
@ -1686,7 +1686,7 @@ static void Crs_PutFormToCreateCourse (void)
Year == Crs_EditingCrs->Year ? " selected=\"selected\"" :
"",
Txt_YEAR_OF_DEGREE[Year]);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Course short name *****/
@ -3301,7 +3301,8 @@ void Crs_AskRemoveOldCrss (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%u</option>",i);
}
fprintf (Gbl.F.Out,"</select>&nbsp;");
HTM_SELECT_End ();
fprintf (Gbl.F.Out,"&nbsp;");
fprintf (Gbl.F.Out,Txt_Eliminate_all_courses_whithout_users_PART_2_OF_2,
Cfg_PLATFORM_SHORT_NAME);
HTM_LABEL_End ();

View File

@ -576,7 +576,7 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Year++)
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
Year,Year);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Month *****/
@ -595,7 +595,7 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Month++)
fprintf (Gbl.F.Out,"<option value=\"%u\">%s</option>",
Month,Txt_MONTHS_SMALL[Month - 1]);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Day *****/
@ -612,7 +612,7 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Day++)
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
Day,Day);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Hour *****/
@ -629,7 +629,7 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Hour++)
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u h</option>",
Hour,Hour);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Minute *****/
@ -648,7 +648,7 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u &#39;</option>",
Minute,Minute);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Second *****/
@ -667,7 +667,7 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Second++)
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u &quot;</option>",
Second,Second);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
}
@ -846,7 +846,7 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%u</option>",Year);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Month *****/
@ -870,7 +870,7 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_MONTHS_SMALL[Month - 1]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Day *****/
@ -894,7 +894,7 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%u</option>",Day);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** End table *****/

View File

@ -369,7 +369,7 @@ static void Deg_Configuration (bool PrintView)
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].CtrCod == Gbl.Hierarchy.Ctr.CtrCod ? " selected=\"selected\"" :
"",
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of centres */
@ -645,7 +645,7 @@ void Deg_WriteSelectorOfDegree (void)
}
/***** End form *****/
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
@ -783,7 +783,7 @@ static void Deg_ListDegreesForEdition (void)
"",
DegTyp->DegTypName);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
else
@ -840,13 +840,13 @@ static void Deg_ListDegreesForEdition (void)
fprintf (Gbl.F.Out,"<select name=\"Status\" class=\"INPUT_STATUS\""
" onchange=\"document.getElementById('%s').submit();return false;\">"
"<option value=\"%u\" selected=\"selected\">%s</option>"
"<option value=\"%u\">%s</option>"
"</select>",
"<option value=\"%u\">%s</option>",
Gbl.Form.Id,
(unsigned) Deg_GetStatusBitsFromStatusTxt (Deg_STATUS_PENDING),
Txt_DEGREE_STATUS[Deg_STATUS_PENDING],
(unsigned) Deg_GetStatusBitsFromStatusTxt (Deg_STATUS_ACTIVE),
Txt_DEGREE_STATUS[Deg_STATUS_ACTIVE]);
HTM_SELECT_End ();
Frm_EndForm ();
}
else if (StatusTxt != Deg_STATUS_ACTIVE) // If active ==> do not show anything
@ -982,7 +982,7 @@ static void Deg_PutFormToCreateDegree (void)
"",
DegTyp->DegTypName);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Degree WWW *****/

View File

@ -129,7 +129,7 @@ void DT_WriteSelectorDegreeTypes (void)
fprintf (Gbl.F.Out,">%s</option>",Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
/***** Free list of degree types *****/
DT_FreeListDegreeTypes ();

View File

@ -554,7 +554,7 @@ static void Dpt_ListDepartmentsForEdition (void)
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Dpt->InsCod ? " selected=\"selected\"" :
"",
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -931,7 +931,7 @@ static void Dpt_PutFormToCreateDepartment (void)
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].InsCod == Dpt_EditingDpt->InsCod ? " selected=\"selected\"" :
"",
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Department short name *****/
@ -1151,7 +1151,7 @@ void Dpt_WriteSelectorDepartment (long InsCod,long DptCod,
}
/* End selector */
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
/***** Free list of departments *****/
Dpt_FreeListDepartments ();

View File

@ -815,7 +815,8 @@ void Enr_AskRemoveOldUsrs (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%u</option>",Months);
}
fprintf (Gbl.F.Out,"</select>&nbsp;");
HTM_SELECT_End ();
fprintf (Gbl.F.Out,"&nbsp;");
fprintf (Gbl.F.Out,Txt_Eliminate_all_users_who_are_not_enroled_on_any_courses_PART_2_OF_2,
Cfg_PLATFORM_SHORT_NAME);
HTM_LABEL_End ();

View File

@ -1132,7 +1132,7 @@ static void Exa_ShowExamAnnouncement (long ExaCod,
"</option>",
Year,Txt_YEAR_OF_DEGREE[Year]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
else
fprintf (Gbl.F.Out,"%s",
@ -1212,8 +1212,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod,
fprintf (Gbl.F.Out,">%02u %s</option>",
Hour,Txt_hours_ABBREVIATION);
}
fprintf (Gbl.F.Out,"</select>"
"<select name=\"ExamMinute\">");
HTM_SELECT_End ();
fprintf (Gbl.F.Out,"<select name=\"ExamMinute\">");
for (Minute = 0;
Minute <= 59;
Minute++)
@ -1223,7 +1223,7 @@ static void Exa_ShowExamAnnouncement (long ExaCod,
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%02u &#39;</option>",Minute);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
else if (Gbl.ExamAnns.ExaDat.StartTime.Hour)
fprintf (Gbl.F.Out,"%2u:%02u",
@ -1254,8 +1254,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod,
fprintf (Gbl.F.Out,">%02u %s</option>",
Hour,Txt_hours_ABBREVIATION);
}
fprintf (Gbl.F.Out,"</select>"
"<select name=\"DurationMinute\">");
HTM_SELECT_End ();
fprintf (Gbl.F.Out,"<select name=\"DurationMinute\">");
for (Minute = 0;
Minute <= 59;
Minute++)
@ -1265,7 +1265,7 @@ static void Exa_ShowExamAnnouncement (long ExaCod,
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%02u &#39;</option>",Minute);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
else if (Gbl.ExamAnns.ExaDat.Duration.Hour ||
Gbl.ExamAnns.ExaDat.Duration.Minute)

View File

@ -237,7 +237,7 @@ void Fig_ReqShowFigures (void)
"</option>",
Txt_FIGURE_TYPES[FigureType]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_LABEL_End ();
/***** Send button and end box *****/

View File

@ -9587,7 +9587,7 @@ void Brw_ShowFileMetadata (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_Public_open_educational_resource_OER_for_everyone);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
else // I can not edit file properties
fprintf (Gbl.F.Out,"%s",
@ -9621,7 +9621,7 @@ void Brw_ShowFileMetadata (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_LICENSES[License]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
else // I can not edit file properties
fprintf (Gbl.F.Out,"%s",Txt_LICENSES[FileMetadata.License]);
@ -12144,7 +12144,8 @@ void Brw_AskRemoveOldFiles (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%u</option>",Months);
}
fprintf (Gbl.F.Out,"</select>&nbsp;");
HTM_SELECT_End ();
fprintf (Gbl.F.Out,"&nbsp;");
fprintf (Gbl.F.Out,Txt_Remove_files_older_than_PART_2_OF_2,
Cfg_PLATFORM_SHORT_NAME);
HTM_LABEL_End ();

View File

@ -1335,9 +1335,9 @@ static void Grp_ListGroupTypesForEdition (void)
Txt_It_is_optional_to_choose_a_group);
if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MandatoryEnrolment)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>"
"</select>",
fprintf (Gbl.F.Out,">%s</option>",
Txt_It_is_mandatory_to_choose_a_group);
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -1357,9 +1357,9 @@ static void Grp_ListGroupTypesForEdition (void)
Txt_A_student_can_only_belong_to_one_group);
if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MultipleEnrolment)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>"
"</select>",
fprintf (Gbl.F.Out,">%s</option>",
Txt_A_student_can_belong_to_several_groups);
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -1565,7 +1565,7 @@ static void Grp_ListGroupsForEdition (void)
}
/* End selector */
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -1615,7 +1615,7 @@ static void Grp_ListGroupsForEdition (void)
}
/* End selector */
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -2514,9 +2514,9 @@ static void Grp_PutFormToCreateGroupType (void)
Txt_It_is_optional_to_choose_a_group);
if (Gbl.Crs.Grps.GrpTyp.MandatoryEnrolment)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>"
"</select>",
fprintf (Gbl.F.Out,">%s</option>",
Txt_It_is_mandatory_to_choose_a_group);
HTM_SELECT_End ();
HTM_TD_End ();
/***** Is it possible to register in multiple groups of this type? *****/
@ -2531,9 +2531,9 @@ static void Grp_PutFormToCreateGroupType (void)
Txt_A_student_can_only_belong_to_one_group);
if (Gbl.Crs.Grps.GrpTyp.MultipleEnrolment)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>"
"</select>",
fprintf (Gbl.F.Out,">%s</option>",
Txt_A_student_can_belong_to_several_groups);
HTM_SELECT_End ();
HTM_TD_End ();
/***** Open time *****/
@ -2643,7 +2643,7 @@ static void Grp_PutFormToCreateGroup (void)
}
/* End selector */
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Group name *****/
@ -2685,7 +2685,7 @@ static void Grp_PutFormToCreateGroup (void)
}
/* End selector */
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Current number of users in this group *****/

View File

@ -600,7 +600,7 @@ static void Hld_ListHolidaysForEdition (void)
Gbl.Plcs.Lst[NumPlc].PlcCod == Hld->PlcCod ? " selected=\"selected\"" :
"",
Gbl.Plcs.Lst[NumPlc].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -619,7 +619,7 @@ static void Hld_ListHolidaysForEdition (void)
HolidayType == Hld->HldTyp ? " selected=\"selected\"" :
"",
Txt_HOLIDAY_TYPES[HolidayType]);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -999,7 +999,7 @@ static void Hld_PutFormToCreateHoliday (void)
Gbl.Plcs.Lst[NumPlc].PlcCod == Hld_EditingHld->PlcCod ? " selected=\"selected\"" :
"",
Gbl.Plcs.Lst[NumPlc].ShrtName);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Holiday type *****/
@ -1013,7 +1013,7 @@ static void Hld_PutFormToCreateHoliday (void)
HolidayType == Hld_EditingHld->HldTyp ? " selected=\"selected\"" :
"",
Txt_HOLIDAY_TYPES[HolidayType]);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
/***** Holiday date / Non school period start date *****/

View File

@ -381,7 +381,7 @@ static void Ins_Configuration (bool PrintView)
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].CtyCod == Gbl.Hierarchy.Cty.CtyCod ? " selected=\"selected\"" :
"",
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
/* Free list of countries */
@ -1418,7 +1418,7 @@ void Ins_WriteSelectorOfInstitution (void)
}
/***** End form *****/
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}
@ -1565,13 +1565,13 @@ static void Ins_ListInstitutionsForEdition (void)
fprintf (Gbl.F.Out,"<select name=\"Status\" class=\"INPUT_STATUS\""
" onchange=\"document.getElementById('%s').submit();return false;\">"
"<option value=\"%u\" selected=\"selected\">%s</option>"
"<option value=\"%u\">%s</option>"
"</select>",
"<option value=\"%u\">%s</option>",
Gbl.Form.Id,
(unsigned) Ins_GetStatusBitsFromStatusTxt (Ins_STATUS_PENDING),
Txt_INSTITUTION_STATUS[Ins_STATUS_PENDING],
(unsigned) Ins_GetStatusBitsFromStatusTxt (Ins_STATUS_ACTIVE),
Txt_INSTITUTION_STATUS[Ins_STATUS_ACTIVE]);
HTM_SELECT_End ();
Frm_EndForm ();
}
else if (StatusTxt != Ins_STATUS_ACTIVE) // If active ==> do not show anything

View File

@ -29,6 +29,7 @@
#include "swad_database.h"
#include "swad_form.h"
#include "swad_global.h"
#include "swad_HTML.h"
#include "swad_language.h"
#include "swad_setting.h"
@ -128,7 +129,7 @@ void Lan_PutSelectorToSelectLanguage (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_STR_LANG_NAME[Lan]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}

View File

@ -2633,7 +2633,7 @@ void Msg_ShowFormSelectCourseSentOrRecMsgs (void)
fprintf (Gbl.F.Out," selected=\"selected\""); // Select origin course
fprintf (Gbl.F.Out,">%s</option>",Gbl.Msg.Courses[NumOriginCrs].ShrtName);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_LABEL_End ();
}

View File

@ -1809,7 +1809,7 @@ static void Pho_PutSelectorForTypeOfAvg (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_AVERAGE_PHOTO_TYPES[TypeOfAvg]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -1874,7 +1874,7 @@ static void Pho_PutSelectorForHowComputePhotoSize (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_STAT_DEGREE_PHOTO_SIZE[PhoSi]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -1939,7 +1939,7 @@ static void Pho_PutSelectorForHowOrderDegrees (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_STAT_DEGREE_PHOTO_ORDER[Order]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -2049,7 +2049,7 @@ static void Pho_PutLinkToCalculateDegreeStats (void)
Txt_time,
StrEstimatedTimeToComputeAvgPhoto);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
/* End form and contextual menu */
Frm_EndForm ();

View File

@ -3353,7 +3353,7 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_No);
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();
@ -3390,7 +3390,7 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_PROJECT_STATUS[Proposal]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();

View File

@ -345,7 +345,7 @@ void Rec_ListFieldsRecordsForEdition (void)
fprintf (Gbl.F.Out,">%s</option>",
Txt_RECORD_FIELD_VISIBILITY_MENU[Vis]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
HTM_TR_End ();
@ -410,7 +410,7 @@ void Rec_ShowFormCreateRecordField (void)
Txt_RECORD_FIELD_VISIBILITY_MENU[Vis]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();
@ -1504,8 +1504,8 @@ static void Rec_ShowLinkToPrintPreviewOfRecords (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%u</option>",i);
}
fprintf (Gbl.F.Out,"</select> %s)",
Txt_record_cards_per_page);
HTM_SELECT_End ();
fprintf (Gbl.F.Out," %s)",Txt_record_cards_per_page);
HTM_LABEL_End ();
}
@ -2942,7 +2942,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,">%s</option>",
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
break;
case Rec_SHA_OTHER_EXISTING_USR_FORM: // The other user already exists in the platform
if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected
@ -3025,7 +3025,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
default: // The rest of users can not register other users
break;
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
else // No course selected
{
@ -3038,10 +3038,10 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
/***** Selector of role *****/
fprintf (Gbl.F.Out,"<select id=\"Role\" name=\"Role\">"
"<option value=\"%u\" selected=\"selected\""
" disabled=\"disabled\">%s</option>"
"</select>",
" disabled=\"disabled\">%s</option>",
(unsigned) DefaultRoleInForm,
Txt_ROLES_SINGUL_Abc[DefaultRoleInForm][UsrDat->Sex]);
HTM_SELECT_End ();
}
break;
case Rec_SHA_OTHER_NEW_USR_FORM: // The user does not exist in platform
@ -3082,7 +3082,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,">%s</option>",
Txt_ROLES_SINGUL_Abc[Role][Usr_SEX_UNKNOWN]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
break;
default: // The rest of users can not register other users
break;
@ -3094,9 +3094,9 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
/***** Selector of role *****/
fprintf (Gbl.F.Out,"<select id=\"Role\" name=\"Role\">"
"<option value=\"%u\""
" selected=\"selected\">%s</option>"
"</select>",
" selected=\"selected\">%s</option>",
(unsigned) Rol_GST,Txt_ROLES_SINGUL_Abc[Rol_GST][Usr_SEX_UNKNOWN]);
HTM_SELECT_End ();
break;
default: // The rest of users can not register other users
break;
@ -3298,7 +3298,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,">%s</option>",
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();
@ -4036,7 +4036,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
fprintf (Gbl.F.Out,">%s</option>",
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -4084,7 +4084,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
fprintf (Gbl.F.Out,">%s</option>",
Gbl.Hierarchy.Cty.Inss.Lst[NumIns].FullName);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();
@ -4134,7 +4134,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
fprintf (Gbl.F.Out,">%s</option>",
Gbl.Hierarchy.Ins.Ctrs.Lst[NumCtr].FullName);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
HTM_TD_End ();

View File

@ -490,7 +490,7 @@ void Rol_PutFormToChangeMyRole (const char *ClassSelect)
fprintf (Gbl.F.Out,">%s</option>",
Txt_ROLES_SINGUL_Abc[Role][Gbl.Usrs.Me.UsrDat.Sex]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
Frm_EndForm ();
}

View File

@ -29,6 +29,7 @@
#include "swad_config.h"
#include "swad_global.h"
#include "swad_HTML.h"
#include "swad_parameter.h"
#include "swad_scope.h"
@ -162,7 +163,7 @@ void Sco_PutSelectorScope (const char *ParamName,bool SendOnChange)
}
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
/*****************************************************************************/

View File

@ -177,7 +177,7 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
fprintf (Gbl.F.Out,">%s</option>",
Titles[WhatToSearch]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_LABEL_End ();
/***** Magnifying glass icon *****/

View File

@ -431,7 +431,7 @@ void Sta_AskShowCrsHits (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s",Txt_STAT_CLICKS_GROUPED_BY[ClicksGroupedBy]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_LABEL_End ();
/***** Separator *****/
@ -467,7 +467,8 @@ void Sta_AskShowCrsHits (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%lu",RowsPerPage[i]);
}
fprintf (Gbl.F.Out,"</select>)");
HTM_SELECT_End ();
fprintf (Gbl.F.Out,")");
HTM_LABEL_End ();
HTM_TD_End ();
@ -557,7 +558,7 @@ void Sta_AskShowGblHits (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s",Txt_ROLE_STATS[RoleStat]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();
@ -619,7 +620,7 @@ void Sta_AskShowGblHits (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s",Txt_STAT_CLICKS_GROUPED_BY[ClicksGroupedBy]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_LABEL_End ();
HTM_TD_End ();
@ -694,7 +695,7 @@ static void Sta_WriteSelectorCountType (void)
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s",Txt_STAT_TYPE_COUNT_SMALL[StatCountType]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
}
/*****************************************************************************/
@ -736,7 +737,7 @@ static void Sta_WriteSelectorAction (void)
fprintf (Gbl.F.Out,"%s",
Act_GetActionTextFromDB (Act_GetActCod (Action),ActTxt));
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_TD_End ();
HTM_TR_End ();
@ -2090,7 +2091,7 @@ static void Sta_ShowDistrAccessesPerDayAndHour (unsigned long NumRows,MYSQL_RES
fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s",Txt_STAT_COLOR_TYPES[ColorType]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
HTM_LABEL_End ();
Frm_EndForm ();
HTM_TD_End ();

View File

@ -3518,11 +3518,11 @@ static void Tst_WriteTFAnsViewTest (unsigned NumQst)
fprintf (Gbl.F.Out,"<select name=\"Ans%06u\">"
"<option value=\"\" selected=\"selected\">&nbsp;</option>"
"<option value=\"T\">%s</option>"
"<option value=\"F\">%s</option>"
"</select>",
"<option value=\"F\">%s</option>",
NumQst,
Txt_TF_QST[0],
Txt_TF_QST[1]);
HTM_SELECT_End ();
}
/*****************************************************************************/
@ -5116,9 +5116,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
if (TagNotFound && Gbl.Test.Tags.Txt[NumTag][0])
fprintf (Gbl.F.Out,"<option value=\"%s\" selected=\"selected\">%s</option>",
Gbl.Test.Tags.Txt[NumTag],Gbl.Test.Tags.Txt[NumTag]);
fprintf (Gbl.F.Out,"<option value=\"\">[%s]</option>"
"</select>",
Txt_new_tag);
fprintf (Gbl.F.Out,"<option value=\"\">[%s]</option>",Txt_new_tag);
HTM_SELECT_End ();
HTM_TD_End ();
/***** Input of a new tag *****/

View File

@ -1613,7 +1613,7 @@ static void TT_TimeTableDrawCell (unsigned Weekday,unsigned Interval,unsigned Co
TT_ClassTypeDB[CT],
Txt_TIMETABLE_CLASS_TYPES[CT]);
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
if (IntervalType == TT_FREE_INTERVAL)
{
@ -1659,7 +1659,7 @@ static void TT_TimeTableDrawCell (unsigned Weekday,unsigned Interval,unsigned Co
(Dur % Gbl.TimeTable.Config.IntervalsPerHour) *
Gbl.TimeTable.Config.Range.MinutesPerInterval); // Minutes
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
if (Gbl.TimeTable.View == TT_CRS_EDIT)
{
@ -1701,7 +1701,7 @@ static void TT_TimeTableDrawCell (unsigned Weekday,unsigned Interval,unsigned Co
fprintf (Gbl.F.Out,"</option>");
}
}
fprintf (Gbl.F.Out,"</select>");
HTM_SELECT_End ();
/***** Info *****/
fprintf (Gbl.F.Out,"<br />");

View File

@ -8954,9 +8954,8 @@ void Usr_PutSelectorNumColsClassPhoto (void)
}
/***** End selector *****/
fprintf (Gbl.F.Out,"</select>"
"%s",
Txt_columns);
HTM_SELECT_End ();
fprintf (Gbl.F.Out,"%s",Txt_columns);
HTM_LABEL_End ();
}