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 ());