diff --git a/swad_HTML.c b/swad_HTML.c
index 65e3c8cb..ac9a4b3b 100644
--- a/swad_HTML.c
+++ b/swad_HTML.c
@@ -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 (",");
diff --git a/swad_HTML.h b/swad_HTML.h
index 41d503b9..686d9e66 100644
--- a/swad_HTML.h
+++ b/swad_HTML.h
@@ -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);
diff --git a/swad_attendance.c b/swad_attendance.c
index df8a68a5..803c7041 100644
--- a/swad_attendance.c
+++ b/swad_attendance.c
@@ -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 ());
diff --git a/swad_browser.c b/swad_browser.c
index d9b28020..f352032c 100644
--- a/swad_browser.c
+++ b/swad_browser.c
@@ -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 ",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;
diff --git a/swad_call_for_exam.c b/swad_call_for_exam.c
index 62322e6d..ccc7292b 100644
--- a/swad_call_for_exam.c
+++ b/swad_call_for_exam.c
@@ -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 ());
diff --git a/swad_center.c b/swad_center.c
index 9fa17e73..9e07cfbf 100644
--- a/swad_center.c
+++ b/swad_center.c
@@ -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",
diff --git a/swad_center_config.c b/swad_center_config.c
index 46bc0b1b..d85b67c0 100644
--- a/swad_center_config.c
+++ b/swad_center_config.c
@@ -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 ());
diff --git a/swad_changelog.h b/swad_changelog.h
index 8d5bb298..75864d24 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -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)
diff --git a/swad_country.c b/swad_country.c
index e15f8fef..c8691195 100644
--- a/swad_country.c
+++ b/swad_country.c
@@ -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 ());
diff --git a/swad_course.c b/swad_course.c
index f6a9a52a..1e75d363 100644
--- a/swad_course.c
+++ b/swad_course.c
@@ -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 ",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;
diff --git a/swad_course_config.c b/swad_course_config.c
index d3d71532..35794c8d 100644
--- a/swad_course_config.c
+++ b/swad_course_config.c
@@ -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 ());
diff --git a/swad_date.c b/swad_date.c
index 822a767d..2adafdf2 100644
--- a/swad_date.c
+++ b/swad_date.c
@@ -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 ′",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 ′",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 ″",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 ″",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 ();
diff --git a/swad_degree.c b/swad_degree.c
index 77349198..3e3341cf 100644
--- a/swad_degree.c
+++ b/swad_degree.c
@@ -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 ());
diff --git a/swad_degree_config.c b/swad_degree_config.c
index 813c35fc..6c511435 100644
--- a/swad_degree_config.c
+++ b/swad_degree_config.c
@@ -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 ());
diff --git a/swad_degree_type.c b/swad_degree_type.c
index 3d3fe358..0dcd5e56 100644
--- a/swad_degree_type.c
+++ b/swad_degree_type.c
@@ -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 ());
diff --git a/swad_department.c b/swad_department.c
index 9c1a5ac7..3aa5966a 100644
--- a/swad_department.c
+++ b/swad_department.c
@@ -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);
diff --git a/swad_enrolment.c b/swad_enrolment.c
index bb300fea..c01a21be 100644
--- a/swad_enrolment.c
+++ b/swad_enrolment.c
@@ -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 ",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;
diff --git a/swad_figure.c b/swad_figure.c
index 334c2e8c..fac2f8a5 100644
--- a/swad_figure.c
+++ b/swad_figure.c
@@ -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;
diff --git a/swad_group.c b/swad_group.c
index 2678d25a..06e52ee4 100644
--- a/swad_group.c
+++ b/swad_group.c
@@ -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 ());
diff --git a/swad_hierarchy.c b/swad_hierarchy.c
index 3d2911ef..149184e2 100644
--- a/swad_hierarchy.c
+++ b/swad_hierarchy.c
@@ -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);
diff --git a/swad_holiday.c b/swad_holiday.c
index fecd4f0f..519427fa 100644
--- a/swad_holiday.c
+++ b/swad_holiday.c
@@ -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 ());
diff --git a/swad_institution.c b/swad_institution.c
index 92ed9d04..26d11a7c 100644
--- a/swad_institution.c
+++ b/swad_institution.c
@@ -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 ());
diff --git a/swad_institution_config.c b/swad_institution_config.c
index 74641200..30c2ad01 100644
--- a/swad_institution_config.c
+++ b/swad_institution_config.c
@@ -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 ());
diff --git a/swad_language.c b/swad_language.c
index e5432ab5..ab1fcfe9 100644
--- a/swad_language.c
+++ b/swad_language.c
@@ -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 ());
diff --git a/swad_message.c b/swad_message.c
index 7e31c230..bd8fe131 100644
--- a/swad_message.c
+++ b/swad_message.c
@@ -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 ",*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 ());
diff --git a/swad_photo.c b/swad_photo.c
index 692cbf32..85b09861 100644
--- a/swad_photo.c
+++ b/swad_photo.c
@@ -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;
diff --git a/swad_project.c b/swad_project.c
index f2be8e73..db0c0df9 100644
--- a/swad_project.c
+++ b/swad_project.c
@@ -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 ());
diff --git a/swad_question.c b/swad_question.c
index 985e52bb..87ec761a 100644
--- a/swad_question.c
+++ b/swad_question.c
@@ -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," ");
mysql_data_seek (mysql_res,0);
TagFound = false;
diff --git a/swad_record.c b/swad_record.c
index 89c26445..9815bf31 100644
--- a/swad_record.c
+++ b/swad_record.c
@@ -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 ());
diff --git a/swad_resource.h b/swad_resource.h
index 4c901b64..4fb3f228 100644
--- a/swad_resource.h
+++ b/swad_resource.h
@@ -29,6 +29,7 @@
#include // To access MySQL databases
+#include "swad_HTML.h"
#include "swad_string.h"
/*****************************************************************************/
diff --git a/swad_role.c b/swad_role.c
index a1d2b402..d667497d 100644
--- a/swad_role.c
+++ b/swad_role.c
@@ -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);
diff --git a/swad_room.c b/swad_room.c
index 56d81690..815210db 100644
--- a/swad_room.c
+++ b/swad_room.c
@@ -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 ());
diff --git a/swad_scope.c b/swad_scope.c
index 53b57c38..8fe70760 100644
--- a/swad_scope.c
+++ b/swad_scope.c
@@ -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 ());
diff --git a/swad_search.c b/swad_search.c
index c60eec8e..a5977645 100644
--- a/swad_search.c
+++ b/swad_search.c
@@ -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 ",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 ());
diff --git a/swad_statistic.c b/swad_statistic.c
index 939b9e43..63b6f3c0 100644
--- a/swad_statistic.c
+++ b/swad_statistic.c
@@ -360,7 +360,7 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",
The_GetSuffix ());
HTM_TxtF (" %s ",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);
diff --git a/swad_test_print.c b/swad_test_print.c
index 85cbdefd..48fd62d1 100644
--- a/swad_test_print.c
+++ b/swad_test_print.c
@@ -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," ");
diff --git a/swad_timetable.c b/swad_timetable.c
index 0d8b3b52..e3c92733 100644
--- a/swad_timetable.c
+++ b/swad_timetable.c
@@ -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],
diff --git a/swad_user.c b/swad_user.c
index 8c6fe937..f5efc409 100644
--- a/swad_user.c
+++ b/swad_user.c
@@ -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 ());