Version 22.87: Mar 30, 2023 Code refactoring in select forms.

This commit is contained in:
acanas 2023-03-30 21:50:11 +02:00
parent 3b46a59c2e
commit 80986d9a9f
38 changed files with 259 additions and 360 deletions

View File

@ -1603,6 +1603,7 @@ void HTM_TEXTAREA_End (void)
/*****************************************************************************/
void HTM_SELECT_Begin (HTM_SubmitOnChange_t SubmitOnChange,
const char *FuncsOnChange, // if not null ==> must include ending ";"
const char *fmt,...)
{
va_list ap;
@ -1630,8 +1631,18 @@ void HTM_SELECT_Begin (HTM_SubmitOnChange_t SubmitOnChange,
else
HTM_SELECT_BeginWithoutAttr ();
if (SubmitOnChange == HTM_SUBMIT_ON_CHANGE)
HTM_Txt (" onchange=\"this.form.submit();return false;\"");
if (SubmitOnChange == HTM_SUBMIT_ON_CHANGE || FuncsOnChange)
{
HTM_Txt (" onchange=\"");
// 1. List of functions
if (FuncsOnChange)
if (FuncsOnChange[0])
HTM_Txt (FuncsOnChange);
// 2. submit
if (SubmitOnChange == HTM_SUBMIT_ON_CHANGE)
HTM_Txt ("this.form.submit();");
HTM_Txt ("return false;\"");
}
HTM_Txt (" />");
HTM_SELECT_NestingLevel++;
@ -1880,6 +1891,12 @@ void HTM_TxtColon (const char *Txt)
HTM_Colon ();
}
void HTM_TxtSemicolon (const char *Txt)
{
HTM_Txt (Txt);
HTM_Semicolon ();
}
void HTM_TxtColonNBSP (const char *Txt)
{
HTM_Txt (Txt);
@ -1897,6 +1914,11 @@ void HTM_Colon (void)
HTM_Txt (":");
}
void HTM_Semicolon (void)
{
HTM_Txt (";");
}
void HTM_Comma (void)
{
HTM_Txt (",");

View File

@ -180,6 +180,7 @@ void HTM_TEXTAREA_Begin (const char *fmt,...);
void HTM_TEXTAREA_End (void);
void HTM_SELECT_Begin (HTM_SubmitOnChange_t SubmitOnChange,
const char *FuncsOnChange,
const char *fmt,...);
void HTM_SELECT_End (void);
void HTM_OPTGROUP_Begin (const char *Label);
@ -204,9 +205,11 @@ void HTM_BR (void);
void HTM_TxtF (const char *fmt,...);
void HTM_Txt (const char *Txt);
void HTM_TxtColon (const char *Txt);
void HTM_TxtSemicolon (const char *Txt);
void HTM_TxtColonNBSP (const char *Txt);
void HTM_NBSP (void);
void HTM_Colon (void);
void HTM_Semicolon (void);
void HTM_Comma (void);
void HTM_Hyphen (void);
void HTM_Asterisk (void);

View File

@ -1060,7 +1060,7 @@ void Att_ReqCreatOrEditEvent (void)
/* Data */
HTM_TD_Begin ("class=\"LT\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"ComTchVisible\" name=\"ComTchVisible\""
" class=\"INPUT_%s\"",
The_GetSuffix ());

View File

@ -7688,7 +7688,7 @@ void Brw_ShowFileMetadata (void)
The_GetSuffix ());
if (ICanChangePublic) // I can change file to public
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"PublicFile\" name=\"PublicFile\" class=\"PUBLIC_FILE\"");
HTM_OPTION (HTM_Type_STRING,"N",
!FileMetadata.IsPublic,false,
@ -7718,7 +7718,7 @@ void Brw_ShowFileMetadata (void)
The_GetSuffix ());
if (ICanEdit) // I can edit file properties
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"License\" name=\"License\" class=\"LICENSE\"");
for (License = (Brw_License_t) 0;
License <= (Brw_License_t) (Brw_NUM_LICENSES - 1);
@ -9747,7 +9747,7 @@ void Brw_AskRemoveOldFiles (void)
/***** Form to request number of months (to remove files older) *****/
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtF ("%s&nbsp;",Txt_Remove_files_older_than_PART_1_OF_2);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Months\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Months = Brw_MIN_MONTHS_TO_REMOVE_OLD_FILES;

View File

@ -1047,7 +1047,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
The_GetSuffix ());
if (TypeViewCallForExam == Cfe_FORM_VIEW)
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"Year\" name=\"Year\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Year = 0;
@ -1133,7 +1133,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
The_GetSuffix ());
if (TypeViewCallForExam == Cfe_FORM_VIEW)
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"ExamHour\" name=\"ExamHour\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -1148,7 +1148,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
"%02u %s",Hour,Txt_hours_ABBREVIATION);
HTM_SELECT_End ();
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"ExamMinute\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Minute = 0;
@ -1180,7 +1180,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
The_GetSuffix ());
if (TypeViewCallForExam == Cfe_FORM_VIEW)
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"DurationHour\" name=\"DurationHour\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -1192,7 +1192,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
"%02u %s",Hour,Txt_hours_ABBREVIATION);
HTM_SELECT_End ();
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"DurationMinute\""
" class=\"INPUT_%s\"",
The_GetSuffix ());

View File

@ -697,11 +697,11 @@ void Ctr_WriteSelectorOfCenter (void)
/***** Begin selector *****/
if (Gbl.Hierarchy.Ins.InsCod > 0)
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"ctr\" name=\"ctr\" class=\"HIE_SEL INPUT_%s\"",
The_GetSuffix ());
else
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"ctr\" name=\"ctr\" class=\"HIE_SEL INPUT_%s\""
" disabled=\"disabled\"",
The_GetSuffix ());
@ -814,7 +814,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
{
Frm_BeginForm (ActChgCtrPlc);
ParCod_PutPar (ParCod_OthHie,Ctr->CtrCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"PlcCod\""
" class=\"PLC_SEL INPUT_%s\"",
The_GetSuffix ());
@ -1302,7 +1302,7 @@ static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places)
/***** Place *****/
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"PlcCod\" class=\"PLC_SEL INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"0",

View File

@ -561,7 +561,7 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
/* Put form to select institution */
Frm_BeginForm (ActChgCtrInsCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthInsCod\" name=\"OthInsCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
@ -663,7 +663,7 @@ static void CtrCfg_Place (bool PutForm)
/* Put form to select place */
Frm_BeginForm (ActChgCtrPlcCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"PlcCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());

View File

@ -629,10 +629,11 @@ TODO: Emilce Barrera Mesa: Podr
TODO: Emilce Barrera Mesa: Mis estudiantes presentan muchas dificultades a la hora de poner la foto porque la plataforma es muy exigente respecto al fondo de la imagen.
*/
#define Log_PLATFORM_VERSION "SWAD 22.86.3 (2023-03-30)"
#define Log_PLATFORM_VERSION "SWAD 22.87 (2023-03-30)"
#define CSS_FILE "swad22.86.css"
#define JS_FILE "swad22.49.js"
/*
Version 22.87: Mar 30, 2023 Code refactoring in select forms. (338607 lines)
Version 22.86.3: Mar 30, 2023 Code refactoring in forms. (338710 lines)
Version 22.86.2: Mar 30, 2023 New links to manual about resource clipboard.
Fixed bugs in links to resources. (338655 lines)

View File

@ -876,7 +876,7 @@ void Cty_WriteSelectorOfCountry (void)
Frm_BeginFormGoTo (ActSeeIns);
/***** Begin selector of country *****/
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"cty\" name=\"cty\" class=\"HIE_SEL INPUT_%s\"",
The_GetSuffix ());

View File

@ -632,11 +632,11 @@ void Crs_WriteSelectorOfCourse (void)
/***** Begin selector of course *****/
if (Gbl.Hierarchy.Deg.DegCod > 0)
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"crs\" name=\"crs\" class=\"HIE_SEL INPUT_%s\"",
The_GetSuffix ());
else
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"crs\" name=\"crs\" class=\"HIE_SEL INPUT_%s\""
" disabled=\"disabled\"",
The_GetSuffix ());
@ -770,7 +770,7 @@ void Crs_WriteSelectorMyCoursesInBreadcrumb (void)
ActReqSch);
/***** Begin selector of courses *****/
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"my_courses\" name=\"crs\" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -1200,7 +1200,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
{
Frm_BeginForm (ActChgCrsYea);
ParCod_PutPar (ParCod_OthHie,Crs->CrsCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"OthCrsYear\""
" class=\"HIE_SEL_NARROW INPUT_%s\"",
The_GetSuffix ());
@ -1344,7 +1344,7 @@ static void Crs_PutFormToCreateCourse (void)
/***** Year *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"OthCrsYear\""
" class=\"HIE_SEL_NARROW INPUT_%s\"",
The_GetSuffix ());
@ -2548,7 +2548,7 @@ void Crs_AskRemoveOldCrss (void)
/***** Form to request number of months without clicks *****/
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtF ("%s&nbsp;",Txt_Eliminate_all_courses_whithout_users_PART_1_OF_2);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Months\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (i = Crs_MIN_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_CRSS;

View File

@ -232,7 +232,7 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm)
/* Put form to select degree */
Frm_BeginForm (ActChgCrsDegCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthDegCod\" name=\"OthDegCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());
@ -318,7 +318,7 @@ static void CrsCfg_Year (bool PutForm)
if (PutForm)
{
Frm_BeginForm (ActChgCrsYeaCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCrsYear\" name=\"OthCrsYear\""
" class=\"INPUT_%s\"",
The_GetSuffix ());

View File

@ -740,181 +740,96 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
[Dat_HMS_TO_235959 ] = "setHMSTo235959('%s');", // Set HH:MM:SS form selectors to 23:59:59
};
char *IdTimeUTC;
char *FuncsOnChange;
char *FuncOnChange;
/***** Begin table *****/
HTM_TABLE_Begin ("DATE_RANGE");
HTM_TR_Begin (NULL);
if (asprintf (&FuncsOnChange,"adjustDateForm('%s');"
"setUTCFromLocalDateTimeForm('%s');",
Id,Id) < 0)
Err_NotEnoughMemoryExit ();
/***** Year *****/
HTM_TD_Begin ("class=\"RM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sYear\" name=\"%sYear\""
" class=\"INPUT_%s\""
" onchange=\""
"adjustDateForm('%s');"
"setUTCFromLocalDateTimeForm('%s');\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id,Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sYear\" name=\"%sYear\""
" class=\"INPUT_%s\""
" onchange=\""
"adjustDateForm('%s');"
"setUTCFromLocalDateTimeForm('%s');"
"this.form.submit();return false;\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id,Id);
break;
}
for (Year = FirstYear;
Year <= LastYear;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,false,false,
"%u",Year);
HTM_SELECT_Begin (SubmitOnChange,FuncsOnChange,
"id=\"%sYear\" name=\"%sYear\""
" class=\"INPUT_%s\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix ());
for (Year = FirstYear;
Year <= LastYear;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,false,false,
"%u",Year);
HTM_SELECT_End ();
HTM_TD_End ();
/***** Month *****/
HTM_TD_Begin ("class=\"CM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sMonth\" name=\"%sMonth\""
" class=\"INPUT_%s\""
" onchange=\""
"adjustDateForm('%s');"
"setUTCFromLocalDateTimeForm('%s');\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id,Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sMonth\" name=\"%sMonth\""
" class=\"INPUT_%s\""
" onchange=\""
"adjustDateForm('%s');"
"setUTCFromLocalDateTimeForm('%s');"
"this.form.submit();return false;\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id,Id);
break;
}
for (Month = 1;
Month <= 12;
Month++)
HTM_OPTION (HTM_Type_UNSIGNED,&Month,false,false,
"%s",Txt_MONTHS_SMALL[Month - 1]);
HTM_SELECT_Begin (SubmitOnChange,FuncsOnChange,
"id=\"%sMonth\" name=\"%sMonth\""
" class=\"INPUT_%s\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix ());
for (Month = 1;
Month <= 12;
Month++)
HTM_OPTION (HTM_Type_UNSIGNED,&Month,false,false,
"%s",Txt_MONTHS_SMALL[Month - 1]);
HTM_SELECT_End ();
HTM_TD_End ();
free (FuncsOnChange);
if (asprintf (&FuncOnChange,"setUTCFromLocalDateTimeForm('%s');",
Id) < 0)
Err_NotEnoughMemoryExit ();
/***** Day *****/
HTM_TD_Begin ("class=\"LM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sDay\" name=\"%sDay\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sDay\" name=\"%sDay\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');"
"this.form.submit();return false;\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
}
for (Day = 1;
Day <= 31;
Day++)
HTM_OPTION (HTM_Type_UNSIGNED,&Day,false,false,
"%u",Day);
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
"id=\"%sDay\" name=\"%sDay\""
" class=\"INPUT_%s\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix ());
for (Day = 1;
Day <= 31;
Day++)
HTM_OPTION (HTM_Type_UNSIGNED,&Day,false,false,
"%u",Day);
HTM_SELECT_End ();
HTM_TD_End ();
/***** Hour *****/
HTM_TD_Begin ("class=\"RM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sHour\" name=\"%sHour\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sHour\" name=\"%sHour\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');"
"this.form.submit();return false;\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
}
for (Hour = 0;
Hour <= 23;
Hour++)
HTM_OPTION (HTM_Type_UNSIGNED,&Hour,false,false,
"%02u h",Hour);
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
"id=\"%sHour\" name=\"%sHour\""
" class=\"INPUT_%s\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix ());
for (Hour = 0;
Hour <= 23;
Hour++)
HTM_OPTION (HTM_Type_UNSIGNED,&Hour,false,false,
"%02u h",Hour);
HTM_SELECT_End ();
HTM_TD_End ();
/***** Minute *****/
HTM_TD_Begin ("class=\"CM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sMinute\" name=\"%sMinute\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sMinute\" name=\"%sMinute\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');"
"this.form.submit();return false;\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
}
for (Minute = 0;
Minute < 60;
Minute += MinutesIInterval[FormSeconds])
HTM_OPTION (HTM_Type_UNSIGNED,&Minute,false,false,
"%02u &prime;",Minute);
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
"id=\"%sMinute\" name=\"%sMinute\""
" class=\"INPUT_%s\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix ());
for (Minute = 0;
Minute < 60;
Minute += MinutesIInterval[FormSeconds])
HTM_OPTION (HTM_Type_UNSIGNED,&Minute,false,false,
"%02u &prime;",Minute);
HTM_SELECT_End ();
HTM_TD_End ();
@ -922,38 +837,22 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
if (FormSeconds == Dat_FORM_SECONDS_ON)
{
HTM_TD_Begin ("class=\"LM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sSecond\" name=\"%sSecond\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sSecond\" name=\"%sSecond\""
" class=\"INPUT_%s\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');"
"this.form.submit();return false;\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix (),
Id);
break;
}
for (Second = 0;
Second <= 59;
Second++)
HTM_OPTION (HTM_Type_UNSIGNED,&Second,false,false,
"%02u &Prime;",Second);
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
"id=\"%sSecond\" name=\"%sSecond\""
" class=\"INPUT_%s\"",
Id,Dat_ParName[StartEndTime],
The_GetSuffix ());
for (Second = 0;
Second <= 59;
Second++)
HTM_OPTION (HTM_Type_UNSIGNED,&Second,false,false,
"%02u &Prime;",Second);
HTM_SELECT_End ();
HTM_TD_End ();
}
free (FuncOnChange);
/***** End table *****/
HTM_TR_End ();
HTM_TABLE_End ();
@ -1087,6 +986,7 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
HTM_SubmitOnChange_t SubmitOnChange,bool Disabled)
{
extern const char *Txt_MONTHS_SMALL[12];
char *FuncOnChange;
unsigned Year;
unsigned Month;
unsigned Day;
@ -1096,104 +996,71 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
HTM_TABLE_Begin (NULL);
HTM_TR_Begin (NULL);
if (asprintf (&FuncOnChange,"adjustDateForm('%s');",Id) < 0)
Err_NotEnoughMemoryExit ();
/***** Year *****/
HTM_TD_Begin ("class=\"CM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sYear\" name=\"%sYear\""
" class=\"INPUT_%s\""
"%s"
" onchange=\"adjustDateForm('%s');\"",
Id,Id,
The_GetSuffix (),
Disabled ? " disabled=\"disabled\"" : "",
Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sYear\" name=\"%sYear\""
" class=\"INPUT_%s\""
"%s"
" onchange=\"adjustDateForm('%s');"
"this.form.submit();return false;\"",
Id,Id,
The_GetSuffix (),
Disabled ? " disabled=\"disabled\"" : "",
Id);
break;
}
HTM_OPTION (HTM_Type_STRING,"0",false,false,
"-");
for (Year = FirstYear;
Year <= LastYear;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,
Year == DateSelected->Year,false,
"%u",Year);
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
"id=\"%sYear\" name=\"%sYear\""
" class=\"INPUT_%s\"%s",
Id,Id,
The_GetSuffix (),
Disabled ? " disabled=\"disabled\"" :
"");
HTM_OPTION (HTM_Type_STRING,"0",false,false,
"-");
for (Year = FirstYear;
Year <= LastYear;
Year++)
HTM_OPTION (HTM_Type_UNSIGNED,&Year,
Year == DateSelected->Year,false,
"%u",Year);
HTM_SELECT_End ();
HTM_TD_End ();
/***** Month *****/
HTM_TD_Begin ("class=\"CM\"");
switch (SubmitOnChange)
{
case HTM_DONT_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sMonth\" name=\"%sMonth\""
" class=\"INPUT_%s\""
"%s"
" onchange=\"adjustDateForm('%s');\"",
Id,Id,
The_GetSuffix (),
Disabled ? " disabled=\"disabled\"" : "",
Id);
break;
case HTM_SUBMIT_ON_CHANGE:
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"%sMonth\" name=\"%sMonth\""
" class=\"INPUT_%s\""
"%s"
" onchange=\"adjustDateForm('%s');"
"this.form.submit();return false;\"",
Id,Id,
The_GetSuffix (),
Disabled ? " disabled=\"disabled\"" : "",
Id);
break;
}
HTM_OPTION (HTM_Type_STRING,"0",false,false,
"-");
for (Month = 1;
Month <= 12;
Month++)
HTM_OPTION (HTM_Type_UNSIGNED,&Month,
Month == DateSelected->Month,false,
"%s",Txt_MONTHS_SMALL[Month - 1]);
HTM_SELECT_Begin (SubmitOnChange,FuncOnChange,
"id=\"%sMonth\" name=\"%sMonth\""
" class=\"INPUT_%s\"%s",
Id,Id,
The_GetSuffix (),
Disabled ? " disabled=\"disabled\"" :
"");
HTM_OPTION (HTM_Type_STRING,"0",false,false,
"-");
for (Month = 1;
Month <= 12;
Month++)
HTM_OPTION (HTM_Type_UNSIGNED,&Month,
Month == DateSelected->Month,false,
"%s",Txt_MONTHS_SMALL[Month - 1]);
HTM_SELECT_End ();
HTM_TD_End ();
free (FuncOnChange);
/***** Day *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (SubmitOnChange,
HTM_SELECT_Begin (SubmitOnChange,NULL,
"id=\"%sDay\" name=\"%sDay\""
" class=\"INPUT_%s\""
"%s",
" class=\"INPUT_%s\"%s",
Id,Id,
The_GetSuffix (),
Disabled ? " disabled=\"disabled\"" : "");
HTM_OPTION (HTM_Type_STRING,"0",false,false,
"-");
NumDaysSelectedMonth = (DateSelected->Month == 0) ? 31 :
((DateSelected->Month == 2) ? Dat_GetNumDaysFebruary (DateSelected->Year) :
Dat_NumDaysMonth[DateSelected->Month]);
for (Day = 1;
Day <= NumDaysSelectedMonth;
Day++)
HTM_OPTION (HTM_Type_UNSIGNED,&Day,
Day == DateSelected->Day,false,
"%u",Day);
Disabled ? " disabled=\"disabled\"" :
"");
HTM_OPTION (HTM_Type_STRING,"0",false,false,
"-");
NumDaysSelectedMonth = (DateSelected->Month == 0) ? 31 :
((DateSelected->Month == 2) ? Dat_GetNumDaysFebruary (DateSelected->Year) :
Dat_NumDaysMonth[DateSelected->Month]);
for (Day = 1;
Day <= NumDaysSelectedMonth;
Day++)
HTM_OPTION (HTM_Type_UNSIGNED,&Day,
Day == DateSelected->Day,false,
"%u",Day);
HTM_SELECT_End ();
HTM_TD_End ();

View File

@ -232,11 +232,11 @@ void Deg_WriteSelectorOfDegree (void)
/***** Begin selector of degree *****/
if (Gbl.Hierarchy.Ctr.CtrCod > 0)
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"deg\" name=\"deg\" class=\"HIE_SEL INPUT_%s\"",
The_GetSuffix ());
else
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"deg\" name=\"deg\" class=\"HIE_SEL INPUT_%s\""
" disabled=\"disabled\"",
The_GetSuffix ());
@ -405,7 +405,7 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes)
{
Frm_BeginForm (ActChgDegTyp);
ParCod_PutPar (ParCod_OthHie,Deg->DegCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"OthDegTypCod\""
" class=\"HIE_SEL_NARROW INPUT_%s\"",
The_GetSuffix ());
@ -565,7 +565,7 @@ static void Deg_PutFormToCreateDegree (const struct DegTyp_DegTypes *DegTypes)
/***** Degree type *****/
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"OthDegTypCod\""
" class=\"HIE_SEL_NARROW INPUT_%s\"",
The_GetSuffix ());

View File

@ -227,7 +227,7 @@ static void DegCfg_Center (bool PrintView,bool PutForm)
/* Put form to select center */
Frm_BeginForm (ActChgDegCtrCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtrCod\" name=\"OthCtrCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());

View File

@ -111,7 +111,7 @@ void DegTyp_WriteSelectorDegreeTypes (long SelectedDegTypCod)
DegTyp_GetListDegreeTypes (&DegTypes,HieLvl_SYS,DegTyp_ORDER_BY_DEGREE_TYPE);
/* List degree types */
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthDegTypCod\" name=\"OthDegTypCod\""
" class=\"INPUT_%s\"",
The_GetSuffix ());

View File

@ -483,7 +483,7 @@ static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departm
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginForm (ActChgDptIns);
ParCod_PutPar (ParCod_Dpt,Dpt->DptCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"OthInsCod\""
" class=\"HIE_SEL_NARROW INPUT_%s\"",
The_GetSuffix ());
@ -810,7 +810,7 @@ static void Dpt_PutFormToCreateDepartment (void)
/***** Institution *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"OthInsCod\""
" class=\"HIE_SEL_NARROW INPUT_%s\"",
The_GetSuffix ());
@ -998,7 +998,7 @@ void Dpt_WriteSelectorDepartment (long InsCod,long DptCod,
/***** Selector to select department *****/
/* Begin selector */
HTM_SELECT_Begin (SubmitOnChange,
HTM_SELECT_Begin (SubmitOnChange,NULL,
"id=\"%s\" name=\"%s\" class=\"%s\"",
ParName,ParName,SelectClass);

View File

@ -673,7 +673,7 @@ void Enr_AskRemoveOldUsrs (void)
/***** Form to request number of months without clicks *****/
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtF ("%s&nbsp;",Txt_Eliminate_all_users_who_are_not_enroled_on_any_courses_PART_1_OF_2);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Months\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Months = Usr_MIN_MONTHS_WITHOUT_ACCESS_TO_REMOVE_OLD_USRS;

View File

@ -115,7 +115,7 @@ static void Fig_ReqShowFigure (Fig_FigureType_t SelectedFigureType)
/***** Type of statistic *****/
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColonNBSP (Txt_Statistic);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"FigureType\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (FigType = (Fig_FigureType_t) 0;

View File

@ -1259,7 +1259,7 @@ static void Grp_ListGroupTypesForEdition (void)
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginFormAnchor (ActChgMdtGrpTyp,Grp_GROUP_TYPES_SECTION_ID);
ParCod_PutPar (ParCod_GrpTyp,Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"MandatoryEnrolment\""
" class=\"INPUT_%s\" style=\"width:150px;\"",
The_GetSuffix ());
@ -1277,7 +1277,7 @@ static void Grp_ListGroupTypesForEdition (void)
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginFormAnchor (ActChgMulGrpTyp,Grp_GROUP_TYPES_SECTION_ID);
ParCod_PutPar (ParCod_GrpTyp,Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"MultipleEnrolment\""
" class=\"INPUT_%s\" style=\"width:150px;\"",
The_GetSuffix ());
@ -1471,7 +1471,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginFormAnchor (ActChgGrpTyp,Grp_GROUPS_SECTION_ID);
ParCod_PutPar (ParCod_Grp,Grp->GrpCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"GrpTypCod\""
" class=\"INPUT_%s\" style=\"width:100px;\"",
The_GetSuffix ());
@ -1508,7 +1508,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginFormAnchor (ActChgGrpRoo,Grp_GROUPS_SECTION_ID);
ParCod_PutPar (ParCod_Grp,Grp->GrpCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"RooCod\""
" class=\"INPUT_%s\" style=\"width:100px;\"",
The_GetSuffix ());
@ -2432,7 +2432,7 @@ static void Grp_PutFormToCreateGroupType (void)
/***** Is it mandatory to register in any groups of this type? *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"MandatoryEnrolment\""
" class=\"INPUT_%s\" style=\"width:150px;\"",
The_GetSuffix ());
@ -2447,7 +2447,7 @@ static void Grp_PutFormToCreateGroupType (void)
/***** Is it possible to register in multiple groups of this type? *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"MultipleEnrolment\""
" class=\"INPUT_%s\" style=\"width:150px;\"",
The_GetSuffix ());
@ -2557,7 +2557,7 @@ static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms)
/***** Group type *****/
/* Begin selector */
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"GrpTypCod\""
" class=\"INPUT_%s\" style=\"width:100px;\"",
The_GetSuffix ());
@ -2587,7 +2587,7 @@ static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms)
/***** Room *****/
/* Begin selector */
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"RooCod\""
" class=\"INPUT_%s\" style=\"width:100px;\"",
The_GetSuffix ());

View File

@ -806,7 +806,7 @@ void Hie_WriteStatusCellEditable (bool ICanEdit,Hie_Status_t Status,
ParCod_PutPar (ParCod_OthHie,HieCod);
/* Selector */
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"Status\" class=\"INPUT_STATUS\"");
StatusUnsigned = (unsigned) Hie_GetStatusBitsFromStatusTxt (Hie_STATUS_PENDING);

View File

@ -519,7 +519,7 @@ static void Hld_ListHolidaysForEdition (const struct Hld_Holidays *Holidays,
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginForm (ActChgHldPlc);
ParCod_PutPar (ParCod_Hld,Hld->HldCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"PlcCod\" class=\"PLC_SEL INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"-1",Hld->PlcCod <= 0,false,
@ -538,7 +538,7 @@ static void Hld_ListHolidaysForEdition (const struct Hld_Holidays *Holidays,
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginForm (ActChgHldTyp);
ParCod_PutPar (ParCod_Hld,Hld->HldCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"HldTyp\" class=\"INPUT_%s\""
" style=\"width:62px;\"", // TODO: Use a CSS class
The_GetSuffix ());
@ -891,7 +891,7 @@ static void Hld_PutFormToCreateHoliday (const struct Plc_Places *Places)
/***** Holiday place *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"PlcCod\" class=\"PLC_SEL INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"-1",Hld_EditingHld->PlcCod <= 0,false,
@ -907,7 +907,7 @@ static void Hld_PutFormToCreateHoliday (const struct Plc_Places *Places)
/***** Holiday type *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"HldTyp\" class=\"INPUT_%s\""
" style=\"width:62px;\"", // TODO: Use a CSS class
The_GetSuffix ());

View File

@ -868,11 +868,11 @@ void Ins_WriteSelectorOfInstitution (void)
/***** Begin selector *****/
if (Gbl.Hierarchy.Cty.CtyCod > 0)
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"ins\" name=\"ins\" class=\"HIE_SEL INPUT_%s\"",
The_GetSuffix ());
else
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"ins\" name=\"ins\" class=\"HIE_SEL INPUT_%s\""
" disabled=\"disabled\"",
The_GetSuffix ());

View File

@ -327,7 +327,7 @@ static void InsCfg_Country (bool PrintView,bool PutForm)
{
/* Put form to select country */
Frm_BeginForm (ActChgInsCtyCfg);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtyCod\" name=\"OthCtyCod\""
" class=\"INPUT_SHORT_NAME INPUT_%s\"",
The_GetSuffix ());

View File

@ -127,7 +127,7 @@ void Lan_PutSelectorToSelectLanguage (void)
unsigned LanUnsigned;
Frm_BeginForm (ActReqChgLan);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"Lan\" class=\"INPUT_%s\""
" style=\"width:112px; margin:0;\"",
The_GetSuffix ());

View File

@ -1816,7 +1816,7 @@ static void Msg_ShowFormSelectCourseSentOrRecMsgs (const struct Msg_Messages *Me
/***** Course selection *****/
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtF ("%s&nbsp;",*TxtSelector[Messages->TypeOfMessages]);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"FilterCrsCod\" class=\"INPUT_%s\"",
The_GetSuffix ());

View File

@ -1769,7 +1769,7 @@ static void Pho_PutSelectorForTypeOfAvg (const struct Pho_DegPhotos *DegPhotos)
Pho_PutParPhotoSize (DegPhotos->HowComputePhotoSize);
Pho_PutParOrderDegrees (DegPhotos->HowOrderDegrees);
Set_PutParsPrefsAboutUsrList ();
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"AvgType\" name=\"AvgType\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -1834,7 +1834,7 @@ static void Pho_PutSelectorForHowComputePhotoSize (const struct Pho_DegPhotos *D
Pho_PutParTypeOfAvg (DegPhotos->TypeOfAverage);
Pho_PutParOrderDegrees (DegPhotos->HowOrderDegrees);
Set_PutParsPrefsAboutUsrList ();
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"PhotoSize\" name=\"PhotoSize\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -1899,7 +1899,7 @@ static void Pho_PutSelectorForHowOrderDegrees (const struct Pho_DegPhotos *DegPh
Pho_PutParTypeOfAvg (DegPhotos->TypeOfAverage);
Pho_PutParPhotoSize (DegPhotos->HowComputePhotoSize);
Set_PutParsPrefsAboutUsrList ();
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"Order\" name=\"Order\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Order = (Pho_HowOrderDegrees_t) 0;
@ -2001,7 +2001,7 @@ static void Pho_PutLinkToCalculateDegreeStats (const struct Pho_DegPhotos *DegPh
HTM_BUTTON_End ();
/* Selector with all degrees with students */
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"OthDegCod\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (NumDeg = 0;

View File

@ -1841,13 +1841,16 @@ static void Prj_PutSelectorReviewStatus (struct Prj_Projects *Projects)
extern const char *Txt_PROJECT_REVIEW_SINGUL[Prj_NUM_REVIEW_STATUS];
Prj_ReviewStatus_t ReviewStatus;
unsigned ReviewStatusUnsigned;
char *FuncOnChange;
/* Selector for review status */
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
if (asprintf (&FuncOnChange,"unhideElement('prj_rev_%ld');",Projects->Prj.PrjCod) < 0)
Err_NotEnoughMemoryExit ();
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,FuncOnChange,
"id=\"ReviewStatus\" name=\"ReviewStatus\""
" class=\"INPUT_%s\""
" onchange=\"unhideElement('prj_rev_%ld');return false;\"",
The_GetSuffix (),Projects->Prj.PrjCod);
" class=\"INPUT_%s\"",
The_GetSuffix ());
free (FuncOnChange);
for (ReviewStatus = (Prj_ReviewStatus_t) 0;
ReviewStatus <= (Prj_ReviewStatus_t) (Prj_NUM_REVIEW_STATUS - 1);
ReviewStatus++)
@ -3828,7 +3831,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects,
HTM_TD_End ();
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Assigned\" class=\"INPUT_%s\"",
The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"Y",Projects->Prj.Assigned == Prj_ASSIGNED,false,
@ -3864,7 +3867,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects,
HTM_TD_End ();
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Proposal\""
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
The_GetSuffix ());

View File

@ -1868,6 +1868,7 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
char StrTagTxt[6 + Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char StrInteger[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
char *Title;
char *FuncOnChange;
/***** Begin box *****/
if (Question->QstCod > 0) // The question already has assigned a code
@ -1918,13 +1919,14 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
/***** Write the tags already existing in a selector *****/
HTM_TD_Begin ("class=\"LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
if (asprintf (&FuncOnChange,"changeTxtTag('%u');",IndTag) < 0)
Err_NotEnoughMemoryExit ();
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,FuncOnChange,
"id=\"SelTag%u\" name=\"SelTag%u\""
" class=\"TAG_SEL INPUT_%s\""
" onchange=\"changeTxtTag('%u')\"",
" class=\"TAG_SEL INPUT_%s\"",
IndTag,IndTag,
The_GetSuffix (),
IndTag);
The_GetSuffix ());
free (FuncOnChange);
HTM_OPTION (HTM_Type_STRING,"",false,false,"&nbsp;");
mysql_data_seek (mysql_res,0);
TagFound = false;

View File

@ -316,7 +316,7 @@ void Rec_ListFieldsRecordsForEdition (void)
HTM_TD_Begin ("class=\"CM\"");
Frm_BeginForm (ActChgVisFie);
ParCod_PutPar (ParCod_Fld,Gbl.Crs.Records.LstFields.Lst[NumField].FieldCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"Visibility\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Vis = (Rec_VisibilityRecordFields_t) 0;
@ -390,7 +390,7 @@ void Rec_ShowFormCreateRecordField (void)
/***** Visibility to students *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Visibility\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (Vis = (Rec_VisibilityRecordFields_t) 0;
@ -1405,7 +1405,7 @@ static void Rec_ShowLinkToPrintPreviewOfRecords (void)
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_Txt ("(");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"RecsPerPag\"");
for (i = Rec_MIN_RECORDS_PER_PAGE;
i <= Rec_MAX_RECORDS_PER_PAGE;
@ -2779,7 +2779,7 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat,
DefaultRoleInForm = Rol_STD; // Request sign up as a student
/***** Selector of role *****/
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"Role\" name=\"Role\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -2843,7 +2843,7 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat,
}
/***** Selector of role *****/
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"Role\" name=\"Role\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -2886,7 +2886,7 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat,
Rol_GST; // If user don't belong to any course
/***** Selector of role *****/
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"Role\" name=\"Role\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -2923,7 +2923,7 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat,
}
/***** Selector of role *****/
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"Role\" name=\"Role\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -2946,7 +2946,7 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat,
{
case Rol_SYS_ADM:
/***** Selector of role *****/
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"Role\" name=\"Role\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -3160,7 +3160,7 @@ static void Rec_ShowCountry (struct Usr_Data *UsrDat,bool PutForm)
/* Data */
HTM_TD_Begin ("colspan=\"2\" class=\"REC_C2_BOT LM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtyCod\" name=\"OthCtyCod\""
" class=\"REC_C2_BOT_INPUT INPUT_%s\""
" required=\"required\"",
@ -3783,7 +3783,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/* Begin form to select the country of my institution */
Frm_BeginFormAnchor (ActChgCtyMyIns,Rec_MY_INS_CTR_DPT_ID);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"InsCtyCod\" name=\"OthCtyCod\""
" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
The_GetSuffix ());
@ -3822,7 +3822,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/* Begin form to select institution */
Frm_BeginFormAnchor (ActChgMyIns,Rec_MY_INS_CTR_DPT_ID);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthInsCod\" name=\"OthInsCod\""
" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
The_GetSuffix ());
@ -3865,7 +3865,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/* Begin form to select center */
Frm_BeginFormAnchor (ActChgMyCtr,Rec_MY_INS_CTR_DPT_ID);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"OthCtrCod\" name=\"OthCtrCod\""
" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
The_GetSuffix ());

View File

@ -29,6 +29,7 @@
#include <mysql/mysql.h> // To access MySQL databases
#include "swad_HTML.h"
#include "swad_string.h"
/*****************************************************************************/

View File

@ -480,10 +480,10 @@ void Rol_PutFormToChangeMyRole (const char *ClassSelect)
if (ClassSelect[0])
PutClassSelect = true;
if (PutClassSelect)
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"MyRole\" class=\"%s\"",ClassSelect);
else
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"MyRole\"");
for (Role = (Rol_Role_t) 1;
Role <= (Rol_Role_t) (Rol_NUM_ROLES - 1);

View File

@ -783,7 +783,7 @@ static void Roo_PutSelectorBuilding (long BldCod,
unsigned NumBld;
/***** Begin selector *****/
HTM_SELECT_Begin (SubmitOnChange,
HTM_SELECT_Begin (SubmitOnChange,NULL,
"name=\"BldCod\" class=\"BLD_SEL INPUT_%s\"",
The_GetSuffix ());
@ -820,7 +820,7 @@ static void Roo_PutSelectorType (Roo_RoomType_t RoomType,
Roo_RoomType_t Type;
/***** Begin selector *****/
HTM_SELECT_Begin (SubmitOnChange,
HTM_SELECT_Begin (SubmitOnChange,NULL,
"name=\"Type\" class=\"ROOM_TYPE_SEL INPUT_%s\"",
The_GetSuffix ());

View File

@ -56,7 +56,7 @@ void Sco_PutSelectorScope (const char *ParName,HTM_SubmitOnChange_t SubmitOnChan
unsigned ScopeUnsigned;
bool WriteScope;
HTM_SELECT_Begin (SubmitOnChange,
HTM_SELECT_Begin (SubmitOnChange,NULL,
"id=\"%s\" name=\"%s\" class=\"INPUT_%s\"",
ParName,ParName,The_GetSuffix ());

View File

@ -189,7 +189,7 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (HieLvl_Level_t DefaultS
/***** What to search? *****/
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtF (" %s&nbsp;",Txt_SEARCH_X_in_Y);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"WhatToSearch\""
" class=\"WHAT_TO_SEARCH INPUT_%s\"",
The_GetSuffix ());

View File

@ -360,7 +360,7 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",
The_GetSuffix ());
HTM_TxtF ("&nbsp;%s&nbsp;",Txt_distributed_by);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"GroupedBy\" name=\"GroupedBy\""
" class=\"INPUT_%s\"",
The_GetSuffix ());
@ -398,7 +398,7 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",
The_GetSuffix ());
HTM_TxtF ("(%s: ",Txt_results_per_page);
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"RowsPage\" name=\"RowsPage\"%s",
Stats->ClicksGroupedBy == Sta_CLICKS_CRS_DETAILED_LIST ? "" :
" disabled=\"disabled\"");
@ -507,7 +507,7 @@ static void Sta_PutFormGblHits (struct Sta_Stats *Stats)
/* Data */
HTM_TD_Begin ("class=\"LT\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"Role\" name=\"Role\""
" class=\"STAT_SEL INPUT_%s\"",
The_GetSuffix ());
@ -568,7 +568,7 @@ static void Sta_PutFormGblHits (struct Sta_Stats *Stats)
Stats->ClicksGroupedBy > Sta_CLICKS_GBL_PER_COURSE)
Stats->ClicksGroupedBy = Sta_CLICKS_GBL_PER_DAY;
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"GroupedBy\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (ClicksGroupedBy = Sta_CLICKS_GBL_PER_DAY;
@ -648,7 +648,7 @@ static void Sta_WriteSelectorCountType (const struct Sta_Stats *Stats)
unsigned StatCountTypeUnsigned;
/**** Count type *****/
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"CountType\" name=\"CountType\" class=\"INPUT_%s\"",
The_GetSuffix ());
for (StatCountType = (Sta_CountType_t) 0;
@ -683,7 +683,7 @@ static void Sta_WriteSelectorAction (const struct Sta_Stats *Stats)
Frm_LabelColumn ("RT","StatAct",Txt_Action);
HTM_TD_Begin ("class=\"LT\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"id=\"StatAct\" name=\"StatAct\""
" class=\"STAT_SEL INPUT_%s\"",
The_GetSuffix ());
@ -1604,7 +1604,7 @@ static void Sta_ShowDistrAccessesPerDayAndHour (const struct Sta_Stats *Stats,
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
HTM_TxtColonNBSP (Txt_Color_of_the_graphic);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"ColorType\"");
for (ColorType = (Sta_ColorType_t) 0;
ColorType <= (Sta_ColorType_t) (Sta_NUM_COLOR_TYPES - 1);

View File

@ -394,7 +394,7 @@ static void TstPrn_WriteTF_AnsToFill (const struct TstPrn_PrintedQuestion *Print
/* Initially user has not answered the question ==> initially all answers will be blank.
If the user does not confirm the submission of their exam ==>
==> the exam may be half filled ==> the answers displayed will be those selected by the user. */
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL,
"name=\"Ans%010u\" class=\"INPUT_%s\"",
QstInd,The_GetSuffix ());
HTM_OPTION (HTM_Type_STRING,"" ,PrintedQuestion->StrAnswers[0] == '\0',false,"&nbsp;");

View File

@ -1515,7 +1515,7 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
Par_PutParUnsigned (NULL,"TTCol",WhichCell->Column );
/***** Class type *****/
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"TTTyp\" class=\"Tmt_TYP INPUT_%s\"",
The_GetSuffix ());
for (CT = (Tmt_ClassType_t) 0;
@ -1550,7 +1550,7 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
else
{
/***** Class duration *****/
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"TTDur\" class=\"Tmt_DUR INPUT_%s\"",
The_GetSuffix ());
for (i = WhichCell->Interval +
@ -1592,7 +1592,7 @@ static void Tmt_TimeTableDrawCellEdit (const struct Tmt_Timetable *Timetable,
HTM_LABEL_Begin ("for=\"TTGrp%s\"",CellStr);
HTM_Txt (Txt_Group);
HTM_LABEL_End ();
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"id=\"TTGrp%s\" name=\"%s\""
" class=\"Tmt_GRP INPUT_%s\"",
CellStr,Par_CodeStr[ParCod_Grp],

View File

@ -6217,7 +6217,7 @@ void Usr_PutSelectorNumColsClassPhoto (void)
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
/***** Begin selector *****/
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL,
"name=\"ColsClassPhoto\" class=\"INPUT_%s\"",
The_GetSuffix ());