From 019285b91ad46ade4cf82c9adb1a2edc48085df3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Mon, 4 Nov 2019 18:17:39 +0100 Subject: [PATCH] Version19.51.17 --- swad_HTML.c | 37 +++++++++++++++++++- swad_HTML.h | 2 ++ swad_changelog.h | 3 +- swad_date.c | 10 +++--- swad_enrolment.c | 63 ++++++++++++++-------------------- swad_file_browser.c | 19 +++++----- swad_forum.c | 11 +++--- swad_group.c | 71 ++++++++++++++++++++++++-------------- swad_info.c | 25 ++++++-------- swad_privacy.c | 15 +++----- swad_record.c | 9 +++-- swad_statistic.c | 20 +++++------ swad_survey.c | 9 +++-- swad_syllabus.c | 10 +++--- swad_test.c | 84 +++++++++++++++++++-------------------------- swad_user.c | 16 +++------ 16 files changed, 202 insertions(+), 202 deletions(-) diff --git a/swad_HTML.c b/swad_HTML.c index c63584c5..f5abb3d9 100644 --- a/swad_HTML.c +++ b/swad_HTML.c @@ -972,7 +972,7 @@ void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder, { fprintf (Gbl.F.Out,""); } +void HTM_INPUT_RADIO (const char *Name,bool SubmitOnClick, + const char *fmt,...) + { + va_list ap; + int NumBytesPrinted; + char *Attr; + + fprintf (Gbl.F.Out,""); + } + /*****************************************************************************/ /********************************* Text areas ********************************/ /*****************************************************************************/ diff --git a/swad_HTML.h b/swad_HTML.h index f494feef..a22925ca 100644 --- a/swad_HTML.h +++ b/swad_HTML.h @@ -103,6 +103,8 @@ void HTM_INPUT_IMAGE (const char *ImgFile,const char *Title,const char *Class); void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder, const char *AutoComplete,bool Required); void HTM_INPUT_NUMBER (const char *Name,long Min,long Max,long Value,bool Disabled); +void HTM_INPUT_RADIO (const char *Name,bool SubmitOnClick, + const char *fmt,...); void HTM_TEXTAREA_Begin (const char *fmt,...); void HTM_TEXTAREA_End (void); diff --git a/swad_changelog.h b/swad_changelog.h index fed04485..58ef2bc6 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.51.16 (2019-11-04)" +#define Log_PLATFORM_VERSION "SWAD 19.51.17 (2019-11-04)" #define CSS_FILE "swad19.47.css" #define JS_FILE "swad19.39.js" /* @@ -495,6 +495,7 @@ ps2pdf source.ps destination.pdf // TODO: Impedir la creación y edición de proyectos si no son editables. // TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia) + Version 19.51.17: Nov 04, 2019 Code refactoring in HTML inputs. (245887 lines) Version 19.51.16: Nov 04, 2019 Code refactoring in HTML inputs. (245893 lines) Version 19.51.15: Nov 04, 2019 Code refactoring in HTML inputs. (245874 lines) Version 19.51.14: Nov 04, 2019 Code refactoring in HTML inputs. (245868 lines) diff --git a/swad_date.c b/swad_date.c index 3c372400..3f22d430 100644 --- a/swad_date.c +++ b/swad_date.c @@ -121,12 +121,10 @@ void Dat_PutBoxToSelectDateFormat (void) HTM_LI_Begin ("class=\%s\"",(Format == Gbl.Prefs.DateFormat) ? "DAT_N LIGHT_BLUE" : "DAT"); HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,"", - Gbl.Form.Id); + HTM_INPUT_RADIO ("DateFormat",true, + " value=\"%u\"%s", + (unsigned) Format, + Format == Gbl.Prefs.DateFormat ? " checked=\"checked\"" : ""); Dat_PutSpanDateFormat (Format); Dat_PutScriptDateFormat (Format); HTM_LABEL_End (); diff --git a/swad_enrolment.c b/swad_enrolment.c index 0f74e554..f2d35f78 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -953,44 +953,37 @@ static void Enr_PutActionsRegRemSeveralUsrs (void) if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected { HTM_LI_Begin (NULL); - fprintf (Gbl.F.Out,"", - (unsigned) Enr_REGISTER_SPECIFIED_USRS_IN_CRS, - (unsigned) Enr_REGISTER_SPECIFIED_USRS_IN_CRS); - HTM_LABEL_Begin ("for=\"RegRemAction%u\"", - (unsigned) Enr_REGISTER_SPECIFIED_USRS_IN_CRS); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO ("RegRemAction",false, + " value=\"%u\" checked=\"checked\"", + (unsigned) Enr_REGISTER_SPECIFIED_USRS_IN_CRS); fprintf (Gbl.F.Out,"%s",Txt_Register_the_users_indicated_in_step_1); HTM_LABEL_End (); HTM_LI_End (); HTM_LI_Begin (NULL); - fprintf (Gbl.F.Out,"", - (unsigned) Enr_REMOVE_SPECIFIED_USRS_FROM_CRS, - (unsigned) Enr_REMOVE_SPECIFIED_USRS_FROM_CRS); - HTM_LABEL_Begin ("for=\"RegRemAction%u\"", - (unsigned) Enr_REMOVE_SPECIFIED_USRS_FROM_CRS); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO ("RegRemAction",false, + " value=\"%u\"", + (unsigned) Enr_REMOVE_SPECIFIED_USRS_FROM_CRS); fprintf (Gbl.F.Out,"%s",Txt_Remove_the_users_indicated_in_step_1); HTM_LABEL_End (); HTM_LI_End (); HTM_LI_Begin (NULL); - fprintf (Gbl.F.Out,"", - (unsigned) Enr_REMOVE_NOT_SPECIFIED_USRS_FROM_CRS, - (unsigned) Enr_REMOVE_NOT_SPECIFIED_USRS_FROM_CRS); - HTM_LABEL_Begin ("for=\"RegRemAction%u\"", - (unsigned) Enr_REMOVE_NOT_SPECIFIED_USRS_FROM_CRS); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO ("RegRemAction",false, + " value=\"%u\"", + (unsigned) Enr_REMOVE_NOT_SPECIFIED_USRS_FROM_CRS); fprintf (Gbl.F.Out,"%s",Txt_Remove_the_users_not_indicated_in_step_1); HTM_LABEL_End (); HTM_LI_End (); HTM_LI_Begin (NULL); - fprintf (Gbl.F.Out,"", - (unsigned) Enr_UPDATE_USRS_IN_CRS, - (unsigned) Enr_UPDATE_USRS_IN_CRS); - HTM_LABEL_Begin ("for=\"RegRemAction%u\"",(unsigned) Enr_UPDATE_USRS_IN_CRS); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO ("RegRemAction",false, + " value=\"%u\"", + (unsigned) Enr_UPDATE_USRS_IN_CRS); fprintf (Gbl.F.Out,"%s", Txt_Register_the_users_indicated_in_step_1_and_remove_the_users_not_indicated); HTM_LABEL_End (); @@ -1001,12 +994,10 @@ static void Enr_PutActionsRegRemSeveralUsrs (void) if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) { HTM_LI_Begin (NULL); - fprintf (Gbl.F.Out,"", - (unsigned) Enr_ELIMINATE_USRS_FROM_PLATFORM, - (unsigned) Enr_ELIMINATE_USRS_FROM_PLATFORM); - HTM_LABEL_Begin ("for=\"RegRemAction%u\"", - (unsigned) Enr_ELIMINATE_USRS_FROM_PLATFORM); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO ("RegRemAction",false, + " value=\"%u\"", + (unsigned) Enr_ELIMINATE_USRS_FROM_PLATFORM); fprintf (Gbl.F.Out,"%s", Txt_Eliminate_from_the_platform_the_users_indicated_in_step_1); HTM_LABEL_End (); @@ -1757,17 +1748,13 @@ static void Enr_StartRegRemOneUsrAction (Enr_RegRemOneUsrAction_t RegRemOneUsrAc bool *OptionChecked) { HTM_LI_Begin (NULL); - fprintf (Gbl.F.Out,""); - HTM_LABEL_Begin ("for=\"RegRemAction%u\"",(unsigned) RegRemOneUsrAction); } static void Enr_EndRegRemOneUsrAction (void) diff --git a/swad_file_browser.c b/swad_file_browser.c index b884b017..b1d64387 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -3266,11 +3266,9 @@ static void Brw_FormToChangeCrsGrpZone (void) HTM_LI_Begin ("class=\"%s\"",IsCourseZone ? "BROWSER_TITLE" : "BROWSER_TITLE_LIGHT"); HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,"", - Gbl.Form.Id); + HTM_INPUT_RADIO ("GrpCod",true, + "value=\"-1\"%s", + IsCourseZone ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Crs.FullName); HTM_LABEL_End (); HTM_LI_End (); @@ -3297,12 +3295,11 @@ static void Brw_FormToChangeCrsGrpZone (void) NULL, "class=\"ICO25x25\" style=\"margin-left:6px;\""); HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,"", - Gbl.Form.Id); + HTM_INPUT_RADIO ("GrpCod",true, + "value=\"%ld\"%s", + GrpDat.GrpCod, + (IsGroupZone && + GrpDat.GrpCod == Gbl.Crs.Grps.GrpCod) ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s %s",GrpDat.GrpTypName,GrpDat.GrpName); HTM_LABEL_End (); HTM_LI_End (); diff --git a/swad_forum.c b/swad_forum.c index 00351be1..21f55b75 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -1755,13 +1755,10 @@ static void For_PutFormWhichForums (void) { HTM_LI_Begin (NULL); HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,"", - Gbl.Form.Id); + HTM_INPUT_RADIO ("ForumSet",true, + "value=\"%u\"%s", + (unsigned) ForumSet, + (ForumSet == Gbl.Forum.ForumSet) ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_FORUM_WHICH_FORUM[ForumSet]); HTM_LABEL_End (); HTM_LI_End (); diff --git a/swad_group.c b/swad_group.c index fc80b4b9..b36323b6 100644 --- a/swad_group.c +++ b/swad_group.c @@ -1918,6 +1918,7 @@ static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, bool IBelongToAClosedGroup; bool ICanChangeMySelectionForThisGrpTyp; bool ICanChangeMySelectionForThisGrp; + char StrGrpCod[32]; /***** Write heading *****/ Grp_WriteGrpHead (GrpTyp); @@ -2009,28 +2010,6 @@ static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, else HTM_TD_Begin ("class=\"LM\""); - if (Gbl.Usrs.Me.Role.Logged == Rol_STD && // If I am a student - !GrpTyp->MultipleEnrolment && // ...and the enrolment is single - GrpTyp->NumGrps > 1) // ...and there are more than one group - { - /* Put a radio item */ - fprintf (Gbl.F.Out,"GrpCod,GrpTyp->GrpTypCod,Grp->GrpCod); - if (!GrpTyp->MandatoryEnrolment) // If the enrolment is not mandatory, I can select no groups - fprintf (Gbl.F.Out," onclick=\"selectUnselectRadio(this,this.form.GrpCod%ld,%u)\"", - GrpTyp->GrpTypCod,GrpTyp->NumGrps); - } - else - /* Put a checkbox item */ - fprintf (Gbl.F.Out,"GrpCod,GrpTyp->GrpTypCod,Grp->GrpCod); - - /* Group checked? */ - if (IBelongToThisGroup) - fprintf (Gbl.F.Out," checked=\"checked\""); // Group selected - /* Selection disabled? */ if (ICanChangeMySelectionForThisGrpTyp) // I can change my selection for this group type { @@ -2050,11 +2029,51 @@ static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, else // I can not change my selection for this group type ICanChangeMySelectionForThisGrp = false; - if (!ICanChangeMySelectionForThisGrp) // I can not change my selection for this group - fprintf (Gbl.F.Out,IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) - " disabled=\"disabled\""); // I can not register + snprintf (StrGrpCod,sizeof (StrGrpCod), + "GrpCod%ld", + GrpTyp->GrpTypCod); + if (Gbl.Usrs.Me.Role.Logged == Rol_STD && // If I am a student + !GrpTyp->MultipleEnrolment && // ...and the enrolment is single + GrpTyp->NumGrps > 1) // ...and there are more than one group + { + /* Put a radio item */ + if (GrpTyp->MandatoryEnrolment) + HTM_INPUT_RADIO (StrGrpCod,false, + "id=\"Grp%ld\" value=\"%ld\"%s%s", + Grp->GrpCod,Grp->GrpCod, + IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected? + ICanChangeMySelectionForThisGrp ? "" : + IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) + " disabled=\"disabled\""); // I can not register + else // If the enrolment is not mandatory, I can select no groups + HTM_INPUT_RADIO (StrGrpCod,false, + "id=\"Grp%ld\" value=\"%ld\"%s%s" + " onclick=\"selectUnselectRadio(this,this.form.GrpCod%ld,%u)\"", + Grp->GrpCod,Grp->GrpCod, + IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected? + ICanChangeMySelectionForThisGrp ? "" : + IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) + " disabled=\"disabled\"", // I can not register + GrpTyp->GrpTypCod,GrpTyp->NumGrps); + } + else + { + /* Put a checkbox item */ + fprintf (Gbl.F.Out,"GrpCod,GrpTyp->GrpTypCod,Grp->GrpCod); + + /* Group checked? */ + if (IBelongToThisGroup) + fprintf (Gbl.F.Out," checked=\"checked\""); // Group selected + + if (!ICanChangeMySelectionForThisGrp) // I can not change my selection for this group + fprintf (Gbl.F.Out,IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) + " disabled=\"disabled\""); // I can not register + + fprintf (Gbl.F.Out," />"); + } - fprintf (Gbl.F.Out," />"); HTM_TD_End (); Grp_WriteRowGrp (Grp,IBelongToThisGroup); diff --git a/swad_info.c b/swad_info.c index 370d5032..334cecb7 100644 --- a/swad_info.c +++ b/swad_info.c @@ -1143,21 +1143,16 @@ void Inf_FormsToSelSendInfo (void) else HTM_TD_Begin ("class=\"DAT LT\""); Frm_StartForm (Inf_ActionsSelecInfoSrc[Gbl.Crs.Info.Type]); - fprintf (Gbl.F.Out,""); + + HTM_INPUT_RADIO ("InfoSrc",InfoSrc != InfoSrcSelected && + (InfoSrc == Inf_INFO_SRC_NONE || + InfoAvailable[InfoSrc]), // Info available for this source + "id=\"InfoSrc%u\" value=\"%u\"%s", + (unsigned) InfoSrc,(unsigned) InfoSrc, + InfoSrc == InfoSrcSelected ? " checked=\"checked\"" : + (InfoSrc == Inf_INFO_SRC_NONE || + InfoAvailable[InfoSrc]) ? "" : // Info available for this source + " disabled=\"disabled\""); Frm_EndForm (); HTM_TD_End (); diff --git a/swad_privacy.c b/swad_privacy.c index d120b6b7..25aed3d3 100644 --- a/swad_privacy.c +++ b/swad_privacy.c @@ -176,16 +176,11 @@ static void Pri_PutFormVisibility (const char *TxtLabel, (Visibility == CurrentVisibilityInDB) ? "DAT_N LIGHT_BLUE" : "DAT"); HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO (ParamName,Action != ActUnk, + "value=\"%u\"%s%s", + (unsigned) Visibility, + Visibility == CurrentVisibilityInDB ? " checked=\"checked\"" : "", + Action == ActUnk ? " disabled=\"disabled\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_PRIVACY_OPTIONS[Visibility]); HTM_LABEL_End (); HTM_LI_End (); diff --git a/swad_record.c b/swad_record.c index 9324d9b9..e5f0629a 100644 --- a/swad_record.c +++ b/swad_record.c @@ -3120,11 +3120,10 @@ static void Rec_ShowRole (struct UsrData *UsrDat, Sex++) { HTM_LABEL_Begin ("class=\"REC_DAT_BOLD\""); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("Sex",false, + "value=\"%u\"%s required=\"required\"", + (unsigned) Sex, + Sex == Gbl.Usrs.Me.UsrDat.Sex ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s %s",Usr_StringsSexIcons[Sex],Txt_SEX_SINGULAR_Abc[Sex]); HTM_LABEL_End (); } diff --git a/swad_statistic.c b/swad_statistic.c index bd99bb09..db904cb5 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -409,12 +409,10 @@ void Sta_AskShowCrsHits (void) Gbl.Stat.ClicksGroupedBy != Sta_CLICKS_CRS_DETAILED_LIST) Gbl.Stat.ClicksGroupedBy = Sta_CLICKS_GROUPED_BY_DEFAULT; - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("GroupedOrDetailed",false, + "value=\"%u\"%s onclick=\"disableDetailedClicks();\"", + (unsigned) Sta_CLICKS_GROUPED, + Gbl.Stat.ClicksGroupedBy == Sta_CLICKS_CRS_DETAILED_LIST ? "" : " checked=\"checked\""); /* Selection of count type (number of pages generated, accesses per user, etc.) */ Sta_WriteSelectorCountType (); @@ -441,12 +439,10 @@ void Sta_AskShowCrsHits (void) /***** Option b) Listing of detailed clicks to this course *****/ HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("GroupedOrDetailed",false, + "value=\"%u\"%s onclick=\"enableDetailedClicks();\"", + (unsigned) Sta_CLICKS_DETAILED, + Gbl.Stat.ClicksGroupedBy == Sta_CLICKS_CRS_DETAILED_LIST ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s", Txt_STAT_CLICKS_GROUPED_BY[Sta_CLICKS_CRS_DETAILED_LIST]); HTM_LABEL_End (); diff --git a/swad_survey.c b/swad_survey.c index 1df235d2..cb84c90b 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -2748,11 +2748,10 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst, AnsType++) { HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,"AnswerType) - fprintf (Gbl.F.Out," checked=\"checked\""); - fprintf (Gbl.F.Out," />"); + HTM_INPUT_RADIO ("AnswerType",false, + "value=\"%u\"%s", + (unsigned) AnsType, + AnsType == SvyQst->AnswerType ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_SURVEY_STR_ANSWER_TYPES[AnsType]); HTM_LABEL_End (); fprintf (Gbl.F.Out,"
"); diff --git a/swad_syllabus.c b/swad_syllabus.c index dd03b162..04c19c02 100644 --- a/swad_syllabus.c +++ b/swad_syllabus.c @@ -150,12 +150,10 @@ void Syl_PutFormWhichSyllabus (void) { HTM_LI_Begin ("class=\"DAT LM\""); HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,"", - Gbl.Form.Id); + HTM_INPUT_RADIO ("WhichSyllabus",true, + "value=\"%u\"%s", + (unsigned) WhichSyllabus, + WhichSyllabus == Gbl.Syllabus.WhichSyllabus ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_SYLLABUS_WHICH_SYLLABUS[WhichSyllabus]); HTM_LABEL_End (); HTM_LI_End (); diff --git a/swad_test.c b/swad_test.c index 033af490..97259fe4 100644 --- a/swad_test.c +++ b/swad_test.c @@ -1132,23 +1132,20 @@ static void Tst_PutFormToEditQstMedia (struct Media *Media,int NumMediaInForm, /***** Choice 1: No media *****/ HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO (ParamUploadMedia.Action,false, + "value=\"%u\"%s", + (unsigned) Med_ACTION_NO_MEDIA, + OptionsDisabled ? " disabled=\"disabled\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_No_image_video); HTM_LABEL_End (); fprintf (Gbl.F.Out,"
"); /***** Choice 2: Current media *****/ HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO (ParamUploadMedia.Action,false, + "value=\"%u\"%s checked=\"checked\"", + (unsigned) Med_ACTION_KEEP_MEDIA, + OptionsDisabled ? " disabled=\"disabled\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_Current_image_video); HTM_LABEL_End (); Med_ShowMedia (Media, @@ -1158,13 +1155,11 @@ static void Tst_PutFormToEditQstMedia (struct Media *Media,int NumMediaInForm, /***** Choice 3: Change media *****/ UniqueId++; HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO (ParamUploadMedia.Action,false, + "id=\"chg_img_%u\" value=\"%u\"%s", + UniqueId, + (unsigned) Med_ACTION_NEW_MEDIA, + OptionsDisabled ? " disabled=\"disabled\"" : ""); fprintf (Gbl.F.Out,"%s: ",Txt_Change_image_video); HTM_LABEL_End (); Med_PutMediaUploader (NumMediaInForm,"TEST_MED_INPUT"); @@ -1907,11 +1902,10 @@ static void Tst_ShowFormConfigTst (void) Pluggable++) { HTM_LABEL_Begin ("class=\"DAT\""); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("Pluggable",false, + "value=\"%u\"%s", + (unsigned) Pluggable, + Pluggable == Gbl.Test.Config.Pluggable ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_TST_PLUGGABLE[Pluggable]); HTM_LABEL_End (); fprintf (Gbl.F.Out,"
"); @@ -1973,11 +1967,10 @@ static void Tst_ShowFormConfigTst (void) Feedback++) { HTM_LABEL_Begin ("class=\"DAT\""); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("Feedback",false, + "value=\"%u\"%s", + (unsigned) Feedback, + Feedback == Gbl.Test.Config.Feedback ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s",Txt_TST_STR_FEEDBACK[Feedback]); HTM_LABEL_End (); fprintf (Gbl.F.Out,"
"); @@ -5182,11 +5175,10 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], AnsType++) { HTM_LABEL_Begin (NULL); - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("AnswerType",false, + "value=\"%u\"%s onclick=\"enableDisableAns(this.form);\"", + (unsigned) AnsType, + AnsType == Gbl.Test.AnswerType ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s ",Txt_TST_STR_ANSWER_TYPES[AnsType]); HTM_LABEL_End (); fprintf (Gbl.F.Out,"
"); @@ -5287,15 +5279,12 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], HTM_TD_Begin ("class=\"TEST_EDI_ANS_LEFT_COL COLOR%u\"",Gbl.RowEvenOdd); /* Radio selector for unique choice answers */ - fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("AnsUni",false, + "value=\"%u\"%s%s%s onclick=\"enableDisableAns(this.form);\"", + NumOpt, + Gbl.Test.Answer.Options[NumOpt].Correct ? " checked=\"checked\"" : "", + NumOpt < 2 ? " required=\"required\"" : "", // First or second options required + Gbl.Test.AnswerType == Tst_ANS_UNIQUE_CHOICE ? "" : " disabled=\"disabled\""); /* Checkbox for multiple choice answers */ fprintf (Gbl.F.Out,""); + HTM_INPUT_RADIO ("AnsTF",false, + "value=\"%c\"%s%s required=\"required\"", + Value, + Gbl.Test.Answer.TF == Value ? " checked=\"checked\"" : "", + Gbl.Test.AnswerType == Tst_ANS_TRUE_FALSE ? "" : " disabled=\"disabled\""); fprintf (Gbl.F.Out,"%s",Label); HTM_LABEL_End (); } diff --git a/swad_user.c b/swad_user.c index 163c7c89..bf1178a4 100644 --- a/swad_user.c +++ b/swad_user.c @@ -8343,19 +8343,13 @@ static void Usr_ShowOneListUsrsOption (Usr_ListUsrsOption_t ListUsrsAction, const char *Label) { HTM_LI_Begin (NULL); - - fprintf (Gbl.F.Out,""); - - HTM_LABEL_Begin ("for=\"ListUsrsAction%u\"",(unsigned) ListUsrsAction); + HTM_LABEL_Begin (NULL); + HTM_INPUT_RADIO ("ListUsrsAction",false, + "value=\"%u\"%s", + (unsigned) ListUsrsAction, + ListUsrsAction == Gbl.Usrs.Selected.Option ? " checked=\"checked\"" : ""); fprintf (Gbl.F.Out,"%s",Label); HTM_LABEL_End (); - HTM_LI_End (); }